• 目标检测中的BBox 回归损失函数-L2,smooth L1,IoU,GIoU,DIoU,CIoU,Focal-EIoU,Alpha-IoU,SIoU


    目标检测的两个任务,分类和位置回归,本帖将经典的位置回归损失函数总结如下,按发表时间顺序。

    L1、L2、smooth L1 loss

    提出smooth L1 loss的论文:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    L1最低点是不可导的,所以势必不会收敛到最低点,可能会在最优解附近震荡。而L2损失容易在离群点产生梯度爆炸的问题。smooth L1则集两者的优点于一身。
    在这里插入图片描述

    IoU loss

    提出IoU loss的论文:在这里插入图片描述

    不论是L2还是smooth L1 loss都没有考虑到四个点的关联性尺度不变性,这个是比较致命的缺点,当两对预测框与GT框的IoU相同时,尺度更大那一对loss会更高,或者如下图,用左下角和右上角点计算损失,L2 loss相同,但IoU却不相同。
    在这里插入图片描述
    IoU损失有两种形式,后一种更为常用:
    L I o U = − l n I o U L_{IoU} = -lnIoU LIoU=lnIoU
    L I o U = 1 − I o U L_{IoU} = 1-IoU LIoU=1IoU
    这样,BBox回归问题的评价指标和优化指标已经重叠统一了。

    GIoU loss

    提出GIoU loss 的论文:
    在这里插入图片描述
    IoU loss 最大的缺点就是两个框不相交时IoU横为0,损失恒为1,没法提供优化的梯度。
    如下图(图来自CHEN), 右图的loss应该更小才对,但IoU loss却是相同的。
    在这里插入图片描述

    GIoU引入了一个最小闭包区的概念,即能将预测框和真实框包裹住的最小矩形框,其中, A c A_c Ac 为最小闭包区, u u u为预测框和真实框的并集,那么GIoU第二项的分子就是上图中白色区域,白色区域比最小闭包区的值越高,loss越高。
    在这里插入图片描述

    DIoU loss

    在这里插入图片描述
    在这里插入图片描述
    上图中三种情况下IoU和GIoU的loss均为0.75,但显然第三种情况应该是更好的预测结果,而DIoU loss就可以更精确地表示这些情况,其计算公式如下式,相比IoU损失多了一项惩罚项,是
    [ 两 个 框 中 心 点 的 欧 式 距 离 最 小 闭 包 矩 形 对 角 线 长 度 ] 2 [{\frac{两个框中心点的欧式距离}{最小闭包矩形对角线长度}}]^2 [线]2
    在这里插入图片描述
    在这里插入图片描述

    DIoU还有如下的优势:

    • 因为DIoU直接最小化两个框的距离,所以收敛得比GIoU快很多,如下图示。尤其是在两个框的相对方向是垂直或水平时。
    • 作为NMS的评价指标时能获得更好的效果。
      在这里插入图片描述

    CIoU loss(Complete IoU Loss)

    与DIoU loss出自同一篇文章
    作者认为,好的IoU损失应该考虑三个因素:

    1. 相交的面积
    2. 中心点距离
    3. 长宽比

    而IoU和GIoU loss只考虑了第一个因素,DIoU loss多考虑了第二个因素。
    作者又提出了CIoU loss,可以更精确衡量两个框的重合度和相似度,比DIoU多了一个长宽比的惩罚项 v v v α \alpha α是平衡系数。
    在这里插入图片描述
    在这里插入图片描述
    作者通过实验表明,CIoU相比其他IoU损失取得了更好的实验结果。

    Focal-EIoU loss

    在这里插入图片描述
    这个损失我看知乎上大家评论不是很好啊,自己也还没细看,挖个坑。

    Alpha IoU

    在这里插入图片描述
    简单说就是对IoU loss家族做了幂次运算,如下图的公式。

    在这里插入图片描述
    在这里插入图片描述
    如上图,alpha-IoU可以通过自适应地提高高IoU对象的损失和梯度来提高BBox回归精度,而且对小数据集和噪声BBox提供了更好的稳健性。

    SIoU loss

    在这里插入图片描述
    5月份热乎的还是预印本的新损失,但看效果比CIoU提升很多,挖个坑。

  • 相关阅读:
    Programming Languages PartC Week2学习笔记——OOP(面向对象) vs FD(函数式)
    039-java集合框架的作用及使用(Collection,Set,Map,SimpleDateFormat)
    mac怎么恢复删除的文件,mac照片图库删除后怎么恢复
    IDEA的Database连接oceanbase
    Windows上使用vs编译x264的方法
    LoadBalancer负载均衡服务调用
    IP地址怎么实现https
    C语言——扫雷游戏最全讲解
    算法基础 1.2 归并排序
    java虚拟机详解篇三(JVM和类)
  • 原文地址:https://blog.csdn.net/kill2013110/article/details/125589078