劉文玉, 彭晉民, 吳炳龍, 游通飛
(福建工程學(xué)院 機(jī)械與汽車工程學(xué)院,福建 福州 350118)
隨著人類對機(jī)器視覺功能需求的不斷增長,在生活場景圖像中獲取可用信息有著極其重要的研究價值。超市貨物經(jīng)過分揀后放入指定的貨架,或家庭中選取所需用品可以通過機(jī)器人借助相關(guān)先進(jìn)技術(shù)代替人工來完成,而分揀物品的首要任務(wù)是先檢測識別物品,生活物品的檢測在家庭和超市服務(wù)等方面都有著重要的作用。
目前物品檢測主要存在種類繁多、大小不一和檢測難度大等挑戰(zhàn)。面對這些挑戰(zhàn),人們花費(fèi)大量精力運(yùn)用卷積神經(jīng)網(wǎng)絡(luò)[1,2]處理圖像并取得了一些顯著進(jìn)展。王昌龍等人[3]提出了一種雙通道卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)對南瓜葉片病害的識別。鄭志強(qiáng)等人[4]用Densenet[5]改進(jìn)YOLOv3[6]在遙感飛機(jī)圖像識別方面能夠達(dá)到96 %的檢測精度。顯而易見,深度學(xué)習(xí)在目標(biāo)識別領(lǐng)域應(yīng)用范圍之廣。
在生活物品檢測方面,物品大小、種類和顏色方面在生活中存在很大的差異。面對此種情形,本文基于YOLOv3檢測算法提出一種檢測生活物品的方法,將YOLOv3原算法中的殘差塊替換成殘差密集塊,采用5個尺度檢測,并引入空洞卷積。改進(jìn)后的YOLOv3算法在COCO數(shù)據(jù)集和自制數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,達(dá)到初步識別出生活物品的同時提高網(wǎng)絡(luò)的泛化性能。
YOLOv3網(wǎng)絡(luò)運(yùn)用回歸的方法來提取特征,實現(xiàn)端到端的物體檢測,無需像R-CNN 系列目標(biāo)檢測算法一樣生成大量的候選窗口,YOLOv3對輸入圖像進(jìn)行目標(biāo)檢測是通過采用單個神經(jīng)網(wǎng)絡(luò)實現(xiàn)的。該算法不僅可以保證比較高的準(zhǔn)確率,還可以快速完成圖像中物體的檢測,更加適合用于現(xiàn)場應(yīng)用環(huán)境。YOLOv3網(wǎng)絡(luò)檢測過程中會呈現(xiàn)多個預(yù)測框及每個預(yù)測框的置信度,剔除置信度低的預(yù)測框并通過非極大值抑制算法最終定位物體位置。
若要完成輸入圖像的目標(biāo)檢測,每個網(wǎng)格需要預(yù)測出邊界框和條件類別概率,輸出邊界框中是否包含目標(biāo)及邊界框準(zhǔn)確度的置信度信息。 每個邊界框?qū)?yīng)的類別置信度Confidence計算如式(1)所示
(1)
(2)
在多尺度預(yù)測方面,YOLOv3利用殘差網(wǎng)絡(luò)來提取圖像中物體的特征,雖然檢測精度與速度目前取得了平衡,但對于一些中等或較小尺寸的物體,YOLOv3還達(dá)不到理想的檢測效果,會出現(xiàn)誤檢、漏檢的問題。
改進(jìn)后總體網(wǎng)絡(luò)架構(gòu)如圖 1 所示,該算法是一個直接預(yù)測生活物品位置和類別的多目標(biāo)檢測算法,主網(wǎng)絡(luò)結(jié)構(gòu)是深度殘差密集網(wǎng)絡(luò)。針對 YOLOv3 特征圖尺度偏大、準(zhǔn)確度低的問題,改進(jìn)后的算法在主網(wǎng)絡(luò)之后又增加了2個卷積層和5個卷積層共同構(gòu)建成含有5個不同尺度卷積層的特征金字塔,與主網(wǎng)絡(luò)進(jìn)行融合,形成深度融合的生活物品檢測模型。改進(jìn)后的算法可以防止物品的錯檢和漏檢,顯著提高物品的檢測精度。
圖1 提出的生活物品檢測方法結(jié)構(gòu)
深度學(xué)習(xí)網(wǎng)絡(luò)中密集塊[7,8]不僅可以使網(wǎng)絡(luò)訓(xùn)練過程中梯度消失問題得以減輕,還能夠更有效地利用特征圖,隨著網(wǎng)絡(luò)層數(shù)的增加,殘差塊具有不易退化的特點,借鑒密集塊和殘差塊的的優(yōu)勢,采用密集塊和殘差塊相結(jié)合,如圖2所示,兩者信息相互融合來可以達(dá)到更好地檢測效果,該網(wǎng)絡(luò)通過連續(xù)記憶機(jī)制從前面的網(wǎng)絡(luò)中獲取圖像信息,經(jīng)過處理后把處理結(jié)果傳入下一個殘差密集塊中,局部密集連接起到充分利用所有層的效果,經(jīng)過局部特征的融合,自適應(yīng)地保留積累的特征信息。
圖2 殘差密集塊網(wǎng)絡(luò)結(jié)構(gòu)
改進(jìn)的網(wǎng)絡(luò)利用殘差密集塊替換YOLOv3網(wǎng)絡(luò)中的殘差塊的設(shè)計思想,利用殘差密集卷積網(wǎng)絡(luò)提取生活物品的特征,將殘差密集卷積塊中提取的特征圖與相應(yīng)尺度卷積層提取的特征圖進(jìn)行信息融合,最終的物品分類由SoftMax分類器完成。
為了更好地避免目標(biāo)檢測網(wǎng)絡(luò)在訓(xùn)練過程中出現(xiàn)漏檢和錯誤檢測的現(xiàn)象,提出在特征提取時引入空調(diào)卷積??斩淳矸e可以擴(kuò)大特征圖的視野范圍,將空洞注入到卷積核中,在圖3中可以觀察到,空洞卷積可以達(dá)到擴(kuò)大感受野的效果;同時,在卷積的過程中獲得了各個尺度的全局信息。在網(wǎng)絡(luò)中增添空洞卷積的擴(kuò)張率,分別在各個尺度對應(yīng)的特征圖中加入對應(yīng)的rate,即在第1~5個特征提取圖上分別加入1,2,4,4,4倍的rate,讓小物體的特征更加明顯。
圖3 傳統(tǒng)卷積運(yùn)算與空洞卷積運(yùn)算
YOLOv3利用高層特征的深層次語義信息,并通過引入特征圖金字塔網(wǎng)絡(luò)(FPN)[9],上采樣融合不同層的特征,通過三種不同尺度的特征層來檢測物體。針對生活中的物品大小不一的情況,對YOLOv3中的尺度檢測模塊進(jìn)行改進(jìn),采用5個尺度檢測,為目標(biāo)物體配置更為準(zhǔn)確的錨點框。采集到的生活物品圖像數(shù)據(jù)中所有目標(biāo)標(biāo)注通過K-means聚類[10~12]確定錨點框的大小,K-means聚類函數(shù)為
D(A,B)=1-RIOU(A,B)
(3)
式中A為物體邊界框的大小,B為物體邊界框的中心,RIOU(A,B)為交并比。
通過K-means聚類確定的先驗框參數(shù),并利用殘差密集相連5個已經(jīng)過上采樣相應(yīng)倍數(shù)尺度檢測的特征層,尺度檢測層融合了不同層獲得的物體特征,各個尺度特征層的信息流動性提高。多尺度檢測模塊如圖4所示,其中2×,4×,8×和16×依次代表步長為2,4,8,16的上采樣。
圖4 多尺度檢測模塊
實驗采用Kinect v2傳感器作為生活物品圖像數(shù)據(jù)的采集設(shè)備,圖像分辨率為1 920像素×1 080像素。采集時從正視、俯視2個角度對生活中的物品進(jìn)行圖像采集。圖像數(shù)據(jù)中包含單個和多個物品的圖像,共采集圖像3 306張。其中,僅含單個物品的圖像623張、包含多種物品的圖像有2 683張,利用圖像標(biāo)注軟件LabelImg對圖像進(jìn)行目標(biāo)位置及類別的標(biāo)注,采集的各類生活物品圖像按照6︰2︰2的比例分配訓(xùn)練集、測試集和驗證集。
為使最終的訓(xùn)練結(jié)果有較好的泛化性能,對訓(xùn)練集進(jìn)行水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)、旋轉(zhuǎn)180°、隨機(jī)縮放寬高比例、隨機(jī)裁剪、亮度變化和飽和度變化的數(shù)據(jù)增強(qiáng)處理。
為評價所提出的方法對生活物品識別的性能優(yōu)劣,使用平均精度(average precision,AP)作為生活物品檢測的評價指標(biāo)。在得到物品的精度(precision,Pr)和召回(recall,Re)率后即可計算AP,計算公式如下
(4)
(5)
(6)
式中TP為將某類物品正確預(yù)測為某類物品的個數(shù),F(xiàn)P為將非某類物品預(yù)測為某類物品的個數(shù),F(xiàn)N為將某類物品錯誤預(yù)測為不是某類物品的個數(shù),AP為某類物品的平均精度。
Faster R-CNN,SSD,YOLOv3和改進(jìn)的算法在數(shù)據(jù)集上進(jìn)行50 萬次的訓(xùn)練,每個權(quán)重都會得到圖像的檢測框文件,四種算法的AP對比結(jié)果如圖5所示。
圖5 四種算法AP對比結(jié)果
折線圖中橫坐標(biāo)為訓(xùn)練次數(shù),每個算法每5萬次標(biāo)記一個點??梢悦黠@觀察到,改進(jìn)后的算法在測試中整體好于其他三種算法。
YOLOv3算法分別在COCO,COCO+自制數(shù)據(jù)集兩種數(shù)據(jù)集上進(jìn)行訓(xùn)練和測試,隨機(jī)抽取300張圖像的實驗結(jié)果如表1所示。
表1 數(shù)據(jù)集對應(yīng)訓(xùn)練結(jié)果 %
從表1觀察到,在COCO+自制數(shù)據(jù)集上訓(xùn)練得到的精度明顯優(yōu)于COCO數(shù)據(jù)集,自制數(shù)據(jù)集更貼近生活物品原有的特征,可以提高YOLOv3算法在生活物品方面的識別能力。
改進(jìn)后的YOLOv3算法與原YOLOv3算法、Faster R-CNN[13]和SSD[14]算法在COCO數(shù)據(jù)集和自制的測試集上進(jìn)行實驗,從測試集中隨機(jī)篩選出300張來統(tǒng)計結(jié)果,結(jié)果如表2所示。
表2 四種算法性能對比 %
由表2可知:改進(jìn)后的YOLOv3算法在精度指標(biāo)AP上均超過其他算法,達(dá)到了91.96 %,具有優(yōu)異的檢測性能。在50萬次訓(xùn)練中得到的AP比原算法提高了5 %左右;精確度略低是由于其檢測到更多的物品同時產(chǎn)生了更多的誤檢目標(biāo);但在召回率這一項就明顯高于其他方法,是所有算法里漏檢最少的。最后的AP很好地反映了算法的優(yōu)劣,足以說明改進(jìn)后的方法效果好,并且在檢測時間上每張圖片花費(fèi)大約0.043 s,優(yōu)于 YOLOv3的檢測速度。
取50萬次中AP最高的權(quán)重文件對應(yīng)測試圖像進(jìn)行對比得到部分對比結(jié)果如圖6所示。圖中可以看到,F(xiàn)aster R-CNN算法的檢測效果較差,存在明顯漏檢現(xiàn)象。SSD算法雖然檢測速度上有一定優(yōu)勢,但存在檢測框偏大的問題。YOLOv3的檢測效果雖不錯,但仍然出現(xiàn)了少數(shù)的漏檢情況。改進(jìn)后的算法在的較大目標(biāo)物品的檢測準(zhǔn)確率幾乎為100 %,對小目標(biāo)物品的檢測精度也明顯好于其他方法,沒有受到任何干擾,這是其他幾種方法都沒有做到的。這說明改進(jìn)后的算法獲取到了更多且更深層次的特征信息,在檢測目標(biāo)的大小上有著良好的適應(yīng)性。
圖6 四種算法對應(yīng)檢測結(jié)果
在YOLOv3算法模型基礎(chǔ)上,從網(wǎng)絡(luò)模型、多尺度檢測方面對原算法進(jìn)行改進(jìn)和優(yōu)化以用于生活物品的檢測。采用自制的生活物品數(shù)據(jù)集訓(xùn)練網(wǎng)絡(luò)模型,改進(jìn)后的算法與Faster R-CNN,SSD以及YOLOv3等算法進(jìn)行對比實驗。實驗結(jié)果表明:改進(jìn)后的算法檢測精度能夠達(dá)到91.96 %,較原算法提高5 %,并優(yōu)于其他算法,具有優(yōu)異的檢測效果,能夠滿足生活物品識別分類的要求,在家庭和超市中的物品分揀等方面有廣闊的應(yīng)用前景。