目标跟踪(Object-Tracking)问题是目前深度学习中研究的热点问题,紧张用在安防监控和自动驾驶上,个中目标跟踪问题又分为单目标跟踪问题和多目标跟踪问题。
单目标跟踪是指在视频的初始帧上框出单个目标,然后预测后续帧中该目标的大小和位置,单目标跟踪范例算法有:Mean Shift、TLD(基于在线学习的跟踪)、KCF(基于干系滤波性)。多目标跟踪不像单目标跟踪一样先在初始帧上框出单个目标,而是追踪多个目标的大小和位置,且每一帧中目标的数量和位置都会有变革,多目标跟踪算法范例有:SORT、DeepSORT。
多目标跟踪MOT(Multi-Object-Tracking):紧张任务是给定一个图像序列,找到图像序列中运动的物体,并将不同帧的运动物体进行识别,也便是给定一个确定准确的ID,这些物体可以是任意的,物体可以是人、车辆、各种动物等。
多目标跟踪算法分类
如上图所示,多目标跟踪算法可分为基于检测的多目标跟踪DBT(Detection-Based Tracking)和基于初始框无需检测器的多目标跟踪DFT(Detection-Free Tracking)。在单目标跟踪中,我们每每会利用给定的初始框,在后续视频帧中对初始框内的物体进行位置预测。而多目标跟踪算法,大部分都是不考虑初始框的,缘故原由是目标的频繁消逝与产生问题。
在多目标跟踪领域常用的跟踪策略是TBD(Tracking-by-Detecton),又或者也可叫DBT(Detection-Based-Tracking)。即在每一帧进行目标检测,再利用目标检测的结果来进行目标跟踪,这一步也称为数据关联。而DFT(Deteciton-Free Tracking),常常用于须要人工标定视频的第一帧图像中的目标,之后边检测边跟踪,常用于单目标跟踪,由于DFT目标须要人工标定,对付非第一帧涌现的目标或者中间帧消逝的目标没办法处理。
如上图,多目标跟踪又可以分为在线跟踪(Online Tracking)和离线跟踪(Offline Tracking)。在线跟踪(Online)是指当前帧的预测只能利用当前帧与之前的帧的信息来进行跟踪,也便是说视频中的第3帧只能利用视频之前的第2帧和第一帧的目标的信息来进行跟踪,Online跟踪是不许可修正以往的跟踪结果。离线跟踪(Offline) : 没有在线跟踪只能利用之前帧的局限,对付每一帧的预测,离线跟踪都能利用全体视频的信息,更随意马虎得到一个全局最优解,Offline跟踪是可以修正以往的跟踪结果。
多目标跟踪问题
一样平常多目标跟踪,须要处理以下几个问题:
处理新目标的涌现和老目标的消逝;跟踪目标的运动预测和相似度判别,即上一帧与下一帧目标的匹配;跟踪目标之间的重叠和遮挡处理;跟踪目标丢失一段韶光后再重新涌现的再识别。如上图,多目标跟踪算法事情流程如下:
第一步:给定视频原始帧
第二步:运行工具检测器,如Faster Rcnn、YOLO等目标检测算法,检测以得到工具的边界框。
第三步:将所有目标检测框中对应的目标抠出来,进行特色提取(包括表不雅观特色或者运动特色)。
第四步: 进行相似度打算,打算前后两帧目标之间的匹配程度(前后属于同一个目标的之间的间隔比较小,不同目标之间的间隔比较大)。
第五步:数据关联,为每个工具分配目标的ID,常用匈牙利算法。
多目标跟踪算法benckmarkMOT 数据集:是2015年开始的 MOT Challenge多目标检测跟踪寻衅赛提出的数据集,关注的目标紧张是移动的行人和车辆,目前MOT Challenge寻衅赛发布了MOT15、MOT16、MOT17、MOT18、MOT19、MOT20版本数据集。数据集主页:https://motchallenge.net/
KITTI数据集: 针对自动驾驶的数据集,由德国卡尔斯鲁厄理工学院和丰田美国技能研究院联合创办,是目前国际上最大的自动驾驶场景下的打算机视觉算法评测数据集。KITTI包含市区、村落庄和高速公路等场景采集的真实图像数据,每张图像中最多达15辆车和30个行人,还有各种程度的遮挡与截断。数据集主页:http://www.cvlibs.net/datasets/kitti/raw_data.php多目标跟踪算法评价指标对付多目标跟踪,最紧张的评价指标便是MOTA,这个指标综合了三点成分:FP、FN、IDsw。FP即FalsePostive,为误检测的目标数量;FN即FalseNegetive,为未检出的真实目标数量;IDsw.即同一目标发生ID切换的次数。MOTA越高,代表一个Tracker综合性能越好,上限为100,下限负无穷。
往期精彩:《-》Yolov3算法实现社交间隔安全检测项目讲解和实战(Social Distance Detector)
《-》万字长文,用代码的思想讲解Yolo3算法实现事理,Visdrone数据集和自己制作数据集两种办法在Pytorch演习Yolo模型