目标检测回归损失函数总结
作者丨何杰文@知乎(已授权)
来源丨https://zhuanlan.zhihu.com/p/422104433
编辑丨极市平台
导读
本文总结了6个目标检测回归损失函数的优缺点以及对其公式的分析,
演进路线:Smooth L1->IoU->GIoU->DIoU->CIoU->EIOU Loss
Smooth L1 Loss
【动机】 Smooth L1 Loss完美的避开了L1和L2 Loss的缺点
- L1 Loss的问题:损失函数对x的导数为常数,在训练后期,x很小时,如果learning rate 不变,损失函数会在稳定值附近波动,很难收敛到更高的精度。
- L2 Loss的问题:损失函数对x的导数在x值很大时,其导数也非常大,在训练初期不稳定。
【分析】
SmoothL1对x的导数为:
实际使用时:
其中表示真实框坐标,表示预测的框坐标,即分别求4个点的loss,然后相加作为Bounding Box Regression Loss。
三种loss的曲线图如图所示,可以看到Smooth L1相比L1的曲线更加的Smooth
【不足】 Smooth L1 Loss在计算目标检测的 bbox loss时,都是独立的求出4个点的 loss,然后相加得到最终的 bbox loss。这种做法的默认4个点是相互独立的,与实际不符。举个例子,当(x, y)为右下角时,w h其实只能取0。
IoU Loss(2016)
论文地址:https://arxiv.org/pdf/1608.01471.pdf
【动机】 针对smooth L1没有考虑box四个坐标之间相关性的缺点,
【分析】 通过4个坐标点独立回归Building boxes的缺点:
- 检测评价的方式是使用IoU,而实际回归坐标框的时候是使用4个坐标点,如下图所示,是不等价的;L1或者L2 Loss相同的框,其IoU 不是唯一的;
- 通过4个点回归坐标框的方式是假设4个坐标点是相互独立的,没有考虑其相关性,实际4个坐标点具有一定的相关性;
- 基于L1和L2的距离的loss对于尺度不具有不变性;
图(a)中的三组框具有相同的L2 Loss,但其IoU差异很大;图(b)中的三组框具有相同的L1 Loss,但IoU 同样差异很大,说明L1,L2这些Loss用于回归任务时,不能等价于最后用于评测检测的IoU.
Ious Loss公式
IoU Loss定义如下:
实际使用中简化为:
【不足】
- 当预测框和目标框不相交,即 IoU(bbox1, bbox2)=0 时,不能反映两个框距离的远近,此时损失函数不可导,IoU Loss 无法优化两个框不相交的情况。
- 假设预测框和目标框的大小都确定,只要两个框的相交值是确定的,其 IoU 值是相同时,IoU 值不能反映两个框是如何相交的。
GIOU Loss(2019)
论文地址:https://arxiv.org/abs/1902.09630
代码地址:https://github.com/generalized-iou/g-darknet
【动机】 解决IoU Loss没有考虑两个框是如何相交
【分析】
GIoU定义如下:
实际使用时:
- GIoU 取值范围为 [-1, 1],在两框重合时取最大值1,在两框无限远的时候取最小值-1;
- 与 IoU 只关注重叠区域不同,GIoU不仅关注重叠区域,还关注其他的非重合区域,能更好的反映两者的重合度。
【实验】 GIoU Loss,在单阶段检测器YOLO v1涨了2个点,两阶段检测器涨点相对较少(原因分析:RPN的box比较多,两个框未相交的数量相对较少)
【不足】 当真实框完全包裹预测框的时候,IoU 和 GIoU 的值都一样,此时 GIoU 退化为 IoU, 无法区分其相对位置关系。
DIoU Loss(2019)
论文地址:https://arxiv.org/pdf/1911.08287.pdf
代码链接:https://github.com/Zzh-tju/DIoU
【动机】 解决GIoU Loss缺点当真实框完全包裹预测框的时候,IoU 和 GIoU 的值都一样,引入距离
【分析】
基于IoU和GIoU存在的问题,作者提出了两个问题:
- 第一:直接最小化预测框与目标框之间的归一化距离是否可行,以达到更快的收敛速度。
- 第二:如何使回归在与目标框有重叠甚至包含时更准确、更快。
好的目标框回归损失应该考虑三个重要的几何因素:重叠面积,中心点距离,长宽比。
- 针对问题一,作者提出了DIoU Loss,相对于GIoU Loss收敛速度更快,该Loss考虑了重叠面积和中心点距离,但没有考虑到长宽比;
- 针对问题二,作者提出了CIoU Loss,其收敛的精度更高,以上三个因素都考虑到了。
DIoU Loss 的定义如下:
其中表示预测框和真实框中心点欧氏距离,c表示预测框和真实框最小外界矩形的对角线距离,如下图所示:
绿色框为真实框,黑色框为预测框,灰色框为两者的最小外界矩形框,d表示真实框和预测框的中心点距离,c表示最小外界矩形框的距离。
当2个框完全重合时,
当2个框不相交时:
【不足】 边框回归的三个重要几何因素:重叠面积、中心点距离和长宽比,DIoU 没有包含长宽比因素。
CIoU Loss(2019)
论文地址:https://arxiv.org/pdf/1911.08287.pdf
代码地址:https://github.com/Zzh-tju/DIoU-darknet
【动机】 解决DIoU loss没有包含长宽比因素的不足
【分析】
CIoU的惩罚项是在DIoU的惩罚项基础上加了一个影响因子。
CIoU Loss定义为:
其中 ,
用于做trade-off的参数
【实验】
上表中左边是用5种不同Boudning Box Regression Loss Function的对比,右边是以IoU和GIoU来计算的2种Evaluation的结果;GIoU相对IoU会有2.49点提升,DIoU相对IoU会有3.29点提升,CIoU会有大概5.67点提升,CIoU结合DIoU-NMS使用效果最好,大概会有5.91点提升。
【不足】 在CIoU的定义中,衡量长宽比过于复杂,从两个方面减缓了收敛速度
- 长宽比不能取代单独的长宽,比如 都会导致v=0;
- 从v的导数可以得到 ,这说明 和 在优化中意义相反。
EIoU Loss(2021)
论文地址:https://arxiv.org/pdf/2101.08158.pdf
【动机】 解决CIoU的定义中不足
【亮点】 引入了解决样本不平衡问题的Focal Loss思想
【分析】
将CIoU的 取代为
EIoU Loss的定义为:
Focal-EIoU Loss的定义为:
focal loss可以理解为对损失加权,常见的分类focal loss为:
最后得到:
【实验】 论文首先尝试直接将EIoU带入,但是效果不好,仅供思路参考,
总结:
- 好的目标框回归损失应该考虑三个重要的几何因素:重叠面积,中心点距离,长宽比, 对边框间的物理描述愈发准确。
- 注意,使用时各种Loss算法的各个模块之间的配合,例如IoU Loss与NMS算法的组合。
本文仅做学术分享,如有侵权,请联系删文。
#
重磅!计算机视觉工坊**-学习交流群已成立**
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有ORB-SLAM系列源码学习、**3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、深度估计、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿**也请联系。
▲长按加微信群或投稿
▲长按关注公众号
#
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课**程([三维重建系列]Link 1、[三维点云系列]Link 2、[结构光系列]Link 3、[手眼标定]Link 4、[相机标定]Link 5、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答**五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
#
#
圈里有高质量教程资料、可答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~
还没有评论,来说两句吧...