IoU系列
参考了https://blog.csdn.net/xian0710830114/article/details/128177705
IoU:Intersection over Union
IoU为交并比,计算是用预测框(A)和真实框(B)的交集除以二者的并集,值越高也说明A框与B框重合程度越高,代表模型预测越准确。

优点:1、具有尺度不变性。2、结果非负,范围是(0,1)。
缺点:1、当A、B没有重叠时,IoU为0,无法反映目标之间的距离。这种情况下,如果IoU用作于损失函数,梯度为0,无法优化。2、一个IoU值对应多种重合情况,例如以下三种IoU相等,但无法仅根据IoU判断哪个效果好。

GIoU:Generalized IoU
论文地址:https://arxiv.org/pdf/1902.09630.pdf
为了解决IoU的缺点1,提出了GIoU,在IoU后面增加了一项,计算两个框的最小外接矩形,用于表征两个框的距离,从而解决了两个目标没有交集时梯度为零的问题

其中C是两个框的最小外接矩形的面积

当A、B不相交时,IoU=0,两个框离得越远,GIOU越接近-1;当A、B重合时,AUB=C,GIoU=IoU=1,所以GIOU的取值为(-1, 1]。

因此作为损失函数时通过最大化GIoU可以促进A、B靠近。
优点:1、当IoU=0时,仍然可以很好的表示两个框的距离。2、GIoU不仅关注重叠区域,还关注其他的非重合区域,能更好的反映两者的重合度。
缺点:1、当两个框属于包含关系时,GIoU会退化成IoU,无法区分其相对位置关系。

2、存在无法区分的情况

3、没有对于长宽比的相似性的考虑
DIoU:Distance-IoU
论文地址:https://arxiv.org/pdf/1911.08287.pdf
GIoU通过最小化外接框来作为惩罚项,DIoU则通过最小化A、B中心点的标准化距离来加速收敛。具体来说,DIoU要比GIou更加符合目标框回归的机制,将目标与预测之间的距离,重叠率以及尺度都考虑进去,使得目标框回归变得更加稳定,不会像IoU和GIoU一样出现训练过程中发散等问题。

其中b和bgt分别代表预测框和真实框的中心点,ρ 表示两个点之间的欧氏距离,c表示A、B的外接最小矩形框的对角线长度。

优点:DIoU loss可以直接最小化两个目标框的距离,因此比GIoU loss收敛快得多。
缺点:没有考虑到长宽比相似度问题,例如下面几种无法区分

CIoU:Complete-IoU
与DIoU出自同一篇文章
与DIoU相比引入了框的宽高比

其中α是权重函数,v用来度量宽高比的一致性:

最终CIoU Loss定义为:

优点:考虑了框的纵横比
缺点:通过CIoU公式中的v反映的纵横比的差异,而不是宽高分别与其置信度的真实差异,所以有时会阻碍模型有效的优化相似性。
EIoU:Efficient-IoU
论文地址:https://arxiv.org/pdf/2101.08158.pdf
EIOU的惩罚项是在CIOU的惩罚项基础上将纵横比的影响因子拆开分别计算目标框和预测框的长和宽,该损失函数包含三个部分:重叠损失,中心距离损失,宽高损失,前两部分延续CIoU中的方法,但是宽高损失直接使目标框与预测框的宽度和高度之差最小,使得收敛速度更快。惩罚项公式如下:

优点:1、将纵横比的损失项拆分成预测的宽高分别与最小外接框宽高的差值,加速了收敛提高了回归精度。2、引入了Focal Loss优化了边界框回归任务中的样本不平衡问题,即减少与目标框重叠较少的大量锚框对BBox 回归的优化贡献,使回归过程专注于高质量锚框。
缺点:EIoU是损失函数的解决方案,只用于训练。
各种IoU的pytorch代码实现:
https://blog.csdn.net/xian0710830114/article/details/128177705
代码可行性未验证
精确度Precision
计算精确度的步骤:1、设置一个阈值,例如20。2、计算预测框和真值框的两个中心点的欧氏距离。3、计算一个视频序列中欧式距离小于阈值的帧数占总帧数的比例,得到Precision值。
一般会将阈值范围取成1-50像素,计算这个范围内每个取值的Precision,然后取平均得到最终结果。或者将其绘制为曲线图Precision Plot,横坐标为像素阈值,纵坐标为对应阈值的precision,例如下图:

考虑到真值框的尺度,对Precision归一化,提出了Norm Prec。计算的是两个中心点距离与真值框对角线的比值,此时阈值的取值范围为[0,0.5]。
成功率Success
首先计算重合率得分(overlap score,OS),与IoU计算相同。设置一个阈值,例如0.5.计算一个视频序列中OS大于阈值的帧数占总帧数的比例。
可以计算0-1阈值区间对应的Success,并取均值作为结果;也可以绘制Success Plot。

AUC值为Success Plot的曲线下面积。
鲁棒性
记录在算法在一个视频序列中出现跟踪失败的次数,这里失败的定义是:单帧accuracy的值低于设定的阈值判定算法跟踪失败,这里accuracy为IoU。其中算法失败后,将进行重新初始化,在失败帧接着进行二次跟踪。为了避免失败后立即初始化会导致再次失败,通常规定在5帧后再进行初始化。

在一个视频帧上算法会进行多次的重复测量,有的算法由于含有随机性每次测量的结果会有不同。
F-score
F-分数是引入了机器学习里的查准率、查全率和F1度量来分析长期跟踪器的跟踪和检测能力。其中有一些概念需要理清,比如准确性(precision)和召回率(recall)的定义方法。