- 本文固定链接: https://www.lao-wang.com/?p=114
- 转载: searky 2017年07月31日 于 老王的网站 发表
交并比(Intersection-over-Union,IoU),目标检测中使用的一个概念,是产生的候选框(candidate bound)与原标记框(ground truth bound)的交叠率,即它们的交集与并集的比值。最理想情况是完全重叠,即比值为1。
计算公式:
Python实现代码:
def calculateIoU(candidateBound, groundTruthBound): cx1 = candidateBound[0] cy1 = candidateBound[1] cx2 = candidateBound[2] cy2 = candidateBound[3] gx1 = groundTruthBound[0] gy1 = groundTruthBound[1] gx2 = groundTruthBound[2] gy2 = groundTruthBound[3] carea = (cx2 - cx1) * (cy2 - cy1) #C的面积 garea = (gx2 - gx1) * (gy2 - gy1) #G的面积 x1 = max(cx1, gx1) y1 = max(cy1, gy1) x2 = min(cx2, gx2) y2 = min(cy2, gy2) w = max(0, x2 - x1) h = max(0, y2 - y1) area = w * h #C∩G的面积 iou = area / (carea + garea - area) return iou