目前目标跟踪算法研究202308

目标跟踪算法综述——附各算法源码和论文


概述

TBD(two-shot):SORT、DeepSORT、StrongSORT、ByteTrack、OC-SORT
JDE(one-shot):BoT-SORT、

0 MutiSORT(多目标跟踪策略)

0.1 track+detection

训练一个网络使它最小化类内误差,最大化类间误差。

1 DeepSORT

1.1 原理

1.1.1 SORT(2016)

SORT论文:SIMPLE ONLINE AND REALTIME TRACKING_2016

卡尔曼(Kalman)预测(tracks)+目标检测 ==> 匈牙利匹配。

SORT没有用到Box框内的特征。

存在的问题:身份交换(IDswitch)

kalman滤波器(采用匀速模型和线性观测模型)预测更新轨迹,该算法将目标的运动状态定义为8个正态分布的向量。

1.1.2 DeepSORT(2017)

DeepSORT论文:SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC

卡尔曼预测(tracks)+目标检测(detection)和数据关联(当前帧detetion和confirmed track确认的轨迹Bbox进行数据关联) ==> 匈牙利匹配。

突破:①加入外观信息,借用了ReID领域模型来提取特征,减少了ID switch的次数。②匹配策略同时考虑运动信息和外观特征(CNN)。

在IOU Match之前(利用了外观特征和马氏距离)做了一次额外的级联匹配。使用马氏距离来评测预测的Kalman状态和新来的状态。

匹配后,仍存在两种状态:

① 匹配失败的detections:新出现的目标或长时间遮挡后出现的目标。对其建立new tracks,对new tracks设置为unconfirmed,并对其进行第三次考察,是实际目标将unconfirmed修改为confirmed。

② 匹配失败的tracks:若是unconfirmed则删除该track,若为confirmed则设置寿命(max_age)。

1.1.3 StrongSORT(2022)

github地址:mirrors / dyhBUPT / StrongSORT · GitCode

StrongSORT论文:StrongSORT: Make DeepSORT Great Again

​ StrongSORT采用BoT作为更强大的外观特征提取器:与DeepSORT中使用的简单CNN不同,BoT使用ResNeSt50骨干模型。更能够区分个体之间的特征。

​ 在匹配成本矩阵时,作为一个简单的线性分配问题来解决,而没有采用DeepSORT中使用的匹配级联。

​ 认为vanilla卡尔曼滤波器是不稳定的。为了考虑检测噪声尺度上的信息,借用了NSA Kalman算法(提出了自适应计算噪声协方差的公式)。
R k ~ = ( 1 − c k ) R k \widetilde{R_k} = (1-c_k)R_k Rk =(1ck)Rk
其中, R k R_k Rk是预设的常数测量噪声协方差, c k c_k ck是状态 k k k 的检测置信度得分。

​ 使用外观特征距离和运动信息来进行匹配,代价矩阵是外观模型和运动模型代价的加权。

1.2 改进版本:StrongSORT

StrongSORT是DeepSORT的改进

对DeepSORT从detection、embedding和association几个方面进行改进,改进结果称为StrongSORT。

(1)在外观分支,BoT+ResNeSt50代替CNN得到外观特征;用EMA代替feature bank更新外观状态。

(2)在运动分支,使用ECC作相机运动补偿;另外,寻常的卡尔曼滤波容易受到低质量检测的影响并忽视有关检测噪音尺度的信息,所以借用NSA卡尔曼算法所提出的一种适应性计算噪音协方差公式 R k ~ \widetilde{R_k} Rk

(3)用外观和运动信息解决配对问题,而不仅仅用外观信息。成本矩阵C(Cost Matrix)是外观成本 A a A_a Aa和运动成本 A m A_m Am的权重和。λ = 0.98, C = λ A a + ( 1 − λ ) A m C=λ A_a+(1-λ )A_m C=λAa+(1λ)Am

2 BoT-SORT (2022.6)

github地址: https://github.com/NirAharon/BOT-SORT

论文地址:https://arxiv.org/pdf/2206.14651.pdf

论文名称:BoT-SORT: Robust Associations Multi-Pedestrian Tracking

2.1 原理

目前目标跟踪算法研究202308_第1张图片

3 ByteTrack

详见: ByteTrack算法原理及流程_爱吃油淋鸡的莫何的博客-CSDN博客

3.1 方法

1 对当前帧中(置信度高于最低阈值的)所有检测框,根据置信度中间阈值分成 高置信度检测框 和 低置信度检测框。(几乎保留所有检测框进行轨迹匹配)

2 对于高置信度的检测框,很容易关联到之前的轨迹中

(2.1)使用当前帧的检测框和上一帧的卡尔曼滤波预测(或估计)结果,使用IOU计算相似度(或者如果有用ReID的话,会计算特征间距离计算相似度)。

(2.2)基于相似度采用匈牙利算法进行匹配。

(2.3)要保留未匹配到轨迹的高置信度检测框(即当前帧剩的检测框) 和 未匹配到检测框的上一帧存在的轨迹(即上一帧剩的轨迹)。

3 对于低置信度的检测框

(3.1)先与(2.3)中剩的轨迹关联。其实就是当前低置信度的检测框和(2.3)中剩下的轨迹关联。这里值得说明的是,此处关联要使用IOU计算相似度,因为低置信度检测框通常模糊或存在遮挡,此时用ReID并不可靠。

(3.2)要保留(3.1)中仍然未匹配到检测框的轨迹

(3.3)删除在(3.1)中未匹配到轨迹的低置信度的检测框。认为这些低置信度的检测框不包含目标。

4 对于未匹配到轨迹的高置信度检测框,作为新的轨迹保存。

4 OC-SORT

github地址: https://github.com/noahcao/OC_SORT

论文地址:https://arxiv.org/abs/2203.14360

论文名称:Observation-Centric SORT: Rethinking SORT for Robust Multi-Object Tracking

4.1 原理

附1:特征提取攻略

1.1 OSNet(2019)

重识别特征提取器

github地址:https://github.com/KaiyangZhou/deep-person-reid

github地址:https://github.com/cmalki/Yolov5_DeepSort_OSNet-master

论文地址:https://arxiv.org/pdf/1905.00953.pdf (论文Abstract有code地址)

论文名称:Omni-Scale Feature Learning for Person Re-Identification

1.1.1 原理

下述来自论文截图。
目前目标跟踪算法研究202308_第2张图片
目前目标跟踪算法研究202308_第3张图片

1.1.2 描述

作者针对行人重识别。

作者设计了一种新颖的深度CNN,称为全尺度网络( Omni-Scale Network,OSNet),用于ReID中的全方位特征学习。

全尺度特征,通过设计一个由多个卷积特征流组成的残差块来实现的,每个残差块检测一定尺度的特征。

引入了一种新的统一聚合门用输入依赖的每个channel权重进行动态多尺度特征融合。为了有效地学习空间通道相关性,避免过度拟合,构建块同时使用点卷积和深度卷积。通过逐层叠加这些块,OSNet是非常轻量级的,可以在现有的ReID基准上从零开始训练。

综上,ReID的关键在于学习判别式特征,本文认为需要提取全方位特征,也就是多样化的同质和异质的分块的结合。

OSNet是通过简单地逐层堆叠轻量级bottleneck而构建。

下列来自论文翻译:

Omni-Scale Residual Block:通过利用Lite 3×3 layer构建全尺度残差块。

(a) Multi-scale feature learning:为了实现多尺度特征学习,本文引入了一个新的表示特征尺度的参数t 来扩展残差函数 F。

短连接可以使当前层学习的更小尺度的特征在下一层中有效的保留,从而使得最终的特征能够捕获整个空间尺度的范围。

(b) Unified aggregation gate:通过上述的各个尺度特征学习流,以学习到多个特征尺度的特征图。为了将它们组合以得到全尺度的特征,以动态组合方式组合不同卷积流的输出,即,根据输入图像分配不同尺度以不同的权重,而不是悬链后固定权重值。

优点:OSNet是一个轻量级的CNN网络,能够学习全尺度的特征表示。(部署)

1.1.3 总结

我的总结:因为原论文本身是针对行人重识别的,而且作者在设计的时候,考虑到类内特征差异大,类间特征差异小的特点(例如,一个人背着包包前后拍到的差异大,不同人穿类似衣服,差异小),作者提出了通过联合聚合门(统一聚合门)生成的通道权重将不同尺度的信息动态融合,即做了全尺度的特征表示。

​ 我们应用在车路协同场景下,目标追踪类型包含了机动车、非机动车和行人。机动车的类内差异主要体现在由于拍摄角度带来的形态差异。多目标类型的类间差异体现在机动车和非机动车及行人之间的差异较大。

​ 应是可以用于【跨镜头机动车目标的重识别】,可以先试一下~

1.1.4 改进版本:BC-OSNet

论文:Branch-Cooperative OSNet for Person Re-Identification(BC-OSNet)

描述:BC-OSNet提出一种多分支的结构,包含:局部分支(V1),全局分支(V2),对比分支(V3)、相关性分支(V4)。

1.2 VGGNet

重识别特征提取器

附2:损失函数

2.1 Center Loss

论文: A Discriminative Feature Learning Approach for Deep Face Recognition

2.1.1 描述

中心损失,最初在人脸识别的论文中应用。用来减少类内(比如说同一表情)的差异,而不能增大类间(比如说不同表情)的差异性。
C e n t e r L o s s = 1 2 N ∑ i = 1 n ∣ x i − c ∣ 2 2 CenterLoss = \frac{1}{2N}\sum_{i=1}^{n}{\mid x_i - c \mid{^2_2}} CenterLoss=2N1i=1nxic22

2.2 Loss

2.2.1 描述

。。。 。。。

你可能感兴趣的:(目标跟踪,算法,人工智能)