向 偉, 史晉芳, 劉桂華, 徐 鋒, 黃占鰲
(1.西南科技大學 制造科學與工程學院,四川 綿陽 621010; 2.西南科技大學 制造過程測試技術省部共建教育部重點實驗室,四川 綿陽 621010; 3.西南科技大學 特殊環境機器人技術四川省重點實驗室,四川 綿陽 621010)
水面生活垃圾自動清理船體積小,工作機動靈活效率高。水面垃圾有效識別是水面垃圾自動清理船清理水面垃圾的第一步。目前針對水面垃圾識別的相關研究并不多。王斌和葉曉杰人等采用基于紅外圖像的檢測方法來識別水面物體[1,2],但受到水面環境復雜多變和水面目標眾多的干擾,導致識別率低下。李昀峰等人采用目標顯著性區域提取技術的檢測方法來識別水面物體[3,4],但目標顯著性區域提取技術容易受到水面物倒影和波紋的干擾,導致識別受到影響。薛萍采用超像素識別率分割方法對水面物體進行分割識別[5],但會受水面波紋影響。方晶等人采用視覺注意機制的目標檢測方法來識別水面目標[6],但水面氣候復雜、目標眾多會影響識別精度。魏建榮采用基于紋理特征的水面目標檢測方法[7],該方法易受水面建筑物和岸體輪廓的干擾,影響水面垃圾識別。
深度學習具有深層神經網絡,深層神經網絡擁有多個隱藏層的人工神經網絡具有非常強大的特征學習能力,通過訓練模型提取的特征對原始輸入數據形成了更高效的特征提取[8~10]。卷積神經網絡是深度學習中的一種較為成功的模型,在圖像分類和圖像識別領域較為突出[11~13],所以將深度學習卷積神經網絡方法運用來識別水面垃圾。
本文采用改進的CaffeNet網絡能減少水面復雜環境對垃圾識別的干擾,提高了水面垃圾的識別率。
CaffeNet第一層輸入數據大小為227×227×3,卷積核大小為11×11,卷積核數量(num_output)為96,步長(stride)為4,卷積后數據大小為55×55×96,經過relu1后數據大小不改變。接著進行池化,pool1核大小為3×3,步長(stride)為2,pool1后數據大小為27×27×96,接著進行大小為5×5的歸一化處理。
CaffeNet第二層輸入數據大小為27×27×96,圖像邊緣擴充層數(pad)為2,卷積核大小為5×5,步長(stride)為1,卷積核數量(num_output)為256卷積后數據大小為27×27×256,經過relu2后數據大小不改變,接著進行池化,pool 2核大小為3×3,步長(stride)為2,pool2后數據大小為13×13×256,接著進行歸一化處理,歸一化運算的尺度為5×5[16]。
CaffeNet第3、第4層只進行了Conv和ReLU。第五層使用了卷積、ReLU、池化操作。在得到第5層的結果后,將結果變成一個長向量,輸入到傳統的神經網絡中,最后3層使用全連接的網絡結構。
1)CaffeNet模型的卷積核較大,用來識別水面倒影效果較差,為了提取到更精確的水面特征,需要縮小卷積核的大小,減小水面波紋和物體倒影的影響。把第1層卷積核的大小進行調整實驗,當卷積核大小為9×9時對水面物體倒影的識別情況最好,把第1層的卷積核大小改為9×9。
2)CaffeNet模型第3層和第4層的特征提取能力和分類效果比前面兩層好[17],第3層和第4層的卷積核個數為384,把第3層和第4層的卷積核個數增加到398,以增強模型的特征提取能力。
3)CaffeNet第4層的分類效果要強于前面各層[18],在第3層與第4層之間增加一層稀疏結構Inception module,使其增加網絡的寬度和深度,從而提升該深度卷積網絡模型性能。
稀疏結構如圖1所示。

圖1 稀疏結構
在3×3,5×5卷積操作之前使用1×1卷積核,有降維和增強網絡的特征提取能力的作用。接下來進行卷積特征提取,Inception module中1×1卷積核,3×3卷積核,5×5卷積核,能將多尺度特征集合在一起,讓后一層網絡能同時提取不同尺寸下的特征,增強網絡特征提取能力。
實驗的深度神經網絡搭建在caffe深度學習框架上,運用Python語言編程實現,工作站為戴爾T7810工作站,內存為16 G,顯卡為MT4000,雙核cpu12核心,3.4 G主頻。自動清理船內部有GPS導航設備,船體前方頂部安裝一部高度為1 m的???00萬像素監控攝像頭,鏡頭可以小幅轉動,攝像機采集到水面垃圾圖像后將圖像傳到工作站進行實時處理。
水面垃圾自動清理船圖像采集地點在大型湖泊上,晴天和陰天湖面狀態有較大差異,需要采集到晴天和陰天不同時刻大量的水面垃圾樣本。
為了提高水面垃圾識別的準確率,需要增加樣本量和樣本種類。本實驗中采集了大量垃圾樣本以及對垃圾識別影響比較大的非垃圾樣本。水面漂浮的玻璃瓶子由于陽光照射產生和波紋相似的反光,會對水面垃圾識別造成干擾,所以將垃圾樣本分為水面玻璃瓶子垃圾和生活垃圾。由于水面環境復雜,水面橋梁、水面物體倒影和水面波紋變化等均可能被識別為垃圾,所以將這些復雜環境樣本做為非垃圾樣本進行學習和訓練。
在圖像的深度學習中,為了豐富圖像訓練集,更好地提取圖像特征,泛化模型(防止模型過擬合),將樣本圖像進行數據增強,常用的方式:旋轉圖像、剪切圖像、改變圖像色差、扭曲圖像特征、改變圖像尺寸大小和增強圖像噪音[19]。
收集到各類樣本各1 500張,然后進行數據增強,把每種類型的圖片通過隨機翻轉、顏色抖動等方式進行處理,把樣本大小統一為256×256。樣本增強后,把總圖片按照4︰1方式進行分配,得到的5組樣本分別是水面橋梁、水面瓶子、水面垃圾、水面物體倒影和水面波紋,每種類型樣本用1 200張作為訓練,300張作為測試。
設計實驗將CaffeNet網絡與改進CaffeNet網絡進行對比,均在caffe框架中訓練5 000次,基礎學習率均為0.01,動量系數為0.9,CaffeNet網絡與改進CaffeNet網絡測試的準確率和實驗損失函數變化情況如圖2所示。

圖2 準確率和損失函數變化曲線
從圖2(a)可知,三角型線條為CaffeNet網絡的正確率變化曲線,圓點線條為改進后CaffeNet網絡的正確率變化曲線。隨著迭代次數的增加,準確率逐漸上升,CaffeNet網絡和改進CaffeNet網絡均3 000次左右收斂,CaffeNet網絡測試集準確率為89.29 %,改進CaffeNet網絡測試集識別率為95.75 %。
圖2(b)是網絡訓練時損失函數(Loss function)輸出值(loss值)的變化圖,可以看出隨著訓練次數的增多,loss值逐步降低,當訓練次數達到3 000次時,CaffeNet網絡和改進CaffeNet網絡均趨于穩定。
使用修改后的模型對測試集進行測試得到新識別率,同原模型識別率對比如表1所示。

表1 CaffeNet改進前后識別率對比 %
從測試結果中可以看出,增加稀疏結構的模型在識別水面橋梁、瓶子、垃圾、物體倒影和波紋上均得到提升,改進后的模型對倒影的識別率有較大的提升,下面分別用改進前后的CaffeNet模型隨機對水面5種樣本進行識別測試,測試結果對比如圖3(a)和(b)所示。

圖3 CaffeNet改進前后識別率對比
在圖3中,從左到右分別為模型改進前與改進后對水面橋梁、玻璃瓶子、生活垃圾、物體倒影和波紋的識別情況。模型改進前的測試結果顯示,圖(a)中第1幅識別為水面橋梁的概率是93.87 %,第2幅識別為水面玻璃瓶子的概率是97.76 %,第3幅圖識別為水面生活垃圾的概率是96.68 %,第5幅圖識別為水面波紋的概率是96.61 %,這幾種水面復雜情況圖識別都正確。第4幅圖識別錯誤,將倒影識別為垃圾和倒影本身的概率分別為48.96 %和43.96 %,這種錯誤識別將對識別造成干擾。
改進后測試結果顯示,第1幅圖是識別為水面橋梁的概率是98.91 %,第2幅圖識別為水面玻璃瓶子的概率是99.93 %,第3幅圖識別為水面生活垃圾的概率是99.89 %,第4幅圖識別為水面物體倒影的概率是96.23 %,第5幅圖識別為水面波紋的概率是99.93 %,識別都正確。
對水面瓶子、水面垃圾、水面倒影、水面波紋和水面橋梁這5種較為復雜的水面情況進行識別,總識別率達到了95.75%,實驗結果證明了運用深度卷積網絡在水面垃圾識別上有較好的效果,能夠解決實際應用需求,具有很好的應用前景。