梁銘裕,劉修泉,黃 平+
(1.華南理工大學 機械與汽車工程學院,廣東 廣州 510640; 2.佛山職業技術學院 機電工程學院,廣東 佛山 528137)
汽車加油機器人的視覺系統首先進行圖像獲取、油箱蓋識別與定位和獲取空間位置信息,然后經過控制部分做出判斷,控制機器人到達指定位置抓取油箱蓋。在一幅汽車油箱蓋圖像中,邊緣包含了大量的圖像特征信息。因此,油箱蓋邊緣檢測是汽車加油機器人研究的一個重點。
圖像邊緣檢測關鍵在于精確定位邊緣位置和有效抑制噪聲。現代邊緣檢測方法,如啟發式算法、神經網絡算法等[1,2]定位精度高且適用于各類圖像,但是需要建立大量數據樣本且算法實現成本大、效率低。傳統邊緣檢測方法有Sobel算子、LoG算子以及Canny算子等,Sobel算子定位精度高,但是會產生較粗邊緣[3];LoG算子在平滑圖像的同時會將邊緣平滑,因而無法檢測出弱邊緣[4];Canny算子被證明是基于像素梯度邊緣檢測方法中最有效的方法[5]。因此,近年來出現了很多對Canny算子的改進方法。Pawar等[6]提出采用形態學方法濾除噪聲并采用圖像分塊的方法確定閾值。Nikolic等[7]提出結合改進的中值濾波器與動態加權平滑濾波器進行圖像去噪,并人工設定閾值進行邊緣檢測。Xuan L等[8]利用中值濾波器與雙邊濾波器進行去噪,再采用微分運算對梯度幅值直方圖進行處理,由此得出兩個自適應的閾值對圖像提取邊緣。Gong Y等[9]利用二維Otsu算法和牛頓迭代法自適應選取閾值,再對圖像進行邊緣檢測。劉麗霞等[10]采用引導濾波對圖像平滑并采用4個方向的梯度算子計算梯度與方向,再用Otsu算法獲取閾值。Canny算子具有較高的定位精度、較好的邊緣平滑性與連續性,但也會存在偽邊緣和抗噪能力差等問題。因此,采用傳統邊緣檢測方法提取汽車油箱蓋邊緣仍然有改進空間。
本文根據汽車油箱蓋圖像中普遍存在的問題,首先提出一種基于偽球濾波和內積能量的改進Canny邊緣檢測方法用于提取精確邊緣,再設計一種基于形態學和Otsu算法的油箱蓋粗糙邊緣提取方法用于去除偽邊緣影響,獲得完整粗糙邊緣,最后將精確邊緣與粗糙邊緣結合從而獲得油箱蓋邊緣。
對于油箱蓋邊緣檢測可以看作是對油箱蓋與汽車覆蓋件之間環形板縫的內邊緣檢測。由于油箱蓋表面可能存在灰塵、大顆粒污跡或涂鴉,如圖1(a)和圖1(b),這會為油箱蓋邊緣檢測帶來干擾。在自然光條件下采集圖像,油箱蓋表面的高反光區域也會產生強響應的偽邊緣,如圖1(c)所示。其次,油箱蓋邊緣容易發生高反光,如圖1(d),這也會造成響應強的偽邊緣。同時,圖像采集時的噪聲也是不可忽略的問題。因此,不能用單一的邊緣檢測方法來獲取準確的油箱蓋邊緣。提出一種基于形態學和Otsu閾值的方法對圖像提取粗邊緣,可以剔除錯誤邊緣。用改進的Canny邊緣檢測方法提取精確邊緣圖,再用粗邊緣圖和精確邊緣圖進行“與”操作,可以獲取準確的油箱蓋邊緣圖,圖2為算法流程。

圖1 汽車油箱蓋圖像

圖2 算法流程
Canny算子邊緣檢測的基本步驟如下:
(1)平滑圖像。采用一個環形二維高斯函數與原圖像卷積以抑制噪聲,得出平滑后的圖像。二維高斯函數為
(1)
式中:σs為高斯分布參數。
用G(x,y)與圖像I(x,y)卷積形成高斯濾波平滑后的圖像fs(x,y)
fs(x,y)=G(x,y)*I(x,y)
(2)
(2)用一階差分模板(如Roberts、Prewitt、Sobel等)計算圖像的梯度幅值與方向。采用差分模板與圖像卷積得出圖像灰度沿水平方向的偏導數gx(x,y)與垂直方向的偏導數gy(x,y),從而計算出梯度幅值與方向。
設水平方向與垂直方向的差分模板分別為H1和H2,則
gx(x,y)=fs(x,y)★H1
(3)
gy(x,y)=fs(x,y)★H2
(4)
計算梯度幅值與方向
(5)
(6)
(3)對梯度幅值進行非極大值抑制。對圖像進行梯度幅值計算后,因存在多個邊緣梯度響應而造成邊緣粗大且模糊,所以需要對梯度幅值圖進行非極大值抑制以獲得細化的邊緣圖,使邊緣定位更加準確。將梯度方向劃分為水平、垂直、+45°和-45°,鄰域中心點梯度幅值與沿其對應的梯度方向的兩個像素相比,若中心點梯度幅值為最大值,則保留,否則置0。這樣可以抑制非極大值得出細化的邊緣。
(4)用雙閾值處理進行非極大值抑制后的圖像。設定高閾值Th與低閾值Tl對非極大值抑制后的梯度圖進行分割。其中,高閾值分割后的邊緣圖可以去除大部分噪聲邊緣和背景邊緣,但是目標邊緣連接不完整;低閾值分割后的邊緣圖保留了大量目標邊緣,但同時也保留了大部分噪聲邊緣和背景邊緣。為了提高邊緣檢測器的效果,以高閾值分割后的邊緣圖為基礎,在低閾值分割后的邊緣圖搜索可以與高閾值邊緣圖連接的邊緣點,使目標邊緣更加完整。
為檢測出定位精度高且平滑性好的油箱蓋邊緣,提出一種基于偽球濾波與內積能量的改進Canny邊緣檢測方法,主要對傳統Canny算子做出3點改進。
采用基于偽球濾波的邊緣檢測。為了減少噪聲對邊緣檢測的影響,傳統Canny算子在用差分模板提取梯度前會先用高斯濾波器對圖像做平滑處理。但是在抑制噪聲的同時會造成邊緣的損失,從而影響定位精度。針對濾波器的平滑性能與邊緣保持性能矛盾問題,采用一種基于偽球濾波的邊緣檢測算子,能在平滑圖像同時獲得更高的邊緣定位精度,而且能相對獨立地調節平滑性能和邊緣定位性能。
采用梯度內積能量圖代替梯度幅值圖。傳統Canny邊緣檢測使用對梯度幅值圖進行非極大值抑制,由于沒有考慮像素點鄰域內梯度大小是否因噪聲而出現隨機誤差,會使目標邊緣出現像素缺失和錯位等情況。對此,采用一種計算梯度內積能量圖的方法,以獲得更好的噪聲抑制能力。
采用Otsu算法獲取閾值。傳統Canny算子采用人工選取閾值的方法可以保留大部分有用的邊緣,但是算法的自適應能力會降低。采用Otsu算法可以自適應地確定邊緣連接時的高閾值。
3.1.1 拽物線與偽球濾波器
曲線l為拽物線,如果其函數滿足微分方程
(7)
式中:σ為常數,可以將上式方程的解寫成
(8)
圖3為σ取3時的拽物線。

圖3 拽物線曲線
將拽物線繞對稱軸旋轉得出的曲面就是偽球面,其數學方程為
(9)
圖4為σ取3時的偽球面。

圖4 偽球面
拽物線在原點處無定義,在原點可以近似為沖激函數δ(x),所以直接用拽物線作為濾波核,在原點處會得出的響應與原信號基本相等。為了使其具有濾波性能,必須在原點處補充定義[11]。采用雙二次函數對其進行補充。
在一個充分小的對稱區間內定義函數q(x)為
q(x)=ax4+bx2+c,x∈[-ε,ε]
(10)
f(x)與q(x)滿足以下約束關系

(11)
由式(11)求解得出參數a、b、c可以得出拼接后的函數

(12)
對式(12)繞對稱軸旋轉并作歸一化可以得出拼接雙二次函數的2D偽球濾波器的核函數
(13)
式中:S為歸一化常量。偽球濾波器中σ為常數,ε為邊緣控制參數,通過選取兩個參數可以相對獨立地調節平滑性能與邊緣保持性能。對式(13)的濾波函數離散化,在區間[-σ,σ]×[-σ,σ]內均勻取樣可以獲得濾波模板。獲取濾波模板后與原圖像進行卷積操作就可以得出偽球濾波器平滑后的圖像。
3.1.2 偽球邊緣檢測算子
式(13)所示的濾波函數PSF(x,y)處一階可導,分別對x、y求偏微分得出
(14)
(15)
與其它邊緣檢測模板相似,對式(14)、式(15)離散化并進行取樣即可獲得兩個方向上的邊緣檢測模板
(16)
(17)
式中:i,j=1,2,…,2T+1,T為濾波器的大小;式(16)和式(17)分別為水平、垂直方向上的偽球邊緣檢測器。采用卷積操作即可獲得水平、垂直方向上的梯度。

(18)

從直觀上看,由于在噪聲點附近梯度方向呈隨機分布,方向難以與邊緣點一致,故能量內積響應小;在邊緣點鄰域內各點的梯度方向與邊緣點較一致,故能量內積響應大。
通過將偽球濾波、偽球邊緣檢測器、內積能量與Canny算子相結合,得出改進的Canny精確邊緣檢測方法,步驟如下:
(1)采用偽球濾波器平滑圖像。
(2)采用偽球邊緣檢測模板計算各點梯度。
(3)利用式(18)計算圖像各點的內積能量得出內積能量圖。
(4)利用梯度方向與內積能量圖進行非極大值抑制。
(5)采用Otsu算法獲取高閾值,并取高閾值的0.3倍為低閾值,雙閾值處理獲取連續目標邊緣圖。
為去除非目標邊緣,提出一種基于形態學和Otsu閾值的粗糙邊緣檢測方法。數學形態學方法可以根據圖像感興趣目標的形態特征增強圖像,保留有用信息的同時可以去除噪聲[13-16]。首先采用偽球濾波器平滑圖像并進行多尺度底帽變換增強圖像,再用最大類間方差進行閾值分割,然后進行連通區域去噪以獲取油箱蓋板縫區域,最后獲取板縫內邊緣并進行膨脹獲得粗邊緣。
由于汽車油箱蓋與覆蓋件之間的板縫區域比周圍的灰度值低,為了增強板縫與覆蓋件之間對比度以及去除圖像中的噪聲,選用多尺度底帽變換對圖像處理,提取具有最小灰度值的板縫信息,同時可以消除光照不均和解決覆蓋件存在高反光區域的問題。
設f是輸入圖像,B為結構元素,Df和DB分別是f和B的定義域,則:
灰度膨脹
(19)
灰度腐蝕
(20)
灰度開運算
(f°B)(x,y)=(f?B)⊕B
(21)
灰度閉運算
(f?B)(x,y)=(f⊕B)?B
(22)
開運算是先用結構元素B對原始圖像f進行灰度級腐蝕操作,再進行膨脹,可以用來去除灰度圖中比結構元素小的灰度值較高的區域;閉運算是先進行膨脹后進行腐蝕操作,可以用來去除灰度圖中暗細節部分。
用閉運算結果減去原圖像,這種操作稱為底帽變換(Bottom-hat,BTH),可以提取小于結構元素的暗細節特征并去除光照不均勻的影響,定義為
BTH(x,y)=(f?B)(x,y)-f(x,y)
(23)
數學形態學的重點是結構元素的選擇,底帽變換的結構元素是提取板縫信息的決定性因素,結構元素過大會加入較多的噪聲,過小會漏掉有用的信息。采用多結構元素提取圖像不同尺度下的暗細節特征,多尺度結構元素定義如下
Bn=B0⊕B0…⊕B0…(d-1)times
(24)
其中,B0為初始選擇的結構元素,d為尺度參數,即大尺度結構元素由初始結構元素膨脹得到。因此,第i個尺度下由底帽變換提取的圖像暗區域BTHi定義如下
BTHi(x,y)=f?Bi-f
(25)
不同尺度下,運用BTHi得到當前點(x,y)的BTHi(x,y)值,并以最大值作為當前點的最優圖像暗區域特征,定義如下
(26)
圖5為基于底帽變換提取暗細節特征的圖像,采用多尺度圓形結構元素進行底帽變換,油箱蓋的板縫信息在局部區域更加突出,并且可以減少光照不均和高反光區域的影響。

圖5 底帽變換效果
Otsu算法是一種圖像分割的自動閾值選擇算法[17],可以將板縫與非板縫區域區分的有效方法。利用最大類間方差法可以自動確定圖像的分割閾值,把圖像分為目標和背景并使兩部分之間的方差值最大,避免人為設定參數。
設圖像灰度級范圍為[0,1,…,L-1],大小為M×N,其中L為圖像灰度級個數,令ni表示第i灰度級的像素點數,圖像歸一化灰度直方圖概率分布為
(27)
假設閾值t將圖像劃分為兩部分,一部分為圖像背景C0={0,1,…t},另一部分為圖像目標C1={t+1,…,L-1}。定義圖像類概率與類均值分別為
(28)
(29)
定義圖像灰度總均值為
(30)
定義圖像類間方差為
(31)
則最大類間方差閾值t*為
(32)
以圖5為例,對底帽變換后的圖像利用最大類間方差閾值進行分割,結果如圖6所示,可以較好地從油箱蓋圖像中提取出板縫目標。在二值圖像中存在一些不屬于目標的信息,為了剔除非目標的干擾并獲取板縫內邊緣需要進一步處理。

圖6 Otsu閾值化結果
閾值分割后的汽車圖像由板縫像素點、干擾噪聲像素點、背景像素點組成。根據油箱蓋板縫的特征信息,采用提取連通區域方法進行去噪,選面積最大連通區域為板縫區域。
采用形態學方法提取邊界,對二值圖像進行膨脹,膨脹后的結果與原二值圖作差得出板縫邊界圖,選取連通區域長度較短的為板縫內邊緣。由于采用閾值分割后的二值圖像邊緣并不是準確定位的油箱蓋邊緣,為確保粗糙邊緣與準確定位的油箱蓋邊緣有交集且不會包含較多偽邊緣,采用圓形結構元素對內邊緣進行膨脹操作,得出油箱蓋粗糙邊緣,如圖7所示。

圖7 油箱蓋粗邊緣
本文實驗采用的汽車油箱蓋圖像來源于自然環境下的實拍圖片,從不同拍攝角度、不同拍攝距離、不同拍攝背景、不同顏色采集大小為1920×1440的汽車圖像,采用檢測出的油箱蓋區域做邊緣檢測,示例如圖8所示。對多幅圖像統計得出油箱蓋區域圖像大小約為384×384。

圖8 汽車圖像及油箱蓋區域示例
采用Otsu閾值進行二值化,再結合連通區域統計,提取出油箱蓋板縫區域,采用形態學方法提取油箱蓋粗邊緣,提取出的油箱蓋粗糙邊緣如圖9(a)。采用改進的Canny精確邊緣檢測方法提取圖像中準確的邊緣,如圖9(b)所示。由圖像可以看出,該方法可以獲得較為精細的邊緣,但是油箱蓋表面高反光區域、大顆粒污跡或涂鴉等情況造成的偽邊緣也被檢測出來。對粗糙邊緣圖像與精細邊緣圖像作“與”操作,準確定位出板縫內邊緣。對圖9(a)與圖9(b)的結果進行“與”操作,將其效果如圖9(c)所示。

圖9 提取汽車油箱蓋邊緣
由結果可以看出,提出的汽車油箱蓋邊緣檢測方法可以準確檢測出油箱蓋邊緣并消除高反光區域、大顆粒灰塵或涂鴉的影響。
為驗證本文提出的改進Canny邊緣檢測方法在汽車油箱蓋邊緣檢測中的應用,在消除邊緣噪聲、邊緣缺失、邊緣錯位以及邊緣冗余的效果,對拍攝的4幅圖像,如圖1所示,分別用Sobel算子、LoG算子以及Canny算子進行仿真實驗。圖9(d)~圖9(f)分別為用Sobel算子、LoG算子和Canny算子進行邊緣檢測并取反后的結果,其中圖9(d)與圖9(e)取最大值的20%作為閾值進行二值化操作。從圖9(d)~圖9(f)可以看出,Sobel算子檢測的邊緣粗大,定位精度最差;LoG算子可以檢測出精細邊緣,但是噪聲多且邊緣連通性差;Canny邊緣檢測方法邊緣效果較好,但還是會有邊緣噪聲、邊緣缺失、邊緣錯位以及邊緣冗余的情況。圖10為圖9(f)中方框內的局部放大,圖11則為改進Canny邊緣檢測方法結果的對應局部放大,改進的方法對消除邊緣噪聲、邊緣缺失、邊緣錯位以及邊緣冗余有一定的效果。

圖10 Canny邊緣圖局部放大

圖11 改進Canny邊緣圖局部放大
為了驗證改進的Canny算法的去噪能力,對15幅汽車油箱蓋圖像添加不同程度的噪聲后進行邊緣檢測,再計算峰值信噪比(PSNR)并取平均值,結果見表1、表2。

表1 不同程度高斯噪聲下的PSNR值

表2 不同程度椒鹽噪聲下的PSNR值
由表1與表2可以得出隨著高斯噪聲大小或者椒鹽噪聲濃度的增加,本文的改進Canny方法客觀指標PSNR比傳統Canny高,具有更好的去噪能力。
綜上可以看出,改進Canny邊緣檢測方法的邊緣較為連續清晰和平滑,且在噪聲抑制方面具有更好的效果。
針對汽車油箱蓋圖像精確提取油箱蓋邊緣過程中存在難以有效去除偽邊緣和抑制噪聲等問題。本文先提出一種基于偽球與內積能量的改進Canny邊緣檢測方法,利用偽球濾波器與偽球邊緣檢測器可以平滑圖像并具有較好邊緣定位能力的優勢,再考慮因隨機誤差引起的梯度大小差異而采用計算梯度內積能量圖,使得改進的邊緣檢測方法具有良好的去噪和定位精度。再提出一種基于形態學與Otsu閾值的粗邊緣提取方法,利用多尺度底帽變換可以突出汽車油箱蓋與覆蓋件之間板縫區域的能力,再結合Otsu算法可以自動確定分割閾值的優勢,使得該方法可以獲得粗糙目標邊緣。最后將精細邊緣與粗糙邊緣進行“與”操作,獲得油箱蓋準確的目標邊緣。
實驗結果表明:改進的精確邊緣檢測方法可以獲得連續清晰和平滑的邊緣,并且較傳統的Canny邊緣檢測在邊緣噪聲、邊緣缺失、邊緣錯位以及邊緣冗余的問題上都有更好的改進。粗糙邊緣檢測方法可以完整提取出油箱蓋邊緣,可以去除因高反光和大顆粒灰塵等引起的偽邊緣。粗細邊緣結合可以得出精確的汽車油箱蓋邊緣圖像。