王金成 劉興



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