吳雄偉 ,周云成 ,劉峻渟 ,劉忠穎 ,王昌遠(yuǎn)
(沈陽(yáng)農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院,沈陽(yáng) 110866)
實(shí)時(shí)定位是溫室移動(dòng)機(jī)器人[1]實(shí)現(xiàn)導(dǎo)航,進(jìn)而開展自主作業(yè)的關(guān)鍵。溫室場(chǎng)景類似于室內(nèi)環(huán)境,狹小擁擠,且植株行及金屬棚架結(jié)構(gòu)遮擋電磁信號(hào),大田智能農(nóng)機(jī)常用的衛(wèi)星定位技術(shù)[2]難以在其內(nèi)部進(jìn)行有效工作。用導(dǎo)軌、道路[3]、壟溝、作物行[4]等特殊環(huán)境構(gòu)型引導(dǎo)定位機(jī)器人,是常用的解決方案。然而鋪設(shè)導(dǎo)軌會(huì)增加溫室建設(shè)成本,用特定算法提取植株行等作為導(dǎo)航線的方法[4-6],雖然能有效引導(dǎo)機(jī)器人作業(yè),但導(dǎo)航線必須連續(xù)才能滿足全局環(huán)境下的移動(dòng)定位需求。LONG等[7]通過擴(kuò)展卡爾曼濾波和自適應(yīng)蒙特卡羅定位算法,集成超寬帶、慣性測(cè)量單元和激光雷達(dá)等多種傳感器,構(gòu)建了溫室機(jī)器人室內(nèi)定位系統(tǒng)。多傳感集成的方案可取得較高定位精度,但也會(huì)增加機(jī)器人開發(fā)成本。近年來,隨著計(jì)算機(jī)視覺技術(shù)的進(jìn)步,直接應(yīng)用相機(jī)采集圖像和視覺算法,通過連續(xù)跟蹤機(jī)器人相對(duì)于出發(fā)點(diǎn)的位置及姿態(tài)(位姿)變化,實(shí)現(xiàn)移動(dòng)定位的相關(guān)研究取得了一定進(jìn)展[8-13]。相機(jī)價(jià)格低廉,如果能在算法上取得突破,該類技術(shù)可作為一種有效的室內(nèi)定位方案。
視覺里程估計(jì)是同步定位與地圖構(gòu)建(simultaneous localizationand mapping, SLAM)系統(tǒng)的核心,后者使機(jī)器人能夠依賴視覺傳感器完成自主導(dǎo)航[14-17],而前者的里程估計(jì)精度則直接決定了導(dǎo)航定位性能。目前,視覺里程估計(jì)的經(jīng)典核心算法主要分為基于特征點(diǎn)提取與匹配的方法[8-11],和基于光度誤差優(yōu)化的直接法[12-13]兩大類。董蕊芳等[14]應(yīng)用一種特征點(diǎn)法,融合多模態(tài)環(huán)境信息,實(shí)現(xiàn)了基于先驗(yàn)地圖的機(jī)器人定位。在溫室中,植株及建筑結(jié)構(gòu)是主要場(chǎng)景物,其所成圖像顏色、紋理通常較單一,描述圖像局部特征的高可分特征描述子設(shè)計(jì)困難,同時(shí)該類方法只能得到特征點(diǎn)的稀疏深度(目標(biāo)遠(yuǎn)近)值[8],對(duì)于相對(duì)狹窄局促的溫室環(huán)境來說,難以滿足移動(dòng)機(jī)器人的避障需求。直接法則建立在光度不變假設(shè)上,可獲取場(chǎng)景稠密深度值,但該類方法需要逐幀優(yōu)化求解圖像深度及位姿變化,對(duì)計(jì)算資源要求高,且溫室內(nèi)光環(huán)境復(fù)雜,幀間圖像可能會(huì)違反光度不變假設(shè),使算法求解不穩(wěn)定。
得益于生物神經(jīng)網(wǎng)絡(luò)在與環(huán)境交互過程中的持續(xù)學(xué)習(xí)能力,生物視覺系統(tǒng)在各種復(fù)雜條件下仍能進(jìn)行良好的空間定位與深度感知。受此啟發(fā),深度學(xué)習(xí)技術(shù)逐漸被用于視覺里程估計(jì)任務(wù)上。ZHOU等[18]首先基于深度卷積神經(jīng)網(wǎng)絡(luò)(deep convolution neural network, DCNN),用無監(jiān)督學(xué)習(xí)方法,聯(lián)合訓(xùn)練深度和位姿估計(jì)網(wǎng)絡(luò)模型,實(shí)現(xiàn)了基于連續(xù)圖像的視覺里程估計(jì),GODARD等[19-20]對(duì)模型進(jìn)行了持續(xù)改進(jìn)。周云成等[21]通過進(jìn)一步在聯(lián)合模型中引入時(shí)序一致性約束,探討了其在溫室移動(dòng)機(jī)器人位姿跟蹤方面的性能。該類方法應(yīng)用DCNN的學(xué)習(xí)能力,可從大量圖像樣本中學(xué)習(xí)場(chǎng)景結(jié)構(gòu)先驗(yàn),克服了經(jīng)典方法存在的一些不足。但由于位姿估計(jì)網(wǎng)絡(luò)在推理過程中,直接用相鄰幀圖像作為輸入預(yù)測(cè)幀間位姿變化,缺少必要的幾何監(jiān)督,因此此類方法一直受到尺度不確定性的困擾[22],與特征法[8-11]相比,位姿估計(jì)偏差較大,定位精度不高。ZHAO等[22-23]將深度網(wǎng)絡(luò)和光流網(wǎng)絡(luò)結(jié)合在一起進(jìn)行無監(jiān)督聯(lián)合訓(xùn)練,用光流建立的像素匹配關(guān)系來解決尺度不確定性問題,但該方法針對(duì)的是單目相機(jī),只能獲取工作場(chǎng)景的相對(duì)深度及位置變化,難以進(jìn)一步應(yīng)用于機(jī)器人的導(dǎo)航路徑規(guī)劃等任務(wù)上,且在推理應(yīng)用中需要同時(shí)計(jì)算兩個(gè)神經(jīng)網(wǎng)絡(luò),資源需求量大。
鑒于溫室移動(dòng)機(jī)器人自主工作中,對(duì)絕對(duì)尺度視覺里程信息的實(shí)際需求,和現(xiàn)有深度學(xué)習(xí)位姿估計(jì)模型存在的尺度不確定問題,本文以雙目相機(jī)作為傳感器,提出一種基于無監(jiān)督光流的視覺里程估計(jì)方法,用雙目圖像間光流計(jì)算場(chǎng)景稠密絕對(duì)深度,用相鄰幀間可靠光流結(jié)合場(chǎng)景深度計(jì)算幀間位姿變換。構(gòu)建約束光流模型的局部幾何一致性條件,提高光流和位姿估計(jì)精度。并在種植番茄的溫室場(chǎng)景中開展試驗(yàn),驗(yàn)證方法的有效性。
在溫室移動(dòng)機(jī)器人攜帶雙目相機(jī)所采集并經(jīng)立體校正的連續(xù)視頻中,設(shè)t-1、t為相鄰幀圖像采集時(shí)刻,用I1、I2、I3分別表示t-1時(shí)刻左目圖像和t時(shí)刻左、右目圖像。設(shè)空間點(diǎn)P在I1、I2、I3上的投影點(diǎn)2D坐標(biāo)分別為p1、p2、p3(互為匹配點(diǎn)),如雙目相機(jī)內(nèi)、外參矩陣K(含焦距f)、T(含基線距離b)已知,根據(jù)雙目視覺原理,由p2、p3水平x坐標(biāo)差值(視差d),可得P在t時(shí)刻左目相機(jī)坐標(biāo)系下的深度值Z2=fb/d,進(jìn)而可得其3D坐標(biāo)P2=[X2,Y2,Z2]T=K-1Z2h(p2),h(·)為齊次坐標(biāo)轉(zhuǎn)換。此時(shí)P2、p1構(gòu)成一組3D-2D匹配,基于多組匹配,用n點(diǎn)透視(perspective-n-point,PnP)算法[24]可解算出I2至I1的位姿變換矩陣T21,即幀間位姿變換Tt→t-1。繼而可知機(jī)器人相對(duì)于出發(fā)點(diǎn)的位姿變化Tt=ΠtTt→t-1,連續(xù)的Tt則構(gòu)成了機(jī)器人運(yùn)動(dòng)軌跡,即視覺里程估計(jì)可轉(zhuǎn)化為在圖像間尋找匹配點(diǎn)問題。
本文通過構(gòu)建基于深度學(xué)習(xí)的無監(jiān)督光流模型,建立圖像間像素級(jí)稠密匹配,以克服傳統(tǒng)基于特征點(diǎn)匹配的視覺里程估計(jì)方法只能獲取稀疏深度值的問題。首先用經(jīng)過訓(xùn)練的光流估計(jì)網(wǎng)絡(luò)(FlowNet),預(yù)測(cè)I1、I2間的前后向光流(圖像間像素運(yùn)動(dòng),即匹配點(diǎn)間的坐標(biāo)差異)場(chǎng)。將雙目圖像間視差視為一種特殊光流,即進(jìn)一步用FlowNet預(yù)測(cè)I2、I3間的雙向光流場(chǎng),其中在前向光流場(chǎng)W23中,表示像素在x方向運(yùn)動(dòng)的平面W23[:1]可視為該視差。由W23[:1]可得I2對(duì)應(yīng)的稠密深度圖D2,進(jìn)而可恢復(fù)出I2各像素的點(diǎn)云3D坐標(biāo)。進(jìn)一步基于預(yù)測(cè)光流場(chǎng),通過前后向光流一致性檢查[25-29],選擇I1、I2、I3間的可靠匹配點(diǎn)集,構(gòu)成多組3D-2D匹配,并用PnP算法求解幀間位姿變換矩陣T21。該方法的整體技術(shù)框架如圖1,其在跟蹤機(jī)器人位姿變化的同時(shí),可獲得前進(jìn)方向溫室場(chǎng)景的稠密三維結(jié)構(gòu)信息,為避障等其他應(yīng)用提供了可能。
圖1 基于光流的視覺里程估計(jì)框架圖Fig.1 Framework diagram of visual odometer based on optical flow
光流估計(jì)是圖1技術(shù)框架的基礎(chǔ)。溫室場(chǎng)景及種植作物復(fù)雜多變,光流估計(jì)模型的普適性決定了本文方法的可用性。無監(jiān)督光流模型[25-29]的學(xué)習(xí)過程只需用相鄰圖像作為訓(xùn)練樣本,無需光流真值作為標(biāo)簽,本文用該類模型建立像素匹配,以持續(xù)支持在線學(xué)習(xí)、終身學(xué)習(xí),適應(yīng)不同類型的溫室場(chǎng)景。為便于后續(xù)問題討論,首先對(duì)無監(jiān)督光流模型的基本思想做說明。設(shè)Wij=Φ(Ii,Ij;θ)為用深度神經(jīng)網(wǎng)絡(luò)構(gòu)建的映射,以相鄰圖像Ii、Ij作為輸入,預(yù)測(cè)前向光流場(chǎng)Wij,其中θ為Φ的可學(xué)習(xí)參數(shù)。根據(jù)Wij建立的像素匹配關(guān)系,有pi+Wij(pi) =pj,pi(位于Ii上)、pj(位于Ij上)為基于Wij建立的匹配點(diǎn),通過從Ij上采樣,可重構(gòu)視圖。與Ii在非遮擋區(qū)域應(yīng)表觀一致,用函數(shù)度量二者的差異(光度損失),以為優(yōu)化目標(biāo),用大量相鄰圖像作為樣本,可實(shí)現(xiàn)Φ的無監(jiān)督訓(xùn)練。
式中α1=0.01、α2=0.05[26]。
用遮擋估計(jì)結(jié)果Mij,為重新定義前向重構(gòu)光度損失,如式(2)所示。
式中ψ采用魯棒性懲罰函數(shù)形式,其定義為,其中q=0.4、ε=0.01[27],并用Mij(pi)排除遮擋區(qū)域。按生成Mij的相同過程,為Ij生成后向遮擋掩碼Mji并定義后向光度損失?p,ji。進(jìn)而以argmin(?p,ij+?p,ji)為優(yōu)化目標(biāo),實(shí)現(xiàn)Φ的無監(jiān)督訓(xùn)練,并用完成訓(xùn)練的Φ預(yù)測(cè)圖像間光流。
PWC-Net[31]是一種為有監(jiān)督光流模型設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò),但其在無監(jiān)督光流估計(jì)中也得到了廣泛的應(yīng)用[26-28]。本文以PWC-Net為基礎(chǔ),并參考近期無監(jiān)督光流估計(jì)的相關(guān)研究進(jìn)展[28-29],對(duì)其結(jié)構(gòu)做進(jìn)一步優(yōu)化調(diào)整后,作為映射Φ(光流估計(jì)網(wǎng)絡(luò))。該網(wǎng)絡(luò)用DCNN分別提取相鄰圖像Ii、Ij的多層級(jí)特征圖,構(gòu)成6層特征金字塔(圖2a)。基于各層級(jí)特征,用光流估計(jì)模塊(flow estimation module, FEM)分別預(yù)測(cè)各層級(jí)光流場(chǎng),l表示層號(hào)。FEM首先對(duì)l+1級(jí)光流場(chǎng)進(jìn)行上采樣,生成上采樣光流場(chǎng),基于該光流場(chǎng),通過雙線性插值在Ij的當(dāng)前層特征圖上采樣重構(gòu)出,用和Ii的當(dāng)前層特征圖計(jì)算代價(jià)體[31],將代價(jià)體、、和作為一個(gè)稠密卷積網(wǎng)絡(luò)的輸入,做光流估計(jì),輸出當(dāng)前層級(jí)光流場(chǎng)。用FEM逐級(jí)預(yù)測(cè)各層級(jí)光流場(chǎng),直至,然后對(duì)其上采樣,生成與輸入圖像同尺寸的最終光流場(chǎng)Wij。
圖2 深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 The structure of deep neural network
與有監(jiān)督光流模型不同,無監(jiān)督模型要預(yù)測(cè)雙向光流來估計(jì)遮擋,計(jì)算量大。因此,為減少計(jì)算量,損失函數(shù)通常只設(shè)置在最終光流場(chǎng)上[25-28],但這也使層級(jí)光流場(chǎng)缺少直接監(jiān)督信號(hào)。JONSCHKOWSKI等[28]研究發(fā)現(xiàn),由于缺少直接監(jiān)督,PWC-Net的高層級(jí)特征圖激活值普遍趨近于0,這將影響網(wǎng)絡(luò)對(duì)層級(jí)光流的預(yù)測(cè)。本文用特征歸一化來處理該問題,具體方法為:對(duì)各層級(jí)特征圖和,用(V-μ)/σ進(jìn)行歸一化,V及μ、σ分別表示特征圖及其均值與標(biāo)準(zhǔn)差。該處理可改變特征圖的激活值分布,緩解激活值趨近于0的問題。PWC-Net的FEM只在第2層級(jí)中,用環(huán)境網(wǎng)絡(luò)[31]對(duì)所預(yù)測(cè)的光流場(chǎng)進(jìn)行精化。本文的FEM(圖2b)則在每一層級(jí)中均采用環(huán)境網(wǎng)絡(luò)精化光流,提升最終光流場(chǎng)Wij的預(yù)測(cè)精度,并用優(yōu)化調(diào)整后的網(wǎng)絡(luò)作為本文光流估計(jì)網(wǎng)絡(luò)Φ。
Φ的光流場(chǎng)預(yù)測(cè)精度,直接影響視覺里程估計(jì)性能。為提高Φ的訓(xùn)練效果,提升光流預(yù)測(cè)精度,本文根據(jù)局部圖像I1、I2、I3所具有的幾何特性,在argmin(?p,ij+?p,ji)目標(biāo)基礎(chǔ)上,進(jìn)一步提出并構(gòu)建3種局部幾何一致性約束,以監(jiān)督Φ的訓(xùn)練過程。為此,在訓(xùn)練中除用Φ預(yù)測(cè)I1、I2和I2、I3的雙向光流場(chǎng)外,還用其估計(jì)I3、I1間的雙向光流,共產(chǎn)生6個(gè)局部光流場(chǎng)(圖3),并相應(yīng)生成對(duì)應(yīng)的遮擋掩碼。
1.4.1 對(duì)極幾何約束
對(duì)于由Wij(圖3中任一光流場(chǎng))建立的匹配點(diǎn)對(duì)pi、pj,根據(jù)對(duì)極幾何,pi在Ij上的對(duì)應(yīng)極線向量為lj=Fijh(pi) = [a,b,c]T,F(xiàn)ij為Ii至Ij的基礎(chǔ)矩陣。pj應(yīng)該在極線lj上,如不在,則其離lj的距離可用式(3)計(jì)算。
將距離超過閾值(本文設(shè)為0.1)的點(diǎn),標(biāo)記為外點(diǎn),生成外點(diǎn)標(biāo)記掩碼,當(dāng)時(shí),,否則。此時(shí)可用式(4)計(jì)算外點(diǎn)距極線的平均距離。
式中?d,ij可稱為極線距離損失,以其最小化作為Φ的優(yōu)化目標(biāo)之一,可使Wij中的外點(diǎn)逐步成為內(nèi)點(diǎn)。
1.4.2 匹配點(diǎn)選擇與基礎(chǔ)矩陣求解
式(3)的計(jì)算需要基礎(chǔ)矩陣Fij。假設(shè)Φ在訓(xùn)練過程中預(yù)測(cè)的Wij含有精確匹配(內(nèi)點(diǎn)),只要從中篩選出這些點(diǎn),即可用8點(diǎn)法[32]通過隨機(jī)采樣一致性(random sample consensus, RANSAC)循環(huán)求解Fij。精確匹配點(diǎn)對(duì)的雙向光流應(yīng)大小相同,方向相反,即具有一致性。首先定義式(5)來衡量匹配點(diǎn)對(duì)的光流一致性。
1.4.3 位姿變換矩陣求解與投影一致性約束
首先用Φ預(yù)測(cè)的視差W23[:1]計(jì)算得到I2的深度圖D2,進(jìn)而恢復(fù)I2像素的點(diǎn)云3D坐標(biāo)。然后按求解基礎(chǔ)矩陣的相同策略,基于一致性得分平面,從W23中選擇I2到I3的精確匹配點(diǎn)集,進(jìn)一步基于,從W21中選擇I2到I1的精確匹配點(diǎn)集,用2個(gè)點(diǎn)集的交集,選擇3D點(diǎn)云坐標(biāo)和在I1中的2D匹配點(diǎn),構(gòu)建3D-2D匹配關(guān)系。由該關(guān)系,可用PnP算法[24]在RANSAC循環(huán)中求解I2至I1的幀間位姿變換矩陣T21。
在計(jì)算出D2和T21的前提下,根據(jù)多視幾何原理,I2上的點(diǎn)p2在I1上的投影點(diǎn)可由式(6)計(jì)算得到[19]。
式中?e1為I2到I1的投影一致性損失,如果I2至I1的幀間位姿變換矩陣T21是精確的,則該損失值主要受W23和W21的精度影響。同理,由D2和相機(jī)的外參矩陣T,進(jìn)一步計(jì)算I2到I3的投影一致性損失?e3,并令?e=?e1+?e3。以argmin?e為Φ的另一訓(xùn)練目標(biāo),會(huì)間接使光流場(chǎng)W23、W21具有一致性。
1.4.4 光流場(chǎng)一致性約束
在3幅局部圖像中,像素在I2、I1間的運(yùn)動(dòng)(光流),等價(jià)于先從I2運(yùn)動(dòng)到I3,再?gòu)腎3運(yùn)動(dòng)到I1,因此理論上光流場(chǎng)W21、W23和W31應(yīng)滿足W21(p2)=W23(p2) +W31(p3),即這3個(gè)光流場(chǎng)應(yīng)具有一致性,用懲罰函數(shù)ψ來度量等式兩側(cè)的差異,如式(8)所示。
式中?u2為光流一致性損失,M2(p2)=M21(p2)M23(p2),即式(8)只考慮在I1、I2、I3上均可見像素的光流一致性。同理,光流場(chǎng)W12、W13和W32也應(yīng)具有一致性,按式(8)相同方式計(jì)算一致性損失?u1,并令?u=?u1+?u2。以argmin?u作為Φ的訓(xùn)練目標(biāo),會(huì)使其預(yù)測(cè)的多個(gè)局部光流場(chǎng)具有一致性。
通過所選擇的內(nèi)點(diǎn)集計(jì)算基礎(chǔ)矩陣和位姿變換矩陣,在對(duì)極幾何和投影一致性約束下,Φ在訓(xùn)練過程中預(yù)測(cè)的光流場(chǎng)外點(diǎn),將在多步學(xué)習(xí)中逐步成為內(nèi)點(diǎn),并在光流場(chǎng)一致性約束下,使該過程在6個(gè)局部光流場(chǎng)間傳遞。
在Φ預(yù)測(cè)的多層級(jí)光流(圖2a)中,理論上最終光流場(chǎng)Wij應(yīng)具有最高精度。為進(jìn)一步解決網(wǎng)絡(luò)訓(xùn)練中,層級(jí)光流缺少監(jiān)督的問題,本文用最終光流場(chǎng)監(jiān)督其他層級(jí)光流的預(yù)測(cè)。
知識(shí)蒸餾[33]是一種支持預(yù)測(cè)能力遷移的深度學(xué)習(xí)方法。本文借鑒其思想,將最終光流場(chǎng)蒸餾到其他層級(jí)光流上,稱為金字塔層間知識(shí)自蒸餾。傳統(tǒng)知識(shí)蒸餾方法通常用于網(wǎng)絡(luò)間的知識(shí)遷移,金字塔層間知識(shí)自蒸餾則在同一個(gè)網(wǎng)絡(luò)Φ內(nèi)的不同層間遷移知識(shí)。具體方法為,以Wij作為偽標(biāo)簽,定義式(9)所示的金字塔層間知識(shí)自蒸餾損失,以該損失最小化為Φ的學(xué)習(xí)目標(biāo)之一,實(shí)現(xiàn)層間知識(shí)遷移。
式中↓表示下采樣,用于將Wij和Mij下采樣到與的空間尺度相一致。Wij在下采樣過程中需要將光流值縮小為原值的1/2l,同時(shí)用Mij將遮擋區(qū)域從知識(shí)遷移中排除。相對(duì)于將多種優(yōu)化目標(biāo)組成的損失函數(shù)直接設(shè)置在層級(jí)光流場(chǎng)上,層間知識(shí)遷移能以較小的計(jì)算代價(jià),將最高分辨率和精度的最終光流場(chǎng)蒸餾到層級(jí)光流場(chǎng)上,而層級(jí)光流場(chǎng)精度的提高可能會(huì)通過FEM模塊的逐級(jí)傳遞,進(jìn)一步提高最終光流場(chǎng)的精度。
1.6.1 總損失函數(shù)定義
組合6個(gè)局部光流場(chǎng)(圖3)對(duì)應(yīng)的光度損失、3種局部幾何一致性損失和金字塔層間知識(shí)自蒸餾損失,同時(shí)為提高網(wǎng)絡(luò)Φ訓(xùn)練的魯棒性,引入基于邊緣感知的光流場(chǎng)平滑損失?s,ij[34]和對(duì)光度變化不敏感的census損失?c,ij[25]。將各項(xiàng)損失按線性組合后,定義總損失函數(shù)?,見式(10)。
式中λs等表示線性組合系數(shù),分別設(shè)置為λs=0.05[34]、λc=1[25]、λt=0.01[29]、λd=0.1、λe=0.01[23]、λu=0.01[27]。最終以argmin?為優(yōu)化目標(biāo),訓(xùn)練網(wǎng)絡(luò)Φ。
1.6.2 網(wǎng)絡(luò)訓(xùn)練方法
基于PyTorch[35],編程實(shí)現(xiàn)本文光流模型,用大量圖像樣本對(duì)網(wǎng)絡(luò)Φ進(jìn)行優(yōu)化訓(xùn)練。用小批量隨機(jī)梯度下降法更新網(wǎng)絡(luò)參數(shù)θ,每小批含2個(gè)樣本(由I1、I2、I3構(gòu)成),學(xué)習(xí)率設(shè)為5×10-5。網(wǎng)絡(luò)的輸入圖像尺寸設(shè)置為512×320像素。將網(wǎng)絡(luò)的訓(xùn)練分為2個(gè)階段,第1階段在不包含局部幾何一致性約束的情況下進(jìn)行15代(epoch)迭代優(yōu)化,第2階段包含該約束后再進(jìn)行多代訓(xùn)練,直至模型損失值收斂到穩(wěn)定狀態(tài)時(shí)為止。
用多種評(píng)估指標(biāo)評(píng)價(jià)本文方法的視覺里程估計(jì)性能。用估計(jì)光流和光流真實(shí)值間的端點(diǎn)誤差(endpoint error,EPE)和錯(cuò)誤率F1[29]來度量光流估計(jì)精度,2種指標(biāo)值均越低,表明精度越高。
用視覺里程估計(jì)值和機(jī)器人真實(shí)運(yùn)動(dòng)軌跡,來計(jì)算相對(duì)位姿誤差(relative pose error, RPE)和絕對(duì)軌跡誤差(absolute trajectory error, ATE)[36],衡量本文方法的位姿跟蹤精度。RPE在局部范圍內(nèi)(設(shè)為1 m)[36]衡量誤差,其包含相對(duì)位移誤差(relative translation error, RTE)和相對(duì)姿態(tài)誤差(relative rotation error, RRE)兩部分。ATE則在整個(gè)運(yùn)動(dòng)軌跡內(nèi)衡量誤差。在計(jì)算RTE、RRE和ATE時(shí),分別采用均方根誤差(root mean square error,RMSE)和平均絕對(duì)誤差(mean absolute error, MAE)2種方式,各指標(biāo)值均越低,表示位姿跟蹤越精確。
用像素p的估計(jì)深度與真實(shí)深度zp的平均相對(duì)誤差(mean relative error, Rel)、平方相對(duì)誤差(squared relative error, Sq Rel)、RMSE和lg化RMSE(RMSE1g),以及閾值限定精度[19]來衡量本文方法的深度估計(jì)性能,誤差越低、閾值限定精度越高表示性能越好。閾值限定精度指滿足δ < ωτ的像素所占的比例,其中ω=1.25、τ∈{1,2,3}[19],δ通過式(11)計(jì)算。
用輪式移動(dòng)機(jī)器人(速度0~0.8 m/s,可定速行進(jìn))作為底盤載具(圖4),開展數(shù)據(jù)采集及驗(yàn)證試驗(yàn)。該設(shè)備采用Nvidia Jetson AGX Xavier作為控制主機(jī),運(yùn)行Ubuntu 18.04和ROS系統(tǒng),可遠(yuǎn)程遙控行進(jìn)。視覺傳感器采用Stereolabs ZED 2k雙目相機(jī),水平前視安裝于底盤上部的托架上,離地高度約1.2 m,并通過USB串口接入控制主機(jī)。相機(jī)單目分辨率為1 920×1 080像素,采樣頻率為15幀/s,配套軟件工具提供了焦距、主點(diǎn)坐標(biāo)和雙目基線距離等參數(shù),由這些參數(shù)可得相機(jī)內(nèi)、外參數(shù)矩陣K、T。
圖4 輪式移動(dòng)機(jī)器人及試驗(yàn)場(chǎng)景Fig.4 Wheeled mobile robot and test scenario
本文光流模型在預(yù)先完成訓(xùn)練和測(cè)試后,再部署于移動(dòng)機(jī)器人上,用于視覺里程估計(jì)。在配置有Intel Xeon E5-2 630 v4處理器,Nvidia Tesla K80計(jì)算卡,128 GB內(nèi)存,Windows Server 2019 R2操作系統(tǒng)的計(jì)算機(jī)上進(jìn)行光流模型的訓(xùn)練和測(cè)試。
于2022年10—11月,在沈陽(yáng)農(nóng)業(yè)大學(xué)教學(xué)科研基地,某種植番茄的遼沈IV型節(jié)能日光溫室內(nèi),開展雙目視頻數(shù)據(jù)采集。此階段番茄處于坐果期,植株吊蔓生長(zhǎng),株高1.5~2.2 m,株距約0.3 m,行距約1.2 m。在晴朗天氣的10:00—16:00采集數(shù)據(jù),通過遙控,使機(jī)器人在株行間和其他行走通道上行進(jìn),并通過雙目相機(jī)采集視頻。將采集的長(zhǎng)視頻分割成小序列,每序列含200幀雙目圖像,共500個(gè)小序列。隨機(jī)選擇400個(gè)序列作為訓(xùn)練集,用于光流模型訓(xùn)練,其余100個(gè)用作測(cè)試集。
針對(duì)測(cè)試集,進(jìn)行圖像間光流真實(shí)值獲取。SIFT算子對(duì)光照變化、旋轉(zhuǎn)、縮放等具有魯棒性,對(duì)測(cè)試集的每個(gè)序列,用該算子提取I1、I2、I3的特征點(diǎn),用k近鄰算法匹配各圖像間特征點(diǎn),通過比率測(cè)試和交叉過濾初步濾除誤匹配,通過在RANSAC循環(huán)中求解基礎(chǔ)矩陣并應(yīng)用對(duì)極幾何約束,進(jìn)一步刪除外點(diǎn),最后用人工逐幀走查方式去除剩余的誤匹配,用余下正確匹配點(diǎn)的坐標(biāo)計(jì)算圖像間稀疏光流,并將其作為光流真實(shí)值,共獲取8.52×107個(gè)真實(shí)值。用測(cè)試集及其光流真實(shí)值評(píng)估本文光流模型的光流估計(jì)精度。
無監(jiān)督光流模型的光流預(yù)測(cè)精度直接決定基于圖1技術(shù)框架的視覺里程估計(jì)性能。為提高光流預(yù)測(cè)效果,本文在現(xiàn)有方法[25-29]基礎(chǔ)上,構(gòu)建了局部幾何一致性約束,并優(yōu)化調(diào)整了光流估計(jì)網(wǎng)絡(luò)等,首先通過試驗(yàn),分析各處理的有效性。
3.1.1 損失項(xiàng)的有效性分析
光度損失和光流場(chǎng)平滑損失最小化一直是無監(jiān)督光流模型的主要優(yōu)化目標(biāo),以此為基準(zhǔn),在網(wǎng)絡(luò)Φ相同的前提下,通過逐步啟用總損失函數(shù)?的其他損失項(xiàng),構(gòu)建了6種網(wǎng)絡(luò)損失模型,分別命名為I、II、III、IV、V、VI,各模型對(duì)應(yīng)的損失項(xiàng)線性組合系數(shù)設(shè)置如表1,其中模型I的損失項(xiàng)構(gòu)成同文獻(xiàn)[34],II的構(gòu)成同文獻(xiàn)[25]。用溫室雙目視頻訓(xùn)練集訓(xùn)練各模型,進(jìn)而用測(cè)試集及其光流真實(shí)值評(píng)估各模型對(duì)應(yīng)網(wǎng)絡(luò)的光流估計(jì)精度,每個(gè)試驗(yàn)重復(fù)3次,結(jié)果如表1。
表1 不同網(wǎng)絡(luò)損失模型的無監(jiān)督光流估計(jì)精度Table 1 Unsupervised optical flow estimation accuracy for different network loss models
表1數(shù)據(jù)表明,各損失項(xiàng)對(duì)提高光流估計(jì)精度均是有效的。模型I只含光度和光流場(chǎng)平滑損失,II在其基礎(chǔ)上增加了census損失,該處理使4項(xiàng)光流端點(diǎn)誤差EPE和錯(cuò)誤率F1顯著下降(P<0.05),表明census損失在該任務(wù)中是有效的。census損失通過比較重構(gòu)圖像與目標(biāo)圖像的census特征,可克服光度變化對(duì)損失度量的影響,使模型訓(xùn)練更具魯棒性。III在II基礎(chǔ)上增加了金字塔層間知識(shí)自蒸餾損失,該損失項(xiàng)使各項(xiàng)誤差均顯著降低(P<0.05),其中相鄰幀間光流的EPE降低11.76%,雙目圖像間光流的EPE和F1分別降低11.45%和1.76個(gè)百分點(diǎn)。最終光流具有最高分辨率,這有利于光度損失發(fā)揮監(jiān)督作用,獲得精度更高的光流場(chǎng),再將此光流場(chǎng)蒸餾到中高層光流上,相當(dāng)于間接將含多種約束的無監(jiān)督損失函數(shù)作用于中高層上,提高了中高層光流的估計(jì)效果,進(jìn)而促進(jìn)了依賴中高層光流的最終光流場(chǎng)精度的提高。
IV、V、VI在III的基礎(chǔ)上逐步引入3種局部幾何一致性約束損失項(xiàng),結(jié)果表明,整體上各項(xiàng)誤差逐漸降低。IV和III相比,6項(xiàng)EPE和F1指標(biāo)均顯著下降(P<0.05),表明對(duì)極幾何約束可顯著提高模型性能。V在IV基礎(chǔ)上增加了投影一致性約束,該處理使前者的2項(xiàng)F1相比后者顯著下降(P<0.05),其余指標(biāo)有所下降,表明該約束對(duì)提高光流估計(jì)精度也是有效的。VI和V相比,6項(xiàng)EPE和F1指標(biāo)均顯著下降(P<0.05),表明光流一致性約束能有效降低預(yù)測(cè)誤差。同時(shí)比較VI和III,前者的EPE下降8.89%,的EPE和F1分別下降8.96%和1.23個(gè)百分點(diǎn),進(jìn)一步表明局部幾何一致性約束對(duì)提高模型光流預(yù)測(cè)精度是有作用的。局部幾何一致性約束使Φ在訓(xùn)練過程中,應(yīng)用當(dāng)前估計(jì)的部分可靠光流值,計(jì)算圖像間的幾何關(guān)系,并進(jìn)一步應(yīng)用該幾何關(guān)系約束模型,使其估計(jì)的外點(diǎn)逐漸成為內(nèi)點(diǎn),從而在整體上提高了模型的光流預(yù)測(cè)精度。總體上,本文構(gòu)建并引入的多個(gè)損失項(xiàng)均能有效提高無監(jiān)督光流估計(jì)性能。
3.1.2 網(wǎng)絡(luò)結(jié)構(gòu)有效性分析
進(jìn)一步分析本文光流估計(jì)網(wǎng)絡(luò)的優(yōu)化調(diào)整對(duì)光流預(yù)測(cè)的作用。以PWC-Net為基準(zhǔn),對(duì)其使用特征歸一化處理后,構(gòu)成網(wǎng)絡(luò)Φ0,進(jìn)一步在各層級(jí)FEM中使用環(huán)境網(wǎng)絡(luò)精化層級(jí)光流,則構(gòu)成本文網(wǎng)絡(luò)Φ,各網(wǎng)絡(luò)均采用模型VI的損失函數(shù)。用溫室雙目視頻數(shù)據(jù)集訓(xùn)練并測(cè)試各網(wǎng)絡(luò)光流估計(jì)性能,同時(shí)測(cè)試各網(wǎng)絡(luò)計(jì)算速度,結(jié)果如表2。
表2 不同網(wǎng)絡(luò)結(jié)構(gòu)的無監(jiān)督光流估計(jì)精度Table 2 Unsupervised optical flow estimation accuracy for different network structures
由表2可知,網(wǎng)絡(luò)結(jié)構(gòu)對(duì)模型性能影響顯著。Φ0在PWC-Net基礎(chǔ)上對(duì)金字塔層級(jí)特征進(jìn)行歸一化處理,該處理使6項(xiàng)EPE和F1指標(biāo)均顯著降低(P<0.05),其中的EPE降低了12.50%,的EPE和F1分別降低了7.25%和0.99個(gè)百分點(diǎn),歸一化處理使Φ0的計(jì)算速度下降了1.28%,但光流估計(jì)精度有較大提升,表明特征歸一化對(duì)提高模型性能具有顯著作用。由于特征歸一化可改善高層特征圖激活值分布,較好地避免了激活值偏低對(duì)FEM預(yù)測(cè)高層光流場(chǎng)的影響,從而通過提高高層光流場(chǎng)的預(yù)測(cè)效果,進(jìn)而提高了最終光流場(chǎng)的預(yù)測(cè)精度。Φ在Φ0基礎(chǔ)上,使用環(huán)境網(wǎng)絡(luò)精化金字塔各層級(jí)光流,該處理使各項(xiàng)誤差顯著下降(P<0.05),其中雙目圖像間光流EPE下降4.69%。用擴(kuò)張卷積構(gòu)建的環(huán)境網(wǎng)絡(luò)有效擴(kuò)大了卷積感受野,這使其可以在更大尺度上應(yīng)用環(huán)境信息來精化光流運(yùn)動(dòng),進(jìn)而提高了光流估計(jì)效果。在各層級(jí)FEM中運(yùn)行環(huán)境網(wǎng)絡(luò),需執(zhí)行大量的計(jì)算,因此與Φ0相比,Φ的計(jì)算速度下降了14.24%,在應(yīng)用中,可根據(jù)實(shí)時(shí)性和精度的平衡,決定是否啟用精化過程??傮w上,本文對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化調(diào)整,對(duì)提高模型光流預(yù)測(cè)性能是有效的。按文獻(xiàn)[31]方法對(duì)Φ估計(jì)的部分局部光流場(chǎng)進(jìn)行可視化,結(jié)果如圖5。
圖5 局部光流場(chǎng)示例Fig.5 Examples of local optical flow field
從圖5b、5c可以看出,光流模型估計(jì)出了相鄰幀圖像上不同像素的光流變化。由于雙目圖像間光流只是像素在水平方向上的運(yùn)動(dòng),因此光流場(chǎng)W23和W32的顏色值應(yīng)是單一的,圖5 d和5e的結(jié)果與此相符,即本文模型是可以同時(shí)用于估計(jì)幀間光流和雙目圖像間光流的。
3.2.1 視覺里程跟蹤試驗(yàn)驗(yàn)證方法
用完成訓(xùn)練和測(cè)試的光流估計(jì)網(wǎng)絡(luò)Φ(模型VI)作為FlowNet,基于ROS,編程實(shí)現(xiàn)圖1框架所示視覺里程估計(jì)系統(tǒng),并部署在輪式移動(dòng)機(jī)器人上,框架中的各步計(jì)算均實(shí)現(xiàn)為ROS節(jié)點(diǎn)。系統(tǒng)除完成計(jì)算外,也將運(yùn)行過程中的跟蹤計(jì)算結(jié)果(深度圖、幀間位姿變換矩陣等)連同雙目視頻幀,以文件形式存儲(chǔ)于系統(tǒng)中。于雙目視頻數(shù)據(jù)集采集所在溫室相鄰的日光溫室內(nèi),開展視覺里程跟蹤驗(yàn)證試驗(yàn)。兩個(gè)溫室種植作物相同、管理模式相似。機(jī)器人采用遙控方式行進(jìn),行進(jìn)中,系統(tǒng)持續(xù)在線跟蹤機(jī)器人運(yùn)動(dòng)軌跡。每次跟蹤,機(jī)器人分別以0.2、0.4、0.6和0.8 m/s不同的速度勻速前進(jìn),共跟蹤了20條軌跡,每個(gè)速度分別對(duì)應(yīng)5條軌跡,軌跡長(zhǎng)度為15~70 m不等。每次跟蹤后,從機(jī)器人系統(tǒng)中下載跟蹤結(jié)果及對(duì)應(yīng)連續(xù)視頻幀。對(duì)連續(xù)視頻幀做進(jìn)一步處理,用2.3節(jié)方法獲取圖像間稀疏光流真實(shí)值,進(jìn)而用1.1節(jié)方法計(jì)算稀疏深度真值和機(jī)器人位姿變換。該處理在文獻(xiàn)[21]移動(dòng)距離和角度變換已知的測(cè)試集上的相對(duì)誤差均低于0.17%,因此可將其獲取的位姿變換作為真實(shí)值,用于分析本文方法的視覺里程跟蹤性能。
3.2.2 與現(xiàn)有方法的比較
為驗(yàn)證本文方法的性能,首先和現(xiàn)有的一些優(yōu)秀基準(zhǔn)方法進(jìn)行比較,具體包括UpFlow[29]、Monodepth2[19]和ORB-SLAM3[8],其中UpFlow是一種在交通數(shù)據(jù)集上取得優(yōu)異性能的無監(jiān)督光流模型,Monodepth2是一種基于無監(jiān)督學(xué)習(xí)的深度和位姿聯(lián)合估計(jì)模型,ORB-SLAM3是一種新近提出的用稀疏特征點(diǎn)實(shí)現(xiàn)視覺里程跟蹤的SLAM系統(tǒng)方法。用溫室雙目視頻訓(xùn)練集,分別訓(xùn)練UpFlow和Monodepth2,并按圖1技術(shù)框架實(shí)現(xiàn)基于Up-Flow的視覺里程估計(jì)系統(tǒng),用該系統(tǒng)、Monodepth2模型和ORB-SLAM3方法分別以離線方式,對(duì)視覺里程跟蹤試驗(yàn)后下載的各軌跡連續(xù)視頻幀進(jìn)行視覺里程估計(jì)。由于移動(dòng)機(jī)器人的計(jì)算資源無法滿足同時(shí)運(yùn)行多種方法,所以采用離線方式,以保證不同方法估計(jì)的是相同的機(jī)器人運(yùn)動(dòng)軌跡。用稀疏深度真值和機(jī)器人真實(shí)運(yùn)動(dòng)軌跡,對(duì)本文在線跟蹤結(jié)果及其他3種方法的離線估計(jì)結(jié)果進(jìn)行誤差分析,結(jié)果如表3和表4。
表3 不同方法的位姿跟蹤性能比較Table 3 Accuracy comparison of different methods on pose tracking
表4 不同方法的深度估計(jì)性能比較Table 4 Accuracy comparison of different methods on depth estimation
由表3數(shù)據(jù)可知,不同方法的位姿跟蹤性能差異顯著(P<0.05)。在UpFlow、Monodepth2和本文方法在內(nèi)的3種基于無監(jiān)督學(xué)習(xí)的方法中,本文方法具有最高的跟蹤精度,其在6項(xiàng)誤差指標(biāo)上均顯著低于其他2種方法。就相對(duì)位移誤差RTE指標(biāo)而言,與UpFlow相比,本文方法的均方根誤差RMSE和平均絕對(duì)誤差MAE 2種統(tǒng)計(jì)結(jié)果分別降低9.52%和9.80%,與Monodepth2相比,則分別降低43.0%和43.21%。相對(duì)于Monodepth2,基于無監(jiān)督光流的UpFlow和本文方法具有更好的位姿跟蹤性能。Monodepth2的位姿估計(jì)網(wǎng)絡(luò)在聯(lián)合訓(xùn)練時(shí),會(huì)受深度估計(jì)網(wǎng)絡(luò)的約束,但在推理時(shí)僅有相鄰幀作為輸入,受尺度不確定性影響,幀間位姿變換估計(jì)往往精度較低。基于光流的位姿變換估計(jì),則應(yīng)用由雙目和相鄰幀間可靠光流構(gòu)建的3D-2D匹配關(guān)系,求解幀間位姿變換,其在訓(xùn)練和應(yīng)用中持續(xù)受到幾何約束,無尺度不確定性問題,因此具有更高的位姿跟蹤性能。對(duì)比本文方法和ORB-SLAM3,后者各項(xiàng)誤差均顯著低于前者(P<0.05),但兩者各項(xiàng)誤差無數(shù)量級(jí)差異,另外本文方法能應(yīng)用估計(jì)光流計(jì)算場(chǎng)景稠密深度和三維點(diǎn)云,進(jìn)而可得場(chǎng)景三維結(jié)構(gòu),這是后者所不具備的。
由表4可知,UpFlow和本文方法在各項(xiàng)深度估計(jì)誤差上均顯著低于Monodepth2(P<0.05)。由于Monodepth2的位姿估計(jì)網(wǎng)絡(luò)受尺度不確定性影響,在聯(lián)合訓(xùn)練中,該影響將會(huì)傳遞給深度估計(jì)網(wǎng)絡(luò),降低了其深度預(yù)測(cè)性能。本文方法的深度估計(jì)相對(duì)誤差Rel為5.28%,與Monodepth2和UpFlow相比,分別降低2.90和0.99個(gè)百分點(diǎn)。ORBSLAM3只能提取、匹配稀疏特征點(diǎn),無法與本文方法獲取的稀疏深度真值相對(duì)應(yīng),因此未能評(píng)估其深度估計(jì)性能。對(duì)比本文方法和UpFlow,前者在3項(xiàng)深度估計(jì)誤差和1項(xiàng)閾值限定精度上顯著優(yōu)于后者(P<0.05),其他3項(xiàng)指標(biāo)無顯著差異,表明前者具有更高的深度估計(jì)精度。本文構(gòu)建了局部幾何一致性約束,優(yōu)化調(diào)整了網(wǎng)絡(luò)結(jié)構(gòu)等,有效提升了模型光流預(yù)測(cè)效果,進(jìn)而提高了基于光流的位姿跟蹤及深度估計(jì)精度。總體上,本文方法能夠跟蹤機(jī)器人運(yùn)動(dòng)軌跡并估計(jì)場(chǎng)景深度,且具有較高的性能。
3.2.3 運(yùn)動(dòng)速度對(duì)機(jī)器人位姿跟蹤性能的影響
機(jī)器人運(yùn)動(dòng)速度會(huì)影響幀間光流大小和相機(jī)成像質(zhì)量,為分析運(yùn)動(dòng)速度對(duì)位姿跟蹤性能的影響,進(jìn)一步比較本文方法對(duì)前文視覺里程跟蹤試驗(yàn)中,不同速度下機(jī)器人運(yùn)動(dòng)軌跡的跟蹤精度,結(jié)果如表5。
表5 不同運(yùn)動(dòng)速度下的位姿跟蹤性能Table 5 Pose tracking performance under different motion speeds
表5數(shù)據(jù)表明,機(jī)器人運(yùn)動(dòng)速度對(duì)本文方法位姿跟蹤性能具有顯著影響(P<0.05)。在運(yùn)動(dòng)速度為0.2 m/s(記為慢速)時(shí),跟蹤性能相對(duì)較低,為0.4 m/s時(shí),性能有所提高,為0.6 m/s時(shí),本文方法具有最小的跟蹤誤差,為0.8 m/s(記為快速)時(shí),各項(xiàng)誤差迅速升高,跟蹤性能變差。機(jī)器人運(yùn)動(dòng)速度決定相鄰幀間的位姿變化大小,慢速運(yùn)動(dòng)時(shí)位姿變化小,快速時(shí)變化大。由于幀間光流估計(jì)存在著一定誤差,該誤差對(duì)基于光流匹配的微小幀間位姿變換矩陣的解算精度影響較大,對(duì)較大位姿變換矩陣的求解則影響較小。當(dāng)機(jī)器人快速行進(jìn)時(shí),容易造成圖像運(yùn)動(dòng)模糊和抖動(dòng),且?guī)g光流迅速變大,增加了模型光流預(yù)測(cè)難度[37],從而使基于光流的位姿跟蹤性能下降。就試驗(yàn)而言,本文方法在機(jī)器人以0.6 m/s速度運(yùn)動(dòng)時(shí),具有最好的位姿跟蹤性能。
3.2.4 分辨率對(duì)位姿跟蹤性能的影響
本文光流模型在訓(xùn)練時(shí),采用512×320像素的固定大小圖像作為輸入。在機(jī)器人視覺里程跟蹤試驗(yàn)中,系統(tǒng)也將視頻圖像調(diào)整為該分辨率后輸入模型。進(jìn)一步采用本文方法,改變光流模型的輸入圖像分辨率,以離線方式對(duì)視覺里程跟蹤試驗(yàn)后下載的各軌跡連續(xù)視頻幀進(jìn)行視覺里程估計(jì),用于明確模型對(duì)不同分辨率輸入圖像的適應(yīng)性,并分析分辨率對(duì)位姿跟蹤性能的影響,結(jié)果如表6。
表6 不同輸入圖像分辨率的位姿跟蹤性能Table 6 Performance of pose tracking with different input image resolutions
表6數(shù)據(jù)表明,用固定分辨率圖像訓(xùn)練光流模型,在推理時(shí)改變分辨率,基于該模型的視覺里程估計(jì)系統(tǒng)仍能有效跟蹤機(jī)器人運(yùn)動(dòng)軌跡,說明本文方法對(duì)分辨率變化具有魯棒性。隨著分辨率增大,位姿跟蹤各項(xiàng)誤差逐漸下降。當(dāng)分辨率增加時(shí),圖像保留了更多的局部細(xì)節(jié)信息,利于模型提升光流估計(jì)精度,進(jìn)而提高系統(tǒng)的位姿跟蹤性能。同時(shí),相同的光流誤差對(duì)高分辨率圖像間的位姿變換矩陣求解的影響也小于低分辨率圖像。當(dāng)圖像分辨率為832×512像素時(shí)(限于計(jì)算設(shè)備存儲(chǔ)約束,未能對(duì)更高分辨率進(jìn)行分析),本文方法在1 m范圍內(nèi)產(chǎn)生的RTE絕對(duì)誤差均值MAE不高于0.036 m(3.6 cm),相對(duì)姿態(tài)誤差RRE的MAE不高于0.023 rad(1.3°),與448×256像素分辨率相比,圖像接近放大2倍,這2項(xiàng)誤差則分別下降33.33%和25.81%。圖像分辨率對(duì)位姿跟蹤性能具有顯著影響,分辨率越大,跟蹤精度越高。
3.2.5 軌跡跟蹤與深度估計(jì)圖示
用832×512像素分辨率圖像作為光流模型輸入,用本文方法,對(duì)部分視覺里程跟蹤試驗(yàn)中不同速度下的機(jī)器人運(yùn)動(dòng)軌跡進(jìn)行離線跟蹤,結(jié)果如圖6。
圖6 不同行進(jìn)速度下的軌跡跟蹤示例Fig.6 Examples of trajectory tracking at different motion speed
由圖6可以看出,本文方法可有效跟蹤機(jī)器人的運(yùn)動(dòng)軌跡。圖中各條跟蹤軌跡與對(duì)應(yīng)的真實(shí)軌跡在初始段吻合程度均較好,隨著跟蹤距離延長(zhǎng),也會(huì)逐漸出現(xiàn)偏離現(xiàn)象。
從圖中可以看出,不同株行間的局部跟蹤軌跡與真實(shí)軌跡的長(zhǎng)度吻合程度較好,即局部軌跡誤差較小,表6的指標(biāo)值也說明了這一點(diǎn),但隨著誤差累計(jì),特別是姿態(tài)誤差的累計(jì),跟蹤軌跡與真實(shí)軌跡之間的偏離逐漸增大。在機(jī)器人沿道路直行時(shí),在15 m行進(jìn)范圍內(nèi),不同速度下跟蹤軌跡與真實(shí)軌跡的一致性均較好。圖6也表明,運(yùn)動(dòng)速度對(duì)軌跡的跟蹤精度產(chǎn)生了較大的影響,在0.2 、0.8 m/s速度下,均較快地產(chǎn)生了軌跡偏離。
進(jìn)一步選取視覺里程跟蹤試驗(yàn)中,1條速度為0.6 m/s的視頻序列,從中截取2段機(jī)器人在某株行間行進(jìn)的小序列,其中一段由北向南行進(jìn),此時(shí)機(jī)器人逆光前行,另一段由南向北,即順光行進(jìn)。用本文方法以離線方式跟蹤2個(gè)小序列的軌跡,基于視差W23[:1]計(jì)算各幀左目圖像深度,進(jìn)而恢復(fù)各幀點(diǎn)云,基于,保留其中得分為前20%的點(diǎn)云,并通過各幀相對(duì)于首幀的位姿變換矩陣Tt,將點(diǎn)云坐標(biāo)變換到首幀對(duì)應(yīng)的左目相機(jī)坐標(biāo)系(設(shè)為世界坐標(biāo)系)下,同時(shí)將跟蹤軌跡點(diǎn)投影到首幀圖像上,可視化結(jié)果如圖7。
圖7 局部區(qū)域內(nèi)的視覺里程估計(jì)Fig.7 Examples of visual odometry application in local ground
由圖7可以看出,在逆光和順光條件下,小序列首幀圖像對(duì)應(yīng)的深度圖,很好地反應(yīng)了場(chǎng)景的景深變化,也清晰地刻畫出了株行間的通道。由各幀深度圖恢復(fù)的點(diǎn)云,在變換到世界坐標(biāo)系下后,很好地反應(yīng)了株行間局部區(qū)域的三維結(jié)構(gòu)。通道地面和順光條件下所見溫室后保溫墻對(duì)應(yīng)的點(diǎn)云分布平滑,兩側(cè)植株點(diǎn)云結(jié)構(gòu)清晰,通道空間內(nèi)未見其他雜點(diǎn),這表明將本文方法估計(jì)的深度信息用于機(jī)器人避障、環(huán)境地圖構(gòu)建[16]等也是可行的。從圖中也可以看出,在局部區(qū)域范圍內(nèi),跟蹤軌跡與真實(shí)軌跡的吻合度較高,在機(jī)器人行進(jìn)中,相機(jī)的左右擺動(dòng),在跟蹤軌跡上也有較好的體現(xiàn)。與順光條件相比,逆光條件下的相機(jī)成像質(zhì)量相對(duì)較差,圖像模糊,但本文方法仍能較好的跟蹤機(jī)器人運(yùn)動(dòng)軌跡并恢復(fù)場(chǎng)景三維結(jié)構(gòu),表明該方法具有一定的魯棒性和光環(huán)境適應(yīng)性,本文可為溫室移動(dòng)機(jī)器人視覺系統(tǒng)設(shè)計(jì)提供一定參考。
本文提出一種面向溫室移動(dòng)機(jī)器人的無監(jiān)督視覺里程估計(jì)方法,并在種植作物為番茄的日光溫室場(chǎng)景中開展了試驗(yàn)驗(yàn)證,主要結(jié)論如下:
1)所構(gòu)建的局部幾何一致性約束能有效提高無監(jiān)督光流模型精度,幀間和雙目圖像間光流端點(diǎn)誤差EPE分別下降8.89%和8.96%。金字塔層間知識(shí)自蒸餾損失可顯著降低光流估計(jì)誤差,幀間和雙目圖像間光流EPE分別降低11.76%和11.45%。
2)對(duì)光流估計(jì)網(wǎng)絡(luò)的層級(jí)特征圖進(jìn)行歸一化處理,使網(wǎng)絡(luò)計(jì)算速度下降1.28%,但光流估計(jì)誤差也顯著降低,其中幀間和雙目圖像間EPE分別降低12.50%和7.25%。
3)實(shí)際視覺里程跟蹤試驗(yàn)結(jié)果表明,與基于UpFlow光流模型的視覺里程估計(jì)相比,本文方法相對(duì)位移的均方根誤差和平均絕對(duì)誤差分別降低9.52%和9.80%,與Monodepth2相比,則分別降低43.0%和43.21%,與ORB-SLAM3相比,本文方法的位姿跟蹤精度相對(duì)較低,但優(yōu)勢(shì)在于能夠恢復(fù)場(chǎng)景稠密深度,這為機(jī)器人避障提供了可能。本文方法的深度估計(jì)相對(duì)誤差為5.28%,顯著優(yōu)于比較方法。
4)位姿跟蹤精度受機(jī)器人運(yùn)動(dòng)速度影響,在0.2 、0.8 m/s下的位姿跟蹤性能顯著低于0.4~0.6 m/s速度下的性能。隨著輸入圖像分辨率的增加,位姿跟蹤精度逐漸提高,當(dāng)分辨率為832×512像素時(shí),該方法在1 m范圍內(nèi)跟蹤的相對(duì)位移MAE不高于3.6 cm,相對(duì)姿態(tài)MAE不高于1.3°。
該研究可為溫室移動(dòng)機(jī)器人視覺系統(tǒng)設(shè)計(jì)提供技術(shù)參考。