DeepSORT是一种基于深度学习的目标跟踪算法,它结合了卡尔曼滤波和匈牙利算法,可以在视频中对目标进行跟踪。DeepSORT的主要优点是可以在多个帧之间跟踪目标,即使目标在某些帧中消失或重新出现。它还可以处理多个目标之间的交叉和遮挡。
以下是DeepSORT的一些关键特点:
1.使用卷积神经网络(CNN)进行目标检测,以识别视频帧中的目标。
2.使用卡尔曼滤波进行目标跟踪,以预测目标的位置和速度。
3.使用匈牙利算法将检测到的目标与跟踪的目标进行匹配。
4.使用外观描述符(Appearance Descriptor)来区分不同的目标,即使它们具有相似的外观特征。
5.使用非极大值抑制(NMS)来消除重叠的检测框。
匈牙利算法核心
匈牙利算法的核心是构造代价矩阵,马氏距离和余弦距离的线性加权
如果长时间遮挡,导致预测的位置不确定性更大,即协方差会更大,马氏距离计算是使用了协方差的倒数会更小。
这种不理想的效果破坏追踪的连续性,作者使用了联机匹配。和sort对比,好处是减少了45%的ID switch结合了深度学习外观信息, 对遮挡目标的追踪效果大大提升。
python代码
DeepSORT算法的Python实现
# 导入DeepSORT库
from deep_sort import DeepSort
# 创建DeepSORT实例
deepsort = DeepSort()
# 使用DeepSORT进行多目标跟踪
tracked_objects = deepsort.update(detections)
DeepSORT算法的GitHub链接
# 奇点大佬keras实现DeepSORT
https://github.com/Qidian213/deep_sort_yolov3
下面是DeepSORT的一些应用场景:
1.视频监控
2.自动驾驶
3.人机交互