高強
(武夷學院機電工程學院 福建省武夷山市 354300)
無人清漂船在進行清漂作業(yè)時,因智能化和自動化程度不高,往往需要時時刻刻開啟清漂作業(yè)動作,無法對清漂垃圾進行有效定位和識別[1,2]。隨著機器視覺技術(shù)的不斷發(fā)展,視覺導航技術(shù)可有效應(yīng)用在清漂船中,該技術(shù)采用在清漂船中添加攝像系統(tǒng),可使清漂船獲取外界的有效特征來進行自主導航[3,4]。若采用視覺導航的清漂船可對作業(yè)對象,即河道中的主要垃圾,包括塑料瓶、購物塑料袋、團聚浮萍等進行有效定位和識別,則可大大提高清漂效率。但河道中的水面漂浮物,常常存在著目標物過小,容易出現(xiàn)目標物特征的定位和識別效率不高的現(xiàn)象,甚至是特征丟失,無法對目標進行定位和識別。因此對河道水面漂浮物的定位和識別展開研究,可大大提高無人清漂船的智能化,有著十分重要的應(yīng)用價值。
目前針對水面垃圾漂浮物定位識別的相關(guān)研究較少,主要使用的技術(shù)方法有:傳統(tǒng)目標特征提取和基于人工神經(jīng)網(wǎng)絡(luò)(CNN)的目標特征提取[5-7]。如牛培文[8]使用改進的背景差分方法,并結(jié)合HSV 顏色空間轉(zhuǎn)換和形態(tài)學對水面漂浮物進行分割提??;李森浩[9]通過建立改進的背景建模方法,得到水面區(qū)域的二值圖像,然后通過提取水面漂浮物的顏色特征、邊緣特征和區(qū)域特征來進行目標提取和分類。這些使用傳統(tǒng)目標特征提取技術(shù)的主要思路是依據(jù)目標的顏色、區(qū)域、紋理等特征進行定位分割,然后使用分類器進行識別,其主要缺點是模型的魯棒性較差,需要額外的人工處理數(shù)據(jù)才能得到良好的識別結(jié)果。使用人工神經(jīng)網(wǎng)絡(luò)提取目標特征技術(shù)則可以有效解決這些缺點。唐小敏[10]等針對無人機監(jiān)視河道的情況,提出SSD 深度學習網(wǎng)絡(luò),對漂浮物數(shù)據(jù)局進行訓練和檢測,得到較高精度的識別率;李國進[11]提出一種改進的人工神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)在對目標進行識別中,精確對漂浮物的像素點進行標記,可對各類漂浮物進行精確有效識別。
針對無人清漂船對水面漂浮物的定位和識別問題,本文采用改進的Faster R-CNN 算法,搭建深度學習網(wǎng)絡(luò)模型對自建河道中的水面漂浮物數(shù)據(jù)庫進行訓練和精確分類識別。實驗結(jié)果表明,該神經(jīng)網(wǎng)絡(luò)可對河道水面上漂浮的浮萍、常見塑料瓶和白色購物塑料袋進行定位,并做出有效識別,有效驗證本文搭建深度學習網(wǎng)絡(luò)模型的有效性。
Faster R-CNN 目標識別算法是在R-CNN(Regions with Convolutional Neural Network) 和Fast R-CNN(Fast Regions with Convolutional Neural Network)基礎(chǔ)上發(fā)展而來,F(xiàn)aster R-CNN 通過特征層的共享和區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network)來產(chǎn)生建議結(jié)果圖框的方式提高了目標特征識別效率,縮短了代碼運行時間。Faster R-CNN 的主要工作流程是原始圖像進入由卷積層組成的主干特征提取網(wǎng)絡(luò)中,并生成共享的特征圖(Feature Map);共享的特征圖隨后進入RPN 和池化層(ROI Pooling),在RPN 中,會得到特征候選區(qū)域;在池化層中,會依據(jù)特征圖和特征候選區(qū)域而統(tǒng)一為一個尺寸,并使之進入坐標回歸層;在坐標回歸層中,完成特征區(qū)域的調(diào)整和特征分類,并使之輸出結(jié)果。
表1:不同特征提取器下的實驗結(jié)果數(shù)據(jù)
表2:不同網(wǎng)絡(luò)組別的AP 值對比
一般而言,搭建好的Faster R-CNN 在進行數(shù)據(jù)訓練時,原始圖像的尺寸是固定的,這使得Faster R-CNN 輸出結(jié)果的魯棒性不是很好。本文在進行數(shù)據(jù)訓練時,原始圖像的尺寸大小設(shè)置為700×660、765×590、1205×920,圖片訓練數(shù)據(jù)選擇為隨機,提高輸出結(jié)果的魯棒性。
RPN 的主要作用是處理特征提取網(wǎng)絡(luò)的結(jié)果特征圖,其主要工作流程為:特征圖經(jīng)過3×3 的卷積核,得到特征向量;在上一步的卷積過程中,再進行1×1 的卷積,得到兩個全連接層,一個連接層為分類層(classification layer),用來給出預(yù)測目標的分類概率,另一個為回歸層(regression layer),用來給出預(yù)測目標特征候選區(qū)域的參數(shù),包括矩形框的中心點坐標、長度和寬度。這些參數(shù)非常重要,在Faster R-CNN 中,候選區(qū)域的尺寸主要以128×128、256×256、512×512,比例大小主要以0.5 倍、1 倍、2 倍而出現(xiàn),因此排列組合可以得到9 個候選區(qū)域。對于河道中常見的漂浮物,從清漂船中安裝的攝像設(shè)備角度來看,標準塑料瓶、垃圾袋的尺寸大小一般是固定的,且其為小目標區(qū)域,因此將候選區(qū)域尺寸中的512×512 刪除,并依據(jù)目標的外形特征,增加1:3 和3:1 的比例,最終形成10個候選區(qū)域。實驗證明,本文選取的候選區(qū)域參數(shù)可以很好的對漂浮物進行定位,從而提高了本文提出學習網(wǎng)絡(luò)的識別效率。
池化層的作用是將特征候選區(qū)域和特征圖結(jié)合起來,依據(jù)大小不一的原始圖像和特征圖對特征候選區(qū)域進行池化處理,使得特征候選區(qū)域的大小是同一固定的,池化層的出現(xiàn)使得原始圖像的尺寸可以是大小不一的,并大大減小了圖像在固定為大小一致時出現(xiàn)的信息缺失。最后經(jīng)過Softmax 函數(shù)來確定好分類,并依據(jù)SmoothL1 函數(shù)得到候選區(qū)域的確定位置。Softmax 函數(shù)和SmoothL1 函數(shù)的計算公式分別如下:
在公式(1)中,xi表示i 的輸出結(jié)果,N 表示i 的總個數(shù)。
在公式(2)中,x 指的是候選區(qū)域與輸出區(qū)域的減法運算結(jié)果。
為驗證本文搭建學習網(wǎng)絡(luò)對水面漂浮物的有效提取和識別,使用自建水面垃圾漂浮物數(shù)據(jù)庫進行神經(jīng)網(wǎng)絡(luò)的訓練和測試,數(shù)據(jù)庫中70%的數(shù)據(jù)用于訓練,30%的數(shù)據(jù)用于測試。實驗訓練和測試平臺選擇為2019 版本的MATLAB 軟件,運行硬件環(huán)境為Core i7-11700KFU(3.6GHz)、8G 內(nèi)存,操作系統(tǒng)為Windows10。
本文通過拍攝位于武夷學院校內(nèi)朱子研究院旁的河道中水面漂浮物來完成數(shù)據(jù)庫的制作。水面漂浮物包括水上浮萍、塑料瓶和白色塑料袋三種類型,基本涵蓋水面上的主要垃圾類型,拍攝時間均勻分布在10 點到17 點之間,且在不同的天氣狀況和日照情況下均有拍攝。數(shù)據(jù)庫中的漂浮物總體數(shù)量和類型保持穩(wěn)定。
本文在對數(shù)據(jù)庫中的圖像打標簽時,使用如下的標簽規(guī)則:
(1)當圖像中僅僅只有一個一種類型的目標時,使用一個矩形框?qū)⒛繕巳ζ饋恚?/p>
(2)當圖像中有多個一種類型的目標時,使用多個矩形框?qū)⒛繕朔謩e圈起來;
(3)當圖像中有多個不同類型的目標且目標不相互重疊時,使用多個矩形框分別將目標圈起來;
(4)當圖像中有多個不同類型的目標且目標相互重疊時,可以使用多個相互重疊矩形框?qū)⒛繕巳ζ饋怼υ紙D像進行打標簽時,本文使用MATLAB 軟件自帶的訓練圖標簽制作APP(Training Image Labeler),該APP 可為多種不同類型的目標對象制作特征興趣區(qū)域(ROI),并將圖像信息和ROI 導出為mat 文件。
制作好的數(shù)據(jù)庫中有原始圖像1700 張,每張圖像大小分別設(shè)置為700×660、765×590、1205×920,使用5389 個矩形框?qū)⒛繕藰俗⒊?。?shù)據(jù)庫中70%的數(shù)據(jù),即1190 張圖像用于訓練;30%的數(shù)據(jù),即510 張圖像用于測試。
在進行特征提取中,需要使用到特征提取器,主流的特征提取器有ResNet 和DenseNet。本文分別使用兩種主要的特征提取器對數(shù)據(jù)庫中的訓練圖集進行訓練,同時對測試圖集進行測試,結(jié)果使用平均準確度(Averrage Precision)[12],即AP 值來進行表示。AP 值的含義是特征分類與目標所在位置的評價結(jié)果,其計算方式的主要流程是:以準確度(Precision)為笛卡爾坐標系中的Y 軸,以召回度(Recall)為坐標系中的X 軸,根據(jù)這個值在坐標系中繪制曲線,曲線圍成的面積就是平均準確度,其計算公式如下:
在公式(3)中,P 表示準確度,TP 表示所有正結(jié)果的正輸出值,F(xiàn)P 表示所有負結(jié)果的正結(jié)果的輸出值。在公式(4)中,F(xiàn)N 表示所有正結(jié)果的負結(jié)果的輸出值。
實驗結(jié)果如圖1 中圖像所示。圖像a 為河道水面中浮萍、塑料瓶和塑料購物袋圖像的的輸出結(jié)果,圖像b 為多個浮萍和塑料購物袋圖像的輸出結(jié)果,圖像c 為多個塑料瓶圖像的輸出結(jié)果,圖像d為多個塑料瓶圖像的輸出結(jié)果。從輸出結(jié)果圖像來看,本文提出的改進算法可對單個目標、多個目標、多個重疊目標的特征進行精確的定位和識別,。
圖1:測試實驗結(jié)果圖像
同時,本次實驗得到的評價結(jié)果如表1 所示,對水面漂浮物中的浮萍、塑料瓶和塑料購物袋的識別結(jié)果使用AP 值來表示,同時給出處理時間,時間單位是ms,運行時間較少,符合自動清漂船的實時要求。為驗證本文針對水面漂浮物提出的深度學習網(wǎng)絡(luò),本文使用Faster R-CNN 算法進行實驗,對比ResNet 的特征提取器下的結(jié)果,得到表2。從表2 可知,對浮萍的AP 值,本文提出的改進算法比未改進提高了5.2%,塑料瓶的AP 值提高了1.3%,白色塑料袋的AP 值提高了2.3%,驗證了本文提出改進算法的有效性。
針對使用視覺導航的無人清漂船在進行清漂作業(yè)時,無法對水面漂浮物進行有效定位和識別的問題,本文對Faster R-CNN 算法進行改進,通過增加原始圖像的尺寸數(shù)量和優(yōu)化RPN 中候選區(qū)域類型的方法,搭建深度學習網(wǎng)絡(luò)模型,并使用自建數(shù)據(jù)庫對該模型進行訓練和測試實驗。實驗結(jié)果表明,該模型可有效對常見的水面漂浮物進行定位和識別,且其平均準確度較高,有較好的魯棒性,滿足視覺導航的實時性,本文提出的深度學習模型有效可行。