胡皓,郭放+,劉釗
1.中國人民公安大學 信息網絡安全學院,北京100038
2.中國人民公安大學 研究生院,北京100038
安全是有序開展各項施工生產活動的前提,但施工場地內有限的安全監管力量難以實時監管重型機械等帶來的安全風險。近年來,如何利用視頻監控系統自動識別安全風險成為一個重要研究課題。利用目標檢測算法自動檢測施工場地內的工人、挖掘機等常見目標,可以有效補充安全監管力量,切實提高安全監管效率。
施工場景下工人與重型機械目標檢測主要存在四方面難點:(1)施工場景中目標數量多且類別多樣;(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]。雖然這些算法在自建數據集上表現良好,但在復雜施工場景下仍存在檢測精準率不高、檢測類別較少、計算效率較低等問題。
現有基于深度學習的目標檢測算法中,YOLO(you only look once)系列算法因其精準、高效的目標檢測性能得到了研究者的廣泛關注。2021年,Ge等[6]提出了YOLOX 算法,采用解耦頭(decoupled head)、SiamOTA(simplified optimal transport assignment)等一系列改進策略提升算法性能。YOLOX算法包含多種不同體量的模型,其中YOLOX-Nano、YOLOX-Tiny模型面向移動端應用,YOLOX-S、YOLOX-M、YOLOXL、YOLOX-X模型面向非移動端應用。
實際施工應用場景中,邊緣側設備提供的算力相對有限,因此檢測模型應以盡可能小的計算開銷得到盡可能精準的檢測結果。如圖1所示,與YOLOXM等模型相比,YOLOX-S模型參數量較少,對實時性要求較高,應用適配度更優。與YOLOX-Nano 等模型相比,YOLOX-S模型保有一定的模型體量,具有較高檢測精準率。但在復雜施工場景下,YOLOX-S 模型的目標檢測精準率相較Mask R-CNN[7]、PointRend[8]等模型有一定差距。

圖1 不同體量YOLOX模型參數量與檢測精準率對比Fig.1 Comparison of parameters and detection precision of different YOLOX models
本文從結構重參數化模塊、大核注意力模塊與優化算法三方面提出一種改進YOLOX-S模型。
(1)使用RepVGGBlock[9]模塊進行參數轉換,分離訓練階段與測試階段模型結構。在訓練階段,通過構建殘差分支改變原有網絡簡單的梯度計算流,引入更多的隱式子模型擴大模型搜索空間,更好應對訓練過程中的梯度消失問題,獲得更優的收斂結果。在推理階段,合并殘差分支以等價保留模型參數,避免帶來額外計算開銷。
(2)在YOLOX-S 模型的Neck 引入LKA(large kernel attention)模塊[10]計算注意力權重。LKA模塊兼具卷積運算與自注意力運算的特點,在通道維度上計算自適應權重的同時,在空間維度上提取局部特征信息與長距離依賴關系,從而為特征圖賦予自適應注意力權重,實現更加精準的檢測結果。
(3)使用AdamW 優化算法[11]對模型參數進行更新,將自適應梯度與自適應學習率與權重衰減解耦以加快模型收斂,提升模型性能表現。
基于深度學習的目標檢測算法可分為基于區域提取算法、基于目標回歸算法。
基于區域提取算法以MaskR-CNN[7]、FasterR-CNN[12]、R-FCN(region-based fully convolutional networks)[13]為代表,分候選區域篩選與基于候選區域回歸兩個階段實現目標檢測。此類算法檢測精準率較高,但篩選候選區域等步驟運算開銷較大,實時性普遍較差。
基于目標回歸算法以SSD[14]、YOLO[15]、FCOS(fully convolutional one-stage object detection)[16]為代表,通過在特征圖上直接回歸目標類別與位置信息實現目標檢測。此類算法推理速度快,但檢測平均精準率相對較低。
近年來,DETR(end-to-end object detection with transformers)[17]、Swin Transformer[18]等基于視覺Transformer檢測算法陸續出現,此類算法利用Transformer 提取像素間的全局關聯關系,具有更強的建模能力與目標檢測性能,但通常需要較大算力支撐。
在眾多檢測算法中,YOLO系列算法能夠較好平衡檢測精準率與推理速度,保持了較高的研究熱度。經過更新迭代,YOLOv3[19]、YOLOv4[20]等精準率已可以媲美甚至超越同時期基于區域提取的目標檢測算法。2021年,YOLOv5[21]、YOLOX[6]算法在COCO數據集[22]上檢測精準率相繼突破新高,已成為當前YOLO系列算法的新的代表。
結構重參數化模塊通過嚴格等價的參數轉化實現網絡結構轉換,代表成果有ACB(asymmetric convolution block)[23]模塊、DBB(diverse branch block)[24]模塊與RepVGGBlock[9]模塊等。
ACB模塊與DBB模塊的核心是通過參數轉換拆分與合并卷積層。在訓練階段,ACB模塊將3×3卷積層拆分為大小為3×3、1×3 與3×1 的卷積層。DBB 模塊則在ACB模塊基礎上進一步改進,將一個K×K卷積層拆分為一個形似Inception[25]的四分支結構,各分支由1×1 卷積層、K×K卷積層與平均池化層按照不同方式組合而成。在測試階段,ACB 模塊與DBB 模塊分別等價轉化為3×3卷積層與K×K卷積層。
RepVGGBlock 通過參數轉換構建與合并殘差分支。在訓練階段,RepVGGBlock 構建1×1 卷積分支、恒等映射分支形成殘差結構。在測試階段,Rep-VGGBlock 將等價轉化為3×3 卷積層,避免增加額外的計算開銷。
RepVGGBlock 結構遷移方便,與網絡結構本身無關,不引入任何超參數。結合RepVGGBlock后,YOLOX-S 模型可形成更加多樣化的特征空間,提升模型性能表現。
卷積神經網絡中,注意力模塊可分為單路注意力模塊與多路注意力模塊。
單路注意力模塊的代表有SE(squeeze and excitation)模塊[26]、ECA(efficient channel attention)模塊[27]。SE模塊使用全局平均池化操作對特征圖的空間維度信息進行壓縮,再使用全連接層提取通道注意力信息。ECA 模塊在SE 模塊的基礎上,使用一維卷積層代替全連接層,更好融合通道間信息并進一步提升了運算效率。
多路注意力模塊的代表有CBAM(convolutional block attention module)模塊[28]與CA(coordinate attention)模塊[29]。CBAM 模塊同時提取通道維度與空間維度的注意力信息,實現不同維度注意力信息的交互融合。CA模塊從寬度方向與高度方向分別抽取通道注意力信息,實現位置信息與通道注意力的結合。
2022年,Guo等[10]提出LKA 模塊,使用深度卷積層(depth-wise convolution)、深度空洞卷積層(depthwise dilation convolution)與1×1 卷積層的組合來擬合大卷積核感受野并降低計算開銷,通過卷積運算獲取自適應注意力權重。
結合LKA模塊后,YOLOX-S模型可在提取局部特征信息的同時,在大感受野下提取像素間的長距離依賴關系,并兼顧通道維度與空間維度的注意力信息提取,進一步提升檢測平均精準率。
Adam優化算法[30]是深度學習模型訓練的典型優化算法。2017年,Loshchilov 等考慮到在Adam 優化算法中單純添加L2 正則項并不等價于權重衰減,因此在Adam 優化算法基礎上提出AdamW[11]優化算法。其單獨解耦權重衰減項,僅在參數更新的最后階段加入權重衰減運算,避免對一階動量與二階動量計算造成的潛在影響。
2018年,BERT[31]模型在訓練過程中即采用了AdamW 優化算法的思路。隨后AdamW 優化算法在自然語言處理領域中的Transformer 模型的訓練中取得了大量的應用。隨著DETR[17]、Swin Transformer[18]等計算機視覺領域Transformer 模型表現出優越性能,AdamW優化算法被越來越多地用于計算機視覺領域Transformer模型訓練。2022年,ConvNeXt[32]模型的提出進一步驗證了AdamW 優化算法可被用于計算機視覺領域卷積神經網絡的訓練,改良模型性能表現。
改進YOLOX-S 模型結構框架如圖2 所示,包含Backbone、Neck、Head三部分。Backbone 由Focus、Rep-dark2 等組合而成,負責對輸入圖像進行初步特征提取。Rep-dark3、Rep-dark4、Rep-dark5的輸出特征圖被送入Neck 進一步處理。在Neck中,FPN0、Rep-FPN1 與LKA-FPN2 組成FPN 結構,上層特征信息經由FPN 結構逐層向下傳遞。Rep-PAN0、LKA-PAN1、LKA-PAN2 組成PAN 結構,下層特征信息經由PAN結構實現逐層向上傳遞。兩條信息流促成層間特征信息的融合交互。Head 由具有相同結構的Head0、Head1、Head2組成,負責預測目標類別信息與位置信息。以Head2為例,內部共包含三個分支,CLS Conv、REG Conv與OBJ Conv分別負責預測目標類別、目標邊界框信息與目標置信度。

圖2 改進YOLOX-S模型結構框架Fig.2 Framework of improved YOLOX-S model
如圖3 所示,RepVGGBlock 可分為RepVGGBlock-A與RepVGGBlock-B兩種類型。RepVGGBlock-A在訓練階段包含一個1×1 卷積分支與一個恒等映射分支,輸出特征圖高度與寬度保持不變,用于替換Backbone 與Neck 內各結構中步長為1 的3×3 卷積層。RepVGGBlock-B 在訓練階段僅包含一個1×1 卷積層分支,輸出特征圖高度與寬度縮減為原先的一半,用于替換Backbone 與Neck 各結構中步長為2 的3×3卷積層。

圖3 RepVGGBlock結構示意Fig.3 Illustration of RepVGGBlock structure
與原YOLOX-S模型相比,結合RepVGGBlock后的模型由于在訓練過程中存在殘差結構,其可被視為一個規模較大的集成模型,緩解堆疊卷積層的簡單網絡結構可能導致的梯度消失問題,提高模型目標檢測平均精準率。
但引入殘差結構將導致模型在推理階段的計算開銷有一定程度增長,不利于邊緣側設備部署與應用。因此,在推理階段可利用參數轉換,在等價保留訓練階段得到的模型參數基礎上,將殘差結構合并入卷積層中,避免額外的計算開銷。
殘差結構轉化過程如下:
首先,合并批歸一化層(batch normalization layer)與卷積權重,合并后的卷積運算如式(1)所示:
式中,γ與β為批歸一化過程中學習得到的參數,W(·)為卷積運算,μ與σ2為批次均值與方差。
其后,合并1×1卷積層分支與3×3卷積層。由于二維卷積的可加性,1×1卷積核與3×3卷積核先相加再進行卷積運算得到的結果與分別進行卷積運算后再相加的結果相同。如圖4所示,將1×1的卷積核與3×3卷積核中心位置元素相加實現二者的合并。

圖4 1×1卷積核融合過程Fig.4 1×1 convolution kernel fusion process
最后,如果存在恒等映射分支,則合并恒等映射分支與3×3 卷積層。由于恒等映射分支可視為權重特殊的1×1卷積層,恒等映射也可參照1×1卷積層的合并方式并入3×3卷積層內。
LKA 模塊結構如圖5(a)所示,注意力權重由一個大小為5×5的深度卷積運算、大小為7×7且膨脹率為3 的膨脹卷積運算與大小為1×1 的卷積運算組合得到。將注意力權重與輸入特征圖進行逐元素相乘,即得到輸出特征圖。

圖5 LKA與Self-Attention結構對比Fig.5 Comparison of LKA and Self-Attention structures
LKA 模塊與如圖5(b)所示的自注意力(Self-Attention)具有相近設計思路,三種不同卷積的組合后感受野近似一個21×21 的大卷積核的感受野。因此在YOLOX-S模型中引入LKA模塊后,可在提取局部特征信息的基礎上進一步聚合長距離依賴關系,為模型提供更加有效的注意力引導,進一步提升模型檢測平均精準率。
如圖6所示,Neck中共添加三個LKA模塊。LKA0被添加在LKA-FPN2中,對上采樣后的FPN_out1 添加注意力信息。添加注意力信息后的特征圖將與Backbone 中dark3 的輸出dark3_out 按通道維度堆疊為FPN_out2傳入LKA-PAN2模塊。

圖6 改進后的Neck結構示意Fig.6 Illustration of improved Neck structure
LKA1 被添加在LKA-PAN2 模塊中,對Conv3 的輸出特征圖添加注意力信息。添加注意力信息后的特征圖將與Rep-FPN1 模塊的輸出FPN_out1 按通道維度堆疊,并經CSP2運算后作為LKA-PAN1的結果輸出。
LKA2 被添加在LKA-PAN1 模塊中,對Conv4 的輸出特征圖添加注意力信息。添加注意力信息后的特征圖將與FPN0 模塊的輸出FPN_out0 按通道維度堆疊,并經由CSP3運算后作為Rep-PAN0的結果輸出。
隨機梯度下降算法(stochastic gradient descent,SGD)對模型參數進行更新的過程如式(2)所示:
式中,wt為t時刻模型參數,wt-1為t-1 時刻模型參數,λ為權重衰減速率,ηt為t時刻學習率,gt為t時刻計算得到的梯度。
SGD 算法可在式(2)的基礎上引入一階動量mt以抑制SGD算法在參數更新過程中可能出現的震蕩現象,計算如式(3)所示:
式中,mt為t時刻的一階動量,mt-1為t-1 時刻的一階動量,β1為超參數,用于確定一階動量的更新速率,一般取值為0.9。
引入一階動量mt后的SGD 算法對模型參數的更新過程如式(4)所示:
盡管帶有動量的SGD算法引入一階動量實現了梯度自適應,但是其并未對學習率進行自適應調節,模型收斂效果很大程度上取決于人為設定的超參數。
AdamW優化算法在一階動量的基礎上引入了二階動量vt實現學習率的自適應調節。vt的計算如式(5)所示:
式中,vt為t時刻的二階動量,vt-1為t-1 時刻的二階動量,β2為用于確定二階動量的更新速率的超參數,默認取值為0.999。
一階動量與二階動量在訓練過程中會被動態修正,以平衡訓練初期的動量大小,動態修正過程如式(6)、式(7)所示,Mt與Vt為修正后的一階動量與二階動量:
AdamW優化算法對模型參數進行更新的過程如式(8)所示:
式中,ε為用于避免二階動量為0時導致的計算異常的常數,一般取值為10-8。
實驗數據集選用建筑工地運動目標數據集(moving objects in construction sites,MOCS)[33]。MOCS 數據集共劃分為訓練集、驗證集、測試集三部分,分別包含19 404 張、4 000 張與18 204 張圖像。與現有其他施工類目標檢測數據集相比,MOCS數據集具有三方面優點:(1)規模大。數據集包含22 861 個目標實例,規模已可媲美常規目標檢測數據集。(2)數據真實。圖像數據采集自國內外174個建筑工地,能夠反映施工現場內光照、天氣、視場角等方面的實際變化情況。(3)目標類別多樣。數據集對13類常見的施工場景中的運動目標進行了精準標注,有助于實現目標檢測算法在施工場景下的應用拓展。
改進YOLOX-S 模型使用1.7.1 版本的Pytorch 深度學習框架搭建。
在訓練階段,基于Ubuntu 16.04 系統搭建模型訓練平臺,配備1塊型號為Intel Xeon E5-2680 v4的CPU與8 塊型號為Nvidia Tesla P4 的GPU。訓練過程中,首先使用COCO數據集[22]對模型進行預訓練,其后使用MOCS 數據集對模型進行訓練。使用AdamW 優化算法對模型參數進行更新,設定初始學習率為0.001,并能夠使用余弦調度策略對學習率進行調整,權重衰減速率為0.01。訓練批次大小(Batch Size)為48。訓練共進行120個輪次(Epoch)。在最后15個訓練輪次不再使用Mixup與Mosaic數據增強方法,以避免模型學習到過于偏離實際的圖像特征。
在測試階段,檢測結果提交至Codalab 平臺進行統一的模型性能評估。為測試本文模型推理速度,本文另基于Ubuntu 20.04 系統搭建推理速度測試平臺,配備1 塊型號為Intel Core i7-11800H 的CPU 與1塊型號為Nvidia TITAN RTX 的GPU。在推理速度測試過程中,RepVGGBlock被轉換至如圖3(b)或圖3(d)所示的結構。設定模型使用FP16 精度進行運算,合并卷積層與批歸一化層,每次送入模型的測試圖像批次大小為1。
本文使用COCO 數據集[22]中的平均精準率(average precision,AP)值評估模型。
AP值綜合考量了不同交并比閾值與置信度閾值條件下的目標檢測精準率。在某一確定的交并比閾值與置信度閾值條件下,檢測結果可按照TP(true positive)、FP(false positive)進行分類統計。其中TP指檢測到目標且檢測信息正確的目標數量,FP 指當檢測到目標但檢測信息存在錯誤的目標數量,二者共同決定當前條件下的目標檢測精準率,計算如式(9)所示。
3.4.1 改進YOLOX-S模型性能表現
改進YOLOX-S 模型與原YOLOX-S 及Mask RCNN等13種基線模型在MOCS數據集上的性能對比如表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個基線模型進行對比,測試圖像尺寸統一為640×640,推理速度測試結果如表2 所示。可以看出,盡管改進YOLOX-S模型推理速度由原86.4 FPS下降至71.0 FPS,但仍顯著超越YOLOv3、Faster R-CNN(ResNeXt101)等其余模型,運算效率可滿足實時運行要求。

表2 推理速度對比Table 2 Comparison of inference speed
在參數量與GFLOPs方面,YOLOX-S模型改進前后對比如表3所示。由于Neck中額外添加LKA模塊,改進YOLOX-S模型增長1.4×105參數量與0.48GFLOPs。

表3 YOLOX-S模型改進前后參數量、GFLOPs對比Table 3 Comparison of YOLOX-S model parameters and GFLOPs before and after improvement
為更好評估算法魯棒性,本文選取了MOCS 數據集中四種挑戰場景進行實驗分析:模糊場景、遮擋場景、低光照場景及旋轉場景。由于MOCS 數據集未提供測試集標注文件,本文從驗證集圖像中共篩選模糊場景圖像42 張、遮擋場景圖像676 張、低光照場景圖像112 張、旋轉場景圖像75張,測試結果如表4 所示。可以發現,本文提出的改進YOLOX-S 模型在模糊場景、旋轉場景、遮擋場景、低光照場景下的AP 值均高于原YOLOX-S 模型。其中旋轉場景提升最為明顯,這是由于絕大多數訓練數據并未發生旋轉,原YOLOX-S模型識別旋轉場景目標的能力相對有限。改進YOLOX-S 模型利用RepVGGBlock 與LKA 模塊增強了模型的特征學習與提取能力,從而獲得了更加準確的識別結果。

表4 挑戰場景下YOLOX-S模型改進前后AP值對比Table 4 Comparison of YOLOX-S model AP in challenge scene before and after improvement 單位:%
四種挑戰場景下的定性效果對比如圖7 所示。(1)在旋轉場景中,改進YOLOX-S 模型在檢測中能夠有效排除其他物體的干擾。(2)在模糊場景中,改進YOLOX-S 模型的誤檢情況更少,并未將墻壁、積土等區域誤判為感興趣目標。(3)在遮擋場景中,改進YOLOX-S模型減少了因遮擋導致的漏檢現象,準確定位到圖中被遮擋的工人。(4)在低光照場景中,改進YOLOX-S模型得到的邊界框回歸更加精準,光照不足引起的邊界框偏移現象明顯改良。

圖7 YOLOX-S模型改進前后檢測效果對比Fig.7 Comparison of YOLOX-S model detection performance before and after improvement
3.4.2 模型改進消融實驗
本文開展消融實驗驗證RepVGGBlock、LKA 模塊、AdamW 優化算法及其組合對檢測性能提升的有效性,實驗結果如表5所示。

表5 使用不同改進方法時YOLOX-S模型性能表現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 的多分支殘差結構增強了LKA 模塊提取注意力信息的能力。而相較單獨使用RepVGGBlock 時AP值提升0.1個百分點,提升相對較小,但APS和APL值有所提高,表明模型對大目標、小目標的檢測性能有一定程度提升。
引入AdamW 優化算法后,各類改進下的模型檢測性能均進一步提升。與原YOLOX-S模型相比,引入AdamW 優化算法后AP 值由48.1%增長至49.4%。與單獨使用RepVGGBlock 改進模型時相比,引入AdmaW優化算法后AP值提升0.5個百分點。與單獨使用LKA模塊改進模型時相比,引入AdamW優化算法后AP 值提升1.9 個百分點。與使用RepVGGBlock與LKA模塊改進模型時相比,引入AdamW優化算法后AP 值提升1.9 個百分點。上述實驗結果表明,AdamW 優化算法有助于模型收斂至更優的極小值點,有效提升檢測精準率。
此外,與原YOLOX-S 模型相比,同時使用Rep-VGGBlock、LKA 模塊與AdamW 優化算法改進模型后,AP 值實現了3.3 個百分點的提升,在其余各項指標上均實現超過2.1 個百分點的提升,進一步驗證了三項改進方式的結合為提升模型在復雜施工場景下檢測精準率的最優選擇。
3.4.3 LKA模塊添加方式消融實驗
為確定LKA 模塊的最佳添加方式,本文共設計六種添加方式進行實驗驗證,具體添加方式如圖8所示。其中(a)與(b)方式分別添加在Head分支前側與分支內,(c)與(d)方式分別添加在Neck 信息傳入路徑、特征融合主干,(e)方式同時添加在信息傳入路徑和特征融合主干,(f)方式添加在Neck輸出端。

圖8 LKA模塊不同添加方式示意Fig.8 Illustration of different LKA module adding methods
不同添加方式下的模型檢測性能測試結果如表6所示,可以看出:(d)方式下模型得到最高的值與APM值,(e)方式下模型得到最高的APS值,(f)

表6 不同LKA模塊添加方式模型性能表現Table 6 Performance of model with different LKA module adding methods 單位:%
(d)方式與(f)方式下的模型相比,AP 值僅下降0.1個百分點,但更好地保留了中小目標的特征信息,APS值與APM值未出現明顯下降,APL值相較原YOLOX-S模型也有較大幅度提升。對比表1中Mask R-CNN[7]、PointRend[8]等模型的APS值、APM值與APL值可以發現,原YOLOX-S模型在大目標檢測方面已有較好性能,但在中小目標檢測方面差距明顯。從更好保有中小目標檢測性能的角度出發,本文選擇將LKA模塊添加于Neck的特征融合主干。
3.4.4 注意力模塊消融實驗
本文將Neck特征融合主干中的LKA模塊[10]分別替換為SE模塊[26]、ECA模塊[27]、CBAM模塊[28]與CA模塊[29]共四種注意力模塊,以進一步驗證LKA 模塊的有效性。使用RepVGGBlock 與AdamW 優化算法改進下的模型為基準,添加各種注意力模塊后的模型檢測性能對比如表7所示。

表7 不同注意力模塊模型性能表現Table 7 Performance of model with different attention modules 單位:%
由表7 可見,與未添加注意力模塊時的模型相比,添加CA 模塊、SE 模塊、CBAM 模塊與ECA 模塊后模型性能并未得到明顯提升,甚至有所下降。這種現象的出現與空間位置信息的損失有關。在提取通道注意力的過程中,由于大幅壓縮了特征圖的空間維度信息,在層間特征融合過程中易損失空間位置信息,造成模型檢測精準率下降。
在添加LKA 模塊后,模型在絕大多數指標上的性能表現均得到提升,表明LKA 模塊相較于其他注意力模塊,在通道和空間維度上都更具有適應性,從而能夠提供更加有效的注意力引導,有助于完成目標檢測任務。
本文提出了一種結合RepVGGBlock、LKA 模塊與AdamW 優化算法的改進YOLOX-S 模型,能夠實現對施工場景下常見目標精準檢測。
在檢測精準率方面,改進YOLOX-S 模型AP 值與APL值提升顯著,可超越Mask R-CNN、PointRend等模型,部分指標達到并超越Faster R-CNN(Res-NeXt101),中、小目標檢測精準率改善明顯。在推理速度方面,改進YOLOX-S推理速度可達71.0 FPS,滿足實際應用實時運行要求。
在下一步工作中:一方面可將本文提出的改進方式推廣至YOLOX-M等模型中,實現更加精準的目標檢測;另一方面可針對LKA模塊的運算進行優化,進一步提升模型計算效率。