胡皓,郭放+,劉釗
1.中國人民公安大學 信息網(wǎng)絡(luò)安全學院,北京100038
2.中國人民公安大學 研究生院,北京100038
安全是有序開展各項施工生產(chǎn)活動的前提,但施工場地內(nèi)有限的安全監(jiān)管力量難以實時監(jiān)管重型機械等帶來的安全風險。近年來,如何利用視頻監(jiān)控系統(tǒng)自動識別安全風險成為一個重要研究課題。利用目標檢測算法自動檢測施工場地內(nèi)的工人、挖掘機等常見目標,可以有效補充安全監(jiān)管力量,切實提高安全監(jiān)管效率。
施工場景下工人與重型機械目標檢測主要存在四方面難點:(1)施工場景中目標數(shù)量多且類別多樣;(2)施工場景中獲取的圖像易受光照、天氣、施工沙土粉塵等因素影響;(3)施工場景存在鋼筋、磚石等眾多干擾因素,且重型機械通常體積較大,目標之間易形成遮擋導致漏檢、錯檢;(4)同類目標在不同場景、攝像條件下的外觀和尺度差異可能較大。上述難點對目標檢測算法的魯棒性與準確性提出了較大考驗。
近年來,施工場景目標檢測研究多使用Faster R-CNN(faster regions with convolutional neural network features)、SSD(single shot multibox detector)等兩階段目標檢測方法[1-2],以及YOLOv2(you only look once version 2)、YOLOv3(you only look once version 3)等一階段目標檢測方法[3-5]。雖然這些算法在自建數(shù)據(jù)集上表現(xiàn)良好,但在復雜施工場景下仍存在檢測精準率不高、檢測類別較少、計算效率較低等問題。
現(xiàn)有基于深度學習的目標檢測算法中,YOLO(you only look once)系列算法因其精準、高效的目標檢測性能得到了研究者的廣泛關(guān)注。2021年,Ge等[6]提出了YOLOX 算法,采用解耦頭(decoupled head)、SiamOTA(simplified optimal transport assignment)等一系列改進策略提升算法性能。YOLOX算法包含多種不同體量的模型,其中YOLOX-Nano、YOLOX-Tiny模型面向移動端應(yīng)用,YOLOX-S、YOLOX-M、YOLOXL、YOLOX-X模型面向非移動端應(yīng)用。
實際施工應(yīng)用場景中,邊緣側(cè)設(shè)備提供的算力相對有限,因此檢測模型應(yīng)以盡可能小的計算開銷得到盡可能精準的檢測結(jié)果。如圖1所示,與YOLOXM等模型相比,YOLOX-S模型參數(shù)量較少,對實時性要求較高,應(yīng)用適配度更優(yōu)。與YOLOX-Nano 等模型相比,YOLOX-S模型保有一定的模型體量,具有較高檢測精準率。但在復雜施工場景下,YOLOX-S 模型的目標檢測精準率相較Mask R-CNN[7]、PointRend[8]等模型有一定差距。
圖1 不同體量YOLOX模型參數(shù)量與檢測精準率對比Fig.1 Comparison of parameters and detection precision of different YOLOX models
本文從結(jié)構(gòu)重參數(shù)化模塊、大核注意力模塊與優(yōu)化算法三方面提出一種改進YOLOX-S模型。
(1)使用RepVGGBlock[9]模塊進行參數(shù)轉(zhuǎn)換,分離訓練階段與測試階段模型結(jié)構(gòu)。在訓練階段,通過構(gòu)建殘差分支改變原有網(wǎng)絡(luò)簡單的梯度計算流,引入更多的隱式子模型擴大模型搜索空間,更好應(yīng)對訓練過程中的梯度消失問題,獲得更優(yōu)的收斂結(jié)果。在推理階段,合并殘差分支以等價保留模型參數(shù),避免帶來額外計算開銷。
(2)在YOLOX-S 模型的Neck 引入LKA(large kernel attention)模塊[10]計算注意力權(quán)重。LKA模塊兼具卷積運算與自注意力運算的特點,在通道維度上計算自適應(yīng)權(quán)重的同時,在空間維度上提取局部特征信息與長距離依賴關(guān)系,從而為特征圖賦予自適應(yīng)注意力權(quán)重,實現(xiàn)更加精準的檢測結(jié)果。
(3)使用AdamW 優(yōu)化算法[11]對模型參數(shù)進行更新,將自適應(yīng)梯度與自適應(yīng)學習率與權(quán)重衰減解耦以加快模型收斂,提升模型性能表現(xiàn)。
基于深度學習的目標檢測算法可分為基于區(qū)域提取算法、基于目標回歸算法。
基于區(qū)域提取算法以MaskR-CNN[7]、FasterR-CNN[12]、R-FCN(region-based fully convolutional networks)[13]為代表,分候選區(qū)域篩選與基于候選區(qū)域回歸兩個階段實現(xiàn)目標檢測。此類算法檢測精準率較高,但篩選候選區(qū)域等步驟運算開銷較大,實時性普遍較差。
基于目標回歸算法以SSD[14]、YOLO[15]、FCOS(fully convolutional one-stage object detection)[16]為代表,通過在特征圖上直接回歸目標類別與位置信息實現(xiàn)目標檢測。此類算法推理速度快,但檢測平均精準率相對較低。
近年來,DETR(end-to-end object detection with transformers)[17]、Swin Transformer[18]等基于視覺Transformer檢測算法陸續(xù)出現(xiàn),此類算法利用Transformer 提取像素間的全局關(guān)聯(lián)關(guān)系,具有更強的建模能力與目標檢測性能,但通常需要較大算力支撐。
在眾多檢測算法中,YOLO系列算法能夠較好平衡檢測精準率與推理速度,保持了較高的研究熱度。經(jīng)過更新迭代,YOLOv3[19]、YOLOv4[20]等精準率已可以媲美甚至超越同時期基于區(qū)域提取的目標檢測算法。2021年,YOLOv5[21]、YOLOX[6]算法在COCO數(shù)據(jù)集[22]上檢測精準率相繼突破新高,已成為當前YOLO系列算法的新的代表。
結(jié)構(gòu)重參數(shù)化模塊通過嚴格等價的參數(shù)轉(zhuǎn)化實現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)轉(zhuǎn)換,代表成果有ACB(asymmetric convolution block)[23]模塊、DBB(diverse branch block)[24]模塊與RepVGGBlock[9]模塊等。
ACB模塊與DBB模塊的核心是通過參數(shù)轉(zhuǎn)換拆分與合并卷積層。在訓練階段,ACB模塊將3×3卷積層拆分為大小為3×3、1×3 與3×1 的卷積層。DBB 模塊則在ACB模塊基礎(chǔ)上進一步改進,將一個K×K卷積層拆分為一個形似Inception[25]的四分支結(jié)構(gòu),各分支由1×1 卷積層、K×K卷積層與平均池化層按照不同方式組合而成。在測試階段,ACB 模塊與DBB 模塊分別等價轉(zhuǎn)化為3×3卷積層與K×K卷積層。
RepVGGBlock 通過參數(shù)轉(zhuǎn)換構(gòu)建與合并殘差分支。在訓練階段,RepVGGBlock 構(gòu)建1×1 卷積分支、恒等映射分支形成殘差結(jié)構(gòu)。在測試階段,Rep-VGGBlock 將等價轉(zhuǎn)化為3×3 卷積層,避免增加額外的計算開銷。
RepVGGBlock 結(jié)構(gòu)遷移方便,與網(wǎng)絡(luò)結(jié)構(gòu)本身無關(guān),不引入任何超參數(shù)。結(jié)合RepVGGBlock后,YOLOX-S 模型可形成更加多樣化的特征空間,提升模型性能表現(xiàn)。
卷積神經(jīng)網(wǎng)絡(luò)中,注意力模塊可分為單路注意力模塊與多路注意力模塊。
單路注意力模塊的代表有SE(squeeze and excitation)模塊[26]、ECA(efficient channel attention)模塊[27]。SE模塊使用全局平均池化操作對特征圖的空間維度信息進行壓縮,再使用全連接層提取通道注意力信息。ECA 模塊在SE 模塊的基礎(chǔ)上,使用一維卷積層代替全連接層,更好融合通道間信息并進一步提升了運算效率。
多路注意力模塊的代表有CBAM(convolutional block attention module)模塊[28]與CA(coordinate attention)模塊[29]。CBAM 模塊同時提取通道維度與空間維度的注意力信息,實現(xiàn)不同維度注意力信息的交互融合。CA模塊從寬度方向與高度方向分別抽取通道注意力信息,實現(xiàn)位置信息與通道注意力的結(jié)合。
2022年,Guo等[10]提出LKA 模塊,使用深度卷積層(depth-wise convolution)、深度空洞卷積層(depthwise dilation convolution)與1×1 卷積層的組合來擬合大卷積核感受野并降低計算開銷,通過卷積運算獲取自適應(yīng)注意力權(quán)重。
結(jié)合LKA模塊后,YOLOX-S模型可在提取局部特征信息的同時,在大感受野下提取像素間的長距離依賴關(guān)系,并兼顧通道維度與空間維度的注意力信息提取,進一步提升檢測平均精準率。
Adam優(yōu)化算法[30]是深度學習模型訓練的典型優(yōu)化算法。2017年,Loshchilov 等考慮到在Adam 優(yōu)化算法中單純添加L2 正則項并不等價于權(quán)重衰減,因此在Adam 優(yōu)化算法基礎(chǔ)上提出AdamW[11]優(yōu)化算法。其單獨解耦權(quán)重衰減項,僅在參數(shù)更新的最后階段加入權(quán)重衰減運算,避免對一階動量與二階動量計算造成的潛在影響。
2018年,BERT[31]模型在訓練過程中即采用了AdamW 優(yōu)化算法的思路。隨后AdamW 優(yōu)化算法在自然語言處理領(lǐng)域中的Transformer 模型的訓練中取得了大量的應(yīng)用。隨著DETR[17]、Swin Transformer[18]等計算機視覺領(lǐng)域Transformer 模型表現(xiàn)出優(yōu)越性能,AdamW優(yōu)化算法被越來越多地用于計算機視覺領(lǐng)域Transformer模型訓練。2022年,ConvNeXt[32]模型的提出進一步驗證了AdamW 優(yōu)化算法可被用于計算機視覺領(lǐng)域卷積神經(jīng)網(wǎng)絡(luò)的訓練,改良模型性能表現(xiàn)。
改進YOLOX-S 模型結(jié)構(gòu)框架如圖2 所示,包含Backbone、Neck、Head三部分。Backbone 由Focus、Rep-dark2 等組合而成,負責對輸入圖像進行初步特征提取。Rep-dark3、Rep-dark4、Rep-dark5的輸出特征圖被送入Neck 進一步處理。在Neck中,F(xiàn)PN0、Rep-FPN1 與LKA-FPN2 組成FPN 結(jié)構(gòu),上層特征信息經(jīng)由FPN 結(jié)構(gòu)逐層向下傳遞。Rep-PAN0、LKA-PAN1、LKA-PAN2 組成PAN 結(jié)構(gòu),下層特征信息經(jīng)由PAN結(jié)構(gòu)實現(xiàn)逐層向上傳遞。兩條信息流促成層間特征信息的融合交互。Head 由具有相同結(jié)構(gòu)的Head0、Head1、Head2組成,負責預測目標類別信息與位置信息。以Head2為例,內(nèi)部共包含三個分支,CLS Conv、REG Conv與OBJ Conv分別負責預測目標類別、目標邊界框信息與目標置信度。
圖2 改進YOLOX-S模型結(jié)構(gòu)框架Fig.2 Framework of improved YOLOX-S model
如圖3 所示,RepVGGBlock 可分為RepVGGBlock-A與RepVGGBlock-B兩種類型。RepVGGBlock-A在訓練階段包含一個1×1 卷積分支與一個恒等映射分支,輸出特征圖高度與寬度保持不變,用于替換Backbone 與Neck 內(nèi)各結(jié)構(gòu)中步長為1 的3×3 卷積層。RepVGGBlock-B 在訓練階段僅包含一個1×1 卷積層分支,輸出特征圖高度與寬度縮減為原先的一半,用于替換Backbone 與Neck 各結(jié)構(gòu)中步長為2 的3×3卷積層。
圖3 RepVGGBlock結(jié)構(gòu)示意Fig.3 Illustration of RepVGGBlock structure
與原YOLOX-S模型相比,結(jié)合RepVGGBlock后的模型由于在訓練過程中存在殘差結(jié)構(gòu),其可被視為一個規(guī)模較大的集成模型,緩解堆疊卷積層的簡單網(wǎng)絡(luò)結(jié)構(gòu)可能導致的梯度消失問題,提高模型目標檢測平均精準率。
但引入殘差結(jié)構(gòu)將導致模型在推理階段的計算開銷有一定程度增長,不利于邊緣側(cè)設(shè)備部署與應(yīng)用。因此,在推理階段可利用參數(shù)轉(zhuǎn)換,在等價保留訓練階段得到的模型參數(shù)基礎(chǔ)上,將殘差結(jié)構(gòu)合并入卷積層中,避免額外的計算開銷。
殘差結(jié)構(gòu)轉(zhuǎn)化過程如下:
首先,合并批歸一化層(batch normalization layer)與卷積權(quán)重,合并后的卷積運算如式(1)所示:
式中,γ與β為批歸一化過程中學習得到的參數(shù),W(·)為卷積運算,μ與σ2為批次均值與方差。
其后,合并1×1卷積層分支與3×3卷積層。由于二維卷積的可加性,1×1卷積核與3×3卷積核先相加再進行卷積運算得到的結(jié)果與分別進行卷積運算后再相加的結(jié)果相同。如圖4所示,將1×1的卷積核與3×3卷積核中心位置元素相加實現(xiàn)二者的合并。
圖4 1×1卷積核融合過程Fig.4 1×1 convolution kernel fusion process
最后,如果存在恒等映射分支,則合并恒等映射分支與3×3 卷積層。由于恒等映射分支可視為權(quán)重特殊的1×1卷積層,恒等映射也可參照1×1卷積層的合并方式并入3×3卷積層內(nèi)。
LKA 模塊結(jié)構(gòu)如圖5(a)所示,注意力權(quán)重由一個大小為5×5的深度卷積運算、大小為7×7且膨脹率為3 的膨脹卷積運算與大小為1×1 的卷積運算組合得到。將注意力權(quán)重與輸入特征圖進行逐元素相乘,即得到輸出特征圖。
圖5 LKA與Self-Attention結(jié)構(gòu)對比Fig.5 Comparison of LKA and Self-Attention structures
LKA 模塊與如圖5(b)所示的自注意力(Self-Attention)具有相近設(shè)計思路,三種不同卷積的組合后感受野近似一個21×21 的大卷積核的感受野。因此在YOLOX-S模型中引入LKA模塊后,可在提取局部特征信息的基礎(chǔ)上進一步聚合長距離依賴關(guān)系,為模型提供更加有效的注意力引導,進一步提升模型檢測平均精準率。
如圖6所示,Neck中共添加三個LKA模塊。LKA0被添加在LKA-FPN2中,對上采樣后的FPN_out1 添加注意力信息。添加注意力信息后的特征圖將與Backbone 中dark3 的輸出dark3_out 按通道維度堆疊為FPN_out2傳入LKA-PAN2模塊。
圖6 改進后的Neck結(jié)構(gòu)示意Fig.6 Illustration of improved Neck structure
LKA1 被添加在LKA-PAN2 模塊中,對Conv3 的輸出特征圖添加注意力信息。添加注意力信息后的特征圖將與Rep-FPN1 模塊的輸出FPN_out1 按通道維度堆疊,并經(jīng)CSP2運算后作為LKA-PAN1的結(jié)果輸出。
LKA2 被添加在LKA-PAN1 模塊中,對Conv4 的輸出特征圖添加注意力信息。添加注意力信息后的特征圖將與FPN0 模塊的輸出FPN_out0 按通道維度堆疊,并經(jīng)由CSP3運算后作為Rep-PAN0的結(jié)果輸出。
隨機梯度下降算法(stochastic gradient descent,SGD)對模型參數(shù)進行更新的過程如式(2)所示:
式中,wt為t時刻模型參數(shù),wt-1為t-1 時刻模型參數(shù),λ為權(quán)重衰減速率,ηt為t時刻學習率,gt為t時刻計算得到的梯度。
SGD 算法可在式(2)的基礎(chǔ)上引入一階動量mt以抑制SGD算法在參數(shù)更新過程中可能出現(xiàn)的震蕩現(xiàn)象,計算如式(3)所示:
式中,mt為t時刻的一階動量,mt-1為t-1 時刻的一階動量,β1為超參數(shù),用于確定一階動量的更新速率,一般取值為0.9。
引入一階動量mt后的SGD 算法對模型參數(shù)的更新過程如式(4)所示:
盡管帶有動量的SGD算法引入一階動量實現(xiàn)了梯度自適應(yīng),但是其并未對學習率進行自適應(yīng)調(diào)節(jié),模型收斂效果很大程度上取決于人為設(shè)定的超參數(shù)。
AdamW優(yōu)化算法在一階動量的基礎(chǔ)上引入了二階動量vt實現(xiàn)學習率的自適應(yīng)調(diào)節(jié)。vt的計算如式(5)所示:
式中,vt為t時刻的二階動量,vt-1為t-1 時刻的二階動量,β2為用于確定二階動量的更新速率的超參數(shù),默認取值為0.999。
一階動量與二階動量在訓練過程中會被動態(tài)修正,以平衡訓練初期的動量大小,動態(tài)修正過程如式(6)、式(7)所示,Mt與Vt為修正后的一階動量與二階動量:
AdamW優(yōu)化算法對模型參數(shù)進行更新的過程如式(8)所示:
式中,ε為用于避免二階動量為0時導致的計算異常的常數(shù),一般取值為10-8。
實驗數(shù)據(jù)集選用建筑工地運動目標數(shù)據(jù)集(moving objects in construction sites,MOCS)[33]。MOCS 數(shù)據(jù)集共劃分為訓練集、驗證集、測試集三部分,分別包含19 404 張、4 000 張與18 204 張圖像。與現(xiàn)有其他施工類目標檢測數(shù)據(jù)集相比,MOCS數(shù)據(jù)集具有三方面優(yōu)點:(1)規(guī)模大。數(shù)據(jù)集包含22 861 個目標實例,規(guī)模已可媲美常規(guī)目標檢測數(shù)據(jù)集。(2)數(shù)據(jù)真實。圖像數(shù)據(jù)采集自國內(nèi)外174個建筑工地,能夠反映施工現(xiàn)場內(nèi)光照、天氣、視場角等方面的實際變化情況。(3)目標類別多樣。數(shù)據(jù)集對13類常見的施工場景中的運動目標進行了精準標注,有助于實現(xiàn)目標檢測算法在施工場景下的應(yīng)用拓展。
改進YOLOX-S 模型使用1.7.1 版本的Pytorch 深度學習框架搭建。
在訓練階段,基于Ubuntu 16.04 系統(tǒng)搭建模型訓練平臺,配備1塊型號為Intel Xeon E5-2680 v4的CPU與8 塊型號為Nvidia Tesla P4 的GPU。訓練過程中,首先使用COCO數(shù)據(jù)集[22]對模型進行預訓練,其后使用MOCS 數(shù)據(jù)集對模型進行訓練。使用AdamW 優(yōu)化算法對模型參數(shù)進行更新,設(shè)定初始學習率為0.001,并能夠使用余弦調(diào)度策略對學習率進行調(diào)整,權(quán)重衰減速率為0.01。訓練批次大?。˙atch Size)為48。訓練共進行120個輪次(Epoch)。在最后15個訓練輪次不再使用Mixup與Mosaic數(shù)據(jù)增強方法,以避免模型學習到過于偏離實際的圖像特征。
在測試階段,檢測結(jié)果提交至Codalab 平臺進行統(tǒng)一的模型性能評估。為測試本文模型推理速度,本文另基于Ubuntu 20.04 系統(tǒng)搭建推理速度測試平臺,配備1 塊型號為Intel Core i7-11800H 的CPU 與1塊型號為Nvidia TITAN RTX 的GPU。在推理速度測試過程中,RepVGGBlock被轉(zhuǎn)換至如圖3(b)或圖3(d)所示的結(jié)構(gòu)。設(shè)定模型使用FP16 精度進行運算,合并卷積層與批歸一化層,每次送入模型的測試圖像批次大小為1。
本文使用COCO 數(shù)據(jù)集[22]中的平均精準率(average precision,AP)值評估模型。
AP值綜合考量了不同交并比閾值與置信度閾值條件下的目標檢測精準率。在某一確定的交并比閾值與置信度閾值條件下,檢測結(jié)果可按照TP(true positive)、FP(false positive)進行分類統(tǒng)計。其中TP指檢測到目標且檢測信息正確的目標數(shù)量,F(xiàn)P 指當檢測到目標但檢測信息存在錯誤的目標數(shù)量,二者共同決定當前條件下的目標檢測精準率,計算如式(9)所示。
3.4.1 改進YOLOX-S模型性能表現(xiàn)
改進YOLOX-S 模型與原YOLOX-S 及Mask RCNN等13種基線模型在MOCS數(shù)據(jù)集上的性能對比如表1所示??梢钥闯?,原YOLOX-S模型的AP值為48.1%,高于SSD、NAS-FPN 等前5 種基線模型,但與SOLO、RetinaNet等其余8種基線模型相比存在差距。
表1 施工場景下目標檢測性能對比Table 1 Comparison of detection performance in construction sites 單位:%
改進YOLOX-S模型AP值為51.4%,可超越前12種基線模型,相較原YOLOX-S 模型提升3.3 個百分點,僅低于Faster R-CNN(ResNeXt101)1.1 個百分點。同時,與值相較原YOLOX-S模型分別提升2.1 個百分點與2.5 個百分點,表明改進YOLOX-S模型在復雜施工場景下的目標檢測性能提升明顯。
在大、中、小目標檢測方面,改進YOLOX-S 模型APL值可達64.7%,在所有基線模型中最高。APS值、APM值也得到明顯提升,證明改進YOLOX-S 模型在不同尺寸的目標上檢測性能均有效改良。
在推理速度方面,本文選用MMDetection[42]框架下的SSD、YOLOv3、FCOS、Mask R-CNN、Faster R-CNN(ResNeXt101)共5個基線模型進行對比,測試圖像尺寸統(tǒng)一為640×640,推理速度測試結(jié)果如表2 所示。可以看出,盡管改進YOLOX-S模型推理速度由原86.4 FPS下降至71.0 FPS,但仍顯著超越Y(jié)OLOv3、Faster R-CNN(ResNeXt101)等其余模型,運算效率可滿足實時運行要求。
表2 推理速度對比Table 2 Comparison of inference speed
在參數(shù)量與GFLOPs方面,YOLOX-S模型改進前后對比如表3所示。由于Neck中額外添加LKA模塊,改進YOLOX-S模型增長1.4×105參數(shù)量與0.48GFLOPs。
表3 YOLOX-S模型改進前后參數(shù)量、GFLOPs對比Table 3 Comparison of YOLOX-S model parameters and GFLOPs before and after improvement
為更好評估算法魯棒性,本文選取了MOCS 數(shù)據(jù)集中四種挑戰(zhàn)場景進行實驗分析:模糊場景、遮擋場景、低光照場景及旋轉(zhuǎn)場景。由于MOCS 數(shù)據(jù)集未提供測試集標注文件,本文從驗證集圖像中共篩選模糊場景圖像42 張、遮擋場景圖像676 張、低光照場景圖像112 張、旋轉(zhuǎn)場景圖像75張,測試結(jié)果如表4 所示??梢园l(fā)現(xiàn),本文提出的改進YOLOX-S 模型在模糊場景、旋轉(zhuǎn)場景、遮擋場景、低光照場景下的AP 值均高于原YOLOX-S 模型。其中旋轉(zhuǎn)場景提升最為明顯,這是由于絕大多數(shù)訓練數(shù)據(jù)并未發(fā)生旋轉(zhuǎn),原YOLOX-S模型識別旋轉(zhuǎn)場景目標的能力相對有限。改進YOLOX-S 模型利用RepVGGBlock 與LKA 模塊增強了模型的特征學習與提取能力,從而獲得了更加準確的識別結(jié)果。
表4 挑戰(zhàn)場景下YOLOX-S模型改進前后AP值對比Table 4 Comparison of YOLOX-S model AP in challenge scene before and after improvement 單位:%
四種挑戰(zhàn)場景下的定性效果對比如圖7 所示。(1)在旋轉(zhuǎn)場景中,改進YOLOX-S 模型在檢測中能夠有效排除其他物體的干擾。(2)在模糊場景中,改進YOLOX-S 模型的誤檢情況更少,并未將墻壁、積土等區(qū)域誤判為感興趣目標。(3)在遮擋場景中,改進YOLOX-S模型減少了因遮擋導致的漏檢現(xiàn)象,準確定位到圖中被遮擋的工人。(4)在低光照場景中,改進YOLOX-S模型得到的邊界框回歸更加精準,光照不足引起的邊界框偏移現(xiàn)象明顯改良。
圖7 YOLOX-S模型改進前后檢測效果對比Fig.7 Comparison of YOLOX-S model detection performance before and after improvement
3.4.2 模型改進消融實驗
本文開展消融實驗驗證RepVGGBlock、LKA 模塊、AdamW 優(yōu)化算法及其組合對檢測性能提升的有效性,實驗結(jié)果如表5所示。
表5 使用不同改進方法時YOLOX-S模型性能表現(xiàn)Table 5 Performance of YOLOX-S model when using different improvement methods 單位:%
僅使用LKA 模塊改進模型時,AP 值由48.1%增長至48.9%,僅使用RepVGGBlock 改進模型時AP 值由48.1%增長至49.4%,表明上述改進方式均能夠有效提升模型檢測精準率。
同時使用RepVGGBlock 與LKA 模塊改進模型時,AP值可達49.5%,相較單獨使用LKA模塊改進模型時提升0.6個百分點,提升相對較大,表明RepVGGBlock 的多分支殘差結(jié)構(gòu)增強了LKA 模塊提取注意力信息的能力。而相較單獨使用RepVGGBlock 時AP值提升0.1個百分點,提升相對較小,但APS和APL值有所提高,表明模型對大目標、小目標的檢測性能有一定程度提升。
引入AdamW 優(yōu)化算法后,各類改進下的模型檢測性能均進一步提升。與原YOLOX-S模型相比,引入AdamW 優(yōu)化算法后AP 值由48.1%增長至49.4%。與單獨使用RepVGGBlock 改進模型時相比,引入AdmaW優(yōu)化算法后AP值提升0.5個百分點。與單獨使用LKA模塊改進模型時相比,引入AdamW優(yōu)化算法后AP 值提升1.9 個百分點。與使用RepVGGBlock與LKA模塊改進模型時相比,引入AdamW優(yōu)化算法后AP 值提升1.9 個百分點。上述實驗結(jié)果表明,AdamW 優(yōu)化算法有助于模型收斂至更優(yōu)的極小值點,有效提升檢測精準率。
此外,與原YOLOX-S 模型相比,同時使用Rep-VGGBlock、LKA 模塊與AdamW 優(yōu)化算法改進模型后,AP 值實現(xiàn)了3.3 個百分點的提升,在其余各項指標上均實現(xiàn)超過2.1 個百分點的提升,進一步驗證了三項改進方式的結(jié)合為提升模型在復雜施工場景下檢測精準率的最優(yōu)選擇。
3.4.3 LKA模塊添加方式消融實驗
為確定LKA 模塊的最佳添加方式,本文共設(shè)計六種添加方式進行實驗驗證,具體添加方式如圖8所示。其中(a)與(b)方式分別添加在Head分支前側(cè)與分支內(nèi),(c)與(d)方式分別添加在Neck 信息傳入路徑、特征融合主干,(e)方式同時添加在信息傳入路徑和特征融合主干,(f)方式添加在Neck輸出端。
圖8 LKA模塊不同添加方式示意Fig.8 Illustration of different LKA module adding methods
不同添加方式下的模型檢測性能測試結(jié)果如表6所示,可以看出:(d)方式下模型得到最高的值與APM值,(e)方式下模型得到最高的APS值,(f)
表6 不同LKA模塊添加方式模型性能表現(xiàn)Table 6 Performance of model with different LKA module adding methods 單位:%
(d)方式與(f)方式下的模型相比,AP 值僅下降0.1個百分點,但更好地保留了中小目標的特征信息,APS值與APM值未出現(xiàn)明顯下降,APL值相較原YOLOX-S模型也有較大幅度提升。對比表1中Mask R-CNN[7]、PointRend[8]等模型的APS值、APM值與APL值可以發(fā)現(xiàn),原YOLOX-S模型在大目標檢測方面已有較好性能,但在中小目標檢測方面差距明顯。從更好保有中小目標檢測性能的角度出發(fā),本文選擇將LKA模塊添加于Neck的特征融合主干。
3.4.4 注意力模塊消融實驗
本文將Neck特征融合主干中的LKA模塊[10]分別替換為SE模塊[26]、ECA模塊[27]、CBAM模塊[28]與CA模塊[29]共四種注意力模塊,以進一步驗證LKA 模塊的有效性。使用RepVGGBlock 與AdamW 優(yōu)化算法改進下的模型為基準,添加各種注意力模塊后的模型檢測性能對比如表7所示。
表7 不同注意力模塊模型性能表現(xiàn)Table 7 Performance of model with different attention modules 單位:%
由表7 可見,與未添加注意力模塊時的模型相比,添加CA 模塊、SE 模塊、CBAM 模塊與ECA 模塊后模型性能并未得到明顯提升,甚至有所下降。這種現(xiàn)象的出現(xiàn)與空間位置信息的損失有關(guān)。在提取通道注意力的過程中,由于大幅壓縮了特征圖的空間維度信息,在層間特征融合過程中易損失空間位置信息,造成模型檢測精準率下降。
在添加LKA 模塊后,模型在絕大多數(shù)指標上的性能表現(xiàn)均得到提升,表明LKA 模塊相較于其他注意力模塊,在通道和空間維度上都更具有適應(yīng)性,從而能夠提供更加有效的注意力引導,有助于完成目標檢測任務(wù)。
本文提出了一種結(jié)合RepVGGBlock、LKA 模塊與AdamW 優(yōu)化算法的改進YOLOX-S 模型,能夠?qū)崿F(xiàn)對施工場景下常見目標精準檢測。
在檢測精準率方面,改進YOLOX-S 模型AP 值與APL值提升顯著,可超越Mask R-CNN、PointRend等模型,部分指標達到并超越Faster R-CNN(Res-NeXt101),中、小目標檢測精準率改善明顯。在推理速度方面,改進YOLOX-S推理速度可達71.0 FPS,滿足實際應(yīng)用實時運行要求。
在下一步工作中:一方面可將本文提出的改進方式推廣至YOLOX-M等模型中,實現(xiàn)更加精準的目標檢測;另一方面可針對LKA模塊的運算進行優(yōu)化,進一步提升模型計算效率。