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

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

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

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

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

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

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

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