我是靠谱客的博主 矮小蛋挞,最近开发中收集的这篇文章主要介绍PaddlePaddle视频分类PaddlePaddle视频分类模型的使用YouTube8M数据集(若需自己训练和验证则下载),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

PaddlePaddle视频分类模型的使用


环境配置


安装paddlepaddle相关模块:

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple paddlepaddle-gpu
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple wget

克隆代码:

git clone https://github.com/PaddlePaddle/models.git
cd
models/PaddleCV/PaddleVideo/

读取特征的reader/feature_reader.py文件存在bug,将脚本中record的key从bytes类型改为string

sed -i "s:[b':[':" reader/feature_reader.py

若要保存预测结果,则需修改metrics/metrics_util.py的finalize_and_log_out方法。

创建目录保存权重文件:

mkdir pdparams
wget https://paddlemodels.bj.bcebos.com/video_classification/AttentionCluster_final.pdparams

创建目录存放原始视频文件,提取特征后的tfrecord文件,tfrecord文件转化后的pkl文件

mkdir test && cd test && mkdir video tf pkl

将待预测视频文件存入video目录,生成视频文件的.list文件。需要在第二列写视频标签,多个标签用分号分割。这里我们只作预测,将标签预设为1即可。

ls | sed -e "s:^:`pwd`/:"
-e "s:$:,1:" > ../video.list

执行预测


提取特征

可使用两种方法提取特征,YouTube8M Feature Extractor只能提取图像特征,MediaPipe YouTube8M feature extractor可同时提取音频特征。

YouTube8M Feature Extractor

克隆代码:

git clone https://github.com/google/youtube-8m.git
cd youtube-8m/feature_extractor

提取特征,frames_per_second默认为1:

python3 extract_tfrecords_main.py --input_videos_csv /data6/PaddleVideo/test/video.list --output_tfrecords_file /data6/PaddleVideo/test/tf/test.tfrecord

若出现could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR错误,则是显存不够,修改feature_extractor.py,将其中的*self.session = tf.Session()*改为:

config = tf.ConfigProto(gpu_options=tf.GPUOptions(allow_growth=True))
self.session = tf.Session(config=config)

即刚开始分配少量GPU资源,然后按需逐渐增加。

MediaPipe YouTube8M feature extractor

按说明文档执行第三步获取VGGish frozen graph时,可能会出现ImportError: No module named ‘vggish_slim’。这时可以先执行该行代码之前的git clone代码,把所需的模块先下载下来。

安装Bazel(Using Bazel’s APT repository)

安装opencv:

sudo apt-get install libopencv-core-dev libopencv-highgui-dev
libopencv-imgproc-dev libopencv-video-dev

安装ffmpeg:

sudo apt-get install ffmpeg

开始预测

将tfrecord文件转换为pkl文件,tfpkl为输入和输出目录

cd test &&python3 ../data/dataset/youtube8m/tf2pkl.py tf pkl

生成pkl文件的.list文件

cd pkl && ls | sed "s:^:`pwd`/:" > ../pkl.list

开始预测

cd ../.. && python3 predict.py --weights=pdparams/AttentionCluster_final.pdparams --filelist=test/pkl.list

一次性执行上述命令的脚本:

在PaddleVideo目录下新建predict.sh,写入以下命令:

cd test/videos && ls | sed -e "s:^:`pwd`/:" -e "s:$:,1:" > ../video.list
time python3 ../../../youtube-8m/feature_extractor/extract_tfrecords_main.py --input_videos_csv ../video.list --output_tfrecords_file ../tf/test.tfrecord
cd .. && time
python3 ../data/dataset/youtube8m/tf2pkl.py tf pkl
cd pkl && ls | sed "s:^:`pwd`/:" > ../pkl.list
cd ../.. && time python3 predict.py --weights=pdparams/AttentionCluster_final.pdparams --filelist=test/pkl.list

要运行时直接执行

./predict.sh

YouTube8M数据集(若需自己训练和验证则下载)

使用网页中的提供脚本下载Frame-level features dataset

可在该页的label list链接中下载类别序号对应的标签

最后

以上就是矮小蛋挞为你收集整理的PaddlePaddle视频分类PaddlePaddle视频分类模型的使用YouTube8M数据集(若需自己训练和验证则下载)的全部内容,希望文章能够帮你解决PaddlePaddle视频分类PaddlePaddle视频分类模型的使用YouTube8M数据集(若需自己训练和验证则下载)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部