物體交叉檢測---IoU評價指標的計算
阿新 • • 發佈:2019-01-01
對於物體檢測的結果不管是HOG+SVM,還是deep learnning 檢測到的結果,我們如何去評價我們檢測的好壞?
一、Jason 提出了IoU---Intersection over Union 來評估物體檢測的好壞,IoU演算法很簡單,其計算條件如下:
1、物體的ground truth bounding box
2 、預測的bounding box
如圖:
計算公式如下:
def check_box(box): x1,y1,x2,y2=box if x2>x1 and y2>y1: return 1 else: return 0 def compute_IoU(box1,box2): if check_box(box1) and check_box(box2): x1,y1,x2,y2=box1 x_1,y_1,x_2,y_2=box2 xA=max(x1,x_1) yA=max(y1,y_1) xB=min(x2,x_2) yB=min(y2,y_2) overlap_area=max(0,xB-xA+1)*max(0,yB-yA+1) union_area=max(0,y2-y1+1)*max(0,x2-x1+1)+max(0,y_2-y_1+1)*max(0,x_2-x_1+1)-overlap_area return overlap_area/union_area if __name__=="__main__": box1=[39,63,203,112] #左下角,右上角 box2=[54,66,198,114] print(compute_IoU(box1,box2))
二、算出來的IoU,它如何評價尼?
通常情況下,IoU>0.5我們則認為其實好的檢測
三、ground truth 從何而來?
我們將資料集分為訓練集合測試集以及交叉驗證集,我們將手動label的稱為ground truth,然後再測試集上計算其IoU