首页 > 编程知识 正文

giao哥结婚,iou发音

时间:2023-05-04 22:24:03 阅读:8811 作者:3915

iou :https://www.Jian Shu.com/p/e3bf 67 CD 4459

3359 blog.csdn.net/Leonardo Haig/article/details/103394369? UTM _ medium=distribute.PC _ relevant.none-task-blog-blogcommendfrommachinelearnpai2-1. nonecasedepth _1- -

IOU的好处:

IOU IOU可以用作距离,loss=1-IOU。但是当两个物体不相交时无回传梯度(缺陷)

IOU对尺度变化具有不变性,即不受两个物体尺度大小的影响。

以a、b两个box重叠的情况为例,boxes1=[ 0,0,10,10 ]、[ 0,0,5,5 ]、boxes2=[ 0,0,10,10 ]、[ 0,0,5,5 ]

IOU的缺点:

无法测量两框是相邻还是相距较远

如下图2所示,在两种情况下IOU都为0,在(a )中两框的距离较近,在(b )中两框的距离明显较远,但是仅凭IOU的数值无法判断两者的距离是近还是远(例如

IOU并不反映两个物体是如何重叠的(相交方式)。

如下图3所示,在任何情况下IOU都为0.1428,与(a )中的(b )相比,两个框都更整齐地相交,但IOU没有反映出这个特征。

为了解决这个问题,请访问GIOU

GIOU是为了在克服IOU缺点的同时充分利用优点而被提出的

1 .假设a为预测框,b为真框,s为所有框的集合

2 .无论a和b是否相交,c都属于包含a和b的最小框(包含a和b的最小凸边框),c也属于s集合

3 .首先计算IoU、a和b的交叉比

4 .重新计算c框无a和b的面积,比c框增加面积;

5 .获得iou减去之前计算出的比值后的GIoU

6.Note :在本文提出的例子中,a、b都是矩形框,但也可以是其他的。 例如,在a、b为椭圆形情况下,c成为包含a、b的最小椭圆形; 或者,a、b都可以是3d盒。

论文作者展示了一些GIoU的性质:

对尺度的不变性

gou被认为是IoU的下界,在IoU以下

例如,在boxes1=[ 0,0,10,10 ],boxes2=[ 0,0,10,10 ]的情况下,IOU=1,GIOU=1,在该情况下,a与b重叠

如果boxes1=[ 0,0,10,10 ],boxes2=[ 0,10,10,20 ],则IOU=0,GIOU=0

boxes1=[ 0,0,10,10 ],boxes2=[ 5,5,15,15 ],此时IOU=0.1428,GIOU=-0.07936

-1=GIoU=1,A=B时,GIoU=IoU=1; 当a和b不相交且相距较远时,Giou(A,b )趋向-1。

例如,boxes1=[ 10,10,15,15 ]、[ 100,100,105,105 ]、boxes2=[ 5,5,10,10 ],计算出的GIOU为[-0.5,-0.995]

因此,选择loss=1-GIoU

GIoU可以更好地对交叉情况作出反应。 如上图3所示,在两种情况下IOU一致,但在(a )中更干净地交叉,因此GIOU比(b )更GIoU最主要的作用:

)1)对于相交的盒子,IOU可以反向传播。 也就是说,它可以直接用作优化的目标函数。 但是,如果不相交,则坡度为0,无法优化。 在这种情况下,使用GIoU可以完全避免这个问题。 所以可以作为目标函数

)2)了解边框定位的方法

目前,DIOU DIoU最适合损耗计算和回归计算的优点如下:

与GIoU loss一样,即使DIoU loss不与目标框重叠,也可以为边界框提供移动方向。

2.DIoU loss可以直接最小化两个目标框之间的距离,但GIOU loss收敛得比GIOU loss快得多,因为它优化了两个目标框之间的面积。

3 .当两个盒处于水平和垂直方向时,DIoU损耗可以非常快地回归,GIoU损耗几乎退化为IoU损耗

defBboxes_diou(boxes1,boxes2) : ' ' caldiouoftwoboxesorbatchboxes 3360 param boxes 1: [ xmin,ymin,xmax,ymin . ] :param boxes2:[xmin,ymin,xmax,ymax ] : return : ' ' # cal the box ' sareaofboxes1andboxes1area 0 ) ) ) boxes1 1 ) Boxes2area=(* (Boxes2[ .2] - boxes2[ .0] ) boxes2[ .3] - boxes2[ .1] :2 (right _ down=NP.minimum (boxes1[…,2:],boxes2[…,2:] ) inter_section=nnoxes 0.0 ) inter 0] * inter_section[,1 ) union _ area=boxes1area boxes2area-inter _ area IOUs=NP.maximum (1.0 * inter _ area/NP.finfo(NP.float32 ).eps ) calouterboxesouter _ left _ up=NP.minimum (boxes1[ .2],boxes2[ .] 2:],boxes2[ .2:] ) outer=NP.maximum ) outer 0.0 ) outer _ diagonal _ line=NP.square (outer (.0 1 ) ) calcenterdistanceboxes1 2: ) ) 0.5Boxes2_center=(Boxes2[ .2] boxes2[ . 2:] ) 0.5 center _ dis=NP.square boxes1NP.square (boxes1_ center [ .1]-boxes2_center[ .1] )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。