鄭少華,李偉光,劉維民,黃愛華(華南理工大學(xué) 機械與汽車工程學(xué)院,廣東 廣州 510640)
視覺導(dǎo)航AGV多路徑快速檢測算法研究
鄭少華,李偉光,劉維民,黃愛華
(華南理工大學(xué) 機械與汽車工程學(xué)院,廣東 廣州510640)
為了實現(xiàn)視覺導(dǎo)航AGV在分叉路下的自動導(dǎo)引,提出了一種多路徑快速檢測算法。首先對圖像進行灰度化、平滑、邊緣檢測等操作得到梯度圖像,然后結(jié)合多路徑圖像特征,利用行掃描方式提取各路徑邊緣坐標(biāo),最后利用改進的增量式最小二乘法擬合路徑中心線。實驗表明,該算法運算簡單、實時性強,適用于基于嵌入式系統(tǒng)開發(fā)的視覺導(dǎo)航AGV。
視覺導(dǎo)航AGV;多路徑;最小二乘法;實時性
自動導(dǎo)引小車(Antomated Guided Vehicle,AGV)是指裝備有電磁或光學(xué)等自動導(dǎo)引裝置,可以在規(guī)定的導(dǎo)航路徑上行駛,是具有安全保護以及各種移載功能的運輸小車[1]。AGV的導(dǎo)引方式有電磁導(dǎo)引、磁帶導(dǎo)引、激光導(dǎo)引、視覺導(dǎo)引等,其中視覺導(dǎo)引相比其他導(dǎo)引方式,具有成本低、柔性好、安裝維護方便等優(yōu)點,是當(dāng)今AGV導(dǎo)引技術(shù)的研究熱點。目前的視覺導(dǎo)引技術(shù)研究主要針對單一路線下的路徑檢測,無法實現(xiàn)分叉路下多路徑的檢測與跟蹤。文中對多路徑圖像識別算法進行研究,提出了一種多路徑快速檢測方法。
本文采用的視覺導(dǎo)航AGV模型如圖1所示,AGV為四輪結(jié)構(gòu),其中后兩輪為獨立驅(qū)動的驅(qū)動輪,前兩輪為萬向輪。CCD攝像機放置于AGV縱軸線的前段,并與地面垂直。攝像機兩邊設(shè)有LED燈帶作為光源。
AGV通過CCD攝像機采集到的圖像數(shù)據(jù)識別導(dǎo)航路徑。簡單的視覺導(dǎo)航模型[2]如圖2所示。模型將導(dǎo)航路徑簡化為一條直線,通過圖像識別算法識別該路徑并得到其中心線的直線方程y=ax+b。根據(jù)直線方程計算車體縱軸線與中心線的側(cè)向偏差d及方向偏差θ。所得偏差數(shù)據(jù)作為導(dǎo)航參數(shù)傳入運動控制模塊從而實現(xiàn)AGV的視覺導(dǎo)航。
圖1 AGV結(jié)構(gòu)模型
圖2 視覺導(dǎo)航模型
在實際應(yīng)用場合存在T字路口和十字路口,相應(yīng)的AGV行駛路徑除了單路徑外還存在二叉路和三叉路,如圖3(a)和3(b)所示。當(dāng)攝像頭位于分叉點時,采集圖像中會出現(xiàn)多條路徑。本文通過圖像處理算法識別多條路徑并從上位機獲取路徑選擇信息從而實現(xiàn)AGV在不同路況下的正常行駛。
圖3 分叉路類型
實時準(zhǔn)確獲取AGV與預(yù)設(shè)導(dǎo)航路徑的相對位置是保證AGV安全運行的重要前提。由于AGV的使用場合大多為工廠車間,所采集的圖像除了包括路徑和站點信息外,還有可能存在因底面反光或路徑標(biāo)線污染造成的干擾信息[3]。為實現(xiàn)路徑識別和偏差提取的速度及精度,本文對采集的圖像進行預(yù)處理、邊緣檢測后,結(jié)合上位機路徑選擇信息對路徑進行識別和提取,從而獲取偏差信息。
2.1圖像預(yù)處理
圖像預(yù)處理主要是在像素級上進行處理,主要包括圖像的幾何校正、圖像的灰度變換處理、圖像噪聲濾除的平滑處理等[4]。由于攝像機垂直于地面安裝,其拍攝圖像變形較小,不需對圖像進行幾何校正。因此主要的圖像預(yù)處理內(nèi)容為灰度變換和平滑處理。
由攝像頭采集到的圖像是24位的RGB真彩色圖像。該格式的圖像每一個像素的顏色值由R、G、B分量表示,每一個分量都分配一個0~255的強度值。由于這種格式圖像占用大量內(nèi)存,且會降低系統(tǒng)的處理速度,因此需要將其轉(zhuǎn)換為灰色圖像以節(jié)約內(nèi)存空間及提高處理速度?;叶然幚淼姆椒ㄖ饕?種[5]:最大值法,即取R、G、B中的最大值為該點像素的顏色值;平均值法,即取R、G、B的平均值為該點像素的顏色值;加權(quán)平均值法,即取R、G、B的加權(quán)平均值為該點像素的顏色值,每個分量的權(quán)值由其重要程度或其他指標(biāo)給定。根據(jù)理論推導(dǎo)和實驗證明,當(dāng)該點像素值取為0.299R+ 0.587G+0.114B[6]時,能夠得到最理想的灰度圖像。
圖像形成、傳輸過程中會產(chǎn)生各種內(nèi)部干擾和外部干擾。由這些干擾造成的噪聲會惡化圖像質(zhì)量,影響分析效率,因此去除噪聲是圖像處理的關(guān)鍵步驟。由于典型的噪聲由灰度級的急劇變化組成,而平滑處理使用模板確定的鄰域內(nèi)像素的平均灰度值代替圖像中每個像素的值,這種處理的結(jié)構(gòu)降低了圖像灰度的“尖銳”變化,因此平滑處理可以很好地降低噪聲。本文通過調(diào)整攝像機的焦距使成像輕微模糊,通過硬件模擬平滑處理從而提高了圖像預(yù)處理的速度。
2.2邊緣檢測
本文采用布置在淺色地面背景上的黑色條帶作為預(yù)設(shè)路徑標(biāo)記。路徑邊緣與地面背景間存在灰度的突然變化,因此可通過計算圖像灰度變化的一階導(dǎo)數(shù)檢測路徑邊緣。本文采用sobel梯度算子對圖像進行邊緣檢測操作。sobel算子的模板[7]如圖4所示。
圖4 一副圖像的3x3區(qū)域(z項是灰度值)和計算z5處梯度的sobel模板
利用sobel算子的兩個模板對整個圖像進行濾波,可得到圖像每個像素位置的水平梯度gx和垂直梯度gy:
利用所得梯度分量計算梯度向量的幅值M(x,y)和角度α(x,y):
如果梯度M(x,y)大于某一閾值,則認(rèn)為該點(x,y)為邊緣點。
sobel算子根據(jù)像素點上下、左右鄰點灰度加權(quán)差,在邊緣處達到極值這一現(xiàn)象檢測邊緣。算法計算簡單,對噪聲具有平滑作用,提供較為精確的邊緣方向信息
2.3路徑提取
路徑提取的主要思想是對邊緣化后圖像進行行掃描,從行掃描線中得到路徑的左邊緣及右邊緣位置,通過將左右邊緣位置求平均得到導(dǎo)航路徑中心線在該行圖像的位置。
圖5為行掃描線的示意圖。圖像經(jīng)過sobel邊緣處理后,具有明顯邊緣的區(qū)域具有較大的灰度值,而勻色區(qū)域具有較小的灰度值??山?jīng)過閾值將各像素點分為對象點(灰度值為255)和背景點(灰度值為0)。在本實驗場景中,噪聲主要表現(xiàn)為隨機分布的高灰度值獨立點。而路徑邊緣表現(xiàn)為連續(xù)R個(可根據(jù)實驗測得)高灰度值點,因此可通過判斷連續(xù)R個像素點的灰度值的和是否大于閾值T來確定路徑邊緣位置。
圖5 行掃描線示意圖
路徑提取需考慮以下幾個情況:
1)為避免多次選取到同一路徑邊緣上的點,當(dāng)選取到某一路徑邊緣點時,下一掃描點位置為該邊緣點位置加LineW/ 2(導(dǎo)航路徑寬度)。即邊緣點位置為i時,則下一掃描點位置為i+LineW/2。
2)考慮到AGV運行的車間中存在T字路口和十字路口,因此視場中可能出現(xiàn)2條或3條路徑,相應(yīng)的有4條或者6條路徑邊緣。當(dāng)視場中出現(xiàn)面積較大的干擾物時,邊緣化后會出現(xiàn)和路徑邊緣相似的特征。為避免干擾物對檢測路徑邊緣的影響,當(dāng)從行掃描線中得到非2條、4條或者6條路徑邊緣時,則認(rèn)為該行路徑邊緣提取錯誤。
本算法如下:
Step1:對某行掃描線進行逐點掃描,計算以當(dāng)前掃描點i為首連續(xù)R個像素點的灰度值f的和Si。
Step2:將Si與閾值T進行比較。若Si≤T,認(rèn)為未檢測到邊緣,i加1。若Si>T,認(rèn)為檢測到一個邊緣,記錄當(dāng)前i值,已檢測邊緣數(shù)n加1,同時i+LineW/2
Step3:將i+R與ImageW(圖像寬度)進行比較。若i+R≤ImageW,返回步驟Step1;若i+R>ImageW,認(rèn)為本行掃描完畢,進入步驟Step4。
Step4:判斷n的值。若n分別為2、4、6,則分別檢測到2條、4條、6條邊緣,對應(yīng)為1條、2條、3條路徑,根據(jù)n的值將記錄的i值分別存入各路徑邊緣坐標(biāo)數(shù)組中,同時相應(yīng)計數(shù)器加1(單路徑OneLineN,雙路徑TwoLineN,三路徑ThreeLineN)。若n不為2、4或6,則認(rèn)為該行檢測錯誤,不記錄坐標(biāo)值。
Step5:結(jié)束本行掃描,讀入下行4數(shù)據(jù),重新進行行掃描。
路徑提取算法流程圖如圖6所示。
圖6 路徑提取算法流程圖
經(jīng)過試驗發(fā)現(xiàn),一幀圖像中等間距掃描30行即可達到很好的檢測效果,不需要進行逐行掃描,提高了程序運行速度。2.4直線擬合
首先根據(jù) OneLineN、TwoLineN、ThreeLineN的值判斷當(dāng)前的路徑類型,讀取相應(yīng)路徑數(shù)組中的左右邊緣坐標(biāo),并取其平均值作為路徑的中心點進行直線擬合。
由于曲線路徑可近似為直線處理,因此路徑擬合問題可看作線性回歸問題。線性方程為y=ax+b,根據(jù)最小二乘法,誤差函數(shù)為
各偏導(dǎo)為:
于是得到關(guān)于a,b的線性方程組:
其中n為參與最小二乘法的點數(shù)。
設(shè)A=Σx2i,B=Σxi,C=Σyixi,D=Σyi則方程化為:
解出a,b得:
最小二乘法計算簡單快速,但錯誤點對直線擬合效果有很大影響,因此需對其進行改進。改進的關(guān)鍵是對錯誤點的判別及剔除,考慮到A、B、C、D均為變量的和,因此可以利用增量式的最小二乘法進行直線擬合。通過前n個點計算A、B、C、D進而得到a、b,然后計算第n個點和第n+1個點所在直線與坐標(biāo)軸的角度并與之前n個點擬合所得直線的角度進行比較,若兩者差值大于閾值則認(rèn)為第n+1個點為錯誤點,剔除之。若兩者差值小于閾值則利用第n+1點坐標(biāo)更新A、B、C、D得到新的擬合直線方程。該算法如下:
Step1:利用前兩個點擬合直線:
計算直線斜率lsp、直線角度ldeg、直線截距l(xiāng)int:
初始化已參與直線擬合點數(shù)i=2。
Step2:計算第i個點和第i+1個點所在直線的斜率tsp及角度tdeg:
Step3:比較ldeg和tdeg。若兩者差值大于閾值T1則認(rèn)為第i+1個點為錯誤點,錯誤點計數(shù)器FPoint+1;若兩者差值小于閾值則為正確點,更新A、B、C、D:
更新直線方程:
Step4:i+1,比較i和n(參與直線擬合的點數(shù))。若i≤n,則返回Step2;若i>n,進入Step5。
Step5:若錯誤點計數(shù)器FPoint小于閾值T2,輸出當(dāng)前l(fā)deg和lint;若FPoint大于等于閾值T2,則當(dāng)前幀直線角度及截距l(xiāng)deg、lint為上一幀直線角度及截距preldeg、prelint。當(dāng)前幀直線擬合結(jié)束。
直線擬合算法流程圖如圖7所示。
圖7 直線擬合算法流程圖
當(dāng)初始化的兩點存在錯誤點時,利用這兩點擬合的直線為錯誤直線,這會直接導(dǎo)致后面的錯誤點判斷失敗。針對這種情況,進行如下處理:記錄本算法對前5個點的處理結(jié)果,若FPoint>2,則認(rèn)為初始點存在錯誤點。刪去首個點后重新執(zhí)行直線擬合算法。
為了驗證所提多路徑快速檢測算法的有效性,本文在四輪視覺導(dǎo)航AGV上進行實機測試。安裝在AGV底部的USB攝像機采集圖像數(shù)據(jù)發(fā)送至PC,PC上的上位機軟件采用所提算法對圖像數(shù)據(jù)進行處理后將所得偏差數(shù)據(jù)發(fā)送至AGV上的運動控制卡TMS320F28335,由控制卡對AGV驅(qū)動輪進行控制。其中USB攝像機采集圖像分辨率為640480,上位機PC參數(shù)為Intel奔騰雙核T4300、2G內(nèi)存,上位機軟件采用C語言在Visual Studio2010上編寫。
圖8顯示了本算法對單路徑、雙路徑及三路徑的處理效果。其中每個小圖左側(cè)為原始圖像。原始圖像上部分黑色部分是AGV車體,在圖像處理中不會對該部分進行處理。由于采用LED燈帶作為光源,路徑上部分亮度較大,且路徑下部分存在反光現(xiàn)象,另外路面存在大量污漬,因此原始圖像干擾信息較多。小圖右側(cè)為經(jīng)過本文算法處理后的包含路徑中心線的最終圖像??梢钥吹郊词乖诖嬖诜垂饧拔蹪n等干擾信息的情況下仍能準(zhǔn)確地尋找到路徑中心位置。這是由于本算法對每行檢測到的邊緣點進行篩選,只有滿足要求的點才認(rèn)為是路徑邊緣點,因此極大地提高了本算法的魯棒性。
由于本算法避免復(fù)雜的圖像預(yù)處理和特征提取算法,采用攝像機調(diào)焦代替平滑處理,采用均勻掃描30行代替全局掃描,采用最小二乘法代替hough變換,極大地提高了本算法的運行效率。在上述硬件測試平臺下,平均每幀圖像的處理時間僅為16 ms,完全滿足AGV對于實時性的要求,有利于本算法在基于嵌入式系統(tǒng)開發(fā)的視覺導(dǎo)航AGV上的應(yīng)用。
圖8 實驗結(jié)果
文中針對視覺導(dǎo)航AGV在分叉路上的路況特征,提出了一種有效的AGV多路徑快速檢測算法。該算法對于反光、路面污漬、亮斑等具有良好的魯棒性,同時通過簡化預(yù)處理步驟、采用行掃描路徑提取方法、優(yōu)化最小二乘法等方式極大提高了運行效率。AGV實機測試表明該算法結(jié)合上位機的路徑選擇信息,可以實現(xiàn)多路徑下對特定路徑的提取和跟蹤。本文提出的算法具有高實時性、魯棒性的特點,有利于在嵌入式視覺導(dǎo)航AGV上的應(yīng)用。
[1]李西鋒,魏生民,閆小超.視覺引導(dǎo)AGV的數(shù)字圖像處理方法研究[J].科學(xué)技術(shù)與工程,2010,10(10):2515-2519.
[2]李進.視覺導(dǎo)航智能車輛的路徑識別和跟蹤控制[D].合肥:合肥工業(yè)大學(xué),2008.
[3]蔡國斌,烏建中.數(shù)字圖像處理技術(shù)在AGV上的應(yīng)用[J].電力機車與城軌車輛,2005,28(4):51-53.
[4]黃霞.嵌入式自動導(dǎo)引小車(AGV)系統(tǒng)研究與設(shè)計[D].南京:南京理工大學(xué),2009.
[5]班躍海.基于光流法的機器人視覺導(dǎo)航[D].南京:南京理工大學(xué),2012.
[6]劉全丹.基于機器視覺導(dǎo)引的AGV系統(tǒng)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2008.
[7](美)Rafael C.Gonzalez,Richard E.Woods著.數(shù)字圖像處理[M].3版.阮秋琦,等,譯.北京:電子工業(yè)出版社,2011.
The research of fast multi-path detection algorithm for visual AGV
ZHENG Shao-hua,LI Wei-guang,LIU Wei-ming,HUANG Ai-hua
(School of Mechanical and Automotive Engineering,South China University of Technology,Guangzhou 510640,China)
In order to achieve the automated guide for visual AGV under thefork,a fast multi-path detection algorithm is designed in this paper.First the gradient imageisgained by processes of graying,smoothing,and edge detection.Thenwith multi-path image features,path's edge is extracted by line scanning.Finally the center line of path is fitted by improved incremental least square method.The experiment demonstrates that the algorithm with simple operation and hard real-time is suitable for visual AGV based on embedded system.
visual navigation AGV;multi-path;least square method;real-time
TN911.73
A
1674-6236(2016)11-0177-04
2015-06-17稿件編號:201506183
廣東省數(shù)控一代機械產(chǎn)品創(chuàng)新應(yīng)用示范工程專項資金項目(2013B011301026);省部產(chǎn)學(xué)研結(jié)合項目(2012B091100311)
鄭少華(1990—),男,廣東韶關(guān)人,碩士研究生。研究方向:數(shù)字圖像處理、模式識別。