1. 程式人生 > 實用技巧 >目標檢測錨框,NMS極大值抑制

目標檢測錨框,NMS極大值抑制

目標檢測錨框和NMS極大值抑制

錨框NMS極大值抑制講解

錨框和NMS極大值抑制想必大家在諸多地方都遇到過,那麼究竟什麼是極大值抑制呢?

錨框

錨框也就是我們很多書中說的anchor。這是什麼意思呢?實際上這就是在進行目標檢測的時候在特徵圖上每個點都設定相同數量的框框這就叫錨框。
如圖所示,我們可以看到左邊的一堆方格子其實是特徵層的畫素點。
其中紅色框出來的是一個33的卷積。
所有特徵層的畫素點都給分配k個錨框,如右圖一樣的錨框,每個畫素點都有好幾個。
然後對映到原圖上去,如果圖整體去網路採用的是vgg16,其中的3
3卷積層padding全部都是1,stride也都等於1,因此conv層不改變影象大小,只有pooling層改變大小,因此我們只需要關注有多少的pooling層,就可以將特徵層的畫素點對應到原圖上去。

錨框
這些框框是用來做什麼的呢?當然是用來檢測的了!
首先呢我們關注一下IOU:
在這裡插入圖片描述
顯而易見這就是IOU,衡量預測框的精準度,不過IOU也有缺點,有興趣的小夥伴可以看看之後改進的方法。

在得到諸多錨框之後,我們對錨框和正確的目標框計算IOU,設定閾值a,大於a則儲存我們的錨框,經過深度學習的方法調整我們的錨框,之後進行的就是極大值抑制。

NMS

本圖來源於《動手學深度學習》。
在這裡插入圖片描述
我們可以看到,在圖中對狗檢測的有很多個框,0.9,0.8,0.7,還有一個對貓的0.9。
NMS極大值抑制就是在不影響貓的框的情況下去除對狗檢測的其它得分小的框。
設定閾值th,設對狗的最大的分框為a,然後是b,c。對貓的是d,用a分別對b,c,d,計算IOU值,將IOU值大於th的框都去除。這樣保留貓的框框。

本次的介紹就到這裡了謝謝大家!