王 磊
(天津職業技術師范大學機器人及智能裝備研究所,天津 300222)
AGV是具有自動導引裝置,沿規劃路徑完成任務的運輸車[1]。當前AGV具有通信交互、自主完成作業、合理規劃路徑以及任務調度等功能,在倉儲業、制造業、醫藥、煙草、食品以及高危環境等領域有比較廣泛的應用[2]。AGV核心技術的導航定位技術現已發展出多種引導方式,如電磁導引、磁條導引、色帶導引、慣性導引、激光導引以及視覺導引等[3]。其中視覺導引擁有低成本、信息量大、自由度高等優點[4]。依靠人工信標定位是視覺導引的一種主要方法,并被廣泛用于室內AGV導引與定位,正確識別人工信標信息可以有效提高AGV定位精度。本文提出了一種對類二維碼人工信標進行識別的方法,該方法可以對類二維碼進行準確識別,并減少了識別所需運算量。
虛擬參考平面與現實平面在模型中是平面投影關系,求出平面投影單應性矩陣就可以得到虛擬參考平面與現實平面間的映射關系。
二維平面投影變換[5]是關于齊次三維矢量的線性變換[5]。在齊次坐標系下,二維平面上的投影變換可用非奇異3×3矩陣表示,或記為x′=Hx,如式(1)所示。

式中,x=x′w′;y=y′w′。由于人工信標是一個平面,所以a33=1,且由于二者是映射關系,故設w=1,且w′=1,可以通過四組對應點得到由8個關于H的元素的線性方程構成的方程組,設四組對應點分別為(u1,v1)→(x1′,y1′)、(u2,v2) →(x2′,y2′)、(u3,v3) →(x3′,y3′)、(u4,v4)→(x4′,y4′),將四組對應點帶入式(1),可得出相應關系式,對該方程組求解可以獲得矩陣H。
圖像分辨率采用640×480,確保獲取圖像具有足夠清晰度,并防止圖像數據過大導致處理器無法實時處理獲取信息。本實驗原始圖像如圖1所示。

圖1 原始圖像
圖像預處理可以更好的去除噪聲,提高人工信標定位精度及人工信標識別準確度。本文圖像預處理過程如圖2所示:

圖2 圖像預處理
2.1.1 彩色圖像灰度化
將彩色圖像灰度化可以減少圖像處理的計算量。
2.1.2 灰度圖像形態學處理
首先對灰度圖像進行腐蝕操作,腐蝕操作可以有效去除灰度圖像中孤立噪聲。其次,進行同等程度的膨脹操作,確保人工信標圖像不會因為腐蝕操作而改變。
預處理后效果如圖3所示。

圖3 預處理后圖像
人工信標定位也就是獲取檢測人工信標的興趣區域。相對準確的興趣區域可以有效減少圖像處理計算量,并提升人工信標識別準確度。本文人工信標定位過程如圖4所示。

圖4 人工信標定位步驟
2.2.1 Sobel邊緣檢測、Canny邊緣檢測
首先對預處理后圖像,基于Sobel邊緣檢測法強化圖像邊緣,并對圖像進行二次濾波。其次進行Canny邊緣檢測,獲取邊緣圖像。
2.2.2 灰度圖像閉操作
對邊緣圖像進行圖像形態學的閉操作,將圖像中近距離,點和線進行連接。
2.2.3 灰度圖像二值化
將圖像進行二值化處理,以減少計算量。
2.2.4 凸殼及粒子濾波
首先對圖像進行凸殼處理,增強人工信標邊緣圖像,有效性防止在對圖像進行粒子濾波時,將包含人工信標圖像信息圖像濾除。其次,對二值化圖像進行粒子濾波,去掉不包含人工信標信息的粒子,保證圖像中人工信標粒子是唯一粒子。

圖5 人工信標的定位
2.2.5 獲取邊界矩形數據
通過對人工信標粒子的分析,獲取人工信標粒子邊界矩形信息,其中包括邊界矩形左邊、頂邊、右邊以及底邊數據。
2.2.6 獲取Harris角點
對邊界矩形信息進行處理,增大邊界矩形后將增大邊界矩形作為ROI區域。讀取凸殼處理后的圖像,并將該圖像轉化為8位灰度圖像,對該圖像每個像素的灰度值乘以256后,將圖像導入ROI內進行Harris角點檢測,最終獲取角點坐標。
2.2.7 過濾多余角點
為避免檢測出人工信標頂點以外的其他角點,影響最終結果,需要設定條件過濾掉非頂點其他角點,過濾后得到人工信標四個頂點在圖像中的像素坐標。最終角點像素坐標如圖6所示:

圖6 角點的像素坐標
2.3.1 虛擬參考平面人工信標讀取點設定
由于本文所使用的人工信標是由9行9列黑色或白色正方形區域構成,且第1行、第9行與第1列、第9列為全部由黑色的正方形構成的外框,故虛擬參考平面人工信標讀取點如下:在圖片中間位置設置合適大小正方形區域作為人工信標模板區域,正方形四個頂點像素坐標作為人工信標定位中最后獲得的四個角點的投影點,將正方形平均分成9行9列共81個正方形區域,計算該81個區域的中心的像素坐標(只需設定正方形的四個頂點坐標以及81個區域中心的像素坐標并不需要將這些點畫出)。
2.3.2 通過角點坐標計算投影矩陣
將預設正方形區域四個定點像素坐標設定為(u1,v1)、(u2,v2)、(u3,v3)、(u4,v4),將圖像處理獲得的四個角點的像素坐標設定為(x1,x1)、(x2,x2)、(x3,x3)、(x4,x4),由 w=1、w′=1、x=x′w′、y=y′w′可 以 求 得投影矩陣H。通過式(1)可以求得81個區域中心的像素坐標在實際圖像中的投影坐標。本實驗矩形方框內部區域為通過邊界矩形數據分別向外擴大五個像素距離獲得的ROI區域,如圖7所示。

圖7 實際圖像的讀取點
2.3.3 讀取81個投影坐標在實際圖像二值化后的數值
根據像素坐標位置整理讀取值,效果如圖8所示:
2.3.4 對讀取值進行處理和判斷
由于已知人工信標的實際圖像信息,將各個實際的圖像信息與標準模板對應,從而確定該人工信標在標準模板上81個像素點的正確數據。將該數據存儲為常量,并與讀取值進行比較,得到讀取值與正確值相匹配點數,設定合理閾值以保證當存在一定讀取誤差時,依然可以對類二維碼進行正確識別。將判斷出來的類二維碼以布爾矩陣形式進行表達,最終結果如圖9所示。

圖8 讀取點與人工信標圖形對照

圖9 布爾矩陣顯示 實際人工信標
針對類二維碼人工信標讀取問題,通過對圖像預處理、人工信標具體位置確定以及人工信標信息獲取等方法,判斷圖像中是否有人工信標或人工信標信息。該方法通過圖像處理以及信息提取兩個方面,達到降低計算量的目的。在圖像處理過程中,一方面對圖像進行了彩色圖像灰度化處理,將三維圖像矩陣降低為二維圖像矩陣;另一方面,將對灰度圖像處理改為對二值化圖像處理,將8位數據處理降為1位數據處理。另外,在信息提取方面,只對人工信標81個正方形區域的中心點投影進行處理,有效減少了信息處理量。為保證對類二維碼人工信標準確識別,本文還引入了投影矩陣,通過投影矩陣將虛擬參考平面讀取點投影到實際圖像中并進行數據讀取,確保了識別準確性。