03. 使用预训练的 SMOT 模型进行多目标跟踪

在本教程中,我们将介绍一种称为 Single-Shot Multi Object Tracking (SMOT) 的方法,用于执行多目标跟踪。SMOT 是一种新的跟踪框架,可以将任何单次检测器 (SSD) 模型转换为在线多目标跟踪器,该框架强调同时检测和跟踪对象的路径。作为下面的示例,我们直接使用来自 gluoncv 模型库 的在 COCO 上预训练的 SSD-Mobilenet 目标检测器,并在任意视频上执行多目标跟踪。我们想指出的是,SMOT 非常高效,其运行时间接近所选检测器的运行时间。

使用 SMOT 模型进行预测

首先,我们从 MOT challenge 网站下载一个视频,

from gluoncv import utils
video_path = 'https://motchallenge.net/sequenceVideos/MOT17-02-FRCNN-raw.webm'
im_video = utils.download(video_path)

输出

Downloading MOT17-02-FRCNN-raw.webm from https://motchallenge.net/sequenceVideos/MOT17-02-FRCNN-raw.webm...

  0%|          | 0/5410 [00:00<?, ?KB/s]
  0%|          | 17/5410 [00:00<00:34, 156.49KB/s]
  1%|          | 49/5410 [00:00<00:22, 236.64KB/s]
  2%|2         | 113/5410 [00:00<00:13, 395.64KB/s]
  4%|4         | 241/5410 [00:00<00:07, 701.46KB/s]
  9%|9         | 513/5410 [00:00<00:03, 1344.13KB/s]
 20%|#9        | 1057/5410 [00:00<00:01, 2577.26KB/s]
 40%|###9      | 2145/5410 [00:00<00:00, 4977.83KB/s]
 68%|######8   | 3697/5410 [00:00<00:00, 7892.29KB/s]
 97%|#########6| 5233/5410 [00:00<00:00, 10015.01KB/s]
100%|##########| 5410/5410 [00:00<00:00, 5463.29KB/s]

然后,您可以直接使用我们在 /scripts/tracking/smot/demo.py 下提供的脚本来获取多目标跟踪结果。

python demo.py MOT17-02-FRCNN-raw.webm --network-name ssd_512_mobilenet1.0_coco --use-pretrained --custom-classes person --use-motion

即使在部分遮挡的情况下,我们的模型也能够跟踪多个人。如果您想同时跟踪多个对象类别,只需传入额外的类别名称即可。

例如,让我们从 MOT challenge 网站下载一个视频,

from gluoncv import utils
video_path = 'https://motchallenge.net/sequenceVideos/MOT17-13-FRCNN-raw.webm'
im_video = utils.download(video_path)

输出

Downloading MOT17-13-FRCNN-raw.webm from https://motchallenge.net/sequenceVideos/MOT17-13-FRCNN-raw.webm...

  0%|          | 0/7685 [00:00<?, ?KB/s]
  0%|          | 17/7685 [00:00<00:47, 161.17KB/s]
  1%|          | 49/7685 [00:00<00:31, 243.91KB/s]
  1%|1         | 113/7685 [00:00<00:18, 407.56KB/s]
  3%|3         | 241/7685 [00:00<00:10, 722.98KB/s]
  7%|6         | 513/7685 [00:00<00:05, 1386.23KB/s]
 14%|#3        | 1057/7685 [00:00<00:02, 2657.23KB/s]
 28%|##7       | 2129/7685 [00:00<00:01, 5088.49KB/s]
 47%|####7     | 3633/7685 [00:00<00:00, 7976.42KB/s]
 67%|######7   | 5169/7685 [00:00<00:00, 9986.19KB/s]
 87%|########7 | 6705/7685 [00:01<00:00, 11384.02KB/s]
7686KB [00:01, 7155.02KB/s]

然后,您可以直接使用我们在 /scripts/tracking/smot/demo.py 下提供的脚本来获取多目标跟踪结果。

python demo.py MOT17-13-FRCNN-raw.webm --network-name ssd_512_resnet50_v1_coco --use-pretrained --custom-classes person car --detect-thresh 0.7 --use-motion

现在我们正在跟踪人和汽车,


在您自己的视频上尝试 SMOT 并查看结果!

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

由 Sphinx-Gallery 生成的图库