高子凡, 張維忠,, 陳程立詔, 張宏峰
(1. 青島大學計算機科學技術(shù)學院, 山東 青島 266071; 2. 中國石油大學(華東), 山東 青島 266580; 3. 青島點之云智能科技有限公司, 山東 青島 266000)
目標檢測[1]是通過給定圖像自動提取感興趣區(qū)域,對可能包含物體的區(qū)域進行檢測分類的任務(wù),它是機器視覺領(lǐng)域的核心問題之一[2],廣泛應用于人臉支付或?qū)嵜J證的人臉檢測場景,以及大地遙感及軍事檢測等遙感監(jiān)測領(lǐng)域[3]。傳統(tǒng)目標檢測主要通過基于計算機視覺的方法設(shè)計手工特征,選定候選區(qū)域,對候選區(qū)域進行特征提取并分類。但由于目標的形態(tài)、光照變化及背景多樣性等因素影響,無法手工設(shè)計具備魯棒性的特征結(jié)構(gòu),特征的提取直接影響分類的準確性。由于傳統(tǒng)方法的魯棒性較差,因此許多研究將卷積神經(jīng)網(wǎng)絡(luò)[4](convolutional neural network,CNN)應用到目標檢測。R.GIRSHICK等人[5]提出具有CNN特征的區(qū)域(RCNN)用于目標檢測;K.HE等人[6]提出了空間金字塔池化網(wǎng)絡(luò)( spatial pyramid pooling networks,SPPNet),使CNN生成固定長度的表示;S. REN等人[7]提出了Faster RCNN檢測器,集成目標檢測系統(tǒng)于端到端學習框架中。目前,以YOLO為代表的基于回歸方法的深度學習目標檢測算法,如YOLO、SSD等算法,僅用一個CNN網(wǎng)絡(luò)預測不同目標的類別與位置,在模型尺寸上占優(yōu)勢?;谝陨涎芯?本文提出基于改進的YOLO v5s算法的多尺度包裹檢測方法。采用數(shù)據(jù)增強策略保證數(shù)據(jù)均衡,結(jié)構(gòu)上采用空洞空間卷積池化金字塔(atrous spatial pyramid pooling,ASPP)模塊,有效增加感受野;采用卷積注意力機制模塊(convolutional block attention module,CBAM),在大尺度目標分類和檢測上改進模型的性能。該模型通過工業(yè)掃碼設(shè)備,實現(xiàn)了對各尺度包裹的識別,使包裹與條形碼匹配對應,識別精度和效率均得到提高。
本文提出一種改進的YOLO v5s大尺度目標檢測模型,對包裹與條形碼數(shù)據(jù)進行采集與處理,并定義包裹和條形碼2個類別數(shù)據(jù)集。該模型針對大尺度包裹,采用ASPP模塊,通過不同的空洞率構(gòu)建不同感受野的卷積核,獲取多尺度包裹特征信息。該模型在復雜目標與多尺度目標問題中,通過轉(zhuǎn)換CBAM注意力機制,避免ASPP模塊對條形碼等小目標的影響。
YOLO v5s由主干網(wǎng)絡(luò)[8](backbone)、頸部網(wǎng)絡(luò)(neck)及檢測頭(head)3部分構(gòu)成。backbone主要通過卷積神經(jīng)網(wǎng)絡(luò)對原始圖像進行特征提取,供后面網(wǎng)絡(luò)使用;Neck利用backbone提取不同層級的特征圖,生成不同尺度特征并進行融合,提高模型的魯棒性[9];head利用提取的特征進行分類檢測和回歸檢測,得到模型預測輸出結(jié)果。
YOLO v5s存在3層檢測層,大尺度目標的特征圖所包含的語義信息相對較少,由于數(shù)據(jù)集為復雜環(huán)境下所采集的灰度圖像,導致大尺度目標的語義信息相對雜亂,易出現(xiàn)大目標錯檢漏檢情況。針對此現(xiàn)象,本文采用空洞空間ASPP模塊,充分利用不同尺度特征信息,對原有的特征圖以不同的采樣率[10]進行空洞卷積采樣,以多個尺度捕捉圖像中的語義信息,特征圖以4個不同的采樣率進行空洞卷積,呈指數(shù)級增加感受野,不需要改變圖像大小。ASPP模塊如圖1所示。對于所給定的輸入,在卷積核中按照rate=1,6,12,18的中間空洞間隙,捕捉多尺度上下文信息,呈指數(shù)級增加感受野,精確大尺度目標的定位,但同時也影響到條形碼類別,即小尺度目標的識別,因此本文加入CBAM注意力機制。
圖1 ASPP模塊
在8倍下采樣特征圖中,采用卷積注意力機制模塊通過通道維度和空間維度[11]依次學習特征,學習后的特征圖與輸入特征圖相乘,進行自適應特征細化,且不增加算法開銷,CBAM注意力機制如圖2所示。
圖2 CBAM注意力機制
在通道維度輸入特征圖,經(jīng)過并行的MaxPool層和AvgPool層,得到2個1×1通道權(quán)重矩陣,將特征圖維度從C×H×W變?yōu)镃×1×1,經(jīng)過Shared MLP模塊將通道數(shù)壓縮為原來的1/ r倍,經(jīng)過ReLU激活函數(shù)[12],擴張到原通道數(shù),與原特征圖相加,通過sigmoid激活函數(shù)得到Channel Attention輸出結(jié)果,與原圖相乘生成中間特征圖,通道注意力如圖3所示。
圖3 通道注意力
通道注意力機制表達為
(1)
式中,σ表示sigmoid激活函數(shù);W0∈RC/r×C,W1∈RC×C/r,且MLP的權(quán)重W0和W1對于輸入是共享的;ReLU激活函數(shù)位于W0之后,W1之前。
將中間特征圖通過最大池化和平均池化壓縮成1×H×W的特征圖,經(jīng)過合并算法對2個特征圖進行拼接,經(jīng)過sigmoid激活函數(shù)得到Spatial Attention的特征圖,將輸出結(jié)果與中間特征圖相乘,得到最終特征??臻g注意力如圖4所示。
圖4 空間注意力
空間注意力機制表達式為
(2)
式中,σ表示sigmoid激活函數(shù);f7×7表示卷積核大小為7×7的卷積過程。
本研究CBAM注意力機制主要針對條形碼小目標,在負責檢測小目標的8倍下采樣的80×80特征圖中,加入CBAM注意力模塊,屏蔽ASPP模塊對小尺度目標產(chǎn)生的負面影響,提高小尺度目標的準確率。
針對大尺度目標檢測,本文提出一種改進的YOLO v5s模型,主干網(wǎng)絡(luò)中在最大的一層特征圖學習時,嵌入卷積注意力機制模塊,通過通道和空間2個維度,進行自適應特征細化修正。CBAM是輕量級模塊,不增加時間開銷的同時,提高小尺度目標檢測能力,首先在通道維度平均池化和最大池化,將產(chǎn)生的特征圖進行拼接,在拼接后的特征圖上,使用卷積操作得到最終的空間注意力特征圖;在頸部網(wǎng)絡(luò)中加入空洞空間卷積池化金字塔模塊,融合4個不同尺度的特征語義信息,增加感受野[13],提高大尺度目標的檢測能力;目標檢測頭負責對特征金字塔進行多尺度檢測,因條形碼均為小尺度目標,而包裹均為大尺度目標,本文使用k-means聚類得到不同尺寸的先驗框[14]。在最大的特征圖上應用較小的先驗框,主要負責條形碼的檢測,在中等和最小的特征圖上應用較大的先驗框,主要負責包裹檢測。改進后的CA-YOLO v5網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示。
圖5 改進后的CA-YOLO v5網(wǎng)絡(luò)結(jié)構(gòu)
本文實驗由單獨計算機完成,數(shù)據(jù)集格式為jpg圖像,計算機配置GPU型號為NVIDIA GeForce GTX 1080 Ti,運行內(nèi)存32 G,操作系統(tǒng)為64位Windows10,深度學習版本為torch1.8.0、Torchvision0.9.0,Python3.7編程語言,批量尺寸batchsize16,圖像輸入尺寸為640×640,總訓練輪數(shù)300,置信度閾值為0.5。
本文采用的數(shù)據(jù)集在青島市郵局中心現(xiàn)場獲取,數(shù)據(jù)采集設(shè)備使用??低暤捻敀咴O(shè)備MV-PD01003-22攝像頭,分辨率為3 072×2 048,在傳送帶包裹掃碼場景下對包裹和條形碼進行識別處理和匹配對應,現(xiàn)場設(shè)備配置4個攝像頭,視野涵蓋傳送帶的4個區(qū)域,本實驗主要采用基于設(shè)備視角的的四個區(qū)域作為實驗數(shù)據(jù)。
采集的數(shù)據(jù)包含包裹與條形碼2個類別,條形碼狀態(tài)單一,包裹卻有各種形態(tài),大尺度目標如圖6所示。由于掃碼攝像頭采集的圖像像素較大,但視野尺度較小,容易出現(xiàn)大面積大尺度包裹溢滿圖像的大尺度情況,每一幀數(shù)據(jù)中的目標尺度越大,檢測的準確率越低,且所有采集到的均是灰度圖,導致圖像特征嚴重丟失,對大面積包裹的目標檢測產(chǎn)生嚴重影響,大尺度包裹無法識別,增加了模型的檢測難度。
圖6 大尺度目標
本文主要針對正對傳送帶的區(qū)域進行實驗,由工業(yè)生產(chǎn)線的掃碼設(shè)備取得的JPG格式圖像通過篩選形成包裹與條形碼圖像數(shù)據(jù)集,將2個類別作為圖像數(shù)據(jù)庫,為增加數(shù)據(jù)多樣性,采集原始圖像共計8 440幅。為了防止模型出現(xiàn)欠擬合或過擬合現(xiàn)象,隨機抽選2 000幅測試集和6 440幅訓練和驗證樣本,為了排除掃碼時聚焦、動感模糊及過曝光等情況,利用數(shù)據(jù)增強技術(shù)對樣本進行增加噪音、模糊處理及灰度變換,擴充數(shù)據(jù)量共10 000幅,增加數(shù)據(jù)多樣性和模擬不同識別場景,提高模型泛化能力。通過標注[15]形成TXT格式數(shù)據(jù)集文件,按比例8∶2劃分訓練集和驗證集,其中包裹的小尺度、大尺度及滿尺度數(shù)量比例4∶4∶2,條形碼類別均為小尺度,測試集1 500幅,訓練總共迭代300周期,對不同角度、不同位置及不同尺度的包裹與條形碼數(shù)據(jù)集進行檢測。數(shù)據(jù)增強效果如圖7所示。
圖7 數(shù)據(jù)增強效果
本研究基于YOLO v5s網(wǎng)絡(luò),采用ASPP模塊和CBAM注意力機制進行改進,為證明CA-YOLO v5網(wǎng)絡(luò)的有效性,對改進前后的目標檢測網(wǎng)絡(luò)進行試驗對比分析。在條形碼與包裹數(shù)據(jù)集中,CA-YOLO v5和YOLO v5s網(wǎng)絡(luò)分別對同一大尺度包裹的圖像進行識別,檢測結(jié)果對比如圖8所示。
圖8 檢測結(jié)果對比
由圖8可以看出,CA-YOLO v5和YOLO v5s網(wǎng)絡(luò)都能實現(xiàn)對小尺度包裹與條形碼的正確識別,但對于較大尺度包裹,YOLO v5s網(wǎng)絡(luò)會出現(xiàn)漏檢錯檢,尤其大尺度包裹無法識別,尺度越大,檢測效果越差,而CA-YOLO v5網(wǎng)絡(luò)能夠精準識別。
本文提出的CA-YOLO v5網(wǎng)絡(luò),在時間開銷[16]較少的情況下,各尺度條形碼的準確率比YOLO v5s網(wǎng)絡(luò)有所提高,對于大尺度包裹,改進模型前后對比實驗結(jié)果如表1所示。
表1 改進模型前后對比實驗結(jié)果
由表1可以看出,CA-YOLO v5網(wǎng)絡(luò)的準確率提高了34%,成功解決了大尺度包裹無法識別的問題,模型的綜合檢測精度提高了17.7%,說明CA-YOLO v5網(wǎng)絡(luò)模型檢測準確性更高。本研究實現(xiàn)了包裹與條形碼的匹配對應,有效提高了包裹條形碼的檢測效率。CA-YOLO v5網(wǎng)絡(luò)在大尺度黑色包裹的檢測中對包裹的檢測效果不佳,此類包裹的條形碼之外的區(qū)域與背景很難區(qū)分,在曝光不強時,CA-YOLO v5網(wǎng)絡(luò)可能識別不到黑色包裹區(qū)域,但可以檢測到條形碼區(qū)域。
為解決大尺度目標無法識別問題,本研究分別嘗試SE、CBAM及CA等注意力機制,或加入新的目標檢測層,將不同方法訓練后的模型對包裹與條形碼進行測試,不同方法的檢測結(jié)果如表2所示。
表2 不同方法的檢測結(jié)果
實驗結(jié)果表明,SE和CA注意力機制都是通道注意力方法,對于單通道數(shù)據(jù)集改善效果不佳。大尺度目標建立的目標檢測層對大尺度目標存在識別效果,但識別效果較差,且對小尺度目標的檢測產(chǎn)生了負面影響。
本文通過采用空洞空間卷積池化金字塔結(jié)構(gòu),呈指數(shù)級增加感受野,消除了灰度圖像特征少的影響。此外,以卷積注意力機制屏蔽大小尺度之間的特征差異化影響,最終解決了多尺度灰度目標識別問題。為證明本模型的有效性,在自制數(shù)據(jù)集上進行了驗證。試驗結(jié)果表明,與現(xiàn)存的增加目標檢測分類器、基于計算機視覺的目標識別等方法相比,本算法在有效增加有效特征的同時,提高了目標識別準確率,適配于目標尺度差異大、特征少的情況。下一步研究將對模型作改進處理,使網(wǎng)絡(luò)模型能夠識別與背景相似的目標。