趙文超,王艷新,雍俊飛,曾自豪,趙春鋒
(上海工程技術大學工程實訓中心,上海 201620)
第七屆全國大學生工程能力綜合競賽中提出大力鼓勵使用AI 技術,組委會提出水下管道巡檢機器人競賽項目,水下機器人在巡檢時需識別三維物料形狀并進行分類,并根據物料形狀以不同顏色指示燈指示。若采用單片機采集圖像再尋找特征來判斷物料形狀的方法,由于運算量大,很難找出三維物料不同角度投影的特征,因此該方法不能用于解決此類問題。本文主要研究基于深度學習的方法來對不同物料分類,經過整體方案以及各類算法的研究,采用嵌入式樹莓派硬件系統,基于開源人工智能TensorFlow 深度學習框架,采用Python語言完成圖像采集處理、設計合理的卷積神經網絡,對附著在管道上的物料進行分類,對結果進行適當的邏輯判斷,分類準確率高達100%。
水下機器人的巡檢控制程序采用Python 語言開發,在樹莓派嵌入式微系統中運行,控制程序流程圖如圖1 所示。攝像頭通過USB 連接在樹莓派上,經過圖像采集后,通過管道圖像進行水下機器人的運行姿態控制,使其沿管道進行巡檢。

圖1 控制程序流程圖
另外,利用OpenCV 將輸入的RGB 圖像分割成不同通道的圖像,提取B 通道圖像,將超過設定閾值的小區域面積截取下來,再經過面積過濾,把整幅圖像中的物料區域抓取出來并進行高斯模糊處理,采用卷積神經網絡辨別物料形狀可信度,最后經過邏輯判斷輸出物料形狀。
將機器人置于水下沿管道進行巡檢,在水下從不同角度拍攝不同物料(截面形狀圓形和正方形)得到一系列圖片,使用TensorFlow 工具對圖片進行數據增強,并充分打亂,得到能夠滿足水下巡檢物料分類識別的圖像數據集,如圖2所示,以便用于訓練卷積神經網絡。

圖2 圓柱體和截面正方形的長方體圖像數據集
基于TensorFlow 深度學習框架,使用Ten?sorFlow的Keras包來搭建卷積神經網絡模型。卷積神經網絡模型包括卷積層、最大池化層、全連接層、丟失層、激活層與輸出層等設計與參數訓練。
水下機器人巡檢物料分類識別設計的深度學習神經網絡模型框架見表1。首先進行數據增強層的設計,使用插值、鏡像翻轉對數據集進行擴充;其次設計了反復3次卷積層和最大池化層,卷積層采用權重共享和局部感知的方法檢測輸入圖像的所有位置處的某些局部特征,提取原始數據的核心特征,實現輸入數據的降維,降低網絡模型的復雜度,提高計算速度。最大池化層在圖像上對應濾波器大小的區域,得到圖像區域的統計值,以此來提取物料圖像中的特征。之后的丟失層防止卷積神經網絡在訓練過程中出現過擬合現象發生;再使用鋪平層函數,將提取的特征鋪平,以便和全連接層相連;全連接層通過特征層提取物體的各個部分的不同特征,然后通過全連接層整合到一起,最后對應到輸出層。

表1 深度學習神經網絡模型框架表
選擇Adam 作為Optimizer 優化器,Sparse?CategoricalCrossentropy 為損失函數,訓練20 輪后把訓練模型保存為H5類型。
運行Tensorflow 代碼對卷積神經網絡訓練與驗證(Training and Validation)的模型進行評估,得到其訓練與驗證準確性曲線圖(Training and Validation Accuracy)和訓練與驗證損失曲線圖(Training and Validation Loss),如圖3 所示。在卷積神經網絡的前向傳播和反向傳播訓練過程中,高質量的數據集、強大的網絡模型、合理的訓練策略可得到較好的深度學習效果。水下機器人巡檢搭建的網絡模型訓練準確度(Train?ing Accuracy)在97.5% 以上,其驗證準確度(Validation Accuracy)比訓練準確度略高。
對于訓練與驗證損失曲線,訓練損失(Training Loss)與驗證損失(Validation Loss)需要呈收斂趨勢。如圖3 所示,模型在幾次訓練后,兩個損失曲線都開始收斂并且在20 輪訓練后均為收斂狀態,證明此訓練模型可作為實踐模型。可以看出,訓練損失還有改進的空間,此后將會增加模型的復雜度。此外,驗證損失也可嘗試通過使用數據增強,通過添加更多數據來提高通用性與普適性。

圖3 訓練與驗證準確性曲線圖(a)和損失曲線圖(b)
水下機器人巡檢控制與物料分類識別主控系統采用樹莓派,考慮到樹莓派處理速度,使用TensorFlow 轉換命令將H5 類型模型轉換為計算量小、正確率高且損失少的TFLite 模型。訓練模型轉換成TFLite模型的TensorFlow 轉換命令表示如下。

轉換完成后得到文件dec_model.tflite,樹莓派中模型運行還需要一個標簽文件(例如dec_la?bel.txt 文件),里面添加識別物料的標簽(rec cir),最終樹莓派系統進行物料分類識別。
在樹莓派上安裝好環境運行代碼,檢測管道上的物料效果如圖4 和圖5 所示。圖4 為截面正方形的長方體、正方體物料識別效果,圖5為圓柱體物料識別效果。圖4 與圖5 中,對原始圖像采用OpenCV 圖像處理函數,截取黑色物料部分,再將截取的黑色物料圖形放入已經訓練好的神經網絡進行預測,可以看出長方體和圓柱體都能正確地識別、輸出。

圖4 截面正方形的長方體物料識別效果

圖5 圓柱體物料識別效果
在第七屆全國大學生工程訓練綜合能力競賽水下管道巡檢機器人的競賽中,深度學習從了解到認識,從嘗試到數量使用,過程漫長艱辛但是收獲頗豐。本文根據水下機器人動態巡檢過程中變角度采集立體物料圖像分析物料形狀的競賽要求,采用深度學習卷積神經網絡的圖像分類方法替代OpenCV 復雜平面特征物料分析法,避免了大量形狀特征判據的尋找和存儲,物料分類識別效果明顯、正確率極高。這種分類方法在比賽中獲得成功,對于其他項目開發中的物料分類識別具有一定的借鑒意義。