王志輝,陳息坤
(1.廣東科學(xué)技術(shù)職業(yè)學(xué)院 機器人學(xué)院,廣東 珠海 519090;2.上海大學(xué) 機電工程與自動化學(xué)院,上海 200444)
機器人被定義為替代或輔助人類完成特定工作的一種高綜合性的機械裝置,涉及計算機技術(shù)、機械設(shè)計、傳感器技術(shù)、自動控制理論以及人機交互等多個學(xué)科[1]。而隨著“中國制造2025”計劃的不斷推進,機器人技術(shù)得到了快速發(fā)展,并被列為了十大重點突破技術(shù)之一[2]。在各類機器人當(dāng)中,巡檢機器人因靈活性、機動性以及功能性都相對較強,可以更好地完成重復(fù)性和危險性較高的工作,被廣泛應(yīng)用于各個領(lǐng)域[3]。而隨著巡檢機器人應(yīng)用場景的多元化,其所處環(huán)境也日益復(fù)雜多樣,這使得機器人必須具備更強的自主導(dǎo)航避障能力[4]。目前,巡檢機器人的導(dǎo)航避障主要采用測距和視覺2種方式[5]。測距方式即利用激光雷達、超聲波等傳感器,獲取與障礙物的距離信息,進而實現(xiàn)避障。該方式相對簡單,但獲取的場景信息過于稀疏,不能較好適用于復(fù)雜環(huán)境[6]。而視覺方式主要利用攝像頭獲取機器人當(dāng)前的場景圖像,通過識別圖像中的障礙物及道路來實現(xiàn)導(dǎo)航避障[7]。可見,基于視覺的方法更符合人類的避障方式,該方法可以更好地感知機器人周圍環(huán)境,進而更靈活地做出避障決策。而目前巡檢機器人在視覺導(dǎo)航避障方面仍存在諸多限制,如視覺算法計算量大、精度低、環(huán)境理解程度不高等,造成機器人的避障效率以及可靠性都較低[8]。因此,研究一種基于場景理解的高效率視覺導(dǎo)航避障方法,不僅可以有效提升機器人對環(huán)境的理解能力以及導(dǎo)航避障性能,而且對機器人的實際落地和智能化發(fā)展都有重要的推動意義。
目前,已有許多研究者針對機器人視覺導(dǎo)航避障開展了一系列研究工作。鮮開義等[9]提出了一種融合圖像分類和語義分割的變電站巡檢機器人導(dǎo)航避障方法,通過訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)獲取道路場景全局和局部信息,進而指導(dǎo)機器人避障。該方法雖能較好地獲取場景信息,但多任務(wù)網(wǎng)絡(luò)的引入使得避障效率較低。趙小勇等[10]提出了一種基于深度學(xué)習(xí)的自適應(yīng)控制場景理解網(wǎng)絡(luò),通過特征相似性對比來降低對重復(fù)特征的提取,并根據(jù)場景理解結(jié)果與簡單的邏輯判斷結(jié)合來指導(dǎo)機器人導(dǎo)航避障。該方法較好地提升了場景理解效率,但存在避障策略相對簡單、局限性較大的問題。Nagarajan等[11]提出了一種使用單個攝像頭進行障礙物檢測和避障的算法,通過計算像素梯度和關(guān)鍵點提取來識別可穿越的路徑和障礙物,進而實現(xiàn)避障。該方法在部分場景中效果較佳,但避障效果關(guān)鍵點的影響較大,泛化能力較差。Liu[12]提出了一種在非結(jié)構(gòu)化人類環(huán)境中自主移動機器人的避障方法,利用超聲波傳感器和RGB-D相機獲取不規(guī)則障礙物位置及信息實現(xiàn)避障。該方法可以較好地獲取障礙物位置信息,但對場景理解程度較低,在復(fù)雜場景中避障效果較差。上述方法為機器人導(dǎo)航避障提供了豐富的技術(shù)經(jīng)驗,但也存在環(huán)境理解程度低、避障路徑規(guī)劃局限性大等問題,機器人避障效果以及泛化能力仍有較大的提升空間。
針對目前巡檢機器人在導(dǎo)航避障上存在的問題,本文在現(xiàn)有工作基礎(chǔ)上,提出了一種融合場景理解與A*路徑規(guī)劃算法的機器人導(dǎo)航避障方法。該方法首先采用深層卷積神經(jīng)網(wǎng)絡(luò)來提取圖像特征,并利用金字塔上采樣結(jié)構(gòu)獲取圖像各目標(biāo)信息;其次,將獲取的場景信息圖像進行C空間(C-Space)轉(zhuǎn)化,并構(gòu)建柵格地圖;最后,基于圖像柵格地圖,利用A*算法完成避障路徑規(guī)劃,指導(dǎo)機器人完成避障。同時,為提升所提方法效率,在導(dǎo)航避障過程中,通過對比分析前后2幀可行道路區(qū)域特征,設(shè)計特征差分模塊,降低對重復(fù)特征的計算。實驗表明,所提方法可以有效地獲取機器人場景信息,并規(guī)劃出合理避障路線。同時,在實際場景中,該方法也體現(xiàn)出較高的計算效率,能準(zhǔn)確指導(dǎo)巡檢機器人實現(xiàn)導(dǎo)航避障。
本文所提的融合場景理解和A*算法的導(dǎo)航避障方法整體架構(gòu)如圖1所示。
圖1 整體框架結(jié)構(gòu)
該方法主要分為場景理解網(wǎng)絡(luò)、柵格地圖構(gòu)建、避障路徑規(guī)劃等幾部分。場景理解網(wǎng)絡(luò)主要采用編碼-解碼結(jié)構(gòu)構(gòu)建,編碼部分主要利用卷積操作提取圖像特征,解碼部分以金字塔上采樣方式恢復(fù)各目標(biāo)信息,保障機器人能識別、理解所處環(huán)境。柵格地圖的構(gòu)建主要是將場景理解結(jié)果進行分析處理,提取出道路區(qū)域,并根據(jù)巡檢機器人尺寸進行C-Space轉(zhuǎn)化,再將二維圖像進行柵格化,構(gòu)建地圖。避障路徑規(guī)劃則是在柵格地圖上通過A*路徑規(guī)劃算法搜索出當(dāng)前機器人最優(yōu)避障路線。同時,考慮到機器人巡檢過程中可行區(qū)域的重復(fù)度高,深層網(wǎng)絡(luò)、地圖構(gòu)建和路徑搜索等模塊計算量大等問題,設(shè)計了特征差分模塊,通過計算前后幀可行區(qū)域的重復(fù)度,降低冗余計算,提升實際避障效率。
場景理解,也稱為圖像語義分割,主要是將相機采集的場景圖像轉(zhuǎn)化為機器人可理解的信息,如障礙物位置、可行區(qū)域等[13]。目前,場景理解方法主要基于深度學(xué)習(xí)技術(shù),通過訓(xùn)練深層卷積神經(jīng)網(wǎng)絡(luò)的方式來對圖像中各個像素進行分類,進而實現(xiàn)對圖像中各目標(biāo)的識別與理解。而現(xiàn)有的網(wǎng)絡(luò)所針對的應(yīng)用場景大多不同,主流的場景理解網(wǎng)絡(luò)有BiSeNet[14],STDC[15],ShuffleSeg[16]和AttaNet[17]等。為有效搭建場景理解網(wǎng)絡(luò),本文借鑒現(xiàn)有的經(jīng)典網(wǎng)絡(luò)結(jié)構(gòu),同時考慮實際應(yīng)用場景,設(shè)計了適用于巡檢機器人的場景理解網(wǎng)絡(luò),如表1所示。
表1 場景理解網(wǎng)絡(luò)結(jié)構(gòu)
場景理解網(wǎng)絡(luò)只能使巡檢機器人理解各個位置像素的類別,并不能直接指導(dǎo)機器人動作,因此還需將整個場景進行整體分析理解。對于巡檢機器人的導(dǎo)航避障,首要目標(biāo)是建立場景地圖。由于場景理解結(jié)果為二維圖像,因此本文采用了二維柵格法進行地圖構(gòu)建。
對于柵格地圖的構(gòu)建,本文通過場景理解預(yù)處理、可行區(qū)域提取、C-Space轉(zhuǎn)化以及柵格劃分4個步驟實現(xiàn),如圖2所示。首先,場景理解預(yù)處理是將場景理解結(jié)果轉(zhuǎn)化為二值圖,即道路和非道路區(qū)域,再通過中值濾波、腐蝕和膨脹操作剔除圖像中的噪聲。其次,搜索圖像中的連通區(qū)域,并提取出除背景(非道路)外的最大連通區(qū)域作為機器人的可行區(qū)域。然后,考慮到機器人會占據(jù)一定區(qū)域,因此通過C-Space轉(zhuǎn)換保證機器人在道路或障礙物邊界正常行駛,即將非道路區(qū)域膨脹至機器人尺寸。同時,由于相機采集圖像時,近處目標(biāo)較大,遠處較小,因此,采用大小逐步遞增的核對圖像從上到下進行腐蝕。最后,將轉(zhuǎn)化后的圖像劃分為(w/20)×(h/20)的柵格,若每個柵格中存在道路像素,則定義該柵格為可行區(qū)域;反之則為障礙物。最終,將圖像轉(zhuǎn)化為(w/20)×(h/20)的二維數(shù)組柵格地圖。
(a)場景理解
為保證巡檢機器人有效實現(xiàn)全局及局部避障,同時考慮到實際道路場景柵格地圖相對簡單,本文采用了基于A*的全局路徑規(guī)劃算法,通過實時規(guī)劃來為機器人提供準(zhǔn)確的避障方向。A*算法基本原理是在起點所有可達位置中,利用評估函數(shù)(如式(1)所示)計算出最優(yōu)位置,并將最優(yōu)位置作為起點,依次類推,搜索出最優(yōu)路徑。
f(n)=g(n)+h(n),
(1)
式中,g(n)表示在搜索空間中當(dāng)前位置與起始位置的代價值;h(n)表示當(dāng)前位置與目標(biāo)位置的代價值,代價值采用歐幾里得距離計算。
A*算法路徑搜索流程如圖3所示,避障路徑規(guī)劃結(jié)果如圖4所示。
圖3 A*算法流程
圖4 避障路徑規(guī)劃結(jié)果
場景理解網(wǎng)絡(luò)主要由編碼和解密2部分構(gòu)成,編碼部分主要采用卷積操作以密集短接的方式進行特征提取,如圖5(a)和圖5(b)所示;解碼部分則采用金字塔上采樣結(jié)構(gòu)結(jié)合特征融合模塊來恢復(fù)目標(biāo)信息,如圖5(c)和圖5(d)所示。
(a)Init模塊
圖5(a)為編碼結(jié)構(gòu)初始模塊(Init),由2層構(gòu)成,主要采用步長為2的最大池化、深度可分離卷積以及常規(guī)卷積提取輸入圖像各維度顯著特征。該模塊主要目的是在盡可能保障特征多樣性的情況下對輸入圖像進行降維,方便后續(xù)特征深入提取。圖5(b)為編碼結(jié)構(gòu)核心特征提取模塊(Stage),利用密集短接的方式將多層卷積提取的特征進行拼接,不僅有效提取了多尺度信息,同時還降低了網(wǎng)絡(luò)計算量,其中N為輸出通道數(shù)。通過將多個Stage模塊串聯(lián)堆疊,由淺到深地提取圖像中各目標(biāo)特征信息。圖5(c)為解碼結(jié)構(gòu)上采樣部分(Upsample),分別提取Stage模塊最后一層特征以金字塔結(jié)構(gòu)方式由深到淺地進行上采樣融合,保障網(wǎng)絡(luò)對多尺度目標(biāo)的識別。融合方式采用圖5(d)結(jié)構(gòu),通過拼接特征再結(jié)合注意力機制(FFA)的方式提升有效信息的融合,避免了直接融合造成深層和淺層特征相互影響。將融合后的特征上采樣至原圖尺寸,實現(xiàn)圖像各像素的分類識別。
由于場景理解、柵格地圖構(gòu)建以及路徑規(guī)劃都需要較大的計算量,通過觀測發(fā)現(xiàn):在機器人實際巡檢過程中,可行道路區(qū)域變化率較低,其行駛方向基本不變。因此,為提升巡檢機器人在實際應(yīng)用中的效率,引入了特征差分模塊。該模塊主要嵌入場景理解網(wǎng)絡(luò)特征提取結(jié)構(gòu)中,通過計算前后2幀圖像的道路特征一階差分來判斷環(huán)境變化率,降低對特征提取以及路徑規(guī)劃的重復(fù)計算,進而提高效率,計算過程如圖6所示。
圖6 特征差分模塊計算過程
由于場景理解網(wǎng)絡(luò)上采樣部分融合的最淺層特征為Stage1模塊,因此特征差分模塊主要以Stage1模塊最后一層特征作為輸入。首先,通過1×1卷積將特征通道調(diào)整為目標(biāo)類別數(shù),并根據(jù)特征圖中每個位置所屬各類別的概率大小,將最大概率類別作為該位置類別,將特征圖轉(zhuǎn)化為類別圖。然后,提取類別圖中道路區(qū)域與上一幀圖像的道路區(qū)域進行對比,計算2幀圖像的漢明距離(Hamming distance),若漢明距離小于閾值,則認(rèn)為當(dāng)前道路區(qū)域基本不變,機器人運動方式不變;反之,則忽略特征差分模塊,重新計算各特征和規(guī)劃路徑??梢钥闯?,特征差分模塊并不參與場景理解網(wǎng)絡(luò)的訓(xùn)練,只在測試和實際應(yīng)用中引入該模塊,計算方式如式(2)所示。其中,上一幀道路區(qū)域信息緩存于計算機內(nèi)存中,當(dāng)Hamming distance大于閾值時,將當(dāng)前幀道路信息替換緩存中道路信息。
(2)
式中,l為stage1最后一層特征層;t為當(dāng)前幀;t-1為緩存幀;S為1×1卷積;φ為道路區(qū)域提??;dHm表示Hamming distance;xor表示對2幀圖像異或操作;count1表示異或操作后1的數(shù)量;D表示前后2幀道路信息相似性。
場景理解網(wǎng)絡(luò)機器人整個避障流程如圖7所示。機器人通過攝像機獲取道路圖像幀后利用場景理解網(wǎng)絡(luò)提取道路特征,計算當(dāng)前道路信息與上一幀道路的重復(fù)度,若重復(fù)度大于閾值,則機器人繼續(xù)上一時刻動作;反之,則對當(dāng)前圖像幀進行場景理解。將場景理解結(jié)果進行濾波、道路區(qū)域提取、構(gòu)形空間轉(zhuǎn)化后構(gòu)建柵格地圖。基于柵格地圖利用A*路徑規(guī)劃算法搜索出最優(yōu)的避障路徑,并將規(guī)劃路徑轉(zhuǎn)為機器人避障行駛方向,指導(dǎo)機器人完成避障。
圖7 機器人避障流程
為有效評估場景理解網(wǎng)絡(luò)以及避障方法的性能,實驗分別利用標(biāo)準(zhǔn)公開數(shù)據(jù)集和實際變電站巡檢機器人場景數(shù)據(jù),通過搭載英偉達TITAN Xp的臺式機以及Jetson Xavier NX的開發(fā)平臺,從場景理解效果、特征差分模塊有效性、避障路徑規(guī)劃可行性以及魯棒性等方面對所提方法進行了測試評估。場景理解網(wǎng)絡(luò)的構(gòu)建主要基于TensorFlow框架,為更好地與同類網(wǎng)絡(luò)比較,超參數(shù)主要參考文獻[15,20]設(shè)置,如表2所示。
表2 場景理解網(wǎng)絡(luò)超參設(shè)置
網(wǎng)絡(luò)采用交叉熵作為訓(xùn)練時損失函數(shù),測試時采用全局精度(G)、平均精度(C)以及平均交并比(mean Intersection over Union,mIoU)進行網(wǎng)絡(luò)性能評估。巡檢機器人導(dǎo)航避障效果則采用分類精度(P)和平均精度(AP)來度量,對于所提方法效率通過每秒處理圖像數(shù)量(FPS)來評估。
場景理解實驗主要是利用搭載TITAN Xp顯卡的臺式機來測試場景理解網(wǎng)絡(luò)性能。為有效驗證本文所提網(wǎng)絡(luò),實驗分別采用了CamVid,Cityscapes以及巡檢機器人實際道路場景數(shù)據(jù)集進行測試。CamVid和Cityscapes都為城市道路公開標(biāo)準(zhǔn)數(shù)據(jù)集,CamVid數(shù)據(jù)集相對較小,共有701張大小為960 pixel×720 pixel的圖像,包含11種目標(biāo)。CamVid數(shù)據(jù)集可以快速驗證網(wǎng)絡(luò)設(shè)計時各模塊的可行性。而Cityscapes數(shù)據(jù)集包含的場景較為復(fù)雜,該數(shù)據(jù)集共有5 000張精確標(biāo)注圖像,包含19種目標(biāo),圖像尺寸為2 048 pixel×1 024 pixel。Cityscapes數(shù)據(jù)集可以進一步驗證網(wǎng)絡(luò)的魯棒性以及泛化能力。實際道路場景數(shù)據(jù)集為變電站巡檢機器人巡檢過程中采集的道路圖像,約5 000張,包含道路、雜草、石子和圍欄等6類目標(biāo),通過人工標(biāo)注后將圖像尺寸歸一化為960 pixel×720 pixel,作為實際道路場景數(shù)據(jù)集,驗證網(wǎng)絡(luò)在實際場景中的理解效果。
實驗首先利用CamVid數(shù)據(jù)集對場景理解網(wǎng)絡(luò)精度與效率進行了測試,并與主流的場景理解網(wǎng)絡(luò)進行對比,實驗結(jié)果如表3所示。
表3 場景理解網(wǎng)絡(luò)測試結(jié)果對比
由表3可以看出,與同類型網(wǎng)絡(luò)相比,所提網(wǎng)絡(luò)較好地平衡了場景理解精度以及網(wǎng)絡(luò)計算量,雖然沒有達到當(dāng)前最優(yōu)性能,但可以更廣泛地落地實際應(yīng)用。為了進一步驗證該網(wǎng)絡(luò)在復(fù)雜場景中的魯棒性,利用Cityscapes數(shù)據(jù)集對網(wǎng)絡(luò)進行訓(xùn)練測試對比,對比結(jié)果如表4所示。同時,對于網(wǎng)絡(luò)的實際落地效果,采用了實際機器人采集的道路場景數(shù)據(jù)集,分別通過TITAN Xp和NX平臺進行訓(xùn)練測試,測試結(jié)果如表5所示。所提網(wǎng)絡(luò)在3個數(shù)據(jù)集上的場景理解效果如圖8所示。
(a)原圖 (b)標(biāo)注圖 (c)BiSeNet (d)RegSeg (e)本文
表4 Cityscapes數(shù)據(jù)集測試結(jié)果對比
表5 實際道路場景數(shù)據(jù)集測試結(jié)果對比
由上述實驗對比結(jié)果可以看出,本文所提場景理解網(wǎng)絡(luò)在精度、效率和網(wǎng)絡(luò)魯棒性等方面都有較好的表現(xiàn)。對于復(fù)雜道路場景,網(wǎng)絡(luò)整體精度有所降低,但從全局精度可以推斷出,網(wǎng)絡(luò)主要是對遠處微小目標(biāo)識別較差,對于場景中的主體目標(biāo)(如道路、建筑和車輛等)識別效果受影響較少,而遠處微小目標(biāo)相對于大多數(shù)實際應(yīng)用而言,可忽略不計。對于實際道路場景,雖然該場景相對簡單,但由于人工標(biāo)注時無法達到像素級精確,因此,在計算場景理解精度時存在較大的人為因素引入的誤差,造成識別精度并未較大提升。盡管如此,從檢測效果中可以看出,所提網(wǎng)絡(luò)在實際道路場景中也能實現(xiàn)準(zhǔn)確理解。
場景理解實驗主要是驗證所提網(wǎng)絡(luò)對環(huán)境的理解效果,而巡檢機器人避障實驗則根據(jù)場景理解結(jié)果進一步測試所提避障方法的有效性。實驗主要利用搭載Jetson Xavier NX平臺的變電站巡檢機器人進行測試,通過固定相機位置采集道路場景信息,并統(tǒng)一圖像尺寸為 960 pixel×720 pixel后進行場景理解以及避障路徑規(guī)劃,根據(jù)規(guī)劃結(jié)果指導(dǎo)機器人行駛方向。為方便與同類型方法對比,實驗測試主要借鑒文獻[9]的方案,將機器人行駛道路分為直行、左轉(zhuǎn)、右轉(zhuǎn)和停止4種命令,分別測試機器人在不同道路上的場景理解效果以及避障規(guī)劃后輸出的轉(zhuǎn)向命令準(zhǔn)確性。測試對比結(jié)果如表6和表7所示,機器人避障規(guī)劃路徑如圖9所示。其中,柵格地圖維度默認(rèn)是輸入圖像長寬的1/20。
表6 場景理解程度對比
表7 機器人避障效果對比
(a)原圖 (b)場景理解 (c)C空間 (d)避障規(guī)劃
根據(jù)上述測試結(jié)果可以看出,與同類型機器人場景理解網(wǎng)絡(luò)對比,本文所提方法場景理解精度平均提升了1%以上,效率基本保持居中水平。同時,在避障效果上,文獻[9]通過多任務(wù)方式同時考慮全局和局部信息,相對于文獻[10]避障效果更優(yōu),但效率相對較低。而本文所提避障策略相對于文獻[9-10]更合理,避障效果也更佳,但A*算法的引入降低了避障效率??紤]到機器人行駛時道路場景重復(fù)率高,為了提升效率,引入了特征差分模塊。為驗證該模塊的有效性,實驗選取了無障礙物的直行道路和有障礙物的避障道路對其進行了測試,實驗結(jié)果如表8和圖10所示。
表8 引入自適應(yīng)控制模塊前后測試結(jié)果
圖10 有無障礙物時前后2幀特征差異
由上述結(jié)果可以看出,引入特征差分模塊后,對于無障礙物的直行道路,前后2幀圖像的可行道路區(qū)域差異較小,過濾了大量重復(fù)計算,使所提方法的效率得到了大幅提升;而對于存在障礙物的道路,前后幀的差異相對較大,機器人需要實時計算場景信息,算法效率提升較小,但可以有效保障機器人準(zhǔn)確避障。盡管所提方法在避障時的效率仍相對較低,但考慮到實際機器人巡檢過程中,如果道路上出現(xiàn)障礙物時,巡檢機器人通常會降低行駛速度,相對而言將會有更多時間進行避障計算,基本滿足巡檢機器人在實際應(yīng)用對實時性的需求。綜上可見,本文所提方法可以有效地實現(xiàn)場景理解和避障路徑規(guī)劃,并能較好地應(yīng)用于實際場景中,輔助巡檢機器人高效完成導(dǎo)航避障。
本文針對現(xiàn)有巡檢機器人在視覺導(dǎo)航避障方面存在的不足,提出了一種融合場景理解與A*路徑規(guī)劃的機器人避障方法。該方法以編碼-解碼結(jié)構(gòu)為基本架構(gòu),采用特征層密集短接以及金字塔上采樣方式構(gòu)建深層場景理解網(wǎng)絡(luò),獲取巡檢機器人道路環(huán)境信息;結(jié)合機器人自身維度信息,將場景信息預(yù)處理后提取可行道路區(qū)域,并轉(zhuǎn)化為二維柵格地圖;基于柵格地圖,利用A*路徑規(guī)劃算法規(guī)劃出機器人避障路線,進而指導(dǎo)機器人實現(xiàn)導(dǎo)航避障。同時,考慮到實際道路場景的高重復(fù)性,引入了特征差分模塊,極大地降低了算法對冗余信息的計算,保障了所提方法在實際應(yīng)用中的實時性。通過實驗證明,本文所提方法可以有效地獲取道路場景信息,并能準(zhǔn)確高效地為巡檢機器人規(guī)劃出避障路線,進而實現(xiàn)實時自主導(dǎo)航避障。
本文所提方法盡管目前與同類型算法相比取得了較好的結(jié)果,但隨著巡檢機器人行駛環(huán)境愈發(fā)復(fù)雜,需要考慮的環(huán)境因素也將更多,所提方法也需進一步完善優(yōu)化。因此,對于復(fù)雜的道路場景,后續(xù)仍需要深入研究。