第三章 研究方法
3.1 改良式垂直邊緣格雷編碼(EPGC)之架構
3.1.2 Canny 邊緣偵測
邊緣偵測的目的是找出影像中亮度變化明顯的點,影像屬性中的顯著變化通 常反映了屬性的重要事件和變化,一般稱之為邊緣像素(Edge Pixel)。
Canny 邊緣偵測[16]是 John F. Canny 於1986年發表出來的一個多級邊緣偵 測演算法。而Canny的目標是找到一個最佳的邊緣偵測演算法,其最佳邊緣 偵測的定義為:
(1). 低錯誤率:
能偵測到所有邊緣,而且只偵測到邊緣。
(2). 邊緣點應有好的局部性:
所找到的邊緣應盡可能接近真實邊緣。亦即,一個被偵測器標記為邊緣 的點和真實邊緣中心點之間的距離應該最小。
(3). 單一邊緣點響應:
對每一個真實的邊緣點,偵測器應該只偵測出一個點。亦即,環境真實 邊緣附近的局部極大值的數目應該要最小,這意味當只有單一邊緣點存 在時,偵測器不應指認出多重邊緣像素。
為了滿足這些要求Canny 使用了變分法,這是一種尋找滿足特定功能的函數 的方法。最佳偵測使用四個指數函數項的和表示,但是它非常近似於高斯函數的 一階倒數。以下簡介Canny演算法的步驟如下:
步驟一:
以一高斯濾波器對輸入影像作平滑處理。任何邊緣偵測演算法都不可能在未 經處理的原始影像上有很好的效果,所以第一步是將原始影像𝑓(𝑥, 𝑦)與高斯函數 𝐺𝑎𝑢𝑠𝑠𝑖𝑎𝑛(𝑥, 𝑦)做卷積,即可得到平滑影像𝑓𝑆(𝑥, 𝑦)。
𝑓𝑆(𝑥, 𝑦) = 𝑓(𝑥, 𝑦) ∗ 𝐺𝑎𝑢𝑠𝑠𝑖𝑎𝑛(𝑥, 𝑦) (3-3)
- 24 -
步驟二:
計算梯度大小和角度。
𝑀(𝑥, 𝑦) = √𝑔𝑥2+ 𝑔𝑦2 (3-4) 𝛼(𝑥, 𝑦) = tan−1(𝑔𝑦
𝑔𝑥) (3-5)
其中𝑔𝑥 =𝜕𝑓𝜕𝑥𝑆 和 𝑔𝑦 =𝜕𝑓𝜕𝑦𝑆
步驟三:
運用非最大值抑制(Non-maximal Suppression)到梯度大小的影像上。利用水平、
垂直和對角線四個濾波器遮罩來比較原始梯度大小,以及量化後梯度方向所指的 像素的梯度大小。
步驟四:
用 雙 門 檻 和 連 通 性 分 析 偵 測 並 連 結 邊 緣 。 Canny 使 用 了 遲 滯 門 檻 值 (Hysteresis Threshold)的技巧,設定兩個門檻值:低門檻值 𝑇𝑙 和高門檻值 𝑇ℎ 。 若高於 𝑇ℎ 的像素便是邊緣點;與邊緣點鄰接的像素點,其像素值 p 符合 𝑇𝑙 ≤ 𝑝 ≤ 𝑇ℎ 則也屬於邊緣點。
介紹完Canny邊緣偵測後,在EPGC的上個階段使用Otsu演算法得到一個門檻 值 𝑘∗,然後將此門檻值設定為Canny邊緣偵測的高門檻值𝑇ℎ,而我們所設定的高、
低門檻值比例為:
𝑇𝑙 = 0.4 × 𝑇ℎ (3-6)
接下來,以實驗中所使用的原始影像其中一張當作例子:
- 25 -
(a) 原始影像
(b) 典型Canny邊緣偵測
(c) 結合Otsu計算門檻值的Canny邊緣偵測
圖 3-4 典型 Canny 與結合 Otsu 計算門檻值的 Canny 比較
經由Otsu門檻化計算出來的類別間變異數 𝜎𝐵2(𝑘)進行統計,如圖 3-5所示,其 值最大的範圍大約落在灰階值120到135之間,取這區間的平均值127作為門檻值 𝑇ℎ。
- 26 -
圖 3-5 類別間變異數統計圖
如圖 3-4所示,比較(b)和(c)可以觀察到,典型Canny邊緣偵測的邊緣點總數 共37871個,其高門檻值為63.75,低門檻值為25.5;而結合Otsu計算門檻值的Canny 邊緣偵測,邊緣點總數共25318個,其高門檻值為126.99,低門檻為50.796。大約 可以減少原本Canny邊緣偵測33.15%的邊緣點數量。
使用Otsu計算門檻值的方法可以保留對比較明顯的邊緣,也就是綠葉(前景) 的邊緣,而這些邊緣為主要影響特徵的統計直方圖的分佈,我們會在後面的3.2 節討論。