文生平,馮澤鋒,洪培烽,張施華
(1.華南理工大學(xué) 廣東省高分子先進(jìn)制造技術(shù)及裝備重點(diǎn)實(shí)驗(yàn)室,廣州 510640; 2.華南理工大學(xué) 聚合物成型加工工程教育部重點(diǎn)實(shí)驗(yàn)室,廣州 510640)
視覺(jué)導(dǎo)引AGV在運(yùn)動(dòng)過(guò)程中,需要在特定的工位完成不同運(yùn)動(dòng)狀態(tài)的轉(zhuǎn)換,如加速、減速、轉(zhuǎn)彎、停車(chē)等。路徑標(biāo)識(shí)符以其制作簡(jiǎn)便、布置靈活、易于識(shí)別等優(yōu)勢(shì),逐漸成為視覺(jué)導(dǎo)引機(jī)器人普遍應(yīng)用的導(dǎo)引方式[1]。
字符識(shí)別是一門(mén)檢測(cè)并分類(lèi)字符的技術(shù)[2],是目前主要存在的兩種標(biāo)識(shí)符識(shí)別技術(shù)之一,另一類(lèi)是控制標(biāo)識(shí)符識(shí)別。控制標(biāo)識(shí)符通常是各類(lèi)幾何形狀,如矩形、圓形、梯形等,這類(lèi)標(biāo)識(shí)符的識(shí)別是檢測(cè)出不同標(biāo)識(shí)符水平截線段寬度的變化規(guī)律;字符標(biāo)識(shí)符通常包括0~9和A~Z等字符,在不同工位上對(duì)其賦予不同含義以實(shí)現(xiàn)機(jī)器人的自動(dòng)導(dǎo)引,在移動(dòng)機(jī)器人視覺(jué)導(dǎo)引字符識(shí)別和智能交通的車(chē)牌識(shí)別中都得到了更廣泛的應(yīng)用[3]。
標(biāo)識(shí)符的識(shí)別過(guò)程步驟主要包括:圖像采集及預(yù)處理、感興趣區(qū)域的選取、特征提取、標(biāo)識(shí)符分類(lèi)。
用特征提取算法對(duì)字符的變化規(guī)律進(jìn)行檢測(cè),檢測(cè)結(jié)果用特征向量表示。特征提取算法主要包括傳統(tǒng)的模板匹配法、傅立葉描述子法、自回歸模型法和不變矩法等,其中不變矩法應(yīng)用最廣。1962 年,M.K.Hu教授提出了幾何不變Hu矩,理論推導(dǎo)證明了Hu矩具有比例不變性、旋轉(zhuǎn)不變性和平移不變性[4]。
完成字符的特征提取后,進(jìn)而對(duì)特征進(jìn)行分類(lèi)?;跈C(jī)器學(xué)習(xí)的SVM[5-6]和KNN[7-8]分類(lèi)算法是應(yīng)用最廣泛的分類(lèi)器,其實(shí)用性已經(jīng)得到了廣泛的證明。
Hu矩算法具有提取特征快速但準(zhǔn)確率低的特點(diǎn),但其三個(gè)幾何不變性具有很高的實(shí)際過(guò)程應(yīng)用價(jià)值。為此,本文分析Hu矩算法原理,對(duì)其進(jìn)行改進(jìn),結(jié)合SVM和KNN算法的快速分類(lèi),研究一種基于Hu矩的機(jī)器學(xué)習(xí)算法分類(lèi)器。
移動(dòng)機(jī)器人需要通過(guò)識(shí)別并跟蹤導(dǎo)引線,以及識(shí)別標(biāo)識(shí)符以獲得控制指令來(lái)實(shí)現(xiàn)自主導(dǎo)航,本文的實(shí)驗(yàn)對(duì)象是廣州市井源機(jī)電設(shè)備有限公司設(shè)計(jì)和制備的AGV,其實(shí)物圖如圖1 所示。
圖1 移動(dòng)機(jī)器人
移動(dòng)機(jī)器人系統(tǒng)包括了機(jī)器人本體、驅(qū)動(dòng)模塊、車(chē)輪系統(tǒng)、控制模塊、光源模塊、視覺(jué)信息采集模塊、圖像處理單元、無(wú)線客戶(hù)端、電源裝置和安全防護(hù)裝置等。移動(dòng)機(jī)器人在導(dǎo)航行進(jìn)的過(guò)程中在光源的輔助下由相機(jī)拍攝采集圖像,圖像經(jīng)過(guò)處理后將提取到的圖像信息轉(zhuǎn)換為輔助決策信息,再輸入到控制模塊中以獲得控制決策,將控制指令輸出給驅(qū)動(dòng)模塊,改變驅(qū)動(dòng)電機(jī)的轉(zhuǎn)速,進(jìn)而改變機(jī)器人驅(qū)動(dòng)輪的狀態(tài),以控制機(jī)器人的移動(dòng)速度、方向以及運(yùn)行狀態(tài)。
移動(dòng)機(jī)器人通過(guò)識(shí)別并跟蹤導(dǎo)航線可以實(shí)現(xiàn)指定軌跡的運(yùn)動(dòng),但是光有導(dǎo)航線不足以實(shí)現(xiàn)指令下達(dá)與復(fù)雜任務(wù)分派。所以還需要在導(dǎo)航線上配置標(biāo)識(shí)符,以標(biāo)識(shí)符作為指令的載體,在機(jī)器人識(shí)別到特定的標(biāo)識(shí)符時(shí),能夠按照標(biāo)識(shí)符所代表的指令進(jìn)行動(dòng)作,實(shí)現(xiàn)更加復(fù)雜的功能。圖像處理算法流程如圖2所示。
圖2 圖像處理算法流程圖
移動(dòng)機(jī)器人實(shí)時(shí)采集到的圖像為RGB三通道彩色圖像,每個(gè)像素點(diǎn)的取值范圍為256×256×256,數(shù)據(jù)量大,直接對(duì)其進(jìn)行特征提取的處理速度慢,不利于實(shí)時(shí)檢測(cè)的需求。由于應(yīng)用場(chǎng)景的圖像顏色需求低,因此對(duì)圖像進(jìn)行灰度化處理,在保留圖像信息的同時(shí),將三通道圖像降為單通道。本文使用加權(quán)法灰度化,其根據(jù)人眼對(duì)紅綠藍(lán)的感光程度對(duì)圖像降維,經(jīng)過(guò)加權(quán)法灰度化后得到的圖像亮度比較均勻,計(jì)算公式為:
Y=0.3*R+0.6*G+0.1*B
(1)
為消除采集圖像上的噪聲,需對(duì)其進(jìn)行濾波處理。常用的濾波處理包括中值濾波、均值濾波、方框?yàn)V波和高斯濾波。中值濾波以像素點(diǎn)臨域3×3區(qū)域的像素值的中值作為該點(diǎn)的像素值;均值濾波以像素點(diǎn)臨域3×3區(qū)域的所有像素值的均值作為該點(diǎn)的像素值;方框?yàn)V波在均值濾波的基礎(chǔ)上對(duì)每個(gè)像素點(diǎn)進(jìn)行加權(quán)平均;高斯濾波相當(dāng)于將圖像與正態(tài)分布函數(shù)做卷積,其高斯核函數(shù)如下:
(2)
考慮到本研究場(chǎng)景中AGV的導(dǎo)航需要對(duì)導(dǎo)航帶的邊緣線和細(xì)節(jié)特征進(jìn)行特征提取,因此對(duì)導(dǎo)航帶圖像的邊緣信息和細(xì)節(jié)的完整性和清晰度有較高的要求。因此采用高斯濾波作為本研究的圖像濾波方法。
為消除采集圖像中存在的大量無(wú)用背景信息,需要對(duì)其進(jìn)行閥值分割處理。閥值分割的思想是將圖像上像素值大于給定閥值的像素點(diǎn)歸類(lèi)。以f(x,y)表示灰度圖,最佳分割閥值為T(mén),則分割結(jié)果如下:
(3)
AGV系統(tǒng)拍攝圖像過(guò)程在光源的輔助下,使得目標(biāo)部分和背景部分在穩(wěn)定的光照下能夠比較好地區(qū)分開(kāi),可以使用基于全局的閥值分割方法。本文采用OTSU閥值分割法[9],其基本思想是最大化類(lèi)間方差,且能夠自動(dòng)確定閥值,可以很好的保留標(biāo)識(shí)符部分的信息。
移動(dòng)機(jī)器人運(yùn)行過(guò)程采集的圖片及其經(jīng)過(guò)加權(quán)灰度化、高斯濾波、OTSU閥值分割的效果如圖3所示。
圖3 圖像預(yù)處理
由于在整張圖像中標(biāo)識(shí)符占的比例較小,機(jī)器學(xué)習(xí)算法對(duì)小目標(biāo)的處理精度存在不足。因此對(duì)標(biāo)識(shí)符進(jìn)行識(shí)別前,需要將標(biāo)識(shí)符的位置大致定位且對(duì)其分割,再通過(guò)機(jī)器學(xué)習(xí)算法來(lái)實(shí)現(xiàn)分類(lèi)識(shí)別。根據(jù)上述標(biāo)識(shí)符圖像的特點(diǎn),利用Hough圓變換算法[10],以快速定位圓心位置,然后通過(guò)設(shè)置合適的偏移量獲取包含標(biāo)識(shí)符在內(nèi)的矩形ROI(感興趣區(qū)域),最后將其從整個(gè)圖像中分割出來(lái),其算法原理如圖4所示。
圖4 ROI區(qū)域選取
灰度圖像的分布可以用連續(xù)函數(shù)f(x,y)來(lái)表示,圖像的(p+q)階二維原點(diǎn)矩則表示為:
(4)
當(dāng)圖像的比例發(fā)生變化,矩不變;當(dāng)圖像進(jìn)行旋轉(zhuǎn)或者平移時(shí),隨之改變。圖像矩心不受像素變化的影響,利用矩心構(gòu)造出具有比例和平移不變性的中心矩。
(p+q)階中心矩表示為:
(5)
對(duì)中心矩歸一化處理,得到具有旋轉(zhuǎn)不變性的矩:
(6)
M.K.Hu利用二階和三階的歸一化中心矩構(gòu)造了七個(gè)不變矩,證明在連續(xù)圖像條件下得到的特征矩可以保持縮放、旋轉(zhuǎn)和平移的不變性,七個(gè)不變矩公式如式(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矩提取標(biāo)識(shí)符特征速度非???,但是準(zhǔn)確率不高。對(duì)Hu矩原理公式(7)~(13)進(jìn)行分析,可以發(fā)現(xiàn),M1~M4階數(shù)低,M5~M7階數(shù)高。由數(shù)學(xué)原理可知,階數(shù)越高,數(shù)值的變化范圍越大。為了觀察M1~M7的變化情況,用如圖5所示的9張背景、字體大小、形狀和方向都不一樣的數(shù)字1來(lái)測(cè)試。
圖5 數(shù)字1的測(cè)試集
按以下步驟進(jìn)行Hu矩測(cè)試實(shí)驗(yàn):
1)讀取圖像;
2)對(duì)圖像進(jìn)行灰度化處理、高斯濾波去噪和OTSU分割處理;
3)使用Hough快速圓變換檢測(cè)標(biāo)識(shí)符的定位圓;
4)分割出舉行ROI區(qū)域;
5)用Hu矩算法檢測(cè)標(biāo)識(shí)符的特征屬性,得到特征向量
利用處理得到的特征向量數(shù)據(jù)生成對(duì)數(shù)圖形,如圖6所示是特征值曲線:
圖6 特征參數(shù)圖形
分析圖6,發(fā)現(xiàn)9個(gè)樣本的M1、M2基本相等,M3、M4雖然有點(diǎn)分散,也集中在一定范圍。但是從第五個(gè)參數(shù)開(kāi)始,跳動(dòng)性大,有的數(shù)據(jù)已經(jīng)不落在圖形范圍里,說(shuō)明從第五個(gè)參數(shù)開(kāi)始,參數(shù)不穩(wěn)定。10組測(cè)試集的情況相似,可以得出的結(jié)論是,Hu矩前四個(gè)參數(shù)的可靠性好,后三個(gè)參數(shù)不穩(wěn)定。研究7個(gè)參數(shù),發(fā)現(xiàn)M1、M2的次冪較低,M3、M4的次冪次之,M5、M6、M7的次冪較高,根據(jù)數(shù)學(xué)原理,次冪越高,數(shù)據(jù)變化范圍越大,所以猜測(cè)特征數(shù)值的跳動(dòng)性與參數(shù)的次冪高低有直接的關(guān)系?;诖?,對(duì)Hu矩進(jìn)行改進(jìn),參考M1、M2公式的特點(diǎn),改造M3、M4,旨在得到可靠性更好的特征參數(shù)。
反復(fù)試驗(yàn),最后確定的特征參數(shù)如公式(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)
對(duì)上述測(cè)試集進(jìn)行測(cè)試,得到的特征曲線如圖7所示,四個(gè)特征值都更加穩(wěn)定,特征數(shù)據(jù)的方差變小。
圖7 改進(jìn)的特征參數(shù)圖形
為了驗(yàn)證改進(jìn)Hu矩算法的提取速度,對(duì)UCI機(jī)器學(xué)習(xí)數(shù)據(jù)庫(kù)的2 520張圖像進(jìn)行測(cè)試,2 520張圖像由0~9和A~Z的36個(gè)字符各70張組成。先后用原Hu矩算法和改進(jìn)的Hu矩算法分別測(cè)試,計(jì)算時(shí)間如表1所示。
表1 特征提取算法處理結(jié)果
表1的實(shí)驗(yàn)結(jié)果表明,改進(jìn)后的Hu矩算法明顯比原Hu矩算法運(yùn)算時(shí)間短,一張圖像的處理時(shí)間幾乎節(jié)省了一半,在大規(guī)模的圖像樣本中,改進(jìn)后的算法提取速度更快。
為了驗(yàn)證改進(jìn)Hu矩算法的提取精度,用C-SVC和KNN分類(lèi)算法對(duì)其提取后的特征進(jìn)行分類(lèi)。
考慮Hu矩的特征參數(shù)遠(yuǎn)少于樣本數(shù)量,按照經(jīng)驗(yàn)法,C-SVC分類(lèi)算法的核函數(shù)選擇高斯型。本文采用閻曉娜等人修正后的高斯核函數(shù),如式(17)所示,此修正后的高斯核函數(shù)被證明可以很好地保留數(shù)據(jù)魯棒性強(qiáng)的優(yōu)點(diǎn)和彌補(bǔ)處理時(shí)間長(zhǎng)的不足[11]。
(18)
式中,G是幅度調(diào)節(jié)參數(shù),σ是帶寬變量,γ是位移參數(shù),λ是微調(diào)變量。
對(duì)于2 520個(gè)樣本集,其中1 800個(gè)樣本作為訓(xùn)練集,用于生成C-SVC分類(lèi)器;360個(gè)樣本作為驗(yàn)證集,對(duì)已經(jīng)生成的C-SVC分類(lèi)器反復(fù)調(diào)參,用于參數(shù)的調(diào)整,最終確定的高斯核函數(shù)參數(shù)是G=2.1,σ=0.3,γ=0.2,λ=0.75;剩下360個(gè)樣本作為測(cè)試集,用于測(cè)試分類(lèi)器性能,其測(cè)試結(jié)果如表2所示。
表2 C-SVC分類(lèi)結(jié)果對(duì)比
KNN分類(lèi)算法的關(guān)鍵是K值的選擇,一般取小于18,沒(méi)有固定理論指導(dǎo)最優(yōu)K值的選擇。多次取值,得到的測(cè)試結(jié)果如表3和表4所示。
表3 原Hu矩的KNN分類(lèi)結(jié)果對(duì)比
表4 改進(jìn)Hu矩的KNN分類(lèi)結(jié)果對(duì)比
表2~4的實(shí)驗(yàn)結(jié)果表明,無(wú)論是用C-SVC分類(lèi)還是KNN分類(lèi),改進(jìn)后的Hu矩算法的檢測(cè)準(zhǔn)確率都明顯比原Hu矩算法的高,說(shuō)明改進(jìn)后的Hu矩算法提取的特征值更有利于分類(lèi),其提取精度更高。
布置移動(dòng)機(jī)器人的黑色導(dǎo)引帶及標(biāo)識(shí)符如圖8所示,每個(gè)標(biāo)識(shí)符之間相隔越2 m。移動(dòng)機(jī)器人每次從數(shù)字0與字母Z這段導(dǎo)航帶的中點(diǎn)開(kāi)始運(yùn)行,環(huán)繞引導(dǎo)帶行進(jìn)回到起點(diǎn)結(jié)束。
圖8 導(dǎo)航路線布置示意圖
特征提取算法先后采用Hu矩算法及改進(jìn)的Hu矩算法,分類(lèi)器先后采用C-SVC分類(lèi)器和KNN分類(lèi)器。分別讓機(jī)器人以20 m/min、30 m/min、40 m/min、50 m/min的速度勻速行進(jìn)。記錄每次機(jī)器人進(jìn)行過(guò)程中字符識(shí)別的情況,結(jié)果如表5~8所示。
表5 Hu矩的C-SVC標(biāo)識(shí)符識(shí)別結(jié)果
表6 改進(jìn)Hu矩的C-SVC標(biāo)識(shí)符識(shí)別結(jié)果
表7 Hu矩的KNN標(biāo)識(shí)符識(shí)別結(jié)果
表8 改進(jìn)Hu矩的KNN標(biāo)識(shí)符識(shí)別結(jié)果
由以上4個(gè)表的數(shù)據(jù)可知,移動(dòng)機(jī)器人在不同的行進(jìn)速度下,改進(jìn)Hu矩算法對(duì)C-SVC分類(lèi)器和KNN分類(lèi)器的分類(lèi)準(zhǔn)確率比Hu矩算法都有所提升,在動(dòng)態(tài)檢測(cè)中,改進(jìn)Hu矩算法具有更好的魯棒性。
以上離線測(cè)試和在線測(cè)試結(jié)果表明,改進(jìn)Hu算法處理的特征值更利于分類(lèi),算法是可行的;C-SVC分類(lèi)器相較于KNN分類(lèi)器更適合于本實(shí)驗(yàn)的機(jī)器人系統(tǒng),其操作簡(jiǎn)單,分類(lèi)準(zhǔn)確率高,魯棒性好。
為驗(yàn)證改進(jìn)Hu矩算法的性能,首先通過(guò)對(duì)UCI圖像數(shù)據(jù)庫(kù)進(jìn)行檢測(cè),實(shí)驗(yàn)結(jié)果顯示,改進(jìn)后的算法比原Hu矩算法具有更快的提取速度。其次利用機(jī)器學(xué)習(xí)分類(lèi)算法C-SVC和KNN,對(duì)特征值進(jìn)行分類(lèi),即分類(lèi)標(biāo)識(shí)符。最后對(duì)移動(dòng)機(jī)器人進(jìn)行實(shí)時(shí)在線實(shí)驗(yàn)測(cè)試。實(shí)驗(yàn)結(jié)果顯示,改進(jìn)后的Hu矩算法大大提高了C-SVC和KNN的分類(lèi)準(zhǔn)確率,說(shuō)明改進(jìn)后的算法提取的特征值精確度更高。以上研究結(jié)果顯示,改進(jìn)后的Hu矩算法可以更快更精確地提取標(biāo)識(shí)符特征參數(shù),有利于提高標(biāo)識(shí)符識(shí)別的實(shí)時(shí)性和精度,對(duì)于智能移動(dòng)機(jī)器人視覺(jué)導(dǎo)航字符識(shí)別具有較好的參考價(jià)值。