使用自適應閾值和支持動態區域的曲率尺度空間角點檢測(理論)

參考文獻:Curvature Scale Space Corner Detector with Adaptive Threshold and Dynamic Region of Support (PDF下載)

1.曲率尺度空間(CSS)的角點檢測子
這一小節主要講原始的和改進的CSS。
定義曲率:

其中,



g(u,σ ) 是高斯函數對σ的偏導數;一個點是一階偏導數,二個點是二階偏導數。然後是小x和小y與其卷積。
檢測步驟如下:
(1)對一幅灰度圖使用Canny算子獲得二值的邊緣圖;
(2)從邊緣圖提取邊緣輪廓,填充輪廓中的裂縫,並找到T節點;
(3)對邊緣輪廓計算高尺度σ high的曲率;
(4)考慮一個局部極大值作爲初始角點,其絕對曲率大於閾值t並且兩倍於其中一個鄰近的局部極小值;
(5)從最高尺度到最低尺度追蹤角點來提高定位;
(6)比較T節點和其他角點,刪除兩個很近的角點中的一個;
在這個算法中,在檢測過程中使用單尺度,在定位中使用多尺度;σ描述的是尺度,然而σ太小會檢測錯誤的角點,σ太大也未能檢測出正確的角點,對於複雜的圖像來說σ是相當難以明確的!還有個問題是那個全局閾值t又該怎麼確定?
然而事實上,對於輪廓長度這個影響尺度係數的因素也並非必然,再說輪廓長度也不是曲率的一個主要因素啊,因此實際上需要對同一幅圖像使用不同的尺度。下面將介紹其改進的方法!

2.改進的CSS角點檢測方法
該方法區別於上述方法的(3)和(4)步:
(3)在每一個輪廓和一個確定的低尺度計算曲率以記住所有正確的角點;
(4)所有曲率的局部極大值作爲角點的候選對象,這裏包括哪些錯誤的角點;
關於區分錯誤的角點和去除邊界噪聲及細節,使用如下3和4的方法:

3.自適應局部閾值
在候選的角點中,儘管一些檢測數字化的點事局部最大絕對值,然而這些最大值與支撐的鄰域區域的可計算差異很小。這就是所謂的圓角。它可以通過局部自適應曲率閾值方法去除!這將關係到鄰域區域的曲率。這個自適應閾值表述如下:

其中K一撥是鄰域曲率均值,u是曲線上候選角點的位置,L1 和 L2是ROS的大小,C是作用係數。
支持區域(ROS)定義:從一個鄰域局部曲率極小值到下一個從候選點到兩端嚴格減少的曲率。
C=1,沒有“角點”被去除;
C=2,曲率函數的波形是三角的;
1<C<2,便是圓角,通過對大量圖片實驗,一般取均值1.5。

4.角點的角度
通常情況下一個定義明確的角點是一個比較尖銳的角!(銳角)
也就是說如果我們知道曲線上的點的夾角,便能很好的區分正確的角點還是錯誤的。然而這個需要我們在ROS中獲得一個好的尺度。下面讓我們分析下圖:

圖上的五個點都是曲率局部最大的點即角點的候選點,
如果採用小的ROS:則這五個點都是角點;
如果是大的ROS:2,3,4將可能被視爲錯誤的角點;
事實上我們並不知道ROS的大小,因此需要做下面的工作:
使用動態ROS!驚訝吧,ROS的大小我們讓候選角點(主要是兩個鄰近的候選角點)自己去決定吧!也算一種自學習或自適應!當然這裏不能用這個詞。
在上圖中,如果3的ROS跨越了2和4,判斷其爲正確的角點,是個銳角。
另一個方面,如果在自適應局部閾值之後僅僅1,3,5被記爲候選角點,則3的ROS跨過了1和5,就可以把3看做一個錯誤的角點(1,5大概成一條直線)
經過上面的分析,我們可以得出:
如果160°<=角C<=200°,候選角點C是個錯誤角點,否則是一個正確的角點。
其中,


經過多次迭代,由邊界噪聲和不重要的細節產生的孤立的候選角點被去除,主要的角點被保留。

5.總結
學習本文是出於我在研究基於平均曲率流(MCVF)的圖像濾波,在後面我講寫一篇關於其實驗和代碼分析的文章!隨後將進行基於平均曲率流相關問題的分析研究。

發佈了70 篇原創文章 · 獲贊 18 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章