背景:
- 早期追踪器在缺乏强的低水平线索下,容易失败
- 检测后跟踪的模型依赖于检测器,且需要一个单独的阶段匹配
- 关联策略的时间长
简介:
基于点的跟踪思想,通过预测目标的中心点来进行跟踪,同时实现检测与跟踪的同步,结合目标检测和运动估计,使得在处理动态场景时更高效、更准确。通过同时处理目标的位置信息和运动轨迹,CenterTrack 能够实时跟踪多个物体。
实现过程:
- 通过时间跟踪中心点
- 在两个连续帧上调节检测器以及先前轨迹的热图,表示为点
- 基于预测偏移与前一帧中检测到的中心点之间的距离的贪婪匹配做对象关联
CenterNet检测器:
采用CenterNet定位对象中心,每个对象都由其边界框中心的一个点表示
Backbone DLA:
核心思想:
DLA将网络中不同层级的特征进行融合,以捕获图像的语义信息和空间信息。这种融合方式包括了DenseNet的密集连接,以聚合语义信息,还包括空间特征金字塔(Feature Pyramids)以聚合空间信息。通过这种结合方式,更好地获取目标的类别和位置信息。
DLA-34架构:
在CenterNet中,DLA-34由多个阶段组成,每个阶段都包含了一系列的卷积层和聚合操作。DLA-34的特点是它在不同的阶段之间使用了迭代深聚合(Iterative Deep Aggregation, IDA)和层次深聚合(Hierarchical Deep Aggregation, HDA)技术,有助于在不同分辨率和尺度上聚合特征。
CenterNet中对DLA的改进:
添加可变形卷积(Deformable Convolution)来增强模型对目标几何变化的鲁棒性;改进后的网络被称为DLASeg,它在DLA-34的基础上,引入可变形卷积和上采样层,提高空间分辨率,更好地进行目标分割。
ADAM优化器:
Adam优化器,全称Adaptive Moment Estimation(自适应矩估计),是一种用于深度学习中的优化算法。结合了动量和RMSprop两种优化方法的优点,通过计算梯度的一阶和二阶矩估计来调整每个参数的学习率,从而实现自适应学习率调整。
工作原理:
-
初始化:在训练开始前,Adam会初始化两个关键参数:一阶矩估计(m)和二阶矩估计(v),分别对应梯度的指数加权平均值和梯度平方的指数加权平均值。
-
计算梯度:在每次迭代中,计算当前参数下的梯度。
-
更新一阶矩估计:一阶矩估计(m)是梯度的指数加权平均值,考虑了过去的梯度信息,类似于动量项,有助于平滑训练过程。
-
更新二阶矩估计:二阶矩估计(v)是梯度平方的指数加权平均值,用于调整每个参数的学习率,类似于RMSprop。
-
偏差校正:由于一阶矩和二阶矩估计在初始阶段可能会有偏差,Adam通过偏差校正来调整这些估计值,以提高优化的准确性。
-
更新参数:使用校正后的一阶矩和二阶矩估计值来更新模型的参数。
Adam优化器的特点:
- 自适应学习率
- Adam引入动量项,有助于处理梯度中的高方差或低方差情况,平滑训练过程
- 只需要存储梯度的一阶和二阶矩估计值,内存需求低
- 超参数具有直观的解释,通常需要较少的调整。
数据增强策略:
随机水平翻转、随机调整大小裁剪、颜色抖动
训练集:
crowdhuman
训练输出:
当前对象中心到前一帧对象中心的偏移向量
学习属性:
偏移量
损失函数:
点跟踪:
挑战:
- 查找每帧中的所有目标(包括被遮挡目标)
- 通过时间将目标关联
解决①:
为检测网络提供当前帧和前一帧为输入,可从前一帧中恢复当前帧被遮挡的目标
基于每个检测对象由一个点表示,将所有检测目标呈现在热图
使用高斯渲染增加平滑
使用阈值筛选满足一定置信度分数的对象
解决②:
增加两个附加输出通道的2d位移
捕捉当前帧和上一帧的位移差
作用:
- 简化了跟踪条件检测,若单目标由点表示,那么多目标用热力图表示,跟踪器以热力图为输入,跨帧关联时间联合推理
- 简化跨时间的对象关联,通过位移预测(稀疏光流:预测运动向量来进行跟踪的帧间关联)允许不同帧中的对象被链接,该位移预测以先前检测为条件
Centertrack采取有效目标跟踪的策略:
- 利用前一帧的热图:将前一帧的热图作为输入,可让模型更容易地重复前一帧的预测。减少了错误跟踪的可能性,使模型能通过历史信息更好地做出决策
- 数据增强:为防止模型过于依赖前一帧而产生不准确的跟踪,CenterTrack 使用了积极的数据增强策略,包括旋转、缩放、裁剪等,增加数据的多样性,帮助模型更好地学习不同情况的特征。
- 从静态图像学习:由于增强方案非常有效,CenterTrack 可以在没有真实视频输入的情况下,仅使用静态图像数据集进行训练。能够学习到“幻觉”运动,即通过增强后的图像数据,模型能模拟出物体的运动特征。
跟踪特点:
简单、快速、高精度
舍弃重新连接远程轨迹能力
仅关联相邻帧中的对象,不会初始化丢失的长距离轨迹
改进:
Tracking-by-detection:
之前跟踪算法的缺点:
- 数据关联丢弃图像的外观特征
- 特征提取器造价高
- 检测与跟踪分离
改进:
关联与检测联合学习
检测器将之前的跟踪结果作为输入,从这个输入中恢复丢失或遮挡的对象
Joint detection and tracking:
之前联合跟踪检测方法的缺点:
使用Faster-RCNN+FPN,边界框在帧间有较大重叠,低帧率效果差
改进:
输入上一帧基于点跟踪的热图
作用:
- 目标位置的表示:热图用于表示每个像素点是目标中心的概率,模型可在热图中清晰地识别出目标的位置,减少由于目标重叠造成的误判。
- 平滑性和连续性:热图是通过卷积等操作生成的,能够保留空间上的平滑性。即使在目标位置重叠的情况下,热图也能通过周围像素的信息提供更稳定的预测。
- 整合历史信息:将前一帧的热图作为输入可帮助模型整合历史信息,使其更容易区分重叠目标。模型能根据之前的热图和当前的输入更准确地进行跟踪。
- 增强目标的辨识能力:通过热图,CenterTrack 可根据目标的置信度和位置进行选择,有效地减少因帧重叠带来的跟踪误差。即使多个目标在相邻帧中重叠,热图仍能帮助模型更好地分辨这些目标。
Motion prediction:
稀疏光流
Heatmap-conditioned point estimation:
利用先前热图背景:
- 前一帧信息*可用
- 可推断当前帧中不可见的被遮挡物体
方法:
- AutoContext:一种允许模型利用上下文信息来逐步改进预测的迭代式方法,在迭代中,模型会将之前的预测作为输入,引导模型更好地捕捉细节和信息,提升准确性
- Iterative Error Feedback (IEF):是一种用于减少预测误差的迭代反馈机制。通过对预测结果的反馈,模型能逐步调整和优化热图。有助于提高热图的鲁棒性,尤其在处理重叠目标或复杂场景时
- PoseFix :通过对初步预测的位置进行微调,利用热图的信息来优化目标的位置
3D object detection and tracking:
3D跟踪器通过单目图像和点云进行3D检测
使用现成的关联
贪婪匹配
原理:
对于在位置p处的目标,与其在上一帧中距离p最近的未匹配目标按照降序关联;若在半径r(预测边界框的宽高平均值)内,如果当前帧中没有找到与之前跟踪的目标(即先验信息)相匹配的目标检测结果,那么系统会生成一个新的跟踪轨迹(tracklet)
过程:
- 获取中心点热图:CenterTrack首先通过神经网络生成目标中心点的热图。热图中每个点的值表示该位置是目标中心的置信度(得分)。
- 提取候选点:从当前帧的热图中提取出置信度高于某一阈值的点。这些点是潜在的目标中心位置。
- 上一帧中心点:在匹配过程中,CenterTrack会使用上一帧的目标轨迹中心点作为候选点。这些点是上一帧中被检测到的目标的中心位置。
- 距离计算:对于当前帧的每个候选中心点,计算与上一帧中心点的距离(通常是欧几里得距离)。
- 置信度降序排序:将当前帧中提取到的候选中心点根据置信度进行降序排序。这个步骤确保了置信度高的目标优先匹配。
- 贪婪选择:根据距离和置信度的排序结果进行贪婪匹配。选择与当前帧中置信度最高的候选点相匹配的上一帧中心点,确保在保证准确性的同时,也尽量选择距离较近的点。
- 更新轨迹:一旦找到匹配,更新对应的轨迹。如果没有找到匹配,则可能将其标记为新的目标,或者保持为不活动状态。
Centertrack:
输入:
热图、偏移量、先前帧热图、先前帧偏移量、当前图
输出:
新的热图、新的偏移量、检测框
难点:
tracklet heatmap(轨迹热图):表示在前一帧中已经检测并正在跟踪的目标的中心点信息
产生的问题:
任意数量的轨迹缺失
错误定位目标
误报
解决方法:
- 在每个中心添加高斯噪声来局部抖动前一帧每个轨迹
- 渲染虚假噪声峰值,在GT附近随机添加假阳性(错误检测出不存在的目标)
- 随机删除检测目标,模拟假阴性(未能检测到真实存在的目标)
- 避免帧速率过拟合,随机采取某时刻附近的帧
视频数据:
通过随机缩放和平移模拟前一帧
3D目标跟踪:
采用CenterNet的单目3D检测形式,训练检测头,预测2D到3D中心偏移
实验:
2D:MOT17 KITTI
单目3D:nuScenes
Track rebirth:
- 当一个轨迹在某一帧未能匹配到检测到的目标时不会立即被删除,而是进入“不活动(inactive)”状态。这个轨迹将继续保持非活动状态,直到它在K个连续帧内都没有被检测到。
- 非活动轨迹再次与检测到的目标匹配时,它们可以“重生”,并恢复使用原来的ID,继续跟踪目标
- 当非活动轨迹重生后,它们过去的“非活动”时间段的信息并不会被展示出来。
- 每一帧都会实时地进行检测和跟踪
- 除MOT外,K可以设置为0
实验结果:
第一行MOT、第二行KITTI、第三行第四行nuScenes,每行显示三个连续帧