01. 使用预训练的 SiamRPN 模型进行单目标跟踪

目标跟踪是一个长期存在且有用的计算机视觉任务。与图像目标检测不同,它根据当前帧(有时也包括前一帧)中目标的位置来预测目标在下一帧中的位置。

SiamRPN (暹罗区域提议网络) 是一种被广泛采用的单目标跟踪方法。它由一个用于特征提取的暹罗子网络以及一个包括分类分支和回归分支用于预测的区域提议子网络组成。在推理阶段,所提出的框架被公式化为一个局部的一次性检测任务。我们可以预先计算暹罗子网络的模板分支,并将相关层公式化为普通卷积层以执行在线跟踪。

在本教程中,我们将演示如何从 gluoncv 模型库 加载预训练的 SiamRPN 模型并在任意视频上执行单目标跟踪。

使用 SiamRPN 模型进行预测

您需要准备两样东西来开始跟踪演示,即视频及其第一帧中的目标坐标。这些坐标表示要跟踪的感兴趣区域,格式为 (min_x, min_y, width, height)。

这里我们下载一个视频,并将第一帧中的感兴趣区域设置为 [298, 160, 48, 80]。

from gluoncv import utils
video_path = 'https://raw.githubusercontent.com/dmlc/web-data/master/gluoncv/tracking/Coke.mp4'
im_video = utils.download(video_path)
gt_bbox = [298, 160, 48, 80]

输出

Downloading Coke.mp4 from https://raw.githubusercontent.com/dmlc/web-data/master/gluoncv/tracking/Coke.mp4...

  0%|          | 0/9652 [00:00<?, ?KB/s]
 75%|#######5  | 7258/9652 [00:00<00:00, 72574.53KB/s]
9653KB [00:00, 76649.01KB/s]

然后您只需使用我们提供的脚本即可获得目标跟踪结果,

python demo.py --video-path ./Coke.mp4 --gt-bbox 298 160 48 80

我们的模型非常稳定。即使目标高速移动或被部分遮挡,它也能跟踪目标。在您自己的视频上试试看结果如何吧!

脚本总运行时间: ( 0 分钟 0.305 秒)

由 Sphinx-Gallery 生成的画廊