張睿萍,寧 芊,2,雷印杰,陳炳才
(1.四川大學電子信息學院,四川 成都 610065;2.新疆師范大學物理與電子工程學院,新疆 烏魯木齊 830054;3.大連理工大學計算機科學與技術學院,遼寧 大連 116024)
近年來,隨著我國經濟水平的高速發展,人們的消費水平不斷提高,相應地,垃圾的大量產出、垃圾的隨意丟棄、垃圾的簡單堆放與處理,也導致很多問題產生[1]。比如破壞良好的生活環境,污染水源、土壤、空氣等環境,導致蚊蟲、細菌大量孳生,增加傳染病發生的概率等。實行垃圾分類,可以改善人們的生活環境,減少垃圾對環境的污染,從而有利于保障人們的健康、經濟的可持續發展。推行垃圾分類勢在必行,智能化的垃圾分類可以幫助人們有效地進行垃圾分類和回收利用,提高垃圾回收的效率[2]。
本文基于深度學習技術和圖像檢測技術,對生活垃圾的檢測與分類進行了研究,本文主要工作包括:(1) 針對垃圾分類的人工預處理難題,提高生活垃圾檢測的有效性和準確性,提出了改進的基于掩碼的區域卷積神經網絡Mask R-CNN(Mask Region-based Convolutional Neural Network)算法[3];(2) 為了解決垃圾圖像特征提取的難題,提出了基于ResNeXt101[4]的垃圾圖像特征提取方法;(3) 與傳統Faster R-CNN 算法[5]和YOLOv3算法[6]進行實驗對比,分析相關目標檢測算法應用于生活垃圾的檢測性能。
物體檢測作為計算機視覺中目標檢測的一個重要分支,許多的研究者以此為研究方向,應用了大量優秀算法和網絡模型結構,解決了目標識別[7]和圖像分類等[8]現實問題。相比于單純的目標識別或圖像分類,實例分割綜合了目標檢測和語義分割,更接近人眼對物體的觀察,更適用于垃圾檢測。2012年,AlexNet憑借卷積神經網絡CNN(Convolutional Neural Network)[9]結構摘得ImageNet視覺識別挑戰賽的桂冠。至此,基于滑動窗口或特征點匹配等的傳統方法被淘汰,開創了基于深度神經網絡的圖像檢測的新時代[10]。
近年來,隨著卷積神經網絡CNN的發展,物體分類和檢測方法也得到飛速發展。2014年,Girshick等[11]提出的基于區域的卷積神經網絡算法R-CNN(Regions with CNN features)[11],極大地提高了物體分類和檢測的精度。R-CNN首先產生候選窗口,進行特征提取后利用支持向量機完成分類,最后進行窗口回歸。然而,R-CNN算法檢測效率低下,且占用內存大。因此,快速區域卷積神經網絡Fast R-CNN(Fast Regions with CNN features)[12]應運而生。Fast R-CNN將圖像輸入網絡后,一方面對候選窗口進行映射,提高了物體檢測的速度,另一方面通過自適應池化對網絡進行優化來提升檢測的準確率。但由于Fast R-CNN對于候選框的特征提取采用的是選擇性搜索,導致其實時性不強。2016年,Ren等[5]提出了新的更快速的區域卷積神經網絡Faster R-CNN(Faster Regions with CNN features)。在結構上,Faster R-CNN將特征提取、邊框回歸和生成掩碼整合在一個網絡中,使得綜合性能有較大提高,在檢測速度方面尤為明顯。
經過R-CNN、Fast R-CNN和Faster R-CNN的積淀,基于掩碼的區域卷積神經網絡Mask R-CNN不僅能夠找到圖像中的目標物體,還能對其進行精確的分割。Mask R-CNN具有如下特點:(1)Faster R-CNN中每個候選框使用全卷積網絡FCN(Fully Convolutional Network)[13]進行語義分割。Mask R-CNN具有強大的語義分割分支,實現了掩碼和類別預測關系的解耦,掩碼分支只進行語義分割,類別預測的任務交給另一個分支。(2)引入了新的區域特征聚集方式RoIAlign代替Faster R-CNN中的RoIPooling,盡管對于邊框的影響不大,但極大地提升了掩碼的精度,使用RoIAlign后掩碼的精度從10%提高到了50%[5]。
基于眾多可應用于生活垃圾檢測的算法,Mask R-CNN超過了當時所有的端對端的網絡模型,實現了像素級別的檢測,可以精確識別出復雜物體的輪廓。本文的實際應用場景中包含僅具有局部特征的物體,不同形變的物體等,而Mask R-CNN相比較于其他算法具有更好的檢測效果。所以,選擇Mask R-CNN作為本文的算法。
語義分割和目標檢測是計算機視覺領域2個非常經典的應用。FCN是語義分割的代表性算法,Faster R-CNN是目標檢測的代表性算法。Mask R-CNN結合FCN和Faster R-CNN,使其兼備語義分割和目標檢測2個功能并提高了模型的精度。
本文將ResNeXt101作為特征提取網絡,利用Mask R-CNN提取全局和局部特征,并分析了Mask R-CNN應用于垃圾檢測任務的適用性和有效性。Mask R-CNN算法框架如圖 1所示,對預處理后的圖像進行特征提取,生成對應的特征圖(Feature Map),從特征圖中獲取的多個候選框感興趣區域ROI(Region of Interest)并經區域建議網絡RPN(Region Proposal Network)[5]進行二值分類和邊框回歸,對過濾掉的部分候選框進行RoIAlign操作,最后將多個候選框進行N分類、邊框回歸和掩碼生成。

Figure 1 Framework of Mask R-CNN algorithm圖1 Mask R-CNN算法框架圖
3.2.1 特征提取網絡
目前Mask R-CNN算法所采用的特征提取主干網絡為深度殘差網絡ResNet(deep Residual Network)[14]。盡管殘差學習解決了深度網絡的退化問題,但是由于ResNet使用了太多的超參數和計算過程,難以將其直接應用到新的數據集上。
本文以ResNeXt101作為主干網絡進行特征提取。ResNeXt利用ResNet規則的殘差塊,引入變量基數來控制分組的數量[4],即通過改變每個分支產生特征圖的通道數n(n>1),以達到2種不同卷積方式的平衡,并結合分組卷積壓縮模型參數,在不增加模型復雜度和參數數量的情況下提高了模型的性能。

Figure 2 Comparison of ResNet and ResNeXt infrastructures圖2 ResNet與ResNeXt基礎結構對比圖
相比于圖2a中傳統的ResNet結構,圖2b中的ResNeXt結合了ResNet和Inception[15]的優勢,引入分解-變換-合并的結構,每一個分組采用相同的拓撲結構,此時Inception表示如式(1)所示:
(1)
其中,x為輸入特征;C為Inception的基數(Cardinality);Ti(·)是任意變換,一般由連續的卷積組成。ResNeXt提出介于普通卷積和深度可分離卷積的策略,不需要確定ResNet中較多超參數和人工設計復雜的Inception結構細節,完整的ResNeXt表示如式(2)所示:
(2)
以ResNeXt101作為主干網絡進行特征提取避免了設置太多的超參數。ResNeXt101中每一組C個不同的分支可進行相同的簡單變換[16,17],本文采用分組數量為32、每一組的通道數為8的分組結構,其具體配置如表1所示。由表1中FLOPs項可知,ResNeXt101(32×8d)的計算力為16.54×109,與ResNet101(7.87×109)相比提升了2.1倍。
在卷積神經網絡中,經過多次卷積操作之后,獲取到的特征通常擁有較大的感受野[10],比較適合檢測大目標,檢測小目標的能力較差。因此,為了克服該困難,本文將ResNeXt模型與特征金字塔模型FPN(Feature Pyramid Network)[18]融合。FPN網絡模型合并了卷積過程中深層的強語義特征和低層的大量幾何信息,使其兼備強空間信息和語義信息,滿足更嚴格的檢測需求,在檢測時間幾乎不變的情況下可以提升檢測的精度。
FPN通過自底向上、自頂向下和橫向連接將各個層級的特征進行融合。自底向上是簡單的特征提取過程;自頂向下是從最高層開始進行上采樣。FPN使用最近鄰上采樣以減少訓練參數,減少計算量。如圖3所示,基于上述思想,為了保證多尺度信息的融合,FPN將從ResNeXt網絡自底向上生成的特征圖(Conv1~Conv5)輸出為尺寸不同但深度相同的4種特征圖(M2~M5),這些新的特征融合了ResNeXt中不同卷積層的結果,最終采用3×3的卷積核來消除不同層之間的混疊效應,并輸出一組新的用于預測物體邊緣、類別和掩碼的特征P2,P3,P4和P5。

Table 1 ResNeXt101(32×8d) configuration表1 ResNeXt101(32×8d)配置

Figure 3 Connection diagram of FPN and ResNeXt圖3 FPN與ResNeXt連接示意圖
3.2.2 訓練網絡
本文使用labelme圖像標注工具對每一幅待訓練圖像中的目標進行標注,以獲取圖像中目標的信息,包含每個目標的分類標簽、邊框和掩碼。
根據區域建議框和真實樣本的邊框重疊比例判斷樣本的正負。計算的區域建議框與真實樣本的IoU[19],當IoU大于0.5時為正樣本(即前景),當IoU小于0.5時為負樣本(即背景)。最后輸出目標候選框和對應的類別、邊框和掩碼。
訓練時,對輸入圖像通過卷積操作進行特征融合,如圖4b所示。FPN生成的各層特征圖輸入區域建議網絡。由RPN獲取類別、邊框和后續用于修正位置和大小的分類得分。此時生成的錨框數量巨大,會造成大量的重疊,導致同一目標具有多個檢測結果。為了節約資源,提高訓練效率,本文對RPN中每個錨框的前景得分進行排序和篩選,保存指定數量的得分較高的錨框,并進行非極大值抑制NMS(Non-Maximum Suppression)[20],對每個目標只保留一個最合適的錨框進行輸出。

Figure 4 Comparison of the improved Mask R-CNN with Mask R-CNN圖4 Mask R-CNN算法結構改進對比圖
利用篩選所得的錨框在特征圖中將相應區域池化為固定尺寸,以便進行后續的分類和邊框回歸操作。由于預選框的位置通常是由模型回歸得到的,一般為浮點數,RoIAlign采用雙線性內插法克服了原始的RoIPooling中取整和邊界量化操作帶來的區域不匹配問題,保證映射的特征圖大小與原始圖像對應區域的大小相同。
在訓練過程中,生成掩碼分支和分類分支是同時工作的,目標檢測層根據分類分支獲取到的多個候選框所預測的類別標簽來選擇輸出對應的掩碼。
損失函數的定義基于Mask R-CNN模型在生活垃圾檢測上應用的任務,即垃圾的檢測定位框、垃圾的分類和垃圾的分割,因此損失函數由定位損失、分類損失、區域建議網絡損失和分割損失4部分組成,其定義如式(3)所示:
L=Lbox+Lclc+Lmask+Lrpn
(3)
其中,Lbox為定位損失,Lclc為分類損失,Lmask為分割損失,Lrpn則為區域建議網絡損失。
(1)定位損失函數。
RPN輸出的特征圖中,每一個點經過卷積操作生成的錨框均對應一個前景分數和背景分數,以及每個錨框對應的坐標修正值。為了得到更加精確的錨框位置,本文采用SmoothL1Loss進行訓練,每一個檢測目標在候選區域中的定位損失函數的具體描述如式(4)所示:
(4)

(5)

(2)分類損失函數。
在RoIAlign 層之后,分類損失函數主要用于對提取的候選框的類別進行修正。候選框邊框修正針對非背景的候選框進行,對于類別標簽為背景的候選框,則不進行候選框邊框修正的參數訓練。對于分類器和候選框邊框修正的訓練,每一個檢測目標在候選區域中的分類損失函數的具體描述如式(6)所示:
(6)

(3)區域建議網絡損失函數。
在進行RPN訓練時,區域建議損失函數對128個隨機抽取的正樣本進行訓練。區域建議網絡損失定義如式(7)所示:
L({pi},{ti})=
(7)
其中,Lreg等同于式(4)中的Lbox;參數λ,Ncls,Nreg用于保證RPN在訓練過程中平衡分類與定位2種損失。
(4)分割損失函數。
分割損失函數Lmask對于每一個感興趣區域中的每一個類別,掩碼分支都定義一個K×m×m維度的輸出,表示K個不同的分類在m×m的區域上可生成一個掩碼。如果檢測得到感興趣區域屬于某一個分類,則將該類的相對熵誤差作為誤差值進行后續計算,使得網絡只需要區別在這個類當中的不同小類。最后可以通過與閾值0.5比較輸出二值掩碼,避免了類間的競爭。分割損失函數的具體描述如式(8)所示:
(1-yi)*log(1-sigmoid(xi))]
(8)
其中,1k表示當第k個通道對應目標的真實類別時為1,否則為0;yi表示當前位置的掩碼的標簽值;sigmoid(xi)表示當前位置的輸出值xi經過sigmoid函數變換后的結果。
3.2.3 預測模型
預測網絡與訓練網絡不同的是,訓練網絡的掩碼分支和分類分支是并行的,而預測模型是對輸入圖像進行分類后再進行掩碼預測。
預測網絡同樣以ResNeXt101為主干網絡,在經過一次特征融合后,FPN 生成的各層特征輸入RPN后對生成的每個錨框進行二分類,判斷其為前景或背景,并對其位置進行回歸。由于生成的錨框數量大,重疊部分多,因此需要通過建議區域進行篩選,選擇合適的錨框進行后續檢測:首先對RPN 中每個錨框的前景得分進行排序篩選,然后進行非極大值抑制。對篩選出來的錨框,先進行RoIAlign,映射成與原始圖像對應區域大小相同的特征圖,再對每一個感興趣區域進行分類、回歸和掩碼分割[21]。
3.3.1 數據集
目前,垃圾分類研究還沒有公共的數據集可用,為了對所提模型的有效性進行驗證,本文構建了自有數據集。在長達30天的時間內,觀察15位志愿者的生活垃圾情況,記錄和統計垃圾數量和類別,選取統計結果最高的5類生活垃圾相關信息作為本次實驗的垃圾檢測與分類標準,5個類別依次為:紙、塑料、紙板、玻璃和金屬。通過網絡采集獲取總數據集的90%,并自制10%的數據集作為補充。數據集中包含圖像2 000幅,尺寸為512×384,格式為JPG。
使用labelme圖像轉換工具對所有圖像進行人工標注并生成獨立的JSON結構體類型文件。依據COCO數據集的格式,將所有獨立的JSON文件合并為一個JSON文件,由images、categories和annotations共3部分組成,包含所有的圖像信息[22]。
由于實驗數據有限,如果將所有的數據都用于訓練模型將會導致模型過擬合。本文采用10折交叉驗證以有效地減小模型方差,提升有限數據下訓練和評估模型的能力。本文將2 000幅垃圾圖像分為10份,每次取其中9份組成訓練集,1份用作測試集,最終將循環后的所有評估結果取平均。
3.3.2 不同模型性能對比
本文實驗選取ResNeXt101作為特征提取網絡,學習率設置為0.000 1,對比了基于ResNet101進行特征提取主干網絡的Mask R-CNN在垃圾檢測應用上的不同表現。
為了量化實驗結果,本文采用均值平均精度mAP(mean Average Precision)[23]作為垃圾檢測性能的評價指標。為了能更好地對本文模型的性能進行評估,本文選取的生活垃圾圖像不僅包含完整目標的圖像(實驗1),也選取了具有局部特征和劇烈形變的生活垃圾圖像(實驗2)作為訓練和測試樣本。
實驗結果如表2所示,表2數據顯示:基于改進的Mask R-CNN算法的所有類別的平均分類精度高達91.1%。

Table 2 Classification accuracy of garbage categories from different perspectives
在光線良好的情況下,如表2中實驗1結果所示,完整而清晰的目標檢測效果最好,平均分類精度高達94.02%;在實驗2只具有局部特征的情況下,平均分類精度可達88.17%。由于玻璃和塑料在只有局部特征下大多形狀與顏色相似,容易將白色玻璃瓶分類為塑料,效果較差,但對于其他3類垃圾(紙、硬紙板和金屬),盡管拍攝物體在不同程度上發生形變,但分類效果依舊良好。表2結果說明本文算法可以出色地完成垃圾檢測任務。改進后的Mask R-CNN應用于生活垃圾多分類檢測的結果如圖5所示。從圖5中可以看出,對于多分類場景該模型依然可以取得很好的識別效果。

Figure 5 Detection results of domestic garbage multi-classification圖5 生活垃圾多分類檢測結果
本實驗使用ResNeXt,采用32×8d分組卷積結構作為特征提取主干網絡的Mask R-CNN,與傳統ResNet主干網絡相比,算法平均分類精度提升了2.35%,由原來的88.75%提升至91.10%。同時,本文實驗對比了其他目標檢測算法應用于生活垃圾檢測的效果,不同模型下的性能比較如表3所示。從表3可以看出,Faster R-CNN算法識別精度較低,為81.73%;YOLOv3算法盡管在時間上遠小于其他算法,但其檢測精度最低,僅為74.13%;基于改進Mask R-CNN的算法相較于傳統Faster R-CNN算法與YOLOv3算法,分類精度分別提升了9.37%和16.97%。這表明了本文所提模型在垃圾檢測任務中的可行性與有效性,尤其是檢測目標與背景邊界線較為模糊時,分類精度和分割精確度均表現優異。

Table 3 Performance comparison among different models
本文針對人工分揀垃圾效率低下的問題,提出了一種基于改進Mask R-CNN的算法。對比了ResNeXt101與ResNet對生活垃圾檢測模型性能的影響,選取經過優化的ResNeXt101模型進行特征提取,進一步提高了分類的準確性。實驗結果顯示,與傳統的Mask R-CNN模型相比,本文模型的mAP提升了2.35%;相較于傳統Faster R-CNN算法與YOLOv3算法,mAP分別提升了9.37%和16.97%。這表明了所提模型在垃圾檢測任務中的可行性與有效性。
本文模型仍存在一些需要進一步改進的問題,如檢測時間較長;在光線充足的情況下,對于圖像中特征相似的不同類別的目標分類結果較差,且實際垃圾分類中垃圾之間堆疊情況嚴重。在未來的工作中,將創建類別更豐富、規模更大的數據集進行訓練,以滿足實際應用場景的需求;對于嚴重遮擋的對象后續采用具有雙層卷積網絡的BCNet[24]實現遮擋物之間的解耦;探索并結合傳送帶和機械臂等硬件系統,創建一個完整可用的垃圾分類與分揀系統。