李武波,黃 利,劉 興,郭 峰
(一汽-大眾汽車有限公司佛山分公司,廣東佛山 528000)
隨著汽車行業(yè)發(fā)展及大眾對汽車產(chǎn)品認(rèn)識的提升,汽車的配置越來越豐富。為了避免在汽車生產(chǎn)時發(fā)生零件錯漏裝,以往總裝車間采用加強(qiáng)出廠前人員檢測來解決這一難題。從實(shí)際運(yùn)行效果來看,人工的檢測可靠性低,尤其是對于涉及多車型多配置零件,人工存在識別疲勞造成檢測錯誤,導(dǎo)致的汽車配置錯誤,進(jìn)而產(chǎn)生一系列售后問題,甚至導(dǎo)致經(jīng)濟(jì)損失。例如,一汽-大眾佛山工廠總裝車間總共有16 種汽車輪轂零件,為確定4個輪轂是否異常,終檢人員需繞車一圈檢測。不僅存在人員識別錯誤風(fēng)險,而且需要花費(fèi)大量檢查的時間。采用計(jì)算機(jī)視覺開展目標(biāo)檢測勢在必行。
本文使用的技術(shù)是計(jì)算機(jī)視覺中的目標(biāo)檢測(object detection)[1]方向,是計(jì)算機(jī)視覺識別的重要研究方向,在工業(yè)檢測/機(jī)器人/智能視頻監(jiān)控等方面的應(yīng)用特別廣泛,具有重要的現(xiàn)實(shí)意義[2]。2016-2018 年期間,國內(nèi)外的專家學(xué)者相繼提出基于深度學(xué)習(xí)的單階段目標(biāo)檢測的算法YOLO[3-4]系列和SDD[5]系列。2021 年,Ultralytics LLC公司提出了YOLOv5 算法,YOLOv5 是現(xiàn)今較先進(jìn)的目標(biāo)檢測算法,在計(jì)算速度上表現(xiàn)非常出色。YOLOv5根據(jù)網(wǎng)絡(luò)模型寬度和深度的差別,從小到大依次遞增分別共有4 種版本,它們是YOLOv5s、YOLOv5m、YOLOv5l 以及YOLOv5x[6]。其中,YOLOv5s 是其中的網(wǎng)絡(luò)深度和特征圖寬度最小的,識別運(yùn)行速率也最快。
在汽車機(jī)器視覺檢測應(yīng)用中,2020 年,張麗秀等通過采用改進(jìn)的YOLOv3 算法實(shí)現(xiàn)汽車零件配置的識別,解決傳統(tǒng)的終檢人工作業(yè)檢測的弊端[7]。為進(jìn)一步提高識別速度和檢測質(zhì)量,基于YOLO 系列中YOLOv5s 具有體積小、速度快和易開發(fā)等優(yōu)勢,本文采用YOLOv5s算法,研發(fā)零件防錯裝檢測系統(tǒng),通過對汽車生產(chǎn)線過程中輪轂、前后杠、尾標(biāo)等零件進(jìn)行配置識別,取代了傳統(tǒng)汽車零件裝配后依靠人工檢測。
YOLOv5s 網(wǎng)絡(luò)由輸入端(Input)、骨干網(wǎng)絡(luò)(Backbone)、Neck層、輸出層(Prediction)4 個部分組成。其網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1 所示。
圖1 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)模型
相對其他版本,輸入端在Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算、自適應(yīng)圖片縮放3 方面做了優(yōu)化提升,Mosaic數(shù)據(jù)增強(qiáng)通過4 張圖片的隨機(jī)排布、綻放、裁剪的方式拼接形成一張新圖片,然后將該張圖片傳入神經(jīng)網(wǎng)絡(luò)學(xué)習(xí);自適應(yīng)錨框是指針對不同的數(shù)據(jù)集,都需要設(shè)定特定長寬的錨點(diǎn)框;自適應(yīng)圖片縮放將自適應(yīng)地添加最少的黑邊到圖片中,從而減少了計(jì)算量,提升了YOLOv5 的推理速度。
YOLOv5s 的骨干網(wǎng)絡(luò)(Backbone)結(jié)構(gòu)由Focus 結(jié)構(gòu)、CSP結(jié)構(gòu)[8]組成。Focus 對圖片做切片操作,從一張高分辨率的圖片中周期性的取出像素點(diǎn)到低分辨率的圖片中,圖片的相鄰位置進(jìn)行了堆疊,提高了每個像素點(diǎn)的視野。新的圖片再經(jīng)過卷積運(yùn)算,最終得到?jīng)]有丟失信息的二倍下采樣特征圖。CSP 主要將feature map 拆成兩部分,一部分做卷積運(yùn)算,另一部分和上一部分卷積運(yùn)算結(jié)果進(jìn)行連接。通過以上步驟,可以降低模型的計(jì)算量,提升運(yùn)算速率。
Neck層是指一系統(tǒng)混合和組合圖像特征的網(wǎng)絡(luò)層,并將圖像特征傳遞到預(yù)測層。YOLOv4 的Neck 層采用FPN+PAN結(jié)構(gòu),其中FPN 層是自頂向下傳達(dá)強(qiáng)語義特征,PAN是自底向上傳達(dá)定位特征。YOLOv5 仍采用的是這種結(jié)構(gòu),與YOLOv4 不同的是,采用CSPNet 設(shè)計(jì)的CSP2結(jié)構(gòu),增強(qiáng)了網(wǎng)絡(luò)特征融合的能力,而YOLOv4 的Neck只是進(jìn)行普通卷積運(yùn)算。
YOLOv5s使用GIOU Loss[11]作為損失函數(shù),通過多輪次運(yùn)算,不斷地調(diào)整相應(yīng)參數(shù),使運(yùn)算的錨框與實(shí)際錨框的誤差值最小,最終得到最優(yōu)的模型。
本文檢測系統(tǒng)可用于攝像頭拍攝下的汽車外飾零件檢測,以汽車輪轂零件為例,系統(tǒng)整體流程圖如圖2 所示。攝像頭安裝在輪轂零件裝配后的工位,實(shí)時拍攝零件;檢測系統(tǒng)設(shè)定每2 s 讀取一次控制生產(chǎn)線的PLC 信號(獲得實(shí)時的生產(chǎn)線上的每輛車的位置信息);當(dāng)車輛到達(dá)指定拍攝位置,系統(tǒng)多攝像頭獲取并保存1 張視頻幀圖像,并調(diào)用YOLOv5s程序?qū)Ρ4鎴D片計(jì)算,自動識別出零件配置信息(PR號),并輸出標(biāo)注的檢測框圖片;識別出的PR號與實(shí)際的生產(chǎn)需求PR 號進(jìn)行比對,如果PR號相同,則實(shí)際安裝的輪轂零件正確,PR 號不同,則實(shí)際安裝輪轂零件配置錯誤,需要更換正確零件。系統(tǒng)保存識別的PR號,實(shí)際計(jì)劃PR號,檢測結(jié)果等檢測信息,便于后續(xù)查詢及問題追溯。
圖2 檢測系統(tǒng)流程圖
本文中的汽車零件檢測系統(tǒng)基于YOLOv5s算法,操作系統(tǒng)是Win10 系統(tǒng)。首先需要配置Python3.8.5 的虛擬環(huán)境。通過Anaconda3 完成,在系統(tǒng)控制臺建立一個命名為“yolov5”的虛擬環(huán)境,然后激活yolov5 虛擬環(huán)境。YOLOv5s還依賴matplotlib,numpy,opencv,Pillow,tensorflow,pytorch 等庫,具體依賴庫都保存在YOLOv5的開源文件“requirements.txt”中??刂婆_輸入“pip install-r requirements.txt”,打包安裝所需的依賴庫。
本系統(tǒng)的YOLOv5s 訓(xùn)練過程的一些關(guān)鍵參數(shù)設(shè)置為:圖片尺寸為640 ×640,初始學(xué)習(xí)速率設(shè)置為0.001,權(quán)重衰減系數(shù)為0.000 5,網(wǎng)絡(luò)優(yōu)化方法選擇為SGD,每次訓(xùn)練圖片設(shè)置為64,訓(xùn)練輪數(shù)Epoch為300 輪。
汽車輪轂作為汽車輪胎必備零件,樣式種類多。本文案例中的輪轂共有16 種,不同樣式輪轂的PR 號也不一樣。為了增加訓(xùn)練的模型的準(zhǔn)確性,每種輪轂共收集200~300 張圖片,分別在不同光線、分辨率、場景、位置條件下拍攝得到。數(shù)據(jù)集分為訓(xùn)練集和測試集,共包括5 202 張訓(xùn)練圖片和572 張測試圖片。人工對訓(xùn)練集和測試集的圖片打標(biāo)簽,使用的標(biāo)注軟件為Labelimg,生成訓(xùn)練所需的“.txt”標(biāo)注文件,標(biāo)注后的部分圖片見圖3。
圖3 輪轂零件數(shù)據(jù)樣本集
在系統(tǒng)控制臺輸入“pip install labelimg”,即可安裝Labeling標(biāo)注軟件。使用Labeling 軟件對5 202 張訓(xùn)練圖片和672 張測試圖片進(jìn)行矩形框標(biāo)注,標(biāo)注文件包含5個數(shù)據(jù),其中第1 個數(shù)據(jù)為標(biāo)簽物體的類別,后面4 個數(shù)據(jù)為標(biāo)簽物體在圖片中的坐標(biāo)信息。
本文的檢測系統(tǒng)模型訓(xùn)練是在Featurize 上,基于云GPU(顯卡)進(jìn)行訓(xùn)練,GPU 型號為NVIDIA 的RTX3060,擁有12.6 G顯存。
將標(biāo)注好的訓(xùn)練與測試集,基于YOLOv5s算法進(jìn)行模型訓(xùn)練,采用精確率(Precision)、召回率(Recall)指標(biāo)作為評價指標(biāo),其值越大,說明訓(xùn)練得到的模型準(zhǔn)準(zhǔn)確度越高。精確率指模型對所有識別出的圖片(包括正確識別和誤識別為該P(yáng)R號的圖片),正確識別的圖片所占的比例[12]。召回率指被正確識別的數(shù)量占總識別圖片數(shù)量的比例[13]。經(jīng)過訓(xùn)練得到的模型,設(shè)定IOU 閾值為0.5 時,結(jié)果為精確率為98.964%,召回率為97.863%,訓(xùn)練結(jié)果數(shù)據(jù)如圖4 所示。本系統(tǒng)的訓(xùn)練模型只有14.2 MB,正是基于YOLOv5s的權(quán)重?cái)?shù)據(jù)文件小,這樣后續(xù)在實(shí)際檢測中,單張圖片識別的時間短,滿足生產(chǎn)過程的檢測實(shí)時性要求,實(shí)際運(yùn)行中,該模型在識別時,CPU檢測一張圖片需要300 ms左右,GPU檢測一張圖片需要15~20 ms左右時間。
圖4 模型訓(xùn)練結(jié)果
本輪轂檢測系統(tǒng)的整體成本為攝像頭2 臺以及普通微型計(jì)算機(jī)1 臺,其他都是人力投入。攝像頭采用??低暼蔖OE攝像頭,單價不到500 元,輪轂的檢測需要在生產(chǎn)線左右兩側(cè)分別安裝1 個攝像頭。采用1 臺微型計(jì)算機(jī)作為整個工廠所有的零件檢測系統(tǒng)服務(wù)器,成本約5 000 元。綜上,檢測系統(tǒng)單次總投入在6 000 元左右。通過該項(xiàng)技術(shù)的運(yùn)用不僅可靠性高,還可為每個零件的檢測減少1 個人力投入。
圖5 展示的是實(shí)際輪轂識別效果圖,利用訓(xùn)練好的模型對攝像頭拍攝的圖片進(jìn)行識別。圖中的方框是通過模型訓(xùn)練后自動的描框,其中“G8-COX”指的是該輪轂的類別,即PR號,“0.84”是置信度(模型運(yùn)算判斷84%的概率是此PR號,系統(tǒng)設(shè)定0.5 即可接受)。
圖5 實(shí)際識別圖
根據(jù)實(shí)際生產(chǎn)線汽車輪轂零件檢測結(jié)果,識別正確率在99%以上。本檢測系統(tǒng)檢測結(jié)果保存在一張數(shù)據(jù)庫表中,如圖6,便于后續(xù)問題追溯。圖6 中記錄的是圖片識別的PR 號、判定結(jié)果、檢測時間等信息。檢測系統(tǒng)還有增加蜂鳴器及手機(jī)釘釘提醒功能,當(dāng)檢測到輪轂配置錯誤時,系統(tǒng)會讓生產(chǎn)線的蜂鳴器響,并將錯誤信息實(shí)時發(fā)送到相應(yīng)人的手機(jī)釘釘上。
圖6 系統(tǒng)結(jié)果保存數(shù)據(jù)表
本文開發(fā)了基于YOLOv5s 算法的汽車零件防錯裝檢測系統(tǒng),以輪轂零件為對象開展驗(yàn)證,通過圖片的收集制作了輪轂的訓(xùn)練與測試數(shù)據(jù)集,使用Labelimg軟件完成所有圖片的人工標(biāo)注,為了節(jié)省成本,使用云GPU完成了模型的訓(xùn)練。結(jié)果表明模型訓(xùn)練精確率為98.964%,召回率為97.863%,系統(tǒng)實(shí)際檢測結(jié)果可靠。
系統(tǒng)解決了汽車生產(chǎn)制造過程中,多配置零件易造成錯裝的問題。目前已經(jīng)在一汽-大眾佛山工廠完成開發(fā)應(yīng)用,該設(shè)備的投入低,能夠極大地降低人力成本投入,且檢測準(zhǔn)確度與效率高。根據(jù)實(shí)際運(yùn)行效果表明:該系統(tǒng)優(yōu)于人工檢測,可以滿足在生產(chǎn)節(jié)拍內(nèi)零件檢測要求,進(jìn)而提升車輛生產(chǎn)的質(zhì)量,避免出現(xiàn)錯裝零件的汽車流入客戶中。計(jì)劃下一步將此技術(shù)擴(kuò)展到零件供應(yīng)商的生產(chǎn)過程防錯檢測。