嚴嘉浩
(浙江同濟科技職業(yè)學院)
隨著機器人在不用應用領域的蓬勃發(fā)展,人們的生產生活中出現(xiàn)了各類功能多樣的通用型或專用型機器人,部分機器人的工作區(qū)域跟操作人員或者普通人出現(xiàn)的位置可能出現(xiàn)較多重合,因此,機器人在場地內運動時需要避開人體的移動軌跡,即實現(xiàn)機器人對人體的避障運動。
機器人運動中實現(xiàn)對人體避障的檢測方式有基于激光雷達的[1]、基于超聲測距的[2]、基于帶深度信息的視覺方案的[3],也有純視覺方案的[4],以上方案在不同方面或者程度上具有一定局限性,主要有傳感器成本較高、算法較為復雜、對機器人所處環(huán)境有一定要求(例如純視覺方案的機器人避障算法不能良好處理強光或弱光環(huán)境),因此,本文提出了一種基于視覺和激光雷達方案的機器人避障算法,通過基于DFANet[5]的圖像語義分割算法得到分割掩碼后,將其與單線激光雷達測得的數(shù)據(jù)融合,將代表人體移動位置的信息寫入機器人運動路徑規(guī)劃模塊,最終實現(xiàn)機器人在預設場景中的避障行駛。
圖像語義分割[6]一直是醫(yī)學圖像、自動駕駛領域的研究熱點。在圖像處理的粒度上圖像分割可歸為兩種不同類別:一類是將圖片中所有像素點歸為可解釋的對象,即為語義分割,比如將圖片中出現(xiàn)的全部人體標記為“人體”,所有出現(xiàn)的“人”都屬于同一個標簽;二是實例分割[7],即將圖片中的某類標注為不同子標簽,例如,在某張圖片中出現(xiàn)多個人體,將他們標記成不同顏色的單個個體,但其所屬大類標簽依然為“人體”。
雖然目前語義分割網(wǎng)絡結合多尺度圖像的輸入,引入了金字塔結構[8]、殘差結構[9]、級聯(lián)特征融合等方式,在圖像理解方面取得了相當高的準確率,但其具有的網(wǎng)絡結構較深、參數(shù)過多的特點使得語義分割模型的訓練較慢,并且在特定領域,尤其是自動駕駛方面,因為其前向推理速度較慢,它們的落地依然有著一定局限。因此,本文使用基于DFANet 的圖像語義分割算法,以輕量級骨干網(wǎng)為基礎,使用子網(wǎng)聚合和子階段聚合的方式進行特征的聚合區(qū)分,大幅減少了模型參數(shù)量但仍能獲取足夠的感受野,在模型前向推理速度和圖像分割性能上取得了兩者的平衡。DFANet 的輕量級骨干網(wǎng)使用Xception[10]模塊作為主要結構,并為取得最大的感受野在其尾部加入全連接注意力模塊;子階段聚合模塊通過融合了不同粒度的特征表示,將尺寸相同的各層結果組合,可以提供高層結構細節(jié)信息和感受野的傳遞。最后通過卷積和上采樣構成的解碼器得到不同粒度的圖像分割結果。
由于本文算法最終部署在Nvidia Jetson TX2 上,其為英偉達公司推出的一款嵌入式AI計算設備,其算力、功耗受限,前向推理能力弱,如直接運行基于DFANet 的圖像語義分割算法,則其FPS 有限,因此需要對基于DFANet 的語義分割算法進行在部署端,即在邊緣計算設備Nvidia Jetson TX2 上的模型加速。本文使用針對英偉達圖形處理單元的高性能深度學習推理優(yōu)化器和運行時加速庫TensorRT作為模型優(yōu)化方式,其優(yōu)化原理可分為對網(wǎng)絡模型的裁剪和數(shù)據(jù)精度校準:對網(wǎng)絡模型的裁剪可分成在垂直方向上調整網(wǎng)絡(將卷積層、偏置層、激活函數(shù)層融合)、在水平方向上調整網(wǎng)絡(將輸入?yún)?shù)相同和進行操作相同的過程融合)以及減少concat 拼接層;數(shù)據(jù)精度校準的含義為在模型訓練時采用精度稍高的FP32 或FP16,部署后推理時采用精度相對較低的FP16 或INT8量化精度。
本文使用的訓練平臺為單卡3080,測試平臺及邊緣計算平臺為Nvidia Jetson TX2,cuda-10.2,cuDnn-8.4,TensorRT 8.5,PyTorch 1.0.0,訓練及測試數(shù)據(jù)集來源于cityscapes[11],圖像尺寸1024*512。實驗結果如表1 所示,使用網(wǎng)絡模型裁剪+數(shù)據(jù)精度校準方式比在TX2 上直接使用PyTorch 框架進行分割快52%,并且平均IOU 基本沒有損失。在cityscapes 數(shù)據(jù)集中,mIOU(class)表示在19 類小類別上的分割精度,mIOU(category)表示大類上的分割精度,如汽車、自行車為2 種小類別,但其對應的大類都為車。
表1 模型優(yōu)化結果(1024×512 分辨率)
本文基于人工神經網(wǎng)絡的避障算法基于機器人操作系統(tǒng)(Robot Operating System,ROS)實現(xiàn),ROS 的產生是為了解決機器人內部各結構之間的溝通協(xié)調問題,以實現(xiàn)機器人對環(huán)境的感知并最終完成機器人預定的整體功能,其核心思想是將機器人的不同軟件功能做成不同的節(jié)點(node),不用節(jié)點間通過通信協(xié)議互相傳遞消息,并且其節(jié)點可全部位于同一臺主機,也可分布于不同機器之上。
基于人工神經網(wǎng)絡的避障算法軟件總體設計如圖1 所示,主要分為環(huán)境傳感器、圖像分割模塊、數(shù)據(jù)融合模塊等與傳感器相關的信息處理部分,及與機器人運動相關的代價地圖、全局/局部路徑規(guī)劃模塊及運動控制模塊。
圖1 軟件總體設計
算法的整體流程為:在已經建立起所需要的環(huán)境地圖后,在rviz 中使用2d Navigation Goal 設定移動機器人的目的點,或者在不方便使用可視化界面使用鼠標選取目的點時,可以在程序中創(chuàng)建節(jié)點以發(fā)布action 消息(在ROS 機器人操作系統(tǒng)中,消息分為topic 話題、service服務、action 動作3 種基本類型);在此期間移動機器人通過搭載的單線激光雷達獲取與周圍環(huán)境的測距信息,并將計算得到的LaserScan 消息發(fā)布到sensor話題中;同時機器人搭載的RGB攝像頭獲取尺寸為1920*1080的圖像并將其發(fā)布到camera 話題;數(shù)據(jù)融合模塊通過同時訂閱sensor 及camera 話題,獲取其上的消息,將其中的激光雷達數(shù)據(jù)跟單目視覺攝像頭數(shù)據(jù)進行處理后,得到環(huán)境中人體的位置及移動速度,將其包裝成People 消息發(fā)布到對應的人體話題;局部代價地圖中的social_navigation_layer 通過訂閱人體話題,使用高斯分布調整人體周圍的代價,在全局代價地圖的基礎上獲得局部代價地圖,引導移動機器人的局部路徑規(guī)劃,將機器人所需要的運動控制信息發(fā)布到cmd_vel 話題;最終與邊緣計算平臺Nvidia Jetson TX2 物理連接的下位機Teensy,通過訂閱cmd_vel 話題得到機器人所需要的運動控制消息,最終通過控制其引腳上的電平實現(xiàn)對移動機器人方向舵機和油門的控制。
軟件總體設計中的圖像分割模塊即為運行在Nvidia Jetson TX2 上經優(yōu)化的基于DFANet 的圖像語義分割算法,其調用opencv 將獲取的圖像resize 為1024*512 尺寸,輸出結果為與輸入尺寸一致1024*512 分辨率的分割掩碼,其掩碼包括需要區(qū)分的人體、地面(可行駛區(qū)域)等。
本文的數(shù)據(jù)融合模塊主要處理來自圖像分割模塊的掩碼信息及來自單線激光雷達的數(shù)據(jù)。由于本位需要獲得信息為人體在場景中的精確位置信息,單獨的圖像分割得到的人體位置掩碼或者單獨的激光雷達數(shù)據(jù)并不能提供我們所需要的信息,因此,需要將人體分割掩碼及激光雷達數(shù)據(jù)作對齊處理。本文實現(xiàn)的操作為:在該幀時間中獲取雷達數(shù)據(jù),將人體分割掩碼存在的區(qū)間按照標定轉換至極坐標空間,在此區(qū)間內的雷達探測數(shù)據(jù)標記為測得的距離人體精確信息,最后將人體位置信息發(fā)送到人體消息話題以供其他模塊使用。
社會活動導航層是本文實現(xiàn)的根據(jù)人體位置信息實現(xiàn)避障的主要規(guī)劃器,其為局部代價地圖上本文設計的一個插件,主要通過訂閱人體消息話題,以高斯分布的方式調整在場景中出現(xiàn)的人體周邊代價,其代價隨人體移動方式而變化,例如當人體靜止時,其周圍高斯代價分布為圓形;當人體朝某個方向運動時,人體運動方向上的高斯代價將會增加。社會活動導航層的設置使得移動機器人的運動過程能盡量避免影響場景中的人體活動。
本文中基于人工神經網(wǎng)絡的避障算法實現(xiàn)了場景中視覺信息的讀取,使用優(yōu)化后的基于DFANet 圖像語義分割算法得到人體分割掩碼,將其與單線激光雷達數(shù)據(jù)對齊獲得人體位置信息,在局部代價地圖中添加社會活動導航層,設置人體周圍的高斯代價,使移動機器人的運動盡量遠離人體的移動趨勢方向,最終實現(xiàn)了移動機器人在已擁有地圖信息情況下在場景中的避人避障運動,到達指定目標點。
由于本文使用的圖像分割方式是圖像語義分割而并不是實例分割,因此當場景中出現(xiàn)多個人體時,會將其標簽為同一類,在將掩碼與單線激光雷達的數(shù)據(jù)結合獲取人體位置與速度信息時,只能將圖像中連續(xù)的人體歸為同一個個體進行運動軌跡的預測,因此在嵌入式平臺的視覺傳感器獲取到的圖像中出現(xiàn)重疊人體時,機器人的避障軌跡并不能得到良好規(guī)劃。因此,本文后續(xù)將使用實例分割算法,使分割得到的人體能被標記成不同個體,從而更準確估計多人場景中的人體運動路徑,完成機器人在多人場景中的避障行駛。
隨著科技的不斷發(fā)展,人類生活中出現(xiàn)了越來越多且功能不同的機器人,并且機器人在人的活動場所出現(xiàn)得越來越頻繁,已影響到人類的正常工作和生活。為了使機器人在場所中的運動過程中盡量不對人產生干擾,需要對機器人的運動軌跡作出調整,使其不干擾人類的正?;顒印1疚氖褂眉す饫走_和基于神經網(wǎng)絡的圖像分割算法實現(xiàn)了機器人對人體的良好規(guī)避,具有廣泛的應用前景。
【相關鏈接】
浙江同濟科技職業(yè)學院(Zhejiang Tongji Vocational College of Science and Technology),簡稱同濟學院,位于浙江省杭州市,是一所由浙江省水利廳舉辦的公辦全日制普通高等院校,浙江省唯一一所水利類職業(yè)院校,2014 年入選全國水利教育示范院校,是全國水利高等職業(yè)教育示范院校、水利部首批水利行業(yè)高技能人才培養(yǎng)基地、全國文明單位。
浙江同濟科技職業(yè)學院前身是1959 年成立的浙江水電技工學校和1984 年成立的浙江水利職工中等專業(yè)學校。1996 年3 月,浙江水電技工學校和浙江水利職工中等專業(yè)學校聯(lián)合辦學。2007 年經浙江省人民政府批準正式更名為浙江同濟科技職業(yè)學院。