張海鑌,裴 斐,雷幫軍,夏 平
1.三峽大學(xué) 計算機(jī)與信息學(xué)院,湖北 宜昌 443002
2.水電工程智能視覺監(jiān)測湖北省重點(diǎn)實(shí)驗(yàn)室,湖北 宜昌 443002
近年來,隨著我國進(jìn)出口貨量大幅攀升,港口集裝箱吞吐量增長迅猛,集裝箱在運(yùn)輸和交接工作中需要對箱內(nèi)貨物安全進(jìn)行識別,而鉛封就相當(dāng)于集裝箱的“鎖”,每一個鉛封都對應(yīng)著一個獨(dú)一無二的封號,客戶通過集裝箱上的號碼與貨單上的編號對比,即可確認(rèn)集裝箱在運(yùn)輸過程中是否被打開過,進(jìn)而得出貨物是否完好無損的結(jié)論。因此對鉛封進(jìn)行實(shí)時準(zhǔn)確的識別具有重要的應(yīng)用價值。
傳統(tǒng)的鉛封識別方法大都為人工檢測,存在著主觀性強(qiáng)、人力成本高昂、效率低等問題,已不能滿足目前集裝箱業(yè)務(wù)大幅增長的需要,對集裝箱信息的識別進(jìn)行智能化和自動化升級,開發(fā)高精準(zhǔn)的鉛封識別方案成為亟須解決的問題。
目前,深度學(xué)習(xí)在圖像識別和目標(biāo)檢測領(lǐng)域取得了出色表現(xiàn),而卷積神經(jīng)網(wǎng)絡(luò)則是深度學(xué)習(xí)最具代表性的方法之一?;谏疃葘W(xué)習(xí)的目標(biāo)檢測模型主要分為兩類:兩階段(two-stage)模型和單階段(one-stage)模型。前者通過各種算法生成目標(biāo)的待檢區(qū)(pegion proposal),然后通過卷積神經(jīng)網(wǎng)絡(luò)對目標(biāo)進(jìn)行準(zhǔn)確分類和定位,如:R-CNN[1]、Fast R_CNN[2]、Faster R_CNN[3]、Mask RCNN[4]。one-stage 直接將目標(biāo)的定位問題轉(zhuǎn)換為回歸問題進(jìn)行處理,是端到端的實(shí)現(xiàn)方式,如:YOLO 系列(v1[5],v2[6],v3[7],v4[8])、SSD[9]等。ReDet[10]、oriented bounding boxes[11]以及box boundary-aware vectors[12]通過旋轉(zhuǎn)預(yù)測框和旋轉(zhuǎn)檢測器提升了小目標(biāo)檢測效果,但其只針對搖桿場景,針對較復(fù)雜背景的不規(guī)則小目標(biāo)效果不佳。楊杰敏等人[13]采用基于深度卷積網(wǎng)絡(luò)的相關(guān)系特征圖檢測,相比R-FCN、Faster R-CNN、SSD等算法可以快速準(zhǔn)確進(jìn)行鉛封識別,但其只能解決普通集裝箱小鉛封檢測,對光照、惡劣條件以及拍照角度可變等因素效果不佳。針對復(fù)雜場景的小目標(biāo)研究,在夜間環(huán)境下,針對荔枝等果實(shí)小目標(biāo)的檢測,Liang等人[14]在YOLOv3的基礎(chǔ)上提出了一些改進(jìn)方法,通過確定荔枝果實(shí)的邊界框來確定檢測目標(biāo)的ROⅠ區(qū)域,實(shí)現(xiàn)了夜間自然環(huán)境中荔枝果實(shí)和果莖的檢測。熊俊濤等人[15]則提出了一種改進(jìn)的YOLOv3檢測算法,通過引入密集連接網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)實(shí)現(xiàn)了多層特征的復(fù)用與融合,以提高對夜間環(huán)境中柑橘小目標(biāo)的識別能力。盡管以上方法針對復(fù)雜小目標(biāo)檢測,已具備一定的魯棒性和泛化能力,但在實(shí)際全天候作業(yè)的鉛封小目標(biāo)檢測中,仍面臨一些挑戰(zhàn)。鉛封的尺寸小、類型多樣,形狀也具有多變性。此外,鉛封常常受到陰影遮擋、光線強(qiáng)弱不均等因素的干擾。僅將以上小目標(biāo)檢測或與背景區(qū)分程度較高的小目標(biāo)檢測方法應(yīng)用在形狀多樣化、背景與顏色相近的鉛封小目標(biāo)檢測,仍存在自適應(yīng)性不夠強(qiáng),導(dǎo)致嚴(yán)重的漏檢和誤檢問題。
YOLOv7[16]是目前圖像識別與目標(biāo)檢測領(lǐng)域較為先進(jìn)的深度學(xué)習(xí)方法,盡管YOLOv7算法框架在常見任務(wù)場景(如車輛檢測和行人檢測)中表現(xiàn)出色,但將它直接應(yīng)用于復(fù)雜場景的小目標(biāo)檢測上還是面臨著不少困難與局限:(1)與普通的任務(wù)場景比較,集裝箱圖像上的鉛封大多隨手掛在右箱門上把手或下把手上,僅以水平框?qū)D像中的小鉛封加以標(biāo)注,并不能很好利用復(fù)雜場景下的目標(biāo)與上下文信息,給小目標(biāo)檢測造成了障礙。(2)在特征提取和特征融合模塊中的E-ELAN[16]結(jié)構(gòu)雖然能增強(qiáng)網(wǎng)絡(luò)的學(xué)習(xí)能力,但其檢測鉛封小目標(biāo)的形狀與尺寸的改變敏感性不佳。(3)MPConv[16]結(jié)構(gòu)僅能用于類似于傳統(tǒng)的池化操作,但在池化時對每個位置周圍的采樣位置是無法進(jìn)行自適應(yīng)調(diào)整的,從而對于目標(biāo)形變和位置變化魯棒性較差。(4)集裝箱圖像中鉛封由于受光線強(qiáng)弱程度差異不同、與鉛封的不同色彩相似度,會形成不同的復(fù)雜背景,而因?yàn)槿狈m當(dāng)?shù)奶幚韽?fù)雜背景的注意力機(jī)制,造成在復(fù)雜背景下的鉛封會漏檢與檢測不準(zhǔn)確。(5)損失函數(shù)方面,默認(rèn)的坐標(biāo)損失在鉛封小目標(biāo)上,因?yàn)槲矬w的尺寸很小,所以相對于整張圖片來說,物體所占的像素數(shù)很少,導(dǎo)致物體的位置和形狀的偏差對默認(rèn)的坐標(biāo)損失的影響顯著;分類損失函數(shù)方面,交叉熵?fù)p失針對數(shù)據(jù)集中集裝箱上鉛封距離遠(yuǎn)近不同、受光程度不同,不考慮樣本質(zhì)量的問題,對所有樣本一視同仁,不按照樣本質(zhì)量對Loss進(jìn)行加權(quán)或調(diào)整。針對上述問題,本文以YOLOv7為基礎(chǔ)進(jìn)行改進(jìn)。
YOLOv7是當(dāng)前較為先進(jìn)的目標(biāo)檢測算法之一,其速度和精度在每秒5幀到160幀的范圍內(nèi)都超過了大多數(shù)已知的目標(biāo)檢測算法。YOLOv7網(wǎng)絡(luò)由輸入(Ⅰnput)、骨干網(wǎng)絡(luò)(Backbone)、脖頸(Neck)、頭部(Head)這四個部分組成。輸入模塊的作用是將輸入的圖像經(jīng)過縮放處理后,滿足Backbone的輸入尺寸要求。首先,當(dāng)對圖像完成預(yù)處理、信息增強(qiáng)等操作后,圖像被輸入骨干網(wǎng)絡(luò)中,這一部分負(fù)責(zé)在經(jīng)過處理后的圖像中提取特征。接著,由Neck模塊對提取到的特征進(jìn)行融合處理,形成大、中、小三種不同尺寸的特征。最后,這些融合后的特征被送入檢測頭,進(jìn)行檢測之后得到結(jié)果輸出。
YOLOv7 網(wǎng)絡(luò)模型的骨干網(wǎng)絡(luò)部分主要由卷積、E-ELAN 模塊、MPConv 模塊構(gòu)建而成。其中,E-ELAN(extended-ELAN)模塊,在原始ELAN 的基礎(chǔ)上,改變計算塊的同時保持原ELAN 的過渡層結(jié)構(gòu),并通過expand、shuffle、merge cardinality 的思想來實(shí)現(xiàn)在不破壞原有梯度路徑的情況下增強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)的能力。MPConv 卷積層在CBS 層的基礎(chǔ)上增加了Maxpool 層,構(gòu)成上下兩個分支,最后使用Concat操作對上下分支提取到的特征進(jìn)行融合,提高了網(wǎng)絡(luò)的特征提取能力。Neck 模塊中,YOLOv7 與YOLOv5 網(wǎng)絡(luò)相同,采用了傳統(tǒng)的PAFPN(path aggregation feature pyramid network)結(jié)構(gòu),使得網(wǎng)絡(luò)適用于多尺寸輸入,然后通過信息傳遞,實(shí)現(xiàn)高層特征與底層特征的融合。檢測頭部分,本文的基線YOLOv7 選用了表示大、中、小三種目標(biāo)尺寸的ⅠDetect 檢測頭,將Neck 精煉的特征信息進(jìn)行解耦,通過REP(RepVGG block)結(jié)構(gòu)對PAFPN 輸出的不同尺寸的特征進(jìn)行通道數(shù)調(diào)整,結(jié)合1×1 卷積,得出目標(biāo)物體的位置、置信度和類別的預(yù)測。
注意力機(jī)制[17](attention mechanism)是一種被廣泛應(yīng)用于圖像信息處理、語音辨識和自然語言信息處理等應(yīng)用領(lǐng)域的信息處理方式。在目標(biāo)檢測任務(wù)中,研究表明增加注意力模塊能夠一定程度上增強(qiáng)目標(biāo)網(wǎng)絡(luò)模型的表征能力,從而有效降低無效目標(biāo)的干擾,進(jìn)而提高關(guān)注目標(biāo)的檢測效果。在機(jī)器學(xué)習(xí)中,注意力機(jī)制主要分為通道注意力機(jī)制、空間注意力機(jī)制和自注意力機(jī)制。
目標(biāo)檢測網(wǎng)絡(luò)中,目標(biāo)定位依賴一個邊界框回歸模塊,而ⅠOU(intersection over union)用于評價預(yù)測框和真實(shí)框的交集和并集之比如公式(1)。通過使預(yù)測框靠近正確目標(biāo)從而提升目標(biāo)框的定位效果,ⅠoU越大說明預(yù)測框與真實(shí)框重合程度越高,預(yù)測框質(zhì)量越高;在針對兩框不相交情況下,ⅠoU很難衡量回歸框好壞。
表1分別對GⅠoU[18]、DⅠoU[19]、EⅠoU[20]、CⅠoU[21]進(jìn)行介紹描述。
表1 不同ⅠOU的比較Table 1 Comparison of different ⅠOU
在處理單張圖片時,文章采用將上下文信息直接融入目標(biāo)檢測的方法。在鉛封周邊信息標(biāo)記后,可以作為上下文信息,在網(wǎng)絡(luò)的PAFPN 結(jié)構(gòu)中進(jìn)行不同尺度下的特征信息進(jìn)行高效融合,以盡可能獲取更多的目標(biāo)信息。文獻(xiàn)[22]中提出一種基于注意力的特征交互方法,通過添加一個個的小網(wǎng)絡(luò)到常規(guī)特征提取器的每個模塊后,來獲得注意力權(quán)重,減少沖突信息。文獻(xiàn)[23]提出用不同尺寸大小的卷積核生成多尺度的特征圖,融合成具有全局信息的特征表達(dá)方式。以上改進(jìn)在一定程度上能提升檢測的精度,但通過增加網(wǎng)絡(luò)的深度寬度的方式,導(dǎo)致參數(shù)過多,產(chǎn)生計算量過大等問題,不利于小目標(biāo)檢測,無法在實(shí)際應(yīng)用中高效提升檢測效果。本文方法在不增加額外的層帶來的額外計算和內(nèi)存開銷下,網(wǎng)絡(luò)的深度并未增加,高效地提升小目標(biāo)的檢測效果。其次,對YOLOv7 模型進(jìn)行改進(jìn),包括ELAN 模塊的改進(jìn)、MPConv模塊的改進(jìn),Neck部分包括對SPPSCPC模塊、Cat 結(jié)構(gòu)的改進(jìn),使整體成為自適應(yīng)特征融合Neck結(jié)構(gòu),綜合提高復(fù)雜環(huán)境下鉛封小目標(biāo)檢測的適應(yīng)性,提升魯棒性。最后,改進(jìn)損失函數(shù),平衡高低質(zhì)量樣本對損失貢獻(xiàn)的大小,同時使模型具備更好的小目標(biāo)適應(yīng)性。
YOLOv7 模型的改進(jìn),在Backbone 部分最后一個MPConv與E-ELAN模塊嵌入可變形卷積,在Neck部分引入自注意力機(jī)制,改進(jìn)YOLOv7結(jié)構(gòu)如圖1所示。
圖1 改進(jìn)YOLOv7結(jié)構(gòu)Fig.1 Structure of improved YOLOv7
像機(jī)拍攝角度不同、鉛封自身類型不同,導(dǎo)致鉛封形狀信息丟失,鉛封的精準(zhǔn)識別產(chǎn)生極大困難,本文針對以上情況,在骨干網(wǎng)絡(luò)EALN模塊嵌入具有偏移學(xué)習(xí)能力的可變形卷積模塊,使卷積采樣可以根據(jù)鉛封圖像改變感受野形狀和尺寸,基于可變形卷積的DCBS模塊結(jié)構(gòu)如圖2所示。
圖2 基于可變形卷積的DCBS模塊Fig.2 DCBS module based on deformable convolution
傳統(tǒng)的卷積一般為規(guī)則卷積,只能實(shí)現(xiàn)對固定大小的采樣,可變形卷積(deformable convolution v2)[24]能夠使感受野隨著拍攝角度、鉛封形狀和尺寸的不同而改變,通過偏移量與局部或全局交互,具有長距離建模能力,通過調(diào)指標(biāo)量mk和偏移量pk根據(jù)輸入不同進(jìn)行學(xué)習(xí)進(jìn)而變化,具備類似自適應(yīng)空間聚合能力,受“Exploring large-scale vision foundation models with deformable convolutions”[25]啟發(fā),本文采用deformable convolution v3[25]相比deformable convolution v2,引入了多組機(jī)制,增強(qiáng)算子的表達(dá)能力;同時共享了卷積權(quán)重,降低算法的復(fù)雜度,通過歸一化調(diào)制標(biāo)量,提高訓(xùn)練過程的穩(wěn)定性。在多形變的鉛封小目標(biāo)檢測任務(wù)中,目標(biāo)的尺度和形狀會發(fā)生較大變化,這會導(dǎo)致網(wǎng)絡(luò)的內(nèi)部協(xié)變量偏移問題。如圖2 所示,本文所設(shè)計的DCBS 模塊,采用batch normalization進(jìn)行標(biāo)準(zhǔn)化,是一種對每個小批量的輸入進(jìn)行標(biāo)準(zhǔn)化的方式,使網(wǎng)絡(luò)對輸入數(shù)據(jù)中的變化更加魯棒,提高模型的泛化能力;同時減少了訓(xùn)練過程中的內(nèi)部協(xié)變量偏移問題,使網(wǎng)絡(luò)能更容易學(xué)習(xí)到目標(biāo)的一致特征表示。DCBS 模塊中,新增了一個Silu激活函數(shù)來更好地捕捉特征之間的復(fù)雜關(guān)系,有助于提升網(wǎng)絡(luò)的表達(dá)能力和擬合能力。可變形卷積計算如公式(2)所示:
式中,X為輸入特征圖,G為group 的數(shù)量,K為第幾個調(diào)制因子,wg為每組內(nèi)共享投影權(quán)重,mgk為第g組第k個采樣點(diǎn)的歸一化后調(diào)制因子,pk為卷積核中的第k個點(diǎn),p0為輸入輸出特征圖上的p0點(diǎn),Δpgk為可變形卷積采樣點(diǎn)的偏移量。改進(jìn)后的ELAN模塊如圖3所示。
圖3 基于可變形卷積的ELAN-DeformConv模塊Fig.3 ELAN-DeformConv module based on deformable convolution
在鉛封目標(biāo)檢測時,由于拍攝的鉛封尺寸往往比較小,而最大池化的作用是從輸入的特征圖中提取最顯著的特征,因此導(dǎo)致了一些信息的丟失和模糊化,影響檢測精度。嵌入可變形卷積層能夠在卷積過程中自適應(yīng)地調(diào)整感受野大小和位置,使池化時的每個位置周圍的采樣位置自適應(yīng),更好地適應(yīng)鉛封小目標(biāo)的形狀和尺寸,從而提高檢測精度,改進(jìn)后的MPConv 模塊如圖4所示。
圖4 基于可變形卷積的MPDeformConv模塊Fig.4 MPDeformConv module based on deformable convolution
注意力機(jī)制中,卷積注意力模塊多注重輸入與輸出的關(guān)系,自注意力模塊主要注重輸入之間的關(guān)系。對于集裝箱鉛封檢測模型這一具體任務(wù)而言,鉛封所處的背景由于一年四季24小時作業(yè),光照亮度不同、集裝箱顏色種類多、鉛封自身尺寸形狀不同、集裝箱大小不同、鉛封的遠(yuǎn)近不同,鉛封小目標(biāo)存在較大的位置變化和朝向角度變化,引起的復(fù)雜多變環(huán)境,對模型定位與檢測能力要求較高,在不增加模型復(fù)雜度的前提下,使網(wǎng)絡(luò)能夠自適應(yīng)地選擇更加關(guān)注鉛封,因此本文采用自注意力機(jī)制(SimAM)[26]以增強(qiáng)鉛封小目標(biāo)特征,減弱鉛封所在背景干擾,在保持高效檢測前提下,一定程度上提高鉛封檢測的精度,并通過了消融實(shí)驗(yàn)證明。SimAM 結(jié)構(gòu)如圖5所示。
圖5 SimAM注意力機(jī)制Fig.5 SimAM attention mechanism
SimAM 建立在視覺神經(jīng)科學(xué)理論基礎(chǔ)之上,具有更多信息的神經(jīng)元與其相鄰神經(jīng)元相比表現(xiàn)更加顯著,在集裝箱上的鉛封檢測任務(wù)中,這些網(wǎng)絡(luò)的神經(jīng)元往往負(fù)責(zé)提取出鉛封的關(guān)鍵特征需進(jìn)行加強(qiáng)賦予更高的權(quán)重。本文使用的特征提取骨干網(wǎng)絡(luò)由CSPDarkNet53改進(jìn)而來,仍屬于深度卷積神經(jīng)網(wǎng)絡(luò),嵌入SimAM后對特征提取能力提升不大(在消融實(shí)驗(yàn)中證明了這一點(diǎn)),本文在YOLOv7 模型的Neck 網(wǎng)絡(luò)中引入了SimAM 注意力對骨干網(wǎng)絡(luò)提取出的特征進(jìn)行優(yōu)化,同時兼顧網(wǎng)絡(luò)的寬度、深度與檢測速度,在增加較少網(wǎng)絡(luò)參數(shù)的情況下來提高鉛封檢測準(zhǔn)確率,通過端到端的方式減少由鉛封與集裝箱顏色相近、光照、遠(yuǎn)近尺寸不同等背景噪聲對檢測的干擾,如公式(3)~(5)所示,SimAM 通過定義線性可分性的能力函數(shù)對每個網(wǎng)絡(luò)中的每個神經(jīng)元進(jìn)行評估,其中t為目標(biāo)神經(jīng)元,x為相鄰神經(jīng)元,λ為超參數(shù),et?能量越低表明神經(jīng)元與相鄰的區(qū)分度越高,神經(jīng)元的重要程度也越高,如式(6)所示,通過1/et?對神經(jīng)元根據(jù)重要性進(jìn)行加權(quán)。依據(jù)神經(jīng)科學(xué)理論中的能力函數(shù)評估各處特征的重要性提出的SimAM更具有可解釋性,無須引入可學(xué)習(xí)參數(shù)。
Neck中的SPPCSPC模塊的作用是提高特征提取的效率和準(zhǔn)確率。SPP層可以捕獲不同尺度和比例的物體信息,CSP 連接可以增強(qiáng)特征的表達(dá)能力和穩(wěn)定性,而Conv層可以進(jìn)一步提取特征。本文在SPPCSPC結(jié)構(gòu)中嵌入SimAM注意力機(jī)制,提高模型對不同尺度、比例、方向等變化的適應(yīng)性,從而提高檢測的準(zhǔn)確率,如圖6所示。
圖6 嵌入SimAM注意力機(jī)制的SPPCSPC模塊Fig.6 SPPCSPC module embedded with SⅠMAM attention mechanism
在Concatenate 層引入SimAM 使網(wǎng)絡(luò)更好地捕捉輸入鉛封與上下文特征中的相關(guān)性,強(qiáng)調(diào)更為關(guān)鍵的特征,使特征圖對于當(dāng)前任務(wù)更具有判別能力,降低不相關(guān)特征的干擾,從而提升模型性能,改進(jìn)后的自適應(yīng)特征融合Neck如圖7所示。
YOLOv7網(wǎng)絡(luò)中損失函數(shù)如式(7)所示:
損失函數(shù)當(dāng)中,置信度損失和分類損失均采用BCEWithLogitsLoss 函數(shù)來進(jìn)行計算,而坐標(biāo)損失則通過CⅠoU進(jìn)行計算,計算公式(8)如下:
在消融實(shí)驗(yàn)中,引入了一個可學(xué)習(xí)的超參數(shù)Alpha,這個超參數(shù)會被用于計算convex diagonal squared 和center distance squared。Alpha 的作用在于控制CⅠoU的收斂速度,Alpha=0 時CⅠoU的計算結(jié)果就是ⅠoU,隨著Alpha的增大,CⅠoU的計算結(jié)果越來越接近于CⅠoU,相比于直接使用固定的值計算Alpha 計算結(jié)果更加靈活,這種Active CⅠOU使模型具備更好的小目標(biāo)適應(yīng)性。
受到“Focal and efficient ⅠOU Loss for accurate bounding box regression”[20]啟發(fā),本文采用Focal Loss分類損失函數(shù)替換交叉熵?fù)p失,以平衡高質(zhì)量鉛封樣本和低質(zhì)量鉛封樣本對Loss貢獻(xiàn),在定位損失方面,通過改進(jìn)EⅠOU、CⅠoU代替原始CⅠoU進(jìn)行消融實(shí)驗(yàn),使模型更關(guān)注預(yù)測框與真實(shí)框的重疊度,提高損失計算的準(zhǔn)確性,同時適用對目標(biāo)形狀大小的變化性。Focal CⅠoU Loss 函數(shù)所用到的公式如式(9),其中參數(shù)λ作用為調(diào)節(jié)高低質(zhì)量樣本對Loss貢獻(xiàn)。
3.1.1 數(shù)據(jù)來源
本文的實(shí)驗(yàn)數(shù)據(jù)來源某港口4 種不同角度車道的閘口進(jìn)閘車輛上的集裝箱數(shù)據(jù)集,大集裝箱的大小為45尺;小集裝箱的大小為20尺,其中小箱相對大箱距離攝像機(jī)更遠(yuǎn),每道車道為進(jìn)入堆場區(qū)域的單向車道,攝像機(jī)安裝在2個車道之間用于鉛封檢測。如圖8所示,為4道不同車道拍攝到的圖片,其中圖(a)、(b)、(c)、(d)分別為車道1到車道4。
圖8 多角度車道拍攝Fig.8 Multi-angle lane shooting
設(shè)備采用海康攝像頭,24 小時小時監(jiān)控,采集3 月份、6月份、12月份不同白天晚上監(jiān)控拍攝到的圖片,圖9 為列舉的不同類型的鉛封,其中圖(a)、(b)、(c)、(d)、(e)、(f)、(g)、(h)、(i)、(j)、(k)、(l)分別為放大的圓形鉛封、圈繩狀鉛封、側(cè)向鉛封、矩形鉛封、放大的圓形鉛封、放大的倒立多邊形鉛封、放大的側(cè)向鉛封、放大的圓錐形鉛封、放大的瓶子狀鉛封、放大的圈繩狀鉛封、放大多邊形鉛封、放大圓形倒立鉛封。
圖9 不同形狀類型的鉛封Fig.9 Various shapes and types of lead seals
3.1.2 數(shù)據(jù)標(biāo)記
總計為902 張集裝箱鉛封數(shù)據(jù)集,分別為如下情況:其中有光照干擾大箱103張,有光照干擾小箱40張,有陰影遮擋大箱26張,有陰影遮擋小箱26張,白天無光照大箱數(shù)據(jù)集246張,白天無光照小箱數(shù)據(jù)集150張,晚上大箱數(shù)據(jù)集208張,晚上小箱數(shù)據(jù)集103張,見表2。
表2 實(shí)驗(yàn)訓(xùn)練驗(yàn)證數(shù)據(jù)集分布情況Table 2 Experimental training validation dataset distribution
對采集的視頻每隔2 s截取1張圖片,取出相似度過高的圖像,便于更準(zhǔn)確測試光照強(qiáng)弱干擾、與背景顏色相近、遠(yuǎn)近不同等場景下的檢測效果。數(shù)據(jù)集總計902幅圖像,并用LabelⅠmg標(biāo)注軟件進(jìn)行標(biāo)注。整個鉛封檢測數(shù)據(jù)集按9∶1 的比例劃分訓(xùn)練集、驗(yàn)證集,測試集為總計126張包含6種場景均為21張的數(shù)據(jù)圖片,實(shí)際應(yīng)用中,可采用鏡像翻轉(zhuǎn)、旋轉(zhuǎn)、縮放、平移等數(shù)據(jù)擴(kuò)增技術(shù)來增加訓(xùn)練集樣本數(shù)據(jù),也可通過推理獲取識別到的圖片,采用半監(jiān)督標(biāo)注增加樣本數(shù)據(jù)量。
本實(shí)驗(yàn)環(huán)境為:NVⅠDⅠA GeForcce RTX3090,Ubuntu18.04 操作系統(tǒng)。編程語言為python,cuda 為11.5,深度學(xué)習(xí)框架為pytorch為1.11.0。
訓(xùn)練時采用了YOLOv7 作者提供的YOLOv7 預(yù)訓(xùn)練權(quán)重來訓(xùn)練自己的網(wǎng)絡(luò),加快網(wǎng)絡(luò)收斂速度,batch size設(shè)置為32,訓(xùn)練1 000個epoch。
本文通過對比同樣實(shí)驗(yàn)環(huán)境下,選取P-R(準(zhǔn)確率-召回率)曲線、平均準(zhǔn)確率(average precision,AP)、平均精度均值(mean average precision)三個指標(biāo),計算公式如如下:
公式(10)中P為準(zhǔn)確率,TP表示正確預(yù)測,F(xiàn)P表示錯誤預(yù)測,包括把不是鉛封的目標(biāo)檢測為鉛封和漏檢兩種情況;公式(11)中R為召回率,F(xiàn)N表示誤把鉛封檢測為其他的類別。在P-R曲線中,P-R曲線與坐標(biāo)軸圍成的面積大小等于AP值大小。對所有類別的AP取平均值得到mAP來對整個目標(biāo)檢測網(wǎng)絡(luò)模型的檢測性能進(jìn)行評價,結(jié)合召回率表示漏檢程度。
在不同復(fù)雜條件下的鉛封檢測情況如圖10~15 所示,其中圖(a)、(b)、(c)分別為原YOLOv7檢測效果、結(jié)合上下文信息后的YOLOv7 檢測效果與本文算法的檢測效果。
圖10 與背景顏色相近的鉛封目標(biāo)檢測結(jié)果對比Fig.10 Comparison of detection results of lead sealed targets with similar background colors
鉛封在夏天閘口陰影遮擋下、光照過強(qiáng)、小箱上的遠(yuǎn)鉛封檢測導(dǎo)致鉛封漏檢率相對嚴(yán)重,如圖10(c)、圖11(c)、圖13(c)、圖14(c)、圖15(c),改進(jìn)后的模型依舊可以準(zhǔn)確檢測上述復(fù)雜場景下的鉛封目標(biāo);如圖12(b)所示,上下文信息特征融合盡管能解決部分場景識別問題,但對于鉛封過遠(yuǎn)且光照干擾強(qiáng)烈情況下仍然會造成算法的漏檢,如圖12(c)所示,本文在光照強(qiáng)烈且鉛封較遠(yuǎn)的情況下,依舊能識別出鉛封。其次,鉛封顏色與背景顏色相近時也是影響鉛封檢測精度的原因之一,在實(shí)際工業(yè)應(yīng)用中,采用上下文特征融合的方式對此問題有一定解決效果,而本文改進(jìn)后的算法,對解決該問題效果更佳。綜上所述,改進(jìn)的YOLOv7算法對復(fù)雜場景中的集裝箱鉛封檢測的魯棒性更強(qiáng),這表明改進(jìn)后的網(wǎng)絡(luò)在不同光照、陰影遮擋、鉛封過遠(yuǎn)、鉛封顏色與背景顏色相近等目標(biāo)場景下泛化能力有所提升。但目前本文算法目前在應(yīng)對強(qiáng)烈光照干擾且同時檢測目標(biāo)過遠(yuǎn)的情況時,mAP值相對較低,仍可能會存在一定程度的漏檢。
圖11 大箱在太陽光照下的鉛封目標(biāo)檢測結(jié)果對比Fig.11 Comparison of lead seal target detection results of large boxes under sunlight
圖12 小箱在太陽光照下的鉛封目標(biāo)檢測結(jié)果對比Fig.12 Comparison of lead seal target detection results of small boxes under sunlight
圖13 大箱在光線較暗下的鉛封目標(biāo)檢測結(jié)果對比Fig.13 Comparison of lead seal target detection results of large boxes in low light
圖14 小箱在光線較暗下的鉛封檢測結(jié)果對比Fig.14 Comparison of lead seal target detection results of small boxes in low light
圖15 小箱在白天的鉛封目標(biāo)檢測結(jié)果對比Fig.15 Comparison of lead seal target detection results of small boxes in daytime
3.4.1 消融實(shí)驗(yàn)
在實(shí)驗(yàn)過程中,確保實(shí)驗(yàn)的公平比較,除改進(jìn)部分外,控制其他訓(xùn)練參數(shù)不變,同時數(shù)據(jù)集均以640×640分辨率大小的圖像為輸入。本小節(jié)在集裝箱鉛封數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),驗(yàn)證所提模塊的有效性。以未做任何改動的YOLOv7為基準(zhǔn)+表示模塊混合改進(jìn)。嵌入注意力機(jī)制模塊的消融實(shí)驗(yàn)結(jié)果見表3。
表3 注意力機(jī)制模塊的消融實(shí)驗(yàn)Table 3 Ablation experiment of attention mechanism module
自注意力機(jī)制模塊方面的橫向?qū)Ρ葘?shí)驗(yàn)結(jié)果顯示,SimAM 在Backbone 中效果不如Neck 的可能原因,Backbone是主要負(fù)責(zé)提取圖像特征的模塊,自注意力機(jī)制是在通道維度上操作的,可能造成在多個通道之間分配注意力而無法明確地區(qū)分哪個通道對關(guān)注的類別最為重要。加入自注意力機(jī)制對Backbone的特征提取能力提升不大。而Neck負(fù)責(zé)對Backbone提取的特征進(jìn)行進(jìn)一步加工,此時輸入特征已經(jīng)比較豐富和具有區(qū)分度,同時通道數(shù)沒有Backbone多。這種情況下,引入注意力機(jī)制會更好地捕捉特征之間的交互信息,進(jìn)一步提升特征表達(dá)能力。
針對卷積算子的改進(jìn)進(jìn)行消融實(shí)驗(yàn),以未做任何改動的YOLOv7為基準(zhǔn)+表示模塊混合改進(jìn),對原始的ELAN與MPConv 當(dāng)中的3×3 普通卷積進(jìn)行改進(jìn)替換為可變形卷積DeformConv2、DeformConv3,實(shí)驗(yàn)結(jié)果見表4。
表4 可變形卷積模塊的消融實(shí)驗(yàn)Table 4 Ablation experiment of deformable convolution module
普通卷積替換為DeformConv2,mAP值雖有不錯的提升,而本文嵌入的DeformConv3 相較于普通卷積,mAP 值顯著提升4.8 個百分點(diǎn),其引入的多組機(jī)制,使算子表達(dá)能力得以加強(qiáng),同時使模型可以使用更多的上下文信息;通過共享的卷積權(quán)重、歸一化調(diào)制標(biāo)量,降低了鉛封小目標(biāo)檢測算法的復(fù)雜度,同時提高了模型穩(wěn)定性,使針對鉛封小目標(biāo)檢測變得更為高效。
針對損失函數(shù)模塊的改進(jìn)進(jìn)行消融實(shí)驗(yàn),以未做任何改動的YOLOv7為基準(zhǔn),對EⅠoU、原始定位損失函數(shù)CⅠoU均進(jìn)行改進(jìn)實(shí)驗(yàn),分類損失函數(shù)方面,采用了Focal Loss分類損失函數(shù)替換交叉熵?fù)p失,實(shí)驗(yàn)結(jié)果見表5。
表5 損失函數(shù)模塊的消融實(shí)驗(yàn)Table 5 Ablation experiment of loss function module
損失函數(shù)方面的橫向?qū)Ρ葘?shí)驗(yàn)結(jié)果顯示,定位損失方面,改進(jìn)后的Active CⅠoU相比于直接使用原始CⅠoU中固定的值計算Alpha計算結(jié)果更加靈活,mAP值結(jié)果提升了1個百分點(diǎn),使模型具備更好的小目標(biāo)適應(yīng)性。
分類損失函數(shù)方面,改進(jìn)后Focal Loss相比原先交叉熵?fù)p失,優(yōu)化了因沒有較好的機(jī)制處理集裝箱上鉛封距離遠(yuǎn)近不同、受光程度不同導(dǎo)致高質(zhì)量鉛封樣本和低質(zhì)量鉛封樣本對Loss 貢獻(xiàn)不平衡問題。結(jié)合定位損失Focal Active CⅠoU,相較原先的YOLOv7,mAP 值結(jié)果提升了1.5個百分點(diǎn)。
綜合消融實(shí)驗(yàn)結(jié)果如表6所示,本文算法采用的融合上下文信息+脖頸部分引入注意力機(jī)制+Focal+Active CⅠoU+DeformConv3 相比初始YOLOv7、+注意力機(jī)制、+上下文信息+脖頸部分引入注意力機(jī)制、+上下文信息+在脖頸部分引入注意力機(jī)制+Focal+Active CioU,mAP 值分別提升了20.2、19.1、7.6、5.5 個百分點(diǎn)。綜合而言,本文算法采用了融合上下文信息+脖頸部分引入注意力機(jī)制+Focal+Active CⅠoU+DeformConv3 的組合改進(jìn)效果最佳,其在集裝箱鉛封小目標(biāo)在復(fù)雜場景下的檢測效果比其他組合更好,尤其相比基線YOLOv7只對鉛封進(jìn)行檢測mAP 值顯著提升了20.2 個百分點(diǎn),漏檢率降低了15.8個百分點(diǎn)。
表6 不同模塊的綜合消融實(shí)驗(yàn)Table 6 Comprehensive ablation experiments of different modules
3.4.2 對比實(shí)驗(yàn)
為驗(yàn)證本文所提出方法的有效性與先進(jìn)性,在同一實(shí)驗(yàn)環(huán)境下設(shè)計了一實(shí)驗(yàn),對比文獻(xiàn)[3]的Faster R-CNN、文獻(xiàn)[9]的SSD、文獻(xiàn)[16]的YOLOv7 檢測算法與鉛封小目標(biāo)檢測算法,以及文獻(xiàn)[13]基于深度卷積網(wǎng)絡(luò)相關(guān)性特征圖檢測,對比結(jié)果見表7。
表7 不同的鉛封小目標(biāo)檢測算法的性能比較Table 7 Performance comparison of different lead sealed small target detection algorithms
由表7可知,SSD、Faster R-CNN、YOLOv5、YOLOv7的mAP分別為0.470、0.533、0.595、0.614,說明這四種檢測方法在一定程度上能夠處理噪點(diǎn)干擾問題,但其召回率與平均準(zhǔn)確率仍較低,魯棒性較差。楊杰敏等人[13]提出的采用基于深度卷積網(wǎng)絡(luò)的相關(guān)性特征圖鉛封小目標(biāo)檢測,相比Faster R-CNN、SSD 等算法可以快速準(zhǔn)確進(jìn)行鉛封識別,但只研究了港口較好場景下的集裝箱小鉛封檢測,對數(shù)據(jù)集存在光照、惡劣條件以及拍照角度變動等因素效果不佳。本文改進(jìn)后的YOLOv7 網(wǎng)絡(luò)模型準(zhǔn)確性和魯棒性均優(yōu)于其他目標(biāo)檢測網(wǎng)絡(luò)。這是因?yàn)楸疚牡臋z測網(wǎng)絡(luò)在處理不同場景時,如:光照變化場景圖11(c)、圖12(c);陰影遮擋場景圖13(c);遠(yuǎn)鉛封小目標(biāo)圖14(c)、圖15(c);檢測目標(biāo)與背景顏色相近圖10(c),針對上述情況,通過上下文信息特征融合方式,嵌入注意力機(jī)制和替換卷積操作,對損失函數(shù)進(jìn)行優(yōu)化,極大提高模型的魯棒性,減少了鉛封檢測漏檢情況,且不需要控制特定的環(huán)境,速度和精度基本達(dá)到實(shí)際集裝箱港口的鉛封檢測要求。
本文提出并實(shí)現(xiàn)了一種改進(jìn)的YOLOv7 復(fù)雜環(huán)境下鉛封小目標(biāo)檢測算法。該算法針對復(fù)雜場景下的鉛封小目標(biāo)檢測問題,首先采用一種將上下文信息直接融入目標(biāo)檢測任務(wù)的方法,結(jié)合PAFPN 結(jié)構(gòu)進(jìn)行不同尺度的特征信息融合,提高辨別準(zhǔn)確度;其次,針對小鉛封特征在訓(xùn)練過程中出現(xiàn)消失的問題,在骨干網(wǎng)絡(luò)嵌入可變形卷積模塊,適應(yīng)形狀大小不同輸入的鉛封特征圖,在特征融合時保證更多淺層語義信息的特征圖被送入分類網(wǎng)絡(luò),增加模型復(fù)雜場景下的學(xué)習(xí)能力;同時,在Neck 部分融入自注意力機(jī)制,自適應(yīng)地選擇輸入中的重要信息,提高在復(fù)雜多變背景下模型表現(xiàn)能力;最后,針對數(shù)據(jù)集中集裝箱上遠(yuǎn)近鉛封的樣本質(zhì)量不同,采用Focal Loss分類損失函數(shù)替換交叉熵?fù)p失,平衡高質(zhì)量樣本和低質(zhì)量樣本對Loss 貢獻(xiàn),引入可學(xué)習(xí)的超參數(shù)Active CⅠoU Loss 定位損失,控制模型收斂速度,使模型更關(guān)注預(yù)測框與真實(shí)框的重疊度,提高損失計算的準(zhǔn)確性,綜合提高模型針對復(fù)雜場景下鉛封小目標(biāo)檢測的自適應(yīng)能力及提升了模型的魯棒性。消融實(shí)驗(yàn)結(jié)果表明,與原YOLOv7算法相比,改進(jìn)后的算法模型mAP可達(dá)81.6%,提高了20.2 個百分點(diǎn)。對比實(shí)驗(yàn)結(jié)果表明,與YOLOv5、Faster R-CNN、SSD鉛封識別算法相比,本算法檢測效果均優(yōu)于其他經(jīng)典目標(biāo)檢測網(wǎng)絡(luò)。在鉛封較遠(yuǎn)、光照不良以及與背景顏色相近等復(fù)雜場景,本文提出的改進(jìn)的YOLOv7算法減少了鉛封漏檢的情況,具備較好的準(zhǔn)確性和魯棒性;在時間性能上,平均每張圖像的識別時間為0.058 s,符合實(shí)際集裝箱港口鉛封檢測的實(shí)時性要求,在強(qiáng)烈光照干擾且同時待檢測的小目標(biāo)拍攝距離過遠(yuǎn)時的情況下的鉛封小目標(biāo)檢測精度相對較低,后續(xù)將進(jìn)一步探索。