








摘 要:為解決人工檢測發動機缸內異物時的漏檢和誤檢等問題,設計基于改進目標檢測算法YOLOv8的發動機缸內異物檢測算法并進行試驗驗證。基于CoTNet中的注意力機制,設計Contextual Attention模塊,重構C2f中的Bottleneck結構為CoA_C2f,替換YOLOv8骨干網絡中的C2f模塊;將模型Neck部分連續上采樣后的特征圖Concat模塊替換為上下文聚合模塊CAM;在Neck和Head之間嵌入Triplet Attention模塊。試驗結果表明:設計的發動機缸內異物檢測模型可有效識別缸內異物,在原始YOLOv8基礎上引入CoA_C2f、CAM和Triplet Attention 3個模塊后的平均檢測精度提高21.65%。
關鍵詞:改進YOLOv8算法;目標檢測;機器視覺;異物檢測
中圖分類號:TP391.41文獻標志碼:A文章編號:1673-6397(2024)04-0033-08
引用格式:房運濤,李爽,韓曉琴,等. 基于YOLOv8的發動機缸內異物檢測算法開發與應用[J].內燃機與動力裝置,2024,41(4):33-40.
FANG Yuntao, LI Shuang, HAN Xiaoqin, et al. Design and application of the foreign object detection algorithm for engine cylinder based on YOLOv8[J].Internal Combustion Engine amp; Powerplant, 2024,41(4):33-40.
0 引言
在發動機裝配過程中,活塞缸內異物檢測是一項非常重要的任務。目前,發動機缸內異物檢測仍然依靠人眼進行觀測,但由于人眼容易疲勞以及個體認知有限,極易出現漏檢和誤檢等問題。近年來,基于深度學習的視覺檢測系統在工業生產中的應用越來越廣泛[1-2]。基于深度學習的目標檢測方法通過學習大量的圖像數據自動識別目標,不再依賴于傳統的手工特征提取方法,使發動機缸內異物的自動檢測成為可能[3-4]。
基于深度學習的目標檢測算法主要分為兩階段和單階2類。兩階段算法需要先提取候選區域,再對候選區域進行分類和回歸處理,例如R-CNN[5]、Fast R-CNN[6]、Faster R-CNN[7]等。單階段算法直接對輸入的圖像應用算法并輸出類別和相應的定位,例如SSD系列算法[8-10]和YOLO系列算法[11-14],其中YOLO系列算法是工業自動檢測中廣泛使用的目標檢測框架。YOLO算法將整個圖像劃分為網格單元,并在每個單元中預測多個邊界框和類別概率,從而實現目標檢測。相比其他算法,YOLO算法具有更高的檢測速度和準確性[15-16]。但是,作為一種單階段算法,YOLO算法在目標位置的精度上比兩階段算法低,尤其是在對一些小目標的檢測方面。因此,國內外學者都致力于如何提高YOLO系列算法的檢測精度。Hu等[17]在YOLOv5中的骨干網絡中引入壓縮和激勵(squeeze and excitation,SE)模塊,以突出特征圖中的重要特征,提高了網絡檢測的性能;Zhang等[18]提出了一種跨階段局部Neck模塊,并結合YOLOv5模型,在多尺度目標上獲得了較好的精度;Liu等[19]提出了一種動態檢測頭,融合3種注意力機制來提高網絡的檢測性能;Lou等[20]針對小目標檢測,在YOLOv8的基礎上提出了一種新的下采樣方法和特征融合網絡,在保留了背景信息的前提下,能夠兼顧淺層和深層信息,有效提高了模型的檢測精度;程松等[21]通過在YOLOv5中引入不同的損失函數,提高了算法的檢測精度。
綜上所述,引入注意機制、完善特征融合網絡、優化損失函數,是提高YOLO系列算法檢測精度的重要手段。但是,上述研究對于算法的優化均是針對特定的應用場景,而且
引入注意力機制、優化特征融合網絡等都可能導致網絡復雜度增加。本文中構建更有針對性的注意力機制,提出一種基于改進YOLOv8算法的發動機缸內異物檢測模型,實現發動機缸內螺栓、螺母和墊片等異物的自動檢測,解決由于依靠人工觀察導致的漏檢和誤檢等問題,并有效平衡計算代價及性能增益。
1 基于YOLOv8的異物檢測算法
本文中在YOLOv8算法的基礎上,有針對性地對其輸入端、網絡結構進行改進, 構建發動機缸內異物檢測模型,旨在增強模型對發動機缸內異物的識別能力,以及模型在不同環境下的泛化能力,實現對發動機缸內異物的準確、穩定和高效的檢測。
1.1 YOLOv8算法整體架構
YOLOv8算法由Glenn-Jocher提出,與YOLOv3和YOLOv5算法一脈相承。YOLOv8算法網絡結構示意圖如圖1所示。YOLOv8算法的總體結構包括輸入端(Input)、骨干網絡(Backbone)、特征融合網絡(Neck)和輸出端(Head) 4個部分。Backbone 主要用于特征提取,YOLOv8將YOLOv5中的跨階段局部網絡(cross stage partial network,CSPNet)模塊替換為輕量級 C2f模塊,通過密集殘差結構增強特征表達的能力,在尾部使用快速空間金字塔池化層 (spatial pyramid pooling fast, SPPF) 增加感受并捕獲場景中不同層次的特征信息;Neck 部分主要用于特征融合,采用路徑聚合網絡與 C2f 模塊,針對Backbone三個階段輸出的不同尺度的特征圖進行融合,幫助淺層信息向深層特征聚合;Head部分使用解耦頭結構,分為分類和定位預測端,緩解了分類和定位任務之間存在的沖突。
1.2 YOLOv8算法改進
為解決人工檢測發動機缸內異物時的漏檢和誤檢等問題,實現發動機缸內異物的自動檢測,本文中以YOLOv8s模型為基礎,基于CoTNet中的注意力機制,設計了Contextual Attention模塊,基于該模塊重構了C2f中的Bottleneck結構,命名為CoA_C2f,替換YOLOv8骨干網絡中的C2f模塊,改善骨干網絡的多尺度細節特征的提取能力。在模型的Neck部分,將連續上采樣后的特征圖Concat模塊替換為上下文聚合模塊CAM,促進不同層次特征圖的交互融合。充分發揮注意力機制的優勢,在Neck和Head之間嵌入三重注意力(triplet attention,TA)模塊,提高模型提取特征的能力。最后,采用 WIoU 作為邊界框損失函數。改進的YOLOv8算法網絡結構示意圖如圖 2 所示。
1.2.1 重構骨干網絡
YOLOv8借鑒CSPDarkNet網絡結構設計了特征提取骨干網絡,與YOLOv5最大的區別是用C2f模塊替換了C3模塊,其特征提取能力仍有欠缺。本文中基于CoTNet中的注意力機制,設計了Contextual Attention模塊,其結構如圖3所示,圖中h、w分別為空間的高度、寬度維度,c為通道維度。首先,通過3個不同的卷積操作提取特征層keys、query和value,將有上下文特征的keys和特征層query拼接,然后通過兩個1×1卷積塊并經Softmax操作將結果轉化為注意力權重矩陣A;其次,將權重矩陣A與特征層value相乘后得到全局動態特征層;最后,將全局動態特征層和keys特征層進行融合,并通過一個1×1卷積得到對突出點著重關注、同時不缺失對普通點關注的注意力輸出特征層output。本文中結合Contextual Attention模塊,對YOLOv8的骨干網絡進行了重建,將Contextual Attention模塊嵌入到YOLOv8骨干網絡的殘差塊中,替換原有的普通3×3卷積,形成融合注意力機制的C2f模塊——CoA_C2f模塊,可有效改善骨干網絡的特征提取能力。
1.2.2 改進特征融合方式
在處理復雜背景下異物圖像時,由于不同層級的特征圖含有信息差異,直接拼接這些特征圖導致信息冗余。此外,由于圖像經過了上采樣處理,使淺層細節特征被深層語義特征遮蓋,丟失包含豐富空間細節的低級特征,最終導致模型的特征提取能力降低,影響異物檢測精度。為了解決上述問題,參考文獻[22],引入上下文聚合模塊CAM,即在模型的Neck部分,將連續上采樣后的特征圖Concat模塊替換為CAM模塊,可以自適應地調整局部特征之間的空間疊加關系,促進不同層次特征圖的交互融合。CAM模塊的結構如圖4所示。它能有效學習不同層級特征圖之間的差異,通過使用可變形卷積學習像素間的偏移關系,并采用注意力機制智能分配融合不同特征圖的比例,從而提高特征信息的利用率。
1.2.3 引入TA模塊
傳統注意力機制在計算通道注意力時在輸入張量上進行池化操作,導致大量空間信息丟失。TA模塊是利用3個分支結構捕獲輸入數據的跨維度交互,從而計算注意力權重,在盡量減小空間信息損失的前提下,構建輸入通道或空間位置之間的相互依賴性。TA模塊結構示意圖如圖5所示。TA模塊由3個分支組成,前兩個分支負責捕獲空間維度h或w與通道維度c之間的交互特征,第3個分支——identity用于構建空間注意力,所有3個分支的輸出通過簡單平均進行聚合[23]。計算時,對每個分支中的輸入張量進行排列變換,通過池化層、卷積層和Sigmoid激活層生成注意力權重,然后經排列變換轉換為輸入張量的形狀。為了能夠使發動機缸內異物檢測模型的性能得到進一步的提高,本文中在特征融合部分之后添加注意力模塊以提高模型提取特征的能力。
2 異物檢測模型部署與測試
2.1 數據集及試驗環境
2.1.1 缸內異物檢測數據集
目前還沒有為發動機缸內異物檢測量身定制的公共數據集。為捕捉發動機缸內存在異物的圖像,將螺栓、螺栓和墊片等常見異物放置發動機活塞缸內,通過人工拍照采集在不同光線和角度下的異物照片。為了擴充數據集,采用泊松融合算法,將不同結構、尺寸的螺栓等異物無縫縫合到正常的發動機活塞圖像上,得到了一個包含5 000張圖像、專門針對發動機缸內異物檢測的數據集,如圖6所示。數據集標簽包括螺栓、螺母、墊片等。
2.1.2 試驗環境
硬件配置包括1個NVIDIA GeForce RTX 3060 圖形處理器(graphics processing unit,GPU)和一個Intel(R) Core i9-13900 中央處理器(central processing unit,CPU),其中GPU的內存為6 Gibyte;軟件配置包括Python3.9、PyTorch1.13.1和Cuda11.6深度學習框架。試驗中,將缸內異物檢測數據集按8:1:1的比例分為訓練集、驗證集和測試集,訓練迭代次數設置為300,使用SGD優化器,設置初始學習率為0.01、批處理大小為8、動量參數為0.8、置信度閾值為0.5、輸入圖像像素為640×640。
2.2 異物檢測模型部署
OpenVINO是優化神經網絡模型和加速推理計算的軟件工具套件,可以優化絕大多數框架(Tensorflow、Pytorch等)的深度學習模型,可在英特爾處理器和其他硬件平臺上以最佳性能進行計算。OpenVINO Runtime可以自動使用激進的圖形融合,內存重用,負載平衡和跨CPU、GPU、視頻處理單元(video processing unit,VPU)等進行集成并行處理,可以優化深度學習流水線。此外,OpenVINO工具包還包含了OpenCV圖片處理工具包,用于前處理和推理結果后處理等。鑒于上述優勢,本文中基于OpenVINO工具套件,將基于YOLOv8的異物檢測模型部署在邊緣設備上,其部署流程如圖7所示。
2.3 異物檢測實驗及結果分析
選取交并比(intersection over union,IOU)閾值為0.5時的平均精度mAP0.5作為異物檢測模型的衡量指標。為了驗證CoA_C2f、CAM和TA模塊對異物檢測模型整體性能的影響,對異物檢測模型進行拆分,并在相同的數據集上進測試,設計的異物檢測模型在自制發動機缸內異物檢測數據集上測試結果如圖8所示,模型檢測精度如表1所示。由圖8可知:設計的模型可以有效地檢測出發動機活塞缸內的螺栓、螺母等異物。由表1可知:只采用原始YOLOv8s模型的檢測精度為67.11%;在原始YOLOv8s的基礎上至引入一個模塊時,平均精度mAP0.5分別提高了3.78%、2.50%、3.20%,當引入2個模塊時,平均精度分別提高了12.37%、11.28%、13.74%;當引入3個模塊時,平均精度提高了21.65%,表明設計的檢測模型相對于原始YOLOv8s模型具有較好的異物檢測性能。
綜上所述,在原始YOLOv8s基礎上引入CoA_C2f、CAM和TA模塊后均能有效提高模型的檢測精度,且CoA_C2f、CAM和TA模塊能夠相互耦合,進一步提高模型的檢測精度。
3 結論
為解決依靠人眼檢測發動機缸內異物時的漏檢和誤檢等問題,設計基于改進YOLOv8的發動機缸內異物檢測算法。在原始YOLOv8的基礎上,重構骨干網絡,改進特征融合方式,引入Triplet Attention模塊;通過人工拍照建立缸內異物檢測數據集。在發動機缸內異物檢測數據集上的試驗結果表明:設計的發動機缸內異物檢測模型可有效識別缸內異物,且引入CoA_C2f、CAM和Triplet Attention 3個模塊后的缸內異物平均檢測精度提高了21.65%。
參考文獻:
[1] JIAN C, GAO J, AO Y.Automatic surface defect detection for mobile phone screen glass based on machine vision[J].Applied Soft Computing, 2017, 52: 348-358.
[2] "HE Z, LIU Q.Deep regression neural network for industrial surface defect detection[J].IEEE Access, 2020, 8: 35583-35591.
[3] "LIU Y,XIAO H,XU J,et al.A rail surface defect detection method based on pyramid feature and lightweight convolutional neural network[J].IEEE Transactions on Instrumentation and Measurement, 2022, 71:1-10.
[4] SINGH S A,DESAI K A.Automated surface defect detection framework using machine vision and convolutional neural networks[J].Journal of Intelligent Manufacturing, 2023, 34(4): 1995-2011.
[5] GIRSHICK R,DONAHUE J, DARRELL T, et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C]// Proceedings of 2014 27th IEEE Conference on Computer Vision and Pattern Recognition.Columbus,USA: IEEE 2014: 580-587.
[6] ALRUWAILI M," SIDDIQI M H, ATTA M N, et al. Deep learning and ubiquitous systems for disabled people detection using YOLO models[J].Computers in human behavior,2024,154:1-13.
[7] REN S, HE K, GIRSHICK R, et al.Faster R-CNN: towards real-time object detection with region proposal networks[J].IEEE Transactions on Pattern Analysis amp; Machine Intelligence, 2017, 39(6):1137-1149.
[8] LIU W, ANGUELOV D, ERHAN D, et al. SSD: Single shot multibox detector[C]//Proceedings of Computer Vision-ECCV 2016.Berlin,Germany:Springer, 2016:21-37.
[9] FU C Y, LIU W, RANGA A, et al. DSSD: Deconvolutional single shot detector[EB/OL].(2017-06-23)[2023-08-22].https://arxiv.org/abs/1701.06659 2017:1701.06659.
[10] LI Z, ZHOU F. FSSD: feature fusion single shot multibox detector[EB/OL].(2017-11-04)[2023-09-18].https://arxiv.org /abs/1712.00960v1.
[11] REDMON J,DIVVALA S,GIRSHICK R,et al.You only look once: unified, real-time object detection[C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.Las Vegas, USA: IEEE, 2016: 779-788.
[12] REDMON J, FARHADI A. YOLO9000: better, faster, stronger[J].IEEE, 2017:6517-6525.
[13] REDMON J, FARHADI A. YOLOv3: an incremental improvement[EB/OL].(2018-04-05)[2018-09-30].https://arxiv.org/ pdf/1804.02767.pdf.
[14] BOCHKOVSKIY A, WANG C Y, LIAO H Y M. YOLOV4: optimal speed and accuracy of object detection [EB/OL].(2020-04-23)[2023-01-26].https://zhuanlan.zhihu.com/p/520922132.
[15] LI C, LI L, JIANG H, et al.YOLOv6: a single-stage object detection framework for industrial applications[EB/OL].(2022-10-23)[2023-03-05].https://ar5iv.labs.arxiv.org/html/2209.02976.
[16] WANG C Y, BOCHKOVSKIY A, LIAO H. YOLOv7: trainable bag-of-freebies sets new state-of-the-art for real time object detectors[EB/OL].(2022-06-06)[2023-03-05].https://arxiv.org/abs/2207.02696.
[17] HU J, SHEN L, A LBANIE S. Squeeze-and-excitation networks[J].IEEE CVF Conference on Computer Vision and Pattern Recognition ,2017: 7132-7141.
[18] ZHANG T. GBH-YOLOv5: Ghost convolution with Bottleneck CSP and tiny target prediction head incorporating YOLOv5 for PV panel defect detection[J].Electronics, 2023, 12(3): 561-576.
[19] LIU D, LIANG J, GENG T, et al. Tripartite feature enhanced pyramid network for dense prediction[J].IEEE Transactions on Image Processing, 2023,32:3272826.
[20] LOU H, DUAN X, GUO J, et al. DC-YOLOv8: small size object detection algorithm based on camera sensor[J].Electronics, 2023,12(10):172-173.
[21] 程松,楊洪剛,徐學謙,等.基于 YOLOv5的改進輕量型X射線鋁合金焊縫缺陷檢測算法[J].中國激光,2022,49(21):136-144.
[22] MISRA D, NALAMADA T, ARASANIPALAI A U, et al.Rotate to attend: convolutional triplet attention module[C]// Proceedings of the IEEE/CVF winter conference on applications of computer vision.New York, USA: IEEE, 2021:3139-3148.
[23] 付錦燚,張自嘉,孫偉,等.改進YOLOv8的航拍圖像小目標檢測算法[J].計算機工程與應用,2024,60(6):100-109.
Design and application of the foreign object detection algorithm for
engine cylinder based on YOLOv8
FANG Yuntao, LI Shuang, HAN Xiaoqin, ZHAI Qiang, ZHUANG Shunxu,
QI Wei, SONG Lijuan
Weichai Power Co., Ltd., Weifang 261061, China
Abstract:To solve the problems of missed and 1 detection when detecting foreign objects in engine cylinders by manual testing, an engine cylinder foreign object detection algorithm based on the improved object detection algorithm YOLOv8 is designed and experimentally verified. Based on the attention mechanism in CoTNet, a Contextual Attention module and reconstruct the Bottleneck structure in C2f, named CoA_C2f, are designed to replace the C2f module in the YOLOv8 backbone network. In the Neck section of the model, the continuously upsampled feature map Concat module is replaced with the context aggregation module CAM. Triplet Attention module is embed between Neck and Head. The experimental results show that the designed engine cylinder foreign object detection model can effectively identify foreign objects in the cylinder, and the average detection accuracy is improved by 21.65% after introducing CoA_C2f, CAM, and Triplet Attention modules on the basis of the original YOLOv8s.
Keywords:improved YOLOv8 algorithm;target detection;machine vision;foreign object detection
(責任編輯:臧發業)