9. 使用预训练模型在自己的视频上进行推理

在本教程中,我们提供了一个脚本,供您对自己的视频进行人体活动预测。您唯一需要准备的是一个文本文件,其中包含您的视频信息(例如,视频路径),其余部分将由我们负责。您可以在一个命令行中使用许多流行的预训练模型(例如,I3D、I3D-nonlocal、SlowFast)。

注意

您可以随意跳过本教程,因为推理脚本是完整的,可以直接启动。

下载 完整的 Python 脚本: inference.py

更多命令行选项,请运行 python inference.py -h。请查看 model_zoo 以选择您喜欢的预训练模型。

准备数据

您的数据可以存储在任何层级结构中。您唯一需要准备的是一个名为 video.txt 的文本文件,其内容应如下所示:

/home/ubuntu/your_data/video_001.mp4
/home/ubuntu/your_data/video_001.mp4
/home/ubuntu/your_data/video_002.mp4
/home/ubuntu/your_data/video_003.mp4
/home/ubuntu/your_data/video_004.mp4
......
/home/ubuntu/your_data/video_100.mp4

每行是您要进行预测的每个视频的路径。

或者您也可以使用我们在其他教程中用于训练模型的数据格式,

/home/ubuntu/your_data/video_001.mp4 200 0
/home/ubuntu/your_data/video_001.mp4 300 1
/home/ubuntu/your_data/video_002.mp4 100 2
/home/ubuntu/your_data/video_003.mp4 400 2
/home/ubuntu/your_data/video_004.mp4 200 1
......
/home/ubuntu/your_data/video_100.mp4.100 3

每行包含三项内容:每个视频的路径、视频帧数和视频标签。但是,代码中不会使用第二项和第三项,它们只是占位符。因此,您可以在这两个位置放置任何正数。

请注意,目前我们仅支持直接对视频进行推理。

一旦您准备好 video.txt,就可以开始对您的视频进行推理了。我们先以 I3D 模型为例。

python inference.py --data-list video.txt --model i3d_resnet50_v1_kinetics400

预测结果将打印到控制台,日志将保存到当前目录。您可以在 predictions.log 中找到日志。如果您想将 logits(置信度分数)保存到 .npy 文件中以便稍后使用,您可以执行以下操作:

python inference.py --data-list video.txt --model i3d_resnet50_v1_kinetics400 --save-logits

如果您想将 logits 和预测结果都保存到 .npy 文件中以便稍后使用,您可以执行以下操作:

python inference.py --data-list video.txt --model i3d_resnet50_v1_kinetics400 --save-logits --save-preds

如果您想使用一个强大的网络,例如 SlowFast。我们也支持它。只需更改模型名称并选择您想使用的 SlowFast 配置。

python inference.py --data-list video.txt --model slowfast_4x16_resnet50_kinetics400 --slowfast --slow-temporal-stride 16 --fast-temporal-stride 2 --new-length 64

这里我们选择基本的 slowfast_4x16_resnet50 配置。它要求输入是一个 64 帧的视频片段。我们为慢分支选择 4 帧(temporal_stride = 16),为快分支选择 32 帧(temporal_stride = 2)。

类似地,您可以像在之前的教程中那样指定 num_segments、new_length 等参数,以获得更准确的预测结果。还有许多其他选项和模型可供选择,请查看 inference.py 以获取更多使用信息。

脚本总运行时间: ( 0 minutes 0.000 seconds)

由 Sphinx-Gallery 生成的图库