DeepSORT算法
一、什么是DeepSORT算法
DeepSORT(Deep Simple Online and Realtime Tracking)是目标跟踪领域中一种非常流行的多目标跟踪(MOT, Multi-Object Tracking)算法。它是基于SORT(Simple Online and Realtime Tracking)提出的改进版本,引入了深度学习方法来进行更加鲁棒的目标关联。
二、SORT算法的背景
1. 问题背景 多目标跟踪的主要目标是:给定一段视频序列,对每一帧图像中的多个目标进行检测并标注出它们的轨迹。目标检测(如YOLO、Faster R-CNN等)能够定位对象,但无法判断哪些目标在不同帧之间是同一个实体。MOT主要在检测结果的基础上进行ID一致性匹配。
2. SORT算法简述 SORT是一种轻量级且实时的多目标跟踪算法,它的核心包括:
- 目标检测(输入检测框)
- 卡尔曼滤波器(Kalman Filter)预测下帧目标位置
- 匈牙利匹配算法(Hungarian Algorithm)通过IOU(交并比)度量,将预测与检测关联 - 新目标的初始化和失踪目标的删除 。
局限性:SORT仅使用框的几何信息(如位置、尺寸),在目标被遮挡或靠近时,可能发生ID漂移(ID Switch)。
三、DeepSORT核心改进
DeepSORT主要在SORT的基础上引入了:外观特征描述(appearance descriptor),将检测目标的深度特征(例如CNN提取的表征)与位置特征结合来增强目标匹配的准确性,极大缓解了ID切换问题。
DeepSORT架构流程:
1. 基于目标检测器(如YOLO、Faster R-CNN)的检测框;
2. 外观特征提取网络(通常是一个轻量的CNN,如改进后的ResNet)
- 每个检测框都用CNN提取一个定长向量表征外观(如128维特征);
3. 预测与更新(卡尔曼滤波)
- 维护每个track的运动状态(包括目标在图像中的位置、速度等) - 预测下个时刻的位置;
4. 目标关联(关联检测与track)
- 结合IOU(位置相近)与外观特征距离(如欧氏距离、Cosine距离),综合评分 ;
- 使用匈牙利算法或贪婪法进行匹配;
5. 轨迹管理
- 新目标初始化;
- 失踪目标删除(时间窗口);
四、DeepSORT关键技术点
a. 外观特征提取
- 训练:在大型ReID(行人重识别)或相关数据集上训练,每个ID为一个类别。
- 网络结构:一般使用ResNet或Inception变种,输出为128维L2归一化特征向量。
- 特征库:历史轨迹维护有若干帧外观特征(如最近的100帧),匹配时采用最小距离或平均距离。
b. 目标关联成本矩阵(Cost Matrix)
DeepSORT的每一帧都构建一个成本矩阵,行是track,列是detection。每一元素的代价可表示为: Cost(i, j) = λ * d_motion(i, j) + (1 - λ) * d_appearance(i, j) 其中:
- `d_motion`常用IOU距离(1-IOU),代表几何运动关系
- `d_appearance`是外观特征间的欧氏/余弦距离
- `λ`为权重参数,调节二者的占比(例如0.5) 通常,先用运动成本做一次粗匹配筛选,再用外观特征做精匹配。
c. 多阶段匹配
DeepSORT采用两级匹配策略:
- 首先在高置信目标和high IOU track之间匹配(减少因目标丢失带来的漂移)
- 对剩余未匹配的detection/track,再利用外观特征做进一步关联
d. 轨迹管理
- Track生命周期管理,包括“Confirmed”(已验证)、“Tentative”(暂存)、“Deleted”(已删除)等状态。
- 只有一个track连续几帧匹配成功才被确认。
五、DeepSORT的优点
- 结合运动与外观信息,降低ID切换
- 可扩展性强,适配各种目标检测器
- 真实场景下表现优良,能应付遮挡、视角变换等复杂情况
- 实时性好,可应用于实时视频分析任务
六、典型应用
- 行人跟踪(最广泛),智能视频监控
- 交通目标跟踪(车辆、自行车等)
- 体育视频分析(跟踪运动员/球)
七、总结与流程图
核心流程:
视频帧
↓
目标检测器(产生bbox)
↓
CNN特征提取(每个bbox输出128维特征)
↓
卡尔曼预测 & 外观+IOU匹配(匈牙利算法)
↓
ID分配 & Track管理
↓
下帧