【記錄】目標檢測中NMS(非極大抑制)的概念理解

目標檢測中NMS(非極大抑制)的概念理解

一、NMS(非極大抑制)概念

NMS即non maximum suppression即非極大抑制,顧名思義就是抑制不是極大值的元素,搜索局部的極大值。在最近幾年常見的物體檢測算法(包括rcnn、sppnet、fast-rcnn、faster-rcnn等)中,最終都會從一張圖片中找出很多個可能是物體的矩形框,然後爲每個矩形框爲做類別分類概率。

在這裏插入圖片描述

就像上面的圖片一樣,定位一個車輛,最後算法就找出了一堆的方框,我們需要判別哪些矩形框是沒用的。

所謂非極大值抑制:先假設有6個矩形框,根據分類器類別分類概率做排序,從小到大分別屬於車輛的概率分別爲A<B<C<D<E<F。

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

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

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

(4) 重複這個過程,找到所有被保留下來的矩形框。

二、YOLO中的NMS

對於每一個種類的概率,比如Dog,我們將所有98個框按照預測概率從高到低排序(爲方便計算,排序前可以剔除極小概率的框,也就是把它們的概率置爲0),然後通過非極大抑制NMS方法,繼續剔除多餘的框:

在這裏插入圖片描述

NMS方法在這裏如何運行呢?首先因爲經過了排序,所以第一個框是概率最大的框(下圖橘色)。然後繼續掃描下一個框跟第一個框,看是否IOU大於0.5:

在這裏插入圖片描述

的確IOU大於0.5,那麼第二個框是多餘的,將它剔除:

在這裏插入圖片描述

繼續掃描到第三個框,它與最大概率框的IOU小於0.5,需要保留:

在這裏插入圖片描述

繼續掃描到第四個框,同理需要保留:

在這裏插入圖片描述

繼續掃描後面的框,直到所有框都與第一個框比較完畢。此時保留了不少框。

接下來,以次大概率的框(因爲一開始排序過,它在順序上也一定是保留框中最靠近上一輪的基礎框的)爲基礎,將它後面的其它框於之比較。

如比較第4個框與之的IOU:

在這裏插入圖片描述

IOU大於0.5,所以可以剔除第4個框:

在這裏插入圖片描述

總之在經歷了所有的掃描之後,對Dog類別只留下了兩個框:

在這裏插入圖片描述

這時候,或許會有疑問:明顯留下來的藍色框,並非Dog,爲什麼要留下?因爲對計算機來說,圖片可能出現兩隻Dog,保留概率不爲0的框是安全的。不過的確後續設置了一定的閾值(比如0.3)來刪除掉概率太低的框,這裏的藍色框在最後並沒有保留,因爲它在20種類別裏要麼因爲IOU不夠而被刪除,要麼因爲最後閾值不夠而被剔除。

上面描述了對Dog種類進行的框選擇。接下來,我們還要對其它19種類別分別進行上面的操作。最後進行縱向跨類的比較(爲什麼?因爲上面就算保留了橘色框爲最大概率的Dog框,但該框可能在Cat的類別也爲概率最大且比Dog的概率更大,那麼我們最終要判斷該框爲Cat而不是Dog)。判定流程和法則如下:

在這裏插入圖片描述

得到最後的結果:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章