馬 雯,于 炯,,王 瀟,陳嘉穎
(1.新疆大學 軟件學院,烏魯木齊 830008;2.新疆大學 信息科學與工程學院,烏魯木齊 830046)
隨著我國經濟的高速發展,城市規模逐漸擴大,城鎮人口的日益增多,使得城市生活垃圾的產量迅猛增長[1]。針對目前的城市垃圾,加大治理力度,對垃圾進行無害化、資源化處理是當前急需解決的問題。垃圾的回收利用在現代社會中占有重要地位,對垃圾進行有效分類是處理垃圾回收問題的前提[2]。目前,面對人工分揀垃圾環境差、回收任務繁重且分揀效率低等問題,研究人員提出垃圾識別與分揀實現智能化和自動化。利用深度學習技術不但可以降低人工成本,節約人力資源,進一步提高有限資源的重復利用率,有助于加速實現生態文明建設的目標[3]。
本文提出一種基于改進Faster R-CNN 的垃圾檢測與分類方法。利用改進的Faster R-CNN 算法處理垃圾分類問題,克服垃圾分類的人工預處理難題。使用經過預訓練的Faster R-CNN 算法對物體進行檢測,通過網絡在圖像的單個前向傳輸中提取全局和局部尺度的卷積特征。研究VGG16[4]網絡架構與ResNet50[5]架構對于垃圾分類算法性能的影響,從而選擇效果更好的網絡完成垃圾分類。
物體檢測是一項計算機視覺任務,吸引了許多研究者的關注。2012 年提出的Alexnet 是一種卷積神經網絡架構,該架構曾獲得ImageNet 挑戰賽的冠軍[6]。該競賽中使用的架構具有結構簡單與性能極高的特征。目前,深度學習已成為最受關注的研究主題,并且涌現了出色的神經網絡算法[7],例如VGG、Xception、ResNet 等。GIRSHICK 提出的R-CNN[8]算法將卷積神經網絡用于目標檢測,它通過使用深度卷積網絡完成了圖像的特征提取。HE等[9]提出一種SPP-NET 方法,去掉了原始圖像上的crop/warp操作,并將其替換成在卷積特征上的空間金字塔池化層(Spatial Syramid Sooling,SPP)。OverFeat R-CNN[10]為使用CNN 的所有提案制定了ConvNet[11]功能,并且通過SVM 對每個區域進行分類[12]。R-CNN在空間和時間上的訓練成本較高,對于非常深的網絡,需要較大的硬盤空間來存儲信息,在GPU 上使用VGG16 檢測一個圖像需要47 s。
為克服R-CNN 的耗時問題,Fast R-CNN[13]算法提出在對象提案中特征共享,感興趣區域(RoI)池化層旨在獲得同樣長度的特征向量作為結果,每個圖像僅提取一次特征。此外,由于SVM 過程被刪除,所有功能都臨時存儲在內存中,沒有占用額外的磁盤空間。在相同的硬件平臺上,Fast R-CNN 僅需0.3 s 即可完成圖像檢測。但是,R-CNN 和Fast R-CNN都存在相似的缺陷,即它們在訓練階段之外還需提取建議并依賴于外部區域建議。因此,它們不是完全的端到端物體檢測系統。為了解決這個問題,REN 等[14]提出一種區域提議網絡(RPN),該網絡可以直接連接到Fast R-CNN 網絡的最后一個卷積層,以得到對應的檢測對象框和分數信息,該網絡被稱作為Faster R-CNN。區域提議網絡是一個全卷積網絡(FCN),其主旨是生成更高質量的區域提議。每個提議都有一個對應的信心得分,同時它也可以預測每個坐標位置的對象邊界及其分數。為了生成圖像的區域提議,小網絡在頂部轉換層所輸出的卷積特征圖上滑動,通過使用不同尺度的錨,使得Faster R-CNN 的檢測效果針對變形圖像的表現比Fast R-CNN 的表現更加穩健。因為它與CNN 共享全圖卷積特征,所以可以大幅減少計算時間。使用VGG16 模型,檢測圖像中的所有區域提議僅需0.2 s。由此可見,Faster R-CNN 是從訓練到檢測過程中真正的端到端網絡。
在通常情況下,Fast R-CNN 的VGG16 模型或Zeiler 和Fergus 模型(ZF)[15]預先訓練都有特定的圖像數據集和相應的注釋,例如Microsoft COCO 數據集[16]和Pascal VOC[17]。
由于關于垃圾分類研究未曾發現公開數據集,因此本文研究使用的數據由網絡采集和相機拍攝的方式獲得。網絡采集占總數據集的20%,其余80%均由索尼單反相機拍攝所得,保證了圖像質量和清晰度。數據集中圖片總共5 000 張,其中包括卡紙、玻璃、紙、塑料、金屬等。圖片尺寸為1 891×1 263,格式為JPG 格式,為保證類別標簽的可靠性[18],所有的垃圾類別都預先經過了人工識別。
利用LabelImage軟件對所有的圖片進行人工標注,將數據集制作成Pascal_voc 數據格式,同時對樣本圖片重新進行命名排序,根據產生的XML 格式文件編寫相應的代碼使其生成訓練集、驗證集和測試集。
1)訓練集
訓練集是指在模型訓練的過程中使用的數據圖像[19]。訓練集起到對初始模型擬合與參數優化的作用,本文采用了五折交叉驗證的方法來測試該優化算法的精確度。將5 000 張垃圾圖片作為模型的輸入,并平均分成6 個等份,然后輪流將其中5 份作為垃圾檢測訓練數據集,剩余的1 份作為測試數據集用來對模型進行測試(見圖1)。每次的模型訓練與測試實驗都會得出相應的正確率,最終將5 次的正確率結果進行平均值計算得出該目標檢測算法精確度的估計。因此,實際使用的訓練集占總數據集的4/5。

圖1 數據集劃分Fig.1 Division of datasets
2)驗證集
驗證集是指在每個Epoch 完成之后檢驗模型的狀態以及收斂情況[20],它并沒有參與梯度下降的過程而僅僅是調整迭代次數和學習率等超參數,所以并不參與學習參數的確定。驗證集根據5 組模型的表現決定哪一組的超參數擁有最好的性能并將其采納。與此同時,驗證集在訓練的過程中還可以用來監控模型是否發生過擬合從而判斷訓練停止的時間。如圖1 所示,在訓練數據集中隨機抽取1 份做驗證集,剩余4 份做訓練集,記錄精確度。依次循環直到每份都做過1 次驗證集,交叉驗證的過程就此結束。算得5 次精確度的均值后,留下精確度最高的模型,并以該模型的超參數定為最終模型的超參數。
3)測試集
測試集是指在完成訓練得出最優模型之后對模型進行測試的數據集。本文測試集共有833 張圖片,通過測試確定該模型檢測與分類的精確度,進一步驗證其泛化能力,確保該模型在日后實際應用時的正確性和有效性[21]。
本文探討了將對象檢測CNN 的特征用于垃圾分類任務的適用性。選擇Faster R-CNN 作為實驗訓練模型,并將其用作全局和局部尺度的特征提取。如圖2 所示,Faster R-CNN 算法利用卷積神經網絡來提取輸入的垃圾圖像特征圖,通過共享卷積層將該特征圖分別送入Faster R-CNN 網絡和區域提議網絡中。一方面將特征圖輸入區域提議網絡使其經過滑動窗口來產生特征向量,并且將其連接到網絡后部的全連接層,然后再將其進行分類和回歸生成區域建議;另一方面通過卷積神經網絡提取特征圖,將區域建議和特征圖一并送入感興趣區域池化(ROI Pooling)使其固定成特定的尺寸,接下來通過所定義的2 個損失函數對其進行分類和回歸,生成預測坐標值從而得到目標檢測框。

圖2 Faster R-CNN 算法框架Fig.2 Framework of Faster R-CNN algorithm
如圖3 所示,本文所提出的訓練策略是首先利用ImageNet初始化模型使其獨立地利用垃圾數據集訓練一個區域提議網絡(RPN)。其次運用ImageNet模型初始化該模型,同時將區域提議的訓練結果作為輸入用來訓練Faster R-CNN網絡,至此,設置RPN網絡和Faster R-CNN 網絡每一層的參數完全不共享。然后將其所得的網絡參數初始化成一個新的區域提議網絡(RPN2),設置Learning Rate 參數為0 來限制共享卷積層不再更新,只更新區域提議網絡中特有的網絡層,再次訓練模型。此時,設置2 個網絡共享所有公共卷積層并將其固定。最后將Faster R-CNN 特有的網絡加入進來,從而形成獨立的統一網絡。

圖3 Faster R-CNN 訓練策略Fig.3 Training strategy of Faster R-CNN
區域建議網絡作為該算法的核心部分是用一個全卷積網絡來實現的,其具體結構如圖4 所示。在區域提議網絡結構中,滑動窗口對垃圾圖像特征圖進行卷積操作產生n維特征向量,產生的特征向量分別輸入到回歸層和分類層。滑動窗口滑動一次會預測出k個區域建議,其中回歸層需要預測出包圍框的寬、高和中心坐標,因此回歸層需要輸出4k個坐標,分別包括Proposal 的寬W、高H、中心點坐標(X,Y)4 個參數。分類層則需要辨別建議框是前景還是背景的概率,總共預測2k得分,其中分類結果包括前景和背景[22]。

圖4 區域建議網絡結構Fig.4 Structure of region proposal network
Faster R-CNN 的區域建議網絡RPN 是采用多任務進行學習,圖像中垃圾的位置定位任務和垃圾種類鑒定任務同時進行。RPN 網絡在訓練的過程中將會給每個標簽分配一個二值標簽,其中正值標簽會分配給IoU 值最大的框以及與任意真實目標區域框相比大于0.7 的IoU 候選框,負值標簽將會分配給小于0.3 的IoU 候選框。其中垃圾圖像的損失函數定義如式(1)和式(2)所示:

其中:i表示垃圾圖片處理中的第i個檢測候選框的索引;Pi定義為第i個候選框會是預測目標的概率,若i為候選目標檢測框,則Pi*標簽為1,否則標簽為0;ti={tx,ty,tw,th}是一個坐標向量,用來表示預測候選框的坐標;ti*是真實目標框的坐標向量,其向量定義如式(3)和式(4)所示:

其中:(x,y)為預測框的中心點坐標;(xa,ya)為候選檢測框的中心點坐標;(x*,y*)為真實目標框的中心點坐標;w和h分別為預測框的寬和高。該算法致力于找到一種函數映射關系,將原始預測框映射到真實檢測框,使得其檢測效果更加接近真實框的回歸框。
垃圾圖像分類的損失函數定義如式(5)所示:

垃圾圖像回歸的損失函數定義如式(6)所示:

其中:R是式(7)所定義的具有魯棒性的損失函數。

本文將區域提議網絡分為2 個分支,圖5 表明上面的網絡分支通過錨獲得前景和背景(實際應用過程中默認目標為前景)。下面的網絡分支用于計算對于錨邊界框回歸的偏移量,以獲得精確的目標候選區。最后的Proposal 層綜合前景錨點和邊界框回歸偏移量來最終確定目標的候選區域,同時剔除尺寸較小和超出邊界的目標區域[23]。至此,即可得到區域提議網絡對于垃圾數據集中的目標定位。

圖5 區域提議網絡結構Fig.5 Structure of regional proposal network
網絡模型設計包括以下2 個部分:
1)網絡結構
本文基于現有Faster R-CNN 目標檢測模型進行算法改進,針對目標垃圾體積較小、圖像分辨率較低等特點,用更深的網絡且更小的運算量ResNet50 模型代替該算法原始的VGG16 網絡來提取更豐富的特征。本文所提出的VGG16 模型在優化之后使用了3 個3×3 卷積核來代替原始的7×7 卷積核,同時使用2 個3×3 卷積核來代替5×5 卷積核,其原理基于多個非線性層增加網絡深度,保證學習更復雜的模型,而且代價較小,參數較少,并且在一定程度上提升了垃圾檢測與分類的實驗效果。如圖6 所示,VGG16 有16 個隱藏層,其中包括13 個卷積層和3 個全連接層。

圖6 VGG16 網絡架構Fig.6 Architecture of VGG16 network
本文提出運用殘差模塊來訓練更深層的網絡架構,主要使用3×3 卷積,其內部的殘差塊使用跳躍連接通道,緩解了在VGG16 網絡中增加深度帶來的梯度消失問題。如圖7 所示為殘差網絡模型,其中:X為輸入;F(x)是殘差映射;ReLu 為該算法的激活函數。為減少訓練誤差,本文提出使用ResNet 的深度為50 層,相較于VGG16 有著層數更深、參數更少、檢測精度更高的特征。

圖7 ResNet 殘差塊結構Fig.7 Structure of ResNet residual block
2)Soft-NMS 算法
非極大值抑制算法是對象檢測中的基本問題,該原理是基于物體檢測分數產生檢測框,其中分數最高的檢測框會被選中,與被選中檢測框有明顯重疊的檢測框將會被抑制,該過程會被不斷遞歸應用于其余的目標檢測框。根據該算法的設計,如果該檢測目標處于算法預設的重疊閾值之內,可能會導致最終結果檢測不到該物體。因此,BODLA 等[24]提出了Soft-NMS 算法,該連續函數算法對非最大檢測框的檢測分數進行衰減而非像傳統NMS 算法一樣將其徹底移除。同時,Soft-NMS 也是一種貪心算法,因此并不能保證找到全局最優的檢測框。但是,該算法是一種更加通用的非最大值抑制算法,傳統的非極大值抑制算法可以看為是它的一個采用不連續二值權重函數的特例[25],如式(8)所示:

其中:M為當前預測得分最高的候選框;bi為等待處理的候選框。傳統的NMS 算法采用將IoU 大于閾值的候選框得分全部置為0 的方法。經過改進的Soft-NMS 算法如式(9)所示,將M和bi的IoU 值超過Nt閾值部分的檢測分數進行衰減而不是徹底移除。

本文優化調整了Soft-NMS 的參數,為對參數進行敏感分析,通過在數據集上不斷地改變參數值來觀察平均準確率的變化。經過研究,Soft-NMS 在0.4~0.7 的參數變化范圍內具有更優的性能,超出該范圍內,平均準確率(AP)明顯降低。在0.4~0.7 的參數變化范圍內,與傳統的非極大值抑制算法相比,使用Soft-NMS 得到的平均準確率提升了4.26 個百分點。與此同時,Soft-NMS 有著更加卓越的定位效果。經研究對比發現,當被檢測垃圾有著高度重疊的情況下,Soft-NMS 所選擇的垃圾分類預測框要更加準確。
綜上所述,本文所提出的方法是將原始網絡模型的層數增多以達到精確分類、減少信息丟失、避免梯度爆炸的目的。與此同時,將非極大抑制算法進行優化來更精確地挑選預測框。如圖8 所示,改進后的Faster R-CNN 算法有著更優化的性能。本文使用的深度學習框架為TensorFlow,采用VGG16、ResNet50 2 種網絡結構以及非極大值抑制算法與Soft-NMS 聯合訓練方式,在數據集上進行參數調整,經對比選擇最優結果組成改進后的算法模型。

圖8 Faster R-CNN 模型和改進的Faster R-CNN 模型Fig.8 Faster R-CNN model and improved Faster R-CNN model
本節選擇改進后的Faster R-CNN 模型預先訓練數據集。針對本文提出的模型與改進算法,分別進行了對比實驗來檢測性能。為實現整個網絡端到端的訓練,該模型訓練采用Faster R-CNN 和區域提議網絡近似聯合訓練方式[26]。
在多類別目標檢測及其分類的評價指標中,平均精度均值(mean Average Precision,mAP)作為目前最重要的目標檢測中檢測精度的評價指標,是個體平均準確率的均值[27]。因此,本文采用mAP 作為垃圾檢測與分類的評價指標。其中每個種類的垃圾記錄了各自的平均精確度,記為AP。如表1 為各個種類的垃圾在改進的Faster R-CNN 算法中的精確度比較。

表1 不同垃圾類別的精確度比較Table 1 Precision comparison of different garbage types %
本文對比實驗結果如下:
1)本文實驗對比了VGG16 和ResNet50 基于Faster R-CNN 在垃圾分類處理上的不同表現。由表2 可見,使用ResNet50 作為垃圾特征提取網絡來代替原始的VGG16 基礎特征網絡,綜合平均識別率提高了2.96 個百分點,由原來的73.51% 提高至76.47%,由此可以看出,ResNet50 的表現要比VGG16 更好,時間消耗也較少,精度有所提高。

表2 不同模型的mAP 和時間比較Table 2 mAP and time comparison between different models
2)本文實驗對傳統的非極大值抑制算法(NMS)進行改進,對比了Soft-NMS 與NMS 在不同網絡框架下的表現,其綜合識別率相比傳統Faster R-CNN算法提高了5.93 個百分點,達到79.44%。相較于ResNet50 框架下的Faster R-CNN 算法提高了2.97 個百分點。由此可見,利用Soft-NMS 算法,相較于傳統的非極大值抑制算法,在垃圾圖像檢測與分類中精確度有顯著提升。
3)將本文算法與其他目標檢測算法比較可見,YOLOv3 算法在時間上的消耗有著很大的優勢,每張圖片的檢測時間降低到2.391 s,但是對于該垃圾數據集的精確度只能達到67.63%,相比原始的Faster R-CNN 算法仍低了5.88 個百分點,而SSD 算法綜合識別率達到了74.02%的mAP 值,時間的消耗相較于YOLOv3 有所提升,達到了3.112 s。
4)由以上數據可以看出,采用ResNet50 的VGG16 網絡與Soft-NMS 本文算法模型,綜合識別率達到了81.77%,相較于YOLOv3 算法提高了14.14%,相較于傳統Faster R-CNN 提高了8.26%。這驗證了調整過后的ResNet 網絡架構與參數優化下的Soft-NMS 算法相結合有著更加優化的檢測性能。圖9 所示為改進后的Faster R-CNN 算法在不同種類垃圾中的識別結果。

圖9 改進Faster R-CNN 算法的識別結果Fig.9 Recognition results of improved Faster R-CNN algorithm
本文針對人工分揀垃圾環境差、任務繁重且分揀效率較低等問題,基于現有深度卷積神經網絡的模型,提出運用卷積神經網絡處理垃圾分類與檢測方法,解決對垃圾人工預處理的難題。研究VGG16 網絡架構與ResNet 網絡架構對于垃圾分類算法性能的影響,選擇經過優化的網絡架構完成垃圾檢測與分類任務。實驗結果表明,本文算法模型相比傳統的Faster R-CNN算法、SSD 算法、YOLOv3 算法,平均精確度分別提高了8.26、7.75、14.14 個百分點,綜合識別率達到了81.77%。采用級聯深度卷積神經網絡進行卷積共享策略簡化神經網絡的訓練,檢測網絡的測試可節約算法所需的時間[28]。同時,由于卷積層的共享,實現了卷積神經網絡完全端到端的優化,對于垃圾目標檢測的檢測框采用最大值衰減,經敏感分析后得到最優參數,從而提高整體卷積神經網絡性能。下一步將在網絡和訓練模型改進的基礎上,針對較小垃圾檢測以及垃圾遮檔問題進行研究,以提高垃圾分類的精確度及細小垃圾物體識別的準確度。