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