文生平,馮澤鋒,洪培烽,張施華
(1.華南理工大學 廣東省高分子先進制造技術及裝備重點實驗室,廣州 510640; 2.華南理工大學 聚合物成型加工工程教育部重點實驗室,廣州 510640)
視覺導引AGV在運動過程中,需要在特定的工位完成不同運動狀態的轉換,如加速、減速、轉彎、停車等。路徑標識符以其制作簡便、布置靈活、易于識別等優勢,逐漸成為視覺導引機器人普遍應用的導引方式[1]。
字符識別是一門檢測并分類字符的技術[2],是目前主要存在的兩種標識符識別技術之一,另一類是控制標識符識別。控制標識符通常是各類幾何形狀,如矩形、圓形、梯形等,這類標識符的識別是檢測出不同標識符水平截線段寬度的變化規律;字符標識符通常包括0~9和A~Z等字符,在不同工位上對其賦予不同含義以實現機器人的自動導引,在移動機器人視覺導引字符識別和智能交通的車牌識別中都得到了更廣泛的應用[3]。
標識符的識別過程步驟主要包括:圖像采集及預處理、感興趣區域的選取、特征提取、標識符分類。
用特征提取算法對字符的變化規律進行檢測,檢測結果用特征向量表示。特征提取算法主要包括傳統的模板匹配法、傅立葉描述子法、自回歸模型法和不變矩法等,其中不變矩法應用最廣。1962 年,M.K.Hu教授提出了幾何不變Hu矩,理論推導證明了Hu矩具有比例不變性、旋轉不變性和平移不變性[4]。
完成字符的特征提取后,進而對特征進行分類。基于機器學習的SVM[5-6]和KNN[7-8]分類算法是應用最廣泛的分類器,其實用性已經得到了廣泛的證明。
Hu矩算法具有提取特征快速但準確率低的特點,但其三個幾何不變性具有很高的實際過程應用價值。為此,本文分析Hu矩算法原理,對其進行改進,結合SVM和KNN算法的快速分類,研究一種基于Hu矩的機器學習算法分類器。
移動機器人需要通過識別并跟蹤導引線,以及識別標識符以獲得控制指令來實現自主導航,本文的實驗對象是廣州市井源機電設備有限公司設計和制備的AGV,其實物圖如圖1 所示。

圖1 移動機器人
移動機器人系統包括了機器人本體、驅動模塊、車輪系統、控制模塊、光源模塊、視覺信息采集模塊、圖像處理單元、無線客戶端、電源裝置和安全防護裝置等。移動機器人在導航行進的過程中在光源的輔助下由相機拍攝采集圖像,圖像經過處理后將提取到的圖像信息轉換為輔助決策信息,再輸入到控制模塊中以獲得控制決策,將控制指令輸出給驅動模塊,改變驅動電機的轉速,進而改變機器人驅動輪的狀態,以控制機器人的移動速度、方向以及運行狀態。
移動機器人通過識別并跟蹤導航線可以實現指定軌跡的運動,但是光有導航線不足以實現指令下達與復雜任務分派。所以還需要在導航線上配置標識符,以標識符作為指令的載體,在機器人識別到特定的標識符時,能夠按照標識符所代表的指令進行動作,實現更加復雜的功能。圖像處理算法流程如圖2所示。

圖2 圖像處理算法流程圖
移動機器人實時采集到的圖像為RGB三通道彩色圖像,每個像素點的取值范圍為256×256×256,數據量大,直接對其進行特征提取的處理速度慢,不利于實時檢測的需求。由于應用場景的圖像顏色需求低,因此對圖像進行灰度化處理,在保留圖像信息的同時,將三通道圖像降為單通道。本文使用加權法灰度化,其根據人眼對紅綠藍的感光程度對圖像降維,經過加權法灰度化后得到的圖像亮度比較均勻,計算公式為:
Y=0.3*R+0.6*G+0.1*B
(1)
為消除采集圖像上的噪聲,需對其進行濾波處理。常用的濾波處理包括中值濾波、均值濾波、方框濾波和高斯濾波。中值濾波以像素點臨域3×3區域的像素值的中值作為該點的像素值;均值濾波以像素點臨域3×3區域的所有像素值的均值作為該點的像素值;方框濾波在均值濾波的基礎上對每個像素點進行加權平均;高斯濾波相當于將圖像與正態分布函數做卷積,其高斯核函數如下:
(2)
考慮到本研究場景中AGV的導航需要對導航帶的邊緣線和細節特征進行特征提取,因此對導航帶圖像的邊緣信息和細節的完整性和清晰度有較高的要求。因此采用高斯濾波作為本研究的圖像濾波方法。
為消除采集圖像中存在的大量無用背景信息,需要對其進行閥值分割處理。閥值分割的思想是將圖像上像素值大于給定閥值的像素點歸類。以f(x,y)表示灰度圖,最佳分割閥值為T,則分割結果如下:

(3)
AGV系統拍攝圖像過程在光源的輔助下,使得目標部分和背景部分在穩定的光照下能夠比較好地區分開,可以使用基于全局的閥值分割方法。本文采用OTSU閥值分割法[9],其基本思想是最大化類間方差,且能夠自動確定閥值,可以很好的保留標識符部分的信息。
移動機器人運行過程采集的圖片及其經過加權灰度化、高斯濾波、OTSU閥值分割的效果如圖3所示。

圖3 圖像預處理
由于在整張圖像中標識符占的比例較小,機器學習算法對小目標的處理精度存在不足。因此對標識符進行識別前,需要將標識符的位置大致定位且對其分割,再通過機器學習算法來實現分類識別。根據上述標識符圖像的特點,利用Hough圓變換算法[10],以快速定位圓心位置,然后通過設置合適的偏移量獲取包含標識符在內的矩形ROI(感興趣區域),最后將其從整個圖像中分割出來,其算法原理如圖4所示。

圖4 ROI區域選取
灰度圖像的分布可以用連續函數f(x,y)來表示,圖像的(p+q)階二維原點矩則表示為:
(4)
當圖像的比例發生變化,矩不變;當圖像進行旋轉或者平移時,隨之改變。圖像矩心不受像素變化的影響,利用矩心構造出具有比例和平移不變性的中心矩。
(p+q)階中心矩表示為:
(5)

對中心矩歸一化處理,得到具有旋轉不變性的矩:
(6)
M.K.Hu利用二階和三階的歸一化中心矩構造了七個不變矩,證明在連續圖像條件下得到的特征矩可以保持縮放、旋轉和平移的不變性,七個不變矩公式如式(7)~(13)所示:
M1=η20+η02
(7)
M2= (η20-η02)2+ 4η112
(8)
M3=(η20-3η12)2+3(η21+η03)2
(9)
M4=(η30+η12)2+(η21+η03)2
(10)
M5=(η30-3η12)(η30+η12)[(η30+η12)2-
3(η21+η03)2]+(3η21-η03)(η21+η03)[3(η30+
η12)2-(η21+η03)2]
(11)
M6=(η20-η02)[(η30+η12)2-(η21+η03)2]+
4η11(η30+η12)(η21+η03)
(12)
M7=(3η21-η03)(η30+η12)[(η30+η12)2-
3(η21+η03)2]+(3η12-η30)(η21+η03)[3(η30+η12)2-
(η21+η03)2]
(13)
Hu矩提取標識符特征速度非常快,但是準確率不高。對Hu矩原理公式(7)~(13)進行分析,可以發現,M1~M4階數低,M5~M7階數高。由數學原理可知,階數越高,數值的變化范圍越大。為了觀察M1~M7的變化情況,用如圖5所示的9張背景、字體大小、形狀和方向都不一樣的數字1來測試。

圖5 數字1的測試集
按以下步驟進行Hu矩測試實驗:
1)讀取圖像;
2)對圖像進行灰度化處理、高斯濾波去噪和OTSU分割處理;
3)使用Hough快速圓變換檢測標識符的定位圓;
4)分割出舉行ROI區域;
5)用Hu矩算法檢測標識符的特征屬性,得到特征向量
利用處理得到的特征向量數據生成對數圖形,如圖6所示是特征值曲線:

圖6 特征參數圖形
分析圖6,發現9個樣本的M1、M2基本相等,M3、M4雖然有點分散,也集中在一定范圍。但是從第五個參數開始,跳動性大,有的數據已經不落在圖形范圍里,說明從第五個參數開始,參數不穩定。10組測試集的情況相似,可以得出的結論是,Hu矩前四個參數的可靠性好,后三個參數不穩定。研究7個參數,發現M1、M2的次冪較低,M3、M4的次冪次之,M5、M6、M7的次冪較高,根據數學原理,次冪越高,數據變化范圍越大,所以猜測特征數值的跳動性與參數的次冪高低有直接的關系。基于此,對Hu矩進行改進,參考M1、M2公式的特點,改造M3、M4,旨在得到可靠性更好的特征參數。
反復試驗,最后確定的特征參數如公式(14)~(17)所示。
M1*=η20+η02
(14)
M2* = (η20-η02)2+ 4η112
(15)
M3* = 3(η21+η03)2+ 4η112
(16)
M4*=(η30+η12)2+η20+η02
(17)
對上述測試集進行測試,得到的特征曲線如圖7所示,四個特征值都更加穩定,特征數據的方差變小。

圖7 改進的特征參數圖形
為了驗證改進Hu矩算法的提取速度,對UCI機器學習數據庫的2 520張圖像進行測試,2 520張圖像由0~9和A~Z的36個字符各70張組成。先后用原Hu矩算法和改進的Hu矩算法分別測試,計算時間如表1所示。

表1 特征提取算法處理結果
表1的實驗結果表明,改進后的Hu矩算法明顯比原Hu矩算法運算時間短,一張圖像的處理時間幾乎節省了一半,在大規模的圖像樣本中,改進后的算法提取速度更快。
為了驗證改進Hu矩算法的提取精度,用C-SVC和KNN分類算法對其提取后的特征進行分類。
考慮Hu矩的特征參數遠少于樣本數量,按照經驗法,C-SVC分類算法的核函數選擇高斯型。本文采用閻曉娜等人修正后的高斯核函數,如式(17)所示,此修正后的高斯核函數被證明可以很好地保留數據魯棒性強的優點和彌補處理時間長的不足[11]。
(18)
式中,G是幅度調節參數,σ是帶寬變量,γ是位移參數,λ是微調變量。
對于2 520個樣本集,其中1 800個樣本作為訓練集,用于生成C-SVC分類器;360個樣本作為驗證集,對已經生成的C-SVC分類器反復調參,用于參數的調整,最終確定的高斯核函數參數是G=2.1,σ=0.3,γ=0.2,λ=0.75;剩下360個樣本作為測試集,用于測試分類器性能,其測試結果如表2所示。

表2 C-SVC分類結果對比
KNN分類算法的關鍵是K值的選擇,一般取小于18,沒有固定理論指導最優K值的選擇。多次取值,得到的測試結果如表3和表4所示。

表3 原Hu矩的KNN分類結果對比

表4 改進Hu矩的KNN分類結果對比
表2~4的實驗結果表明,無論是用C-SVC分類還是KNN分類,改進后的Hu矩算法的檢測準確率都明顯比原Hu矩算法的高,說明改進后的Hu矩算法提取的特征值更有利于分類,其提取精度更高。
布置移動機器人的黑色導引帶及標識符如圖8所示,每個標識符之間相隔越2 m。移動機器人每次從數字0與字母Z這段導航帶的中點開始運行,環繞引導帶行進回到起點結束。

圖8 導航路線布置示意圖
特征提取算法先后采用Hu矩算法及改進的Hu矩算法,分類器先后采用C-SVC分類器和KNN分類器。分別讓機器人以20 m/min、30 m/min、40 m/min、50 m/min的速度勻速行進。記錄每次機器人進行過程中字符識別的情況,結果如表5~8所示。

表5 Hu矩的C-SVC標識符識別結果

表6 改進Hu矩的C-SVC標識符識別結果

表7 Hu矩的KNN標識符識別結果

表8 改進Hu矩的KNN標識符識別結果
由以上4個表的數據可知,移動機器人在不同的行進速度下,改進Hu矩算法對C-SVC分類器和KNN分類器的分類準確率比Hu矩算法都有所提升,在動態檢測中,改進Hu矩算法具有更好的魯棒性。
以上離線測試和在線測試結果表明,改進Hu算法處理的特征值更利于分類,算法是可行的;C-SVC分類器相較于KNN分類器更適合于本實驗的機器人系統,其操作簡單,分類準確率高,魯棒性好。
為驗證改進Hu矩算法的性能,首先通過對UCI圖像數據庫進行檢測,實驗結果顯示,改進后的算法比原Hu矩算法具有更快的提取速度。其次利用機器學習分類算法C-SVC和KNN,對特征值進行分類,即分類標識符。最后對移動機器人進行實時在線實驗測試。實驗結果顯示,改進后的Hu矩算法大大提高了C-SVC和KNN的分類準確率,說明改進后的算法提取的特征值精確度更高。以上研究結果顯示,改進后的Hu矩算法可以更快更精確地提取標識符特征參數,有利于提高標識符識別的實時性和精度,對于智能移動機器人視覺導航字符識別具有較好的參考價值。