详解GIoU、DIoU、CIoU Loss
GIoU、DIoU、CIoU详解
- GIoU、DIoU、CIoU
- GIoU
- 优势
- 核心实现
- 公式
- Code
- DIoU(Distance-IoU)
- Motivation
- Contributions
- Detail
- Result
- Discussion
GIoU、DIoU、CIoU
随着IoU Loss在目标检测领域的应用,最近有几篇典型的工作提出去改进IoU Loss,本文将依次介绍GIoU、DIoU和CIoU Loss
GIoU
优势
- 首先可以实现较全场景以类IoU Loss为目标直接优化,使得优化目标和最终的评估目标一致。由于IoU Loss的关键问题在于当两个物体没有交集的时候,它就退化为常数1,失去优化目标
- 相比于传统的回归loss,它具备尺度不变形
- 极限情况下,GIoU(A,B) = IoU(A, B)
核心实现
公式
GIoU(A,B)=IoU(A,B)−∣C∣−∣AUB∣∣C∣GIoU(A, B) = IoU(A, B) - \frac{|C| - |AUB|}{|C|} GIoU(A,B)=IoU(A,B)−∣C∣∣C∣−∣AUB∣
Lossgiou=1−GIoULoss_{giou} = 1 - GIoU Lossgiou=1−GIoU
Code
# 计算C
A = np.random.random([N, 4])
B = np.random.random([N, 4])
C = np.zero_like(A)
C[:, :2] = np.min(A[:, :2], B[:, :2])
C[:, 2:] = np.min(A[:, 2:], B[:, 2:])
DIoU(Distance-IoU)
Motivation
GIoU训练过程较慢,作者做的模拟实验见下图
GIoU倾向得到一个较大的bbox
GIoU 区分两个对象之间的对齐方式比较间接,仅通过引入C的方式来反应重叠的方式,不够直接。如下图所示。第二幅图展示来当GIoU一样的情况下,DIoU是不一致的(前提是,中心点重合的情况下认为拟合的最好)。
Contributions
- 提出了基于IoU Loss的一般性范式,这是我认为最大的贡献
- 提出了DIoU Loss,在IoU loss的基础上将central之间的距离作为惩罚项
- 在各个数据集和detector上都取得了不错的效果
Detail
- 范式:作为认为IoU loss应该优化的目标包括三个方面
- 两个框之间的重合度
- 中心点之间的距离
- 长宽比的相似性
- 作者基于上述的1&&2,提出了DIoU Loss,结合1&&2&&3提出了CIoU Loss(C is complete)
- DIoU Loss,定义如下所示,其中关键中心点之间距离的惩罚项的分子代表两个框中心点之间的欧式距离。分母是GIoU中矩阵C的对角线变长。分母起到了归一化的作用。
LDIoU=1−IoU+p2(b,bgt)c2L_{DIoU} = 1 - IoU + \frac{p^2(b,b_{gt})}{c^2} LDIoU=1−IoU+c2p2(b,bgt) - CIoU的定义如下所示,它在DIoU的基础上增加了对长宽比的惩罚项
v=4π2(arctanwgthgt−arctanwh)2v=\frac{4}{\pi^2}(arctan\frac{w^{gt}}{h^{gt}}-arctan\frac{w}{h})^2 v=π24(arctanhgtwgt−arctanhw)2
LCIoU=LGIoU+αvL_{CIoU} = L_{GIoU} + \alpha v LCIoU=LGIoU+αv
α=v(1−IoU)+v\alpha=\frac{v}{(1-IoU)+v} α=(1−IoU)+vv
Result
Discussion
- 正如文中所说,Faster RCNN的改进没有SSD和YOLO那么大,因为Faster RCNN在第二阶段的时候框基本上已经有一个较好的位置,不会出现距离GT较远的情况
- 可能不适应于密集场景,尤其是当两个物体本身就相聚较近的时候,central也会较近。尤其是DIoU NMS的时候会将这些物体消除。这种场景可能还是Multiple Instance Prediction效果较好。
详解GIoU、DIoU、CIoU Loss相关推荐
- 目标检测回归损失函数简介:SmoothL1/IoU/GIoU/DIoU/CIoU Loss
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:极市平台 目标检测任务的损失函数由Classificitio ...
- 目标检测回归损失函数:SmoothL1/IoU/GIoU/DIoU/CIoU Loss
文章目录 1. Smooth L1 Loss 1.1 假设x为预测框和真实框之间的数值差异,常用的L1和L2 Loss定义为: 1.2 上述的3个损失函数对x的导数分别为: 1.3 实际目标检测框回归 ...
- IoU GIoU DIoU CIoU分析比较
IoU GIoU DIoU CIoU分析比较 IoU 1. IoU的简介及原理解析 2.IOU的应用有哪些? GIoU 1.Iou的缺陷 2.GIoU的简介及原理解析 3.GIoU的性质 DIoU & ...
- IOU .GIOU.DIOU.CIOU
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 IOU .GIOU.DIOU.CIOU 一.IOU(Intersection over Union) 二.GIOU(Generaliz ...
- IOU, GIOU, DIOU, CIOU
IOU IOU是用来衡量两个边界框的重叠程度的.普通的IOU也分为两种,一种是交并比,一种是最小面积与并集的比 计算公式如下: 并集面积 = 面积A + 面积B - 交集面积 交集面积 = 框A与框B ...
- IoU系列(IoU, GIoU, DIoU, CIoU)
写在前面 一.IoU (Intersection over Union) 1.1 IoU的优点 1.2 作为损失函数会出现的问题(缺点) 二.GIoU (Generalized) 三. D ...
- IOU GIOU DIOU CIOU 及代码实现
总体发展过程: IOU IOU(交并比)顾名思义就是两个框的交集除以他们的并集. IOU Loss:IOU Loss = 1 -IOU(比较常用) IOU 的优点:1.能够很好的反应重合的程度 ...
- 基于IOU的损失函数合集, IoU, GIoU, DIoU,CIoU, EIoU
目标检测任务的损失函数一般由 Classificition Loss(分类损失函数)和Bounding Box Regeression Loss(回归损失函数)两部分构成. Bounding ...
- IOU GIOU DIOU CIOU
# -*- coding: utf-8 -*- # @Time : 2022/8/7 10:34 # @Author : hllyzms import mathdef euclidean_distan ...
最新文章
- dot Text Error: System.OutOfMemoryException
- Boost:有序的bimap双图的测试程序
- 远离客户陷阱小故事 转
- linux不挂断运行python文件
- 微软:求你们别再用 IE 浏览器了
- HDFS的JAVA客户端编写
- 别再一知半解啦,索引其实就这么回事!
- sp导出法线_SP导出贴图导Redshift渲染效果不同的问题
- com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote method解决方法
- 音箱后面接口 COM 8欧 70V 100V
- 事件委托(事件代理)
- python后面空格报错_python空格报错
- AdBlock/AdBlock Plus 屏蔽广告
- 2.3 构建C语言入职教程
- linux变量符号生效规则,shell的变量功能
- 计算机视觉中的双目立体视觉和体积度量
- 苹果系统 虚拟机_大连win10远程双系统重装电脑维修7苹果笔记本安装做虚拟机服务mac8...
- 路由器网口1一直闪烁正常吗_网口1一直闪烁上不了网(图文)
- 工作感受月记 201907月
- [python八卦] zz 一位大牛整理的Python资源
热门文章
- 《恒盛策略》国际金价创近一年新高 重仓黄金股基金净值大幅走高
- 【云计算一】云计算基础知识
- windows下redis安装与卸载以及过程中遇到的问题解决方案
- 带你来搭建虚拟机和Redis集群,记得收藏
- java web统计网站访问次数,实现一个统计网站访问量的效能
- iPhone手机测试正版和未翻新,通过序列号查看
- 农业资源环境信息技术研究
- 视界云荣获创业邦2018中国企业服务人气奖TOP10
- 【蓝桥杯选拔赛真题36】Scratch水果超市小程序 少儿编程scratch蓝桥杯选拔赛真题讲解
- SAP MM01 创建物料主数据 [关注公众号后回复MM01获取更多资料]