Efficient Non Maximum Suppression 筆記(不完整版)


         目前只記錄了非極大值的基本方法。

         非極大值抑制(Non-Maximum Suppression,NMS),可以被理解為局部最大搜索,即領域范圍內的最大值。給定一個n,1D鄰域包括一個點的左側和右側的n個點,2D鄰域為以當前點為中心的(2n+1)×(2n+1)區域。NMS在計算機視覺領域有着非常重要的應用,如跟蹤、數據挖掘、3D重建、目標識別等。

        1-D NMS

         大部分的文章都會以3鄰域來做一個比較簡單易懂的說明:

       i ← 1;
       while i+1 < W do 
              if I[i] > I[i+1] then
                  if I[i] >= I[i - 1] then
                     MaximumAt(i);
              else
                  i ← i+1;
                  while i+1 < W AND I[i] <= I[i + 1] do
                        i ← i+1;
                  if i+1 < W then
                       MaximumAt(i);
               i ← i + 2;

          步驟說明:

1、如果一個點比其左右兩側點的值都大,即得到局部最大值,3 - 5行。

2、在處理過程中,如果未得到局部最大值,可以知道i + 1 點比左側的i點小,那么在下一次處理時,i = i + 2,11行。

1-D n鄰域,我以為可以這樣寫:

 
       i ← n;
       while i+n < W do 
              mi = i;
              forall j ∈ [i+1,i+n] && i+n < W do
                  if I[mi] < I[j]
                     mi = j;
              if mi != i
                 i = mi;
                 continue;
              forall j ∈ [i-n,i-1]  do 
                                     if   I[i] <= I[j] then
                       break;
              if j == i
                 MaximumAt(i);
              i = i + 2n;

論文上卻比這樣更復雜,應該是加快計算速度吧,看不太懂,記下細看:

        2-D NMS

         2-D的思路與1-D有些不同,偽代碼如下:

        對於一點,先找點i右下方區域(n+1)×(n+1))最大的點m,然后判斷m左上方、上方、左側的(n+1)×(n+1)是否比m值小,如果是,則認為找到局部最大值。與我想像的有些不同。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com