当前位置:网站首页>IoU、GIoU、DIoU、CIoU四种损失函数总结
IoU、GIoU、DIoU、CIoU四种损失函数总结
2022-08-10 17:57:00 【I松风水月】
IoU:
IoU就是两个区域的交并比,如下图所示:
GIoU:
G I o U = I o U − ∣ A c − U ∣ ∣ A c ∣ G I o U=I o U-\frac{\left|A_{c}-U\right|}{\left|A_{c}\right|} GIoU=IoU−∣Ac∣∣Ac−U∣
其中 A c A_{c} Ac表示,A和B两者的区域用矩形框框起来的面积:入下图红色边框围起来的面积就是 A c A_{c} Ac。U表示A和B的并集。
- GIoU是IoU的下界,在两个框无限重合的情况下,IoU=GIoU=1
- IoU取值[0,1],但GIoU有对称区间,取值范围[-1,1]。在两者重合的时候取最大值1,在两者无交集且无限远的时候取最小值-1,因此GIoU是一个非常好的距离度量指标。
- 与IoU只关注重叠区域不同,GIoU不仅关注重叠区域,还关注其他的非重合区域,能更好的反映两者的重合度。
- 当两个区域平行的时候,退化为IoU,如下图的情况。
GIoU不足:重叠区域相同但方向和距离不同时不能反应到损失函数中。
DIoU
要比GIou更加符合目标框回归的机制,将目标与anchor之间的距离,重叠率以及尺度都考虑进去,使得目标框回归变得更加稳定,不会像IoU和GIoU一样出现训练过程中发散等问题。
D I o U = I o U = ρ 2 ( b , b g t ) c 2 D I o U=I o U=\frac{\rho^{2}\left(b, b^{g t}\right)}{c^{2}} DIoU=IoU=c2ρ2(b,bgt)
其中:
b b b, b g t b^{g t} bgt分别表示预测框和GT的中心点。
ρ 2 \rho^{2} ρ2表示计算两个中心点的欧氏距离。
c c c表示能包含真实框和预测框的包闭区域的对角线距离。
DIoU具体表示如下图:
- 与GIoU loss类似,DIoU loss( L D I o U = 1 − D I o U L_{DIoU} = 1-DIoU LDIoU=1−DIoU)在与目标框不重叠时,仍然可以为边界框提供移动方向。
- DIoU loss可以直接最小化两个目标框的距离,因此比GIoU loss收敛快得多。
- 对于包含两个框在水平方向和垂直方向上这种情况,DIoU损失可以使回归非常快,而GIoU损失几乎退化为IoU损失。
- DIoU还可以替换普通的IoU评价策略,应用于NMS中,使得NMS得到的结果更加合理和有效。
CIoU:
YOLOV3spp 作者提出一个优秀的回归定位损失应该考虑三个参数:重叠面积、中心距离、长宽比。因此得出一下公式:
C I o U = I o U − ( ρ 2 ( b , b g t ) c 2 ) + α v v = 4 π 2 ( arctan w g t h g t − arctan w h ) 2 α = v ( 1 − I o U ) + v \begin{gathered} CIoU=I o U-\left(\frac{\rho^{2}\left(b, b^{g t}\right)}{c^{2}}\right)+\alpha v \\ v=\frac{4}{\pi^{2}}\left(\arctan \frac{w^{g t}}{h^{g t}}-\arctan \frac{w}{h}\right)^{2} \\ \alpha=\frac{v}{(1-I o U)+v} \end{gathered} CIoU=IoU−(c2ρ2(b,bgt))+αvv=π24(arctanhgtwgt−arctanhw)2α=(1−IoU)+vv
其中 α \alpha α是权重参数
v v v用来度量长宽比的相似性
所以完整的CIoU损失定义为:
L C I o U = 1 − I o U − ( ρ 2 ( b , b g t ) c 2 ) + α v \begin{gathered} L_{CIoU}=1-IoU-\left(\frac{\rho^{2}\left(b, b^{g t}\right)}{c^{2}}\right)+\alpha v \\ \end{gathered} LCIoU=1−IoU−(c2ρ2(b,bgt))+αv
总结一下 I o U 、 G I o U 、 D I o U 、 C I o U IoU、GIoU、DIoU、CIoU IoU、GIoU、DIoU、CIoU四个损失的区别:
边界框回归的三大集合因素:重叠面积、中心点距离、纵横比
IoU: 考虑了重叠面积,归一化坐标尺度
GIoU: 考虑了重叠面积,基于IoU解决边界框不想交时loss等于0的问题。
DIoU: 考虑了重叠面积、中心点距离,基于IoU解决GIoU收敛慢的问题。
CIoU: 考虑了重叠面积、中心点距离、纵横比,基于DIoU提升回归精确度。
本文参考文献:
IoU、GIoU、DIoU、CIoU
IoU系列(IoU, GIoU, DIoU, CIoU)
边栏推荐
猜你喜欢
网络层总结(未完待续)
报告详解影响英特尔10/11/12代酷睿处理器的ÆPIC Leak安全漏洞
三星Galaxy Watch5产品图片流出 非Pro表款亦有蓝宝石加持
电路板ROHS测试报告怎么办理?电路板ROHS检测流程
Before opening a futures account, you must confirm the handling fee as soon as possible
机器人控制器编程实践指导书旧版-实践七 无线通信(网络)
搭载2.8K 120Hz OLED华硕好屏 无畏Pro15 2022锐龙版屏开得胜
【图像分割】基于元胞自动机实现图像分割附matlab代码
期货开户前要第一时间确认手续费
【HMS core】【FAQ】AR Engine、Analytics Kit、Video Editor Kit、Image Kit、Map Kit典型问题合集2
随机推荐
记录某博彩网站渗透
JSON serialization and deserialization using Jackson API in Scala
智能出价策略如何影响广告效果?
FFmpeg Huaping solution (modify source code, discard incomplete frames)
网络层总结(未完待续)
自动化测试 RobotFramework安装以及使用教程
接口测试进阶接口脚本使用—apipost(预/后执行脚本)
Toronto Research Chemicals农药检测丨甲硫威
机器人控制器编程整理汇总-辞旧迎新-
想玩转监控神器Prometheus吗?
Toronto Research Chemicals 双(乙酰丙酮)铂(II)
从Delta 2.0开始聊聊我们需要怎样的数据湖
【图像去雾】基于颜色衰减先验的图像去雾附matlab代码
20220810
五菱宏光MINI EV,唯一的缺点就是安全性
pyspark columns merge into one row
AVFrame相关api内存管理
MongoDB教程
Allegro软件Shape菜单下的每个命令的含义
Thoughts on Technology Sharing