PaddlePaddle视频分类
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文件,tf和pkl为输入和输出目录
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.listcd ../.. && time python3 predict.py --weights=pdparams/AttentionCluster_final.pdparams --filelist=test/pkl.list
要运行时直接执行
./predict.sh
YouTube8M数据集(若需自己训练和验证则下载)
使用网页中的提供脚本下载Frame-level features dataset
可在该页的label list链接中下载类别序号对应的标签
jerrism 原创文章 16获赞 1访问量 442 关注 私信- 基于PaddlePaddle的Attention Cluster 视频分类模型
- 百度 PaddlePaddle开源视频分类模型Attention Cluster,曾夺挑战赛冠军
- 视频质量可以划分5个等级,具体分类名称及视频质量测试
- 【CSDN学院视频】以性别预测为例,谈谈数据挖掘中常见的分类算法
- 基于PaddlePaddle的图像分类实战 | 深度学习基础任务教程系列(一)
- 图像处理------理解卷积 分类: 视频图像处理 2015-07-24 09:25 24人阅读 评论(0) 收藏
- 图像特效------三角几何应用 分类: 视频图像处理 2015-07-24 10:06 37人阅读 评论(0) 收藏
- 如何使用DirectDraw直接显示RGB、YUV视频数据(播放yuv) 分类: VC++ DirectX 2013-11-09 09:39 758人阅读 评论(0) 收藏
- 视频分类/动作识别数据库研究现状
- 用PaddlePaddle实现图像分类-AlexNet(动态图版)
- 用PaddlePaddle实现图像分类-DistResNet
- 【外星眼halcon视频教程】深度学习如何增强机器视觉检测,来改进对象检测和分类的正确率。
- 使用AdaBoost算法来对视频数据进行分类
- 用PaddlePaddle实现图像分类-SE_ResNeXt(动态图版)
- 硬货 | 手把手带你构建视频分类模型(附Python演练))
- MIT 与 Facebook 用于动作分类和定位的大规模视频数据集的标注方法
- 计算机视觉(视频追踪检测分类、监控追踪)常用测试数据集
- 图像处理------图像加噪 分类: 视频图像处理 2015-07-24 09:26 24人阅读 评论(0) 收藏
- 图像处理------ 一阶微分应用 分类: 视频图像处理 2015-07-24 10:07 38人阅读 评论(0) 收藏