王曉龍,江 波
(1.上海華訊網(wǎng)絡(luò)系統(tǒng)有限公司 行業(yè)數(shù)智事業(yè)部,上海 200127;2.中國電子科技集團公司第三十二研究所,上海 201808)
近年來,我國電力行業(yè)和建筑行業(yè)人員在高空作業(yè)時,因未佩戴安全帽發(fā)生的事故屢見不鮮。目前,施工單位大部分通過人工監(jiān)控方式現(xiàn)場監(jiān)控施工人員有無佩戴安全帽,當(dāng)現(xiàn)場環(huán)境惡劣時可能會影響監(jiān)控人員的主觀情緒和人身安全,并且監(jiān)控人員難以了解每個高空作業(yè)人員具體安全情況,導(dǎo)致人工監(jiān)控方法效率低、成本高。隨著人工智能技術(shù)的發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測算法為安全帽佩戴檢測提供了新的方向。
目前,檢測算法主要包括兩階段目標(biāo)檢測算法和單階段目標(biāo)檢測算法,學(xué)者們對安全帽檢測進行了一系列研究。文獻[1]提出一種Faster R-CNN[2]來檢測自動非硬帽,該方法相比傳統(tǒng)的安全帽檢測方法具有高精度和高速度的特點,但較其他一階段目標(biāo)檢測算法實時性較差。文獻[3]先對視頻中采樣的圖像進行預(yù)處理操作,通過設(shè)計不同的卷積神經(jīng)網(wǎng)絡(luò)進行實驗對比,該方法采用了較多的全連接層,最終導(dǎo)致模型大小和推理速度均有較大的增加。文獻[4]將反向漸進注意力機制融入SSD 單階段檢測算法[5],提升了安全帽檢測精度,并且可以確認顏色是否正確,但該算法對小尺度目標(biāo)的識別精度較低,在密集場景下不能達到很好的識別效果。文獻[6]通過改進LeNet5[7]提出一種并行雙路卷積神經(jīng)網(wǎng)絡(luò)結(jié)合SVM 進行人體和安全帽識別,該方法不能達到實時檢測的效果。文獻[8]針對現(xiàn)有安全帽檢測算法小目標(biāo)識別效果差等問題,將EfficientDet算法[9]結(jié)合優(yōu)化預(yù)設(shè)邊框來提高小目標(biāo)的檢測精度,但該算法延遲較高。文獻[10]基于YOLOv3 算法[11-12]識別安全帽,再結(jié)合語義模板和語義規(guī)則得出安全帽佩戴的語義描述,但該方法得出的語義描述單一,缺乏句子的多樣性表達。
以上都是基于先驗框的安全帽佩戴檢測算法,由于初始先驗框的設(shè)置會對模型的識別效果有影響,因此存在很大的不確定性,導(dǎo)致訓(xùn)練模型并不能適用于不同的復(fù)雜環(huán)境[13]。本文基于沒有先驗框的目標(biāo)檢測網(wǎng)絡(luò)YOLOX-m[14]進行改進。首先簡化主干特征網(wǎng)絡(luò)結(jié)構(gòu),在幾乎沒有精度損失的情況下,減小模型大小和降低推理延遲;然后使用改進的重參視覺幾何組(RepVGG)模塊[15]替換主干特征網(wǎng)絡(luò)中的卷積塊提升網(wǎng)絡(luò)學(xué)習(xí)能力并提升模型精度,同時在推理時利用重參化來提升推理速度;最后將空間金字塔池化(SPP)結(jié)構(gòu)替換為快速空間金字塔池化(SPPF),并取消最后一層C3Block 內(nèi)部的殘差結(jié)構(gòu)及調(diào)換順序,減少大殘差邊,加快模型推理速度,避免SPPF 處于串行卷積塊之間以影響信息流通,從而提高檢測精度。
YOLOX-m 是基于Anchor Free[16]的目標(biāo) 檢測網(wǎng)絡(luò),在YOLOv3 的基礎(chǔ)上進行改進。YOLOX-m 網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示(彩色效果見《計算機工程》官網(wǎng)HTML 版,下同)。
圖1 YOLOX-m 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Structure of the YOLOX-m network
YOLOX-m 網(wǎng)絡(luò)由主干特征網(wǎng)絡(luò)、特征融合網(wǎng)絡(luò)和YOLOHead 檢測頭3 個部分構(gòu)成。
主干特征網(wǎng)絡(luò)用于初始特征的提取,在CSPDarknet 的基礎(chǔ)上添加了Focus 切片結(jié)構(gòu)和空間金字塔池化結(jié)構(gòu)[17]。Focus 切片操作對圖像每隔1 個像素點取1 個值,寬高減半,類似于鄰近下采樣,輸出通道擴充4 倍,且圖像信息沒有丟失。CSPDarknet 結(jié)構(gòu)由多個ResUnit 殘差單元[18]組成,用于特征深層次的提取。SPP 結(jié)構(gòu)由3 個最大池化分支和1 個殘差映射邊組成,用于提取不同尺寸的空間特征信息,可以提升模型對于空間布局和物體不變特征的魯棒性。
特征融合層用于深層特征和淺層特征的多尺度融合,采用自底向上、自頂向下和橫向連接方式。自底向上通過逐層上采樣將深層的語義信息傳遞到淺層,再通過橫向連接與淺層特征相融合。自頂向下通過逐層下采樣特征再與自底向上每層特征橫向連接,解決自底向上中低層特征模糊的情況,彌補并加強了定位信息。
YOLOHead 輸出分類分支、回歸分支和置信度分支的值,訓(xùn)練時用于損失函數(shù)的計算。YOLOX-m有3 個檢測頭,分類分支得到目標(biāo)的預(yù)測類別,回歸分支得到目標(biāo)的坐標(biāo)偏移量,置信度分支得到預(yù)測類別的置信度值。
YOLOX-m 主干特征網(wǎng)絡(luò)是基于原始的YOLOv5 的主干特征網(wǎng)絡(luò),并未作修改,跨階段局部結(jié)構(gòu)(CSP)的重復(fù)次數(shù)為3、9、9、3,可以通過改變寬度和深度因子來控制模型大小。
為了最大化模型性能,將主干特征網(wǎng)絡(luò)的CSP減少為1、3、3、1,如圖2 所示,在精度損失0.35 個百分點的情況下降低了5.0 MB 的模型大小和2 ms 的推理延遲,其中精度損失是因為特征提取不充分導(dǎo)致的。綜合來看,主干特征網(wǎng)絡(luò)使用多個C3Block進行堆疊對模型性能只有略微的提升,相反地,少量C3Block 的堆疊已經(jīng)能夠獲取足夠多的特征信息,因此可以降低殘差塊的堆疊次數(shù)來使得重構(gòu)模型效率最大化。在將模型參數(shù)量減少20%后,簡化的主干特征網(wǎng)絡(luò)為后續(xù)的結(jié)構(gòu)改進提供了基礎(chǔ)架構(gòu)。
圖2 簡化的YOLOX-m 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Simplified structure of the YOLOX-m network
原始YOLOX-m主干特征網(wǎng)絡(luò)主要由CSPDarknet網(wǎng)絡(luò)構(gòu)成,CSPDarknet 網(wǎng)絡(luò)則由一系列3×3 卷積和CSP 殘差結(jié)構(gòu)組成,CSP 殘差結(jié)構(gòu)主要用于特征的提取和組合,3×3 卷積主要用于降采樣,同時擴充特征層的通道數(shù)。一系列3×3 卷積的串聯(lián)結(jié)構(gòu)借鑒了VGG 網(wǎng)絡(luò)的思想。VGG 網(wǎng)絡(luò)主要探索了卷積神經(jīng)網(wǎng)絡(luò)性能與其深度之間的關(guān)系,采用了多個3×3 卷積替代5×5 等大卷積核來增加網(wǎng)絡(luò)的表達能力,證明了增加網(wǎng)絡(luò)的深度能夠在一定程度上影響模型最終性能,并且也能使得錯誤率大幅度下降。但隨著網(wǎng)絡(luò)的逐漸加深,深層網(wǎng)絡(luò)梯度消失問題隨之而來,殘差結(jié)構(gòu)的提出使得深層網(wǎng)絡(luò)[19]的問題得以解決。殘差化重參視覺幾何組(Res-RepVGG)結(jié)構(gòu)如圖3 所示,其在RepVGG 網(wǎng)絡(luò)的基礎(chǔ)上進行改進[27],具體如下:
1)在VGG[20]的Block 中加入Identity 分支和 殘差分支,利用殘差結(jié)構(gòu)解決VGG 梯度消失的問題,從而構(gòu)成RepVGG,然后在RepVGG 結(jié)構(gòu)的外側(cè)增加一條映射邊,相當(dāng)于CSP 結(jié)構(gòu),從而增加模型捕捉特征的能力,如圖3(a)所示。
2)模型推理階段,通過算子融合策略將當(dāng)前卷積核的殘差層都并入3×3 卷積核結(jié)構(gòu),便于網(wǎng)絡(luò)部署與加速,如圖3(b)所示。
Res-RepVGG 連接方式如式(1)~式(3)所示:
其中:x是當(dāng)前層的輸入特征表示是由最外層1×1 卷積核實現(xiàn)的殘差邊是由1×1 核在Rep VGG 內(nèi)部實現(xiàn)的殘差邊表示1×1 核、3×3 核和批量正則化(BN)串聯(lián)結(jié)構(gòu);f(x)是內(nèi)部RepVGG 結(jié)構(gòu)的輸出特征;F(x)最終由f(x)和大的殘差邊x相加得到,然后通過激活函數(shù)SiLU[21]進行非線性映射。
使用Res-RepVGG 替換原始主干特征網(wǎng)絡(luò)中的3×3 卷積核使網(wǎng)絡(luò)在訓(xùn)練時更加靈活。原先單一的3×3 卷積塊分支加上1×1 卷積塊分支與Identity 分支和殘差分支將網(wǎng)絡(luò)轉(zhuǎn)換為具有外層大殘差邊的多分支結(jié)構(gòu),即在網(wǎng)絡(luò)中加入多條梯度流路徑。原始訓(xùn)練單個網(wǎng)絡(luò),現(xiàn)在等價于訓(xùn)練多個網(wǎng)絡(luò),并將多個網(wǎng)絡(luò)融合在一個網(wǎng)絡(luò)中使模型集成更簡單,最后在推理階段通過重參化降低模型推理延遲。使用Res-RepVGG 改進模型在參數(shù)量略微增加的情況下,模型檢測精度提升了0.75 個百分點,延遲下降了2 ms。
YOLOX-m 主干特征網(wǎng)絡(luò)的最后兩層為SPP 和CSPBlock,SPP 能將任意大小的特征圖轉(zhuǎn)換成固定大小的特征向量,并且可以擴大網(wǎng)絡(luò)感受野,融合不同尺度特征圖的信息,完成特征融合,但SPP 需要指定3 次卷積核的大小,且輸入數(shù)據(jù)并行進行3 次池化拼接,增加了耗時。為了進一步簡化和加速模型,使用快速空間金字塔池化(SPPF)替代SPP,SPPF 結(jié)構(gòu)如圖4 所示,只指定一個卷積核,每次池化后的輸出會成為下一個池化的輸入,再進行拼接。根據(jù)ShuffleNetv2[22]理 論,網(wǎng)絡(luò)分 支會減 小并行 度,對GPU 這種高度平行計算的設(shè)備不友好,由于SPPF 采用串行的池化方式,因此提升了模型檢測精度。將SPPF 結(jié)構(gòu)放在主干特征網(wǎng)絡(luò)的最后一層,CSPBlock移動到原先SPP 層的位置,避免之前處于串行卷積塊之間影響卷積塊間信息流通,并且最后一個CSPBlock 結(jié)構(gòu)只使用大殘差邊,在其內(nèi)部不使用殘差單元,減少了分支數(shù),提升了模型推理速度。通過改進主干特征網(wǎng)絡(luò)最后兩層,使得模型的檢測精度提升了0.56 個百分點,延遲下降了1 ms。
Res-RepVGG 模塊和主干特征網(wǎng)絡(luò)的最后兩層CSPBlock 和SPPF 結(jié)構(gòu)改進如圖5 所示,模型參數(shù)量在增加0.31×106的情況下,精度提升了1.31%,延遲下降了3 ms。
圖5 Res-RepVGG 和SPPF 對主干特征網(wǎng)絡(luò)的改進Fig.5 Improvement of the backbone feature network by the Res-RepVGG and SPPF
在安全帽佩戴檢測數(shù)據(jù)集上模型改進前后的檢測效果對比如圖6 所示。由圖6 可以看出:改進前的YOLOX-m 檢測效果較好,且沒有漏檢的情況,包括較小的目標(biāo),置信度達到0.8 以上;改進后的YOLOX-m 使用Res-RepVGG 模塊和主干特征簡化網(wǎng)絡(luò)作為最后兩層,檢測精度更高。
圖6 YOLOX-m 改進前后的檢測效果對比Fig.6 Comparison of detection effect before and after the YOLOX-m improvement
由此可見,改進后的YOLOX-m 在簡化主干特征網(wǎng)絡(luò)的基礎(chǔ)上,更新CSP 結(jié)構(gòu)的重疊次數(shù)為1、3、3、1,通過Res-RepVGG 和SPPF 的結(jié)構(gòu)替換,在少量增加模型參數(shù)量的情況下提高了檢測精度和推理速度,但模型大小仍低于原始YOLOX-m 模型。
在實際生產(chǎn)過程中環(huán)境是復(fù)雜多變的,訓(xùn)練好的模型可能得到較差的檢測效果。針對域遷移差異問題[23-24],設(shè)計一種多階段網(wǎng)絡(luò)訓(xùn)練策略來增加模型魯棒性,如圖7 所示,具體步驟如下:
圖7 多階段網(wǎng)絡(luò)訓(xùn)練策略Fig.7 Multi-stage network training strategy
1)將原缺陷絕緣子訓(xùn)練集N分為S個子訓(xùn)練集集,第Ni個子訓(xùn)練集的樣本數(shù)為MNi,其中i=0,1,…,S-1;將原缺陷絕緣子測試集C分為H個子數(shù)據(jù)集,第Cj個子數(shù)據(jù)集的樣本數(shù)為MCj,其中j=0,1,…,H-1。需要注意的是,在保證子測試集用完時,子訓(xùn)練集也使用完畢,H和S相等。
3)初始模型推理未標(biāo)記的測試集Cj得到偽標(biāo)簽數(shù)據(jù)集Pj,得到的偽標(biāo)簽數(shù)據(jù)集Pj初步具備缺陷絕緣子的位置信息,但還和真實標(biāo)簽有一定的差距,因此再結(jié)合子訓(xùn)練集Ni+1對初始模型進行微調(diào),微調(diào)完成后得到微調(diào)模型,結(jié)合方式是在微調(diào)模型的訓(xùn)練過程中進行Mosaic 數(shù)據(jù)增強時以隨機概率K來抽取偽標(biāo)簽數(shù)據(jù)集上子訓(xùn)練集Ni+1中的圖像湊成4 張圖片,如式(6)~式(8)所示:
4)跳回步驟3)進入循環(huán)迭代,將微調(diào)模型賦予初始模型作為下一步循環(huán)中微調(diào)的模型,并且子測試集數(shù)j通過加1 遍歷到下一個子測試集Cj+(1j=0,1,…,H-1),子測試集Cj+1再結(jié)合推理得到的偽標(biāo)簽數(shù)據(jù)集Pj+1,偽標(biāo)簽數(shù)據(jù)集Pj+1結(jié)合子訓(xùn)練集Ni+1(i=0,1,…,S-1)對初始模型進行微調(diào)得到微調(diào)模型,直到遍歷完子訓(xùn)練集和子測試集,即直到子訓(xùn)練集和子測試集為NS-1和CH-1后循環(huán)迭代結(jié)束,得到最終的訓(xùn)練模型。
將改進的YOLOX-m 網(wǎng)絡(luò)模型與多階段訓(xùn)練策略相結(jié)合構(gòu)成了完整的W-YOLOX 網(wǎng)絡(luò)模型。多階段訓(xùn)練策略可以看作是一種數(shù)據(jù)增強方法,將遷移學(xué)習(xí)與偽標(biāo)簽相結(jié)合,有效降低了域遷移帶來的差異性。
選取公開的安全帽佩戴檢測數(shù)據(jù)集,包含helmet 和head 2 個類別,共13 638 張 圖像,安全帽佩戴檢測數(shù)據(jù)集類別數(shù)據(jù)分布如圖8 所示。篩選前在數(shù)據(jù)集中的分布如圖8(a)所示,helmet 和head 目標(biāo)個數(shù)之比約為1∶7,數(shù)據(jù)分布不平衡,在訓(xùn)練中模型收斂困難。為了解決類別不均衡問題,篩選原始數(shù)據(jù)集,每張圖片至少含有1 個頭盔,篩選后的數(shù)據(jù)集中helmet 和head 目標(biāo)個數(shù)之比約為1∶5,篩選后在數(shù)據(jù)集中的分布如圖8(b)所示,共10 189 張圖像,在訓(xùn)練中模型收斂順利,解決了類別不均衡導(dǎo)致的模型收斂困難、精度低下的問題,并將此數(shù)據(jù)集作為基準數(shù)據(jù)集用于實驗對比。
圖8 安全帽數(shù)據(jù)集類別數(shù)據(jù)分布Fig.8 Category data distribution of safety helmet dataset
實驗硬件配置如表1 所示。
表1 硬件配置Table 1 hardware configuration
選用YOLOX-m 為基準模型,將數(shù)據(jù)集劃分成訓(xùn)練集、驗證集和測試集,比例為8.0∶0.5∶1.5。訓(xùn)練次 數(shù)(epoch)設(shè)置為300,訓(xùn)練批次為64,前3 個epoch 進行模型預(yù)熱,初始學(xué)習(xí)率為0.01,訓(xùn)練和測試圖像的輸入尺寸設(shè)置為416×416 像素,優(yōu)化器采用AdamW[25],采用概率為1 的Mosaic 數(shù)據(jù)增強和概率為0.2 的Mixup 數(shù)據(jù)增強[26],增加的實驗超參數(shù)設(shè)置如表2 所示。
表2 超參數(shù)設(shè)置Table 2 Hyperparameter setting
采用推理延遲、模型大小、平均精度均值(mAP)、召回率和精準率作為實驗評價指標(biāo)。模型推理延遲表示一張圖片輸入模型再輸出測試結(jié)果的時間,反映了模型的運行速度。模型大小表示模型參數(shù)量的數(shù)值,反映了模型容量。召回率表示樣本中有多少正例被預(yù)測正確,反映了模型的漏檢比例。精準率表示預(yù)測為正的樣本中有多少是正確的,反映了模型的錯檢比例。mAP 作為精準率和召回率的積分結(jié)果,表示模型預(yù)測目標(biāo)的準確度,一般交并比(IoU)設(shè)置為0.5,即mAP0.5,mAP0.5-0.95表示閾值為0.5~0.95的平均結(jié)果,mAP 計算如式(9)所示:
其 中:C表示類別數(shù),分 為head 和helmet 2 個類別;表示第i個類別的精準率。
為了證明改進方法的有效性,進行消融實驗來驗證各個功能模塊對YOLOX-m 模型性能的影響,如表3 所示。
表3 消融實驗對比Table 3 Comparison of ablation experiment
由表3 可以看出,以YOLOX-m 為基準模型對模型進行改進,+代表在之前的模型基礎(chǔ)上進行改進,原始的YOLOX-m 的召回率、精準率、mAP0.5、推理延遲和模型大小分別為85.52%、89.87%、92.15%、21 ms和25.3 MB,之后的每一次改進都至少會提升模型的某一性能指標(biāo),基準模型通過3 次改進后,召回率、精準率和mAP0.5分別提升了1.92、2.33 和0.96 個百分點,推理延遲和模型大小分別減小了5 ms 和4.7 MB,在基準模型精度較高的前提下進一步提升了模型性能。
改進模型的訓(xùn)練過程如圖9 所示,迭代次數(shù)設(shè)置為300,以原始YOLOX-m 為基準模型進行訓(xùn)練,其召回率隨著迭代次數(shù)的增加波動較大,在90 次迭代時達到最高點,之后召回率隨迭代次數(shù)增加逐漸降低,150 次迭代為拐點,召回率逐漸增加,且精準率也在180 次迭代時達到飽和;第1 次改進(+簡化主干特征網(wǎng)絡(luò))通過略微的精度損失換取了推理延遲和模型大小的減少,其mAP0.5、召回率和精準率與其他曲線相比均位于最低值;第2 次改進(+Res-RepVGG模塊)提高了模型精度并降低了推理延遲,可見3 個精度指標(biāo)明顯提高,其精準率和召回率在210 次迭代達到最大值,隨著訓(xùn)練迭代次數(shù)的增加,指標(biāo)值穩(wěn)定性均高于前兩個模型;第3 次改進(W-YOLOX),通過替換SPPF 模塊和對主干特征網(wǎng)絡(luò)最后兩層進行調(diào)整,使得模型的mAP0.5、推理延遲和模型大小都有所改善,其召回率和精準率也較第2 次改進有所增加,減少了模型的錯檢與漏檢。
圖9 改進模型的訓(xùn)練過程Fig.9 Training process of the improved model
在簡化的網(wǎng)絡(luò)結(jié)構(gòu)中,以W-YOLOX 為基礎(chǔ)模型的參數(shù)調(diào)整實驗如表4 所示,改進前每層CSPBlock的堆疊次數(shù)為{3,9,9,3}。
表4 簡化主干特征網(wǎng)絡(luò)的參數(shù)設(shè)計實驗Table 4 Parameter design experiment of simplified feature backbone network
由表4 可以看出,通過比例設(shè)置減少每層的堆疊次數(shù)構(gòu)成其他5 種參數(shù)設(shè)計,可以發(fā)現(xiàn)每一層CSPBlock 堆疊次數(shù)的減少僅有少量的精度損失,這是因為在主干特征網(wǎng)絡(luò)中只需少量卷積塊的堆疊學(xué)習(xí)到的有效特征就能達到飽和條件[11]。同樣地,多余卷積塊的堆疊僅提升了少量精度,但會導(dǎo)致模型推理延遲和參數(shù)量的顯著增加,降低網(wǎng)絡(luò)設(shè)計性能。通過消融實驗對比,當(dāng)主干特征網(wǎng)絡(luò)每層CSPBlock 的堆疊次數(shù)為{1,3,3,1}時,模型參數(shù)量在大幅度減少的情況下精度和速度均為最優(yōu)值。需要注意的是,中間兩層的通道信息較為豐富,當(dāng)卷積塊堆疊次數(shù)為1 次時,精度損失會加劇,模型性能急劇下降。
為了驗證W-YOLOX 網(wǎng)絡(luò)結(jié)構(gòu)在安全帽檢測上的性能優(yōu)勢,將其與近幾年的SOTA 模型進行對比實驗,訓(xùn)練中超參數(shù)設(shè)置采用本文設(shè)置,實驗結(jié)果如表5 所示。
表5 W-YOLOX 與現(xiàn)有模型的檢測性能對比Table 5 Comparison of detection performance between W-YOLOX and existing models
由表5 可以看出:在綜合性能指標(biāo)上,W-YOLOX相較于其他模型達到了最優(yōu);在模型大小上,YOLOv5m 與其近似,但由于結(jié)構(gòu)冗余,召回率、準確率和mAP0.5均下降了約3 個百分點;在精度指標(biāo)上,與YOLOX-l 和PP-YOLO_MobileNetV3 相 近,但W-YOLOX 的模型大小和推理延遲都有較大幅度的下降,受益于網(wǎng)絡(luò)結(jié)構(gòu)的改進。
W-YOLOX 和YOLOv5m、PP-YOLO_MobileNetV3、YOLOX-l 在測試集上的實驗結(jié)果對比如圖10 所示,從左到右分別展示了白天小目標(biāo)、夜晚小目標(biāo)、遮擋和分類4 個場景。由圖10 可以看出,W-YOLOX 在4 個場景中檢測精度均達到最高,在夜晚小目標(biāo)檢測中相比于其他3 種模型不存在漏檢的情況,在第4 個場景中能夠識別出遠距離不戴安全帽的人,說明了W-YOLOX 能夠更好地擬合不同場景下的數(shù)據(jù)集,具有更低的訓(xùn)練損失,同時分類能力也有所提高??梢?,W-YOLOX 適用于遮擋、分類和遠距離小目標(biāo)場景下的安全帽佩戴檢測。
圖10 W-YOLOX 與3 種模型的檢測效果對比Fig.10 Comparison of detection effects between W-YOLOX and three models
將安全帽佩戴檢測數(shù)據(jù)集中的10 189 張圖像以8.0∶0.5∶1.5 的比例劃分為訓(xùn)練集、驗證集和測試集,得到8 151 張訓(xùn)練集和1 528 張測試集,測試模型為W-YOLOX,訓(xùn)練方法采用多階段網(wǎng)絡(luò)訓(xùn)練策略且訓(xùn)練參數(shù)設(shè)置相同取值均為2。設(shè)置子集數(shù)S為1、2、3、4 和5,分為均勻拆分和非均勻拆分2 種情況,mAP0.5和mAP0.5-0.95均為最終訓(xùn)練模型的平均精度均值,實驗結(jié)果如表6 所示。
表6 多階段網(wǎng)絡(luò)訓(xùn)練實驗結(jié)果(均勻拆分)Table 6 Results of multi-stage network training experimen(tuniform split)
由表6 可以看出,當(dāng)拆分子集個數(shù)S=2 時mAP0.5達到最高值,比不拆分的mAP0.5提高了0.37 個百分點,但是當(dāng)拆分次數(shù)變多時,如當(dāng)S取3、4、5 時,訓(xùn)練精度大幅度下降,原因是拆分數(shù)據(jù)集過少所致,導(dǎo)致每一次訓(xùn)練模型時都不能學(xué)習(xí)到足夠多的特征,使用偽標(biāo)簽微調(diào)也會降低訓(xùn)練精度。
非均勻拆分實驗驗證了第1 個子訓(xùn)練集拆分多而其余子集以均勻的方式拆分的情況,實驗結(jié)果如表7 所示。
表7 多階段網(wǎng)絡(luò)訓(xùn)練實驗結(jié)果(非均勻拆分)Table 7 Results of multi-stage network training experimen(tnon-uniform split)
在 表7 中,MN0和MC0表示第1 個子訓(xùn) 練集或者子測試集的數(shù)量,其值為訓(xùn)練集或者測試集的3/2;MNi和MCj表示第i個子訓(xùn)練集或者子測試集的數(shù)量,其中i不等于0,其值的計算如式(10)所示。當(dāng)拆分數(shù)量為3 時,mAP0.5達到最大值,比不拆分提高了0.72 個百分點,也高于均勻拆分的最高精度,說明第1 次訓(xùn)練的模型對后面的訓(xùn)練影響較大,當(dāng)初始模型學(xué)習(xí)了足夠多的特征后有利于后面的數(shù)據(jù)訓(xùn)練,且當(dāng)S取4、5 時,mAP0.5-0.95均高于不拆分的相同指標(biāo),證明了多階段網(wǎng)絡(luò)訓(xùn)練策略可以提高模型魯棒性。
表8 α 對W-YOLOX 模型性能的影響Table 8 Effect of α on W-YOLOX model performance
為了驗證多階段網(wǎng)絡(luò)訓(xùn)練后模型的測試魯棒性,在訓(xùn)練迭代過程的驗證集上W-YOLOX 和多階段訓(xùn)練策略+W-YOLOX 的損失變化曲線如圖11 所示。在訓(xùn)練初始階段,后者損失值低了近1 個百分點,在40 次迭代后,多階段訓(xùn)練策略的優(yōu)勢逐漸顯現(xiàn),使驗證集損失值降低并保持在最低水平上,提高了在不同域的新場景數(shù)據(jù)集上的檢測精度。
圖11 非均勻拆分的多階段網(wǎng)絡(luò)訓(xùn)練實驗結(jié)果(S=3)Fig.11 Experiment results of multi-stage network training with non-uniform spli(tS=3)
為了進一步提升現(xiàn)有安全帽檢測算法的檢測精度與速度,本文建立一種基于多階段網(wǎng)絡(luò)訓(xùn)練策略的改進YOLOX-m 模型,通過簡化并重新設(shè)計主干特征網(wǎng)絡(luò)結(jié)構(gòu),在降低模型推理延遲和減小模型大小的同時提高了檢測精度,并結(jié)合多階段網(wǎng)絡(luò)訓(xùn)練策略提升改進模型在不同場景下的檢測能力來最大化模型性能。實驗結(jié)果表明,與其他相同規(guī)模的模型相比,改進YOLOX-m 模型的各項評價指標(biāo)均有所提升。由于多階段訓(xùn)練使用的數(shù)據(jù)集場景較為單一,在后續(xù)工作中將增加暗光、雨雪等條件下的惡劣場景數(shù)據(jù)集,進行復(fù)雜場景下的安全帽佩戴檢測研究。