白 陽, 劉 斌, 李彥彤
(陜西科技大學 電子信息與人工智能學院, 陜西 西安 710021)
隨著生活垃圾分類制度的推行,垃圾分類作為推進綠色發(fā)展的重要舉措收到越來越多的關注[1].可回收垃圾是可以循環(huán)再生的資源,準確的分類出可回收垃圾可以助力可持續(xù)發(fā)展.但可回收垃圾人工分類效率低下[2],利用垃圾圖像自動分類成了研究熱點.高光譜成像技術[3]作為自動分類的一種手段,對透明、半透明物體的分類效果不理想,限制了其在可回收垃圾分類中的應用.
目前在計算機視覺領域,深度學習展現(xiàn)出了強大的表征能力[4-8],在目標檢測方面取得巨大成功[9-11].Faster R-CNN[12]、YOLO[13]、SSD[14]等深度學習算法的提出,使目標檢測的速度和精度不斷提高.其中,SSD(Single Shot MultiBox Detector)作為一種成熟的目標檢測算法,受到了廣泛的關注.楊輝華等[15]、鄧壯來等[16]、馬建等[17]將SSD算法應用在目標檢測中取得了不錯的效果.
為了提高SSD算法在可回收垃圾檢測中的檢測精度,提高小目標檢測成功率,本文提出了一種可回收垃圾檢測方法OctConv-SSD(簡稱O-SSD).
SSD算法是Wei Liu在ECCV 2016上提出的一種目標檢測算法.它從YOLO(You Only Look Once) 繼承了將檢測轉化為回歸的思路,一步完成目標的定位和分類,提高了檢測速度;同時基于Faster RCNN中的Anchor提出了預選框以提高檢測精度.圖1為SSD網絡結構.
圖1 SSD網絡結構
SSD網絡在不同特征層提取共8732個預選框,后續(xù)將預選框和真實邊界框配對,依據(jù)置信度排序預選框,挑選置信度高的預選框進行訓練,最終回歸分類得到目標檢測框.
SSD算法使用了傳統(tǒng)的卷積方法,直接通過對不同特征圖提取預選框,可以達到實時監(jiān)測的效果.然而VGG[18]作為SSD的主干網絡,不能夠達到很深的層次,這使得負責檢測小目標的conv4_3存在特征提取不充分的問題,對小目標的召回率一般,檢測精度不如Faster RCNN.SSD采用了密集采樣,正負樣本分布極其不均衡,同樣影響著目標檢測精度;為了提高檢測精度,本文提出的O-SSD網絡將Resnet替換VGG作為SSD網絡的主干網絡,引入RPN網絡粗篩預選框,均衡正負例數(shù)量,可以顯著提高檢測精度.另外,圖像存在高、低頻分量,低頻分量存在冗余在編碼過程中可以節(jié)省.為了提高模型計算效率與識別性能,O-SSD引入八度卷積(OctConv)方法替代傳統(tǒng)CNN卷積方法以壓縮低頻分量,加快神經網絡的訓練.O-SSD網絡體系結構如圖2所示.
圖2 O-SDD網絡結構
O-SSD網絡卷積方法替換為OctConv,目的是為了降低內存和計算成本.圖中紅色為Resnet替換原SSD網絡中VGG的部分,其主要作用是用更深的網絡結構保留更多的小目標信息.黃色的6個過濾模塊(Filter Block)參考了Faster RCNN算法中的RPN網絡,其主要作用是粗篩預選框,方便后續(xù)的回歸分類.特征圖間添加了4個鏈接模塊(Link Block),其目的是在高層特征與低層特征之間添加特征融合方案,減少信息丟失.
1.2.1 OctConv
OctConv是一種可以使模型性能提升,算力減少的卷積方法.一張圖片可以分成低頻(粗略結構)和高頻(邊緣細節(jié))兩個部分,圖片中高頻信息往往較少,而低頻信息存在冗余.對于普通卷積方法,所有輸入和輸出特征映射具有相同的分辨率,信息量較少的低頻部分的計算量消耗大,存儲空間需求高.針對上述問題,OctConv壓縮了低頻部分數(shù)據(jù),分別處理低頻和高頻的數(shù)據(jù),并在二者間進行信息交換以減少計算量和存儲空間.OctConv的卷積過程如圖3所示.
圖3 OctConv卷積過程
圖3中左側部分為輸入特征圖,右側部分為輸出特征圖.左上方與右上方兩部分均為特征圖高頻部分;左下方與右下方兩部分均為特征圖低頻部分.α表示低頻分量所占的比重,是一個可調節(jié)參數(shù).將卷積核分為兩個分量:W=[WH,WL],為實現(xiàn)高低頻之間的有效通信,輸入張量分為兩個分量X=[XH,XL],輸出張量也分為兩個分量Y=[YH,YL].高頻輸出張量YH=YH→H+YL→H,低頻輸出張量YL=YL→L+YH→L,定義YA→B表示從A到B的特征映射后更新的結果,則YH→H與YL→L是頻率內的信息更新,YL→H與YH→L是頻率間的信息更新.為了計算更新結果,本文將卷積核細分為WH→H、WH→L、WL→H、WL→L這四部分.輸出張量計算方式如下:
(1)
(2)
公式(1)、(2)中:(p,q)是X張量中的位置坐標,(i,j)表示所取近鄰范圍.WH→H,WH→L,WL→H,WL→L這四部分為卷積核的頻率內分量和頻率間分量.定義卷積核為k×k大小,輸入特征圖的通道數(shù)為cin,輸入特征圖低頻分量所占比重為αin,輸出特征圖的通道數(shù)為cout,輸出特征圖低頻分量所占比重為αout.卷積核的通道數(shù)等于輸入特征圖的通道數(shù),卷積核的個數(shù)等于輸出特征圖的通道數(shù).由此可知WH→H的尺寸為[k,k, (1-αin)cin,(1-αout)cout],WH→L的尺寸為[k,k,(1-αin)cin,αout*cout],WL→H的尺寸為[k,k,αin*cin,(1-αout)cout],WL→L的尺寸為[k,k,αin*cin,αout*cout].OctConv卷積核參數(shù)張量形狀如圖4所示.
圖4 OctConv卷積核
實驗過程中設定α的值為0.5,高頻分量與低頻分量所占比重相同,四部分卷積核尺寸相同.由式(2)可知,OctConv可以增大低頻特征映射的感受野.與普通卷積相比,有效地將感受野擴大了兩倍,幫助OctConv層捕獲更多的上下文信息.
1.2.2 O-SSD中的Resnet
VGG是SSD網絡中的特征提取網絡,其通過堆疊3x3大小的卷積核和2x2最大池化層,對樣本進行特征由淺入深的提取.VGG使用有參層直接學習輸入與輸出之間的映射,作為小目標檢測的conv4_3特征圖,存在特征提取不充分的問題,使SSD網絡對小目標的檢測效果不佳.而Resnet通過使用多個有參層學習輸入與輸出之間的殘差表示,獲得了更多的特征細節(jié)與更深的網絡結構,使負責檢測小目標的較淺層特征圖保留了更多的特征信息.實驗證明Resnet相比VGG具有更好的特征提取能力.
為兼容SSD網絡的特征圖尺寸,O-SSD中Resnet的結構如表1所示.
表1 O-SSD網絡中Resnet的結構
參考了Resnet50[19]模型,1×1卷積核起降維和升維作用,最終輸出的特征圖大小為[512,38,38],兼容了SSD網絡conv4_3的特征圖尺寸.
1.2.3 過濾模塊(Filter Block)
SSD作為一種單步檢測(Single Shot Detectors)算法,對提取的特征直接進行分類回歸.在密集采樣后可以獲得8732個預選框,其中負樣本遠遠大于正樣本,容易因訓練樣本不均衡引起目標分類與目標位置回歸錯誤,降低準確率.考慮到RPN網絡結構可以對預選框進行前景與后景的分類和位置初步回歸,本文使用RPN作為SSD網絡的過濾模塊(Filter Block),對預選框進行粗篩,過濾部分負樣本,改善樣本不均衡帶來的問題.過濾模塊的結構如圖5所示.
由圖5可知,過濾模塊對n個預選框做回歸和前景判別,獲得共2n個置信數(shù)(前景與后景)和4n個坐標偏移量,最終在特征圖中生成n個粗篩的預選框.
1.2.4 鏈接模塊(Link Block)
SSD采用VGG作為backbone,后續(xù)添加了新的卷積層來獲取更多的特征圖用于檢測.卷積神經網絡層數(shù)加深的過程,是特征從低層到高層提取的過程.伴隨著網絡層數(shù)的加深,每一層都會丟失一部分信息,這影響著檢測精度.針對決這一問題,本文于特征圖之間添加了連接模塊(Link Block),基于特征融合思想,將低層特征圖信息添加到高層特征圖中以減少信息的丟失,提高檢測精度.連接模塊的結構如圖6所示.
圖5 過濾模塊結構
圖6 鏈接模塊結構
在圖6中,低層特征圖通過三次卷積操作后,與經過一次卷積操作后的高層特征圖對應元素求和.后經一個3×3卷積確保特征可辨別,融合后的特征圖進行池化操作完成降采樣過程,輸出特征圖.
所有實驗均在Windows7,64位操作系統(tǒng),內存128 GB,CPU:Intel Xeon Silver 4116,GPU:NVIDIA TITAN Xp的環(huán)境下進行.使用Pytorch開源框架實現(xiàn)O-SSD算法并完成模型的訓練.
由于目前沒有針對可回收垃圾檢測的公開數(shù)據(jù)集,因此通過已標定的可回收垃圾類別收集可回收垃圾數(shù)據(jù),實驗樣本選擇抱枕、玻璃杯、塑料盆等生活垃圾,電視機、掛式空調、吹風機等電子垃圾,共20類2 120個樣本.使用Lable Image工具對可回收垃圾數(shù)據(jù)進行標注.
由于少量數(shù)據(jù)訓練模型容易過擬合,需要對數(shù)據(jù)集進行擴充與增強處理.谷歌大腦在研究中發(fā)現(xiàn)對目標檢測有收益的操作有顏色操作、幾何操作和邊界框操作.本文使用了適用于目標檢測的自動數(shù)據(jù)增強方法AutoAugment[20]來搜索改進的數(shù)據(jù)增強策略.在強化學習的幫助下給定數(shù)據(jù)集最佳的增強策略,使模型得更好的訓練效果.
本文通過對比O-SSD模型與SSD模型的檢測精度和檢測速度對比模型性能.設置bounding box與ground truth的IOU閾值大于0.65時檢測結果正確.
檢測精度評價指標選取mAP(Mean Average Precision)指標,定義為[21]:
(3)
mAP為所有類別的平均精度(AP)求和除以類別數(shù)M.AP定義為:
(4)
AP為某個類別精度,其中precision(i)為一張影像上一個物體的精度,K為實例個數(shù),N為數(shù)據(jù)影像數(shù).mAP指標越高,模型的檢測效果越好.
檢測速度評價指標選取FPS(Frames Per Second,每秒幀數(shù))指標,定義為模型一秒內檢測的圖像數(shù).模型的FPS越高,檢測速度越快,實時性越好.
模型復雜度評價指標選取FLOPs(Floating Point Operations,浮點運算次數(shù))指標,定義為模型的運算量.模型的FLOPs越小,模型所需運算量越小,計算效率越高.
實驗使用采集的1 616張可回收垃圾圖片訓練O-SSD模型,剩余數(shù)據(jù)分為驗證集與測試集數(shù)據(jù).網絡超參數(shù)設置如下:初始學習率為1e-4,網絡迭代到30 000次時設置為1e-5,batch設置為10.網絡迭代到65 000次達到最佳檢測結果90.62%.
四是要有好身體。自駕游比跟團游更考驗人的體能。吃飯不及時、休息不及時、睡覺不及時,都是常事。有時前不著村、后不著店,只能咬牙堅持。我們此次所去的地方,一連好幾天,都在海拔3500-4000米左右的地方活動,如果有高原反應,對身體會造成一定影響。在阿克塞縣城,遇到一伙剛從西藏下來的游客。他們都穿著棉衣,但其中有一女的卻一身背心短褲,精神抖擻。據(jù)說在西藏,此人毫無不適之感。而另有一個人高原反應十分厲害,頭疼欲裂,氧氣吸了一大袋,差點死在那里。
2.5.1 模塊性能評估
為了研究本文優(yōu)化方法對算法性能的影響,對適配不同優(yōu)化方法的O-SSD模型在可回收垃圾數(shù)據(jù)集上做了性能評估.定義OctConv為方法A,Resnet為方法B,過濾模塊為方法C,鏈接模塊為方法D.評估結果如表2所示.
表2 模塊性能評估
在表2中,Model1、Model2、Model3、Model4分別為O-SSD模型缺少過濾模塊,Resnet、OctConv、鏈接模塊的模型,依據(jù)mAP的值升序排序.
對比上述四種模型與O-SSD模型的精度,可知過濾模塊在算法中起到關鍵作用,不含過濾模塊的Model1相比O-SSD模型性能下降明顯.其主要原因是神經網絡對訓練樣本分布比較敏感,當負例樣本遠大于正例樣本時,網絡會注重負例樣本特征學習,使網絡漏檢率變高,檢測精度變低.而過濾模塊通過篩選剔除部分負例樣本,使正例與負例樣本比例均衡,解決了上述問題且較大幅度提高了模型檢測精度.
對比Model3模型與SSD模型FLOPs可知,在添加B、C、D優(yōu)化方法后,模型復雜度提升,運算量增多.而O-SSD網絡在Model3的基礎添加了A(OctConv)優(yōu)化方法后,F(xiàn)LOPs下降明顯.這得益于OctConv方法在卷積過程中,特征圖低頻分量得到壓縮,低頻特征尺寸僅為高頻部分的1/4,這使得特征圖與卷積核的運算量大幅度減少.因此,O-SSD模型可以在結構變復雜的同時,模型復雜度降低.
使用了四種優(yōu)化方法的O-SSD模型,相比SSD模型檢測精度提高了9.36%,F(xiàn)LOPs降低了10 G.實驗證明O-SSD模型擁有比SSD模型更高的檢測精度和更少的運算量.
為評估O-SSD模型的檢測精度與檢測速度,實驗對比了O-SSD模型與SSD、Faster RCNN和YOLO V3在可回收垃圾數(shù)據(jù)集上的模型性能.四種模型對不同類別可回收垃圾的檢測精度的如表3所示.
表3 模型對于不同類別可回收垃圾的檢測精度(AP/%)
由表3可知,O-SSD在各類可回收垃圾樣本的檢測精度均為最高水準,檢測精度優(yōu)于其他三類模型.對于玻璃杯和礦泉水瓶這類透明、半透明垃圾的檢測效果理想,相較于高光譜成像技術,O-SSD作為一種深度學習領域的可回收垃圾檢測方法是十分有效的.
四種模型在可回收垃圾數(shù)據(jù)集上的性能如表4所示.由表4可知,O-SSD模型在可回收垃圾數(shù)據(jù)集上擁有最高的檢測精度和較高的檢測速度.雖然檢測速度不及SSD模型(降低3FPS),但O-SSD模型更好的權衡了檢測精度與速度.對比Faster RCNN模型和YOLO V3模型,無論是在檢測精度還是檢測速度上,O-SSD模型都更加優(yōu)秀.綜上,在可回收垃圾檢測數(shù)據(jù)集中O-SSD模型擁有良好的檢測性能.
表4 模型性能評估
2.5.3 小目標檢測對比
在目標檢測領域,對于小目標的定義有多種,本文采用的是MS COCO數(shù)據(jù)集的定義[20],即尺寸小于32*32像素的目標即可認定是小目標.為評估O-SSD模型對小目標的檢測性能,實驗對比了部分檢測結果圖,結果對比如圖7所示.
圖7 O-SSD模型與SSD模型對小目標檢測結果對比圖
圖7列舉了O-SSD網絡與SSD網絡對抱枕(pillow)與玻璃杯(glass)的檢測結果,其中SSD(1)與SSD(2)為SSD模型的檢測結果,O-SSD(1)與O-SSD(2)為O-SSD模型的檢測結果.對比發(fā)現(xiàn)SSD網絡存在小目標漏檢的境況,檢測圖中較小的抱枕和玻璃杯均檢測失敗.
SSD網絡主要是在主干網絡中淺層特征圖conv4_3上提取小目標特征,特征圖尺寸較大,預選框較小,適合作為小目標的預選框.VGG作為SSD的主干網絡,在其特征提取的過程中,卷積池化的下采樣過程可能將有用的特征信息濾除掉,小目標信息量少容易丟失,因此特征圖conv4_3存在特征提取不充分的問題,導致漏檢.O-SSD得益于Resnet殘差特性,網絡學習特征圖之間的殘差,使得大部分特征得以保留,可以使網絡達到更深的層數(shù).作為O-SSD小目標特征層OctConv4_6達到了30層的深度,可以較好地保留小目標語意信息,因此改善了小目標漏檢問題,提高了小目標的檢測成功率.
本文提出了一種基于改進SSD的模型O-SSD,在可回收垃圾數(shù)據(jù)集上展開多次試驗,通過對比實驗驗證了O-SSD模型具有較高的檢測精度和檢測速度,相比SSD模型改善了小目標漏檢問題.下一步考慮改進預選框的采樣方法,進一步優(yōu)化模型,以提升模型檢測速度.