李彥錫,周 洋,李靜峰,周琳習(xí),陳昌達(dá),范小蘭,趙春鋒
(上海工程技術(shù)大學(xué)工程訓(xùn)練中心,上海 201620)
第十七屆全國大學(xué)生智慧車競賽中,組織委員會積極地提倡使用AI 技術(shù),并設(shè)立了路面標(biāo)記辨識比賽方案,智能小車在巡檢時(shí)能夠準(zhǔn)確辨別三維物料形狀并將其分類,同時(shí)以各種色彩的指示燈進(jìn)行提示。若采用單片機(jī)采集圖像再尋找特征來判斷物料形狀的方法,運(yùn)算量大,且很難找出三維物料不同角度投影的特征,不能用于解決該類問題。本文提出了一種基于深度學(xué)習(xí)的方法來對不同物料進(jìn)行分類,采用嵌入式Edgeboard 系統(tǒng)和PaddlePaddle 深度學(xué)習(xí)框架,結(jié)合Python 語言完成圖像采集處理、設(shè)計(jì)合理的卷積神經(jīng)網(wǎng)絡(luò),對賽道交通標(biāo)識進(jìn)行識別分類,對結(jié)果進(jìn)行適當(dāng)?shù)倪壿嬇袛?,分類?zhǔn)確率高達(dá)100%[1-2]??刂瞥绦蛄鞒倘鐖D1所示。
圖1 控制程序流程
本文選用的EdgeBoard FZ9 屬于EdgeBoard高性能版本,計(jì)算性能高于CPU 計(jì)算卡50 倍,算力達(dá)3.6TOPS,針對大網(wǎng)絡(luò)模型表現(xiàn)優(yōu)異,硬件形態(tài)分為計(jì)算卡和計(jì)算盒。通過嵌入集成EdgeBoard FZ9 計(jì)算卡,可快速打造端側(cè)智能硬件。通過集成EdgeBoard FZ9 計(jì)算盒,可以快速實(shí)現(xiàn)邊緣化項(xiàng)目部署。
采用C 語言開發(fā)的Edgeboard 嵌入式微系統(tǒng)可以實(shí)現(xiàn)小車的控制,控制流程如圖1所示,攝像頭通過USB 連接到Edgeboard 上,經(jīng)過圖像采集后,可以根據(jù)賽道圖像實(shí)時(shí)調(diào)整小車的運(yùn)行姿態(tài),以確保它能夠在賽道中心穩(wěn)定行駛。
通過OpenCV,可以將輸入的圖像進(jìn)行分割,從而截取出超出預(yù)設(shè)閾值的小區(qū)域面積,并通過面積篩選,從中提取出賽道元素,采用卷積神經(jīng)網(wǎng)絡(luò)來評估物料類型的準(zhǔn)確性,最后通過邏輯判斷輸出最終的賽道元素。
1.3.1 卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)是一個(gè)復(fù)雜的神經(jīng)網(wǎng)絡(luò),它由注入層、卷積層、觸發(fā)函數(shù)、池化層、全連結(jié)層和損失函數(shù)構(gòu)成,它的功用是獲取特性并進(jìn)行決策判斷[3]。
通過比較分析選用MobileNetSSD 模型,其屬于輕量級的網(wǎng)絡(luò),具有深度可離散卷積,由depthwise 和pointwise 兩方面構(gòu)成,用來提取特征(Feature map)。與傳統(tǒng)的卷積運(yùn)算比較,這種方法的參量種類更少,運(yùn)算成本也更低。
通過逐通道卷積,一個(gè)卷積核只負(fù)責(zé)一個(gè)通道,而且每個(gè)通道的數(shù)量與輸入的通道數(shù)量相同。例如,對于一張5×5 像素、RGB 彩色輸入圖片,首先進(jìn)行第一次卷積運(yùn)算,然后在二維平面上進(jìn)行depthwise 計(jì)算,最終生成三個(gè)Feature map。如圖2所示。
圖2 三通道逐通道卷積示意
逐點(diǎn)卷積是一種非常有效的數(shù)學(xué)信息處理方式,其卷積核尺度為1×1×M,M表示上一級的通道數(shù),為了產(chǎn)生新的Feature map,它將上一次的map在深度方向上進(jìn)行權(quán)重整合,這種方式的優(yōu)勢在于它可以迅速地完成任務(wù)。如圖3所示。
圖3 逐點(diǎn)卷積示意
1.3.2 訓(xùn)練集的制作及使用
(1)訓(xùn)練集制作過程
選定好合適的分辨率后,使用攝像頭采集圖片,部分道路識別特征訓(xùn)練集如圖4所示。
圖4 道路識別部分訓(xùn)練集
再通過labelme進(jìn)行特征框選,如圖5所示。
圖5 特征框選
接著按照設(shè)定的格式進(jìn)行數(shù)據(jù)整理,最后進(jìn)行模型訓(xùn)練,將導(dǎo)出的模型放入Edgeboard 程序設(shè)計(jì)中,通過智能指針和OpenCV 實(shí)現(xiàn)特征可視化,如圖6所示。
圖6 OpenCV處理效果
(2)訓(xùn)練過程
訓(xùn)練中采用圖像增強(qiáng)和十倍交叉驗(yàn)證法。將所有數(shù)據(jù)分為10 份,然后將其中1 份作為驗(yàn)證集,其他作為訓(xùn)練集來進(jìn)行訓(xùn)練和驗(yàn)證。在這一過程中,保持超參數(shù)一致,然后取10 個(gè)模型的平均訓(xùn)練loss 和平均驗(yàn)證loss,來衡量超參數(shù)的好壞。最后取得一個(gè)滿意的超參數(shù)后,使用全部數(shù)據(jù)作為訓(xùn)練集,用該超參數(shù)訓(xùn)練獲得1個(gè)模型。
采用交叉檢驗(yàn),可以有效減小由于單次分析訓(xùn)練集和檢驗(yàn)集所帶來的偶然性,進(jìn)而利用已有數(shù)據(jù)集,避開因?yàn)樘囟ǚ治龆斐蔁o法實(shí)現(xiàn)泛化的超參數(shù)和模式。采用交叉驗(yàn)證技術(shù)可以有效地降低偶然性,進(jìn)而提升泛化能力,如圖7所示。
圖7 深度學(xué)習(xí)編程環(huán)境
將所訓(xùn)練結(jié)果部署到智能小車中,如圖8所示。
圖8 智能小車實(shí)拍
基于深度學(xué)習(xí)完成道路標(biāo)志識別與循跡,其中任務(wù)包括加油站圖標(biāo)識別、施工區(qū)圖標(biāo)識別、禁行區(qū)標(biāo)志識別、斑馬線識別等多種道路元素的識別與判斷,在比賽中獲得良好的運(yùn)行效果。深度學(xué)習(xí)模型的復(fù)雜程度直接影響道路識別精準(zhǔn)度,目前的深度學(xué)習(xí)算法,并不能完全覆蓋道路中會出現(xiàn)的所有情況,仍需進(jìn)行不斷的優(yōu)化和改良,對不同的道路情況進(jìn)行設(shè)計(jì),使其判定內(nèi)容具有普遍性[4]。