龔圣斌,王少杰,侯 亮,張榮輝,林曉涵,吳彬云
(廈門大學航空航天學院,福建 廈門 361102)
傳統的目標檢測一般有3個階段[1-2]:首先,在圖像的不同位置使用不同尺寸的窗口滑動,以此來選取候選區域;接著,在這些候選區域中進行特征提取;最后,利用分類器對目標物體進行識別.針對不同類別的物體,需設計不同的特征和分類方法.這些方法都需要人工從原始輸入中獲取有關的目標特征信息,有很多的局限性[3-4]:1) 可移植性差,針對特定的檢測任務,需要人工設計不同的方法,對設計者的經驗有很高的要求.2) 準確性低,由于檢測目標的形態多樣性、光照變化多樣性、背景多樣性等因素,提取特征難,進而檢測結果的準確性受到影響.3) 耗時長,由于使用滑動窗口窮舉策略,雖然檢測覆蓋面廣,但是產生冗余窗口太多,影響檢測速度.此外,檢測目標自身的尺寸大小不一,且易受其他物體的遮擋、光線強弱等外界環境及天氣因素影響,從而導致檢測目標難以辨別[5-7].可見目前傳統目標檢測方法還無法很好地解決以上這些問題.針對傳統方法存在的局限性,應用深度學習使目標檢測取得重大突破,深度學習技術能有效地解決許多傳統目標檢測的缺陷[8].針對很多人工方式無法很好地抽取實體中的特征問題,深度學習可以自動地將簡單的特征組合成復雜的特征,并使用這些組合特征解決問題.卷積神經網絡不僅能夠提取更高層、表達能力更好的特征,還能在同一個模型中完成對于特征的提取、選擇和分類.Girshick等[9]提出了基于區域卷積神經網絡(regions with convolutional neural network,RCNN)的目標檢測方法,使用選擇性搜索算法生成候選區域用于提取目標特征.但RCNN計算量很大,無法實時更新.此外,由于全連接層的存在,需要嚴格保證輸入圖片的尺度大小,這在一定程度造成了圖像畸變,影響最終結果.為解決這一問題,He等[10]提出了基于深度卷積網絡的空間金字塔池化層視覺識別方法,對輸入圖片的尺寸放寬了限制.為解決RCNN中出現大量冗余的特征提取問題,Girshick[11]又提出了快速-RCNN(Faster-RCNN)模型,極大地提高了目標檢測與識別性能.但Fast-RCNN候選區域的提取方法仍然使用選擇性搜索算法,目標檢測時間消耗大,無法滿足實時應用,而且并沒有實現真正意義上的端到端的訓練,顯然候選區域提取問題亟需解決.為了突破選擇性搜索算法的瓶頸,Ren等[12]提出將區域建議網絡(region proposal network, RPN)和Fast-RCNN結合,用區域建議網絡替換選擇性搜索算法,解決了計算區域建議時間開銷過大的問題.
因此,本文采用以Faster-RCNN與區域建議網絡為基礎的深度學習方法,并使用經輕量化處理后的Inception-V2進行特征提取.本文還對神經網絡的線性整流(rectified linear unit,ReLU)激活函數做出改進,克服其容易導致神經元壞死的缺點.
濱海旅游業在快速發展的同時帶來了較大的環境問題,其中最為顯著的便是層出不窮的各種沙灘廢棄物[13-15].當前我國的沙灘清理維護以人工為主,沙灘清潔車輛的出現能一定程度上減少環衛工人的工作量[16].準確高效地檢測出沙灘廢棄物,可以為沙灘清潔車輛提供廢棄物的視覺定位,進而對其行進提供路徑規劃等指導.
Faster-RCNN算法主要解決兩個問題:1) 利用RPN快速生成候選區域;2) 通過交替訓練,使RPN和Fast-RCNN網絡共享參數.Faster-RCNN的網絡結構如圖1所示,由4個部分組成:1) 特征提取網絡從原圖中提取出特征圖;2) 將特征圖傳入由Faster-RCNN全新提出的區域建議網絡中進行訓練,可以生成區域建議框,獲取目標對象的大致位置;3) 利用區域建議網絡獲得的大致位置,從特征圖中摳出用于分類的目標;4) 將摳出的部分池化成固定長度的數據傳入全連接層進行目標檢測.

圖1 Faster-RCNN網絡結構Fig.1 Faster-RCNN network structure
1.2.1 Inception-V2模塊
Inception模塊[17]首次提出于Google Net中,在此之前的Alex Net、VGG(visual geometry group)[18]等結構都是通過增加網絡的深度來獲得更好的訓練效果,但網絡深度的增加會帶來許多負作用,比如過擬合、梯度消失、梯度爆炸等.Inception的提出則從另一個角度來提升訓練結果:能更高效地利用計算資源,在相同的計算量下提取到更多的特征.Inception模塊的基本結構如圖2所示.

圖2 Inception模塊Fig.2 Inception module
Inception模塊[19]的主要貢獻有:1) 使用1×1的卷積來進行升降維;2) 在多個尺寸上同時進行卷積再聚合.大卷積核可以用多個小卷積核來替代,如一個尺寸為5×5的卷積核可以被兩個尺寸為3×3的卷積核代替,在感受野沒有變化的情況下,計算量顯著減少,由此可以得到Inception-V2模塊[20],如圖3所示.

圖3 Inception-V2模塊Fig.3 Inception-V2 module
1.2.2 輕量化Inception-V2特征提取網絡結構
Faster-RCNN基于Inception-V2模塊的特征提取網絡結構如圖4所示,圖中卷積和池化的步長(stride)默認為1.5a網絡部分有3個分支,5b網絡和5c網絡各有4個分支.5a網絡的輸出作為5b網絡的輸入,5c網絡的輸入為5b網絡的輸出.以5b網絡為例,4個分支分別用不同尺寸的濾波器(filter)進行卷積或池化,再在特征維度上拼接到一起.
圖4的結構仍然較為復雜,計算量較大.為了輕量化Inception-V2特征提取網絡,做出如下兩點改進:1) 對每個分支的中間層進行降維,通道數變為原來的0.5倍,而用于級聯的卷積層通道數不變.中間層的降維是一種無損或低損壓縮,即使中間層的通道數減小,維度降低,仍然可以利用圖像特征相關性恢復出原有的信息,實際上每一個分支的輸出通道數并未改變,通過中間層的降維可以極大地減少神經網絡的計算量;2) 注意到5b網絡和5c網絡的branch 3中池化層的stride=1,并未起到壓縮特征圖尺寸的作用,而5b網絡和5c網絡的分支0中已有尺寸為1×1的卷積核,故丟棄5b網絡和5c網絡的分支3結構,得到如圖5所示的輕量化Inception-V2特征提取網絡結構.這實際上是一種“剪枝”操作,通過丟棄Inception-V2模塊中不重要的部分分支可以降低網絡結構的復雜性、減小過擬合、提升模型的泛化能力,同時可以加快訓練速度并提升目標物體的檢測速度.但若過度減少Inception-V2模塊中的分支,則會影響模型的收斂速度、穩定性及檢測精度.

圖4 Inception-V2特征提取網絡結構Fig.4 Inception-V2 feature extraction network structure
表1給出了Inception-V2特征提取網絡輕量化前后的計算量對比(只計算卷積層的計算量,相比于卷積層,池化層計算量很小).
輕量化前Inception-V2特征提取網絡結構的卷積計算量總和為114 970 624,輕量化后Inception-V2特征提取網絡結構的卷積計算量總和為56 473 600,節省卷積計算量約50.9%,有明顯的輕量化效果.
ReLU函數[21]是神經網絡最常用的激活函數,它的優點是易于優化.然而,當神經元輸入為負值的時候,ReLU的學習速度會變慢,因為此時梯度為零,從而其權重無法得到更新,神經元壞死.為避免這種缺陷,本文采用帶泄露ReLU(leaky ReLU)激活函數[22],當輸入為負數時仍會有一個小梯度的非零值輸出,從而避免可能出現的神經元壞死現象.ReLU和Leaky ReLU的圖像如圖6所示.

圖5 輕量化Inception-V2特征提取網絡結構Fig.5 Lightweight the structure of Inception-V2 feature extraction network

表1 輕量化前后Inception-V2特征提取網絡結構的卷積計算量
我國生態環境部發布了《2018年中國海洋生態環境狀況公報》[23],結果顯示:在我國沙灘廢棄物中,塑料類垃圾數量最多,其次為紙類和木制品類.結合當地沙灘實際情況,本文將沙灘廢棄物分為樹枝樹葉(branches-leaves)、瓶罐(bottle)、泡沫(foam)、紙張(paper)和塑料(plastic)5類(圖7).在不同光照條件、不同距離及不同角度下對沙灘廢棄物進行拍攝,拍攝時對應調整曝光時間、增益、亮度、對比度等參數.注意5類樣本的拍攝數量平衡,最終得到約1 000張圖片,訓練集與測試集按照9∶1的比例進行劃分.所有圖像像素尺寸為640×480.

圖6 ReLU和Leaky ReLU激活函數Fig.6 ReLU and Leaky ReLU activation functions

圖7 數據集中部分沙灘廢棄物圖片示例Fig.7 The example of beach waste images in dataset
本實驗在Windows 10操作系統下,基于Intel(R) Core(TM) i7-4720HQ CPU @ 2.60 GHz(8GB運行內存)和NVIDIA GeForce GTX 950M GPU(4GB運行顯存)的硬件設備上搭建TensorFlow深度學習框架,利用Python編程語言實現沙灘廢棄物目標檢測模型的訓練與測試.
模型的優化器選擇momentum optimizer[24],momentum optimizer value設為0.9.訓練步數在0~30 000時,學習率設為2×10-4;訓練步數在30 000~40 000時,學習率設為2×10-5;訓練步數在40 000~50 000時,學習率調整為2×10-6.訓練步數達50 000時終止模型訓練.
本文對比了SSD(single shot multibox detector)[25]與Faster-RCNN目標檢測算法結合不同特征提取網絡(Inception-V2、ResNet50和ResNet101)在檢測沙灘廢棄物時的表現,主要衡量指標為檢測時間及mAP(mean average precision).AP(average precision)綜合了查準率(precision)與查全率(recall),而mAP則是各類別AP的平均值.結果如表2所示.實驗結果表明:1) 在使用相同特征提取網絡時,SSD目標檢測算法具有更快的檢測速度,這是由于SSD是one-stage算法,對小目標物體檢測效果較差,其mAP相比Faster-RCNN較低;2) 在使用相同的目標檢測算法時,Inception-v2特征提取網絡相比ResNet50和ResNet101的檢測耗時更短;3) 基于Faster-RCNN的輕量化Inception-V2對訓練耗時和檢測耗時的減少都有較大的作用,模型平均訓練耗時可減少9.1%,平均檢測耗時可減少10.9%,特征提取網絡輕量化工作使模型在訓練時間成本和檢測速度上都得到了優化;4) 在Faster-RCNN使用相同特征提取網絡的情況下,相比于ReLU,Leaky ReLU激活函數可以略微提升模型檢測效果;5) 本文提出的改進算法Faster-RCNN_Lightweight Inception-V2(Leaky ReLU)在檢測速度上與最快的SSD-Inception-V2表現接近,并且其mAP值明顯高與其他模型.綜合比較可見,本文所提改進算法在實際檢測中表現出較為優越的性能.

表2 SSD與Faster-RCNN模型的檢測效果對比Tab.2 Comparison of detection effect of SSD and Faster-RCNN models
圖8顯示了使用本文所提改進算法的沙灘廢棄物檢測效果.

圖8 沙灘廢棄物目標檢測Fig.8 Detection of beach garbage
基于上述算法的研究,本文開發了一套用于沙灘廢棄物目標檢測的軟件,可實現在線實時的沙灘廢棄物檢測.值得注意的是,盡管用于模型訓練的照片是在不同光照條件、不同距離及不同角度下拍攝,但在實際檢測中,檢測效果仍然受到光照等因素的較大影響.通過調節亮度、對比度等參數,可取得較理想的檢測效果.圖9顯示了不同亮度下的檢測效果.
為了進一步驗證本文提出的改進算法,選取BIT-Vehicle和CK+兩個開源數據集進行檢測效果驗證,模型訓練的參數設置與2.2節一致,BIT-Vehicles數據集使用的圖片數量為1 200張,CK+數據集使用的圖片數量為1 600張(由于部分類別的人臉表情數據不足,CK+數據集有做數據增強).通過分析表3(圖10)與表4(圖11),本文提出的改進算法Faster-RCNN_Lightweight Inception-V2(Leaky ReLU)與原算法Faster-RCNN_ Inception-V2(ReLU)的檢測精度相當,但檢測耗時與模型訓練耗時明顯減小,改進的輕量化算法具有推廣應用的潛力.

圖9 不同亮度下的沙灘廢棄物檢測效果Fig.9 Detection effect under different brightness conditions
針對目標檢測的背景環境復雜、檢測物體易受部分遮擋、天氣以及光線變化等因素的影響,導致檢測過程存在提取特征難、檢測準確率低、檢測耗時長等缺陷,本文基于傳統的Faster-RCNN算法提出了以下3點改進:1) 去除Inception-V2模塊中步長為1的池化層分支以減少網絡計算量.2) 壓縮了模塊的中間卷積層通道數,達到輕量化特征提取網絡的效果.3) 改用Leaky ReLU作為神經網絡的激活函數,解決了ReLU激活函數的缺陷.為了驗證改進算法的有效性,本文以沙灘廢棄物檢測為案例進行驗證,進行了多組算法與特征提取網絡的對比,實驗結果表明:1) 與原有算法及其他算法相比,本文提出的改進算法在檢測速度及檢測精度上都表現出了較為優越的性能,中間層的降維是一種無損或低損壓縮,即使維度降低了,仍然可以利用相關性恢復出原有的信息,實際上每一個分支的輸出通道數并未改變,通過中間層的降維可以極大減少神經網絡的計算量.通過丟棄Inception-V2模塊中不重要的分支可以降低網絡結構的復雜性、減小過擬合、提升模型的泛化能力,同時可以加快訓練速度并提升目標物體的檢測速度.2) 相比ReLU激活函數,Leaky ReLU激活函數能使模型取得更好的檢測效果.3) 應用于沙灘廢棄物檢測輕量化改進后的模型與原模型相比,不僅使訓練時間減少9.1%,還使檢測速度提升10.9%,且檢測效果更好.4) 在實際的檢測中,可通過調節畫面的亮度、對比度等達到更好的檢測效果.改進后的目標檢測模型的檢測速度依然有待提高,同時模型對小尺寸物體的檢測效果有待加強.后續研究將繼續提高模型的檢測速度,并且提升算法對小尺寸物體的檢測效果.

表3 BIT-Vehicle數據集檢測效果對比Tab.3 Comparison of detection results of BIT-Vehicle dataset

圖10 BIT-Vehicle數據集檢測Fig.10 Detection of BIT-Vehicle dataset

表4 CK+數據集檢測效果對比

圖11 CK+數據集檢測Fig.11 Detection of CK+ dataset