目標檢測之IoU

2021-10-02 16:03:09 字數 1542 閱讀 9212

iou(交並比)是目標檢測中乙個常用的概念,通常用來衡量候選框(candidate)與真實標記框(ground truth)之間的交疊程度。

定義兩個集合a和b,兩者的iou為兩者的交與兩者的並的比值,即:iou

例如圖中有兩個有重疊部分的矩形:乙個是藍色矩形a,另乙個是綠色矩形b,交疊部分用橙色表示。則矩形a和b的 iou 為橙色面積與三色面積總和的比值。

那麼這個iou實際用途是什麼呢?我們知道,在pascal voc這些資料集中,都標定好了物體在影象中位置,這些標定物體位置的矩形框成為ground truth(gt)。示例如下:

我們現在要自己產生一些候選框,這些候選框應該盡可能的與gt重疊,以保證其位置和大小的識別準確性,這種情況下,候選框和gt的 iou 接近1;如果候選框和gt重疊部分很少,或者交疊部分遠小於兩者的面積總和,那麼 iou 的值趨近於0。

candidate(黃色)與gt(藍色)大致存在以下三種關係:

(1)對於左圖,candidate和gt的 iou 趨近於1,可以認為是效果比較好的候選框;

(2)對於中圖,candidate和gt的重疊部分較少,因此 iou 比較小,效果不好;

(3)對於右圖,雖然candidate和gt的重疊部分為整個黃色框,但是兩者的面積(gt面積)總和更大,因此 iou 也比較小,效果一般。

最後放一段計算 iou 的**:

def

compute_iou

(boxa, boxb)

:#box四個引數:左上角橫座標、縱座標,右下角橫座標、縱座標

int_w =

max(

min(boxa[2]

, boxb[2]

)-max(boxa[0]

, boxb[0]

),0)

int_h =

max(

min(boxa[3]

, boxb[3]

)-max(boxa[1]

, boxb[1]

),0)

inter = int_h * int_w

union =

(boxa[3]

- boxa[1]

)*(boxa[2]

- boxa[0]

)+(boxb[3]

- boxb[1]

)*(boxb[2]

- boxb[0]

)- inter

iou = inter / union

return iou

目標檢測之 IoU

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

目標檢測之 IoU

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

目標檢測之IOU

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