评价指标IOU

对于一个检测器,我们需要制定一定的规则来评价其好坏,从而选择需要的检测器。常用的评价指标是交并比(IOU)。

物体检测模型的输出是非结构化的,事先并无法得知输出物体的数量、位置、大小等,因此物体检测的评价算法就稍微复杂一些。对于具体的某个物体来讲,我们可以从预测框与真实框的贴合程度来判断检测的质量,通常使用IoU(Intersection of Union)来量化贴合程度。

在这里插入图片描述
IoU的取值区间是[0,1],IoU值越大,表明两个框重合越好。

计算过程如下:
在这里插入图片描述
代码实现:

def IoU(BBox_A,BBox_B):
    '''
    Bbox: xmin ymin xmax ymax
    '''
    WA = BBox_A[2] - BBox_A[0]
    HA = BBox_A[3] - BBox_A[1]

    WB = BBox_B[2] - BBox_B[0]
    HB = BBox_B[3] - BBox_B[1]

    Xmax = max(BBox_A[2],BBox_B[2])
    Xmin = min(BBox_A[0],BBox_B[0])
    Ymax = max(BBox_A[3],BBox_B[3])
    Ymin = min(BBox_A[1],BBox_B[1])

    HI = HA + HB - (Ymax - Ymin)
    WI = WA + WB - (Xmax - Xmin)
    
    iou = (WI * HI) / (HA * WA + HB * WB)
    return iou

if __name__ == "__main__":
    BBoX_A = [0,0,2,2]
    BBox_B = [1,1,3,3]
    iou = IoU(BBoX_A,BBox_B)
    print(iou)



版权声明:本文为CSDN博主「开始学AI」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41964545/article/details/121249107

开始学AI

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐