目標檢測IOU計算

2021-10-22 12:12:57 字數 1519 閱讀 2571

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

iou是兩個區域的交除以兩個區域的並得出的結果

# 定義方法計算iou

def iou(box1, box2, wh=false):

# 判斷bbox的表示形式

if wh == false:

# 使用極座標形式表示:直接獲取兩個bbox的座標

xmin1, ymin1, xmax1, ymax1 = box1

xmin2, ymin2, xmax2, ymax2 = box2

else:

# 使用中心點形式表示: 獲取兩個兩個bbox的極座標表示形式

# 第乙個框左上角座標

xmin1, ymin1 = int(box1[0]-box1[2]/2.0), int(box1[1]-box1[3]/2.0)

# 第乙個框右下角座標

xmax1, ymax1 = int(box1[0]+box1[2]/2.0), int(box1[1]+box1[3]/2.0)

# 第二個框左上角座標

xmin2, ymin2 = int(box2[0]-box2[2]/2.0), int(box2[1]-box2[3]/2.0)

# 第二個框右下角座標

xmax2, ymax2 = int(box2[0]+box2[2]/2.0), int(box2[1]+box2[3]/2.0)

# 獲取矩形框交集對應的左上角和右下角的座標(intersection)

xx1 = np.max([xmin1, xmin2])

yy1 = np.max([ymin1, ymin2])

xx2 = np.min([xmax1, xmax2])

yy2 = np.min([ymax1, ymax2])

# 計算兩個矩形框面積

area1 = (xmax1-xmin1) * (ymax1-ymin1)

area2 = (xmax2-xmin2) * (ymax2-ymin2)

#計算交集面積

inter_area = (np.max([0, xx2-xx1])) * (np.max([0, yy2-yy1]))

#計算交並比

iou = inter_area / (area1+area2-inter_area+1e-6)

return iou

目標檢測 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計算

1.含義 iou即交並比 intersection over union 是真實的目標框ground truth與演算法 出來的目標框prediction之間差距的衡量指標。計算公式 iou a b a b 一般來說,iou值越大,說明 的越準確,通常取0.5作為閾值。2.python程式實現 de...

目標檢測之 IoU

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