徐辛超,李涵坤
(遼寧工程技術大學 測繪與地理科學學院,遼寧 阜新 123000)
隨著計算機視覺及遙感技術的發展,圖像的特征提取在圖像識別、遙感圖像分析以及數字圖像處理中發揮著重要作用[1]。圖像的直線特征提取在城市三維建模技術中至關重要,對于人工地物,直線可以最直觀、最穩定地反映出物體的特征。直線的特征提取在三維目標的識別、物體跟蹤等領域中得到廣泛應用,通過直線特征能夠反映出目標物體的高層信息[2]。
國內外研究學者已經對直線檢測算法開展研究。1962年,Paul Hough[3]首次提出經典的Hough變換直線提取理論。2012年,Rafael等人[4]提出經典LSD直線提取算法,與Hough變換方法相比,可以在較短的時間內得到亞像素級精度的直線提取結果。彭博[5]等人分別用經典LSD直線提取方法與Hough變換直線提取方法對高分一號遙感影像進行仿真實驗,結果表明經典LSD直線提取方法具有較好的穩定性和適用性。齊永菊[6]等人將EDlines直線檢測算法用于遙感圖像的直線提取,具有較高的精度和計算速度。嚴少華[7]等人針對具有顯著視角變化的寬基線影像的直線提取,提出一種較為穩健的直線特征匹配方法,提高直線匹配的正確率。劉肅艷[8]等人針對近景影像直線匹配,提出結合同名點及核線約束的近景直線匹配算法,得到可靠的直線匹配結果。閆兆進[9]等人針對如何從大量點云數據中準確提取道路的線,提出一種基于直線特征檢測的道路邊線自動提取方法。林火煅[10]等人針對電力線算法在復雜的環境下穩定性較差的問題,提出一種基于LSD算法與統計分析的航拍圖像電力線提取算法。張平[11]針對近景影像的特征匹配方法,利用經典LSD直線檢測算法對影像進行直線提取。上述方法雖然取得一定進展,但都是基于圖像的單通道灰度特征,在對彩色圖像處理時均將其轉換為灰度圖像,造成部分圖像特征信息的缺失,導致部分直線段無法被檢測或直線段不連續。針對彩色圖像直線提取問題,李軒[12]等人利用模糊算法檢測彩色圖像的邊緣信息。韓玲燕[13]等人提出一種基于二維直方圖的彩色圖像全局閾值分割算法,可以有效提高分割的精度,進而提高彩色圖像特征提取的能力。鮑小麗[14]等人將提出的基于混沌初始化和反向學習策略的蜻蜓算法用于多閾值彩色圖像的分割中,具有很好的實用性。李中健[15]等人將OTSU算法應用到多閾值彩色圖像分割中,該方法能夠快速對彩色圖像進行閾值分割并且具有較強的抗噪性。但是上述方法的提取結果很大程度上依賴于邊緣檢測算法的結果,而且沒有驗證對彩色圖像進行直線提取的效果。
綜合上述各類方法的優缺點及彩色圖像的多通道梯度特征,提出一種適合彩色圖像的直線提取方法,充分考慮不同通道的梯度特征差異性,而且不需要對圖像進行邊緣檢測,可以為直線匹配、相機標定、遙感圖像處理等多個領域提供技術支持。
經典LSD直線提取算法是一種局部的直線提取算法,輸入是灰度圖像,輸出是直線提取結果,可以檢測到目標圖像中直線的輪廓。經典LSD直線提取算法首先對灰度圖像進行下采樣,計算灰度圖像中每個像素點的梯度值,然后根據梯度值對所有像素點進行偽排序,偽排序后要剔除梯度值小于閾值的像素點,這些像素點不能參與線段支撐域和矩形的構建(矩形的主方向是線段支撐域的主軸方向,同時矩形的大小需要覆蓋整個線段支撐域)。最后對得到的直線支撐域進行直線驗證,得到滿足條件的直線。
多通道梯度特征的直線提取,首先對彩色圖像進行高斯降采樣,目的是盡量減少圖像出現鋸齒效應,然后對多個通道進行梯度計算,對像素點的梯度最大值進行偽排序構建直線支撐域,最后利用Helmholtz準則對直線支撐域進行直線驗證,不符合驗證條件的丟棄,符合條件的記錄存儲,表示為一條檢測到的直線。Helmholtz準則是由Desolneux等人建立的數學模型,這一模型可以抑制虛假線段的出現。

由于彩色圖像的R,G,B 3個通道中存儲的信息存在差異,導致每個通道的梯度特征與灰度圖像的梯度特征各不相同,為充分利用彩色圖像的多通道梯度特征,對每個像素的R,G,B和灰度4個通道分別進行梯度計算。為盡量減少在進行梯度計算時像素之間的彼此依賴,采用2×2的Robert算子進行梯度運算。假設i(x,y)為像素點(x,y)處的某一通道的灰度值,則像素的單方向梯度可以根據式(1)計算。
(1)
其中,gx和gy分別代表水平方向和垂直方向的梯度。
基于單方向梯度運算結果,得到該像素梯度的方向θ為:

(2)
根據像素的水平和垂直方向梯度,計算出像素的梯度幅值G(x,y)為:
(3)
由于彩色圖像中邊緣部分的梯度值較高,位于邊緣中間的像素通常有最高的梯度幅值,因此在進行彩色圖像的直線檢測時采用梯度最大值原則來提高直線檢測的效果。由于采用1 024個.bin文件可以涵蓋梯度0~255變化范圍,因此,將圖像的梯度強度范圍設置為[0,1 023],即分為1 024個等級。統計每個像素在R,G,B通道及灰度通道的梯度最大值,即計算彩色圖像3個通道以及灰度圖像的梯度最大值,將圖像的梯度強度范圍設置為[0,1 023],即分為1 024個等級。統計每個像素在R,G,B通道及灰度通道的梯度最大值,并將所有像素的梯度最大值分配至1 024個等級中,將梯度最大值進行偽排序來構建直線支撐域(梯度最大值小于閾值ρ的點不能參與直線支撐域的構建)。排序算法最快的也需要n·logn次操作,而偽排序可以將時間縮短到線性時間內,并不是真正的進行梯度排序,只是按梯度值進行一定程度的排序。
取偽排序的首位像素當作種子點作為初始檢查點,依次進行檢查,將種子點的LLA(Level-Line-Angle)作為區域的初始角度,當加入新的像素到區域后,區域的角度就會通過式(4)進行一次區域的更新(j是遍歷時像素的下標)。當LLA和區域角度之間的差值在容忍值內,則將該點加入到直線區域中,否則舍棄。依次檢查直到直線支撐域構建完畢。直線支撐域是一個直線分割的備選區域,同時需要一個矩形與它進行一一對應,直線支撐域的主軸用來表示這個矩形的主方向。
(4)
在進行直線提取時,受外界環境的干擾和采集設備的影響會使圖像中存在噪聲,導致錯誤檢測直線的概率較高,因此,采用Helmholtz準則來降低在直線提取過程中由于噪聲影響產生的偽直線檢測。利用Helmholtz準則進行直線驗證時,首先判斷由直線支撐域構造的矩形R內同向點的密度是否滿足閾值,如果不滿足則截斷R變成多個矩形框,直到密度滿足條件為止。若條件滿足則計算錯誤警報次數(Number of False Alarms,NFA),當NFA的值小于設定的閾值,可以判斷提取的直線是正確直線,保留輸出R,表示為一條檢測到的直線。
(5)
當得到最終的直線支撐區域后,就可以完成直線段的提取。
1)對彩色圖像的R,G,B通道以及對應的灰度圖像進行高斯降采樣。
2)計算R,G,B通道及灰度通道的梯度,并統計其梯度的最大值,記錄其對應的梯度方向。
3)根據梯度最大值進行偽排序,建立狀態列表,將所有點的初始狀態都設為unused。
4)將梯度最大值小于閾值ρ的狀態設置為used。
5)取偽排序首位的點作為種子點進行區域擴散并做好標記。
6)將擴散后的區域進行矩形擬合,計算擬合矩陣的誤差,根據式(5),計算NFA值,如果誤差在閾值內,則滿足條件,將擬合的矩陣進行記錄,表示為一條檢測到的直線,繼續檢測下一個種子點直至結束。
為驗證文中方法對彩色圖像的直線提取的效果,采用彩色棋盤格圖像、York城市圖像數據庫[17]中的圖像以及真實航拍影像進行實驗。需要首先確定縮放、模糊等參數的大小,選取York城市數據庫中的室內圖像,對不同縮放尺度sca和不同大小的高斯濾波參數sig進行對比實驗,實驗結果如表1所示。

表1 經典LSD與文中方法不同參數下的直線提取結果統計
首先在高斯濾波參數sig等于0.6,縮放尺度sca等于0.9、0.8、0.7、0.6時對文中方法進行測試,直線提取結果如圖1所示。

圖1 同一高斯濾波參數下的直線提取結果
通過實驗得到的結果可以看出當高斯濾波參數sig=0.6時,縮放尺度sca=0.9、0.8、0.7、0.6時,在sca=0.9時提取的效果最好,因此,最終確定文中方法在直線提取時的縮放尺度sca=0.9。
為確定高斯濾波參數的大小,在縮放尺度sca=0.9時,sig=0.6、0.7、0.8、0.9各4種情況進行了實驗,直線提取結果如圖2所示。

圖2 同一縮放尺度下的直線提取結果
通過實驗得到的結果可以得出,當縮放尺度sca=0.9時,高斯濾波參數sig=0.6、0.7、0.8、0.9時,直線提取的數量逐漸減少,在sig=0.6時提取的直線效果最好,因此,最終確定高斯濾波參數sig=0.6。
為證明文中對彩色圖像的直線提取效果要好于經典LSD直線提取算法。選取一張彩色棋盤格圖3(a)、兩張YORK城市數據庫中的圖像,包括一張室內圖3(b)和一張室外圖3(c)以及一張航拍影像圖3(d)進行實驗分析,如圖3所示。圖4—圖6為原始測試圖像經過經典LSD直線檢測和文中方法直線檢測的結果對比。

圖3 測試圖像
彩色棋盤格在經過經典LSD直線提取算法和文中方法后的直線檢測結果對比如圖4所示。
由圖4的直線提取結果可以得出,文中方法是基于多通道梯度特征的直線提取,提取結果明顯優于基于單通道灰度梯度特征的經典LSD直線提取結果。從數量上講,文中方法的直線提取結果多于經典LSD直線提取算法,而且文中方法的直線提取連續性更好。

圖4 彩色棋盤格提取結果對比
室內外圖像經過經典LSD直線提取算法和文中方法后的直線檢測結果對比如圖5所示。
由圖5的直線提取結果及框選部分為典型區域提取,對于室內圖像(b)中,在房頂和墻的交界處、房屋結構變化的區域,從紅、藍、綠、黃、紫、橙色框選出來的部分來觀察能明顯看出經典LSD方法出現了直線缺失或者斷裂的情況,而文中方法比較完整的提取該直線,其它局部細節的提取效果也優于經典LSD方法。對于室外圖像(c)中,墻面的裝飾材料間的直線特征中,經典LSD方法缺失的部分比較多,而文中方法的實際提取效果更好,提取的直線數量更多,直線的連續性更好。

圖5 York圖像提取結果對比
航拍影像經過經典LSD直線提取算法和文中方法后的直線檢測結果對比如圖6所示。
由圖6的直線提取結果可以得出,在實際航攝影像中,特別是房頂等直線特征較多的區域中,經典LSD方法沒有提取出所有的直線,而文中的方法直線提取結果更優。

圖6 航拍影像提取結果對比
對上述實驗結果進行統計,結果見表2,表2中實驗圖像即為圖3中測試圖像。

表2 直線提取結果對比
由表2可得,在圖3(a)進行試驗時,提取的直線數量增加20%;在對York城市圖像數據庫中的室內圖3(b)進行實驗時,提取的直線數量增加37.9%;對York城市圖像數據庫中的室外圖3(c)進行實驗時,提取的直線數量增加26.5%;對航拍影像圖3(d)進行實驗時,提取的直線數量增加18.7%。
由上述實驗結果與分析得到以下結論:
1)經典LSD直線提取算法是基于灰度圖像的,在對彩色圖像進行直線提取時,由于彩色圖像中的不同色彩可能有相近似的灰度,當彩色圖像轉換為灰度圖像時,容易使部分的直線段無法被檢測到,所以文中提出基于彩色圖像的LSD直線提取,防止當彩色圖像轉換為灰度圖像過程中造成的彩色圖像中信息丟失以至于直線段無法被檢測到的問題。
2)經典LSD直線提取算法是基于梯度的,在對圖像中像素的梯度值進行計算時需要計算灰度圖像的梯度值,然后對所有的梯度值進行排序,當梯度大于一定閾值之后,判定可以參加直線區域的構建。當輸入的是彩色圖像轉化為灰度圖像后,容易將強邊緣變成弱邊緣,造成直線段無法被檢測到。文中方法是取彩色圖像R,G,B三通道以及灰度圖像的梯度最大值,對每一維都取梯度的最大值,那么這個像素被判定可以參加直線區域構建的概率就增加,并且文中方法不會破壞彩色圖像的信息,能夠較好地提取到彩色圖像中的直線。
直線提取是圖像的特征提取中的重要部分,在對物體的輪廓提取,三維目標的識別以及物體的追蹤等方面廣泛應用。經典LSD直線提取算法在進行直線提取時僅僅采用了圖像的灰度信息,當彩色圖像轉化為灰度圖像時,容易導致原來圖像中的直線無法被檢測到或者檢測到的直線長度不連續等問題,因此文中提出一種基于多通道梯度特征的彩色圖像直線提取的方法,通過計算彩色圖像R,G,B三通道以及其對應灰度圖像的梯度值,取這4種梯度最大值及其對應梯度方向作為初始梯度值進行直線檢測。通過對彩色棋盤格圖像、York城市圖像以及航拍影像進行實驗驗證,結果表明文中的方法能夠更好利用圖像中的彩色信息,提取的直線數量更多,且可靠性更好,為目標識別、相機標定等技術奠定更好的基礎。