計算機視覺工程師在面試過程中主要考察三個內容:圖像處理、機器學習、深度學習。然而,各類資料紛繁複雜,或是簡單的知識點羅列,或是有着詳細數學推導令人望而生畏的大部頭。爲了督促自己學習,也爲了方便後人,決心將常考必會的知識點以通俗易懂的方式設立專欄進行講解,努力做到長期更新。此專欄不求甚解,只追求應付一般面試。希望該專欄羽翼漸豐之日,可以爲大家免去尋找資料的勞累。每篇介紹一個知識點,沒有先後順序。想了解什麼知識點可以私信或者評論,如果重要而且恰巧我也能學會,會盡快更新。最後,每一個知識點我會參考很多資料。考慮到簡潔性,就不引用了。如有冒犯之處,聯繫我進行刪除或者補加引用。在此先提前致歉了!
非極大值抑制
Non-Maximum Suppression NMS
目標檢測常用算法
在目標檢測中,同一個目標得到很多檢測框,冗餘性較大。
使用非極大值抑制減少冗餘邊框。如下圖。
算法流程
- 取分數最高的框
- 計算其餘框和該框的交併比(Interection-over-union,IoU),也就是重疊比例
- 濾除交併比大於閾值的框(閾值一般0.4左右)
- 剩餘的框繼續循環上述三步,直到無法濾除
IoU計算
一圖勝千言
soft-NMS
使用NMS會使上述兩個框只保留分數大的那個
然而兩個框並不冗餘,所以提出了soft-NMS
與NMS濾除IoU大於閾值的框不同,soft-NMS是改變IoU大於閾值的框的分數:
IoU小於閾值:框保留,分數不變,同NMS,可以進入下一次循環
IoU大於閾值:框保留,降低分數,不進入下一次循環
降低分數的兩種方法:
s代表分數
線性:
指數:
個人認爲,指數方法用計算複雜度換來了抑制分數程度的靈活性。
因爲可以通過調整σ,改變抑制分數的程度:
σ越小,抑制越強烈。這樣看,線性方法有些死板。
soft-NMS最後保留的框很多。
一般,最後設置一個閾值,直接過濾掉分數較低的框。
soft-NMS的算法複雜度相比NMS增加不大,所以一般使用soft-NMS。
完
歡迎討論 歡迎吐槽