王志輝,陳息坤
(1.廣東科學技術職業學院 機器人學院,廣東 珠海 519090;2.上海大學 機電工程與自動化學院,上海 200444)
機器人被定義為替代或輔助人類完成特定工作的一種高綜合性的機械裝置,涉及計算機技術、機械設計、傳感器技術、自動控制理論以及人機交互等多個學科[1]。而隨著“中國制造2025”計劃的不斷推進,機器人技術得到了快速發展,并被列為了十大重點突破技術之一[2]。在各類機器人當中,巡檢機器人因靈活性、機動性以及功能性都相對較強,可以更好地完成重復性和危險性較高的工作,被廣泛應用于各個領域[3]。而隨著巡檢機器人應用場景的多元化,其所處環境也日益復雜多樣,這使得機器人必須具備更強的自主導航避障能力[4]。目前,巡檢機器人的導航避障主要采用測距和視覺2種方式[5]。測距方式即利用激光雷達、超聲波等傳感器,獲取與障礙物的距離信息,進而實現避障。該方式相對簡單,但獲取的場景信息過于稀疏,不能較好適用于復雜環境[6]。而視覺方式主要利用攝像頭獲取機器人當前的場景圖像,通過識別圖像中的障礙物及道路來實現導航避障[7]。可見,基于視覺的方法更符合人類的避障方式,該方法可以更好地感知機器人周圍環境,進而更靈活地做出避障決策。而目前巡檢機器人在視覺導航避障方面仍存在諸多限制,如視覺算法計算量大、精度低、環境理解程度不高等,造成機器人的避障效率以及可靠性都較低[8]。因此,研究一種基于場景理解的高效率視覺導航避障方法,不僅可以有效提升機器人對環境的理解能力以及導航避障性能,而且對機器人的實際落地和智能化發展都有重要的推動意義。
目前,已有許多研究者針對機器人視覺導航避障開展了一系列研究工作。鮮開義等[9]提出了一種融合圖像分類和語義分割的變電站巡檢機器人導航避障方法,通過訓練深層神經網絡獲取道路場景全局和局部信息,進而指導機器人避障。該方法雖能較好地獲取場景信息,但多任務網絡的引入使得避障效率較低。趙小勇等[10]提出了一種基于深度學習的自適應控制場景理解網絡,通過特征相似性對比來降低對重復特征的提取,并根據場景理解結果與簡單的邏輯判斷結合來指導機器人導航避障。該方法較好地提升了場景理解效率,但存在避障策略相對簡單、局限性較大的問題。Nagarajan等[11]提出了一種使用單個攝像頭進行障礙物檢測和避障的算法,通過計算像素梯度和關鍵點提取來識別可穿越的路徑和障礙物,進而實現避障。該方法在部分場景中效果較佳,但避障效果關鍵點的影響較大,泛化能力較差。Liu[12]提出了一種在非結構化人類環境中自主移動機器人的避障方法,利用超聲波傳感器和RGB-D相機獲取不規則障礙物位置及信息實現避障。該方法可以較好地獲取障礙物位置信息,但對場景理解程度較低,在復雜場景中避障效果較差。上述方法為機器人導航避障提供了豐富的技術經驗,但也存在環境理解程度低、避障路徑規劃局限性大等問題,機器人避障效果以及泛化能力仍有較大的提升空間。
針對目前巡檢機器人在導航避障上存在的問題,本文在現有工作基礎上,提出了一種融合場景理解與A*路徑規劃算法的機器人導航避障方法。該方法首先采用深層卷積神經網絡來提取圖像特征,并利用金字塔上采樣結構獲取圖像各目標信息;其次,將獲取的場景信息圖像進行C空間(C-Space)轉化,并構建柵格地圖;最后,基于圖像柵格地圖,利用A*算法完成避障路徑規劃,指導機器人完成避障。同時,為提升所提方法效率,在導航避障過程中,通過對比分析前后2幀可行道路區域特征,設計特征差分模塊,降低對重復特征的計算。實驗表明,所提方法可以有效地獲取機器人場景信息,并規劃出合理避障路線。同時,在實際場景中,該方法也體現出較高的計算效率,能準確指導巡檢機器人實現導航避障。
本文所提的融合場景理解和A*算法的導航避障方法整體架構如圖1所示。

圖1 整體框架結構
該方法主要分為場景理解網絡、柵格地圖構建、避障路徑規劃等幾部分。場景理解網絡主要采用編碼-解碼結構構建,編碼部分主要利用卷積操作提取圖像特征,解碼部分以金字塔上采樣方式恢復各目標信息,保障機器人能識別、理解所處環境。柵格地圖的構建主要是將場景理解結果進行分析處理,提取出道路區域,并根據巡檢機器人尺寸進行C-Space轉化,再將二維圖像進行柵格化,構建地圖。避障路徑規劃則是在柵格地圖上通過A*路徑規劃算法搜索出當前機器人最優避障路線。同時,考慮到機器人巡檢過程中可行區域的重復度高,深層網絡、地圖構建和路徑搜索等模塊計算量大等問題,設計了特征差分模塊,通過計算前后幀可行區域的重復度,降低冗余計算,提升實際避障效率。
場景理解,也稱為圖像語義分割,主要是將相機采集的場景圖像轉化為機器人可理解的信息,如障礙物位置、可行區域等[13]。目前,場景理解方法主要基于深度學習技術,通過訓練深層卷積神經網絡的方式來對圖像中各個像素進行分類,進而實現對圖像中各目標的識別與理解。而現有的網絡所針對的應用場景大多不同,主流的場景理解網絡有BiSeNet[14],STDC[15],ShuffleSeg[16]和AttaNet[17]等。為有效搭建場景理解網絡,本文借鑒現有的經典網絡結構,同時考慮實際應用場景,設計了適用于巡檢機器人的場景理解網絡,如表1所示。

表1 場景理解網絡結構
場景理解網絡只能使巡檢機器人理解各個位置像素的類別,并不能直接指導機器人動作,因此還需將整個場景進行整體分析理解。對于巡檢機器人的導航避障,首要目標是建立場景地圖。由于場景理解結果為二維圖像,因此本文采用了二維柵格法進行地圖構建。
對于柵格地圖的構建,本文通過場景理解預處理、可行區域提取、C-Space轉化以及柵格劃分4個步驟實現,如圖2所示。首先,場景理解預處理是將場景理解結果轉化為二值圖,即道路和非道路區域,再通過中值濾波、腐蝕和膨脹操作剔除圖像中的噪聲。其次,搜索圖像中的連通區域,并提取出除背景(非道路)外的最大連通區域作為機器人的可行區域。然后,考慮到機器人會占據一定區域,因此通過C-Space轉換保證機器人在道路或障礙物邊界正常行駛,即將非道路區域膨脹至機器人尺寸。同時,由于相機采集圖像時,近處目標較大,遠處較小,因此,采用大小逐步遞增的核對圖像從上到下進行腐蝕。最后,將轉化后的圖像劃分為(w/20)×(h/20)的柵格,若每個柵格中存在道路像素,則定義該柵格為可行區域;反之則為障礙物。最終,將圖像轉化為(w/20)×(h/20)的二維數組柵格地圖。

(a)場景理解

為保證巡檢機器人有效實現全局及局部避障,同時考慮到實際道路場景柵格地圖相對簡單,本文采用了基于A*的全局路徑規劃算法,通過實時規劃來為機器人提供準確的避障方向。A*算法基本原理是在起點所有可達位置中,利用評估函數(如式(1)所示)計算出最優位置,并將最優位置作為起點,依次類推,搜索出最優路徑。
f(n)=g(n)+h(n),
(1)
式中,g(n)表示在搜索空間中當前位置與起始位置的代價值;h(n)表示當前位置與目標位置的代價值,代價值采用歐幾里得距離計算。
A*算法路徑搜索流程如圖3所示,避障路徑規劃結果如圖4所示。

圖3 A*算法流程

圖4 避障路徑規劃結果
場景理解網絡主要由編碼和解密2部分構成,編碼部分主要采用卷積操作以密集短接的方式進行特征提取,如圖5(a)和圖5(b)所示;解碼部分則采用金字塔上采樣結構結合特征融合模塊來恢復目標信息,如圖5(c)和圖5(d)所示。

(a)Init模塊
圖5(a)為編碼結構初始模塊(Init),由2層構成,主要采用步長為2的最大池化、深度可分離卷積以及常規卷積提取輸入圖像各維度顯著特征。該模塊主要目的是在盡可能保障特征多樣性的情況下對輸入圖像進行降維,方便后續特征深入提取。圖5(b)為編碼結構核心特征提取模塊(Stage),利用密集短接的方式將多層卷積提取的特征進行拼接,不僅有效提取了多尺度信息,同時還降低了網絡計算量,其中N為輸出通道數。通過將多個Stage模塊串聯堆疊,由淺到深地提取圖像中各目標特征信息。圖5(c)為解碼結構上采樣部分(Upsample),分別提取Stage模塊最后一層特征以金字塔結構方式由深到淺地進行上采樣融合,保障網絡對多尺度目標的識別。融合方式采用圖5(d)結構,通過拼接特征再結合注意力機制(FFA)的方式提升有效信息的融合,避免了直接融合造成深層和淺層特征相互影響。將融合后的特征上采樣至原圖尺寸,實現圖像各像素的分類識別。
由于場景理解、柵格地圖構建以及路徑規劃都需要較大的計算量,通過觀測發現:在機器人實際巡檢過程中,可行道路區域變化率較低,其行駛方向基本不變。因此,為提升巡檢機器人在實際應用中的效率,引入了特征差分模塊。該模塊主要嵌入場景理解網絡特征提取結構中,通過計算前后2幀圖像的道路特征一階差分來判斷環境變化率,降低對特征提取以及路徑規劃的重復計算,進而提高效率,計算過程如圖6所示。

圖6 特征差分模塊計算過程
由于場景理解網絡上采樣部分融合的最淺層特征為Stage1模塊,因此特征差分模塊主要以Stage1模塊最后一層特征作為輸入。首先,通過1×1卷積將特征通道調整為目標類別數,并根據特征圖中每個位置所屬各類別的概率大小,將最大概率類別作為該位置類別,將特征圖轉化為類別圖。然后,提取類別圖中道路區域與上一幀圖像的道路區域進行對比,計算2幀圖像的漢明距離(Hamming distance),若漢明距離小于閾值,則認為當前道路區域基本不變,機器人運動方式不變;反之,則忽略特征差分模塊,重新計算各特征和規劃路徑。可以看出,特征差分模塊并不參與場景理解網絡的訓練,只在測試和實際應用中引入該模塊,計算方式如式(2)所示。其中,上一幀道路區域信息緩存于計算機內存中,當Hamming distance大于閾值時,將當前幀道路信息替換緩存中道路信息。
(2)
式中,l為stage1最后一層特征層;t為當前幀;t-1為緩存幀;S為1×1卷積;φ為道路區域提取;dHm表示Hamming distance;xor表示對2幀圖像異或操作;count1表示異或操作后1的數量;D表示前后2幀道路信息相似性。
場景理解網絡機器人整個避障流程如圖7所示。機器人通過攝像機獲取道路圖像幀后利用場景理解網絡提取道路特征,計算當前道路信息與上一幀道路的重復度,若重復度大于閾值,則機器人繼續上一時刻動作;反之,則對當前圖像幀進行場景理解。將場景理解結果進行濾波、道路區域提取、構形空間轉化后構建柵格地圖。基于柵格地圖利用A*路徑規劃算法搜索出最優的避障路徑,并將規劃路徑轉為機器人避障行駛方向,指導機器人完成避障。

圖7 機器人避障流程
為有效評估場景理解網絡以及避障方法的性能,實驗分別利用標準公開數據集和實際變電站巡檢機器人場景數據,通過搭載英偉達TITAN Xp的臺式機以及Jetson Xavier NX的開發平臺,從場景理解效果、特征差分模塊有效性、避障路徑規劃可行性以及魯棒性等方面對所提方法進行了測試評估。場景理解網絡的構建主要基于TensorFlow框架,為更好地與同類網絡比較,超參數主要參考文獻[15,20]設置,如表2所示。

表2 場景理解網絡超參設置
網絡采用交叉熵作為訓練時損失函數,測試時采用全局精度(G)、平均精度(C)以及平均交并比(mean Intersection over Union,mIoU)進行網絡性能評估。巡檢機器人導航避障效果則采用分類精度(P)和平均精度(AP)來度量,對于所提方法效率通過每秒處理圖像數量(FPS)來評估。
場景理解實驗主要是利用搭載TITAN Xp顯卡的臺式機來測試場景理解網絡性能。為有效驗證本文所提網絡,實驗分別采用了CamVid,Cityscapes以及巡檢機器人實際道路場景數據集進行測試。CamVid和Cityscapes都為城市道路公開標準數據集,CamVid數據集相對較小,共有701張大小為960 pixel×720 pixel的圖像,包含11種目標。CamVid數據集可以快速驗證網絡設計時各模塊的可行性。而Cityscapes數據集包含的場景較為復雜,該數據集共有5 000張精確標注圖像,包含19種目標,圖像尺寸為2 048 pixel×1 024 pixel。Cityscapes數據集可以進一步驗證網絡的魯棒性以及泛化能力。實際道路場景數據集為變電站巡檢機器人巡檢過程中采集的道路圖像,約5 000張,包含道路、雜草、石子和圍欄等6類目標,通過人工標注后將圖像尺寸歸一化為960 pixel×720 pixel,作為實際道路場景數據集,驗證網絡在實際場景中的理解效果。
實驗首先利用CamVid數據集對場景理解網絡精度與效率進行了測試,并與主流的場景理解網絡進行對比,實驗結果如表3所示。

表3 場景理解網絡測試結果對比
由表3可以看出,與同類型網絡相比,所提網絡較好地平衡了場景理解精度以及網絡計算量,雖然沒有達到當前最優性能,但可以更廣泛地落地實際應用。為了進一步驗證該網絡在復雜場景中的魯棒性,利用Cityscapes數據集對網絡進行訓練測試對比,對比結果如表4所示。同時,對于網絡的實際落地效果,采用了實際機器人采集的道路場景數據集,分別通過TITAN Xp和NX平臺進行訓練測試,測試結果如表5所示。所提網絡在3個數據集上的場景理解效果如圖8所示。

(a)原圖 (b)標注圖 (c)BiSeNet (d)RegSeg (e)本文

表4 Cityscapes數據集測試結果對比

表5 實際道路場景數據集測試結果對比
由上述實驗對比結果可以看出,本文所提場景理解網絡在精度、效率和網絡魯棒性等方面都有較好的表現。對于復雜道路場景,網絡整體精度有所降低,但從全局精度可以推斷出,網絡主要是對遠處微小目標識別較差,對于場景中的主體目標(如道路、建筑和車輛等)識別效果受影響較少,而遠處微小目標相對于大多數實際應用而言,可忽略不計。對于實際道路場景,雖然該場景相對簡單,但由于人工標注時無法達到像素級精確,因此,在計算場景理解精度時存在較大的人為因素引入的誤差,造成識別精度并未較大提升。盡管如此,從檢測效果中可以看出,所提網絡在實際道路場景中也能實現準確理解。
場景理解實驗主要是驗證所提網絡對環境的理解效果,而巡檢機器人避障實驗則根據場景理解結果進一步測試所提避障方法的有效性。實驗主要利用搭載Jetson Xavier NX平臺的變電站巡檢機器人進行測試,通過固定相機位置采集道路場景信息,并統一圖像尺寸為 960 pixel×720 pixel后進行場景理解以及避障路徑規劃,根據規劃結果指導機器人行駛方向。為方便與同類型方法對比,實驗測試主要借鑒文獻[9]的方案,將機器人行駛道路分為直行、左轉、右轉和停止4種命令,分別測試機器人在不同道路上的場景理解效果以及避障規劃后輸出的轉向命令準確性。測試對比結果如表6和表7所示,機器人避障規劃路徑如圖9所示。其中,柵格地圖維度默認是輸入圖像長寬的1/20。

表6 場景理解程度對比

表7 機器人避障效果對比

(a)原圖 (b)場景理解 (c)C空間 (d)避障規劃
根據上述測試結果可以看出,與同類型機器人場景理解網絡對比,本文所提方法場景理解精度平均提升了1%以上,效率基本保持居中水平。同時,在避障效果上,文獻[9]通過多任務方式同時考慮全局和局部信息,相對于文獻[10]避障效果更優,但效率相對較低。而本文所提避障策略相對于文獻[9-10]更合理,避障效果也更佳,但A*算法的引入降低了避障效率。考慮到機器人行駛時道路場景重復率高,為了提升效率,引入了特征差分模塊。為驗證該模塊的有效性,實驗選取了無障礙物的直行道路和有障礙物的避障道路對其進行了測試,實驗結果如表8和圖10所示。

表8 引入自適應控制模塊前后測試結果

圖10 有無障礙物時前后2幀特征差異
由上述結果可以看出,引入特征差分模塊后,對于無障礙物的直行道路,前后2幀圖像的可行道路區域差異較小,過濾了大量重復計算,使所提方法的效率得到了大幅提升;而對于存在障礙物的道路,前后幀的差異相對較大,機器人需要實時計算場景信息,算法效率提升較小,但可以有效保障機器人準確避障。盡管所提方法在避障時的效率仍相對較低,但考慮到實際機器人巡檢過程中,如果道路上出現障礙物時,巡檢機器人通常會降低行駛速度,相對而言將會有更多時間進行避障計算,基本滿足巡檢機器人在實際應用對實時性的需求。綜上可見,本文所提方法可以有效地實現場景理解和避障路徑規劃,并能較好地應用于實際場景中,輔助巡檢機器人高效完成導航避障。
本文針對現有巡檢機器人在視覺導航避障方面存在的不足,提出了一種融合場景理解與A*路徑規劃的機器人避障方法。該方法以編碼-解碼結構為基本架構,采用特征層密集短接以及金字塔上采樣方式構建深層場景理解網絡,獲取巡檢機器人道路環境信息;結合機器人自身維度信息,將場景信息預處理后提取可行道路區域,并轉化為二維柵格地圖;基于柵格地圖,利用A*路徑規劃算法規劃出機器人避障路線,進而指導機器人實現導航避障。同時,考慮到實際道路場景的高重復性,引入了特征差分模塊,極大地降低了算法對冗余信息的計算,保障了所提方法在實際應用中的實時性。通過實驗證明,本文所提方法可以有效地獲取道路場景信息,并能準確高效地為巡檢機器人規劃出避障路線,進而實現實時自主導航避障。
本文所提方法盡管目前與同類型算法相比取得了較好的結果,但隨著巡檢機器人行駛環境愈發復雜,需要考慮的環境因素也將更多,所提方法也需進一步完善優化。因此,對于復雜的道路場景,后續仍需要深入研究。