申科翔 方群



摘要:汽車零部件缺陷檢測通常采用基于 YOLOV7 的深度學習模型,針對生產環境中計算資源受限的問題,提出了改進 YOLOV7 的汽車零部件表面缺陷檢測算法,首先使用MobileNetV3模塊替換YOLOV7骨干網絡,其次將頸部網絡替換為重復加權雙向特征金字塔網絡BiFPN和多路徑高效設計BepC3模塊,最后采用一種基于高斯Wasserstein距離的回歸損失函數代替原有的損失函數。實驗結果表明,該算法相較傳統YOLOV7的AP50精度提高0.155,比YOLOx算法AP50精度提高0.139,在檢測精度和效率方面綜合表現優異。
關鍵詞:零件缺陷檢測;YOLOV7;MobileNetV3;數據增強;輕量化網絡
中圖分類號:TP391.4 文獻標志碼:A 文章編號:1001-2443(2024)02-0118-05
引言
在汽車零部件生產中,產出的零部件難免會出現各種影響質量的缺陷,因為原材料的差異、生產環境的變化或者是設備的故障等等。汽車生產過程當中,汽車零件的生產質量要求很高,因此為了提高產出零件的質量,質檢工作便成了工業生產過程中的重要環節。傳統的工業質檢多用人工觀察法,不僅受主觀經驗影響較大,同時投入的人工成本也相當高,從而大幅增加了零件生產成本和風險。所以,高效完成零件的自動化檢測,對于汽車零件的生產過程具有關鍵作用。
表面缺陷檢測技術[1]在工業零件生產中的很多環節例如材料質檢,機器診斷,損耗檢測等方面均取得了較好的表現,但對于零部件表面缺陷檢測的研究仍然不多,并且通常為了提高模型的檢測能力,忽略了對于計算資源的使用效率。由于實際生產中對于檢測效率有著較高的要求,并且考慮到計算資源容易受運營成本的限制,如何能夠在性能上對檢測精度和檢測速度做綜合的平衡,正是工件缺陷檢測[2]的研究需要解決的問題。YOLO算法是由Redmon等[3]提出的一步(one-stage)目標檢測算法,將目標檢測[2]問題轉化為簡單的回歸任務,大幅提高了檢測效率。 YOLOV7是YOLO系列算法的第7代,作者降低模型的訓練門檻,提高卷積神經網絡(Convolutional Neural Networks,CNN[5])的準確性,在顯著提高了檢測精度的情況下,同時檢測速度沒有下降。
盡管 YOLOV7 在圖像辨識與目標偵測上表現優異,但小目標偵測仍有失準的情形,常有漏檢、誤檢的情形發生,因此需要優化模型、壓縮網絡參數數量、提高小目標精確度,尤其是針對汽車零件的缺陷檢測,以確保不降低模型性能。MobileNet[6]模型是Google針對手機等嵌入式設備提出的一種輕量化深度神經網絡模塊,使用的核心思想是深度可分離卷積,但整流線性單元(Rectified Linear Unit,ReLU)激活函數因為沒有使用殘差結構從而信息損失問題嚴重,導致在通道數較少的低維特征層上提取特征更加單一。借鑒以上的方法,本文選擇使用輕量級網絡(Mobile Network Version3,MobileNetV3[7])作為YOLOV7的網絡基礎構架,同時將頸部網絡替換為重復加權雙向特征金字塔網絡(feature pyramid network,FPN[8])和多路徑高效設計模塊BepC3。MobileNetV3提出了一種具有線性瓶頸的倒置殘差結構[7]單元Irblock,該模塊解決了原模型激活函數的特征信息損耗問題,增強了模型的檢測性能,同時YOLOV7的激活函數在通道數較少的低維特征層[10]上有嚴重的信息損失[11]問題,這些都會極大程度上影響對于汽車零件缺陷檢測的準確度。
本文主要貢獻如下:
(1)將特征提取網絡優化成新的骨干網絡,改進后的骨干網絡融入了MobileNetV3模塊,加入注意力機制的網絡設計以提高模型的準確度。
(2)采用BiFPN模塊和BepC3模塊替代原YOLOV7的頸部網絡,增強了模型多尺度特征融合的能力,增強對汽車零件表面缺陷的檢測能力。
(3)優化v7的損失函數,融合WDLOSS(Wasserstein distance loss)模塊,使模型可以收斂至更高的精度。
1 系統模型
汽車零部件缺陷檢測算法中的網絡模型,對于獲取到的汽車零部件圖像,在頸部網絡中輸入MobileNetV3模塊輸出的特征圖,通過MobileNetV3模塊將得到的特征圖轉化為大小不變的多尺度特征圖,其通道數均為 256 個,為提升系統性能,本文基于 MobileNetV3構造YOLOV7網絡的基礎構架,用MobileNetV3模塊替換YOLOV7的原骨干網絡,并將頸部網絡替換為重復加權雙向特征金字塔網絡bifpn和多路徑高效設計BepC3模塊。改進后的YOLOV7網絡結構圖如圖1所示。
1.1 引入注意力機制
注意力機制(Squeeze-and-Excitation Networks,SE)的核心思想是通過全連接網絡自動學習特征權重,而不是直接根據特征通道的數值分配來判斷,如圖2所示在輸入SE結構之前,特征圖的各通道重要程度相同,在通過SE結構之后,有效特征通道的權重更大。不同顏色代表不同的權重,使得各特征聲道重要度不同,進而使得NewNetworkDepthwisefilter將注意力集中在某些權重數值較大的聲道上。在bottlenet結構的depthwise filter模塊之后插入SE結構,因為SE結構耗時較多,若將expansion layer的channel變為原來的1/4,則既能提高精度,也可控制時間消耗。
1.2 修改尾部結構
在 MobileNetv3 的 AvgPooling 之前有一個 1x1 的卷積層,目的是為了更利于結構預測從而降低特征圖的維度,為了減少計算量,V3 被修改后放到了 AvgPooling 的后面。先用 AvgPooling 把特征圖的大小從 7x7 縮小到 1x1,縮小到 1×1 后,再用 1×1 來增加維度,這樣就減少了 7×7 = 49 倍的運算量同時去掉前面紡錘型卷積的3×3以及1×1卷積,就變成了如圖3所示的結構,將其中的3×3以及1×1去掉后,精度并沒有得到損失,同時提高了速度。
1.3 增加BiFPN模塊
本文將YOLOV7中的頸部網絡修改為BiFPN,實現雙向的深淺層特征融合,將特征信息在不同網絡層之間的傳遞效率大幅度提升,增強了YOLOV7算法檢測精度,使模型具有更加優越的檢測性能。模型結構如圖4。
1.4 增加BepC3模塊
為了解決純Repvgg網絡無法達到檢測準確性和速度權衡的問題,本文采用了一種新型Bep單元結構。Bep單元由多個RepConv(重參數化卷積模塊)線性連接并帶有額外的短路徑。 CSP風格是YOLO系列框架中廣泛使用的高效設計,例如YOLO v5。CSP風格結構使用交叉階段部分網絡,實現了更豐富的梯度組合,同時減少了計算量。本文將Bep單元與CSP風格結合,設計了一種新型結構,命名為BepC3模塊,以平衡準確性和計算速度。BepC3的設計如圖5所示。
2 損失函數
旋轉檢測回歸損失設計的瓶頸一直是邊界的不連續及其與最終檢測度量的不一致。有研究者根據高斯Wasserstein距離提出了一種回歸損耗,作為解決這一問題的基本途徑。具體地說,通過梯度反向傳播,可以通過有效地學習旋轉邊界框轉換成二極高斯分布,從而使不能微量旋轉的物體單位受到近似高斯距離(Gward)的損失,通過梯度反向傳播有效地學習。即使在兩個旋轉的邊界框之間沒有重疊,GWD仍然可以提供學習信息,這通常是小目標檢測的情況,尤其適用于體積較小的汽車零部件的缺陷檢測,新框架的分析圖6所示。
3 實驗與分析
3.1 數據圖像采集
本文訓練數據集采用奇瑞汽車工廠提供的汽車零件圖集,共有20000張照片,全部在真實場景下拍攝,如圖5所示。采集系統由相機、汽車零件、光源、硬件等部分組成,相機選用CCD工業相機,光源采用環形光源的同軸光。
3.2 實驗環境
神經網絡訓練環境采用Ryzen5-3600X處理器、32GB內存、NVIDIA TeslaP40 GPU 的PC,訓練軟件為python3.8,軟件環境為Pytorch與MMDetection。在和其他常用的圖像檢測模型相比較時,為了衡量模型檢測精度,本項研究采用平均精準度(Average Precision, AP)作為衡量指標,平均精準度IOU閾值取AP50(=0.5)與AP50:95(0.5 ~ 0.95)。
3.3 消融實驗
設置了消融實驗,對本文所提到的改進模型網絡進行有效的驗證。為了方便性能對比,YOLOV7原有模型的對應模塊只替換成了相對應的試驗模塊。在收集到的數據集中,每組模型都要進行 400輪的訓練。由于數據集包含了各種不同尺寸的零件缺陷類型,因此采用平均精確度AP50 與 AP50:95作為衡量該模型性能的標準。實驗編號和結果如表1所示。
表1 消融實驗
表1中的本文網絡為使用MobileNetV3骨干網絡,比較實驗1和本項研究的網絡可知,MobileNetV3模塊通過高效提取多尺度特征圖,有效提高了模型檢測的精度;比較實驗3與實驗4可知,損失函數在融合WDLOSS之后使網絡進一步收斂,進而實現更高的檢測精度;比較實驗1與實驗2可知,MobileNetV3模塊通過高效聚合多尺度特征圖,有效提高了模型檢測的精度;比較實驗2與實驗3可知,融和了BiFPN+BepC3頸部網絡優化后的MobileNetV3網絡相較于原YOLOV7模型對特征的提取有更高的效率,對于模型的檢測精度有進一步的提升。上述結果表明本項研究所提出的優化方法對于YOLOV7模型的檢測效率都有明顯提升。
3.4 橫向對比實驗
在采集到的20000張汽車零件圖片數據集上將改進后的算法與一些常見的圖像檢測模型進行對比試驗,每一個模型進行400輪訓練,由于采集到的數據集有大量大小不一種類不同的零件缺陷,故使用AP50、AP50:95與APs50:95作為模型的性能衡量指標。實驗結果如圖8所示。
由圖8可知,在工廠汽車零件缺陷的檢測場景中,本文所改進的模型在常規檢測精度與小目標檢測精度均高于RCNN,SSD,RetinaNet等常用汽車零件的缺陷檢測算法,即使是面對傳統的yolo x和v7等算法也有著明顯的優勢。在本項研究中對優化之后的YOLOV7模型進行400輪訓練需要約86.4小時,是原YOLOV7模型所用時間的3.2倍。
4 結束語
本文針對汽車零件缺陷檢測環境計算資源受限問題,以YOLOV7作為基礎框架,采用MobileNetV3骨干網絡作為特征提取網絡,提高了模型的檢測精度,同時也提升了其提取重 要特征的效率。訓練時采用基于高斯Wasserstein距離的損失函數,加速算法收斂至更高精度。雖然在固定目標和小規模目標的檢測中,使用 MobileNetv3 作為骨干網絡的算法更具優勢,但采用這種結構的模型需要更多的計算資源。未來研究的重點仍是如何減少零件缺陷檢測算法所需的訓練資源,并提高它們的訓練效率。
參考文獻
[1] 趙朗月, 吳一全. 基于機器視覺的表面缺陷檢測方法研究進展 [J]. 儀器儀表學報, 2022, 43 (1): 198-219.
[2] 樊瑋,李晨炫,邢艷,等.航空發動機損傷圖像的二分類到多分類遞進式檢測網絡[J].計算機應用,2021,41(8):2352-2357.
[3] REDMON J,DIVVALA S,GIRSHICK R,et al. You only look once:Unified,real-time object detection[C] Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway:IEEE,2016:779-788.
[5] SZEGEDY C,TOSHEV A, ERHAN D, et al.Deep neural networks for object detection[C] Proc of International Conference on Advances in Neural Information Processing Systems,2013 :25532561
[6] HOWARDA G,ZHU M,CHEN B,et al. MobileNets:efficient convolutional neural networks for mobile vision applications[EB/ OL].[2021-06-08]. https://arxiv. org/pdf/1704. 04861. pdf.
[7] ANDREW HOWARD, MARK SANDLER, GRACe C, et al. Searching for MobileNetV3[J]. ICCV Computer Vision and Pattern Recognition,2019,5(1):1905.02244.
[8] LIN T Y, DOLLAR P, GIRSHICK R,et al.Feature pyramid networks for object detection[J].IEEE Computer Society, 2017.DOI:10.1109/CVPR.2017.106.
[10] 孫博言,王洪元,劉乾,等.基于多尺度和注意力機制的混合監督金屬表面缺陷檢測[J].智能系統學報,2023,18(4):886-893.
[11] 程錦鋒,方貴盛,高惠芳.表面缺陷檢測的機器視覺技術研究進展[J].計算機應用研究,2023,40(4):967-977.
Detection Method of Auto Parts Defects Based on Improved YOLOV7
SHEN Ke-xiang , FANG Qun
(School of Computer and Information,Anhui Normal University,Wuhu 241003,China)
Abstract:The defect detection of automotive components usually adopts a deep learning model based on YOLOV7. In response to the problem of limited computing resources in the production environment, an improved YOLOV7 surface defect detection method for automotive components is proposed. Firstly, the lightweight network model MobileNetV3 is used to replace the YOLOV7 backbone feature extraction network. Secondly, the neck network is replaced with a repeated weighted bidirectional feature pyramid network BiFPN and a multi-path efficient design BepC3 module. Finally, a regression loss function based on Gaussian Wasserstein distance is used to replace the original loss function. The experimental results show that the algorithm improves the accuracy of AP50 by 0.155 compared to the traditional YOLOV7 and 0.139 compared to the YOLOx algorithm. It performs excellently in both detection accuracy and efficiency.
Key words: part defect detection; YOLOV7; Mobile NetV3; data enhancement; lightweight network
(責任編輯:馬乃玉)