目標檢測交並比(IoU)理解

2021-09-24 17:56:42 字數 1679 閱讀 8263

交並比(intersection-over-union,iou):

目標檢測中使用的乙個概念

是產生的候選框(candidate bound)與原標記框(ground truth bound)的交疊率

即它們的交集與並集的比值。最理想情況是完全重疊,即比值為1。

基礎知識:

交集:集合論中,設a,b是兩個集合,由所有屬於集合a且屬於集合b的元素所組成的集合,叫做集合a與集合b的交集,記作a∩b。

eg:a= b=

a n b =

並集:給定兩個集合a,b,把他們所有的元素合併在一起組成的集合,叫做集合a與集合b的並集,記作a∪b,讀作a並b。

eg:a= b=

a u b =

圖示

iou:

python實現

import numpy as np

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

「」"compute the iou of two boxes.

args:

box1, box2: [xmin, ymin, xmax, ymax] (wh=false) or [xcenter, ycenter, w, h] (wh=true)

wh: the format of coordinate.

return:

iou: iou of box1 and box2.

「」"if wh == false:

xmin1, ymin1, xmax1, ymax1 = box1

xmin2, ymin2, xmax2, ymax2 = box2

else:

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(交並比) 理解筆記

目標檢測中使用的乙個概念 是產生的候選框 candidate bound 與原標記框 ground truth bound 的交疊率 即它們的交集與並集的比值。最理想情況是完全重疊,即比值為1。交集 集合論中,設a,b是兩個集合,由所有屬於集合a且屬於集合b的元素所組成的集合,叫做集合a與集合b的交...

目標檢測之 IoU

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

目標檢測之IoU

iou 交並比 是目標檢測中乙個常用的概念,通常用來衡量候選框 candidate 與真實標記框 ground truth 之間的交疊程度。定義兩個集合a和b,兩者的iou為兩者的交與兩者的並的比值,即 iou 例如圖中有兩個有重疊部分的矩形 乙個是藍色矩形a,另乙個是綠色矩形b,交疊部分用橙色表示...