【bytetrack模型笔记】

Byte算法是用来解决如何充分利用,由于遮挡导致置信度变低的得分框问题(在目标检测中得分低的框也留下来)

Byte中将得分框按照一定阈值划分为高分框和低分框,对于高分框来说按照正常方法送入跟踪器,并使用IOU计算代价矩阵,后利用匈牙利算法分配;对于低分框,利用未匹配上的框和低分的框进行iou匹配,然后同样利用匈牙利算法进行分配

对于视频或者图片流来说,未匹配上的框,大概率是这帧这个物体被遮挡或者走出画面了导致的

ByteTrack: Multi-Object Tracking by Associating Every Detection Box

卡尔曼滤波用于变化的动态系统中,由当前状态和观测值相融合估计下一状态,是数据融合过程,迭代过程。

tracking-by-detection是MOT中一个经典高效流派,通过相似度(位置、外观、运动信息)来关联检测框得到跟踪轨迹,目前大部分MOT方法会选择一个阈值,只保留高于这个阈值的检测结果来做关联到跟踪结果,低于阈值检测结果直接丢弃。

在low score detection boxes中计算和tracklets相似性来识别object和background,具体实现方法:

1.基于tracklets相似性(motion similarity)将高置信度detection boxes匹配到tracklets上,用kalman滤波器预测当前轨迹在下一帧的位置。motion similarity计算方式是通过计算kalman预测的boxes和low confidence boxes之间iou表示

2.在unmatched tracklets中进行二次匹配,通过预测和低置信度box之间的iou进行二次匹配

引用概念:trajectory轨迹:为MOT输出量,一个Trajectory对应一个目标在一段时间内的位置序列

tracklet轨迹片段:trajectory组成部分,完整的trajectory是由属于同一个目标的tracklets组成

mot问题中常常使用数据关联方法,利用detection关联成一个个tracklets,后将tracklets组合成完整trajectory

byte输入为一个视频序列V,对象检测器Det,检测分数阈值,输出视频轨迹为T,每个轨迹包含边界框和每帧中对象的标识。

对于视频中每一帧,使用Det预测检测框和分数,根据检测得分阈值,将所有检测分为高分和低分两部分,对于分数高于阈值,放于高分检测,对于分数低于阈值,放入低分检测。

采用卡尔曼滤波来预测T中每个轨迹当前帧中新位置,第一次关联是在高分检测框与所有tracks之间执行的,相似性可以通过在高分检测框与跟踪轨迹的预测框之间的iou和reid特征距离来计算。利用匈牙利算法来完成相似新的匹配,保留未匹配的检测结果Dremain,保留未匹配的轨迹Tremian

第二次关联在低分检测框和第一次关联后的余下轨迹Tremain之间执行,保留着未被匹配的轨迹和删除所有未被匹配的低分检测框,视为背景。发现在第二个关联中单独使用iou作为相似性很重要,低分数检测框通常包含严重遮挡和运动模糊。

最后,在第一次关联后,从未匹配的高分检测框中初始化新轨迹。每个帧的输出是当前帧中轨迹的边界框和标识,不会输出Tlost的框和标识

你可能感兴趣的:(目标检测,人工智能,计算机视觉)