“暑期休閑隊(duì)”撰文分享其參賽體驗(yàn),包括如何使用華為云ModelArts和HiLens實(shí)現(xiàn)無人車的目標(biāo)檢測(cè),多源數(shù)據(jù)融合及行駛控制的能力等。

一 隊(duì)伍背景故事

1 “我們?yōu)槭裁磪⒓印?/p>

我們是來自電子科技大學(xué)自動(dòng)化工程學(xué)院以及計(jì)算機(jī)科學(xué)與工程的五名研究生新生,因?yàn)檠芯可芯糠较蚨酁槟J阶R(shí)別、機(jī)器人等領(lǐng)域,并且對(duì)人工智能技術(shù)非常感興趣,因此在今年七月份的時(shí)候自發(fā)組織報(bào)名參加了今年的華為云無人車挑戰(zhàn)賽。五位隊(duì)員都有較為豐富的科研競(jìng)賽經(jīng)歷,且都是華為的忠實(shí)粉絲,對(duì)于這次全新的比賽充滿了信心與熱情。

2 “我們遇到了哪些困難”

首先是因?yàn)榻衲晏厥獾囊咔樵?,我們五個(gè)人前期無法集合在一起進(jìn)行比賽項(xiàng)目的商討以及規(guī)劃,正式開始備賽是在九月初,因此我們的準(zhǔn)備時(shí)間只有大概十五天,但是在學(xué)校學(xué)院的支持下,我們可以有一個(gè)比較好的調(diào)試場(chǎng)地,從開學(xué)也是直接進(jìn)入高強(qiáng)度的開發(fā)工作中,在前往上海之前已經(jīng)把基本功能實(shí)現(xiàn)。

在半決賽和決賽的過程中,主要是小車巡線功能對(duì)光線環(huán)境有些敏感,在決賽比賽中時(shí)出現(xiàn)了跑出軌道的情況,不過我們隊(duì)伍負(fù)責(zé)巡線的隊(duì)員通過豐富的臨場(chǎng)調(diào)車經(jīng)驗(yàn),還是及時(shí)的解決了這個(gè)問題,最終也取得了不錯(cuò)的成績(jī)。

3 “我們的歡樂時(shí)光”

現(xiàn)在回想一下我們備賽的日子,最歡樂的時(shí)光就是五個(gè)人在校園里調(diào)車的日日夜夜,一起面對(duì)技術(shù)難點(diǎn),一起享受靈感實(shí)現(xiàn)的快樂,看著一臺(tái)小車從什么都不會(huì)到最后實(shí)現(xiàn)了各種各樣的功能。當(dāng)然,在決賽的時(shí)候,最終能取得季軍的成績(jī)也讓我們非常開心。

二 賽題介紹

小車需要在規(guī)定賽道上通過層層關(guān)卡,包括交通燈識(shí)別(出發(fā)&泊車)、彎道行駛、斑馬線行人識(shí)別、限速解限速識(shí)別、自動(dòng)泊車、競(jìng)速等。小車不僅僅要完成所有的賽點(diǎn),還要跑得快。而這里考驗(yàn)的是參賽者的綜合能力,包括車體結(jié)構(gòu)、底盤控制、傳感器、網(wǎng)絡(luò)通信、云端數(shù)據(jù)處理、人工智能等多學(xué)科的知識(shí),而難點(diǎn)在于將這些知識(shí)點(diǎn)融合貫通。參賽隊(duì)員需要結(jié)合華為云人工智能平臺(tái)(華為云ModelArts一站式AI開發(fā)與管理平臺(tái)、HiLens端云協(xié)同AI開發(fā)應(yīng)用平臺(tái))以及ROS操作系統(tǒng)對(duì)小車進(jìn)行開發(fā)。

三 整體解決方案:

此次無人車大賽中參賽車輛主要有三個(gè)傳感器:激光雷達(dá)和兩個(gè)攝像頭,分別是小車自身的攝像頭以及HiLens Kit上的攝像頭,而激光雷達(dá)+相機(jī)的多源數(shù)據(jù)融合解決方案正是無人駕駛領(lǐng)域最為主流的技術(shù)。我們隊(duì)伍對(duì)每個(gè)傳感器的作用進(jìn)行了總結(jié):

利用激光雷達(dá)進(jìn)行可通行區(qū)域檢測(cè)以及動(dòng)態(tài)避障,利用小車攝像頭進(jìn)行車道線檢測(cè)以及利用HiLens Kit進(jìn)行目標(biāo)檢測(cè)以及相應(yīng)的決策控制。

3.1 激光雷達(dá)通過獲取點(diǎn)云數(shù)據(jù)在小車行駛前方的有效扇區(qū)內(nèi)進(jìn)行障礙均值坐標(biāo)計(jì)算,給與有無障礙狀態(tài)實(shí)現(xiàn)近距應(yīng)急障礙檢測(cè),行人障礙檢測(cè),因此本車的一大亮點(diǎn)是當(dāng)在行駛過程任意狀態(tài)檢測(cè)到障礙物都可以進(jìn)行及時(shí)的剎車,在備賽過程中大大方便了我們的調(diào)試。

可行進(jìn)區(qū)域檢測(cè)通過對(duì)激光雷達(dá)對(duì)可行進(jìn)區(qū)域邊界進(jìn)行檢測(cè),獲得可行進(jìn)區(qū)域均值點(diǎn)。

圖片2.png
圖片3.png

再通過阿克曼地盤運(yùn)動(dòng)邊界確定前進(jìn)點(diǎn),并且獲得期望方向。

圖片4.png
圖片5.png

我們利用上面兩個(gè)技術(shù)完成了比賽中對(duì)于在人行道處對(duì)障礙物的檢測(cè)以及順利通過交叉路口兩個(gè)任務(wù)

3.2 利用小車車頭部分的攝像頭進(jìn)行車道線檢測(cè),檢測(cè)方案如下:

Step1 :使用高斯濾波,均值濾波,大津法對(duì)圖像進(jìn)行處理。

Step2:在圖像中逐行搜索邊界點(diǎn)。

Step3:濾除不合理邊界點(diǎn)。

Step4:使用最小二乘法對(duì)左右邊線進(jìn)行修復(fù)。

Step5:計(jì)算圖像中線。

Step6:使用最小二乘法對(duì)中線進(jìn)行修復(fù)。

Step7:使用PID計(jì)算轉(zhuǎn)角。

車道線檢測(cè)效果如下:

3.3再通過HiLens Kit進(jìn)行目標(biāo)檢測(cè), HiLens Kit是由華為云開發(fā)的多模態(tài)AI開發(fā)套件,使用的AI芯片是華為自研的Ascend 310芯片,具體16T的算力。同時(shí),開發(fā)者不僅可以使用設(shè)備自帶的攝像頭,還可以外接攝像頭,同時(shí)處理10-16路視頻分析。HiLens Kit檢測(cè)到各種目標(biāo)后,通過socket協(xié)議發(fā)送給ROS端,并在ROS端進(jìn)行一系列決策控制完成紅燈停、綠燈行、人行道停止、限速牌限速、解限速牌解限速以及黃燈泊車一系列操作。

3.4小車整體實(shí)行方案如圖:

1.png

ROS通信如圖:

四 華為云ModelArts平臺(tái)的使用

比賽需要利用ModelArts平臺(tái)進(jìn)行目標(biāo)檢測(cè)任務(wù),檢測(cè)包括紅綠黃燈檢測(cè)、限速解限速牌檢測(cè)、人行道檢測(cè)。

使用ModelArts平臺(tái)進(jìn)行模型搭建的流程包括:

數(shù)據(jù)獲取與增強(qiáng)、數(shù)據(jù)集準(zhǔn)備、模型選擇與訓(xùn)練、模型轉(zhuǎn)換

4.1數(shù)據(jù)獲取與增強(qiáng)

本次比賽除了官方提供的訓(xùn)練集外,在決賽階段我們還額外增加了在測(cè)試場(chǎng)地與比賽場(chǎng)地的訓(xùn)練集,訓(xùn)練集的獲取首先通過HiLens Kit攝像頭捕捉到行駛路段的視頻,保存到/tmp目錄下,再通過tcp從HiLens 傳到本地使用opencv間隔地從視頻中截取圖像作為我們的原始數(shù)據(jù)集。

此外,我們還利用了三種數(shù)據(jù)增強(qiáng)的方法,來解決數(shù)據(jù)量較少帶來的過擬合問題,分別是horizontal flip、cutout和mix up。

horizontal flip就是水平鏡像翻轉(zhuǎn),這個(gè)方法實(shí)現(xiàn)較為簡(jiǎn)單,但是鏡像翻轉(zhuǎn)使用時(shí)要注意只有當(dāng)一個(gè)圖像分布不具備視覺手性的時(shí)候,我們才能在不改變?cè)葓D像分布的前提下,使用鏡像翻轉(zhuǎn)來增強(qiáng)數(shù)據(jù)集,因?yàn)槿诵械?、預(yù)選賽的紅綠燈就不具備視覺手性,因此我們使用鏡像翻轉(zhuǎn)對(duì)這類圖像來進(jìn)行數(shù)據(jù)增強(qiáng),轉(zhuǎn)換效果如下:

Cutout和mixup是計(jì)算機(jī)視覺中常用的兩種數(shù)據(jù)增強(qiáng)方法,Cutout是將圖片的隨機(jī)區(qū)域填充噪聲,而mixup是一種運(yùn)用在計(jì)算機(jī)視覺中的對(duì)圖像進(jìn)行混類增強(qiáng)的算法,它可以將不同類之間的圖像進(jìn)行混合,從而擴(kuò)充訓(xùn)練數(shù)據(jù)集,增強(qiáng)效果如下:

4.2 數(shù)據(jù)集準(zhǔn)備

Step1 下載OBS Browser,配置OBS桶,將原始采集數(shù)據(jù)上傳至OBS桶內(nèi),并創(chuàng)建數(shù)據(jù)集。

對(duì)象存儲(chǔ)服務(wù)(Object Storage Service)是一款穩(wěn)定、安全、高效、易用的云存儲(chǔ)服務(wù),具備標(biāo)準(zhǔn)Restful API接口,可存儲(chǔ)任意數(shù)量和形式的非結(jié)構(gòu)化數(shù)據(jù)

對(duì)象存儲(chǔ)服務(wù)OBS配置說明文檔:https://support.huaweicloud.com/obs/index.html

OBS控制臺(tái)說明文檔:

https://support.huaweicloud.com/usermanual-obs/obs-usermanual-zh.pdf

再進(jìn)入ModelArts平臺(tái)的數(shù)據(jù)標(biāo)注模塊,創(chuàng)建數(shù)據(jù)集,選擇物體檢測(cè),添加標(biāo)簽集。

數(shù)據(jù)集創(chuàng)建參考:

https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0004.html

Step2 在ModelArts中進(jìn)行標(biāo)注

在“數(shù)據(jù)標(biāo)注”頁面單擊“未標(biāo)注”頁簽,此頁面展示所有未標(biāo)注的圖片數(shù)據(jù)。單擊任意一張圖片,進(jìn)入圖片標(biāo)注界面。用鼠標(biāo)框選圖片中的物體所在區(qū)域,然后在彈出的對(duì)話框中選擇標(biāo)簽顏色,輸入標(biāo)簽名稱,按“Enter”鍵完成此標(biāo)簽的添加。標(biāo)注完成后,左側(cè)圖片目錄中此圖片的狀態(tài)將顯示為“已標(biāo)注”。如下圖

ModelArts數(shù)據(jù)標(biāo)注說明:

https://support.huaweicloud.com/exemlug-modelarts/modelarts_21_0011.html

4.3模型選擇與訓(xùn)練

在ModelArts里選擇模型并創(chuàng)建訓(xùn)練任務(wù),我們選擇的模型是YOLO v3,YOLO是one stage的算法,相較于two stage的類似rcnn之類的模型的特點(diǎn)是速度快,這在無人車實(shí)時(shí)目標(biāo)檢測(cè)任務(wù)中非常重要。YOLO v3在v2基礎(chǔ)上增加了網(wǎng)絡(luò)復(fù)雜度,犧牲了少量速度來換取精度提升,且精度足夠滿足比賽需求。模型選擇之后等待訓(xùn)練任務(wù)完成。

訓(xùn)練完成后可以通過可視化觀察訓(xùn)練情況

4.4模型轉(zhuǎn)換

ModelArts訓(xùn)練得到理想模型后,需要在HiLens Studio里面完成模型轉(zhuǎn)化,生成昇騰芯片上可使用的模型(OM模型)(這一步也可以在HiLens Studio里進(jìn)行),參考:

ModelArts平臺(tái)模型轉(zhuǎn)換工具指南:

https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0107.html

HiLens Studio上模型轉(zhuǎn)換工具指南:

https://www.huaweicloud.com/ascend/doc/atlas200dk/1.32.0.0(beta)/zh/zh-cn_topic_0209921678.html

五 華為云端云協(xié)同AI開發(fā)平臺(tái)HiLens的使用

5.1 HiLens配置

使用HiLens Kit之前,需要開通HiLens服務(wù)。首先注冊(cè)華為云賬號(hào),并完成實(shí)名認(rèn)證,接著進(jìn)入控制臺(tái)選擇登錄HiLens管理控制臺(tái),完成HiLens的權(quán)限申請(qǐng)。 通過PC 與 HiLens Kit 組網(wǎng)后,通過web可以界面化地登錄到HiLens Kit 管理平臺(tái),進(jìn)行一鍵式操作鏈接無線網(wǎng)絡(luò)。

5.2 HiLens Studio的使用

HiLens控制臺(tái)中進(jìn)入HiLens Studio,首先需要新建一個(gè)project,在技能模板中我們可以選擇無人車比賽的模板技能,并基于此模板進(jìn)行修改,在project中我們主要有utils.py、socket_config.py以及main.py,其中utils.py用來對(duì)圖片進(jìn)行預(yù)處理、檢測(cè)框的標(biāo)注并輸出類別、標(biāo)注框坐標(biāo)信息等功能,socket_config.py主要將檢測(cè)結(jié)果編碼并構(gòu)建socket通信協(xié)議與ROS端進(jìn)行信息交互,main.py用來調(diào)用這些python文件并且調(diào)用訓(xùn)練好的模型。,main.py文件中我們利用多線程避免因?yàn)閟ocket通信造成的程序堵塞。

模型檢測(cè)實(shí)際比賽效果如下:

六 亮點(diǎn)

(1) 魯棒性好,我們的數(shù)據(jù)采集于多場(chǎng)景,因此在不同環(huán)境下檢測(cè)效果較為穩(wěn)定。

(2) 連續(xù)幀間檢測(cè)穩(wěn)定,我們針對(duì)每項(xiàng)分類單獨(dú)設(shè)置置信度閾值,防止一幀檢測(cè)到一幀檢測(cè)不到,并且在決策時(shí)保證嚴(yán)格的條件再進(jìn)行控制指令,避免因外界客觀因素造成的誤識(shí)別。

(3) 小車巡線能力強(qiáng),如下圖,在小車行駛在交叉路口的過程中,并沒有完整的車道線,但依然可以通過補(bǔ)線操作實(shí)現(xiàn)巡線,并且圖像處理速度快,因此我隊(duì)參賽車輛可以接近滿速跑完全程,也因此我隊(duì)在半決賽與決賽中均給裁判團(tuán)以及觀眾留下了極為深刻的印象。

(4) 多源數(shù)據(jù)融合提升決策效果,如以下兩個(gè)例子:

通過識(shí)別墻體,幫助雷達(dá)尋找可行區(qū)域

識(shí)別到人行道后,告知轉(zhuǎn)彎方向,(例如上圖,告知將要左轉(zhuǎn)),幫助小車巡線

七 ModelArts與HiLens聯(lián)合開發(fā)感想

在人工智能發(fā)展迅速的今天,如何將人工智能算法與多學(xué)科交叉并落地實(shí)現(xiàn)真正的智能時(shí)代成為廣大學(xué)者與研發(fā)者共同的目標(biāo)。華為云平臺(tái)開發(fā)的ModelArts與HiLens的聯(lián)合使用給予不論是人工智能初學(xué)者還是經(jīng)驗(yàn)豐富的工程師更為便捷高效的開發(fā)環(huán)境。本次比賽,這ModelArts與HiLens聯(lián)合使用的解決方案對(duì)比賽提供了非常高質(zhì)量的服務(wù)。其優(yōu)點(diǎn)如下:

(1) 數(shù)據(jù)操作包括數(shù)據(jù)上傳、數(shù)據(jù)標(biāo)注以及數(shù)據(jù)集的發(fā)布極為方便。

(2) 算法市場(chǎng)中華為云以及廣大開發(fā)者提供了針對(duì)各種任務(wù),包括但不限于圖像分類、目標(biāo)檢測(cè)、語義分割等任務(wù)的算法,使用者可以直接調(diào)參使用。

(3) ModelArts支持模型部署到多種生產(chǎn)環(huán)境,可部署為云端在線推理和批量推理,也可以直接部署到端和邊。

(4) ModelArts訓(xùn)練的模型可以通過模型轉(zhuǎn)化并協(xié)同HiLens開發(fā)相關(guān)技能,將技能直接部署到端側(cè)設(shè)備,實(shí)現(xiàn)算法落地。

(5) HiLens端側(cè)設(shè)備注冊(cè)后可在設(shè)備管理處進(jìn)行管理,包括查看、注銷設(shè)備,以及一鍵升級(jí)設(shè)備的固件版本等。

(6) HiLens提供大量的技能模板,開發(fā)者可以基于各種模板進(jìn)行集能開發(fā)與部署。

(7) 昇騰芯片加速使得模型推理更加迅速,使得時(shí)延更低。

參考文獻(xiàn):

DeVries, T.; Taylor, G. W. Improved Regularization of Convolutional Neural Networks with Cutout. arXiv:1708.04552 [cs] 2017.

Zhang, H.; Cisse, M.; Dauphin, Y. N.; Lopez-Paz, D. Mixup: Beyond Empirical Risk Minimization. arXiv:1710.09412 [cs, stat] 2018.

Lin, Z.; Sun, J.; Davis, A.; Snavely, N. Visual Chirality. 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) 2020, 12292–12300. https://doi.org/10.1109/CVPR42600.2020.01231.

Redmon, J.; Farhadi, A. YOLOv3: An Incremental Improvement. 2018.

Zheng, Z.; Wang, P.; Liu, W.; Li, J.; Ye, R.; Ren, D. Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression. arXiv:1911.08287 [cs] 2019.

Yamauchi, Brian. “Frontier-based exploration using multiple robots.” Proceedings of the second international conference on Autonomous agents. 1998.

Lopez Perez, Jose J., et al. “Distributed multirobot exploration based on scene partitioning and frontier selection.” Mathematical Problems in Engineering 2018 (2018).

分享到

songjy

相關(guān)推薦