楊瑩瑩,劉 翔,石蘊玉
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
近年來,倉儲物流的發(fā)展越來越趨近于智能化。自動導(dǎo)航車(Automated Guided Vehicle,AGV)的大量使用加速了現(xiàn)代化智能物流的發(fā)展。目前,AGV小車的導(dǎo)航方式主要有電磁導(dǎo)航、激光導(dǎo)航和磁帶導(dǎo)航[1]??紤]到這幾種導(dǎo)航方式存在靈活性差、成本較高、易磨損等問題,研究者逐漸將目光轉(zhuǎn)向價格低且魯棒性較好的視覺導(dǎo)航[2]。
AGV在路徑運輸過程中,能夠檢測到前方障礙物信息并實現(xiàn)自主避障,這也是視覺導(dǎo)航的關(guān)鍵。目前,檢測障礙物的方式主要是通過視覺和激光雷達實現(xiàn)的[3]。文獻[4]通過立體視覺的方式對負(fù)障進行檢測。文獻[5]提出基于三維激光雷達的技術(shù)檢測物體與周圍障礙物的安全距離。文獻[6]基于單目視覺的方式檢測觀測區(qū)域內(nèi)的運動障礙物。立體視覺雖然可以獲取高分辨率的彩色圖像,但是視覺匹配具有較大的復(fù)雜度與耗時性。激光雷達可以快速獲取準(zhǔn)確的三維點云,但是由于價格昂貴,體積笨重,仍無法被廣泛應(yīng)用于工廠中。綜上,本文采用基于單目視覺的方式實現(xiàn)AGV運輸過程中的障礙物檢測,檢測流程如圖1所示。
圖1 障礙物檢測流程圖Figure 1. Flow chart of obstacle detection
CIE Lab簡稱Lab,是由國際照明委員會(Commission International Eclairage,CIE)于1976年制定的一種色彩模式。與其他常見的顏色空間(例如CMYK、RGB)相比,Lab定義的色彩最多。與人類的視覺色域范圍相比,Lab具有更大的色域范圍,其處理速度也是三維顏色空間中最快的[7]。在Lab 色彩空間中,它的3個基本坐標(biāo)為:L代表亮度;a的正方向代表紅色,負(fù)方向代表綠色;b的正方向代表黃色,負(fù)方向代表藍色,如圖2所示。
圖2 Lab色彩空間Figure 2. Lab color space
在智能工廠環(huán)境中,地面存在燈光照射以及反光等干擾因素,因此使用傳統(tǒng)的邊緣檢測容易產(chǎn)生偽邊緣。相機采集的RGB圖像的顏色空間是非均勻的,無法體現(xiàn)顏色差異[8],而Lab顏色空間是均勻的,可以用數(shù)字化的形式表述人類的視覺感受,因此本文采用基于Lab顏色空間變換的方法來減少光照不均和地面紋理等因素造成的干擾。雖然Lab的顏色空間是均勻的,但是其無法和XYZ色彩空間一樣幾乎包含人類可以感覺到的所有顏色,因此將RGB顏色空間轉(zhuǎn)換到 Lab 顏色空間需要經(jīng)過XYZ空間模型[9],即
(1)
Lab顏色空間與XYZ空間轉(zhuǎn)換關(guān)系為
(2)
其中,f(X)如式(3)所示。
(3)
在Lab顏色空間中,b分量與其他兩個分量是獨立不相關(guān)的,單獨使用b分量進行圖像處理可以減少計算量,且b分量的像素分布對比度較為明顯,有利于準(zhǔn)確提取目標(biāo)圖像,因此本文采用b分量圖像進行后續(xù)的圖像處理。
Roberts、Sobel、Laplacian-of-Gaussian(LoG)等邊緣檢測算法通過微分算子提取邊緣信息,這種方式對噪聲比較敏感,易導(dǎo)致邊緣定位不精確[10-12];而Canny算子提取的邊緣最為完善,且具有較好的連續(xù)性和較精確的定位,因此本文使用改進的Canny算子進一步提取路徑與障礙物信息。
傳統(tǒng)Canny算法中,高斯濾波算法是對整幅圖像進行加權(quán)平均,這樣容易模糊圖像的邊緣特征。相較于高斯濾波,雙邊濾波算法結(jié)構(gòu)簡單,且計算復(fù)雜度低,其重要特性就是在降噪的同時保持圖像邊緣[13]。但是雙邊濾波無法去除椒鹽噪聲,而中值濾波不僅可以去除椒鹽噪聲,也能夠?qū)D像邊緣起到保護作用,因此本文通過使用改進的中值濾波與雙邊濾波融合的方法來代替高斯濾波,在降噪的同時保留更多的邊緣特征。
中值濾波是將圖像中某個像素點鄰域中各點值的中值代替該像素點的值,使周圍的像素值接近于實際值,從而去除孤立噪聲點。用計算式可以表述為
g(x,y)=med{f(x-k,y-l),(k,l∈W)}
(4)
式中,f(x,y)和g(x,y)分別為輸入圖像和中值濾波處理后的圖像;W為奇數(shù)二維模板。
中值濾波在數(shù)據(jù)排序時需要耗費較長的時間,影響AGV工作系統(tǒng)的實時性。針對該問題,本文通過采用3×3的濾波器尺寸對算法的實時性進行改進。其中,t11、t12、t13、t21、t22、t23、t31、t32、t33為濾波器中的像素值,如圖3所示。
圖3 中值濾波處理Figure 3. Median filtering
首先定義Ti={ti1,ti2,ti3|i=1,2,3},Mini=min{max{Ti|i=1,2,3}},Maxi=max{min{Ti|i=1,2,3}},Medi=med{med{Ti|i=1,2,3}}。其中,Ti代表每行像素集,Mini代表取每行中的最大值后再取3個最大值中的最小值,Maxi代表取每行中的最小值后再取3個最小值中的最大值,Medi代表取每行中的中值后再取3個中值中的中值。對Mini、Maxi、Medi進行中值排序后就可以得到濾波器最后的中間像素值。在3×3的濾波器中,9個像素的中值Med如式(5)所示。
Med=med{Mini,Medi,Maxi|i=1,2,3}
(5)
通過改進的方法進行排序,只需要進行17次比較,與傳統(tǒng)的中值濾波算法相比較,減少了約兩倍的排序次數(shù),提高了濾波算法的運算速度。
雙邊濾波通過定義域核對圖像模糊去噪,同時利用值域核來保護圖像邊緣。假設(shè)圖像I(x,y)中某像素點坐標(biāo)為(i,j),式(6)和式(7)分別為定義域核與值域核的計算式。
(6)
(7)
其中,(g,k)為點(i,j)為中心的鄰域內(nèi)任意一點;f(i,j)為點(i,j)對應(yīng)的像素值;f(g,k)為點(g,k)對應(yīng)的像素值;σd是調(diào)整空間距離較大像素的權(quán)重值;σr是調(diào)整像素差異較大像素的權(quán)重值,可通過改變σd和σr的值來影響雙邊濾波的效果。依據(jù)式(6)和式(7)得到如下雙邊濾波權(quán)重系數(shù)
(8)
通過權(quán)重系數(shù),計算出雙邊濾波后的輸出像素值g(i,j)。
(9)
障礙物檢測的計算過程較為簡單,但對邊緣檢測的精度要求較高。為了突出邊緣信息,在原始Canny算法上,增加計算了26.57°、45°、63.44°、116.57°、135°、153.44°方向上的一階偏導(dǎo)數(shù),從而確定像素的梯度幅值。
Gx(x,y)=f(x+1,y)-f(x-1,y)
(10)
Gy(x,y)=f(x,y+1)-f(x,y-1)
(11)
G26.57°(x,y)=f(x+2,y+1)-f(x-2,y-1)
(12)
G45°(x,y)=f(x+1,y+1)-f(x-1,y-1)
(13)
G63.44°(x,y)=f(x+1,y+2)-f(x-1,y-2)
(14)
G116.57°(x,y)=f(x-1,y+2)-f(x+1,y-2)
(15)
G135°(x,y)=f(x-1,y+1)-f(x+1,y-1)
(16)
G153.44°(x,y)=f(x-2,y+1)-f(x+2,y-1)
(17)
其中,G表示求一階偏導(dǎo)。根據(jù)上述計算式可求出梯度幅值M(x,y)和梯度方向θ(x,y),如下所示。
(18)
(19)
原始Canny算法只考慮了0°和90°上的梯度,容易產(chǎn)生誤檢,將非邊緣部分錯誤地當(dāng)作邊緣。文獻[14]中增加了45°和135°,降低了誤檢率,使得邊緣檢測的精度有所提高。為了進一步提高檢測精度,本文在此基礎(chǔ)上增加了4個方向,使得后續(xù)的路徑線與障礙物檢測的準(zhǔn)確率更高。
傳統(tǒng)Canny算子需要人工設(shè)定高低閾值,針對不同的圖像,需要人工不斷調(diào)整閾值參數(shù)[15],不僅增加了人工工作量,也不適合智能化系統(tǒng)。因此,本文提出了使用最大類間方差法[16],又稱Otsu法,來實現(xiàn)閾值的自適應(yīng)。
假設(shè)AGV采集的路徑圖像尺寸為M×N,圖像的前景與背景分割閾值為t。其中,前景像素點占整幅圖像的比值以及其平均灰度分別為ω1和μ1;背景像素點占整幅圖像的比值以及其平均灰度分別為ω2、μ2。圖像的總平均灰度為μ,前景與背景間的方差為g,如式(20)和式(21)所示。
μ=ω1×μ1+ω2×μ2
(20)
g=ω1×(μ1-μ)2+ω2×(μ2-μ)2
(21)
當(dāng)類間方差g取值最大時,對應(yīng)的閾值t為圖像最佳分割閾值,代表圖像的前景和背景間的差別最大,即背景與前景間錯分的概率最小[17]。本文將Otsu法獲取的最佳分割閾值t作為高閾值提取邊緣,經(jīng)式(22)計算得出高閾值和低閾值。當(dāng)高閾值為低閾值的2.5倍時,提取的路徑與障礙物的邊緣輪廓最佳。使用面積閾值法去除較小的邊緣線,從而只保留最外圍的輪廓邊緣,如圖4所示。
(22)
圖4中,最左側(cè)圖像為采用改進的濾波對b分量處理的圖像,中間為傳統(tǒng)Canny檢測結(jié)果,最右側(cè)為本文方法檢測結(jié)果。
圖4 改進Canny邊緣檢測圖Figure 4. Improved Canny edge detection map
本實驗通過AGV車載攝像機采集路徑圖像,在OpenCV4.0.1平臺中進行圖像處理。實驗中先將圖像轉(zhuǎn)換到Lab顏色空間中,提取b分量后進行濾波處理,效果如圖5所示。
圖5 經(jīng)過濾波后的b分量圖像Figure 5. b component image after filtering
圖5中,最左側(cè)為b分量圖像,中間為高斯濾波處理圖像,最右側(cè)為改進的濾波處理圖像。從圖5中可以看出,在Lab顏色空間中,對b分量進行不同方式的濾波處理,本文的濾波方式優(yōu)于高斯濾波。
對比原圖像與b分量經(jīng)過高斯濾波與本文濾波處理后的峰值信噪比(Peak Signal-to-Noise Ratio,PSNR),如表1和表2所示。
表1 原圖像經(jīng)過濾波處理后的PSNR
表2 b分量圖像經(jīng)過濾波處理后的PSNR
從表1和表2中可以看出,在不同的顏色空間中,采用相同的濾波方式,b分量的信噪比高于原圖像RGB顏色空間的信噪比;在同一個顏色空間中,本文改進的濾波方法信噪比高于高斯濾波,說明圖像噪聲被有效地去除,圖像質(zhì)量更好。
從表3中可以看出,與傳統(tǒng)中值濾波比較,本文方法的處理速度得到了明顯的提高,表明改進的中值濾波算法增強了算法的實時性。
表3 傳統(tǒng)中值濾波與改進中值濾波的時間對比
通過使用改進Canny算法對不同位姿的障礙物進行檢測,其中一部分實驗結(jié)果如圖6所示。
圖6 障礙物檢測效果Figure 6. Effects of obstacle detection
圖6中,最左側(cè)圖片為采用改進的濾波對b分量圖像的處理效果,中間為使用改進Canny算法檢測路徑與障礙物的效果,最右側(cè)為通過計算最大外接矩形確定路徑與障礙物的位置結(jié)果。
從圖6中可以看出,在地面紋理干擾、光照不均勻、反光倒影等因素影響下,使用本文算法可以有效地檢測到AGV行駛過程中遇到的障礙物,為實現(xiàn)AGV準(zhǔn)確避障奠定了基礎(chǔ)。
文獻[18]提出通過邊緣點數(shù)、4連通域數(shù)與8連通域數(shù)的指標(biāo)來評價邊緣。通過研究分析得出,8連通域數(shù)與4連通域數(shù)的比值(表4、表5中的比值1)代表單一邊緣響應(yīng)情況,比值越小,符合度越高;8連通域數(shù)與邊緣像素總數(shù)比值(表4、表5中的比值2)代表邊緣連續(xù)性,比值越小說明連續(xù)性越好。
表4 傳統(tǒng)Canny邊緣圖像信息統(tǒng)計
表5 改進Canny邊緣圖像信息統(tǒng)計
將表4中的比值1、比值2與表5中對應(yīng)的比值進行對比,由結(jié)果可知表5中的比值較小,表明改進Canny算子在單一邊緣響應(yīng)與邊緣連續(xù)性方面效果更好。
表6 傳統(tǒng)Canny與改進Canny時間對比
相較于傳統(tǒng)Canny算法,改進Canny僅對b分量圖像進行處理,減少了數(shù)據(jù)量,且通過改進中值濾波使濾波速度得到了提升。由表6可知,與傳統(tǒng)Canny算法比較,本文方法提高了邊緣檢測速度,表明改進的方法具有實時性。
本文針對智能工廠中復(fù)雜多變的環(huán)境干擾,提出了將RGB圖像進行Lab顏色空間轉(zhuǎn)換,通過改進的中值濾波與雙邊濾波融合的方式對b分量圖像進行處理,降低了噪聲的干擾,提高了算法的運算速度。同時對傳統(tǒng)Canny邊緣檢測算子中梯度方向以及閾值選取進行了改進,準(zhǔn)確地檢測到了障礙物的位置。實驗結(jié)果表明,本文提出的方法可被用于智能工廠中基于AGV的障礙物檢測,且為后期的障礙物距離測量奠定了一定的基礎(chǔ)。未來,針對更加復(fù)雜的工廠環(huán)境,需要對動態(tài)以及不規(guī)則障礙物的檢測做進一步研究,使算法更具通用性。