目標檢測中IoU計算

2021-10-22 15:26:42 字數 1372 閱讀 4657

1. 含義

iou即交並比(intersection over union),是真實的目標框ground truth與演算法**出來的目標框prediction之間差距的衡量指標。

計算公式:

iou = a∩b/a∪b

一般來說,iou值越大,說明**的越準確,通常取0.5作為閾值。

2. python程式實現

def

iou(box1, box2)

:"""implement the intersection over union (iou) between box1 and box2

arguments:

box1 -- first box, list object with coordinates (x1, y1, x2, y2)

box2 -- second box, list object with coordinates (x1, y1, x2, y2)

"""# calculate the (y1, x1, y2, x2) coordinates of the intersection of box1 and box2. calculate its area.

xi1 =

max(box1[0]

, box2[0]

) yi1 =

max(box1[1]

, box2[1]

) xi2 =

min(box1[2]

, box2[2]

) yi2 =

min(box1[3]

, box2[3]

) inter_area =

(yi2 - yi1)

*(xi2 - xi1)

# calculate the union area by using formula: union(a,b) = a + b - inter(a,b)

box1_area =

(box1[2]

- box1[0]

)*(box1[3]

- box1[1]

) box2_area =

(box2[2]

- box2[0]

)*(box2[3]

- box2[1]

) union_area = box1_area + box2_area - inter_area

# compute the iou

iou = inter_area / union_area

return iou

本文參考:

目標檢測IOU計算

iou是交並比 intersection over union 是目標檢測中使用的乙個概念是產生的候選框 candidate bound 與原標記框 ground truth bound 的交疊率,即它們的交集與並集的比值。最理想情況是完全重疊,即比值為1。在多目標跟蹤中,用來判別跟蹤框和目標檢測框...

目標檢測 IoU 計算

我們先考慮一維的情況 令 a x 1,x 2 b y 1,y 2 若想要 a 與 b 有交集,需要滿足如下情況 簡言之,要保證 a 和 b 的最大值中最小的那個減去它們中的最小值中最大的那個即可獲得公共部分,實現如下 class anchor def init self,base size 16 s...

目標檢測之 IoU

iou 作為目標檢測演算法效能 map 計算的乙個非常重要的函式 但縱觀 iou 計算的介紹知識,都是直接給出 給出計算方法,沒有人徹底地分析過其中的邏輯,故本人書寫該篇部落格來介紹下其中的邏輯。iou 的全稱為交並比 intersection over union 通過這個名稱我們大概可以猜到 i...