1 目標檢測中IOU評價函式

2021-10-24 06:20:42 字數 1456 閱讀 4873

在目標檢測的評價體系中,有乙個引數叫做 iou ,簡單來講就是模型產生的目標視窗和原來標記視窗的交疊率。具體我們可以簡單的理解為: 即檢測結果(detectionresult)與 ground truth 的交集比上它們的並集,即為檢測的準確率 iou :

如下圖所示:gt = groundtruth; dr = detectionresult;

黃色邊框框起來的是:gt⋂dr

綠色框框起來的是:gt⋃dr

當然最理想的情況就是 dr 與 gt 完全重合,即 iou=1

iou值屬於[0,1] 越接近於1表明**值越接近於真實值,**效果越好;在目標檢測任務中,我們時常會讓模型一次性生成大量的候選框(candidate bbox),然後再根據每乙個框的置信度對框進行排序,進而依次計算框與框之間的iou,然後進行nms非極大值抑制刪除多餘的檢測框。

例如在做人臉檢測時,模型的**結果可能是左圖,經過nms後最終得到的是右圖。

在我們得到最終的輸出後,計算**框框與真值框之間的iou,然後使用1-iou來作為loss(區間[0,1]找極小值),並以此實現模型的迭代優化。

iou的計算(座標格式[left, top, right, bottom], 即bbox左上右下點座標):

xmin = max(pred_bbox[0], gt_bbox[0])

ymin = max(pred_bbox[1], gt_bbox[1])

xmax = min(pred_bbox[2], gt_bbox[2])

ymax = min(pred_bbox[3], gt_bbox[3])

w = np.maximum(xmax - xmin + 1., 0.)

h = np.maximum(ymax - ymin + 1., 0.)

# 交集

inters = w * h

# 並集

union = ((pred_bbox[2] - pred_bbox[0] + 1.) * (pred_bbox[3] - pred_bbox[1] + 1.) +

(gt_bbox[2] - gt_bbox[0] + 1.) * (gt_bbox[3] - gt_bbox[1] + 1.) - inters)

# 計算iou值

iou = inters / union

通過iou來評判兩個影象的重合度具有以下幾點優點:

具有尺度不變性;

滿足非負性;

滿足對稱性;

通過iou來評判兩個影象的重合度具有以下幾點缺點:

如果|a∩b|=0,也就是兩個影象沒有相交時,無法比較兩個影象的距離遠近;

無法體現兩個影象到底是如何相交的。

目標檢測中IoU計算

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

目標檢測評價指標(mAP P R曲線 IOU)

二 iou 交並比 真實情況 為正 為反 recall召回率正tp fnr tp tp fn 反fp tnprecision準確率 p tp tp fp 這四個字母看著真頭暈,就算看部落格當時理解了,過一會兒就忘了,所以決定整理一下,用特殊的方法記住他!後面的字母p positive 和n nega...

目標檢測之 IoU

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