深度學習自學(三) NMS非極大值抑制總結

2021-09-30 18:02:02 字數 998 閱讀 3517

顧名思義就是抑制不是極大值的元素,可以理解為區域性最大搜尋。這個區域性代表的是乙個鄰域,鄰域有兩個引數可變,一是鄰域的維數,二是鄰域的大小。這裡不討論通用的nms演算法(參考**《efficient non-maximum suppression》對1維和2維資料的nms實現),而是用於目標檢測中提取分數最高的視窗的。例如在行人檢測中,滑動視窗經提取特徵,經分類器分類識別後,每個視窗都會得到乙個分數。但是滑動視窗s會導致很多視窗與其他視窗存在包含或者大部分交叉的情況。這時就需要用到nms來選取那些鄰域裡分數最高(是行人的概率最大),並且抑制那些分數低的視窗。

對於bounding box的列表b及其對應的置信度s,採用下面的計算方式.選擇具有最大score的檢測框m,將其從b集合中移除並加入到最終的檢測結果d中.通常將b中剩餘檢測框中與m的iou大於閾值nt的框從b中移除.重複這個過程,直到b為空.

重疊率(重疊區域面積比例iou)閾值

常用的閾值是 0.3 ~ 0.5.

其中用到排序,可以按照右下角的座標排序或者面積排序,也可以是通過svm等分類器得到的得分或概率,r-cnn中就是按得分進行的排序.

就像上面的一樣,定位乙個車輛,最後演算法就找出了一堆的方框,我們需要判別哪些矩形框是沒用的。非極大值抑制的方法是:先假設有6個矩形框,根據分類器的類別分類概率做排序,假設從小到大屬於車輛的概率 分別為a、b、c、d、e、f。

(1)從最大概率矩形框f開始,分別判斷a~e與f的重疊度iou是否大於某個設定的閾值;

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

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

就這樣一直重複,找到所有被保留下來的矩形框。

nms非極大值抑制(non-maximum suppression,nms)

非極大值抑制(NMS)

非極大值抑制 nms 非極大值抑制顧名思義就是抑制不是極大值的元素,搜尋區域性的極大值。這個區域性代表的是乙個鄰域,鄰域有兩個引數可變,一是鄰域的維數,二是鄰域的大小。這裡不討論通用的nms演算法,而是用於在目標檢測中用於提取分數最高的視窗的。例如在行人檢測中,滑動視窗經提取特徵,經分類器分類識別後...

NMS非極大值抑制

非極大值抑制演算法 non maximum suppression for object detection in python 非極大值抑制演算法 nms 非極大值抑制 矩形框融合 nms 卷積網路改進實現 筆記 人臉檢測視窗選擇辦法 nms convnet 開源 如何用soft nms實現目標檢...

非極大值抑制(NMS)

非極大值抑制 nms 非極大值抑制顧名思義就是抑制不是極大值的元素,搜尋區域性的極大值。這個區域性代表的是乙個鄰域,鄰域有兩個引數可變,一是鄰域的維數,二是鄰域的大小。這裡不討論通用的nms演算法,而是用於在目標檢測中用於提取分數最高的視窗的。例如在行人檢測中,滑動視窗經提取特徵,經分類器分類識別後...