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