田星星, 涂玲英, 周意入, 秦 宇
(湖北工業(yè)大學(xué)電氣與電子工程學(xué)院,湖北 武漢 430068)
隨著電子商務(wù)的迅猛發(fā)展,現(xiàn)代化物流快件搬運(yùn)已成為智能化轉(zhuǎn)型的熱點(diǎn)研究問題[1-2]。國內(nèi)第一臺AGV由北京起重運(yùn)輸機(jī)械研究所研制,采用電磁導(dǎo)航的方式,該定位方式保養(yǎng)維修困難且易受外界干擾。2013年,沈陽新松公司向市場展示了一種新型慣性導(dǎo)航方式的AGV,其絕對定位的方式產(chǎn)生的誤差具有累積性,精確度比較低[3-5]。2015年,阿里天貓Geek+團(tuán)隊(duì)和國外亞馬遜公司相繼研發(fā)的倉儲AGV與“Kiva”機(jī)器人,均采用二維碼進(jìn)行定位與導(dǎo)航,成功將機(jī)器視覺技術(shù)應(yīng)用于AGV,但同時二維碼類型圖案在工業(yè)場地上鋪設(shè)保養(yǎng)不方便[6-7]。
在機(jī)器視覺領(lǐng)域,Ross B.Girshick[8]相繼提出了R-CNN、Fast R-CNN和Faster R-CNN這一系列目標(biāo)檢測算法,其中Faster R-CNN可以看做是RPN和Fast R-CNN的結(jié)合,且用RPN完全替代了Selective Search算法生成候選框,但只在單層卷積層的feature map上生成候選框且RPN和最后的分類與回歸層都各自用目標(biāo)函數(shù)進(jìn)行分類與回歸,導(dǎo)致運(yùn)算量還是偏大,精度仍不高。
為改進(jìn)上述問題, 在Faster-RCNN的網(wǎng)絡(luò)模型基礎(chǔ)上增加卷積層,在多層卷積層的feature map上生成候選框且用兩個3×3卷積核分別進(jìn)行卷積運(yùn)算,直接進(jìn)行分類和回歸。該改進(jìn)的Faster-RCNN檢測到所設(shè)計(jì)導(dǎo)航圖案中目標(biāo)的區(qū)域后,再通過Harris角點(diǎn)檢測算法提取目標(biāo)區(qū)域的參考角點(diǎn),繼而使用PnP算法計(jì)算出快件搬運(yùn)機(jī)器人的坐標(biāo)位置和偏轉(zhuǎn)角。最后,通過仿真設(shè)計(jì)的實(shí)驗(yàn)對其有效性進(jìn)行驗(yàn)證。
圖1為快件搬運(yùn)機(jī)器人模型三維圖,基本結(jié)構(gòu)主要分為驅(qū)動結(jié)構(gòu)和舉升結(jié)構(gòu)兩個部分。其中,驅(qū)動結(jié)構(gòu)左右兩邊選用相同的體小量輕和響應(yīng)速度快的伺服電機(jī),且對稱安裝。當(dāng)兩臺伺服電機(jī)連線中點(diǎn)位置的工業(yè)相機(jī)定位到位置信息后,每臺伺服電機(jī)分別帶動一個驅(qū)動輪,兩個驅(qū)動輪再通過前后四個相同規(guī)格且同樣對稱安裝的小萬向輪實(shí)現(xiàn)該機(jī)器人的差速行駛轉(zhuǎn)向及位置糾偏。
圖 1 快件搬運(yùn)機(jī)器人的三維模型
快件搬運(yùn)機(jī)器人一般在工業(yè)場地上沿著預(yù)設(shè)好的軌道中線運(yùn)動,圖2為其差速驅(qū)動數(shù)學(xué)模型,在XOY坐標(biāo)系中左右兩側(cè)驅(qū)動輪的速度分別設(shè)為Vr和Vl,機(jī)器人移動線速度設(shè)為V,移動角速度為ω,左右輪之間的距離設(shè)為D,則在當(dāng)前坐標(biāo)系中該機(jī)器人的移動線速度和移動角速度關(guān)系可表示為:
圖 2 快件搬運(yùn)機(jī)器人的差速運(yùn)動模型
假設(shè)該機(jī)器人的轉(zhuǎn)彎半徑為R,則
R=V/ω=D(Vr+Vl)/(Vr-Vl)
由此,通過對該機(jī)器人兩輪速度作不同的規(guī)劃,能夠得到相對應(yīng)的不同的運(yùn)動狀態(tài)如下:
1)Vr=Vl時,該機(jī)器人作直線運(yùn)動,并且V=Vr=Vl,R為無窮遠(yuǎn)。
進(jìn)一步地進(jìn)行該機(jī)器人行駛時速度與位置的數(shù)學(xué)關(guān)系分析,選擇其工業(yè)相機(jī)中心點(diǎn)作為載體質(zhì)心,任意時刻軸連線的中垂線和X軸的夾角記為θ(t),則在Δt時間內(nèi)該機(jī)器人所轉(zhuǎn)過的角度Δθ與轉(zhuǎn)動角速度ω的關(guān)系可表示為:
積分可得到(t)與左右車輪運(yùn)動速度Vl(t)和Vr(t)關(guān)系如下:
從上式可知:該機(jī)器人上的工業(yè)相機(jī)定位到偏轉(zhuǎn)角等位置信息后,其主控制器處理后通過調(diào)節(jié)兩臺伺服電機(jī)的差速輸出即可得到新的位置。
當(dāng)快件搬運(yùn)機(jī)器人沿著預(yù)設(shè)好的軌道中線行駛時,筆者擬在其軌道中央等間距地鋪設(shè)一些導(dǎo)航圖案,行駛路徑導(dǎo)引圖見圖3。這些圖案間距小于工業(yè)相機(jī)的視覺直徑,并且每張都是以白色為襯底,里面所包含的小矩形大小不一,顏色均為紅色、黃色、綠色和藍(lán)色。這種導(dǎo)航圖案不僅設(shè)計(jì)簡單,而且在工業(yè)場地上鋪設(shè)保養(yǎng)極為方便。
圖 3 行駛路徑導(dǎo)引圖
近些年來,計(jì)算機(jī)視覺技術(shù)在各類機(jī)器人導(dǎo)航定位中得到發(fā)展,R-CNN,Fast R-CNN和Faster R-CNN這一系列目標(biāo)檢測算法被相繼提出,其可以檢測上述導(dǎo)航圖案中的目標(biāo)區(qū)域。
R-CNN首先通過Selective Search算法得到大約1000-2000個候選框,再將每個候選框尺寸固定到227×227后送入CNN中提取特征,然后將這些feature map集合放入21個SVM中進(jìn)行分類,之后利用非極大值抑制算法得到每個目標(biāo)類別中得分最高的生成框,最后用回歸器對生成框回歸操作以精修其位置。由于每個候選框都需要送入CNN中逐一提取,這種目標(biāo)檢測算法圖像處理速度過慢,且分類與回歸沒有統(tǒng)一到一個網(wǎng)絡(luò)模型中,占用大量的內(nèi)存空間。
Fast R-CNN先將原圖送入CNN中提取特征,再將Selective Search算法得到的近2000個候選框映射到剛提取的feature map上,生成對應(yīng)的圖像塊,然后通過ROI-Pooling層統(tǒng)一到相同的尺度上,最后經(jīng)過兩個全連接層的特征連在各自的損失函數(shù)上,一個是用于分類的softmax函數(shù),另一個是用于生成框回歸的smooth的L1范式。這種目標(biāo)檢測算法只在末尾處理每個候選框,并且將分類與回歸統(tǒng)一到一個網(wǎng)絡(luò)模型中,既節(jié)省了圖像處理時間又節(jié)省了內(nèi)存空間。但是,候選框用Selective Search算法來獲取,仍存在速度慢的問題。
Faster R-CNN的模型框圖見圖4,其可以看作是RPN和Fast RCNN的結(jié)合。
圖 4 Faster-RCNN模型框圖
Faster R-CNN首先利用Fast R-CNN將原圖送入CNN中進(jìn)行特征提取,接著RPN網(wǎng)絡(luò)在某一卷積層提取的feature map上利用錨框生成法生成錨框。錨框生成法在feature map 所劃分的單元格中心點(diǎn)生成k個不同尺寸和長寬比的候選框,初步回歸和分類后傳入Fast RCNN的ROI Pooling層,統(tǒng)一到相同的尺寸,然后進(jìn)行精確的分類和回歸。錨框生成模型見圖5。
圖 5 錨框生成模型
這種目標(biāo)檢測算法中的RPN雖然將Selective Search算法產(chǎn)生候選框的環(huán)節(jié)有效地替代并整合到了深度卷積神經(jīng)網(wǎng)絡(luò)中,但是RPN只在單層的 feature map 上生成候選框,這樣會遺漏一些小目標(biāo)。其次,RPN和最后的分類與回歸層都各自用目標(biāo)函數(shù)分類與回歸,導(dǎo)致運(yùn)算量還是偏大。
針對Faster RCNN目標(biāo)檢測算法存在的問題作出進(jìn)一步改進(jìn),即在多層卷積層的featuremap上生成候選框后,直接進(jìn)行分類與回歸。具體設(shè)計(jì)方案是:首先選用VGG-16網(wǎng)絡(luò)模型(CNN常用的網(wǎng)絡(luò)模型),將其最后兩層全連接層改成卷積層,并在后面增加四層卷積層(圖6),再把Conv4-3、Fc7、Conv8-2、Conv9-2、conv10-2這5層不同卷積層提取到的feature map劃分成8×8,4×4兩種尺寸的單元格,然后用錨框生成法在每個劃分成的單元格中心點(diǎn)生成候選框,之后用兩個3×3卷積核分別進(jìn)行卷積運(yùn)算,最后一個用softmax函數(shù)進(jìn)行多分類,另一個用smooth的L1范式進(jìn)行回歸,不進(jìn)行二次分類與回歸。
圖 6 改進(jìn)的VGG-16網(wǎng)絡(luò)模型
對于提取為W×H的feature map,錨框生成法生成候選框的個數(shù)為5×W×H個,尺度集設(shè)為[1∶1,1∶2,1∶3,2∶1,3∶1],尺寸的大小由下式定義:
可知m為5;sizemin為尺寸最小值,取0.2;sizemax為尺寸最大值,取0.96。尺度集用pr={1,2,3,1/2,1/3}表示,則每一個候選框的長寬可由下式進(jìn)行計(jì)算:
當(dāng)用錨框生成法生成這些候選框后,將其映射回原圖基本上覆蓋了整張圖片,然后計(jì)算每個候選框和真實(shí)框區(qū)域位置的交并比,即重疊程度IOU。當(dāng)IOU>0.5時標(biāo)記為正樣本,否則標(biāo)記為負(fù)樣本。由于負(fù)樣本數(shù)量過多會造成網(wǎng)絡(luò)模型難以收斂,故通過正負(fù)樣本數(shù)量1∶3的比例和IOU值排序從高到低兩個原則剔除一些IOU值特別小的負(fù)樣本。
Harris角點(diǎn)檢測算法的核心是利用局部窗口在圖像上進(jìn)行移動判斷灰度是否發(fā)生較大的變化。若從各個方向上移動小窗口,此窗口區(qū)域內(nèi)圖像的灰度發(fā)生了較大變化,那么就認(rèn)為遇到了角點(diǎn)。該算法可以有效地提取上述改進(jìn)后目標(biāo)檢測算法定位目標(biāo)區(qū)域的角點(diǎn)。
PnP算法最后解決的是:已知相機(jī)內(nèi)部參數(shù)(焦距參數(shù)和畸變參數(shù))以及n個世界坐標(biāo)系和圖像坐標(biāo)系參考點(diǎn)的情況下,利用這幾個參考點(diǎn)之間的對應(yīng)關(guān)系求解相機(jī)在拍攝圖像時所處位姿。該算法可根據(jù)Harris角點(diǎn)檢測算法提取的角點(diǎn)計(jì)算出快件搬運(yùn)機(jī)器人沿預(yù)設(shè)路徑時的偏轉(zhuǎn)角以及坐標(biāo)位置。
針對2.3提出的目標(biāo)檢測算法優(yōu)化模型的訓(xùn)練與測試:在第一階段:利用Pascal Voc 數(shù)據(jù)集包含的21個類別近30000張圖片進(jìn)行遷移學(xué)習(xí),滿足其大數(shù)據(jù)量學(xué)習(xí)的需要;在第二階段,先通過繪圖軟件繪制了125張2.1方案所設(shè)計(jì)的圖片,之后對這些圖片進(jìn)行了數(shù)據(jù)增強(qiáng)處理,其步驟是先通過鏡像翻轉(zhuǎn)處理,圖片數(shù)量增加至4倍變?yōu)?00張,再對每張圖片進(jìn)行模糊處理,圖片數(shù)量增加至1000張且增強(qiáng)了該算法在模糊背景下的目標(biāo)檢測能力。最后將這1000張圖像樣本分為兩份,80%的樣本用于第二次訓(xùn)練,剩余20%的樣本用于最終的測試。
本實(shí)驗(yàn)硬件采用gtx1070顯卡以及inter corei7處理器,軟件環(huán)境為Windows 10操作系統(tǒng),在Tensorflow框架下phython語言進(jìn)行開發(fā),圖7和圖8分別為Faster RCNN算法和改進(jìn)的Faster RCNN算法在相同實(shí)驗(yàn)條件下部分測試樣本的結(jié)果顯示,其中Rr、Yr、Gr、Br分別代表紅色矩形、黃色矩形、綠色矩形和藍(lán)色矩形。
圖 7 Faster RCNN算法兩組測試結(jié)果
圖 8 改進(jìn)的Faster RCNN算法兩組測試結(jié)果
首先定義改進(jìn)前和改進(jìn)后兩種算法的圖像樣本測試正確率和精確度分別為cor1、cor2和acc1、acc2,則改進(jìn)前算法圖像每個樣本里紅、黃、綠、藍(lán)四鐘顏色小矩形的識別正確值(正確區(qū)分出四色小矩形值為1,反之為0)和定位精確值(測試圖像結(jié)果顯示的值)分別為R-cor1i,Y-cor1i,G-cor1i,B-cor1i和R-acc1i,Y-acc1i,G-acc1i,B-acc1i;改進(jìn)后算法的圖像每個樣本里紅、黃、綠、藍(lán)四鐘顏色小矩形的識別正確率和定位精確度分別為R-cor2i,Y-cor2i,G-cor2i,B-cor2i和R-acc2i,Y-acc2i,G-acc2i,B-acc2i。cor1、cor2和acc1、acc2的計(jì)算公式分別如下:
i∈(1,2,3,…,200)
i∈(1,2,3,…,200)
根據(jù)以上公式計(jì)算改進(jìn)前后兩種算法測試200個樣本的統(tǒng)計(jì)情況見表1。
表1 改進(jìn)前、后算法正確率和準(zhǔn)確度統(tǒng)計(jì)表
對快件搬運(yùn)機(jī)器人驅(qū)動結(jié)構(gòu)的導(dǎo)航定位技術(shù)進(jìn)行研究與改進(jìn),在Faster R-CNN的網(wǎng)絡(luò)模型基礎(chǔ)上增加卷積層,在多層卷積層的feature map上生成候選框且用兩個3×3卷積核分別進(jìn)行卷積運(yùn)算,直接進(jìn)行分類和回歸。測試結(jié)果顯示相比Faster-RCNN,改進(jìn)的目標(biāo)檢測算法定位圖像中目標(biāo)類別的正確率同為100%,精確度提高了3%。之后用Harris角點(diǎn)檢測算法提取參考角點(diǎn),繼而使用PnP算法計(jì)算出坐標(biāo)位置,也即提高了該機(jī)器人的導(dǎo)航定位精度。