李彥錫,周 洋,李靜峰,周琳習,陳昌達,范小蘭,趙春鋒
(上海工程技術大學工程訓練中心,上海 201620)
第十七屆全國大學生智慧車競賽中,組織委員會積極地提倡使用AI 技術,并設立了路面標記辨識比賽方案,智能小車在巡檢時能夠準確辨別三維物料形狀并將其分類,同時以各種色彩的指示燈進行提示。若采用單片機采集圖像再尋找特征來判斷物料形狀的方法,運算量大,且很難找出三維物料不同角度投影的特征,不能用于解決該類問題。本文提出了一種基于深度學習的方法來對不同物料進行分類,采用嵌入式Edgeboard 系統和PaddlePaddle 深度學習框架,結合Python 語言完成圖像采集處理、設計合理的卷積神經網絡,對賽道交通標識進行識別分類,對結果進行適當的邏輯判斷,分類準確率高達100%[1-2]。控制程序流程如圖1所示。

圖1 控制程序流程
本文選用的EdgeBoard FZ9 屬于EdgeBoard高性能版本,計算性能高于CPU 計算卡50 倍,算力達3.6TOPS,針對大網絡模型表現優異,硬件形態分為計算卡和計算盒。通過嵌入集成EdgeBoard FZ9 計算卡,可快速打造端側智能硬件。通過集成EdgeBoard FZ9 計算盒,可以快速實現邊緣化項目部署。
采用C 語言開發的Edgeboard 嵌入式微系統可以實現小車的控制,控制流程如圖1所示,攝像頭通過USB 連接到Edgeboard 上,經過圖像采集后,可以根據賽道圖像實時調整小車的運行姿態,以確保它能夠在賽道中心穩定行駛。
通過OpenCV,可以將輸入的圖像進行分割,從而截取出超出預設閾值的小區域面積,并通過面積篩選,從中提取出賽道元素,采用卷積神經網絡來評估物料類型的準確性,最后通過邏輯判斷輸出最終的賽道元素。
1.3.1 卷積神經網絡
卷積神經網絡是一個復雜的神經網絡,它由注入層、卷積層、觸發函數、池化層、全連結層和損失函數構成,它的功用是獲取特性并進行決策判斷[3]。
通過比較分析選用MobileNetSSD 模型,其屬于輕量級的網絡,具有深度可離散卷積,由depthwise 和pointwise 兩方面構成,用來提取特征(Feature map)。與傳統的卷積運算比較,這種方法的參量種類更少,運算成本也更低。
通過逐通道卷積,一個卷積核只負責一個通道,而且每個通道的數量與輸入的通道數量相同。例如,對于一張5×5 像素、RGB 彩色輸入圖片,首先進行第一次卷積運算,然后在二維平面上進行depthwise 計算,最終生成三個Feature map。如圖2所示。

圖2 三通道逐通道卷積示意
逐點卷積是一種非常有效的數學信息處理方式,其卷積核尺度為1×1×M,M表示上一級的通道數,為了產生新的Feature map,它將上一次的map在深度方向上進行權重整合,這種方式的優勢在于它可以迅速地完成任務。如圖3所示。

圖3 逐點卷積示意
1.3.2 訓練集的制作及使用
(1)訓練集制作過程
選定好合適的分辨率后,使用攝像頭采集圖片,部分道路識別特征訓練集如圖4所示。

圖4 道路識別部分訓練集
再通過labelme進行特征框選,如圖5所示。

圖5 特征框選
接著按照設定的格式進行數據整理,最后進行模型訓練,將導出的模型放入Edgeboard 程序設計中,通過智能指針和OpenCV 實現特征可視化,如圖6所示。

圖6 OpenCV處理效果
(2)訓練過程
訓練中采用圖像增強和十倍交叉驗證法。將所有數據分為10 份,然后將其中1 份作為驗證集,其他作為訓練集來進行訓練和驗證。在這一過程中,保持超參數一致,然后取10 個模型的平均訓練loss 和平均驗證loss,來衡量超參數的好壞。最后取得一個滿意的超參數后,使用全部數據作為訓練集,用該超參數訓練獲得1個模型。
采用交叉檢驗,可以有效減小由于單次分析訓練集和檢驗集所帶來的偶然性,進而利用已有數據集,避開因為特定分析而造成無法實現泛化的超參數和模式。采用交叉驗證技術可以有效地降低偶然性,進而提升泛化能力,如圖7所示。

圖7 深度學習編程環境
將所訓練結果部署到智能小車中,如圖8所示。

圖8 智能小車實拍
基于深度學習完成道路標志識別與循跡,其中任務包括加油站圖標識別、施工區圖標識別、禁行區標志識別、斑馬線識別等多種道路元素的識別與判斷,在比賽中獲得良好的運行效果。深度學習模型的復雜程度直接影響道路識別精準度,目前的深度學習算法,并不能完全覆蓋道路中會出現的所有情況,仍需進行不斷的優化和改良,對不同的道路情況進行設計,使其判定內容具有普遍性[4]。