謝若冰,李茂軍,李宜偉,胡建文
長(zhǎng)沙理工大學(xué)電氣與信息工程學(xué)院,長(zhǎng)沙 410114
近年來(lái),我國(guó)大、中城市的年生活垃圾產(chǎn)生量達(dá)2 億噸且同比仍呈攀升態(tài)勢(shì),許多城市面臨著“垃圾圍城”的問(wèn)題[1]。目前,國(guó)內(nèi)垃圾處理大多為人工分揀,勞動(dòng)強(qiáng)度大且效率低。隨著新冠肺炎疫情的爆發(fā),工人在處理垃圾時(shí)具有感染風(fēng)險(xiǎn)。為實(shí)現(xiàn)生活垃圾減量化、資源化、無(wú)害化處理,推進(jìn)基于人工智能的分揀自動(dòng)化是大勢(shì)所趨。實(shí)現(xiàn)分揀自動(dòng)化的前提是確定垃圾位置和識(shí)別垃圾種類,因此,垃圾檢測(cè)技術(shù)發(fā)揮著至關(guān)重要的作用。
基于機(jī)器學(xué)習(xí)和圖像處理的傳統(tǒng)垃圾檢測(cè)方法主要分為區(qū)域選擇、特征提取、圖像分類三部分[2]。Salimi等人[3]提出的垃圾檢測(cè)與分類裝置,首次使用Haar-Cascade方法檢測(cè)地面上垃圾,再結(jié)合灰度共生矩陣和方向梯度直方圖進(jìn)行紋理和形狀分析,進(jìn)而獲得一組特征,輸入到支持向量機(jī)(support vector machine,SVM)進(jìn)行分類,準(zhǔn)確率可達(dá)73.49%。這類檢測(cè)方法需手動(dòng)提取特征,在特定條件下采取特定方法可獲得較好檢測(cè)效果,但受到數(shù)據(jù)集影響較大,魯棒性差,存在檢測(cè)精度低和檢測(cè)速度慢等問(wèn)題。胡斌等人[4]提出了一種紅外光譜結(jié)合機(jī)器學(xué)習(xí)的方法,實(shí)現(xiàn)了生活垃圾高值化利用的深度分選,針對(duì)四類垃圾平均識(shí)別率能達(dá)到90%以上,但該方法只能處理部分特定種類的垃圾,且對(duì)使用環(huán)境要求較高,難以廣泛應(yīng)用。
相比于機(jī)器學(xué)習(xí)方法,深度學(xué)習(xí)技術(shù)自動(dòng)提取的特征具有較強(qiáng)層次的表達(dá)能力,更適用于檢測(cè)任務(wù)中。當(dāng)前基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要有以YOLO系列、SSD 等算法為代表的單階段目標(biāo)檢測(cè)算法和以FastRCNN為代表的兩階段目標(biāo)檢測(cè)算法。其中,YOLO系列算法具有結(jié)構(gòu)簡(jiǎn)潔、計(jì)算處理速度快等優(yōu)點(diǎn),被廣泛應(yīng)用于不同領(lǐng)域中[5]。Patel 等人[6]對(duì)比了在街道垃圾、生活密集垃圾等真實(shí)場(chǎng)景下,5 種不同模型EfficientDet、SSD、CenterNet、FasterR-CNN 以及YOLOv5 的檢測(cè)能力,由實(shí)驗(yàn)得出YOLOv5 能檢測(cè)出最多垃圾,且檢測(cè)精度最高。Ge等人[7]進(jìn)一步對(duì)YOLO系列算法作出改進(jìn),提出YOLOX系列目標(biāo)檢測(cè)算法,并與YOLOv5系列進(jìn)行對(duì)比實(shí)驗(yàn),驗(yàn)證了該系列模型性能優(yōu)于YOLOv5系列模型,具有更高的檢測(cè)精度。
隨著深度學(xué)習(xí)技術(shù)滲透到各行各業(yè),其在垃圾檢測(cè)方面的研究也取得了較大的進(jìn)展。馬雯等人[8]提出一種基于改進(jìn)FasterR-CNN的垃圾檢測(cè)與分類方法,研究表明該方法具有良好的識(shí)別率,但模型復(fù)雜,檢測(cè)速度慢。耿麗婷等人[9]提出一種改進(jìn)SSD 的可回收垃圾檢測(cè)方法,通過(guò)采用輕量化骨干網(wǎng)絡(luò)RepVGG和自適應(yīng)調(diào)節(jié)感受野尺寸的方式來(lái)提高模型推理速度和檢測(cè)精度。但該方法存在垃圾類別少,訓(xùn)練圖片目標(biāo)數(shù)量和種類單一,缺乏一定的實(shí)用性。Pan[10]提出了一種適用于垃圾分類的目標(biāo)檢測(cè)模型YOLOv3++,主要通過(guò)優(yōu)化主干網(wǎng)絡(luò)和使用遷移學(xué)習(xí)來(lái)減少計(jì)算量、參數(shù)量,提高模型的精度,實(shí)現(xiàn)了對(duì)10種可回收垃圾的高效檢測(cè)。Wang等人[11]通過(guò)使用輕量級(jí)EfficientNet 主干網(wǎng)絡(luò)和深度可分離卷積層來(lái)改進(jìn)YOLOv4算法,減少網(wǎng)絡(luò)模型的參數(shù)量。并在特征金字塔模型中,引入了一種輕量級(jí)的ECA注意機(jī)制,實(shí)現(xiàn)對(duì)不同通道特征圖重要性的權(quán)重分析。該算法在6類密集垃圾檢測(cè)中的平均精確率可達(dá)91.09%,但檢測(cè)速度有所欠缺。Zhan 等人[12]基于YOLOv5 檢測(cè)垃圾分揀站現(xiàn)場(chǎng)散亂丟棄的袋裝密集垃圾,由于現(xiàn)場(chǎng)丟棄垃圾位置相對(duì)集中,引入了EⅠoU 損失,加快收斂速度,最終算法平均精確率可達(dá)89.7%,檢測(cè)速度達(dá)0.014 frame/s。Lin 等人[13]提出一種Soft YOLOX 算法來(lái)檢測(cè)下水道井蓋處較密集的垃圾,通過(guò)使用SoftNMS算法對(duì)檢測(cè)框分?jǐn)?shù)進(jìn)行懲罰,避免漏檢現(xiàn)象,檢測(cè)精度可達(dá)91.89%。但該工作所使用數(shù)據(jù)集為特定場(chǎng)景下的特定垃圾目標(biāo),種類較少。
基于深度學(xué)習(xí)技術(shù)的垃圾檢測(cè)在精度、速度及魯棒性方面有顯著提升,但目前研究中所使用的大部分垃圾圖像數(shù)據(jù)集是單目標(biāo)和少目標(biāo)數(shù)據(jù),或者缺乏豐富的垃圾類別,不足以滿足現(xiàn)實(shí)生活中不同類型和數(shù)量的垃圾堆積在一起的實(shí)際需求。針對(duì)生活中密集遮擋、形狀多變、種類繁多的垃圾目標(biāo),現(xiàn)有算法存在目標(biāo)誤檢、漏檢以及定位框不準(zhǔn)確的問(wèn)題,從而影響檢測(cè)效果。
在實(shí)際檢測(cè)任務(wù)中,關(guān)注密集目標(biāo)的全局特征有助于減少類別混淆。由于卷積操作的感受野有限,難以捕捉全局表征,因而通常采取多次池化操作來(lái)逐漸提取全局信息,但這將會(huì)導(dǎo)致一部分信息被丟失。Dosovitskiy等人[14]將自然語(yǔ)言處理中基于自注意力機(jī)制的編碼器-解碼器模型Transformer[15]應(yīng)用在視覺識(shí)別任務(wù)中,將輸入圖像分割后進(jìn)行序列化,并通過(guò)多頭自注意力機(jī)制學(xué)習(xí)圖像序列之間的復(fù)雜依賴關(guān)系,以獲得全局表示。Liu等人[16]提出了更適用于目標(biāo)檢測(cè)任務(wù)的Swin Transformer模型,引入滑動(dòng)窗口操作和使用跨窗口連接策略,大大減少了計(jì)算量并使得窗口間進(jìn)行信息交互。
因此,為解決多類別密集垃圾檢測(cè)識(shí)別準(zhǔn)確率低、檢測(cè)框定位不夠準(zhǔn)確和待檢測(cè)目標(biāo)容易被誤檢、漏檢問(wèn)題,本文提出一種融合多頭自注意力機(jī)制改進(jìn)YOLOX-s模型的密集垃圾檢測(cè)方法,以提高待檢測(cè)垃圾的識(shí)別精度和定位精度。本文主要工作概括為:
(1)提出一種基于滑窗操作多頭自注意力機(jī)制的特征提取網(wǎng)絡(luò),該主干網(wǎng)絡(luò)引入Swin Transformer 模塊,模塊內(nèi)部自注意力機(jī)制提高了網(wǎng)絡(luò)獲得全局信息的能力,滑動(dòng)窗口操作可減少自注意力權(quán)重的計(jì)算量。
(2)在回歸初始預(yù)測(cè)框后,使用可變形卷積,對(duì)預(yù)測(cè)框進(jìn)行精細(xì)化處理,使預(yù)測(cè)框更貼近待測(cè)目標(biāo)邊緣,提高了模型的定位精度。
(3)分析模型在訓(xùn)練的不同階段,中心距離損失和寬高損失對(duì)預(yù)測(cè)框與真實(shí)框間位置和尺寸重要性程度,改進(jìn)EⅠoU損失函數(shù),引入加權(quán)系數(shù),自適應(yīng)調(diào)節(jié)中心距離損失和寬高距離在總損失函數(shù)的權(quán)重。
YOLOX在YOLOv3[17]算法的基礎(chǔ)上,進(jìn)行數(shù)據(jù)增強(qiáng)、預(yù)測(cè)分支解耦、無(wú)錨點(diǎn)以及SimOTA(simple optimal transport assignment)標(biāo)簽分配等多個(gè)方面的改進(jìn),與以往YOLO系列算法相比,在檢測(cè)精度和速度方面具有優(yōu)勢(shì)。YOLOX-s 作為YOLOX 模型的一個(gè)衍生版本,結(jié)構(gòu)簡(jiǎn)單、參數(shù)較少且方便部署。綜合考慮,本文選擇YOLOX-s作為基準(zhǔn)模型。如圖1所示為YOLOX-s網(wǎng)絡(luò)結(jié)構(gòu)圖。
圖1 YOLOX-s模型網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 YOLOX-s model network structure diagram
YOLOX-s網(wǎng)絡(luò)結(jié)構(gòu)分為4個(gè)部分:輸入端、主干網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)和預(yù)測(cè)輸出端。在進(jìn)行訓(xùn)練之前,YOLOX-s對(duì)輸入圖像同時(shí)使用Mosaic 和Mixup 兩種數(shù)據(jù)增強(qiáng)進(jìn)行預(yù)處理。主干網(wǎng)絡(luò)沿用CSPDarknet 來(lái)提取特征,該主干網(wǎng)絡(luò)通過(guò)引入CSPNet(cross stage partial network)結(jié)構(gòu),將特征圖輸入兩個(gè)分支以減少計(jì)算開銷,消除網(wǎng)絡(luò)反向優(yōu)化時(shí)的冗余梯度信息,增強(qiáng)卷積網(wǎng)絡(luò)的學(xué)習(xí)能力。頸部網(wǎng)絡(luò)采用路徑增強(qiáng)網(wǎng)絡(luò)結(jié)構(gòu)(path aggregation network,PANet),該結(jié)構(gòu)是在特征金字塔網(wǎng)絡(luò)(feature pyramid networks,F(xiàn)PN)結(jié)構(gòu)中增加了一條自底向上的路徑,能夠縮短淺層與深層特征之間的信息路徑、提高網(wǎng)絡(luò)信息傳遞能力。預(yù)測(cè)輸出端將分類和回歸分支解耦,從而產(chǎn)生一系列固定的預(yù)測(cè)集合,該集合包括預(yù)測(cè)目標(biāo)框的4 個(gè)坐標(biāo)信息、1 個(gè)目標(biāo)置信度得分,以及N個(gè)種類的預(yù)測(cè)得分。
YOLOX-s 基于無(wú)錨機(jī)制,直接預(yù)測(cè)目標(biāo)框中心的偏移量和高寬值()x,y,w,h。使用SimOTA標(biāo)簽分配策略將網(wǎng)絡(luò)生成的預(yù)測(cè)框和真實(shí)框進(jìn)行關(guān)聯(lián),首先根據(jù)中心先驗(yàn)的方法確定正樣本候選區(qū)域,再計(jì)算每個(gè)候選正樣本的代價(jià)來(lái)動(dòng)態(tài)匹配每個(gè)真實(shí)框的正樣本數(shù)。代價(jià)的公式如下所示:
其中,λ是平衡系數(shù);和是真實(shí)框與預(yù)測(cè)框之間的分類損失和回歸損失。
改進(jìn)算法繼承了YOLOX-s 的優(yōu)點(diǎn),在垃圾檢測(cè)任務(wù)中使用Mosaic 和MixUp 兩種數(shù)據(jù)增強(qiáng)策略,豐富檢測(cè)背景信息并增加重疊的垃圾數(shù)量,提高了模型的泛化能力。同時(shí),YOLOX-s 算法以無(wú)錨方式直接生成高質(zhì)量候選框,并通過(guò)SimOTA標(biāo)簽匹配方法對(duì)不同目標(biāo)匹配合適的正樣本。
在此基礎(chǔ)上,為進(jìn)一步提高YOLOX-s 算法在密集垃圾檢測(cè)中的性能,本文對(duì)YOLOX-s 的主干網(wǎng)絡(luò)進(jìn)行了改進(jìn),引入基于滑窗操作的多頭自注意力機(jī)制,使得模型能夠?qū)W習(xí)到更多全局特征信息;在預(yù)測(cè)框回歸階段使用可變形卷積,對(duì)預(yù)測(cè)框進(jìn)行精細(xì)化處理;改進(jìn)EⅠoU損失函數(shù),設(shè)置權(quán)重系數(shù),自適應(yīng)調(diào)節(jié)中心距離損失和寬高距離在總損失函數(shù)的權(quán)重。
改進(jìn)YOLOX-s 的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示,下文對(duì)其進(jìn)行詳細(xì)介紹。
圖2 改進(jìn)YOLOX-s模型網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.2 Ⅰmproved YOLOX-s model network structure diagram
針對(duì)數(shù)據(jù)集中密集垃圾類別易混淆的問(wèn)題,本文將Swin Transformer模塊集成到Y(jié)OLOX-s主干網(wǎng)絡(luò)末端,以獲取全局語(yǔ)義信息。CSP結(jié)構(gòu)和Swin Transformer模塊的結(jié)構(gòu)如圖3所示。
圖3 改進(jìn)主干網(wǎng)絡(luò)末端CSP2結(jié)構(gòu)圖Fig.3 Ⅰmproved CSP2 structure diagram at end of backbone network
假設(shè)輸入特征圖為F∈?N×M×M,在Swin Transformer模塊中先后進(jìn)行基于窗口的局部自注意力機(jī)制(window multi-headed self-attention,W-MSA)和基于滑窗操作的全局自注意力機(jī)制(shift-window multi-headed selfattention,SW-MSA)操作,模塊中的子層之間使用殘差連接。其中,局部窗口尺寸設(shè)置為。
基于窗口的多頭自注意力機(jī)制的計(jì)算過(guò)程為:
其中,Q、K、V分別為查詢、鍵和值向量;dk為輸入特征圖的通道數(shù);B為各像素相對(duì)位置偏差。通過(guò)引入B,使得各像素間保持空間位置關(guān)系,能夠避免輸入序列的位置信息丟失。自注意力的計(jì)算復(fù)雜度與輸入特征圖尺寸成線性關(guān)系[18],而W-MSA 在劃分出的小窗口內(nèi)計(jì)算自注意力,大大降低計(jì)算復(fù)雜度,但只在窗口內(nèi)部獲取信息,窗口之間無(wú)信息交流,所以無(wú)法獲取全局特征,故在經(jīng)過(guò)W-MSA操作后還需進(jìn)行SW-MSA操作。
如圖4所示,SW-MSA會(huì)將所有窗口整體在橫軸和縱軸方向向右向下滑動(dòng)個(gè)像素,使得原先的窗口被切分,重新組合為新的窗口,生成的新窗口采用跨窗口連接策略再次計(jì)算其自注意力權(quán)重,因此特征單元能在不同窗口內(nèi)進(jìn)行信息交互。SW-MSA 能使不同窗口進(jìn)行信息交互,使得網(wǎng)絡(luò)捕獲更多上下文信息。該主干網(wǎng)絡(luò)結(jié)合了卷積層和Swin Transformer的優(yōu)勢(shì),兼顧局部信息和全局信息,能夠?qū)W習(xí)更多可區(qū)分的特征。
圖4 劃分、滑動(dòng)窗口操作Fig.4 Division,sliding window operation
當(dāng)Swin Transformer 模塊應(yīng)用于網(wǎng)絡(luò)較高分辨率特征圖時(shí),為保證計(jì)算量不過(guò)大,特征圖會(huì)被劃分成多個(gè)窗口,這也意味著特征圖中的一個(gè)目標(biāo)有更大的可能被分割,劃分到不同的窗口,從而丟失上下文信息。所以相比于將Swin Transformer 模塊應(yīng)用于網(wǎng)絡(luò)較高分辨率特征圖上,Swin Transformer 模塊應(yīng)用于網(wǎng)絡(luò)最低分辨率特征圖時(shí)丟失的位置特征較少,且計(jì)算量更少。同時(shí)主干網(wǎng)絡(luò)末端特征圖是頸部特征融合網(wǎng)絡(luò)的高層特征圖輸入,頸部網(wǎng)絡(luò)能夠?qū)win Transformer模塊編碼的低分辨率特征圖的全局語(yǔ)義信息進(jìn)行傳遞,與主干網(wǎng)絡(luò)高分辨率特征圖的空間信息進(jìn)行充分融合,降低了Swin Transformer模塊帶來(lái)的位置特征丟失的影響。故本文僅將主干網(wǎng)絡(luò)末端CSP2 結(jié)構(gòu)中的1×1 卷積和3×3卷積替換為Swin Transformer模塊。
Dai 等人[19]提出的可變形卷積,引入可學(xué)習(xí)的偏移量使卷積核產(chǎn)生不規(guī)則的感受野,解決了目標(biāo)識(shí)別和檢測(cè)中的幾何變化問(wèn)題。文獻(xiàn)[20]的研究表明,可變形卷積應(yīng)用于密集物體探測(cè)器中,可優(yōu)化預(yù)測(cè)框的形狀,在不損失過(guò)多效率的情況下提升預(yù)測(cè)框定位精度。本文實(shí)現(xiàn)預(yù)測(cè)框精細(xì)化網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,在預(yù)測(cè)框回歸分支中增加了一個(gè)可變形卷積層和標(biāo)準(zhǔn)卷積層。
YOLOX-s 輸出的預(yù)測(cè)框由4 維向量(x,y,w,h)進(jìn)行編碼所得,即分別對(duì)應(yīng)預(yù)測(cè)框的中心點(diǎn)坐標(biāo)及寬高長(zhǎng)度,且預(yù)測(cè)框中心點(diǎn)到左上、右下4 條邊框的距離為為優(yōu)化預(yù)測(cè)框,手動(dòng)設(shè)置9 個(gè)固定采樣點(diǎn)(在圖6中用紫色點(diǎn)表示),將其作為可變形卷積的偏移量輸入,充分學(xué)習(xí)周圍區(qū)域的信息,再經(jīng)過(guò)一個(gè)卷積層學(xué)習(xí)4 個(gè)距離縮放因子(Δl,Δt,Δr,Δb)對(duì)預(yù)測(cè)框進(jìn)行縮放,使得縮放后的預(yù)測(cè)框中心點(diǎn)到左上右下4條邊框的距離為,中心點(diǎn)保持不變,使得預(yù)測(cè)框更接近真實(shí)框。經(jīng)過(guò)邊界框精細(xì)化操作后,將原先輸出的預(yù)測(cè)框中心點(diǎn)及的寬高(x,y,w,h),細(xì)化為預(yù)測(cè)框中心點(diǎn)及中心點(diǎn)到邊框左上右下的距離(x,y,l,t,r,b)。邊界框精細(xì)化操作原理圖如圖6所示,綠色的初始預(yù)測(cè)框經(jīng)過(guò)精細(xì)化操作后得到了更精確的橙色預(yù)測(cè)框。
在YOLOX-s 中,位置回歸損失函數(shù)使用預(yù)測(cè)框和真實(shí)框之間的交并比(ⅠoU)作為損失計(jì)算,只考慮預(yù)測(cè)框和真實(shí)框的重疊面積,無(wú)法優(yōu)化與真實(shí)框不相交的預(yù)測(cè)框,并忽視了預(yù)測(cè)框的位置信息。針對(duì)垃圾目標(biāo)具有形態(tài)各異、集中堆疊等特點(diǎn),引入Zhang等人[21]提出的EⅠoU損失函數(shù),綜合考慮了三個(gè)幾何因素,即預(yù)測(cè)框與真實(shí)框的重疊度、中心點(diǎn)距離和長(zhǎng)寬差值。其計(jì)算公式定義為:
EⅠoU 損失只是重疊損失、中心距離損失和寬高損失3個(gè)部分的簡(jiǎn)單疊加。在訓(xùn)練的不同階段,中心距離損失和寬高損失對(duì)預(yù)測(cè)框與真實(shí)框間位置和尺寸重要性程度不同,故本文此基礎(chǔ)上,提出加權(quán)EⅠoU 損失函數(shù),其計(jì)算公式如下:
式中,λ為加權(quán)系數(shù),λ∈[0,1] 。當(dāng)λ取值為0 時(shí),加權(quán)EⅠoU損失退化為DⅠoU損失[22]。然而手動(dòng)調(diào)整損失權(quán)重方式需多次試驗(yàn)確認(rèn)最佳λ,實(shí)用性不高。
預(yù)測(cè)框與真實(shí)框間的ⅠoU 值隨著訓(xùn)練迭代逐漸變化,因此,將λ設(shè)置為ⅠoU 值,在訓(xùn)練初期,預(yù)測(cè)框與真實(shí)框的ⅠoU 值較小,中心距離損失占主導(dǎo)地位,促使預(yù)測(cè)框向真實(shí)框靠近;當(dāng)訓(xùn)練到一定程度后,預(yù)測(cè)框與真實(shí)框的ⅠoU 值都為較大的值,高寬損失占主導(dǎo)地位,促使預(yù)測(cè)框更貼近真實(shí)框。由式(4)得:
綜上所述,本文使用加權(quán)ⅠoU-EⅠoU損失對(duì)YOLOX-s算法中的ⅠoU損失進(jìn)行替換,改進(jìn)后的總損失函數(shù)為:
其中,bbox為未經(jīng)精細(xì)化的預(yù)測(cè)框;bboxgt為真實(shí)框;bboxrefine為精細(xì)化后的預(yù)測(cè)框;在YOLOX-s 算法中,ⅠoU損失函數(shù)權(quán)重系數(shù)取值為5。本文所提算法中,γ1、γ2分別為未精細(xì)化和精細(xì)化預(yù)測(cè)框權(quán)重系數(shù),通過(guò)實(shí)驗(yàn)驗(yàn)證,本文取值為γ1=2,γ2=3 最佳。
實(shí)驗(yàn)使用海華研究所開源的多垃圾目標(biāo)檢測(cè)數(shù)據(jù)集,共2 998 張RGB 圖片,分辨率為1 920×1 080,包含204個(gè)類別的垃圾。該數(shù)據(jù)集按照8∶2的比例分為訓(xùn)練集和測(cè)試集,所有標(biāo)簽采用COCO2017格式。不同于大部分垃圾數(shù)據(jù)集,在該數(shù)據(jù)集中,一張圖片包括多個(gè)類別的垃圾實(shí)例,實(shí)例密集堆放在一起且部分實(shí)例間存在遮擋,更符合現(xiàn)實(shí)生活中的垃圾檢測(cè)狀況。
在訓(xùn)練過(guò)程中,由于訓(xùn)練集數(shù)量較少,為避免模型存在過(guò)擬合問(wèn)題,采用數(shù)據(jù)增強(qiáng)策略對(duì)訓(xùn)練集圖像進(jìn)行預(yù)處理,以提高模型泛化能力。數(shù)據(jù)增強(qiáng)方式和部分樣本數(shù)據(jù)增強(qiáng)后可視化如表1和圖7所示。
表1 數(shù)據(jù)增強(qiáng)方式Table 1 Data augmention method
圖7 對(duì)部分樣本進(jìn)行數(shù)據(jù)增強(qiáng)Fig.7 Data enhancement on subset of samples
實(shí)驗(yàn)服務(wù)器Linux 操作系統(tǒng)為Ubun18.04 版本,配置如下:CPU為AMD EPYC 7302,內(nèi)存為64 GB,GPU為NVⅠDⅠA GeForce RTX 3090,顯存為24 GB;深度學(xué)習(xí)開發(fā)環(huán)境為Pytorch1.11.0,CUDA11.3,CuDNN8.2.0。
模型使用隨機(jī)梯度下(SGD)進(jìn)行訓(xùn)練,輸入圖像尺寸均歸一化為608×608。實(shí)驗(yàn)設(shè)置訓(xùn)練300個(gè)epoch,批量大小為16,共進(jìn)行45 000 次迭代。初始學(xué)習(xí)率設(shè)為0.01,使用Cosine學(xué)習(xí)機(jī)制,權(quán)重衰減為0.000 5。
在目標(biāo)檢測(cè)算法測(cè)試中,通常使用平均精度均值(mean average precision,MAP)、精確率(precision,P)、召回率(recall,R)和每秒傳輸幀數(shù)(frames per second,F(xiàn)PS)作為檢測(cè)算法的評(píng)價(jià)指標(biāo),計(jì)算公式為:
式中,NTP為正確檢測(cè)數(shù);NFP為誤檢數(shù);NFN為漏檢數(shù);APi為第i類的P-R曲線積分;t為檢測(cè)每張圖像花費(fèi)的平均時(shí)間。本文主要以mAP50:95、mAP50和FPS為測(cè)試評(píng)估指標(biāo),mAP50:95表示IoU=0.5:0.95,步長(zhǎng)為0.05時(shí)的平均精度,mAP50表示IoU=0.5 時(shí)的平均精度,F(xiàn)PS表示每秒檢測(cè)圖像數(shù)量。
3.4.1 消融實(shí)驗(yàn)
為了驗(yàn)證本文改進(jìn)模塊對(duì)密集垃圾檢測(cè)的有效性,本小節(jié)以YOLOX-s 為基線模型,在204 類垃圾目標(biāo)數(shù)據(jù)集上進(jìn)行消融實(shí)驗(yàn)。在YOLOX-s 基線的基礎(chǔ)上,依次加入Swin Transformer模塊、精細(xì)化邊框操作以及加權(quán)ⅠoU-EⅠoU損失函數(shù),實(shí)驗(yàn)結(jié)果如表2所示,Parameter表示模型參數(shù)量。從表2中可以看出,引入Swin Transformer模塊后mAP50:95和mAP50分別提升0.2個(gè)百分點(diǎn)和0.5個(gè)百分點(diǎn);精細(xì)化邊框操作單獨(dú)加入時(shí),mAP50:95和mAP50分別提高0.6 個(gè)百分點(diǎn)和1.1 個(gè)百分點(diǎn);單獨(dú)使用加權(quán)ⅠoU-EⅠoU 損失對(duì)原損失函數(shù)進(jìn)行替換時(shí),mAP50提升1.2個(gè)百分點(diǎn)。而當(dāng)Swin Transformer模塊、精細(xì)化邊框操作和加權(quán)ⅠoU-EⅠoU 損失3 種改進(jìn)策略損失共同加入時(shí),檢測(cè)效果會(huì)有大幅提升,3種改進(jìn)策略相輔相成。
表2 消融實(shí)驗(yàn)結(jié)果Table 2 Ablation experimental results
由表2 可以得到,在密集垃圾檢測(cè)中,本文改進(jìn)YOLOX-s 算法的mAP50:95和mAP50分別達(dá)到80.5%和92.5%,與基線模型相比分別提高了1.7 個(gè)百分點(diǎn)和2.5個(gè)百分點(diǎn)。在檢測(cè)速度上,本文所提算法與基線模型相比降低了19 frame/s,其重要原因是Swin Transformer模塊和精細(xì)化操作的引入增加了一定的計(jì)算量和網(wǎng)絡(luò)參數(shù)量,但本文所提算法每秒檢測(cè)圖像數(shù)量為112 frame,仍然大大滿足在實(shí)際垃圾分揀過(guò)程中的實(shí)時(shí)性要求。
圖8 為利用grad-CAM 算法可視化主干網(wǎng)絡(luò)引入Swin Transformer 模塊前后輸出的熱力圖,紅色表示網(wǎng)絡(luò)關(guān)注度最高的區(qū)域,黃色、藍(lán)色區(qū)域的關(guān)注度逐漸變?nèi)酢D8(b)、圖8(c)可以看出,改進(jìn)主干網(wǎng)絡(luò)網(wǎng)絡(luò)關(guān)注的區(qū)域更加全面,其類激活映射區(qū)域在各類待測(cè)目標(biāo)上都比較集中,而更少關(guān)注到背景區(qū)域,驗(yàn)證了該網(wǎng)絡(luò)具有更強(qiáng)的特征提取能力和對(duì)于背景中無(wú)效特征的分辨能力。
圖8 主干網(wǎng)絡(luò)改進(jìn)前后熱力圖Fig.8 Heat map before and after trunk network improvement
圖9 中展示的是預(yù)測(cè)目標(biāo)邊界框精細(xì)化前和精細(xì)化后經(jīng)過(guò)非極大值抑制篩選的輸出結(jié)果,白色表示真實(shí)框,綠色表示精細(xì)化前的檢測(cè)框,紅色表示精細(xì)化后的檢測(cè)框。從圖中可以看出,對(duì)于邊緣清晰和高寬相差不大的待測(cè)物體,精細(xì)化前后的預(yù)測(cè)框相差不大。而邊緣較為模糊的待測(cè)物體,如口罩,精細(xì)化前的預(yù)測(cè)框無(wú)法很好的將其包圍,預(yù)測(cè)框大小普遍小于待測(cè)物體的實(shí)際大小;高寬相差較大的待測(cè)物體,如:針管、竹制品等,精細(xì)化前的目標(biāo)預(yù)測(cè)框無(wú)法精確地包圍其較長(zhǎng)的一邊。經(jīng)過(guò)精細(xì)化將邊框拉長(zhǎng),使得目標(biāo)預(yù)測(cè)框更好地包圍待測(cè)物體。故目標(biāo)邊界框精細(xì)化能提高難以回歸的待測(cè)物體的定位精度。值得注意地是,圖9中間的竹制品被針管嚴(yán)重遮擋,精細(xì)化之后的檢測(cè)框雖然也不能很好地將其包圍,但是也有一定的改善作用。
圖9 預(yù)測(cè)目標(biāo)邊界框精細(xì)化前后的輸出結(jié)果Fig.9 Predict output before and after refinement of target bounding box
3.4.2 加權(quán)EIoU性能分析
本文進(jìn)行了一系列的對(duì)比實(shí)驗(yàn),以展示加權(quán)ⅠoUEⅠoU損失的性能優(yōu)勢(shì)。圖10為YOLOX-s算法、單獨(dú)加入加權(quán)ⅠoU-EⅠoU 損失改進(jìn)的YOLOX-s 算法和本文所提算法在訓(xùn)練過(guò)程中的損失曲線對(duì)比,分別由藍(lán)色、橙色、綠色曲線所表示。從圖中可以看出,YOLOX-s算法最終訓(xùn)練損失為1.84,單獨(dú)使用加權(quán)ⅠoU-EⅠoU 損失改進(jìn)的YOLOX-s 算法和本文算法的損失分別為1.43 和1.42,且損失曲線比YOLOX-s 算法更快達(dá)到最低點(diǎn)。表明引入加權(quán)EⅠoU 損失改進(jìn)網(wǎng)絡(luò)有助于降低損失,加快網(wǎng)絡(luò)收斂速度。同時(shí)由曲線圖可以看出,本文所提算法的收斂性比單獨(dú)加入加權(quán)ⅠoU-EⅠoU 的YOLOX-s 算法更勝一籌。
圖10 加權(quán)ⅠoU-EⅠoU訓(xùn)練損失曲線對(duì)比Fig.10 Comparison of weighted ⅠoU-EⅠoU training loss curve
表3 為在本文所提算法中使用ⅠoU、GⅠoU、CⅠoU、EⅠoU 損失和取不同權(quán)重系數(shù)時(shí)加權(quán)EⅠoU 損失時(shí)的檢測(cè)結(jié)果對(duì)比。其中mAP75表示IoU=0.75時(shí)的平均精度,mAPsmall、mAPmedium、mAPlarge分別表示IoU=0.5:0.95,步長(zhǎng)為0.05 時(shí),大中小三種不同尺寸目標(biāo)的平均精度。由表3可以看出,以ⅠoU損失為基準(zhǔn)時(shí),GⅠoU損失、權(quán)重系數(shù)取0 的加權(quán)EⅠoU(DⅠoU)損失、權(quán)重系數(shù)取0.25、0.75的加權(quán)EⅠoU 損失的整體精度都有所下降;CⅠoU 的mAP50:95和mAP50分別提升了0.4 個(gè)百分點(diǎn)和0.8 個(gè)百分點(diǎn),但mAP75下降了0.3 個(gè)百分點(diǎn);EⅠoU、權(quán)重系數(shù)取0.5、1 的加權(quán)EⅠoU 損失和加權(quán)ⅠoU-EⅠoU 損失的整體精度都有所提升,其中加權(quán)ⅠoU-EⅠoU 損失的提升效果最佳,mAP50:95提升了1個(gè)百分點(diǎn),mAP50提升了1.3個(gè)百分點(diǎn),mAP75提升了0.9 個(gè)百分點(diǎn)。值得注意的是,在對(duì)比的所有損失函數(shù)中,權(quán)重系數(shù)取1 的加權(quán)EⅠoU 對(duì)于小目標(biāo)的檢測(cè)精度最好,權(quán)重系數(shù)取0.5的加權(quán)EⅠoU對(duì)于中等目標(biāo)的檢測(cè)精度最好,加權(quán)ⅠoU-EⅠoU 對(duì)于大目標(biāo)的檢測(cè)精度最好。實(shí)驗(yàn)結(jié)果表明,使用加權(quán)EⅠoU 損失時(shí),可通過(guò)使用不同的權(quán)重系數(shù),來(lái)著重提升對(duì)大、中、小三種尺度物體其中一種的檢測(cè)效果。
表3 不同損失函數(shù)性能對(duì)比實(shí)驗(yàn)結(jié)果Table 3 Performance of different loss functions compares experimental results單位:%
3.4.3 與不同算法對(duì)比實(shí)驗(yàn)
為了檢驗(yàn)提出的改進(jìn)算法對(duì)多類別垃圾密集檢測(cè)精度和效率的有效性和先進(jìn)性,本文進(jìn)一步將其與目前較為流行目標(biāo)檢測(cè)算法進(jìn)行對(duì)比,包括兩階段目標(biāo)檢測(cè)算法Faster-RCNN,單階段目標(biāo)檢測(cè)算法SSD、RetinaNet、EffcientDet-d0、YOLOv3、YOLOv4、YOLOv5-s、YOLOX-s,以及同類SOTA 算法ECA_ERFB_s-YOLOv3[23]。訓(xùn)練時(shí)均使用相同實(shí)驗(yàn)設(shè)備、數(shù)據(jù)集和參數(shù),對(duì)比實(shí)驗(yàn)結(jié)果如表4 所示。由表4 可以得出,在204 類垃圾密集檢測(cè)中,本文算法的mAP50:95和mAP50值均最大,具有更高的檢測(cè)精度,與上述算法相比,mAP50:95和mAP50分別提高了1.7~19.7個(gè)百分點(diǎn)和3.1~11.4個(gè)百分點(diǎn)。改進(jìn)后的特征提取網(wǎng)絡(luò)融合多頭自注意力機(jī)制,使得網(wǎng)絡(luò)關(guān)注全局信息特征,能夠減少待檢測(cè)目標(biāo)被遮擋誤檢情況,并使用可變形卷積優(yōu)化預(yù)測(cè)框的位置,提高尺度相差較大和由堆疊遮擋導(dǎo)致邊界模糊的待檢測(cè)目標(biāo)的定位精度,協(xié)同加權(quán)ⅠoU-EⅠoU 損失進(jìn)一步加快網(wǎng)絡(luò)收斂速度,最終使得本文所提算法對(duì)密集遮擋目標(biāo)的檢測(cè)能力有所提高。本文算法的檢測(cè)速度達(dá)112 frame/s,遠(yuǎn)快于Faster R-CNN、SSD、RetinaNet、EffcientDet-d0、YOLOv3-v4 和ECA_ERFB_s-YOLOv3,略低于YOLOv5-s和YOLOX-s算法,大大滿足實(shí)時(shí)監(jiān)測(cè)需求(FPS≥30 frame/s)。
表4 不同算法對(duì)比實(shí)驗(yàn)結(jié)果Table 4 Comparison of experimental results of different algorithms
為了更加直觀地呈現(xiàn)本文算法的檢測(cè)性能優(yōu)勢(shì),選取上述算法中檢測(cè)性能較好的YOLOv5-s、YOLOX-s和本文算法的部分檢測(cè)圖像結(jié)果進(jìn)行對(duì)比說(shuō)明,如圖11所示。圖11(a)、(b)、(c)分別為YOLOv5-s算法、YOLOX-s算法和本文算法的檢測(cè)結(jié)果圖。其中,置信度閾值取0.25,ⅠoU 閾值取0.45。從上述對(duì)比圖中可以看出,YOLOv5-s和YOLOX-s算法在圖中有多處誤檢(紅色箭頭指向),如將筆、狗尿布、廢棄針管識(shí)別為其相似物體;對(duì)于如最左檢測(cè)圖所示垃圾更為密集的場(chǎng)景,使用YOLOv5-s 和YOLOX-s 算法檢測(cè)將會(huì)出現(xiàn)重復(fù)檢測(cè)框(黃色箭頭指向),而本文算法沒有這類問(wèn)題;此外,最右YOLOv5-s和YOLOX-s算法的檢測(cè)圖中,一次性塑料餐具被燈泡部分遮擋,導(dǎo)致其均識(shí)別率低且只有部分在其預(yù)測(cè)框中。綜上所述,本文算法的誤檢現(xiàn)象更少,對(duì)于大部分類別的垃圾檢測(cè)精度更高。同時(shí),對(duì)于邊緣模糊和部分被遮擋的垃圾,本文算法能夠更精確地定位其位置和邊框。
圖11 不同算法檢測(cè)結(jié)果對(duì)比圖Fig.11 Comparison of detection results of different algorithms
針對(duì)密集堆疊垃圾形狀、顏色多變導(dǎo)致識(shí)別精度、定位精度較低以及存在誤檢現(xiàn)象等問(wèn)題,本文提出了一種融合多頭自注意力機(jī)制的改進(jìn)YOLOX-s模型的密集垃圾檢測(cè)方法。在這項(xiàng)工作中,基于滑框操作自注意力機(jī)制改進(jìn)的主干網(wǎng)絡(luò)可以獲得更多的全局信息、學(xué)習(xí)更多可區(qū)分的特征,更適用于垃圾密集堆疊的場(chǎng)景;通過(guò)可變形卷積對(duì)目標(biāo)預(yù)測(cè)框進(jìn)行精細(xì)化操作,解決部分垃圾邊緣模糊且長(zhǎng)寬尺度相差大導(dǎo)致定位框不準(zhǔn)確的問(wèn)題;引入加權(quán)ⅠoU-EⅠoU損失函數(shù),進(jìn)一步加快模型收斂速度。在多垃圾目標(biāo)檢測(cè)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)來(lái)對(duì)本文算法進(jìn)行評(píng)價(jià),結(jié)果表明,本文提出的改進(jìn)算法檢測(cè)精度mAP50:95可達(dá)80.5%,mAP50可達(dá)92.5%,并且相比于主流的單階段和兩階段目標(biāo)檢測(cè)算法,其在精確度和檢測(cè)速度上都具一定的優(yōu)勢(shì)。
在后續(xù)的研究中,考慮從輕量化模型入手,優(yōu)化本文算法的檢測(cè)速度,使其能夠部署在工業(yè)機(jī)器人,應(yīng)用于垃圾分揀生產(chǎn)線、街道垃圾實(shí)時(shí)檢測(cè)等場(chǎng)景。