摘" 要: 針對工廠中行人檢測算法精度不足,存在誤檢、漏檢等問題,提出一種基于改進YOLOv8的工廠行人檢測算法。首先,在YOLOv8的C2f模塊中引入卷積塊注意力機制模塊(CBAM),以幫助主干網(wǎng)絡聚焦于關鍵特征并抑制非關鍵特征,從而提升模型對遮擋物和小目標的檢測準確度;其次,在Neck網(wǎng)絡中將卷積神經(jīng)網(wǎng)絡Conv模塊替換成CoordConv模塊,以充分利用該模塊的定位能力,從而解決目標檢測中的定位準確性問題,提升模型對空間位置的感知能力;最后,采用Inner?IoU損失函數(shù)替代原始的CIoU損失函數(shù),來提高目標檢測邊界框的回歸精度。在自制的工廠行人圖像數(shù)據(jù)集(3 600張圖像)上進行了訓練和測試,實驗結(jié)果表明:相較于基礎YOLOv8算法,改進YOLOv8算法在平均精度均值(mAP)和每秒幀率(FPS)方面分別提高了2.26%和35.6 f/s,驗證了改進算法在檢測性能上的提升。
關鍵詞: 行人檢測; YOLOv8算法; 深度學習; 卷積塊注意力機制模塊(CBAM); CoordConv; Inner?IoU損失函數(shù)
中圖分類號: TN911.73?34" " " " " " " " " " " " "文獻標識碼: A" " " " " " " " " " " "文章編號: 1004?373X(2024)24?0160?07
Factory pedestrian detection algorithm based on improved YOLOv8
CHEN Sihan, LIU Yong, HE Xiang
(1. School of Automation and Information Engineering, Sichuan University of Science and Engineering, Yibin 644000, China;
2. Artificial Intelligence Key Laboratory of Sichuan Province, Yibin 644000, China)
Abstract: A factory pedestrian detection algorithm based on improved YOLOv8 is proposed to address the issues of insufficient accuracy, 1 positives, and missed detections in pedestrian detection algorithms in factories. The convolutional block attention mechanism (CBAM) module was introduced into the C2f module of YOLOv8 to help the backbone network focus on key features and suppress non key features, thereby improving the model′s detection accuracy for occlusions and small targets. The convolutional neural network Conv module is replaced by the CoordConv module in the Neck network to make full use of the positioning ability of the module, so as to solving the positioning accuracy in object detection and improve the model's perception of spatial position. The Inner IoU loss function is used to replace the original CIoU loss function to improve the regression accuracy of object detection bounding boxes. A self?made pedestrian image dataset in a factory (3 600 images) are trained and tested. The experimental results show that in comparison with the basic YOLOv8 algorithm, the improved YOLOv8 algorithm can improve the average accuracy of the average mAP (mean average precision) and the frame rate FPS (frame rate per second) by 2.26% and 35.6 f/s, respectively, which can verify the improvement of the detection performance of the improved algorithm.
Keywords: pedestrian detection; YOLOv8 algorithm; deep learning; convolutional block attention mechanism module; CoordConv; Inner?IoU loss function
0" 引" 言
近年來,目標檢測作為深度學習中的一個重要應用領域,在各行各業(yè)中都被廣泛應用。行人檢測作為目標檢測領域的一項基本任務,在安防監(jiān)控、智能交通、人機交互等方面有著廣泛的應用[1?3]。隨著工業(yè)自動化和智能化程度的不斷提高,工廠中自動化設備逐漸增多,然而設備按照既定指令進行工作時,對工廠行人存在安全隱患。對工廠行人的及時檢測能保證行人生命安全,進而保障設備正常運作。
目標檢測技術(shù)主要分為傳統(tǒng)方法和基于深度學習的方法[4]。傳統(tǒng)行人檢測算法通過提取圖像不同區(qū)域的特征并使用分類算法進行分類來實現(xiàn)目標檢測。但傳統(tǒng)方法依賴于人工進行特征提取,當背景變化時難以使用統(tǒng)一的檢測模型,導致檢測效果較差。近年來,基于深度學習的目標檢測算法[5]變得流行,主要分為兩類:兩階段目標檢測算法和單階段目標檢測算法。在行人檢測方面,針對被遮擋問題,文獻[6]基于Faster RCNN提出一種IterDet迭代方案,同時利用遞歸金字塔結(jié)構(gòu)來提升模型特征提取能力。文獻[7]在Cascade RCNN的基礎上對網(wǎng)絡結(jié)構(gòu)進行了改進,使得算法能夠更好地利用深層和淺層特征信息。對于密集場景,文獻[8]提出一種改進YOLOv5的紅外行人檢測算法,利用RF?gnConv模塊來增強模型對各種復雜場景的行人檢測能力。文獻[9]則提出一種改進的YOLOv7擁擠行人檢測算法,引入了BiFormer視覺變換器和改進的高效層聚合網(wǎng)絡模塊。兩階段檢測算法通常具有更高的檢測精度,但速度較慢;而單階段檢測算法速度較快,適用于對實時性要求較高的行人檢測場景。
2023年,Ultralytics團隊提出YOLOv8算法,該算法在實時性和檢測精度上性能良好,適用于對工廠行人檢測進行針對性改進。因此,本文以YOLOv8算法為基礎,通過優(yōu)化措施提升其檢測精度。具體優(yōu)化包括以下三個方面:首先,在YOLOv8的C2f模塊中引入卷積塊注意力機制模塊(CBAM),以幫助主干網(wǎng)絡聚焦于關鍵特征并抑制非關鍵特征,從而提升模型對遮擋物和小目標的檢測準確度;其次,在Neck網(wǎng)絡中將卷積神經(jīng)網(wǎng)絡Conv替換為CoordConv模塊,充分利用其定位能力提高目標檢測的定位準確性,提升模型對空間位置的感知能力;最后,采用Inner?IoU損失函數(shù)[10]替代原始的CIoU損失函數(shù),以提高目標檢測邊界框的回歸精度。
1" YOLOv8算法結(jié)構(gòu)
YOLO算法是一種單階段目標檢測算法,旨在實現(xiàn)實時對象檢測。在YOLO系列中,YOLOv1相較于兩階段目標檢測算法具有更快的檢測速度。YOLOv2采用Draknet19網(wǎng)絡架構(gòu),從預測準確性、速度和對象識別能力三個方面進行了改進。YOLOv3引入了特征金字塔(FPN)結(jié)構(gòu)和空間池化金字塔(SPP)模塊,提高了語義信息的獲取效率。YOLOv4[11]采用Mosaic數(shù)據(jù)增強方法,提升了模型對復雜場景和遮擋目標的識別能力。YOLOv5采用輕量型的模型結(jié)構(gòu),易于部署。YOLOv6[12]選用EfficientRep作為骨干網(wǎng)絡,并構(gòu)建了Rep?PAN結(jié)構(gòu)以精確定位。YOLOv7[13]引入擴展高效層聚合網(wǎng)絡(E?ELAN)和重新參數(shù)化卷積,增強了網(wǎng)絡的學習能力?,F(xiàn)今,YOLO算法已經(jīng)發(fā)展到Y(jié)OLOv8版本。相較于之前的版本,YOLOv8在檢測精度、計算量和參數(shù)量等方面均有提升。
YOLOv8的網(wǎng)絡結(jié)構(gòu)如圖1所示。
YOLOv8由Backbone骨干網(wǎng)絡、Neck頸部網(wǎng)絡和Head輸出端組成。Backbone骨干網(wǎng)絡由Conv、C2f和SPPF三個模塊組成。C2f模塊可以增強卷積神經(jīng)網(wǎng)絡的特征融合能力,提高推理速度。在尾部采用SPPF模塊增加感受野以得到更多特征信息。Neck頸部網(wǎng)絡將C2f模塊與Backbone三個階段輸出的不同尺寸的特征圖進行融合,使得局部特征與深層特征融合。Head部分采用解耦頭結(jié)構(gòu),將分類和定位預測分開,以化解分類和定位關注信息側(cè)重點不同存在的沖突。在候選框上,YOLOv8采用Ancher?Free替換了以前的Ancher?Base,采用Ancher?Free框架可以提高長寬不規(guī)則目標的檢測精度。YOLOv8的分類損失函數(shù)為VFL Loss,回歸損失函數(shù)為DFT Loss和CIoU Loss。在樣本匹配方面,YOLOv8由以前的IoU匹配或邊長比例分配轉(zhuǎn)換為Task?Aligned Assigner匹配方式。
2" YOLOv8算法改進
2.1" CBAM
由于工廠中環(huán)境復雜,為了提高模型對行人的檢測能力,在YOLOv8的C2f模塊中引入CBAM。卷積塊注意力機制模塊(CBAM)是一種用于前饋卷積神經(jīng)網(wǎng)絡的注意力模塊,它將跨通道信息和空間信息結(jié)合在一起來提取信息特征,有助于模型關注重要特征并抑制不重要的特征,提高模型的檢測能力。CBAM可以添加到模型的多個位置,且不會帶來過多的計算量和參數(shù)量。CBAM網(wǎng)絡結(jié)構(gòu)如圖2所示。
由于CBAM能讓模型自適應地學習通道重要程度和空間位置重要程度,幫助模型關注重要特征并抑制不重要的特征,所以,本文將CBAM引入C2f模塊的Bottleneck中。Bottleneck本質(zhì)由多個卷積核組成,將CBAM添加到Bottleneck模塊內(nèi)部的卷積操作之后,利用Bottleneck模塊中的特征圖對不同尺度的特征進行注意力加權(quán),從而提高網(wǎng)絡對多尺度信息的感知能力。
在卷積操作之后添加CBAM可以使得通道注意力機制考慮到更豐富的特征信息,進一步優(yōu)化特征圖的表征能力。
2.2" CoordConv坐標卷積神經(jīng)網(wǎng)絡
YOLOv8模型中的卷積神經(jīng)網(wǎng)絡Conv使用卷積核進行運算時,僅能感知到局部信息,無法感知到位置信息,而CoordConv卷積神經(jīng)網(wǎng)絡通過在輸入特征圖中新增對應的通道來感知位置信息,提高模型的目標檢測能力。
由于工廠環(huán)境的復雜性,常常會出現(xiàn)物品或器件遮擋行人,以及行人之間相互重疊等問題,這些情況會降低檢測效果。因此,在檢測過程中,對目標位置信息的感知變得尤為重要。本文將特征融合部分的Conv替換成CoordConv,以提高空間感知能力,與圖3a)卷積神經(jīng)網(wǎng)絡Conv相比,圖3b)CoordConv增加了額外的兩個通道,分別是i坐標通道和j坐標通道,將這兩個通道與輸入特征圖沿通道維度進行拼接,再進行卷積操作。在這個過程中,兩個坐標經(jīng)歷了線性變換,并在[-1,1]區(qū)間內(nèi)進行了歸一化處理。
2.3" Inner?IoU損失函數(shù)
IoU是預測框與真實框的交并比,該指標用于評估目標物體檢測的準確性,IoU數(shù)值越大,代表預測框與真實框重合程度越高,模型預測越準確。YOLOv8采用CIoU[14]作為邊界框回歸損失函數(shù),CIoU的損失函數(shù)計算公式如下:
[LCIoU=1-IoU+ρ2(b,bgt)c2+αv] (1)
式中:[b]和[bgt]分別為預測框和真實框的中心點;[ρ2]表示兩個中心點之間的歐氏距離;[c]為覆蓋預測框和真實框的最小包圍框的對角線長度;[α]是正權(quán)衡參數(shù),用來平衡長寬比的影響;[v]用來衡量預測框和真實框長寬比的一致性,若兩框長寬比一致,則[v=0]。
CIoU引入了中心點距離和長寬比的相似性,可以有效加速模型收斂并提高檢測性能,但基于IoU的邊框回歸仍在通過加入新的損失項來加速收斂,并未考慮IoU損失本身的合理性。因此本文采用Inner?IoU來代替CIoU。Inner?IoU是基于輔助邊框的IoU損失函數(shù),引入尺度因子ratio來控制輔助邊界框的尺寸,進而計算損失,加速模型收斂。Inner?IoU的定義如下:
[bgtl=xgtc-wgt·ratio2," bgtr=xgtc+wgt·ratio2] " " (2)
[bgtt=ygtc-hgt·ratio2," bgtb=ygtc+hgt·ratio2] (3)
[bl=xc-w·ratio2," br=xc+w·ratio2] (4)
[bt=yc-h·ratio2," bb=yc+h·ratio2] (5)
[inter=(min(bgtr,br)-max(bgtl,bl))·" " " " " " "(min(bgtb,bb)-max(bgtt,bt))] (6)
[union=(wgt·hgt)·ratio2+(w·h)·ratio2-inter] (7)
[Inner?IoU=interunion] (8)
式中:[xgtc]和[ygtc]為真實框的內(nèi)部中心點;[xc]和[yc]為預測框的內(nèi)部中心點;[bgtl]、[bgtr]、[bgtt]和[bgtb]為真實框的左、右、上、下邊界,由真實框中心點、寬高和尺度因子ratio計算而得;[bl]、[br]、[bt]和[bb]為預測框的左、右、上、下邊界,由預測框中心點、寬高和尺度因子ratio計算而得;[inter]表示真實框與預測框的交集部分;[union]表示真實框與預測框的并集部分;Inner?IoU則由[inter]與[union]比值計算而得。
3" 實驗結(jié)果
3.1" 數(shù)據(jù)集
通過對工廠的場地環(huán)境進行實地考察調(diào)研,借助智能行車上的監(jiān)控攝像頭收集場地內(nèi)圖像數(shù)據(jù),共采集有效工廠圖像720張。由于數(shù)據(jù)集數(shù)量較少,為增強模型的魯棒性和避免訓練模型出現(xiàn)過擬合現(xiàn)象,對原始數(shù)據(jù)集進行水平翻轉(zhuǎn)、旋轉(zhuǎn)、亮度變換、增加噪聲等四種數(shù)據(jù)增強,將數(shù)據(jù)集擴充至3 600張,并通過標注工具LabelImg對圖像中的行人進行標注,最后將數(shù)據(jù)集按8∶1∶1的比例進行隨機劃分,得到訓練集、驗證集和測試集,分別為2 880、360、360張圖像。
3.2" 實驗環(huán)境
本次實驗基于Windows 11操作系統(tǒng),使用開源深度學習框架PyTorch作為網(wǎng)絡架構(gòu),具體的實驗平臺參數(shù)見表1,訓練模型參數(shù)見表2。
3.3" 評價指標
本文采用的評價指標有精確率(Precision)、召回率(Recall)、平均精度均值(mAP)、FPS。FPS指每秒幀數(shù),更高的FPS意味著模型能更快地對輸入圖像進行處理。精確率和召回率是評價分類任務的常見指標,mAP綜合考慮了精確率和召回率,用來衡量模型的性能。精確率是指在預測為正類別的樣本中,真正的正類別所占的比例,定義如下:
[Precision=TPTP+FP] (9)
召回率是指模型正確預測的樣本中,正類別的比例,定義如下:
[Recall=TPTP+FN] (10)
式中:TP指模型正確預測為正類別的樣本數(shù)量;FP指模型錯誤預測為正類別的數(shù)量;FN指模型錯誤預測為負類別的概率。
mAP是n個類別的平均精度均值,由各個類別的精確率?召回率曲線面積構(gòu)成。mAP根據(jù)閾值不同又可分為mAP50和mAP50~95,mAP50是在IoU閾值為0.5時的平均精度均值,mAP50~95是在不同IoU閾值(從0.5~0.95,步長0.05)上的平均精度均值,mAP定義如下:
[mAP=1ni=1n01Precision(Recall)d(Recall)] (11)
3.4" 結(jié)果分析
3.4.1" 改進前后的算法對比分析
圖4所示為原始YOLOv8算法與改進后YOLOv8算法的定位損失函數(shù)對比。改進算法在30輪次時已經(jīng)趨于收斂,并且損失函數(shù)的收斂值明顯減小,這表明改進后的網(wǎng)絡模型在定位上效果更好且收斂速度更快。
圖5為改進后YOLOv8算法的訓練結(jié)果,左側(cè)三列曲線圖為訓練集和驗證集的損失函數(shù),分別是定位損失(box_loss)、分類損失(cls_loss)和置信度損失(obj_loss),右側(cè)兩列曲線圖分別是精確率(Precision)、召回率(Recall)和平均精度均值(mAP50、mAP50~95)。圖中顯示,模型的Precision和Recall在經(jīng)過100輪訓練后趨于穩(wěn)定,而mAP的數(shù)值最終穩(wěn)定在96%,表明改進算法具有較好的檢測性能。
表3展示了消融實驗結(jié)果,旨在逐一比較不同改進算法,以觀察其性能特征,并驗證改進算法的檢測效果。表中包含4組算法模型,第1組為原始YOLOv8模型,第2組~第4組為添加不同模塊的網(wǎng)絡模型?;AYOLOv8算法的mAP為94.10%,F(xiàn)PS為113.6 f/s。第2組引入CBAM注意力機制,提升主干網(wǎng)絡的特征提取能力,使得mAP增加了1.4%,但由于添加了CBAM模型,模型計算量增加,F(xiàn)PS下降了5.4 f/s。第3組在CBAM的基礎上加入了CoordConv,引入坐標卷積增強了模型對空間位置的感知能力,相較原模型,mAP提高了2%,F(xiàn)PS增加了10.1 f/s。第4組在第3組的基礎上將CIoU損失函數(shù)替換為Inner?IoU,其引入尺度因子ratio來控制輔助邊界框的尺寸,加速模型的收斂速度,mAP相較原模型提高了2.26%,F(xiàn)PS提高了35.6 f/s。
消融實驗結(jié)果表明,相較于基礎YOLOv8算法,改進后的算法在Precision、Recall、mAP和FPS方面分別提高了1.68%、3.72%、2.26%和35.6 f/s,驗證了改進算法檢測性能的提升。
3.4.2" 不同檢測算法的對比分析
為驗證改進算法的有效性,將其與現(xiàn)有目標檢測算法Faster?RCNN、YOLOv4、YOLOv5、YOLOv7進行對比實驗。實驗采用本文構(gòu)建的數(shù)據(jù)集,并以mAP和FPS為評價指標,實驗對比結(jié)果如表4所示。
從表4可以看出:YOLOv5算法作為近年來泛化能力較強的目標檢測算法,mAP和FPS較為均衡;而YOLOv7由于引入了更深的網(wǎng)絡結(jié)構(gòu),在檢測速度上不如YOLOv5;與這些目標檢測算法相比,改進后的YOLOv8算法在速度和精度方面均有顯著提升。
3.4.3" 檢測效果對比
本文采用部分測試集圖像,在YOLOv8、YOLOv5、YOLOv7和改進YOLOv8算法四個模型上進行測試,檢測結(jié)果如圖6所示。測試圖像涵蓋了工廠不同場景下的行人活動情況。在場景1中,行人數(shù)量較少,四種模型均成功檢測出行人。在場景2中,YOLOv8算法出現(xiàn)誤檢現(xiàn)象,對于被遮擋行人情況誤將其識別為兩個目標。在場景3中,行人目標較為密集且存在被遮擋行人及小目標行人,YOLOv5算法對于左側(cè)密集行人存在誤檢。場景4為工廠器件復雜場景,YOLOv5算法誤將背景設備識別為行人,YOLOv7雖成功檢測出行人,但其行人置信度較低。本文改進YOLOv8算法在檢測中表現(xiàn)較為理想,成功識別了所有行人目標,并且未出現(xiàn)誤檢和漏檢情況。
4" 結(jié)" 論
針對工廠中的行人檢測問題,本文對比了近年來目標檢測算法在精度、特征提取和檢測速度方面的表現(xiàn),鑒于現(xiàn)有算法存在的問題,以YOLOv8算法為基礎,提出了一種改進YOLOv8的工廠行人檢測算法。具體改進包括:首先,在YOLOv8的C2f模塊中引入卷積塊注意力機制模塊,以提高模型對遮擋物和小目標的檢測準確度;其次,在Neck網(wǎng)絡中將卷積神經(jīng)網(wǎng)絡Conv模塊替換為CoordConv模塊,以提升模型對空間位置的感知能力;最后,采用Inner?IoU損失函數(shù)替代原始的CIoU損失函數(shù),以提高目標檢測邊界框的回歸精度。實驗結(jié)果表明,改進后的算法模型平均精度均值達到了96.36%,檢測速度達到了149.2 f/s。驗證了該模型能夠快速、準確地檢測出工廠行人目標。
未來的研究重點是將模型部署在資源受限的檢測設備中,以輕量化為目標,對模型進行完善。
注:本文通訊作者為劉勇。
參考文獻
[1] 姜小強,陳騁,朱明亮.基于紅外傳感的視頻監(jiān)控行人檢測方法[J].煤炭技術(shù),2022,41(10):223?225.
[2] 王清芳,胡傳平,李靜.面向交通場景的輕量級行人檢測算法[J].鄭州大學學報(理學版),2024,56(4):48?55.
[3] 李林,王家華,周晨陽,等.目標檢測數(shù)據(jù)集研究綜述[J].數(shù)據(jù)與計算發(fā)展前沿(中英文),2024,6(2):177?193.
[4] ZOU Z, SHI Z, GUO Y, et al. Object detection in 20years: a survey [J]. Proceedings of the IEEE, 2019, 111(3): 257?276.
[5] 郭慶梅,劉寧波,王中訓,等.基于深度學習的目標檢測算法綜述[J].探測與控制學報,2023,45(6):10?20.
[6] 賀宇哲,徐光美,何寧,等.迭代Faster R?CNN的密集行人檢測[J].計算機工程與應用,2023,59(21):214?221.
[7] 劉艷萍,劉甜.改進的Cascade RCNN行人檢測算法研究[J].計算機工程與應用,2022,58(4):229?236.
[8] 高正中,于明沆,孟晗,等.基于改進YOLOv5算法的紅外圖像行人目標檢測[J].中國科技論文,2024,19(2):209?214.
[9] 徐芳芯,樊嶸,馬小陸.面向擁擠行人檢測的改進YOLOv7算法[J].計算機工程,2024,50(3):250?258.
[10] ZHANG H, XU C, ZHANG S. Inner?IoU: more effective intersection over union loss with auxiliary bounding box [EB/OL]. [2023?11?07]. https://arxiv.org/abs/2311.02877?context=cs.
[11] BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOv4: optimal speed and accuracy of object detection [EB/OL]. [2023?07?18]. https://arxiv.org/abs/2004.10934.
[12] LI C Y, LU L L, JIANG H L, et al. YOLOv6: a single?stage object detection framework for industrial applications [EB/OL]. [2023?05?12]. https://arxiv.org/abs/2209.02976.
[13] WANG C Y, BOCHKOVSKIY A, LIAO H Y M. YOLOv7: trainable bag?of?freebies sets new state?of?the?art for real?time object detectors [C]// 2023 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Vancouver, BC, Canada: IEEE, 2023: 7464?7475.
[14] ZHENG Z, WANG P, LIU W, et al. Distance?IoU loss: faster and better learning for bounding box regression [EB/OL]. [2023?09?17]. https://arxiv.org/abs/1911.08287.
作者簡介:陳思涵(2000—),女,四川廣安人,碩士研究生,研究方向為深度學習、目標檢測。
劉" 勇(1987—),男,四川南充人,博士研究生,講師,研究方向為信號與信息處理。