| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 目标检测损失函数 -> 正文阅读 |
|
[人工智能]目标检测损失函数 |
目录 3、IOU LOSS(Intersection over Union Loss) 4、GIOU LOSS(Generalized IOU Loss ) 5、DIOU LOSS(Distance IOU Loss) 5、CIOU LOSS(Complete IOU Loss) ????????损失由两部分组成,分别是类别误差损失以及定位误差损失。 1、分类损失????????采用一个二分类的softmax loss用来做分类,分类损失如下: ????????其中,Sj为最后一层的softmax输出,T为类别数,yi为对应的真值标记。 2、smooth L1 Loss????????常用的L1、L2损失定义如下: ????????smooth L1 用来做回归,公式如下: ????????其中x、y、w、h分别为目标的中心点及宽高,ti为真值、ui为对应的预测值,smooth L1函数形式如下: ????????L1损失、L2损失、smooth L1损失的优缺点: ????????对三个函数求导得: 从损失函数对x的导数可知:? ????????L1损失函数对x的导数为常数,在训练后期,x很小时,如果learning rate 不变,损失函数会在稳定值附近波动,很难收敛到更高的精度。 ????????L2损失函数对x的导数在x值很大时,其导数也非常大,在训练初期不稳定。 ????????smooth L1损失函数完美的避开了L1和L2损失的缺点。 smooth L1损失缺点: ????????(1)上面的三种Loss用于计算目标检测的Bounding Box Loss时,独立的求出4个点的Loss,然后进行相加得到最终的Bounding Box Loss,这种做法的假设是4个点是相互独立的,实际是有一定相关性的。 ????????(2)实际评价框检测的指标是使用IOU,这两者是不等价的,多个检测框可能有相同大小的Loss,但IOU可能差异很大,为了解决这个问题就引入了IOU LOSS。 3、IOU LOSS(Intersection over Union Loss)改进smooth L1?LOSS的三个缺点: ????????(1)检测评价的方式是使用IOU,两者不等价。L1或者L2 Loss相同的框,其IOU 不是唯一的。 ????????(2)没有考虑其相关性。实际4个坐标点具有一定的相关性。 ????????(3)基于L1和L2的距离的loss对于尺度不具有不变性。 IOU LOSS计算: ????????IOU为两个矩形的面积交并比。IOU计算如下: 图1 IOU示意图 ????????红框A、绿色框B分别为两个目标检测框,它们之间的IOU计算公式为: ????????IOU LOSS公式如下: 4、GIOU LOSS(Generalized IOU Loss )改进IOU LOSS的两个缺点: ????????(1)当预测框和目标框不相交时,IOU(A,B)=0,不能反映A,B距离的远近,此时损失函数不可导,IOU Loss 无法优化两个框不相交的情况。 ????????(2)假设预测框和目标框的大小都确定,只要两个框的相交值是确定的,其IOU值是相同时,IOU值不能反映两个框是如何相交的。 ????????GIOU Loss在IOU Loss基础上增加一个惩罚项,为包围预测框和的最小区域大小,当bbox的距离越大时,惩罚项将越大。 GIOU Loss公式如下: C为A、B的最小外接矩形。如下图: 图2 差集示意图 ????????Sa、Sb、Sc分别为矩形框A、B、C的面积,称为矩形框A、B的差集,即图中蓝色阴影部分的面积。惩罚项为差集/并集。 GIOU的性质: ????????(1)GIOU具有尺度不变性。 ????????(2)GIOU的值域为[-1,1]。当A->B时,GIOU=1;当A和B不相交时,GIOU=-1。 GIOU的几个限制: ????????绿色表目标框、黑色表示anchor框。 ????????边框回归GIOU损失(第一行),蓝色为GIOU损失预测框。GIOU损失一般会增加预测框的大小,使其与目标框重叠。 ????????DIOU损失(第二行),红色为DIOU损失预测框。DIOU损失则直接使用中心点的归一化距离最小化。 ????????由于很大程度依赖IOU项、退化问题,GIOU需要更多次迭代次数来收敛。 5、DIOU LOSS(Distance IOU Loss)改进GIOU LOSS的退化问题: ????????(1)当目标框完全包裹预测框的时候,IOU和GIOU的值都一样,此时GIOU退化为IOU, 无法区分其相对位置关系。 启发点: 好的目标框回归损失应该考虑三个重要的几何因素:
????????DIOU LOSS,相对于GIOU Loss收敛速度更快。该Loss考虑了(1)重叠面积和(2)中心点距离,但没有考虑到长宽比(CIOU Loss考虑到了)。 ????????(1)通常基于IOU-based的Loss可以定义为: ????????其中定义为预测框B和目标框的惩罚项。 ????????(2)DIOU中的惩罚项表示为: ????????其中和分别表示和的中心点,表示欧式距离,表示和的最小外界矩形的对角线距离,即中心点的欧式距离/最小外接矩形的对角线距离。如下图所示。 ????????可以将DIOU替换IOU用于NMS算法当中,也即论文提出的DIOU-NMS,实验结果表明有一定的提升。所以,DIOU Loss function定义为: ????????绿色框为目标框,黑色框为预测框,灰色框为两者的最小外界矩形框,d表示目标框和真实框的中心点距离,c表示最小外界矩形框的距离。 DIOU的性质: ????????(1)尺度不变性。 ????????(2)当两个框完全重合时,Liou=Lgiou=Ldiou=0,当2个框不相交时,Lgiou=Ldiou=2。 ????????(3)DIOU Loss可以直接优化2个框直接的距离,比GIOU Loss收敛速度更快。 ????????(4)对于目标框包裹预测框的这种情况,DIOU Loss可以收敛的很快,而GIOU Loss此时退化为IOU Loss收敛速度较慢。 ????????DIOU Loss在IOU Loss基础上添加一个惩罚项,该惩罚项用于最小化两个bbox的中心点距离。DIOU收敛速度和效果都很好,且DIOU能够用于NMS计算中,不仅考虑了重叠区域还考虑了中心点距离。 ????????使用DIOU作为NMS的标准,不仅考虑了重叠区域,还考虑了中心点距离。 DIOU-NMS能够很好的引导bbox的消除 5、CIOU LOSS(Complete IOU Loss)????????CIOU的惩罚项是在DIOU的惩罚项基础上加了一个影响因子av,这个因子把预测框长宽比拟合目标框的长宽比考虑进去。 ????????其中a是用于做trade-off的参数。 ????????v是用来衡量长宽比一致性的参数,定义为: ????????CIOU Loss function的定义为: ????????CIOU Loss,其收敛的精度更高,重叠面积、中心点距离、长宽比三个因素都考虑到了。 指标提升对比: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 1:41:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |