陳 梅, 朱凌寒, 曾梓浩, 趙坤鵬
(合肥工業(yè)大學(xué) 電氣與自動(dòng)化工程學(xué)院,安徽 合肥 230009)
機(jī)器人常用兩種編程方式:示教編程、離線編程。前者易操作,但精度完全依靠示教者目測(cè)決定,對(duì)于復(fù)雜的路徑示教難以取得令人滿意的效果。后者降低了前者的不便,并同時(shí)進(jìn)行軌跡仿真、路徑優(yōu)化,但對(duì)于簡(jiǎn)單軌跡,沒(méi)有前者的效率高[1]?,F(xiàn)有基于視覺(jué)的機(jī)器人圖形化示教編程系統(tǒng),結(jié)合兩種方式優(yōu)點(diǎn),由雙目相機(jī)記錄手動(dòng)示教過(guò)程,通過(guò)處理示教視頻幀圖像檢測(cè)定位示教物體,獲得目標(biāo)空間軌跡,后期優(yōu)化軌跡,并轉(zhuǎn)換為機(jī)器人可執(zhí)行代碼。由于運(yùn)動(dòng)過(guò)程中,示教物體產(chǎn)生旋轉(zhuǎn)姿態(tài)影響檢測(cè)定位,系統(tǒng)選用球形物體,用霍夫變換以輪廓作為主要特征檢測(cè)。但為了避免背景干擾檢測(cè),示教物體只能適當(dāng)大面積占據(jù)圖像畫(huà)面,由此引起運(yùn)動(dòng)范圍有限,示教復(fù)雜軌跡難度加大。前期獲取有限軌跡點(diǎn)數(shù)目,導(dǎo)致后期軌跡優(yōu)化處理時(shí),容易丟失軌跡細(xì)節(jié),如此難以提高系統(tǒng)控制精度。如何解決這個(gè)問(wèn)題,實(shí)現(xiàn)空間目標(biāo)檢測(cè)追蹤,增大可示教物體種類,擴(kuò)大示教物體的示教空間,從而順利示教復(fù)雜軌跡、提高系統(tǒng)控制精度成為主要解決的問(wèn)題。
傳統(tǒng)的幀差法、光流法和背景差分法結(jié)合高斯濾波、粒子群算法等目標(biāo)檢測(cè)算法及策略已難滿足當(dāng)前目標(biāo)檢測(cè)中數(shù)據(jù)處理的性能、智能化等多方面要求。近年來(lái),在圖像處理上,結(jié)合神經(jīng)網(wǎng)絡(luò)處理已經(jīng)成為一種大的研究方向。從2014年起,先后出現(xiàn)R-CNN,F(xiàn)ast R-CNN,Faster R-CNN,SSD等越來(lái)越快速和準(zhǔn)確的目標(biāo)檢測(cè)方法[2~4]。本文考慮使用一種基于全卷積神經(jīng)網(wǎng)絡(luò)的算法來(lái)解決目標(biāo)檢測(cè)追蹤問(wèn)題。
圖像檢測(cè)是將圖像目標(biāo)識(shí)別與分割等問(wèn)題結(jié)合在一起完成[5]。追蹤是對(duì)目標(biāo)圖的后續(xù)處理。目標(biāo)的檢測(cè)與追蹤具體過(guò)程[6]對(duì)于一幅完整輸入的圖像,提取目標(biāo)部分多個(gè)特征因素,形成特征向量。依據(jù)特征向量,匹配模板,完成識(shí)別分類,標(biāo)出具體目標(biāo)類型。獲得帶有標(biāo)注分類信息的分割圖后,確定目標(biāo)類圖像坐標(biāo)。為了針對(duì)性檢測(cè)示教目標(biāo),本文檢測(cè)過(guò)程中結(jié)合神經(jīng)網(wǎng)絡(luò)處理視頻幀圖像。
普通的圖像分割(傳統(tǒng)語(yǔ)義分割)只能提取圖片的低級(jí)特征,且多需要人工干預(yù),不適用于視覺(jué)問(wèn)題上批量化處理和智能化發(fā)展趨勢(shì)[7]?,F(xiàn)有有基于神經(jīng)網(wǎng)絡(luò)的圖像分割方法,通過(guò)訓(xùn)練多層感知機(jī)來(lái)得到線性決策函數(shù),然后用決策函數(shù)對(duì)像素進(jìn)行分類來(lái)實(shí)現(xiàn)分割。網(wǎng)絡(luò)大量訓(xùn)練數(shù)據(jù),巨量連接,充分引入空間信息,較好地解決圖像中的噪聲和不均勻問(wèn)題。這種方法下,主要需要考慮選擇何種網(wǎng)絡(luò)結(jié)構(gòu)。本文選用全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional neural networks,FCN)結(jié)構(gòu)。
2.1.1 全卷積神經(jīng)網(wǎng)絡(luò)
2015年,Jonathan等人在CVPR上提出FCN實(shí)現(xiàn)了對(duì)圖像像素級(jí)別的預(yù)測(cè),學(xué)習(xí)像素到像素的映射[8]。該網(wǎng)絡(luò)可充分學(xué)習(xí)圖像中目標(biāo)體現(xiàn)的各層次特征,如輪廓,紋理,邊界,角點(diǎn)等。使用不同的訓(xùn)練數(shù)據(jù)集,可準(zhǔn)確識(shí)別多類目標(biāo)。具體模型結(jié)構(gòu)可基于VGGNet,AlexNet等變化。本文采用神經(jīng)網(wǎng)絡(luò)模型以VGG16模型為基本,替換最后的全連接層為卷積層,網(wǎng)絡(luò)最后一層輸出結(jié)構(gòu)為1*1*4。構(gòu)建網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1所示。
圖1 FCN模型結(jié)構(gòu)
為了輸出原圖一樣大小的分割圖像[9],網(wǎng)絡(luò)最后部分將第4層神經(jīng)元的輸出和第3層的輸出依次反卷積,分別16倍和8倍上采樣,最后疊加處理輸出。
由于類似的理論到實(shí)際的應(yīng)用中,網(wǎng)絡(luò)通常存在不收斂的問(wèn)題。為了解決該問(wèn)題。本文所用算法對(duì)網(wǎng)絡(luò)學(xué)習(xí)率采用實(shí)時(shí)更新的方法。引入學(xué)習(xí)和閾值的概念,設(shè)置初始學(xué)習(xí)率0.000 1,學(xué)習(xí)率lr以損失函數(shù)loss為度量,計(jì)算平均損失,設(shè)置閾值pt,按以下方式更新
(1)
2.1.2 目標(biāo)檢測(cè)
本文設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)可識(shí)別N類物體,定義示教目標(biāo)具體類別數(shù)為n,通過(guò)位圖和彩色圖轉(zhuǎn)換原理[13],制作訓(xùn)練集中標(biāo)簽圖,標(biāo)記該類別顏色為c(n)=(R,G,B)。輸入彩色圖像P進(jìn)入神經(jīng)網(wǎng)絡(luò),經(jīng)過(guò)前文所提神經(jīng)網(wǎng)絡(luò)處理后,輸出和原圖相同大小分割彩色圖片P1。
初步獲得分割圖,由于網(wǎng)絡(luò)可識(shí)別多類物體,在復(fù)雜背景下,分割圖出現(xiàn)多種顏色。為了方便系統(tǒng)確定識(shí)別目標(biāo)的位置,對(duì)于P1繼續(xù)做簡(jiǎn)單處理
1)二值化:設(shè)定以目標(biāo)類別顏色c(n)為閾值,圖像中所有顏色為(R,G,B)的像素點(diǎn)輸出為白色(255,255,255),其余像素點(diǎn)輸出為黑(0,0,0),提取出網(wǎng)絡(luò)識(shí)別出的目標(biāo)類別圖像。處理得圖P2。
2)形態(tài)學(xué)處理:二值圖P2上,在目標(biāo)圖像的輪廓邊緣處,存在很多噪點(diǎn)。使用形態(tài)學(xué)算子處理,先開(kāi)后閉,選擇使用算子(核)為半徑為k的圓盤(pán)。進(jìn)一步消除噪點(diǎn),突出目標(biāo)。處理得圖P3。
通過(guò)目標(biāo)檢測(cè)處理,獲得目標(biāo)點(diǎn)相對(duì)明確的圖P3。但網(wǎng)絡(luò)識(shí)別準(zhǔn)確率并非100 %,圖P3上除了目標(biāo)圖像,必然存在誤識(shí)別區(qū)域,這些區(qū)域本身作為背景而言,相對(duì)于識(shí)別目標(biāo)主體,所占面積相對(duì)較小。由此,計(jì)算圖像上最大連通域的質(zhì)心位置來(lái)獲得目標(biāo)的質(zhì)心,進(jìn)一步明確目標(biāo)。該質(zhì)心坐標(biāo)記錄為(x,y)。(x,y)為目標(biāo)點(diǎn)在圖像坐標(biāo)系下坐標(biāo),而機(jī)器人示教為空間軌跡。平面點(diǎn)到三維坐標(biāo)的轉(zhuǎn)換不可避免,故需進(jìn)一步處理獲得目標(biāo)空間位置(X,Y,Z)。本算法采用雙目視覺(jué)定位技術(shù)[10],通過(guò)目標(biāo)點(diǎn)在左右兩個(gè)相機(jī)成像畫(huà)面中的坐標(biāo)(xCL,yCL),(xCR,yCR),計(jì)算目標(biāo)物體實(shí)際空間位置。當(dāng)前兩個(gè)硬件參數(shù)相同、相機(jī)平行放置,如圖2所示(本文采用同一世界坐標(biāo)系)。
圖2 雙目相機(jī)空間定位示意
以兩相機(jī)中心點(diǎn)為坐標(biāo)原點(diǎn),左側(cè)相機(jī)在OL處,鏡頭水平向前,右側(cè)相機(jī)在OR處,相機(jī)間距dOR-OL=d,兩相機(jī)XOZ平面視角∠ALOLAR=∠BLOLBR=2θ,YOZ平面視角為2θy,畫(huà)面分辨率為wh。成像畫(huà)面寬度分別為:xAR-xAL,xBR-xBL。目標(biāo)P在兩相機(jī)成像畫(huà)面上分別位于CL,CR處。轉(zhuǎn)換過(guò)程如下:
P點(diǎn)在右畫(huà)面中和左畫(huà)面X方向上相對(duì)位置分別為
(2)
設(shè)像素點(diǎn)到X方向,Y方向?qū)嶋H長(zhǎng)度換算比例為k,ky,則相機(jī)實(shí)際捕捉寬度以及焦距分別為:
實(shí)際距離
LAL-LAR=wk,f=0.5w/tanθ
(3)
dc1-cr=dol-or-w(px1-0.5)k-w×(0.5-pxr)k
(4)
由相似三角形原理得
(5)
將式(2)~式(4)代入式(5),計(jì)算得
(6)
則世界坐標(biāo)系中X坐標(biāo)為
X=Z(2pxl-1)tanθ-0.5d
(7)
同相似三角形原理,求解垂直坐標(biāo),其中,Pyl為P點(diǎn)在左畫(huà)面Y方向上相對(duì)位置
(8)
得
T=Z(1-2pyl)tanθy
(9)
以上,確定目標(biāo)空間位置坐標(biāo)(X,Y,Z)。記錄并保存,如此每隔一幀處理拍攝示教視頻幀圖像,定位隔幀圖像中目標(biāo)質(zhì)心的空間位置,整體上,保存軌跡,實(shí)現(xiàn)追蹤。
綜上,可得空間目標(biāo)檢測(cè)追蹤算法流程圖如圖3所示。
圖3 算法流程
本文所提算法將從一定程度上擴(kuò)大示教物體示教空間,如此,對(duì)于相同的軌跡點(diǎn),可以最大程度上保留軌跡細(xì)節(jié)信息,方便后期對(duì)軌跡信息的進(jìn)一步處理。
本文利用基于視覺(jué)的免編程系統(tǒng)平臺(tái)對(duì)算法進(jìn)行識(shí)別定位測(cè)試,測(cè)試平臺(tái)如圖4(a)所示。計(jì)算機(jī)與下位機(jī)(伺服驅(qū)動(dòng)器)采用OPC通信,數(shù)據(jù)經(jīng)過(guò)處理傳輸至伺服驅(qū)動(dòng)器,機(jī)器人獲取指令,執(zhí)行操作。
本文采用VOC2011數(shù)據(jù)集訓(xùn)練FCN(8 s)網(wǎng)絡(luò)訓(xùn)練參數(shù):批處理數(shù)目為5個(gè),訓(xùn)練次數(shù)為10 000次,權(quán)重衰減為0.000 5,基本學(xué)習(xí)率0.000 1,可識(shí)別目標(biāo)種類為4種。學(xué)習(xí)率采用定期自學(xué)習(xí)更新(每訓(xùn)練100次)的方式。初始設(shè)置最終網(wǎng)絡(luò)誤差收斂于0.131 5,保存網(wǎng)絡(luò)第10 000次訓(xùn)練的參數(shù),作為預(yù)訓(xùn)練網(wǎng)絡(luò)模型。網(wǎng)絡(luò)可識(shí)別物體N=4,識(shí)別準(zhǔn)確率達(dá)80.6 %符合使用需求。
實(shí)驗(yàn)中以人手作為識(shí)別目標(biāo),定義為第n=4類,標(biāo)記顏色 ,以“五指張開(kāi)”姿態(tài)進(jìn)行拍攝檢測(cè)。示教環(huán)境如下:光照均勻;背景為自然背景,不刻意近距離人為遮擋(若近距離黑布等遮擋,影響光線強(qiáng)度分布,容易產(chǎn)生誤識(shí)別)。
實(shí)驗(yàn)開(kāi)始拍攝示教軌跡示教視頻,圖4(b)為雙目像機(jī)拍攝視頻中某幀圖片(以左目圖片處理為例),其彩色分割圖如圖4(c)。
圖4 實(shí)驗(yàn)平臺(tái)、實(shí)驗(yàn)圖像及FCN分割處理結(jié)果
如前文所述,對(duì)網(wǎng)絡(luò)處理所得彩色分割圖,依次做二值化,形態(tài)學(xué)處理,核半徑k=10,獲得圖像,如圖5(a1),(a2)所示。求取最大連通域的質(zhì)心位置,獲得手掌在空間中的質(zhì)心位置,標(biāo)記顯示為*。如圖5(b)所示。
圖5 后續(xù)圖像處理及確定位置
通過(guò)以上處理(右目圖片同樣處理),經(jīng)過(guò)空間轉(zhuǎn)換,保存獲得目標(biāo)在空間中的具體位置。實(shí)驗(yàn)最終獲得目標(biāo)物運(yùn)動(dòng)空間大小形狀如圖6所示,本文所用檢測(cè)追蹤算法下,檢測(cè)目標(biāo)物的運(yùn)動(dòng)范圍為ABCDEFGH(后標(biāo)fcn)區(qū)域。普通識(shí)別檢測(cè)算法(霍夫變換)檢測(cè)目標(biāo)物體的運(yùn)動(dòng)范圍為ABCDEFGH(后標(biāo)hf)區(qū)域。(忽略雙目相機(jī)中間視覺(jué)盲區(qū))。
圖6 實(shí)驗(yàn)?zāi)繕?biāo)運(yùn)動(dòng)空間對(duì)比
具體,兩種算法實(shí)驗(yàn)數(shù)據(jù)性能對(duì)比如表1、表2。
表1 實(shí)驗(yàn)結(jié)果對(duì)比
表2 實(shí)驗(yàn)結(jié)果對(duì)比
本文使用的算法擴(kuò)大示教目標(biāo)運(yùn)動(dòng)空間5倍多,可識(shí)別多類無(wú)規(guī)則物體,而且提出以自學(xué)習(xí)的方式更新學(xué)習(xí)率,使得理論到實(shí)際應(yīng)用的過(guò)程中,網(wǎng)絡(luò)順利收斂。本文改進(jìn)采用的FCN相比較傳統(tǒng)FCN,提高了識(shí)別準(zhǔn)確率。雖然使用霍夫變換通過(guò)物體圓形輪廓識(shí)別物體,捕捉物體的精度高,但實(shí)際可識(shí)別的區(qū)域范圍小,不符合實(shí)際使用需求。只有提高可檢測(cè)物體范圍,才能當(dāng)示教物行走復(fù)雜軌跡時(shí),增大軌跡點(diǎn)的數(shù)量,放大軌跡細(xì)節(jié),方便后期對(duì)于軌跡的優(yōu)化。
同時(shí),本文所用算法可識(shí)別多類物體,具有針對(duì)性,示教物不再局限于某類或某幾類。實(shí)驗(yàn)中雖然處理時(shí)間長(zhǎng),但是該值受硬件條件影響,此類方法(深度學(xué)習(xí))在一定程度上,已有相關(guān)文獻(xiàn)證明驗(yàn)證,可通過(guò)后續(xù)改進(jìn)達(dá)到實(shí)時(shí)效果[11],實(shí)際實(shí)施可行性大。結(jié)合圖形化示教編程系統(tǒng),在工業(yè)機(jī)器人編程系統(tǒng)中,有很好的應(yīng)用前景。
為了減小計(jì)算量,縮短處理時(shí)間,在當(dāng)前網(wǎng)絡(luò)識(shí)別準(zhǔn)確度已符合需求的情況下,本文未在網(wǎng)絡(luò)后添加條件隨機(jī)場(chǎng)(conditional random field,CRF)等算法,僅使用簡(jiǎn)單圖像處理,后續(xù)仍可以繼續(xù)優(yōu)化算法,進(jìn)一步提高算法識(shí)別準(zhǔn)確率。