GIoU Loss

参考文献:Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression

GIoU是源自IoU的一种边框预测的损失计算方法,在目标检测等领域,需要对预测边框(pre BBox)与实际标注边框(ground truth BBox)进行对比,计算损失。在Yolo算法中,给定预测值与ground truth的 x\y\w\h 进行预测,采用回归损失。但实际上,回归损失并不是该问题的最好损失函数,因为其只关注 x\y\w\w 对应的“距离”,而本质上我们想要得到 IoU 值比较大的预测框,两者联系并不大。那么为什么不直接采用IoU值作为损失函数呢? 因为一旦预测框与真实框不相交,那么IoU都为0,也就是说,在很大的范围内(不相交的区域),损失函数是没有梯度的,因此才有了GIoU Loss(Generalized Intersection over Union)

1 为什么基于距离的损失函数不行?


如上图所示,在基于L1和L2范数的度量下,距离相同的两个框框,实际IoU值可能相差很远,所以说,这类损失函数在预测边界框时并不是一个好的选择!

2 GIoU的定义


其中:C代表包围A、B的最小体积(或面积),A、B是啥形状,C就是啥形状,你懂的; |C(A U B)| 为 C - (A U B)

性质:

     1) 当IoU值为1时,GIoU 为 1,即|A U B| = |A ∩ B|;2) Iou为0时,GIoU<=0;3) -1<= GIoU <=1;4) GIou <= IoU;

英文原文:For two arbitrary convex shapes (volumes) A, B ⊆ S ∈Rn, we first find the smallest convex shapes C ⊆ S ∈ Rnenclosing both A and B. For comparing two specific types of geometric shapes, C can be from the same type. For
example, two arbitrary ellipsoids, C could be the smallest ellipsoids enclosing them. Then we calculate a ratio between the volume (area) occupied by C excluding A and B and divide by the total volume (area) occupied by C. This represents a normalized measure that focuses on the empty volume (area) between A and B. Finally GIoU is attained by subtracting this ratio from the IoU value.

  1. Similar to IoU, GIoU as a distance, e.g. LGIoU = 1 − GIoU, holding all properties of a metric such as non-negativity, identity of indiscernibles, symmetry and triangle inequality.
  2. Similar to IoU, GIoU is invariant to the scale of the problem.
  3. GIoU is always a lower bound for IoU, i.e. ∀A, B ⊆ S GIoU(A, B) ≤ IoU(A, B), and this lower bound becomes tighter when A and B have a stronger shape

GIoU作为损失函数


可见计算GIoU损失的方式其实就是计算GIoU,只不过最终结果返回的时1-GIoU。这是因为1-GIoU的取值范围在[0,2]上,且有一定的“距离”性质,即两个框重叠区域越大,损失越小,反之越大。

写在最后:

本文是对作者原文的总结,如有疑问,欢迎讨论。

GIoU Loss 损失函数浅析相关推荐

  1. 【GIoU loss】GIoU loss损失函数理解

    文章目录 1 引言 2 问题分析 3 GIoU Loss计算过程 4 IoU和GIoU对比分析 5 代码实现IoU与GIoU的对比可视化 6 感谢链接 1 引言 目标检测任务的损失函数由Classif ...

  2. GIOU loss+DIOU loss+CIOU loss

    一.IOU 1.GIOU解决没有交集的框,IOU为0,其损失函数导数为0,无法优化的问题. 图1 GIOU,IOU,l2范数差异 a)可看出 l2值一样,IOU值是不一样的,说明L1,L2这些Loss ...

  3. 目标检测算法之CVPR2019 GIoU Loss

    目标检测算法之CVPR2019 GIoU Loss 首先说一下GIOU的计算方式: 然后计算C \ (A ∪ B) 的面积与C的面积的比值,注:C \ (A ∪ B) 的面积为C的面积减去A∪B的面积 ...

  4. pytorch 区间loss 损失函数

    pytorch 区间loss 损失函数 我们知道sigmoid可以把值转化为0-1之间. tanh函数可以把值转化到[-1,1]之间, 但是在回归时,希望梯度是均匀的,有么有别的方法呢? 答案是肯定的 ...

  5. Keras框架下的loss损失函数

    在Keras框架中有如下几种loss损失函数: ①mean_squared_error或mse:均方误差是反映估计量与真实量之间差异程度的期望值,常被用于评价数据的变化程度,预测数据的精确度. ②me ...

  6. 神经网络训练解决loss、validation loss(损失函数)波动或不收敛问题

    神经网络训练解决loss.validation loss(损失函数)波动或不收敛问题 1.没有对数据进行预处理.数据分类标注是否准确?数据是否正确对应标签或者是否有错误数据? 2.将数据进行归一化.将 ...

  7. Focal Loss损失函数(超级详细的解读)

     什么是损失函数?        1.什么是损失呢? 在机器学习模型中,对于每一个样本的预测值与真实值的差称为损失. 2.什么是损失函数呢? 显而易见,是一个用来计算损失的函数.它是一个非负实值函数, ...

  8. 剖析Focal Loss损失函数: 消除类别不平衡+挖掘难分样本 | CSDN博文精选

    作者 | 图像所浩南哥 来源 | CSDN博客 论文名称:< Focal Loss for Dense Object Detection > 论文下载:https://arxiv.org/ ...

  9. [人工智能-深度学习-14]:神经网络基础 - 常见loss损失函数之逻辑分类,对数函数,交叉熵函数

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

最新文章

  1. 菜鸟学习之linux用户行为日志审计方案
  2. android启动第三方应用
  3. 皮一皮:再一次,有钱人的世界我不懂...
  4. 在TreeView查找某一节点
  5. ARM中断分析之四:WinCE的OAL层的中断分析
  6. 万年自学党聊聊如何选择编程学习资源?
  7. 2017.9.4 斜堆 失败总结
  8. js获取当前时间戳,仿PHP函数模式
  9. MikroTik ROS软路由OSPF命令配置实例
  10. 20190830每日一句
  11. java爬取网易云歌单_爬取网易云音乐所有歌单
  12. HTML页面跳转的5种方法。
  13. 精神小伙儿探秘JVM( 六)
  14. 多邻国学英语 tips
  15. linux mtd 命令,Linux MTD介绍
  16. 宽屏电脑应用不全屏显示问题
  17. Shell Bad substitution的解决方法
  18. 软件设计七大设计原则
  19. Python电子相册
  20. Step1:模型 16个相机参数(内参、外参、畸变参数)

热门文章

  1. jquery.html加换行符,在使用jQuery时添加元素间的换行符或空格.append()
  2. sqlserver之清空表内数据
  3. SQLite数据库中rowid使用
  4. 微信小程序——小程序去除文本中的<br>标签
  5. Spring Boot学习笔记-Nginx+Jar包部署项目
  6. 单片机应用系统设计技术——红外遥控模拟
  7. macbook此位置没有服务器,macbook找不到指定服务器的主机
  8. workflow仿钉钉审批流程设置
  9. 欧几里得定理求最大公约数
  10. PPTP拨号过程分析