《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 一種基于光條中心線的測(cè)距方法
一種基于光條中心線的測(cè)距方法
2016年微型機(jī)與應(yīng)用第17期
游佳興,,黃魯
中國(guó)科學(xué)技術(shù)大學(xué) 電子科學(xué)與技術(shù)系,安徽 合肥 230026
摘要: 在單目視覺(jué)避障系統(tǒng)中,利用紅色LED水平光條照射前方障礙物,,由攝像頭獲得圖像并處理后得到紅光光條,,根據(jù)光條中心在圖像中的位置判斷障礙物與攝像頭之間的距離。該文對(duì)Zhang并行細(xì)化算法進(jìn)行了改進(jìn),,以適應(yīng)嵌入式系統(tǒng)快速準(zhǔn)確得到紅光光條的中心線,,由中心線坐標(biāo)得到障礙物距離及寬度。實(shí)驗(yàn)結(jié)果證明,,該算法具有很好的中心線提取效果,;測(cè)距范圍為25 cm,測(cè)距誤差在3 mm以內(nèi),。
Abstract:
Key words :

  游佳興,,黃魯
  (中國(guó)科學(xué)技術(shù)大學(xué) 電子科學(xué)與技術(shù)系,,安徽 合肥 230026)

       摘要:單目視覺(jué)避障系統(tǒng)中,,利用紅色LED水平光條照射前方障礙物,由攝像頭獲得圖像并處理后得到紅光光條,,根據(jù)光條中心在圖像中的位置判斷障礙物與攝像頭之間的距離,。該文對(duì)Zhang并行細(xì)化算法進(jìn)行了改進(jìn),以適應(yīng)嵌入式系統(tǒng)快速準(zhǔn)確得到紅光光條的中心線,,由中心線坐標(biāo)得到障礙物距離及寬度,。實(shí)驗(yàn)結(jié)果證明,該算法具有很好的中心線提取效果,;測(cè)距范圍為25 cm,,測(cè)距誤差在3 mm以內(nèi)。
  關(guān)鍵詞:openCV,;中心線提?。粶y(cè)距,;單目視覺(jué)  

0引言
  目前,,掃地機(jī)器人避障是非常熱門的研究領(lǐng)域,與傳統(tǒng)的超聲波,、紅外測(cè)距[1]相比,,視覺(jué)傳感器可以得到更多的環(huán)境信息;單目視覺(jué)系統(tǒng)具有成本低,、體積小的特點(diǎn),,適合于掃地機(jī)器人。單目視覺(jué)避障的方法主要有單目圖像還原3D場(chǎng)景[2],、特征檢測(cè)[3],、結(jié)構(gòu)光測(cè)距,。本文利用紅色LED矩形光條照射前方障礙物,根據(jù)光條中心在圖像中的位置來(lái)判斷障礙物距離,。
  圖1(a),、(b)所示分別為距離障礙物5 cm和10 cm的情況下攝像頭獲得的圖像。由這兩個(gè)圖像可知,,不同距離下的光條中心在圖像上的位置不同,,從而達(dá)到測(cè)距的目的。
  

圖像 001.png

1中心線提取
  目前中心線的提取算法主要有以下兩種:
 ?。?)基于距離變換的方法[4],。建立紅色光條的距離場(chǎng)模型,提取距離場(chǎng)中的局部極值點(diǎn),,然后細(xì)化處理得到的中心線,。該算法的優(yōu)點(diǎn)是精度高,適合三維場(chǎng)景,;缺點(diǎn)是計(jì)算復(fù)雜度高,,實(shí)時(shí)性較差。
 ?。?)二值細(xì)化法[5],。該算法將得到的紅色光條二值化,利用迭代的方法從邊界開始逐漸刪除,,直至得到中心線,。該算法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,速度快,,可反映各個(gè)光條的形狀,;缺點(diǎn)是如果邊界有許多毛刺將會(huì)出現(xiàn)除中心線外其他的分支。

圖像 002.png

       由于本單目視覺(jué)避障系統(tǒng)是用于掃地機(jī)器人上,,要求測(cè)距精度較高,、實(shí)時(shí)性好,因此本文采用二值細(xì)化法,。提取光條中心線的步驟如圖2所示,。首先在Open Source Computer Vision Library(openCV)中利用HSV顏色空間將紅色光條提取出來(lái)[6],如圖3所示,,將紅色光條部分的像素值置0(黑色),,其他背景的像素值置255(白色)。針對(duì)邊界出現(xiàn)毛刺會(huì)影響中心線提取的缺點(diǎn),,對(duì)提取出的紅色光條圖像進(jìn)行開運(yùn)算,消除邊界毛刺的影響,。

圖像 003.png

  1.1圖像開運(yùn)算去毛刺
  開運(yùn)算是圖像形態(tài)學(xué)中的先腐蝕后膨脹的結(jié)果,,開運(yùn)算可以在不改變光條基本形狀的情況下平滑邊界,,消除邊界毛刺,避免中心線出現(xiàn)分支,。本文利用openCV自帶的腐蝕函數(shù)cvErode(src,dst,element,1)和膨脹函數(shù)cvDilate(src,dst,element,1)來(lái)進(jìn)行開運(yùn)算操作,。其中src為原圖像,dst為處理后的圖像,,element為腐蝕膨脹窗口的形狀和大?。ㄔ诒疚闹校x擇的是10×10的矩形窗口),,最后一個(gè)參數(shù)為膨脹腐蝕的次數(shù),。
  1.2中心線提取算法
  本文算法的思想是迭代刪除光條的上邊界和下邊界,且保證中心線上的像素點(diǎn)不會(huì)被刪除,,直至得到光條的中心線,。
  將開運(yùn)算處理后的二值圖像歸一化,利用openCV內(nèi)的函數(shù)cvThreshold,,光條部分的像素值為1,,其他為0。為了判定像素值為1(光條部分)的點(diǎn)P1(i,j)是否為邊界,,取其周圍3×3的窗口內(nèi)的像素點(diǎn)作為判定,,如表1所示。遍歷光條中的所有像素點(diǎn),,根據(jù)3×3窗口內(nèi)P1(i,j)周圍8個(gè)像素點(diǎn)確定其是否為上邊界或下邊界,,如果是則將其像素置0(刪除邊界),最終得到水平方向垂直寬度為1的中心線,。

圖像 010.png

  算法將迭代分為兩個(gè)部分:第一部分是將光條的上邊界刪除,,第二部分是將光條的下邊界刪除。將位于光條上邊界的點(diǎn)P1(i,j)置0的條件為:(1)B(P1)≤6;(2)A(P1)=1;(3)P2=0 && P6≠0,。
  其中,,B(P1)為P1點(diǎn)周圍8個(gè)像素點(diǎn)中為1的個(gè)數(shù),即:
  B(P1)=P2+P3+P4+P5+P6+P7+P8+P9
  A(P1)為P2,,P3,P4,,…,P8,P9順序中01序列的個(gè)數(shù),如圖4(a)所示,,A(P1)=1;圖4(b)所示,,A(P1)=2。
 

圖像 004.png

  如果P1點(diǎn)不滿足上述3個(gè)條件中的任何一個(gè),,則該點(diǎn)不屬于上邊界,,P1點(diǎn)將不會(huì)被置0。位于光條下邊界的點(diǎn)滿足的條件與上邊界的條件類似,,只是條件(3)有所改變:
  P6=0 && P2≠0,。
  

圖像 005.png

       對(duì)于條件(1),如果B(P1)>6,則該點(diǎn)肯定不在邊界上,,如圖5(a)所示,該P(yáng)1點(diǎn)滿足條件(2)和條件(3),,但是該點(diǎn)明顯位于中心線上,,不能置0,所以需要滿足條件(1),。對(duì)于條件(2),如果出現(xiàn)圖5(b)所示的情況,,該情況滿足(1)和(3)兩個(gè)條件,但是該P(yáng)1點(diǎn)是位于中心線上,,不能置0,,由圖可知A(P1)=2,不滿足條件(2),該P(yáng)1點(diǎn)不會(huì)被置0,。因此,,條件(1)和(2)都是為了保護(hù)中心線上的點(diǎn)不會(huì)被置0而被保存下來(lái)的必須條件。
  在滿足條件(1)和(2)以后,,確定P1點(diǎn)不在中心線及光條內(nèi)部(B(P1)=8的情況),,如果滿足條件(3),說(shuō)明P1點(diǎn)位于光條的上邊界,則該點(diǎn)會(huì)被標(biāo)記并置0,。同樣,,條件(3)′確定P1點(diǎn)位于光條的下邊界。如圖6所示為該算法得到中心線的例子,,其中“*”代表標(biāo)記置0的邊界,,先標(biāo)記上邊界并置0,再標(biāo)記下邊界并置0,,迭代以上步驟,,直到得到圖6最右圖片的中心線為止。

圖像 006.png

  圖7所示為程序的流程圖,,vector M的初始值為0,,即size(vector M)=0。
  

圖像 007.png

2根據(jù)中心線坐標(biāo)求出距離
  圖8所示為攝像機(jī)透視投影模型,,其中,,ABCD為圖像坐標(biāo)系,A′B′C′D′為實(shí)際坐標(biāo)系,,機(jī)器人的前進(jìn)方向?yàn)閄′軸方向,。O點(diǎn)為攝像機(jī)位置,O′為L(zhǎng)ED所在位置,,OO′的距離為h,,G點(diǎn)為圖像中心,G′為G點(diǎn)在實(shí)際坐標(biāo)系的投影點(diǎn),攝像機(jī)的俯仰角即∠G′OO′為θ,,P點(diǎn)為1.2節(jié)中得到的中心線上的一點(diǎn),相對(duì)于G點(diǎn)的坐標(biāo)為P(x,y),,P′為P點(diǎn)對(duì)應(yīng)的實(shí)際坐標(biāo)系上的點(diǎn),Dx為X′軸方向上P′與機(jī)器人之間的距離(即障礙物與機(jī)器人之間的距離),,Dy為P′在Y′軸方向上的距離(即障礙物的水平距離)。
  由圖8可以得到Dx和Dy的距離公式如式(1)和式(2)所示,,其中,,(x,y)為P點(diǎn)相對(duì)于圖像坐標(biāo)系中心G的坐標(biāo),dx和dy分別為圖像坐標(biāo)系水平和垂直方向上的坐標(biāo)點(diǎn)距,,f為攝像機(jī)焦距,。dx、dy,、f為攝像機(jī)參數(shù),,通過(guò)標(biāo)定得到,如表2所示,。
  QQ圖片20160926194207.png

圖像 008.png

  

圖像 011.png

3實(shí)驗(yàn)結(jié)果及分析
 

圖像 009.png

       為了檢測(cè)算法的有效性,,選取了前方障礙物為紙盒的環(huán)境信息。圖9(a)表示具體的環(huán)境信息圖片,,(b)為攝像頭獲得并處理后的紅色光條的圖像,,(c)為本文算法得到的中心線,(d)為Zhang并行化細(xì)化算法得到的骨架中心線,。如圖9(d)所示,,由于Zhang并行細(xì)化得到的是骨架中心線,是在兩個(gè)方向上對(duì)圖像進(jìn)行細(xì)化,,如果光條寬度不一致,,就會(huì)得到豎直方向的分支,且會(huì)縮減中心線的長(zhǎng)度,,這樣會(huì)給機(jī)器人避障帶來(lái)很大的誤差(中心線的位置代表障礙物的位置),。
  如表3所示,P(x,y)為圖9(c)中兩條中心線上的其中一個(gè)點(diǎn)相對(duì)于圖像中心的坐標(biāo),。根據(jù)式(1),、式(2)測(cè)得障礙物距離。兩個(gè)盒子與機(jī)器人之間的實(shí)際距離分別為5 cm和10 cm,,水平實(shí)際距離分別為8 cm和11.5 cm,,結(jié)果如表3所示,其中Dy為正代表障礙物在機(jī)器人中心左邊,,負(fù)為右邊,。測(cè)距誤差在3 mm以內(nèi)。在ARM CortexA8,,CPU主頻為1 GHz,,內(nèi)存為512 MB的開發(fā)板中,,對(duì)于圖9(a)所示的環(huán)境信息,該算法的運(yùn)行時(shí)間為0.23 s,。圖像 012.png
4結(jié)束語(yǔ)
  本文針對(duì)單目視覺(jué)避障系統(tǒng)提出了一種快速的測(cè)距方法,,算法處理效果好,測(cè)距精度較高,,在嵌入式系統(tǒng)中能夠較好地保證實(shí)時(shí)性,,但在算法的處理時(shí)間上還需改進(jìn)。在未來(lái)的工作中,,可以通過(guò)提高硬件要求來(lái)改進(jìn)算法,,改進(jìn)算法的方案是增加中心線算法窗口大小,使每次迭代刪除的邊界更多,,縮短運(yùn)算時(shí)間,。
  參考文獻(xiàn)
  [1] 曹小松,,唐鴻儒,,楊炯. 移動(dòng)機(jī)器人多傳感器信息融合測(cè)距系統(tǒng)設(shè)計(jì)[J]. 自動(dòng)化與儀表,2009,,24(5):48.
 ?。?] LIN Z, DAVIS L. Shapebased human detection and segmentation via hierarchical parttemplate matching[J]. Pattern Analysis and Machine Intelligence,,2010,,32(4):604618.
  [3] SAXENA A,, SUN M,, NG A Y. Make 3 D: Learning 3 D scene structure from a single still image[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2009,,31(5):824840.
 ?。?] SHARF A,LEWINER T,,SHAMIR A,,et al. Onthefly curveskeleton computation for 3D shapes[J].Computer Graphics Forum,2007,,26(3):323328.
 ?。?] PALAGYI K,KUBA A. A parallel 3D 12subiteration thinning algorithm[J]. Graph Models Image Process,,1999,,61(4):199221.
  [6] 湯一平, 宗明理. 基于雙色反射模型的彩色結(jié)構(gòu)光顏色識(shí)別的研究[J]. 計(jì)算機(jī)學(xué)報(bào),2013,36(9):19081916.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。