1 Star 0 Fork 11

WYHunstoppable / PaddleVideo

forked from PaddlePaddle / PaddleVideo 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
quick_start.md 6.01 KB
一键复制 编辑 原始数据 按行查看 历史
Fred1991 提交于 2023-02-08 16:08 . correct a typo (#574)

简体中文 | English

PaddleVideo快速开始

1. 安装

1.1 安装PaddlePaddle

  • 您的机器安装的是CUDA9或CUDA10,请运行以下命令安装

    python3.7 -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple
  • 您的机器是CPU,请运行以下命令安装

    python3.7 -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

更多的版本需求,请参照飞桨官网安装文档中的说明进行操作。

1.2 安装PaddleVideo whl包

  • 方式1: 使用pypi安装(建议使用)
pip3.7 install ppvideo==2.3.0
  • 方式2: 本地打包whl文件并安装
python3.7 setup.py bdist_wheel
python3.7 -m pip install dist/ppvideo-2.3.0-py3-none-any.whl

2. 便捷使用

2.1 命令行使用

安装完成后,运行如下脚本命令:

ppvideo --model_name='ppTSM_v2' --use_gpu=False --video_file='data/example.avi'
  • 上述代码使用PP-TSM_v2模型,基于CPU,对data/example.avi示例文件进行预测。

  • 示例视频长度约10s,抽帧策略采用分段抽帧,即先将视频按时间轴等分成16段,每段抽取一帧,所有帧组合之后,输入网络进行预测。

运行结果如下:

Current video file: data/example.avi
        top-1 classes: [5]
        top-1 scores: [1.]
        top-1 label names: ['archery']

可以看到,使用在Kinetics-400上训练好的PP-TSM_v2模型对data/example.avi进行行为识别,输出的top1类别id为5,置信度为1.0,预测类别名称为archery

2.2 python脚本使用

安装完成后,运行如下示例代码:

from ppvideo import PaddleVideo
clas = PaddleVideo(model_name='ppTSM_v2', use_gpu=False)
video_file='data/example.avi'
clas.predict(video_file)

上述代码使用PP-TSM_v2模型,基于CPU,对data/example.avi示例文件进行预测,运行结果如下:

Current video file: data/example.avi
        top-1 classes: [5]
        top-1 scores: [1.]
        top-1 label names: ['archery']

可以看到,使用在Kinetics-400上训练好的PP-TSM_v2模型对data/example.avi进行预测,输出的top1类别id为5,置信度为1.0,预测类别名称为archery

3. 参数介绍

参数名称 参数类型 参数含义
model_name str 可选,模型名称,'ppTSM'或'ppTSM_v2'。 如果不指定,需要通过model_fileparams_file,提供自己的推理模型文件路径进行推理。
video_file str 必选,视频文件路径,支持格式:单个视频文件路径,包含多个视频的文件夹。
use_gpu bool 是否使用GPU,默认为True。
num_seg int TSM分段采样策略中segment的数量,同时也是视频中抽帧的数量,8对应ppTSM模型,16对应ppTSM_v2模型,默认为16。
short_size int 帧的短边尺寸大小,默认为256。
target_size int 帧的目标尺寸大小,默认为224。
model_file str 可选,推理模型的模型文件(.pdmodel)的路径。
params_file str 可选,推理模型的参数文件(.pdiparams)的路径。
batch_size int Batch size, 默认为1。
use_fp16 bool 是否使用float16,默认为False。
use_tensorrt bool 是否使用Tensorrt,默认为False。
gpu_mem int GPU使用显存大小,默认为8000。
enable_mkldnn bool 是否使用MKLDNN,默认为False。
top_k int 指定返回的top_k,默认为1。
label_name_path str 类别id和类别名称对应关系文件。默认使用Kinetics-400数据集使用的标签文件data/k400/Kinetics-400_label_list.txt,可参考以上格式替换成自己的标签文件。

示例命令1:

ppvideo --model_name='ppTSM_v2' --num_seg=16 --video_file="data/mp4" --batch_size=2  --top_k=5
  • 命令表示使用PP-TSM_v2模型,对data/mp4文件夹下的所有视频文件进行推理,batch_size为2,输出top5结果。
  • ppTSM对应的num_seg为8,ppTSM_v2对应的num_seg为16。
  • 使用GPU预测,占用显存约为1400MB

输出示例:

Current video file: data/mp4/example3.avi
        top-5 classes: [  5 345 311 159 327]
        top-5 scores: [1.0000000e+00 1.0152016e-11 8.2871061e-14 6.7713670e-14 5.0752070e-14]
        top-5 label names: ['archery', 'sword_fighting', 'skipping_rope', 'hula_hooping', 'spray_painting']
Current video file: data/mp4/example2.avi
        top-5 classes: [  5 345 311 159 327]
        top-5 scores: [1.0000000e+00 1.0152016e-11 8.2871061e-14 6.7713670e-14 5.0752070e-14]
        top-5 label names: ['archery', 'sword_fighting', 'skipping_rope', 'hula_hooping', 'spray_painting']
Current video file: data/mp4/example.avi
        top-5 classes: [  5 345 311 159 327]
        top-5 scores: [1.0000000e+00 1.0152016e-11 8.2871061e-14 6.7713670e-14 5.0752070e-14]
        top-5 label names: ['archery', 'sword_fighting', 'skipping_rope', 'hula_hooping', 'spray_painting']
Current video file: data/mp4/example1.avi
        top-5 classes: [  5 345 311 159 327]
        top-5 scores: [1.0000000e+00 1.0152016e-11 8.2871061e-14 6.7713670e-14 5.0752070e-14]
        top-5 label names: ['archery', 'sword_fighting', 'skipping_rope', 'hula_hooping', 'spray_painting']

示例命令2:

ppvideo --model_name='ppTSM' --num_seg=8 --video_file="data/mp4" --batch_size=2  --top_k=5
  • 命令表示使用ppTSM模型进行推理。

4. 常见问题

  1. 在下载opecv-python的过程中你可能遇到困难,可以尝试使用其他源进行安装:
python3.7 -m pip install opencv-python==4.2.0.32 -i https://pypi.doubanio.com/simple
Python
1
https://gitee.com/wyhunstoppable/PaddleVideo.git
git@gitee.com:wyhunstoppable/PaddleVideo.git
wyhunstoppable
PaddleVideo
PaddleVideo
develop

搜索帮助