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