王金成 劉興
摘 要:為代替人工完成汽車零件安裝狀態(tài)的檢測(cè)識(shí)別,基于YOLOv5算法并結(jié)合PLC、RFID、Python、OpenCV、釘釘?shù)仍O(shè)計(jì)形成一套完整的視覺(jué)檢測(cè)系統(tǒng)。該系統(tǒng)種所訓(xùn)練得到的樣本模型的準(zhǔn)確率和召回率均在98%以上,從實(shí)際運(yùn)行觀察,其識(shí)別并準(zhǔn)確提醒的概率在99%以上,并且可滿足生產(chǎn)節(jié)拍需求,優(yōu)于目前人工檢測(cè)的實(shí)際效果,成本較低具備良好的經(jīng)濟(jì)推廣性。
???關(guān)鍵詞:整車生產(chǎn) ?YOLOv5 ?Python ?檢測(cè)
The Detection System of Automobile Manufacturing Parts Based on Machine Vision Technology
Wang?Jincheng ?Liu?Xing
(FAW Volkswagen Co., Ltd. Foshan branch,F(xiàn)oshan ?528000)
Abstract: In order to replace manual inspection and recognition of the installation status of automotive parts, we?design a complete visual inspection system based on YOLOv5 combining with PLC, RFID, Python, OpenCV, nails, etc. The accuracy and recall rate of the sample models trained in this system are both above 98%. From actual operation observation, the probability of identifying and accurately reminding is above 99%, and it meets the production rhythm requirements. It is superior to the actual results of current manual detection, with low cost and good economic promotion.
Keywords: Vehicle production、YOLOv5、Python、testing
中圖分類號(hào):?T ??????????文獻(xiàn)標(biāo)識(shí)碼: ???????????文章編號(hào):
1??前言
隨著汽車行業(yè)的快速發(fā)展,消費(fèi)者對(duì)于汽車的需求逐漸增加,汽車配置種類也在逐漸增加。在整車生產(chǎn)制造行業(yè),一輛高品質(zhì)的汽車需要安裝1?000類以上、共計(jì)上萬(wàn)個(gè)零件,為了避免在汽車生產(chǎn)時(shí)零件發(fā)生錯(cuò)/漏裝,在制造過(guò)程中以往是通過(guò)人工安裝前進(jìn)行自檢、相關(guān)工位互查、每條生產(chǎn)線尾人員檢查以及質(zhì)保人員終檢。人工的檢測(cè)主觀干擾因素多,可靠性低,對(duì)于多種車型多種配置的混線生產(chǎn),人工檢查會(huì)因?yàn)槠跈z查等原因?qū)е洛e(cuò)漏裝零件車下線,從而可能帶來(lái)后續(xù)返修成本增加,甚者會(huì)導(dǎo)致錯(cuò)誤的配置車輛流入客戶,從而帶來(lái)強(qiáng)烈的售后抱怨和經(jīng)濟(jì)損失。如何利用數(shù)智化的手段來(lái)識(shí)別并解決問(wèn)題顯得愈發(fā)重要,國(guó)內(nèi)外相關(guān)人員對(duì)此做了較多的研究,許有健等[1]識(shí)別汽車制造過(guò)程中的管控要素和相應(yīng)的方法;唐艷、陳莉等[2-3]制造業(yè)在數(shù)智化升級(jí)的整體框架研究。
利用機(jī)器視覺(jué)代替車間檢查人員,完成整車零件的錯(cuò)漏裝檢測(cè)顯得愈發(fā)重要。許多人開(kāi)始著手研究,張麗秀等[4]通過(guò)采用改進(jìn)的YOLOv3算法實(shí)現(xiàn)汽車零件配置的識(shí)別,解決傳統(tǒng)的終檢人工作業(yè)檢測(cè)的弊端。汽車生產(chǎn)組裝過(guò)程中的酒精管道插頭、膠堵、空調(diào)冷凝管等零部件因?yàn)檐囆团渲梅N類多,易發(fā)生錯(cuò)漏裝的現(xiàn)象,且個(gè)別零件因?yàn)榘惭b位置等原因不易第一時(shí)間發(fā)現(xiàn)問(wèn)題,一旦出現(xiàn)問(wèn)題就會(huì)產(chǎn)生返修返工、停臺(tái)影響甚至?xí)霈F(xiàn)質(zhì)量問(wèn)題,會(huì)造成巨大的損失。
針對(duì)上述錯(cuò)漏裝不易發(fā)現(xiàn)的問(wèn)題,為了以最低成本實(shí)現(xiàn)集成系統(tǒng)式預(yù)防問(wèn)題,本研究主要開(kāi)發(fā)了一套基于Python、OpenCV、YOLOv5開(kāi)源模型算法、snap7等技術(shù)手段來(lái)實(shí)現(xiàn)汽車裝配類零件錯(cuò)漏裝的圖像識(shí)別系統(tǒng)方法,從而杜絕錯(cuò)漏裝的現(xiàn)象。本系統(tǒng)通過(guò)Python snap7 與線體西門子PLC(S7-300系列)通信,實(shí)現(xiàn)如下功能。
a.通過(guò)sew變頻器和編碼器精準(zhǔn)地獲取當(dāng)前車輛信息和車輛所處的位置;
b.利用OpenCV的Python庫(kù)基于rtsp通訊協(xié)議調(diào)動(dòng)普通的網(wǎng)絡(luò)攝像頭進(jìn)行拍照然后對(duì)拍攝圖像進(jìn)行預(yù)處理;
c.利用YOLO模型進(jìn)行圖像識(shí)別分類;
d.最后利用位于生產(chǎn)線尾的語(yǔ)音屏和手機(jī)釘釘端進(jìn)行相應(yīng)的報(bào)警。
該系統(tǒng)具有低成本、低功率、高準(zhǔn)確率的特點(diǎn),便于在整車制造同類問(wèn)題進(jìn)行橫向開(kāi)展。
2 ?YOLOv5s目標(biāo)檢測(cè)算法
2021年,Ultralytics LLC公司提出了YOLOv5算法,YOLOv5在原有YOLOv4的架構(gòu)基礎(chǔ)上進(jìn)行改進(jìn)[5],YOLOv5 算法分為?YOLOv5s、YOLOv5m、YOLOv5l 和 YOLOv5x四種算法。其中,YOLOv5s 的網(wǎng)絡(luò)最小,檢測(cè)速度最快[6],因?yàn)楸鞠到y(tǒng)主要識(shí)別的是整車生產(chǎn)過(guò)程中裝配類零件的錯(cuò)漏裝檢測(cè),YOLOv5s其精度要求也是滿足整車生產(chǎn)現(xiàn)場(chǎng)的實(shí)際需求,因此本系統(tǒng)基于YOLOv5s算法開(kāi)展實(shí)際的設(shè)計(jì)使用。
2.1數(shù)據(jù)樣本準(zhǔn)備
本系統(tǒng)需要完成11種汽車零件的整體檢測(cè),為了后續(xù)集成化系統(tǒng)的快速開(kāi)發(fā)推廣使用,暫定采用每類零件都進(jìn)行一次模型訓(xùn)練,生成11個(gè)訓(xùn)練模型。其所使用數(shù)據(jù)樣本集是通過(guò)現(xiàn)場(chǎng)攝像頭進(jìn)行實(shí)時(shí)數(shù)據(jù)采集。因?yàn)橄到y(tǒng)測(cè)試車間是4種車型混線生產(chǎn),且每種車型都有多個(gè)配置信息,根據(jù)零件實(shí)際情況進(jìn)行樣本的訓(xùn)練集和測(cè)試集準(zhǔn)備。
因?yàn)樵跇颖九臄z過(guò)程中,因?yàn)閿z像頭自身的問(wèn)題及信號(hào)傳輸?shù)?u>可能會(huì)受到信號(hào)干擾問(wèn)題,會(huì)導(dǎo)致圖片中通常會(huì)產(chǎn)生高斯噪聲和椒鹽噪聲,會(huì)出現(xiàn)影響視覺(jué)判斷的黑白像素點(diǎn),本文利用OpenCV的cv2.blur()均值濾波函數(shù)對(duì)其進(jìn)行降噪處理[7]。
(1)
并根據(jù)卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算要求,對(duì)圖片進(jìn)行歸一標(biāo)準(zhǔn)化統(tǒng)一處理,確保圖片大小等為標(biāo)準(zhǔn)形式[8],所有圖片大小都設(shè)置為640×640。
(2)
式中,xi為圖像像素點(diǎn)值;min(x)、max(x)分別為圖像像素的最小值與最大值[9]。
圖片標(biāo)準(zhǔn)化處理完成后,利用專業(yè)的圖片標(biāo)注軟件為L(zhǎng)abelimg軟件對(duì)每張樣本圖片進(jìn)行相應(yīng)的標(biāo)定。
2.2模型訓(xùn)練
在模型訓(xùn)練過(guò)程,將初始學(xué)習(xí)率設(shè)為0.01,weight decay 設(shè)置為0.000 5,?batchsize設(shè)置為64,訓(xùn)練epoch設(shè)置為300輪。分別將標(biāo)注好11個(gè)零件的訓(xùn)練與測(cè)試圖片樣本集,進(jìn)行模訓(xùn)練。在本系統(tǒng)中,最終采用將精確率、召回率作為最終樣本模型好壞的評(píng)價(jià)衡量指標(biāo)。經(jīng)過(guò)多輪的訓(xùn)練最終得到11個(gè)樣本模型,再分別將其設(shè)定IOU閾值為0.5時(shí),其每個(gè)模型的精確率分別為下表所示。
3??系統(tǒng)功能和框架整體介紹
整個(gè)程序系統(tǒng)位于服務(wù)器(服務(wù)器的配置信息),基于YOLOv5s算法,使用深度學(xué)習(xí)框架PyTorch,訓(xùn)練測(cè)試在PyTorch 1.8.0環(huán)境下完成,編程語(yǔ)言為Python 3.8,數(shù)據(jù)庫(kù)為MySQL8.0.1操作系統(tǒng)是Win10系統(tǒng)。
3.1 ?系統(tǒng)整體信息
在整個(gè)系統(tǒng)設(shè)計(jì)過(guò)程中,五大主要模塊分別為圖像采集模塊、車輛配置信息獲取模塊、車輛信息采集模塊、圖像識(shí)別模塊和系統(tǒng)報(bào)警模塊,系統(tǒng)的結(jié)構(gòu)如圖1所示。
3.2 具體工作流程
在該項(xiàng)目從車輛到站到車輛出站預(yù)警分析等需要完成6步完整步驟。
a.步驟一:基于Python?snap7獲取車間西門子PLC S7-300系列中的DB塊信息。工業(yè)界經(jīng)常將RFID系統(tǒng)分為標(biāo)簽,閱讀器和天線三大組件。閱讀器通過(guò)天線發(fā)送電子信號(hào),標(biāo)簽接收到信號(hào)后發(fā)射內(nèi)部存儲(chǔ)的標(biāo)識(shí)信息,閱讀器再通過(guò)天線接收并識(shí)別標(biāo)簽發(fā)回的信息,最后閱讀器再將識(shí)別結(jié)果發(fā)送給主機(jī)[10]。通過(guò)安裝在設(shè)備上RFID閱讀器,從吊具上的數(shù)據(jù)載體(標(biāo)簽)中實(shí)時(shí)獲取當(dāng)前車輛的底盤號(hào)信息,并將其存儲(chǔ)到PLC的DB塊中。目前車間使用的為西門子S7-300系列的PLC,通過(guò) Snap7 提供的 read_area(self, area, dbnumber, start, size)函數(shù),讀取 PLC 的DB塊中的值,并將其存儲(chǔ)到MySQL數(shù)據(jù)庫(kù)中。
b.步驟二:實(shí)時(shí)從MySQL數(shù)據(jù)庫(kù)中獲取步驟一中得到的車輛底盤號(hào)等信息,判斷該底盤號(hào)是否與識(shí)別數(shù)據(jù)庫(kù)中的車輛底盤號(hào)一致,如不一致說(shuō)明該車輛為最新車輛,需要利用Python中的pymssql庫(kù)實(shí)時(shí)從車輛配置信息的FIS服務(wù)器上的SQL Server數(shù)據(jù)庫(kù)中獲取車輛的車型信息和配置信息代碼,存儲(chǔ)到對(duì)應(yīng)的MySQL數(shù)據(jù)中以便后用。
c.步驟三:利用Python?OpenCV,基于網(wǎng)絡(luò)攝像頭的RSTP協(xié)議流實(shí)時(shí)流傳輸協(xié)議(主要用來(lái)控制影響的實(shí)時(shí)多媒體流傳輸協(xié)議[11])控制網(wǎng)絡(luò)攝像頭,利用Python?OpenCV的VideoCapture()和imwrite()控制網(wǎng)絡(luò)攝像頭獲取圖片。
d.步驟四:基于前期利用YOLOv5實(shí)時(shí)訓(xùn)練的11種零件樣本的訓(xùn)練模型,逐個(gè)對(duì)11張圖片的11類零件進(jìn)行機(jī)器視覺(jué)識(shí)別,并將識(shí)別判定結(jié)果實(shí)時(shí)存儲(chǔ)到對(duì)應(yīng)的MySQL數(shù)據(jù)庫(kù)中,經(jīng)過(guò)近兩個(gè)月的實(shí)際觀察判斷,其準(zhǔn)確性在99%以上,滿足現(xiàn)場(chǎng)的實(shí)際需求,而且隨著時(shí)間的推移,樣本數(shù)據(jù)的逐漸增加,其準(zhǔn)確性會(huì)繼續(xù)提升。
e.步驟五:針對(duì)識(shí)別的結(jié)果實(shí)時(shí)存儲(chǔ)到后端MySQL數(shù)據(jù)庫(kù)中,如何利用更加有效的手段提醒操作者和檢查人員采取措施顯得愈發(fā)重要,為此利用Vue.js做前端、Node.js做后端搭建語(yǔ)音屏的實(shí)時(shí)顯示界面,位于每條生產(chǎn)線的鏈尾,進(jìn)行實(shí)時(shí)的車輛檢查狀態(tài)提醒,即通過(guò)與線體PLC實(shí)時(shí)通訊獲取當(dāng)前車輛底盤號(hào),根據(jù)底盤號(hào)實(shí)時(shí)與視覺(jué)識(shí)別結(jié)果存儲(chǔ)數(shù)據(jù)庫(kù)通訊,將其識(shí)別結(jié)果顯示至工位屏上,并利用語(yǔ)音合成技術(shù),將不合格結(jié)果通過(guò)語(yǔ)音播報(bào)出來(lái),具體邏輯流程如圖2所示。
f.步驟六:利用Python將不合格(或異常點(diǎn))信息通過(guò)釘釘進(jìn)行相應(yīng)的報(bào)警。利用手機(jī)釘釘系統(tǒng)推送不合格車輛信息,在相關(guān)釘釘報(bào)警工作群中創(chuàng)建自定義機(jī)器人,獲取到 Webhook 地址后,向這個(gè)地址發(fā)起 HTTP POST 請(qǐng)求[12],將相應(yīng)的報(bào)警信息實(shí)時(shí)發(fā)送給相應(yīng)的負(fù)責(zé)人員及時(shí)采取相應(yīng)的措施。
4 結(jié)束語(yǔ)
在將整個(gè)系統(tǒng)用于現(xiàn)場(chǎng)后,經(jīng)過(guò)現(xiàn)場(chǎng)兩個(gè)余月的測(cè)試驗(yàn)證,識(shí)別準(zhǔn)確率在99%以上,而且為了后續(xù)模型的更加精準(zhǔn),每隔一個(gè)月會(huì)對(duì)模型進(jìn)行重新訓(xùn)練,使其準(zhǔn)確性達(dá)到99.5%以上。而且利用位于每條生產(chǎn)線的語(yǔ)音屏和手機(jī)釘釘也會(huì)及時(shí)將錯(cuò)漏裝信息反饋給檢查人員,全面杜絕汽車零件錯(cuò)漏裝的流出。之前車間漏檢返修的數(shù)量:240次/年,經(jīng)濟(jì)損失20萬(wàn)元年;系統(tǒng)運(yùn)行近6個(gè)月,相關(guān)零件錯(cuò)漏檢返修的數(shù)量只有1次,大大降低了成本,提高了經(jīng)濟(jì)效益。后續(xù)筆者會(huì)對(duì)整個(gè)系統(tǒng)的程序和算法進(jìn)行持續(xù)優(yōu)化,便于快速的迭代和推廣實(shí)施。
參考文獻(xiàn):
[1] 許有健,吳濤,梁玉環(huán).質(zhì)量信息管理系統(tǒng)在汽車制造質(zhì)量控制中的應(yīng)用[J].制造與工藝,2021(1):115-116.
[2] 唐艷,胡桐.美的數(shù)智化"探索[J].企業(yè)管理2021(2):103-106.
[3] 陳莉.美的"數(shù)智四劍客"亮相工博會(huì),美云智數(shù)"立腕"最懂制造業(yè)的數(shù)字規(guī)劃師[J].電器,2020(10):66-68.
[4] 張麗秀,田甜,邵萌,基于改進(jìn)的YOLO V3算法汽車零件配置辨識(shí)[J],組合機(jī)床與自動(dòng)化加工技術(shù),2020,6: 150-153.
[5] 張錦;?屈佩琪;?孫程;?羅蒙,?基于改進(jìn)YOLOv5的安全帽佩戴檢測(cè)算法[J],?計(jì)算機(jī)應(yīng)用?2022(4) :?1292-1300.
[6] 王莉茹,?基于YOLOv5s 的口罩佩帶檢測(cè)[J], 西藏科技?: 65-67.
[7] 李立宗.OpenCV輕松入門面向Python[M].北京:電子工業(yè)出版社,2019.
[8] 田佳鷺,鄧立國(guó).基于改進(jìn)VGG16的猴子圖像分類方法[J].信息技術(shù)與網(wǎng)絡(luò)安全,2020,39(5):6-11.
[9] 徐曉.基于C和OpenCV相結(jié)合的貓臉識(shí)別研究[J].電腦與信息技術(shù),2021,29(3):30-33.
[10]?楊雪珂;?熊先青,?家具生產(chǎn)線射頻識(shí)別技術(shù)的信息采集與應(yīng)用[J]. ?林業(yè)工程學(xué)報(bào), ?2022(3):?180-186.
[11] 郭佳琛,網(wǎng)絡(luò)攝像頭的安全威脅技術(shù)分析[J].?中國(guó)信息安全,?2019(4):?39-42.
[12] 李紅永,?Python監(jiān)聽(tīng)服務(wù)器業(yè)務(wù)并利用釘釘機(jī)器人實(shí)現(xiàn)報(bào)警[J],中國(guó)有線電視, ?2020(8):?900-903.