YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU

这篇具有很好参考价值的文章主要介绍了YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看

前提条件

  • 熟悉Python

相关介绍

  • Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
  • PyTorch 是一个深度学习框架,封装好了很多网络和深度学习相关的工具方便我们调用,而不用我们一个个去单独写了。它分为 CPU 和 GPU 版本,其他框架还有 TensorFlow、Caffe 等。PyTorch 是由 Facebook 人工智能研究院(FAIR)基于 Torch 推出的,它是一个基于 Python 的可续计算包,提供两个高级功能:1、具有强大的 GPU 加速的张量计算(如 NumPy);2、构建深度神经网络时的自动微分机制。

IoU(Intersection over Union)

  • 交并比(IoU)是一种用于衡量两个边界框之间重叠程度的指标。它是通过计算两个边界框的交集面积与并集面积之比来计算的。在目标检测中,IoU通常用于衡量预测框和真实框之间的重叠程度,以评估目标检测算法的准确性。如果IoU值越高,则表示预测框和真实框之间的重叠程度越高,因此预测结果越准确。
    YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • 优点:
    • IoU是目标检测中最常用的指标之一,可以用来评价目标检测算法的准确性。 IoU可以帮助我们确定正样本和负样本。
    • IoU可以帮助我们评估输出框(predict box)和ground truth box之间的重叠程度。
  • 缺点:
    • IoU只能衡量两个边界框之间的重叠程度,不能衡量其他因素,如形状、颜色等。
    • IoU不适用于所有类型的目标检测任务。

由于 I o U IoU IoU的公式定义,作为损失函数会出现的问题。比如,

  1. 当预测框和目标框不相交时,IoU=0,无法反应两个框距离的远近,此时损失函数不可导,IoU无法优化两个框不相交的情况。
    YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  2. 当IoU也相同时,会出现预测框和目标框相交位置不一样的情况,IoU无法区分两者相交情况的不同。
    YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU

GIoU(Generalized-IoU)

  • 在CVPR2019中,论文《Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression》
    的提出了GIoU的思想。由于IoU是比值的概念,对目标物体的scale是不敏感的。然而检测任务中的BBox的回归损失(MSE loss, l1-smooth loss等)优化和IoU优化不是完全等价的,而且 Ln 范数对物体的scale也比较敏感,IoU无法直接优化没有重叠的部分。
  • GIoU是一种用于目标检测的损失函数,它是IoU的改进版。GIoU的全称是Generalized Intersection over Union,它是一种度量和损失函数,用于衡量两个边界框之间的重叠程度。GIoU的目标是在损失函数中加入一个ground truth和预测框构成的闭包的惩罚,它的惩罚项是闭包减去两个框的并集后的面积在闭包中的比例越小越好。GIoU中,增加了相交尺度的衡量方式。
  • 公式: G I o U = I o U − ∣ A c − U ∣ ∣ A c ∣ GIoU=IoU-\frac{|A_c-U|}{|A_c|} GIoU=IoUAcAcU
    公式的含义:先计算两个框的最小闭包区域面积 A c A_c Ac(即同时包含了预测框和真实框的最小框的面积),再计算出 I o U IoU IoU,再计算闭包区域中不属于两个框的区域占闭包区域的比重,最后用 I o U IoU IoU减去这个比重得到 G I o U GIoU GIoU
  • 优点:
    • 它能够反映检测效果,即使在没有重叠区域的情况下,它也能够反映检测效果。
    • GIoU损失函数的目标是在损失函数中加入一个ground truth和预测框构成的闭包的惩罚,它的惩罚项是闭包减去两个框的并集后的面积在闭包中的比例越小越好。
  • 缺点:
    • 计算量大,因为它需要计算两个框之间的交集和并集。此外,GIoU对于小目标和大目标之间的距离不敏感,这可能会导致一些问题.

由于 G I o U GIoU GIoU的公式定义,作为损失函数 L G I o U = 1 − G I o U L_{GIoU}=1-GIoU LGIoU=1GIoU会出现的问题。比如,

  1. 预测框在目标框内部且预测框大小一致的情况,这时预测框和目标框的差集都是相同的,因此这三种状态的GIoU值也都是相同的,这时GIoU退化成了IoU,无法区分相对位置关系。
    YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU

DIoU(Distance-IoU)

  • DIoU是GIoU的改进版,它考虑了目标框和anchor之间的距离、重叠率和尺度,使得目标框回归变得更加稳定,不会像IoU和GIoU一样出现训练过程中发散等问题。
    基于IoU和GIoU存在的问题,作者提出了两个问题:
    • 直接最小化anchor框与目标框之间的归一化距离是否可行,以达到更快的收敛速度?
    • 如何使回归在与目标框有重叠甚至包含时更准确、更快?
  • 公式: D I o U = I o U − ρ 2 ( b , b g t ) c 2 DIoU=IoU-\frac{\rho2(b,b^{gt})}{c^2} DIoU=IoUc2ρ2(b,bgt)
    YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • 其中, b , b g t b,b^{gt} b,bgt 分别代表了预测框和真实框的中心点,且 ρ \rho ρ代表的是计算两个中心点间的欧式距离, c c c代表的是能够同时包含预测框和真实框的最小闭包区域的对角线距离。
  • 优点:
    • 它能够反映检测效果,即使在没有重叠区域的情况下,它也能够反映检测效果。
    • DIoU对于小目标和大目标之间的距离更加敏感,这可能会解决GIoU存在的问题。

由于 D I o U DIoU DIoU的公式定义,作为损失函数 L D I o U = 1 − D I o U L_{DIoU}=1-DIoU LDIoU=1DIoU会出现的问题。比如,

  1. DIoU考虑了重叠面积和中心点距离,当目标框包裹预测框的时候,直接度量2个框的距离,因此DIoU收敛的更快,但并没有考虑到长宽比
    YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
    从上图可以看到,不同长宽比的预测框, ρ \rho ρ两个中心点间的欧式距离相同。

CIoU (Complete-IoU)

  • CIoU是DIoU的改进版,它在DIoU的基础上加入了长宽比的计算,使得目标框回归更加稳定,不会像IoU和GIoU一样出现训练过程中发散等问题。
  • 公式: C I o U = I o U − ρ 2 ( b , b g t ) c 2 − α v CIoU=IoU - \frac{\rho2(b,b^{gt})}{c^2} - \alpha v CIoU=IoUc2ρ2(b,bgt)αv
  • 其中, b , b g t b,b^{gt} b,bgt分别代表了预测框和真实框的中心点,\rho代表的是计算两个中心点间的欧式距离, c c c代表的是能够同时包含预测框和真实框的最小闭包区域的对角线距离, α \alpha α是权重函数, v v v分别代表了预测框和真实框的长宽比之间的差异。
  • v v v是衡量长宽比一致性的参数,具体地, v v v的计算公式如下
    v = 4 π 2 ( arctan ⁡ ( w g t h g t ) − arctan ⁡ ( w p h p ) ) v = \frac{4}{\pi^2}(\arctan(\frac{w^{gt}}{h^{gt}}) - \arctan(\frac{w_p}{h_p})) v=π24(arctan(hgtwgt)arctan(hpwp))
    其中, w p w_p wp h p h_p hp分别代表了预测框的宽和高, w g t w^{gt} wgt h g t h^{gt} hgt分别代表了真实框的宽和高。
  • C I o U CIoU CIoU的损失函数为 L C I o U = 1 − C I o U L_{CIoU} = 1 - CIoU LCIoU=1CIoU

EIoU(Efficient-IoU)

  • CIoU Loss虽然考虑了边界框回归的重叠面积、中心点距离、纵横比。但是通过其公式中的v反映的纵横比的差异,而不是宽高分别与其置信度的真实差异,所以有时会阻碍模型有效的优化相似性。针对这一问题,有学者在CIoU的基础上将纵横比拆开,提出了EIoU Loss,并且加入Focal聚焦优质的锚框,该方法出自于2021年的一篇文章《Focal and Efficient IOU Loss for Accurate Bounding Box Regression》
  • 公式: E I o U = I o U − ρ 2 ( b , b g t ) c 2 − ρ 2 ( w , w g t ) c w 2 − ρ 2 ( h , h g t ) c h 2 EIoU=IoU - \frac{\rho2(b,b^{gt})}{c^2} - \frac{\rho2(w,w^{gt})}{c_w^2} - \frac{\rho2(h,h^{gt})}{c_h^2} EIoU=IoUc2ρ2(b,bgt)cw2ρ2(w,wgt)ch2ρ2(h,hgt)
  • 其中 C w C_w Cw C h C_h Ch 是覆盖两个Box的最小外接框的宽度和高度。
  • EIoU的惩罚项是在CIoU的惩罚项基础上将纵横比的影响因子拆开分别计算目标框和锚框的长和宽,该损失函数包含三个部分:重叠损失,中心距离损失,宽高损失,前两部分延续CIoU中的方法,但是宽高损失直接使目标盒与锚盒的宽度和高度之差最小,使得收敛速度更快。EIoU损失函数惩罚项公式如下:
    L E I o U = 1 − E I o U = 1 − I o U + ρ 2 ( b , b g t ) c 2 + ρ 2 ( w , w g t ) c w 2 + ρ 2 ( h , h g t ) c h 2 L_{EIoU}=1-EIoU=1- IoU + \frac{\rho2(b,b^{gt})}{c^2} + \frac{\rho2(w,w^{gt})}{c_w^2} + \frac{\rho2(h,h^{gt})}{c_h^2} LEIoU=1EIoU=1IoU+c2ρ2(b,bgt)+cw2ρ2(w,wgt)+ch2ρ2(h,hgt)
  • 优点:
    • EIoU在CIoU的基础上分别计算宽高的差异值取代了纵横比。

YOLOv5源代码中加入EIoU

在YOLOv5项目utils\metrics.py代码中,bbox_iou函数只包含GIoU, DIoU, CIoU的计算,

def bbox_iou(box1, box2, x1y1x2y2=True, GIoU=False, DIoU=False, CIoU=False, eps=1e-7):
    # Returns the IoU of box1 to box2. box1 is 4, box2 is nx4
    box2 = box2.T

    # Get the coordinates of bounding boxes
    if x1y1x2y2:  # x1, y1, x2, y2 = box1
        b1_x1, b1_y1, b1_x2, b1_y2 = box1[0], box1[1], box1[2], box1[3]
        b2_x1, b2_y1, b2_x2, b2_y2 = box2[0], box2[1], box2[2], box2[3]
    else:  # transform from xywh to xyxy
        b1_x1, b1_x2 = box1[0] - box1[2] / 2, box1[0] + box1[2] / 2
        b1_y1, b1_y2 = box1[1] - box1[3] / 2, box1[1] + box1[3] / 2
        b2_x1, b2_x2 = box2[0] - box2[2] / 2, box2[0] + box2[2] / 2
        b2_y1, b2_y2 = box2[1] - box2[3] / 2, box2[1] + box2[3] / 2

    # Intersection area
    inter = (torch.min(b1_x2, b2_x2) - torch.max(b1_x1, b2_x1)).clamp(0) * \
            (torch.min(b1_y2, b2_y2) - torch.max(b1_y1, b2_y1)).clamp(0)

    # Union Area
    w1, h1 = b1_x2 - b1_x1, b1_y2 - b1_y1 + eps
    w2, h2 = b2_x2 - b2_x1, b2_y2 - b2_y1 + eps
    union = w1 * h1 + w2 * h2 - inter + eps

    iou = inter / union
    if CIoU or DIoU or GIoU:
        cw = torch.max(b1_x2, b2_x2) - torch.min(b1_x1, b2_x1)  # convex (smallest enclosing box) width
        ch = torch.max(b1_y2, b2_y2) - torch.min(b1_y1, b2_y1)  # convex height
        if CIoU or DIoU:  # Distance or Complete IoU https://arxiv.org/abs/1911.08287v1
            c2 = cw ** 2 + ch ** 2 + eps  # convex diagonal squared
            rho2 = ((b2_x1 + b2_x2 - b1_x1 - b1_x2) ** 2 +
                    (b2_y1 + b2_y2 - b1_y1 - b1_y2) ** 2) / 4  # center distance squared
            if CIoU:  # https://github.com/Zzh-tju/DIoU-SSD-pytorch/blob/master/utils/box/box_utils.py#L47
                v = (4 / math.pi ** 2) * torch.pow(torch.atan(w2 / h2) - torch.atan(w1 / h1), 2)
                with torch.no_grad():
                    alpha = v / (v - iou + (1 + eps))
                return iou - (rho2 / c2 + v * alpha)  # CIoU
            return iou - rho2 / c2  # DIoU
        c_area = cw * ch + eps  # convex area
        return iou - (c_area - union) / c_area  # GIoU https://arxiv.org/pdf/1902.09630.pdf
    return iou  # IoU

将EIoU计算加入到源代码中,修改代码如下:

def bbox_iou(box1, box2, x1y1x2y2=True, GIoU=False, DIoU=False, CIoU=False, EIoU=False, eps=1e-7):
    # Returns the IoU of box1 to box2. box1 is 4, box2 is nx4
    box2 = box2.T

    # Get the coordinates of bounding boxes
    if x1y1x2y2:  # x1, y1, x2, y2 = box1
        b1_x1, b1_y1, b1_x2, b1_y2 = box1[0], box1[1], box1[2], box1[3]
        b2_x1, b2_y1, b2_x2, b2_y2 = box2[0], box2[1], box2[2], box2[3]
    else:  # transform from xywh to xyxy
        b1_x1, b1_x2 = box1[0] - box1[2] / 2, box1[0] + box1[2] / 2
        b1_y1, b1_y2 = box1[1] - box1[3] / 2, box1[1] + box1[3] / 2
        b2_x1, b2_x2 = box2[0] - box2[2] / 2, box2[0] + box2[2] / 2
        b2_y1, b2_y2 = box2[1] - box2[3] / 2, box2[1] + box2[3] / 2

    # Intersection area
    inter = (torch.min(b1_x2, b2_x2) - torch.max(b1_x1, b2_x1)).clamp(0) * \
            (torch.min(b1_y2, b2_y2) - torch.max(b1_y1, b2_y1)).clamp(0)

    # Union Area
    w1, h1 = b1_x2 - b1_x1, b1_y2 - b1_y1 + eps
    w2, h2 = b2_x2 - b2_x1, b2_y2 - b2_y1 + eps
    union = w1 * h1 + w2 * h2 - inter + eps

    iou = inter / union
    if CIoU or DIoU or GIoU or EIoU:
        cw = torch.max(b1_x2, b2_x2) - torch.min(b1_x1, b2_x1)  # convex (smallest enclosing box) width
        ch = torch.max(b1_y2, b2_y2) - torch.min(b1_y1, b2_y1)  # convex height
        if CIoU or DIoU or EIoU:  # Distance or Complete IoU https://arxiv.org/abs/1911.08287v1
            c2 = cw ** 2 + ch ** 2 + eps  # convex diagonal squared
            rho2 = ((b2_x1 + b2_x2 - b1_x1 - b1_x2) ** 2 +
                    (b2_y1 + b2_y2 - b1_y1 - b1_y2) ** 2) / 4  # center distance squared
            if CIoU:  # https://github.com/Zzh-tju/DIoU-SSD-pytorch/blob/master/utils/box/box_utils.py#L47
                v = (4 / math.pi ** 2) * torch.pow(torch.atan(w2 / h2) - torch.atan(w1 / h1), 2)
                with torch.no_grad():
                    alpha = v / (v - iou + (1 + eps))
                return iou - (rho2 / c2 + v * alpha)  # CIoU
            elif EIoU:
                w=(w1-w2)*(w1-w2)
                h=(h1-h2)*(h1-h2)
                return iou-(rho2/c2+w/(cw**2)+h/(ch**2))#EIoU  2021.12.29
            return iou - rho2 / c2  # DIoU
        c_area = cw * ch + eps  # convex area
        return iou - (c_area - union) / c_area  # GIoU https://arxiv.org/pdf/1902.09630.pdf
    return iou  # IoU

小结

  • I o U IoU IoU:主要考虑检测框和目标框重叠面积
  • G I o U GIoU GIoU:在 I o U IoU IoU的基础上,解决边界框不重合(IoU=0)时的问题
  • D I o U DIoU DIoU:在 I o U IoU IoU G I o U GIoU GIoU的基础上,考虑边界框中心点距离的信息,解决 G I o U GIoU GIoU收敛慢的问题
  • C I o U CIoU CIoU:在 D I o U DIoU DIoU的基础上,考虑边界框宽高比的尺度信息,提升回归精确度。
  • E I o U EIoU EIoU:考虑了重叠面积,中心点距离、长宽边长真实差,基于 C I o U CIoU CIoU解决了纵横比(宽高比)的模糊。
损失函数 优点 缺点
IoU 具有尺度不变性,满足非负性;同一性;对称性;三角不等性等特点。 1.如果两个框不相交,不能反映两个框距离远近。2.无法精确的反映两个框的重合度大小
GIoU 在基于IoU特性的基础上引入最小外接框解决检测框和真实框没有重叠时loss等于0问题。 1.当检测框和真实框出现包含现象的时候GIoU退化成IoU。2.两个框相交时,在水平和垂直方向上收敛慢。
DIoU 在基于IoU特性的基础上考虑到GIoU的缺点,直接回归两个框中心点的欧式距离,加速收敛。 回归过程中未考虑Bounding box的纵横比,精确度上尚有进一步提升的空间。
CIoU CIoU就是在DIoU的基础上增加了检测框尺度的loss,增加了长和宽的loss,这样预测框就会更加的符合真实框。 CIoU就是在DIoU的基础上增加了检测框尺度的loss,增加了长和宽的loss,这样预测框就会更加的符合真实框。
EIoU EIoU在CIoU的基础上分别计算宽高的差异值取代了纵横比,同时引入Focal Loss解决难易样本不平衡的问题。 ——

参考

[1] https://github.com/ultralytics/yolov5
[2] https://arxiv.org/pdf/1902.09630.pdf
[3] https://arxiv.org/pdf/1608.01471.pdf
[4] https://arxiv.org/pdf/1911.08287.pdf
[5] https://arxiv.org/pdf/2101.08158.pdf
[6] https://blog.csdn.net/nan355655600/article/details/106246625
[7] https://zhuanlan.zhihu.com/p/94799295
[8] https://blog.csdn.net/weixin_45751396/article/details/127150065
[9] https://zhuanlan.zhihu.com/p/270663039文章来源地址https://www.toymoban.com/news/detail-486359.html

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入YOLO系列专栏或我的个人主页查看

到了这里,关于YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《一文搞懂IoU发展历程》GIoU、DIoU、CIoU、EIoU、αIoU、SIoU

    IoU出现背景 目标检测任务的损失函数一般由 Classificition Loss (分类损失函数)和 Bounding Box Regeression Loss (回归损失函数)两部分构成。因此,更好的定位有利于模型精度的提高。在 IoU Loss 提出来之前,检测上有关候选框的回归主要是通过坐标的回归损失来优化。但 L1 Loss 和

    2023年04月08日
    浏览(56)
  • 目标检测中的损失函数IoU、GIoU、DIoU、CIoU、SIoU

    IoU损失是目标检测中最常见的损失函数,表示的就是真实框和预测框的交并比,数学公式如下: I o U = ∣ A ∩ B ∣ ∣ A ∪ B ∣ IoU =frac{|A cap B|}{|A cup B|} I o U = ∣ A ∪ B ∣ ∣ A ∩ B ∣ ​ L o s s I o U = 1 − I o U Loss_{IoU}=1-IoU L o s s I o U ​ = 1 − I o U IoU损失会有两个主要的缺点 当

    2024年02月04日
    浏览(51)
  • 【目标检测中对IoU的改进】GIoU,DIoU,CIoU的详细介绍

    IoU为交并比,即对于pred和Ground Truth:交集/并集 1、IoU可以作为评价指标使用,也可以用于构建IoU loss = 1 - IoU 缺点: 2、对于pred和GT相交的情况下,IoU loss可以被反向传播,因为IoU不为0,可以计算梯度。但是二者不相交的话,梯度将会为0,无法优化。 3、pred和GT不相交时,Io

    2024年02月12日
    浏览(43)
  • 损失函数:IoU、GIoU、DIoU、CIoU、EIoU、alpha IoU、SIoU、WIoU超详细精讲及Pytorch实现

         损失函数 是 用来评价模型的预测值和真实值不一样的程度 ,损失函数越小,通常模型的性能越好。不同的模型用的损失函数一般也不一样。       损失函数的使用主要是在模型的训练阶段 ,如果我们想让预测值无限接近于真实值,就需要将损失值降到最低, 在这个

    2024年02月09日
    浏览(50)
  • IoU Loss综述(IOU,GIOU,CIOU,EIOU,SIOU,WIOU)

            边界框回归(BBR)的损失函数对于目标检测至关重要。它的良好定义将为模型带来显著的性能改进。大多数现有的工作假设训练数据中的样本是高质量的,并侧重于增强BBR损失的拟合能力。         最初的基于回归的BBR损失定义为L2-norm,L2-norm损失主要有两个

    2023年04月09日
    浏览(72)
  • yolov5使用最新MPDIOU损失函数,有效和准确的边界盒回归的损失,优于GIoU/EIoU/CIoU/EIoU(附代码可用)

    MPDIoU: A Loss for Efficient and Accurate Bounding Box Regression (一个有效和准确的边界框损失回归函数) 论文地址 1.1. 主要目的 当预测框与边界框具有相同的纵横比,但宽度和高度值完全不同时,大多数现有的边界框回归损失函数都无法优化。 为了解决上述问题,MPDIoU充分挖掘水平矩形

    2024年02月07日
    浏览(40)
  • 目标检测算法——YOLOv5/v7/v8改进结合涨点Trick之Wise-IoU(超越CIOU/SIOU)

    ​ 近年来的研究大多假设训练数据中的示例有较高的质量,致力于强化边界框损失的拟合能力。 但注意到目标检测训练集中含有低质量示例,如果一味地强化边界框对低质量示例的回归,显然会危害模型检测性能的提升。 Focal-EIoU v1 被提出以解决这个问题,但由于其聚焦机

    2023年04月11日
    浏览(63)
  • YOLOv7改进wiou损失函数:结合最新Wise-IoU损失函数,涨点神器|超越CIoU, SIoU性能,助力YOLOv7模型涨点1.4%,最新目标检测的损失函数

    💡该教程为改进进阶指南,属于 《芒果书》 📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 💡本篇文章 基于 YOLOv5、YOLOv7 芒果 改进YOLO系列: 芒果改进YOLOv7系列:结合最新Wise-IoU损失函数,涨点神器|超越CIoU, SIoU性能,助力YOLOv7模型涨点

    2024年02月05日
    浏览(54)
  • 优化改进YOLOv5算法之Wise-IOU损失函数

    边界框回归(BBR)的损失函数对于目标检测至关重要。它的良好定义将为模型带来显著的性能改进。大多数现有的工作假设训练数据中的样本是高质量的,并侧重于增强BBR损失的拟合能力。如果盲目地加强低质量样本的BBR,这将危及本地化性能。Focal EIoU v1被提出来解决这个问

    2024年01月17日
    浏览(50)
  • 计算机视觉 day94 DDH - YOLOv5:基于双IoU感知解耦头改进的YOLOv5,用于对象检测

    YOLOv5头部的分类任务和回归任务的共同分支会对训练过程造成伤害,分类得分与定位精度的相关性较低。我们提出了一种双iou感知解耦头(DDH),并将其应用于YOLOv5。改进后的模型命名为DDH-YOLOv5,在不显著增加FLOPS和参数的情况下,显著提高了模型的定位精度。在PASCAL VOC2007数据

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包