RCNN中的非極大值抑制的閾值

非極大值抑制就是一個尋找局部最大值的過程

在進行目標檢測時一般會採取窗口滑動的方式,在圖像上生成很多的候選框,然後把這些候選框進行特徵提取後送入分類器,一般會得出一個得分(score),比如人臉檢測,會在很多框上都有得分,然後把這些得分全部排序。選取得分最高的那個框,接下來計算其他的框與當前框的重合程度(iou),如果重合程度大於一定閾值就刪除,因為在同一個臉上可能會有好幾個高得分的框,都是人臉但是不需要那麼框我們只需要一個就夠了。

如果圖片中有好幾個人臉,選取一個最大的後,第二個人臉怎麼辦?

實際上這是一個迭代的過程,第一步的非極大值抑制就是選取了某一個最大的得分,然後刪除了他周邊的幾個框(重點),第二次迭代的時候在剩下的框裡面選取一個最大的,然後再刪除它周圍iou區域大於一定閾值的,這樣不停的迭代下去就會得到所有想要找到的目標物體的區域。

假設有ABCDEF這麼多個得分框(已經按照得分從小到大排序)。

1、從最大概率矩形框F開始,分別判斷A~E與F的重疊度IOU是否大於某個設定的閾值;

2、假設B、D與F的重疊度超過閾值,那麼就扔掉B、D;並標記第一個矩形框F,是我們保留下來的。

3、從剩下的矩形框A、C、E中,選擇概率最大的E,然後判斷E與A、C的重疊度,重疊度大於一定的閾值,那麼就扔掉;並標記E是我們保留下來的第二個矩形框。

4、一直重複這個過程,找到所有曾經被保留下來的矩形框。

RCNN中的非極大值抑制的閾值

第一步尋找得分框


RCNN中的非極大值抑制的閾值

第一次迭代找到一個

RCNN中的非極大值抑制的閾值

第二次迭代找到另外一個

簡單來說就是選擇一個範圍內好的一個框,把周圍的框刪掉,因此叫非極大值抑制(參考csdn:xiuu91)


分享到:


相關文章: