複製鏈接
請複製以下鏈接發送給好友

非極大值抑制

鎖定
非極大值抑制(Non-Maximum Suppression,NMS),顧名思義就是抑制不是極大值的元素,可以理解為局部最大搜索。這個局部代表的是一個鄰域,鄰域有兩個參數可變,一是鄰域的維數,二是鄰域的大小。
中文名
非極大值抑制
外文名
Non-Maximum Suppression
縮    寫
NMS

目錄

非極大值抑制介紹

非最大抑制是邊緣細化技術。
非最大抑制應用於“減薄”邊緣。應用梯度計算後,從梯度值中提取的邊緣仍然非常模糊。關於標準3,應該只對邊緣有一個準確的響應。因此,非最大抑制可以幫助抑制除局部最大值之外的所有梯度值(通過將它們設置為0),其指示具有最強烈的強度值變化的位置。漸變圖像中每個像素的算法是:
1、將當前像素的邊緣強度與正梯度方向和負梯度方向上的像素的邊緣強度進行比較。
2、如果當前像素的邊緣強度與具有相同方向的掩模中的其他像素相比是最大的(即,指向y方向的像素,則將其與其上方和下方的像素進行比較,垂直軸),該值將被保留。否則,該值將被抑制。

非極大值抑制例子

例如在行人檢測中,滑動窗口經提取特徵,經分類器分類識別後,每個窗口都會得到一個分數。但是滑動窗口會導致很多窗口與其他窗口存在包含或者大部分交叉的情況。這時就需要用到NMS來選取那些鄰域裏分數最高(是行人的概率最大),並且抑制那些分數低的窗口 [1] 

非極大值抑制實施方式

在一些實施方式中,算法將連續梯度方向分類為一組小的離散方向,然後在前一步驟的輸出(即,邊緣強度和梯度方向)上移動3×3濾波器。在每個像素處,如果其幅度不大於梯度方向上的兩個鄰居的幅度,則它抑制中心像素的邊緣強度(通過將其值設置為0)。例如,
如果圓形漸變角為0°(即邊緣在南北方向上),如果其漸變幅度大於東西方向像素處的幅度,則該點將被視為在邊緣上
如果圓角度梯度角為90°(即邊緣位於東西方向),如果其漸變幅度大於南北方向像素處的幅度,則該點將被視為在邊緣上。
如果圓角漸變角度為135°(即邊緣位於東北 - 西南方向),如果其漸變幅度大於西北和東南方向像素的幅度,則該點將被視為在邊緣上。
如果圓形漸變角度為45°(即邊緣位於西北 - 東南方向),如果其漸變幅度大於東北和西南像素的幅度,則該點將被視為在邊緣上方向。
在更精確的實現中,在跨越梯度方向的兩個相鄰像素之間使用線性內插。例如,如果梯度角在45°和90°之間,則北和東北像素的漸變之間的插值將給出一個插值,並且南和西西像素之間的插值將給出另一個(使用最後一段)。中心像素處的梯度幅度必須大於這兩者的梯度幅度,以便將其標記為邊緣。
注意方向的符號是無關緊要的,即南北與南北相同,依此類推。
參考資料