劉 將,涂振宇,李元漢,李 豪
(南昌工程學(xué)院信息工程學(xué)院,江西 南昌 330099)
近幾年,伴隨著機(jī)器學(xué)習(xí)和深度學(xué)習(xí)技術(shù)的不斷發(fā)展,目標(biāo)檢測(cè)技術(shù)作為計(jì)算機(jī)視覺(CV)領(lǐng)域的主要方向,取得了巨大進(jìn)步。目前,目標(biāo)檢測(cè)技術(shù)在細(xì)胞檢測(cè)、面部檢測(cè)、交通檢測(cè)、行為識(shí)別等多個(gè)領(lǐng)域取得重大突破,它是利用數(shù)字圖像處理、深度學(xué)習(xí)等相關(guān)技術(shù),它的主要任務(wù)是選定圖像中的目標(biāo),對(duì)選中目標(biāo)同時(shí)進(jìn)行定位與分類。早期的目標(biāo)檢測(cè)算法一般由人工提取目標(biāo)特征,所以大多數(shù)模型檢測(cè)精度較低。近些年,隨著硬件算力的不斷進(jìn)步,目標(biāo)檢測(cè)算法分為單階段和雙階段兩大類,而YOLO 系列算法是經(jīng)典的單階段目標(biāo)檢測(cè)算法。
2020 年6 月10 日,Ultralytics LLC 公司發(fā)布了最新的YOLOv5 算法,該算法相較于先前版本在檢測(cè)速度和精度上有了新突破。YOLOv5 是一個(gè)高靈活性、通用的目標(biāo)檢測(cè)模型,可以利用它來進(jìn)行快速部署。目前,海洋中大約存在6600 萬噸垃圾,其中大部分都在水下,對(duì)海洋生態(tài)系統(tǒng)構(gòu)成極大的威脅。為盡快解決海洋污染問題,我國(guó)對(duì)海洋垃圾的清理格外重視,但人工清理海洋垃圾的工作既復(fù)雜又危險(xiǎn),因此,需要海洋垃圾清理機(jī)器人進(jìn)行協(xié)助捕撈。本文將基于YOLOv5 模型進(jìn)行改進(jìn),并將其運(yùn)用于海洋垃圾目標(biāo)檢測(cè)。針對(duì)YOLOv5 目標(biāo)檢測(cè)算法中小目標(biāo)漏檢及特征提取能力不足等問題,對(duì)YOLOv5 的主干網(wǎng)絡(luò)(Backbone)部分進(jìn)行改進(jìn),并在含有11 類海洋垃圾的圖像數(shù)據(jù)集上進(jìn)行多次實(shí)驗(yàn),旨為海洋垃圾清理機(jī)器人提供算法支持。
目前,YOLOv5 算法具有四種模型[1]。YOLOv5s是其中網(wǎng)絡(luò)深度和寬度最小的模型,越小的模型檢測(cè)速度越快,也越容易部署到移動(dòng)設(shè)備上。
YOLOv5s結(jié)構(gòu)分為Input、Backbone、Neck、Prediction 四個(gè)部分。Input 部分采用馬賽克(Mosaic)數(shù)據(jù)增強(qiáng)的方式,該方法每次使用四張圖片進(jìn)行隨機(jī)操作,最后合為一張圖片,如圖1 所示,它可以豐富檢測(cè)目標(biāo)的背景,防止網(wǎng)絡(luò)模型過擬合[2];Backbone 部分主要由CBS、CSP、SPPF 等模塊組成。其中,CBS 模塊可以有效提取圖像特征,CSP 模塊能夠加快網(wǎng)絡(luò)推理速度,SPPF 為空間金字塔池化層,它可以增大圖像感受野和提升網(wǎng)絡(luò)計(jì)算速度;Neck 端包含了FPN 和PAN 兩部分[3],兩者結(jié)合提升了不同尺度特征的融合效果;Prediction 部分為網(wǎng)絡(luò)的預(yù)測(cè)環(huán)節(jié),共輸出三組預(yù)測(cè)結(jié)果,其中每組包含了預(yù)測(cè)框的偏移量、置信度和目標(biāo)屬于每個(gè)類別的條件概率[4]。
圖1 Mosaic數(shù)據(jù)增強(qiáng)后樣本圖像
首先,在主干網(wǎng)絡(luò)的每一個(gè)CSP 模塊后都添加一個(gè)Attention-k 結(jié)構(gòu)。其次,將主干網(wǎng)絡(luò)的SPPF 模塊替換為SPPF_RFB 模塊,改進(jìn)后的模型結(jié)構(gòu)如圖2 所示,其中k 為圖6 的Attention-K 結(jié)構(gòu),SPPF_RFB 模塊如圖7所示。
圖2 改進(jìn)后的模型結(jié)構(gòu)圖
自從完全注意力(Full-Attention)網(wǎng)絡(luò)出現(xiàn)以來,Transformer 迅速成為自然語言處理(NLP)[5]中的主流架構(gòu)。目前,研究者們又提出Vision Transformer[6],并在分類任務(wù)中優(yōu)于卷積神經(jīng)網(wǎng)絡(luò)(CNN)。基于Transformer 的視覺骨干網(wǎng)絡(luò)快速霸占了各種CV 任務(wù)的排行榜,包括目標(biāo)檢測(cè)、語義分割等。但卷積網(wǎng)絡(luò)和自注意力仍然存在一些缺點(diǎn)[7]。卷積運(yùn)算采用靜態(tài)權(quán)重,缺乏適應(yīng)性而自注意力(Self-Attention)起先是為NLP 而設(shè)計(jì)。在處理CV 任務(wù)時(shí),它具有三個(gè)缺點(diǎn)。①它將圖像作為一維序列,忽略了圖像本身的二維結(jié)構(gòu)。②二次復(fù)雜度不易處理高分辨率圖像。③它僅實(shí)現(xiàn)了空間適應(yīng)性,而忽略了通道維度的適應(yīng)性。對(duì)于大多數(shù)視覺任務(wù),不同的通道通常代表不同的對(duì)象,所以通道適應(yīng)性對(duì)CV 任務(wù)特別重要。為了解決上述問題,本文使用了新型的大核注意力(Large Kernel Attention,LKA)機(jī)制[8]。
LKA 模塊具有卷積網(wǎng)絡(luò)和自注意力的特點(diǎn),包括獲取局部通道信息和空間維度的適應(yīng)性。LKA 模塊將大核卷積分解為三個(gè)部分:深度卷積(DW-Conv)、深度膨脹卷積(DW-D-Conv)和點(diǎn)卷積(1×1Conv)。如圖3所示,其中黑色網(wǎng)格為中心點(diǎn)。
圖3 大核卷積分解圖
具體來說,一個(gè)K×K 卷積被分解為一個(gè)關(guān)于膨脹率(d)的(K/d)×(K/d)深度膨脹卷積,一個(gè)(2d-1)×(2d-1)的深度卷積和一個(gè)1×1卷積。DW-Conv可以獲取圖像的局部上下文信息,DW-D-Conv 則提供深度方向的擴(kuò)張卷積,使網(wǎng)絡(luò)具有長(zhǎng)期依賴性,1×1卷積,可以讓網(wǎng)絡(luò)獲得通道維度的適應(yīng)性。
LKA 模塊不僅能夠減少網(wǎng)絡(luò)模型參數(shù),降低計(jì)算成本,而且能夠評(píng)估圖像中每個(gè)點(diǎn)的重要性,分配有限的信息處理資源給圖像重要的部分[9]。大核注意力機(jī)制結(jié)合了自注意力和卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)點(diǎn),考慮了局部語境信息、大感受野和動(dòng)態(tài)過程。此外,它也實(shí)現(xiàn)了空間維度和通道維度的適應(yīng)性。LKA 模塊結(jié)構(gòu)如圖4所示。
圖4 LKA結(jié)構(gòu)圖
LKA 模塊的計(jì)算公式見式⑴、式⑵。其中,B 為輸入特征,A為階段輸出特征。
經(jīng)過多次實(shí)驗(yàn)發(fā)現(xiàn),LKA 模塊獲取全局通道信息能力較差,空間維度適應(yīng)性一般。因此,本文在大核注意力模塊中引入空間注意力和通道注意力模塊,即LKA-K 模塊,如圖5 所示。具體來說,將輸入分為兩個(gè)部分。第一部分是將通道注意力和輸入進(jìn)行相乘操作。第二部分將空間注意力與深度卷積、深度膨脹卷積相融合。最后,將兩部分1×1卷積的結(jié)果做相乘操作。
圖5 LKA-K結(jié)構(gòu)圖
空間注意力能夠讓圖像數(shù)據(jù)在空間中進(jìn)行不斷變換,并自動(dòng)獲取圖像重要位置特征。空間注意力通過對(duì)模型輸入的不同位置進(jìn)行加權(quán)操作,讓模型能夠更好地選擇不同位置的圖像特征,從而提高網(wǎng)絡(luò)的分類精度。此外,空間注意力能夠有效處理圖片數(shù)據(jù),使模型具有更好的魯棒性。它還能夠減少冗余計(jì)算,有利于提高處理大數(shù)據(jù)時(shí)的計(jì)算效率。空間注意力能夠生成一組權(quán)重,用于理解圖像每個(gè)位置的重要程度。本文將空間注意力和深度膨脹卷積相結(jié)合,能夠有效解決大核注意力模塊在空間維度適應(yīng)性不足的問題。
通道注意力通過對(duì)輸入層的所有通道進(jìn)行加權(quán)處理,然后獲得加權(quán)后的圖像特征圖。這種加權(quán)方式一般使用全局平均池化來實(shí)現(xiàn),即對(duì)通道特征圖進(jìn)行平均池化,然后對(duì)所有權(quán)重值進(jìn)行批量歸一化操作。本文將通道注意力和大核注意力相結(jié)合,目的是進(jìn)一步提高大核注意力的全局通道信息能力。
由于數(shù)據(jù)集中小目標(biāo)的形狀、顏色非常復(fù)雜,甚至出現(xiàn)一些細(xì)長(zhǎng)的垃圾或細(xì)微的金屬等,給檢測(cè)任務(wù)帶來一定的困難。因此,本文通過改進(jìn)大核注意力機(jī)制有效提高模型的小目標(biāo)檢測(cè)性能。
首先,本文提出了一種基于大核注意力機(jī)制的新型模塊,即Attention-L 網(wǎng)絡(luò),目的是為了分配有限的信息處理資源給圖像重要的部分,提升模型的小目標(biāo)特征提取能力。雖然Attention-L 結(jié)構(gòu)簡(jiǎn)單,但是通過實(shí)驗(yàn)發(fā)現(xiàn),在主干網(wǎng)絡(luò)的每一個(gè)CSP 結(jié)構(gòu)后添加一個(gè)Attention-L 結(jié)構(gòu)。該模塊具有簡(jiǎn)單的層次結(jié)構(gòu),在原始LKA 模塊前后分別加上一個(gè)1×1 卷積來保證網(wǎng)絡(luò)模型前后通道數(shù)相同,這樣還可以減少網(wǎng)絡(luò)模型的參數(shù)量,有利于加快模型訓(xùn)練速度。同時(shí),在第一個(gè)1×1卷積后添加了Gelu 激活函數(shù),Gelu 又稱高斯誤差線性單元,它能夠有效地解決深層網(wǎng)絡(luò)梯度消失的問題,并且可以防止網(wǎng)絡(luò)模型過擬合。
之后,本文提出一種基于改進(jìn)大核注意力機(jī)制的新型模塊,即Attention-K 網(wǎng)絡(luò)。Attention-K 模塊只是將Attention-L 模塊中LKA 結(jié)構(gòu)替換為L(zhǎng)KA-K 結(jié)構(gòu),目的是讓模型對(duì)大量圖像數(shù)據(jù)在空間中進(jìn)行不斷變換,并獲取圖像重要特征,以及對(duì)所有空間信息進(jìn)行縮減,然后在通道維度對(duì)圖像進(jìn)行特征學(xué)習(xí)。實(shí)驗(yàn)發(fā)現(xiàn),該模塊能夠有效提升模型的小目標(biāo)特征提取能力,Attention-K結(jié)構(gòu)如圖6所示。
圖6 Attention-K結(jié)構(gòu)圖
SPPF(空間金字塔池化)主要是對(duì)輸入特征圖做三個(gè)不同大小的池化操作。該模塊通過多尺度池化的方式,獲取了輸入特征圖中不同尺度的特征信息,從而提高了模型的準(zhǔn)確性和運(yùn)算效率。
但通過實(shí)驗(yàn)發(fā)現(xiàn),SPPF模塊獲取的圖像局部信息過多,導(dǎo)致全局信息少量丟失,從而影響模型的準(zhǔn)確率。因此,本文引入新型的ResNet_RFB 模塊,該模塊運(yùn)用了殘差網(wǎng)絡(luò)的思想,使用卷積不斷優(yōu)化深層網(wǎng)絡(luò),通過增加網(wǎng)絡(luò)深度來擴(kuò)大特征圖的感受野。在此基礎(chǔ)上,本文也運(yùn)用了BasicRFB 系列模塊。它能夠保證檢測(cè)速度的同時(shí)進(jìn)一步擴(kuò)大特征圖的感受野,從而加強(qiáng)網(wǎng)絡(luò)的小目標(biāo)特征提取能力。
具體來說,本文在主干網(wǎng)絡(luò)的SPPF模塊中加入了ResNet_RFB,即SPPF_RFB,如圖7所示。ResNet_RFB模塊由BasicRFB、BasicRFB_A、兩個(gè)普通卷積和一個(gè)1×1卷積組成,如圖8所示。
圖7 SPPF_RFB結(jié)構(gòu)圖
圖8 ResNet_RFB結(jié)構(gòu)圖
本次實(shí)驗(yàn)數(shù)據(jù)來自J-EDI 海洋垃圾數(shù)據(jù)集。該數(shù)據(jù)集具有從現(xiàn)實(shí)世界環(huán)境中捕獲的各種不同類型海洋垃圾圖像,圖像中具有遮擋和生長(zhǎng)狀態(tài)的各種物體。所有圖像都在海洋垃圾、植物和動(dòng)物等對(duì)象以及遙控?zé)o人潛水器上標(biāo)有邊界框和類別。本文選取4576 張作為訓(xùn)練集,選取1144 張作為測(cè)試集。圖9 是訓(xùn)練集中所有標(biāo)簽大小的分布圖,橫縱坐標(biāo)分別表示所有標(biāo)簽框的寬度和高度。通過觀察發(fā)現(xiàn),圖像左下角聚集了相對(duì)較多的點(diǎn),說明該數(shù)據(jù)集中存在多個(gè)小目標(biāo),與本文所研究的問題和背景相契合。實(shí)驗(yàn)平臺(tái)配置見表1。
表1 實(shí)驗(yàn)平臺(tái)配置表
圖9 訓(xùn)練集標(biāo)簽的大小分布圖
完成環(huán)境配置后,在相同超參數(shù)的前提下,進(jìn)行模型訓(xùn)練和測(cè)試。其中,訓(xùn)練epochs 設(shè)為400,batchsize 設(shè)為10,num-workers 設(shè)為2,優(yōu)化器為SGD,lr 初始值設(shè)為0.01,采取mAP50:95、精確率(P)、召回率(R)等指標(biāo)作為模型性能的評(píng)價(jià)指標(biāo)。精確率是指檢測(cè)出的正樣本中真實(shí)正樣本的概率,召回率指在實(shí)際的正樣本中檢測(cè)出正樣本的概率,計(jì)算公式如下:
其中,TP 表示正確檢測(cè)為正樣本的目標(biāo)個(gè)數(shù),F(xiàn)P 表示將負(fù)樣本錯(cuò)誤檢測(cè)為正樣本的目標(biāo)個(gè)數(shù),F(xiàn)N表示正樣本被錯(cuò)誤檢測(cè)為負(fù)樣本的目標(biāo)個(gè)數(shù)[10]。mAP50:95 表示IOU 閾值為0.5 到0.95 時(shí)所有目標(biāo)類別的平均檢測(cè)精度,用來反映算法對(duì)不同類別目標(biāo)的綜合分類能力,計(jì)算公式如下:
在式⑸中,N 表示測(cè)試集中的樣本總數(shù),K 為數(shù)據(jù)集中類別個(gè)數(shù),P(i)是模型預(yù)測(cè)第i 個(gè)樣本時(shí)精準(zhǔn)率的值,R(i)表示為模型樣本數(shù)從i-1變?yōu)閕時(shí),召回率的實(shí)時(shí)變化情況。
本文進(jìn)行消融實(shí)驗(yàn)評(píng)估不同模塊在相同實(shí)驗(yàn)條件下對(duì)目標(biāo)檢測(cè)算法性能造成的影響。消融實(shí)驗(yàn)中選擇YOLOv5s的6.0版本作為基礎(chǔ)模型。設(shè)輸入圖像分辨率為640×640,訓(xùn)練400 次后的結(jié)果如表2、圖10所示。(用“√”表示改進(jìn),用“-”表示未改進(jìn))
表2 消融實(shí)驗(yàn)
圖10 模型mAP50:95對(duì)比圖
模型①為原YOLOv5s 網(wǎng)絡(luò),模型的mAP50:95 為63.6%。模型②在Backbone 部分引入了Attention-L模塊,與模型①相比,其mAP50:95提升1.2%。模型③在Backbone 部分引入了Attention-K 模塊,與模型①和模型②相比,其mAP50:95 分別提升1.9%和0.7%,說明改進(jìn)大核注意力機(jī)制能夠有效提升模型的小目標(biāo)特征提取能力。模型④對(duì)原網(wǎng)絡(luò)的SPPF 模塊進(jìn)行改進(jìn),與模型①相比,其mAP50:95 提升1.3%,這說明BasicRFB 系列模塊和殘差網(wǎng)絡(luò)相結(jié)合能夠有效擴(kuò)大特征圖的感受野。模型⑤則是將Attention-L 和SPP_RFB 進(jìn)行結(jié)合,通過實(shí)驗(yàn)發(fā)現(xiàn),改進(jìn)后模型的mAP50:95 相較于模型①和模型④分別提升3.9%和2.6%。模型⑥則是將Attention-K 和SPP_RFB 結(jié)合,通過實(shí)驗(yàn)發(fā)現(xiàn),改進(jìn)后模型的mAP50:95相較于模型①、模型⑤,分別提升6%、2.1%,一定程度上緩解了因背景復(fù)雜類別過多而出現(xiàn)的小目標(biāo)漏檢及特征提取能力不足等問題。
圖11 是原YOLOv5s 模型和模型⑥的小目標(biāo)檢測(cè)結(jié)果對(duì)比,圖11(a)左邊第一幅圖為原YOLOv5s 模型檢測(cè)結(jié)果,可以發(fā)現(xiàn),右下角的一塊plastic區(qū)域未被檢測(cè)出,而圖11(a)中的模型⑥則檢測(cè)出plastic 區(qū)域。圖11(b)中原網(wǎng)絡(luò)未將右邊的一塊paper 區(qū)域檢測(cè)出,而圖11(b)中的模型⑥未出現(xiàn)小目標(biāo)漏檢情況。因此,相比原YOLOv5s模型,本文改進(jìn)模型可以在保證檢測(cè)速度的同時(shí),降低小目標(biāo)的漏檢率。
圖11 模型檢測(cè)結(jié)果對(duì)比圖(左圖為原模型)
為了驗(yàn)證改進(jìn)后YOLOv5s算法的實(shí)用性,本文在使用相同訓(xùn)練樣本的前提下,對(duì)目前流行的目標(biāo)檢測(cè)算法與改進(jìn)的YOLOv5s算法進(jìn)行比較,并將所有超參數(shù)都設(shè)置為相同默認(rèn)值。比較結(jié)果用mAP50:95、檢測(cè)速度和參數(shù)量進(jìn)行評(píng)價(jià)。實(shí)驗(yàn)結(jié)果,如表3所示。
表3 對(duì)比實(shí)驗(yàn)
表3 對(duì)比實(shí)驗(yàn)結(jié)果顯示:本文改進(jìn)的YOLOv5s 模型相比于其他兩種流行目標(biāo)檢測(cè)算法,有效地提升了一些類別的檢測(cè)精度,mAP50:95 達(dá)到69.6%;參數(shù)量也達(dá)到41.18m,更有利于移動(dòng)端的部署;同時(shí)模型具有較高的檢測(cè)速度,達(dá)到了40.4fps,實(shí)現(xiàn)了對(duì)水下目標(biāo)的實(shí)時(shí)檢測(cè)。因此可以得出,本文改進(jìn)的YOLOv5s模型在參數(shù)量、檢測(cè)精度和檢測(cè)速度等方面均優(yōu)于主流目標(biāo)檢測(cè)算法,能更好地完成海洋垃圾檢測(cè)任務(wù)。
本文分析了海洋垃圾目標(biāo)檢測(cè)的困難和需求,發(fā)現(xiàn)當(dāng)前算法在應(yīng)用時(shí)存在一些小目標(biāo)漏檢及特征提取能力不足等問題,所以本文提出一種基于改進(jìn)YOLOv5s的海洋垃圾目標(biāo)檢測(cè)算法。首先,在原模型的主干網(wǎng)絡(luò)部分添加Attention-K 模塊來提升模型的小目標(biāo)特征提取能力。其次,為了解決小目標(biāo)漏檢等問題,改變了原SPPF 網(wǎng)絡(luò)結(jié)構(gòu),目的是讓網(wǎng)絡(luò)特征圖具有更大的感受野。最后,在J-EDI海洋垃圾數(shù)據(jù)集上進(jìn)行了訓(xùn)練和測(cè)試,實(shí)驗(yàn)結(jié)果證明,本文改進(jìn)的模型在小目標(biāo)檢測(cè)上具有更好的特征提取能力和更高的檢測(cè)精度。本算法可以部署在海洋垃圾清理機(jī)器人中,這樣能夠避免在危險(xiǎn)海域?qū)M(jìn)行人工捕撈,通過這種方法可以消除水污染并恢復(fù)海洋生態(tài)系統(tǒng),對(duì)于保護(hù)海洋資源環(huán)境具有重大意義。