霍亮+張小躍+張春熹
摘 要: 為解決視覺導(dǎo)航數(shù)據(jù)量大,計算周期長,與其他導(dǎo)航方式進(jìn)行組合導(dǎo)航時存在信息滯后的問題,借鑒矩陣式二維碼設(shè)計思想設(shè)計了一種可用于視覺導(dǎo)航快速識別的路標(biāo),并基于此路標(biāo)特征提出一套快速識別方法。進(jìn)行動態(tài)識別實驗驗證該快速識別方法,實驗結(jié)果表明,所設(shè)計路標(biāo)及提出的快速識別方法可以實現(xiàn)快速識別,滿足視覺導(dǎo)航實時性要求,在采集圖像畸變嚴(yán)重或路標(biāo)只是部分進(jìn)入視場等導(dǎo)致無法解碼的情況下,系統(tǒng)依然可以輸出部分導(dǎo)航信息。
關(guān)鍵詞: 視覺導(dǎo)航; 二維碼; 路標(biāo)設(shè)計; 圖像處理
中圖分類號: TN911.73?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2017)11?0132?05
Study on a landmark for vision navigation and its fast recognition method
HUO Liang, ZHANG Xiaoyue, ZHANG Chunxi
(School of Instrumentation Science and Opto?electronics Engineering, Beihang University, Beijing 100191, China)
Abstract: To solve the problems of large data size and long computation period of vision navigation, and information postponement when the combined navigation is integrated with other navigation modes, a landmark for vision navigation fast recognition was designed according to the design thought of matrix two?dimensional code. On the basis of the landmark characteristic, a landmark quick recognition method is proposed. The experiment of dynamic identification is carried out to verify the validity of the fast recognition method. The experimental results indicate that the landmark and fast recognition method can realize the recognition quickly, satisy the real?time requirement of vision navigation, and the system can also output the part navigation information in the case of decoding failure because of serious distortion of the collected image and part landmark entering into the field of view.
Keywords: vision navigation; two?dimensional code; landmark design; image processing
0 引 言
相比于誤差隨時間累積的慣性導(dǎo)航和高成本、信號易受遮擋的激光導(dǎo)航等,視覺圖像包含了完整的環(huán)境信息,更符合人類的認(rèn)知習(xí)慣,且具有靈活性強、成本低等特點,因此視覺導(dǎo)航定位系統(tǒng)對于智能載體發(fā)展有著重要的研究意義和應(yīng)用價值[1]。利用路標(biāo)技術(shù)為載體提供各種信息是視覺導(dǎo)航的一種,路標(biāo)分為自然路標(biāo)和人工路標(biāo)[2?5]。相比自然路標(biāo),由于人工路標(biāo)具有特定結(jié)構(gòu),可以嵌入事先通過人工測量的位置信息,基于人工路標(biāo)的視覺導(dǎo)航可以通過簡化路標(biāo)識別算法提高定位與導(dǎo)航的準(zhǔn)確性和實時性。人工路標(biāo)以其工作的簡便性、定位的準(zhǔn)確性、移動的靈活性和使用的可靠性日益受到人們的青睞,在室內(nèi)導(dǎo)航等領(lǐng)域正發(fā)揮著越來越大的作用[6?8]。
國內(nèi)外在基于人工路標(biāo)的視覺導(dǎo)航領(lǐng)域開展了廣泛的研究,設(shè)計出了各式各樣的路標(biāo)以提高視覺導(dǎo)航的性能。文獻(xiàn)[9]提出一種彩色路標(biāo),系統(tǒng)彩色直方圖特征作為模板,通過匹配來檢測路標(biāo)。文獻(xiàn)[10]設(shè)計了一種灰度人工路標(biāo),可嵌入編碼信息,識別平均耗時15.6 ms。文獻(xiàn)[11]提出一種適用于移動機器人進(jìn)行目標(biāo)識別與定位的MR二維碼,可為定位提供足夠的信息,識別時間約50 ms。文獻(xiàn)[7]針對結(jié)構(gòu)環(huán)境下的視覺導(dǎo)航系統(tǒng),設(shè)計了一款路標(biāo)并給出相應(yīng)算法,實現(xiàn)了單幀圖像單個路標(biāo)即可定位。
為了進(jìn)一步提高識別實時性,更好地解決視覺導(dǎo)航與諸如慣性導(dǎo)航等其他導(dǎo)航方式進(jìn)行組合時造成的信息時刻不同步的問題,本文受二維QR碼啟發(fā),設(shè)計了一種能被快速識別,包含信息量大,可靠性高的路標(biāo),并提出快速識別方法以提高視覺導(dǎo)航的性能。
1 可快速識別路標(biāo)設(shè)計
圖1為安裝固定在載體上的攝像頭所拍攝的含有路標(biāo)圖像的示意圖。其中為圖像坐標(biāo)系,為世界坐標(biāo)系,路標(biāo)含有方向信息,事先將路標(biāo)以一定角度布置在世界坐標(biāo)系中。例如圖中路標(biāo)以0°布置在世界坐標(biāo)系的原點處,當(dāng)從圖像中檢測出路標(biāo)的方向信息,也就知道了世界坐標(biāo)系與圖像坐標(biāo)系的夾角,此夾角即是載體的航向角。另外,若能獲得路標(biāo)的中心坐標(biāo),則可得到路標(biāo)在圖像坐標(biāo)系中相對于原點的方向因已測出圖像坐標(biāo)系和世界坐標(biāo)系的角度關(guān)系,則可得到圖像坐標(biāo)系原點在世界坐標(biāo)系中相對于路標(biāo)中心的方向。并且基于小孔成像模型,在不考慮畸變嚴(yán)重的情況下,圖像坐標(biāo)系中線段長度與世界坐標(biāo)系中的線段長度成比例關(guān)系,這樣通過嵌入在路標(biāo)中的位置信息就可推算出載體的位置和航向角信息。因此,完成視覺導(dǎo)航功能所需的路標(biāo)必須能被檢測出方向,路標(biāo)中心能被快速定位,且可以嵌入位置信息。
本文設(shè)計的路標(biāo)如圖2所示。先從采集的圖像中檢測出路標(biāo)是解碼的前提。中心回字形圖標(biāo)(中心尋像圖案)用于路標(biāo)在所采集圖像中的位置定位。不論橫向掃描還是縱向掃描時,該圖案的中心各段長度滿足比例即使旋轉(zhuǎn)一定角度依然滿足此關(guān)系,如圖3所示,此設(shè)計借鑒了QR二維碼的設(shè)計特點,便于實現(xiàn)快速定位。為了提供航向角信息,須在圖像坐標(biāo)系中建立一個矢量與載體的朝向進(jìn)行關(guān)聯(lián)。左上角回字形圖標(biāo)(角尋像圖案)(比例為11111)與中心尋像圖案配合用于確定路標(biāo)的朝向,該角度還用于確定路標(biāo)邊緣輪廓點采樣方式,邊緣輪廓點分組方式等。兩圖標(biāo)中心之間的距離用于確定圖形分割的閾值。除中心尋像圖案和角尋像圖像外,外圍黑色方框內(nèi)的其他區(qū)域用于數(shù)據(jù)編碼,可以嵌入路標(biāo)放置的實際坐標(biāo)或是實際坐標(biāo)對應(yīng)的編號。外圍黑色方框一方面用于限定數(shù)據(jù)區(qū)域和邊緣檢測,另一方面用于檢測解碼是否正確。圓形直徑設(shè)計為正方形邊長的兩倍,用于隔離復(fù)雜背景,以便準(zhǔn)確尋找邊緣輪廓點。相對于QR碼,中心尋像圖案面積占路標(biāo)總面積的比值提高了,更容易被探測到,即更適合用于導(dǎo)航。內(nèi)部單元模塊數(shù)量可以根據(jù)需要進(jìn)行選擇??梢詫崿F(xiàn)單幀圖像單個路標(biāo)定位。即使在相機未完整采集路標(biāo)或路標(biāo)畸變較大等情況下導(dǎo)致路標(biāo)解碼失敗時,只要尋找到中心尋像圖案和角尋像圖案,該導(dǎo)航系統(tǒng)依然能輸出航向角信息。
2 快速識別方法
減少訪問像素點的個數(shù)就是節(jié)省識別的時間。本文充分結(jié)合路標(biāo)的設(shè)計特征,減少訪問不必要的像素點個數(shù),提出一套快速識別方法,整體識別流程如圖4所示。首先從攝像頭讀取一幀3通道的彩色圖像,簡單判定攝像頭讀取是否有誤,若讀取為空則報錯停止識別,否則開始識別。
圖4 整體識別流程圖
2.1 灰度化處理
彩色圖像含有全面的信息,但它龐大的數(shù)據(jù)量加大了運算的時間。在視覺導(dǎo)航領(lǐng)域,對實時性要求高時大多使用的是灰度圖像。圖像的灰度化處理就是將彩色圖像轉(zhuǎn)變成灰度圖像。本文選用常用的加權(quán)平均法對圖像進(jìn)行灰度化,即將某像素的三個顏色分量加權(quán)平均后賦給各分量作為該像素的灰度值,如下:
(1)
式中:為該像素點在圖片中的坐標(biāo)位置;為該點的灰度值;為該點的分量;權(quán)值取
2.2 二值化處理
灰度化處理后的圖像仍然具有256種顏色亮度,為了減少后續(xù)圖像處理的復(fù)雜度,通常都需要將灰度圖像轉(zhuǎn)變?yōu)橹痪哂泻?、白兩種灰度值的二值圖像,這樣處理的對象就只有兩種顏色屬性,同時也能與計算機的邏輯值0,1相對應(yīng)。二值化的關(guān)鍵是選擇合適的閾值。若選取的不合適,則會造成信息缺失,導(dǎo)致當(dāng)前一幀解碼失敗。求取二值化閾值的方法有很多種,考慮到路標(biāo)設(shè)計時已隔離復(fù)雜背景,只有黑白兩色,對比鮮明,因此對圖像中心小塊區(qū)域逐點掃描求出最大像素值和最小像素值,取最大像素值和最小像素值的平均值作為二值化的閾值,既節(jié)省時間又不影響二值化后的效果。圖像像素點二值化取值如下:
(2)
式中為閾值。
2.3 尋像圖案定位
如何快速從采集的圖像中找出目標(biāo)是實現(xiàn)快速正確解碼的基礎(chǔ)。對于尋像圖案,傳統(tǒng)的QR碼尋找方式是橫向、縱向掃描尋找出所有滿足比例關(guān)系的線段,對這些線段進(jìn)行集合分類,相同集合的取中間一根線段,若有兩根線段正交,則此交點就是要尋找的尋像圖案的中心點。此方法需要先后兩次遍歷所有像素點,因此非常耗時。又因為是逐點掃描的,所以滿足比例要求的線段非常多,因此需要存儲的空間也非常大。本文采用文獻(xiàn)[12]提出的快速定位QR碼的方法進(jìn)行路標(biāo)的定位,具體方法如下:
首先開始橫向掃描,動態(tài)滑動存儲每5段線段長度。為了節(jié)省時間,采用隔行掃描的方式,此方式能成倍減少掃描時間。實時檢測五段線段長度的比值。若滿足黑白黑白黑=11311或11111,則將這五段線段累加構(gòu)成一條新的線段。若此線段的中點為黑色,則它的坐標(biāo)極可能為尋像圖案中心點的坐標(biāo)。然后從該點再進(jìn)行縱向檢測。若縱向也搜索出滿足比例關(guān)系的中心點,則該點的坐標(biāo)極可能是尋像圖案中心點的坐標(biāo)。為防止誤判可在傾斜方向再次檢測線段比例關(guān)系。找到尋像圖案的中心點也就實現(xiàn)了路標(biāo)在所采集圖像中的定位。為保證一個尋像圖案只被檢測到一次,將縱向成比例線段的總長度設(shè)為閾值,當(dāng)再次檢測到滿足比例關(guān)系的線段與已檢測到的線段距離小于該閾值時,則放棄該線段。尋像圖案定位示意圖如圖5所示。
2.4 航向角輸出
對數(shù)據(jù)進(jìn)行編碼時要盡量避免出現(xiàn)類似角尋像和中心尋像的圖案,這樣便可將解碼條件定為:角尋像圖案個數(shù)和中心尋像圖案個數(shù)分別為1。當(dāng)滿足此判定條件時才進(jìn)行后面的解碼步驟,否則只是輸出航向角便開始進(jìn)行下一幀的檢測。已得到中心尋像圖案中心點和角尋像圖案中心若設(shè)好初始0°的向量為=(-1,1),則通過向量與向量的夾角可確定載體的航向角。
2.5 輪廓點采樣
精確確定路標(biāo)輪廓對于路標(biāo)的正確識別很重要。提取輪廓的方法有很多種, 傳統(tǒng)的邊緣檢測方法使用邊緣檢測算子如Sobel檢測出邊緣,再用hough變換求四條直線,該方法是常用的組合,穩(wěn)定可靠。但計算量大,所需存儲空間大,非常耗時。本文根據(jù)所設(shè)計路標(biāo)的結(jié)構(gòu)特點,采用一種簡單快速的方法對輪廓點進(jìn)行采樣。為進(jìn)一步縮短時間,輪廓采樣方法根據(jù)航向角的范圍進(jìn)行調(diào)整。當(dāng)航向角在0°,90°,180°,270°附近時,將此種情況定義為小角度情況,否則為大角度情況。大角度情況時,只需橫向掃描即可采集完全部邊緣點,即先從左往右掃描,當(dāng)掃描到目標(biāo)黑色像素點時,保存該點的位置,并跳幾行轉(zhuǎn)向另一行從左往右掃描。從左往右掃描完后再進(jìn)行從右往左掃描,方法同上。這樣即可快速得到路標(biāo)所有的邊緣點,如圖6所示。當(dāng)是小角度情況時,采用上述方法只能采集到路標(biāo)豎直方向的兩條邊,導(dǎo)致邊緣信息缺失,所以必須縱向再采集一次路標(biāo)接近水平方向的兩條邊,這樣輪廓點方可采樣全面,如圖7所示。
輪廓采樣時,掃描的起點和終點決定了訪問像素點的個數(shù)。減少訪問像素點的個數(shù)就是節(jié)省識別的時間。由于路標(biāo)設(shè)計特殊,可以根據(jù)航向角和兩尋像圖案的距離靈活地選取掃描的起始點和終止點,減少不必要的像素點訪問。
2.6 尋找輪廓頂點
提取完的邊緣輪廓點用于擬合正方形輪廓的四條邊,進(jìn)而得到正方形輪廓的四個頂點,再通過幾何校正完成路標(biāo)的識別。首先從所有輪廓點中分離出各條邊的輪廓點。輪廓點分組方式根據(jù)航向角和邊緣點位置關(guān)系確定。對所有輪廓點分組完畢后用最小二乘法對其分別進(jìn)行擬合得到四條直線,四條直線的交點就是正方形輪廓邊緣的四個頂點。
2.7 幾何校正
仿射變換是點對點之間的有序映射,輪廓的四個頂點可以用來對圖像進(jìn)行幾何校正。先對四個頂點進(jìn)行簡單的排序。根據(jù)所設(shè)計路標(biāo)的特點,離角尋像圖案中心最近的點定位為第一個點,然后按順時針方向確定第二個和第三個點。常用的有6參數(shù)的仿射變換。設(shè)已知的三個頂點的坐標(biāo)為校正后的三個坐標(biāo)為依據(jù)6參數(shù)的仿射變換,其變換公式為:
(3)
式中有6個未知數(shù),幾何畸變的校正歸根結(jié)底為坐標(biāo)轉(zhuǎn)換系數(shù)的求解。求出這6個參數(shù)后,每讀取一次像素,即可計算出變換結(jié)果的灰度值。例如對圖6進(jìn)行仿射變換校正后如圖8所示。
圖8 仿射變換示意圖
2.8 網(wǎng)格取樣
當(dāng)校正完之后,路標(biāo)已成規(guī)則圖形。按路標(biāo)的尺寸將圖像劃分成若干個小格,判斷每個小格內(nèi)代表的位是1還是0,即可完成路標(biāo)嵌入信息的讀取。
3 實驗驗證
為了驗證所設(shè)計路標(biāo)的實用性和快速識別方法的有效性及實時性,攝像頭采集若干含有路標(biāo)的圖像并進(jìn)行識別。本次實驗所使用的攝像頭為市面上普通的USB攝像頭,30萬像素,分辨率為640×480。識別算法使用C++語言實現(xiàn),在Visual C++2010環(huán)境下編譯,運行環(huán)境為Win7系統(tǒng)。攝像頭安裝高度約40 cm,鏡頭方向垂直向下。實驗中使用的路標(biāo)正方形輪廓邊長為7 cm。
圖9為實驗采集的含有路標(biāo)的某一張彩色原始圖像進(jìn)行灰度化處理后的結(jié)果。圖10為對灰度圖像進(jìn)行二值化后的結(jié)果。圖11為尋像圖案定位結(jié)果,尋像圖案中心用白色十字標(biāo)出。圖12為邊緣輪廓點采樣結(jié)果,所采集的邊緣點用*號標(biāo)出。圖13為對邊緣輪廓點分組后計算出的四條擬合直線的斜率和截距以及四條直線的4個交點。圖14為進(jìn)行幾何校正后網(wǎng)格采樣的結(jié)果。從最后網(wǎng)格取樣的結(jié)果可以看出該識別方法是有效的。
圖9 灰度化結(jié)果圖 圖10 二值化結(jié)果圖
圖11 尋像圖案定位結(jié)果圖 圖12 輪廓點采樣結(jié)果圖
圖13 輪廓點擬合結(jié)果圖 圖14 幾何變換后網(wǎng)格取樣結(jié)果
為驗證本文方法的實時性,利用Windows的硬件定時計數(shù)函數(shù)計算每幀識別成功的時間,并記錄下來。實驗過程中,安裝好攝像頭的載體一直在路標(biāo)附近作平移,旋轉(zhuǎn)等動作,以模擬實際導(dǎo)航時路標(biāo)進(jìn)入攝像頭視場時的場景。計算機實時地通過攝像頭采集圖像,不斷地定位解碼輸出。分別進(jìn)行了四組實驗。實驗結(jié)果如表1所示。平均識別時間為9.8 ms。傳統(tǒng)的自然路標(biāo)識別需要數(shù)百毫秒,常規(guī)的人工路標(biāo)識別也需要數(shù)十毫秒,本文識別方法能更好地滿足視覺導(dǎo)航的實時性要求。實驗結(jié)果顯示,航向角的幀數(shù)大于可識別的幀數(shù),說明在采集圖像畸變嚴(yán)重或路標(biāo)只是部分進(jìn)入視場等導(dǎo)致無法識別的情況下,系統(tǒng)依然可以輸出航向角信息,提高了系統(tǒng)的可靠性。
4 結(jié) 語
為了解決視覺導(dǎo)航數(shù)據(jù)量大、計算周期長、信息滯后等問題,設(shè)計了一種可用于視覺導(dǎo)航的路標(biāo),通過識別該路標(biāo)得到載體的位置和姿態(tài)信息,并提出快速識別該路標(biāo)的方法。通過動態(tài)識別實驗驗證了該方案的可行性和有效性。實驗結(jié)果表明,采用該方法識別設(shè)計的路標(biāo)實時性和可靠性好,滿足視覺導(dǎo)航要求?;谠撀窐?biāo)的視覺導(dǎo)航可以與其他導(dǎo)航方法如慣性導(dǎo)航進(jìn)行組合導(dǎo)航以提高組合導(dǎo)航的精度。
參考文獻(xiàn)
[1] 徐寧.單目攝像頭實時視覺定位[D].上海:上海交通大學(xué),2008.
[2] 姜海濤,田國會,薛英花,等.新型人工地標(biāo)的設(shè)計、識別、定位及應(yīng)用[J].山東大學(xué)學(xué)報(工學(xué)版),2011,41(2):107?113.
[3] MUTKA A, MIKLIC D, DRAGANJAC I, et al. A low cost vision based localization system using fiducial markers [J]. International federation of automatic control, 2008, 41(2): 9528?9533.
[4] PARK C, KIM S, PARK M, et al. Vision?based global loca?lization for mobile robots with hybrid maps of objects and spatial layouts [J]. Information sciences, 2009, 179(24): 4174?4198.
[5] 陳明芽,項志宇,劉濟林.單目視覺自然路標(biāo)輔助的移動機器人定位方法[J].浙江大學(xué)學(xué)報(工學(xué)版),2014,48(2):285?291.
[6] HUH J, LEE K, CHUNG S W, et a1. Mobile robot exploration in indoor environment using topological structure with invisible barcode [C]// Proceedings of 2006 IEEE International Conference on Intelligent Robots and Systems. Beijing, China: IEEE, 2006: 5256?5272.
[7] 賈云偉,劉鐵根,劉琨,等.視覺導(dǎo)航用多功能路標(biāo)設(shè)計與應(yīng)用[J].光電子·激光,2014,25(5):962?967.
[8] 雷斌,劉波峰,劉道正,等.基于路標(biāo)的AGV定位優(yōu)化研究[J].傳感器與微系統(tǒng),2013,32(6):60?69.
[9] YOON K J, KWEON I S. Landmark design and real?time landmark tracking for mobile robot localization [J]. Proceedings of SPIE, 2002, 4573(20): 219?226.
[10] 郭陽.基于新型人工路標(biāo)的自主移動機器人導(dǎo)航相關(guān)問題研究[D].沈陽:東北大學(xué),2006.
[11] 鄭睿,原魁,李園.一種用于移動機器人室內(nèi)定位與導(dǎo)航的二維碼[J].高技術(shù)通訊,2008,18(4):369?374.
[12] 陳威兵,楊高波,馮璐.一種QR碼識別的低復(fù)雜度圖像預(yù)處理方法[J].湖南大學(xué)學(xué)報(自然科學(xué)版),2012,39(10):93?97.