IOU->GIOU->CIOU->Focal_loss

总览

2022-1-3号补充

  1. 该链接下关于算是函数讨论

IOU loss

绿色代表Gtbox,黑色代表最终预测的边界框

但是去计算这三种L2损失时都是一样的(8.41),但是去计算IOU时很明显他们的IOU是不一样的---->说明L2损失不能很好的衡量两个目标边界框的重合程度

GIOU loss

上图中绿色的是真实目标边界框,红色的边界框是最终预测的边界框
外面的蓝色目标边界框就是用一个小的矩型将这两个框住-->这个蓝色目标边界框的面积=A^C,
这里的u等于蓝色和红色两个目标边界框并集的部分
  • Glou缺点:当两个目标边界框是并集是GLOU退化层LOU(后面的一项退化成了0)

Diou loss

IOU: 缺点: 收敛特别的慢
GIOU:缺点: 回归的不够准确 上图中的第一行(GLOU)使用GLOU来训练网络-->让预测目标边界框尽可能地回归到真实地目标边界框
(这里的黑色代表anchor(default box),绿色是Groud truth, 蓝色是最终预测的边界框)--->目的是使蓝色边界框与绿色边界框重合在一起
(1--> 分别表示迭代40步,100步,400步) 第2行的DLOUloss,(20th--40th--120th)---->从而说明DLOU比GLOU收敛更快 观察上图的右侧--->说明IOU和GLOU不能很好的说明目标边界框重合的位置关系
  • DIOU计算公式:

上图中的ρ^2 表示b和b^gt 的欧式距离
观察上图:b是预测目标边界框的中心点b^gt 是真实目标的中心点坐标, ρ^2 是中心点的距离的平方,这里的c是这两个矩形的最小外接框的对角线长度 所以,当两个目标边界框重合在一起的时候d^2=0,当这两个边界框相聚无穷远的时候d^2 趋近于c^2

Ciou loss

  • 样例

Focal loss

Focal loss针对one-stage模型,正负样本差距太大会导致
2.类别不平衡
为什么在two-stage中没有类别不均衡的问题?
1.在two-stage中的第一阶段也存在不平衡问题,但是是通过第二阶段的检测来确定最终的目标的(例如faster-rcnn经过rpn后就大概2000个框了)

  • Focal Loss--->针对正负样本极不平衡的情况

由上图可得例如当a=0.75时,可以增加正样本的权重,减少负样本的(背景)权重

  • 引入a对于计算cross entropy的计算(这里的a是一个超参数,来平衡正负样本的权重)

由上面右边的图可得: 当该样本是好分的样本是那么(1-p_t)^r能够降低好分样本的权重

  • 降低简单样本的权重,因此能够聚焦于难分的负样本,因此作者引入了(1−P_t )^γ

  • 这里的a_t 是超参数

第一列代表的是预测概率
第二列代表的是真实地标签(1对应是正样本0对应的是负样本)
第三列的CE是cross entropy loss
第四列代表的是focal loss
第五列的rate代表的是CE和FL的比值 说明Focal loss--->降低易分样本的权重的功能 使用Focal loss之后更专注于学习难学习的样本,对于简单样本就降低他的学习的权重 Focal的缺点是易受噪音的干扰(所以这里可以在标注是要尽可能地正确)

IOU->GIOU->CIOU->Focal_loss的更多相关文章

  1. 目标检测中的IOU和CIOU原理讲解以及应用(附测试代码)

    上期讲解了目标检测中的三种数据增强的方法,这期我们讲讲目标检测中用来评估对象检测算法的IOU和CIOU的原理应用以及代码实现. 交并比IOU(Intersection over union) 在目标检 ...

  2. IoU、GIoU、DIoU、CIoU损失函数

    IoU.GIoU.DIoU.CIoU损失函数 目标检测任务的损失函数由Classificition Loss和Bounding Box Regeression Loss两部分构成.目标检测任务中近几年 ...

  3. YOLOV4源码详解

    一. 整体架构 整体架构和YOLO-V3相同(感谢知乎大神@江大白),创新点如下: 输入端 --> Mosaic数据增强.cmBN.SAT自对抗训练: BackBone --> CSPDa ...

  4. Yolov4性能分析(下)

    Yolov4性能分析(下) 六. 权重更新 "darknet/src/detector.c"--train_detector()函数中: ...... /* 开始训练网络 */ f ...

  5. 八分音符(频率)卷积算子 Octave Convolution

    为什么读此系列文章? 优化数学和计算理论帮助机器学习完成问题分类: 1)按照领域划分,比如计算机视觉,自然语言处理,统计分析预测形: 2)按照算法复杂划分,比如是否是NP-Hard问题,是否需要精确解 ...

  6. CVPR2019目标检测方法进展综述

    CVPR2019目标检测方法进展综述 置顶 2019年03月20日 14:14:04 SIGAI_csdn 阅读数 5869更多 分类专栏: 机器学习 人工智能 AI SIGAI   版权声明:本文为 ...

  7. CVPR2019目标检测论文看点:并域上的广义交

    CVPR2019目标检测论文看点:并域上的广义交 Generalized Intersection over Union Generalized Intersection over Union: A ...

  8. YOLO V4的模型训练

    1.YOLO V4模型训练的基本思路 所有机器学习涉及模型训练,一般都有训练集.验证集.测试集,因此需要准备数据集.有了数据集,再调用训练的算法,获取训练的结果.v3.v4模型训练方法相同. 2.YO ...

  9. AAAI 2020 | DIoU和CIoU:IoU在目标检测中的正确打开方式

    论文提出了IoU-based的DIoU loss和CIoU loss,以及建议使用DIoU-NMS替换经典的NMS方法,充分地利用IoU的特性进行优化.并且方法能够简单地迁移到现有的算法中带来性能的提 ...

  10. iou与giou对比

    设矩形1大小为100x100,矩形2从左上角顶点重合开始,向右滑动250个单位. c++源码(基于opencv3.4.0) float iou(const cv::Rect& r1, cons ...

随机推荐

  1. safari浏览器fixed后,被软键盘遮盖的问题—【未解决】

    safari浏览器fixed后,被软键盘遮盖的问题,已经有好多人问相关的问题,应该是问的角度不一样,还的再次提出咯. 问题描述 测试环境:ios 10.2/10.3 简单来说就是在html5页面中底部 ...

  2. 【Android开发】EasyPermissions 请求权限

    安卓6.0以后,开发应用的时候,仅在AndroidManifest.xml中申请权限已经不可以了,需要在代码中动态申请. 现在看一个google推出的机制:EasyPermissions 引入步骤: ...

  3. MFC软件国际化的几个问题及其解决方案

    作者:马健 邮箱:stronghorse_mj@hotmail.com主页:https://www.cnblogs.com/stronghorse/ 以前我以为PDG相关软件只会在国内流行,所以发行简 ...

  4. smdms超市订单管理系统之登录功能

    一.超市订单管理系统准备阶段 Supermarket order management system 创建数据库 数据库代码放置如下 点击查看数据库address代码 CREATE TABLE `sm ...

  5. 动态代理-JDK

    代理模式:假设一个场景,你的公司是一位软件公司,你是一位软件工程师,显然客户带着需求不会去找你谈,而是去找商务谈,此时商务就代表公司. 商务的作用:商务可以谈判:也有可能在开发软件之前就谈失败,此时商 ...

  6. LC-26

    class Solution { public int removeDuplicates(int[] nums) { int slowIndex = 0, fastIndex = 1; if (num ...

  7. linux ping的三个数字(56,84,64)

    参考:ping 深入剖析:https://www.cnblogs.com/aozhejin/p/15917312.html windows默认是32字节,linux是56字节说的都是数据包大小注意:1 ...

  8. Oracle集群 & Grid(rac)配置,反推创建过程(重要)。

    目前机器上,oracle都是安装好的,那么我们怎么知道,之前的安装过程大概是什么样子呢? 大致安装oracle集群的内容: 一.准备和配置: 1.网卡 2.ip资源 3.scanip 4.hosts ...

  9. CURDATE()与NOW()的区别

    两者都是mysql中的函数,都是得到当前时间,区别是: CURDATE()查询出的是当前天的开始时间点,比如今天是 2015.02.03号,那不管我在今天什么时间点查询,结果都是今天的凌晨,即今天的开 ...

  10. mount挂载命令

    了解命令mount,这是一个挂载命令,挂载的意思是指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件.当在 Linux 系统中使用硬件 ...