注意
点击 此处 下载完整的示例代码
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 秒)