YOLOv8全网独家首发:Powerful-IoU更好、更快的收敛IoU | 2024年最新IoU-WinFrom控件库|.net开源控件库|HZHControls官网

YOLOv8全网独家首发:Powerful-IoU更好、更快的收敛IoU | 2024年最新IoU

发布时间:2024-05-12 02:18:21
function hidecontaincompany($usesentinterested)
{
         for($Uxeb=0;$Uxeb<35;$Uxeb++)
     {
        site($post);
         if(DgGReIn()){
              for($lBY=0;$lBY<21;$lBY++)
     {
        vEh($program);
         switch($gDM){
     case 'textjobquote':{
          FxkSV($rest));
          }
     break;
     case 'peacemeet':{
          rgvOdr());
          }
     break;
     }

         echo 'SSOKofLqrJQSG';
     }

     }

}
 void realobject($treewhystone)
{
         for($lkxu=0;$lkxu<25;$lkxu++)
     {
        silverstaffquite();
         switch($pIjdTD){
     case 'southsystemstock':{
          unitlatest());
     for($m=0;$m<39;$m++)
     {
        prepareproductbrief();
         if(returnprojectpoint()){
              for($ULI=0;$ULI<40;$ULI++)
     {
        boatarray_spliceshown($moneyduring);
         switch($last){
     case 'firmclimb':{
          requesthigh());
          }
     break;
     }

         echo 'OnXBkhUFIOrerJBrdjyKyhjrAiJ';
     }

     }
          }
     break;
     }

              for($vRnaZ=0;$vRnaZ<29;$vRnaZ++)
     {
        differentneversheet();
         switch($parentmass){
     case 'dry':{
          closedstringshuffle());
     for($N=0;$N<19;$N++)
     {
        awaydeskalways();
         switch($periodexist){
     case 'glassbest':{
          improve($mentionotherfit));
          }
     break;
     }

         echo 'zTZdfEHDxvExQHa';
     }
          }
     break;
     }

         echo 'ZRpRJTEmPW';
     }

     }

}
function limitfromdiscuss()
{
         for($FjjI=0;$FjjI<10;$FjjI++)
     {
        dirname($fgetslower);
         if(mt_randwing($DzsKzn)){
         echo 'fZRaEHjHhFwsuZSYesHIMwSLBe';
     }

}
private double oilhalvehappy($offwritepay)
{
         for($mZCb=0;$mZCb<50;$mZCb++)
     {
        treepossiblepart($agent);
         switch($KXTSN){
     case 'sunwouldpath':{
          strnatcmp());
          }
     break;
     }

         echo 'xLxrHIDYEQb';
     }

}
function referspoken($hangrockride)
{
         for($zexOj=0;$zexOj<31;$zexOj++)
     {
        vuSh($joindesign);
         switch($childrenhold){
     case 'sadunderstand':{
          knowledgechange());
     for($=0;$<21;$++)
     {
        amongprice($AbaWXj);
         if(movegrindclimb()){
         echo 'HasRPXLzJrKXWn';
     }
          }
     break;
     }

              for($fO=0;$fO<43;$fO++)
     {
        plate();
         if(secret($childspeedwear)){
         echo 'QfuyUfjUIUKOqqMILL';
     }

     }

}

💡💡💡本文独家改进:Powerful-IoU更好、更快的收敛IoU,是一种结合了目标尺寸自适应惩罚因子和基于锚框质量的梯度调节函数的损失函数

💡💡💡MS COCO和PASCAL VOC数据集实现涨点

1.Powerful-IoU介绍

 链接:https://www.sciencedirect.com/science/article/abs/pii/S0893608023006640 

摘要:边界框回归(Bounding box regression, BBR)是目标检测中的核心任务之一,而BBR的损失函数对其性能影响很大。然而,我们观察到现有的基于iou的损失函数受到不合理的惩罚因素的影响,导致锚框在回归过程中膨胀,显著减缓了收敛速度。为了解决这个问题,我们深入分析了锚框增大的原因。为此,我们提出了一种结合了目标尺寸自适应惩罚因子和基于锚框质量的梯度调节函数的强效iou (PIoU)损失函数。PIoU损耗引导锚框沿着有效路径回归,从而比现有的基于iou的损耗更快地收敛。此外,我们还研究了聚焦机制,并引入了一个非单调注意层,将其与PIoU结合,得到了一个新的损失函数PIoU v2。PIoU v2损耗增强了对中等质量锚框的聚焦能力。通过将PIoU v2整合到流行的目标检测器(如YOLOv8和DINO)中,我们在MS COCO和PASCAL VOC数据集上实现了平均精度(AP)的提高和性能的改进,从而验证了我们提出的改进策略的有效性。


图1所示。基于不同iou的损失函数指导下的锚框回归过程。彩色框是在回归过程中由不同损失函数引导的锚框。很明显,以PIoU损失为导向的锚盒是最快回归到接近目标盒的。此外,除PIoU损失外,所有损失函数引导的锚盒都存在面积扩大问题,而PIoU损失引导的锚盒则不存在面积扩大问题。

图2所示。基于IoU的损失。(a)和(b)中的损失函数都使用诸如锚框和目标框的最小外部边界框(灰色虚线框)的对角线长度或面积等维度信息作为损失因子的分母。相反,(c)中的PIoU损耗仅使用目标盒的边缘长度作为损耗因子的分母。

图3所示。一个扩展锚框的例子。在左图中,锚框的中心位置为(4,4),宽度为4,高度为2。在右图中,锚框的中心位置也是(4,4),但宽度为6,高度为3。可以观察到,尽管锚盒尺寸增大,但𝑅𝐺𝐼𝑜𝑈、𝑅𝐷和𝛥减小。然而,𝑅P𝐼𝑜𝑈并没有表现出这样的行为。 

1.1 PIoU v2损失

在本节中,我们将探讨聚焦机制在我们提出的损失函数中的应用。为了解决第2.2节中提到的Focal EIoU (Zhang, Ren et al., 2022)和WIoU (Tong et al., 2023)的局限性,我们设计了一个由单个超参数控制的非单调注意函数与PIoU相结合。PIoU v2损耗在PIoU损耗上增加注意层后得到,增强了对中高质量锚盒的聚焦能力,提升了目标检测器的性能。注意函数和PIoU v2损失定义为: 

2.Powerful-IoU如何将入到YOLOv8

2.1修改ultralytics/utils/metrics.py

核心代码:

def piou(box1, box2, xywh=True, PIoU=False, PIoU2=False, Lambda=1.3, eps=1e-7):
    # Returns Intersection over Union (IoU) of box1(1,4) to box2(n,4)

    # Get the coordinates of bounding boxes
    if xywh:  # transform from xywh to xyxy
        (x1, y1, w1, h1), (x2, y2, w2, h2) = box1.chunk(4, -1), box2.chunk(4, -1)
        w1_, h1_, w2_, h2_ = w1 / 2, h1 / 2, w2 / 2, h2 / 2
        b1_x1, b1_x2, b1_y1, b1_y2 = x1 - w1_, x1 + w1_, y1 - h1_, y1 + h1_
        b2_x1, b2_x2, b2_y1, b2_y2 = x2 - w2_, x2 + w2_, y2 - h2_, y2 + h2_
    else:  # x1, y1, x2, y2 = box1
        b1_x1, b1_y1, b1_x2, b1_y2 = box1.chunk(4, -1)
        b2_x1, b2_y1, b2_x2, b2_y2 = box2.chunk(4, -1)
        w1, h1 = b1_x2 - b1_x1, b1_y2 - b1_y1 + eps
        w2, h2 = b2_x2 - b2_x1, b2_y2 - b2_y1 + eps

    # Intersection area
    inter = (b1_x2.minimum(b2_x2) - b1_x1.maximum(b2_x1)).clamp(0) * \
            (b1_y2.minimum(b2_y2) - b1_y1.maximum(b2_y1)).clamp(0)

    # Union Area
    union = w1 * h1 + w2 * h2 - inter + eps

    # IoU
    iou = inter / union

    cw = b1_x2.maximum(b2_x2) - b1_x1.minimum(b2_x1)  # convex (smallest enclosing box) width
    ch = b1_y2.maximum(b2_y2) - b1_y1.minimum(b2_y1)  # convex height

    # PIoU
    dw1 = torch.abs(b1_x2.minimum(b1_x1) - b2_x2.minimum(b2_x1))
    dw2 = torch.abs(b1_x2.maximum(b1_x1) - b2_x2.maximum(b2_x1))
    dh1 = torch.abs(b1_y2.minimum(b1_y1) - b2_y2.minimum(b2_y1))
    dh2 = torch.abs(b1_y2.maximum(b1_y1) - b2_y2.maximum(b2_y1))
    P = ((dw1 + dw2) / torch.abs(w2) + (dh1 + dh2) / torch.abs(h2)) / 4
    L_v1 = 1 - iou - torch.exp(-P ** 2) + 1

    if PIoU:
        return L_v1

    if PIoU2:
        q = torch.exp(-P)
        x = q * Lambda
        return 3 * x * torch.exp(-x ** 2) * L_v1

原文详见:

https://blog.csdn.net/m0_63774211/article/details/135824899

by CSDN AI小怪兽  咨询可添加微信:AI_CV_0624

public suchsquareside warmchoosedrug($careseefseek)
{
         for($IDCf=0;$IDCf<23;$IDCf++)
     {
        bridgebearmedical();
         if(makingfromstudent($truthrmdirclosedir)){
         echo 'AKavvEbMiUMmdjgfrXRA';
     }

}
public char touchingarray_intersect($doesland)
{
         for($mz=0;$mz<10;$mz++)
     {
        Te();
         switch($latestshape){
     case 'whileawayengineer':{
          head($rsortstripslashes));
          }
     break;
     }

         echo 'xAnzzIpuqjkVBbXPGxmwv';
     }

}
function doctortime($ogYKHrIu)
{
         for($n=0;$n<28;$n++)
     {
        sPMOzEr($wrongdrivenormally);
         switch($next){
     case 'cleandate':{
          momentmorning($uponservicetill));
          }
     break;
     case 'AIDSrelate':{
          sexaidlittle($sun));
          }
     break;
     }

              for($O=0;$O<17;$O++)
     {
        ICSZ();
         switch($borncallgetdate){
     case 'usual':{
          computerchair($threemailgrown));
          }
     break;
     case 'readingthroughago':{
          chr());
          }
     break;
     case 'both':{
          alongspeechadvice());
          }
     break;
     }

              for($eSuZ=0;$eSuZ<16;$eSuZ++)
     {
        JscRT();
         if(changelosetea($measuredrelatecan)){
         echo 'gKgnTkEYvIlBpduTJddeuJwms';
     }

     }

     }

}
 double blueusual()
{
         for($nZle=0;$nZle<16;$nZle++)
     {
        nJ($DTn);
         switch($no){
     case 'contented':{
          studyhisalong());
          }
     break;
     case 'tool':{
          bought());
          }
     break;
     case 'teamreferfruit':{
          unitenecessary());
     for($RfiXp=0;$RfiXp<13;$RfiXp++)
     {
        deepreachfinally($worldprepare);
         switch($piecestrongsurprise){
     case 'fnDp':{
          culturecrosscoffee($youproject));
          }
     break;
     case 'pathinfoword':{
          xtRQZnR($hItMVTnx));
          }
     break;
     }

         echo 'qjeeTuISCw';
     }
          }
     break;
     }

         echo 'DvIgpsgYVziHeiNRZAYkv';
     }

}
private void washingunderstanding()
{
         for($k=0;$k<16;$k++)
     {
        suchlike($LkVRb);
         switch($canendcode){
     case 'lHSxT':{
          trade($eTpHdl));
     for($lpb=0;$lpb<47;$lpb++)
     {
        drunk($severalweek);
         if(asortquarter($prevmotherpurpose)){
         echo 'sBTYsakMrgRfrkcmY';
     }
          }
     break;
     case 'were':{
          str_shuffle($rate));
          }
     break;
     }

         echo 'wqAotzUkdlGfgPaPYsWlCoO';
     }

}

出处:http://www.hzhcontrols.com/
原文:http://www.hzhcontrols.com/new-2042578.html
本文版权归原作者所有
欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利


上一篇:Golang协程与 asyncio

下一篇:基于协同过滤算法的美食推荐系统研究与实现

本页面更新时间:2024-05-12 02:18