王興智,歐陽八生
(南華大學機械工程學院,湖南衡陽 421001)
隨著電子市場的需求不斷拓展,SIM卡座連接器成為電子設備不可或缺的重要配件。SIM卡座連接器是常用的手機和電腦中的組件,目前國內SIM卡座的生產環(huán)節(jié)已經基本實現無人化,但在檢測環(huán)節(jié)仍然不夠完善,外觀檢查在很大程度上仍然嚴重依賴人工來完成。人工檢查主要是由工人用肉眼鑒別元器件破損、缺失等情況。在高強度的流水線上工作,這就需要操作人員具有豐富的經驗以及大量的時間和耐心,在檢測過程中準確性難以得到保證。并且對于一些小的缺陷檢測效果很差。
隨著機器視覺技術的訊速發(fā)展,已經有許多行業(yè)采用傳統(tǒng)的機器視覺技術來檢測缺陷[1]。如朱健[2]結合連接器結構特點及SURF算法提出了一種配準速度和精度都有很大提升且適用于連接器圖像的配準方法。對連接器的塑膠多膠、破損、刮傷、端子缺失、歪斜等缺陷進行檢測,整體的缺陷識別準確率達83%左右,處理的平均時間在0.8 s左右。鄭中華等[3]設計了一套基于Labview機器視覺的SIM卡槽缺陷檢測系統(tǒng)。對卡槽的引腳缺失、折彎、變形、露銅、包膠等缺陷進行檢測,對160個產品進行檢測,實現了平均檢測時間在0.75 s。陳永清等[4]提出了一種基于機器視覺的連接器非接觸自動檢測方法,該方法通過卷積濾波獲得高質量圖像,使缺陷特征與背景產生較大差異;最后,采用基于邊緣線建立坐標系的方法,采用Otsu閾值分割自動定位和檢測有效區(qū)域,消除了產品的位置誤差;統(tǒng)計目標像素的數量并檢測目標。檢測到的缺陷類型有連接器的漏針、堵孔、缺針、翹針、本體刮傷。此方法對預處理要求比較嚴格。譚臺哲[5]設計一個基于機器視覺的電子連接器缺陷檢測系統(tǒng)。在Canny算法的基礎上,設計一個將Canny邊緣檢測與亞像素相結合的視覺檢測算法。對pin腳之間的間距和pin腳整體平整度進行檢測,檢測效果良好,但具有針對性。郭羽鵬等[6]提出了一種基于機器視覺原理的連接器檢測方法。對采集到的連接器圖像先后進行邊緣點檢測和雙閾值Blob提取操作,將劃痕缺陷更準確提取出來,實現了對連接器劃痕缺陷的檢測。對劃痕這一單一檢測效果能達到94%。
雖然傳統(tǒng)機器學習方法對連接器的缺陷檢測效率能夠有所提高,但存在著實驗產品數少、缺陷類型單一等不足,且傳統(tǒng)的機器視覺檢測往往離不開復雜的預處理,此外在耗時方面還大大提高了成本,難以滿足工業(yè)上的實時需求。
本文以SIM卡殼為研究對象,鑒于上述問題,提出了一種基于YOLOv5s網絡模型的SIM卡外殼缺陷檢測方法。
目標檢測算法對輸入的RGB圖像分析功能是本文缺陷檢測方法的關鍵一步。缺陷檢測模型的好壞直接影響到SIM卡外殼缺陷識別準確度及識別速度,因此,采用由多種trick的集成,并且開源了一套快速訓練、部署方案的YOLOv5s模型能更有效的達到預期。
本文整體的工作任務基于圖1所示流程循序進行。
圖1 模型訓練流程
YOLOv5模型是Ultralytics公司在2020年6月9日公開發(fā)布的。YOLOv5模型是YOLO系列的最新版本,YO?LOv5引進了馬賽克數據增強,能有效解決模型訓練中難以獲取的微小對象。在檢測速度和精度上都更勝一籌,在某種程度上YOLOv5已經成為YOLO系列算法中的SO?TA(StateOfTheArt)[7]。YOLOv5包含了4種版本的目標檢測網絡,分別是Yolov5s、Yolov5m、Yolov5l、Yolov5x四個模型。雖然YOLOv5正式發(fā)布距離YOLOv4不到50天,但與YOLOv4相比,YOLOv5錨定框是基于訓練數據自動學習的不是預先設定的,相對于YOLOV4采用的Darknet框架,YOLOv5的Pytorch框架更容易投入生產。此外比起YOLOV4模型245 M的模型尺寸,YOLOv5中的YOLOv5s模型尺寸非常小,僅有27 M,降低部署成本,有利于模型的快速部署。故本文以YOLOv5中的YO?LOv5s模型為訓練模型。
YOLOv5s模型主要由輸入端、Backbone、Neck以及Prediction組成。在Backbone部分,把初始圖像輸入Fo?cus結構,經過切片轉變?yōu)樘卣鲌D,然后再經過一次32個卷積核的卷積操作,變成最終的特征圖[8]。此部分還使用了CSP1_X跨階段局部網絡[9]。其解決了其他大型卷積網絡結構中的重復梯度問題,減少模型參數和FLOPS。這對YOLO有重要的意義,即保證了推理速度和準確率,又減小了模型尺寸。Backbone部分主要進行輸入圖像特征提取,Neck采用了CSP網絡設計的CSP2_X結構,對圖像特征進行融合[10]。Yolov5s采用其中的GIOU_Loss做Bounding box的損失函數,解決邊界不重合問題,并使用非極大值抑制NMS進行后處理,以便更好地識別多目標選框,提高模型檢測精度[11]。網絡模型結構如圖2所示。
圖2 YOLOv5s網絡結構
通過江蘇蘇州某SIM卡殼生產廠家,收集所需缺陷產品。通過自主打光,架設工業(yè)相機(CCD)一共收集到1000張含有不同類型缺陷的SIM卡殼圖像。由于視野足夠,在同樣的光照條件下只需一次拍照就可顯現所有缺陷。對存在有外觀缺陷的圖像樣本進行人工分類。本文中,將SIM卡殼的外觀缺陷共分為以下4類:針腳缺失、彈片翹起、圓孔變形、外殼金屬斷裂,統(tǒng)計樣本庫中各類缺陷的樣本數量,若后期訓練樣本不夠,可通過復制圖像后的隨機數據增強方法來擴充樣本得到分類相對均衡的訓練樣本庫。
由于SIM卡殼的實際規(guī)格為:25mm×18 mm,為了獲得完整的圖像,設置視距FOV的值略大于產品實際規(guī)格,設置為:30 mm×20 mm。根據廠家所提WD為250 mm,選用型號為MV-CE120-10GC的1200萬CMOS彩色相機,選擇50 mm鏡頭,該配置像素精度為0.008 mm,分辨率為4 000×3 000,由于產品外殼為不銹鋼材質,為了克服表面反光造成的干擾,光源選用同軸光。采樣平臺如圖3所示,選型如圖4所示。
圖3 采樣平臺
圖4 視覺硬件選型
圖像預處理的作用是為了提高特征信息的可檢測性從而使數據盡可能有序。數據預處理方法一般包括圖像灰度化、幾何變換、圖像增強3大類方法。其中,灰度化就是將彩色圖的RGB三個通道的數值僅用一個數值來表示,該數值稱為灰度值,對彩色圖3個通道依次進行處理,時間開銷將會很大。所以,機器視覺中在不影響檢測結果的情況下,為了達到提高整個應用系統(tǒng)的處理速度的目的,需要減少所需處理的數據量,即灰度化。在圖像處理中,常用的灰度化方法:分量法、最大值法、平均值法、加權平均法。圖像幾何變換又稱為圖像空間變換,包括平移、轉置、鏡像、旋轉、縮放等操作。用于改正圖像采集系統(tǒng)的系統(tǒng)偏差和儀器位置的隨機偏差。圖像增強包括亮度、對比度、銳化、平滑、濾波等調節(jié)方法;其目的是為了提高圖像的視覺效果,根據圖像的具體應用場合,有意識地突出圖像的整體性或局部特點,從而使原始不清晰的圖像清晰。
Halcon是由德國MVtec公司開發(fā)的一套完整的標準機器視覺算法包,擁有廣泛的機器視覺集成開發(fā)環(huán)境。是一套圖像處理庫,由1 000多個獨立的功能和底層數據管理核心組成[12]。囊括了各種基本的幾何和圖像計算功能,如濾波、顏色和數學、幾何變換、校正、形態(tài)學分析、形狀搜索等,應用范圍幾乎無限,這些功能大多不是為特定工作設計的,因此只要對圖像處理有需求,Halcon強大的計算和分析能力就可以用來完成工作。本文使用Halcon算法包里的emphasize算子對獲取的數據集進行數據增強,提高缺陷的對比度,使缺陷突出,有益于提升模型工作速度。該算子計算與釋義如下,產品原圖與4種缺陷類型標記圖及預處理前后缺陷圖如圖5所示。
圖5 預處理前后缺陷圖
算子原式:emphasize(Image:ImageEmphasize:MaskWidth,MaskHeight,Factor:)
按如下公式進行計算:res:=round((origmean)*Factor)+orig
Image:指定需要增強的圖片名;ImageEmphasize:處理后的圖片名;
MaskWidth:均值濾波的寬度;MaskHeight:均值濾波的高度;
Factor:對比度因子res:新的像素值;
orig:濾波前某點的像素值;
mean:濾波后所有點的平均像素值;
round:取整函數;
整體釋義:用原始圖像某點的像素值減去濾波后所有點平均像素值,然后對這個結果近似取整,再把這個值加上原來這點的像素值,得到這個最終結果去替換原來這點的像素值。實現圖像對比度增強。
訓練YOLOv5s模型前需要對數據類型進行標注,將1 000個樣本按4∶1分為訓練集和測試集,使用Label Img數據標注工具對圖片進行標注,并將圖片的標注的圖片格式轉換成YOLOv5s的格式。缺陷標注類別分為4類,分別是SIM卡外殼的針腳缺失、彈片翹起、圓孔變形、金屬斷裂,代號為0~3,標注完成后,每張圖片會對應生成一份txt標注文件,該文件中的每一行分別代表著不同類別缺陷目標的位置信息,x、y、w、h為該缺陷相對于整張圖片的具體位置,介于0~1之間。x、y分別代表標注的尺寸框的中心點在x軸及y軸方向上的坐標;w、h則代表尺寸框的寬度和高度。具體的標注展示如表1所示。
表1 標注文件展示
實驗采用Ubuntu18.04操作系統(tǒng)與Pytorch架構[13],深度學習框架為Pytorch1.8.0使用計算機語言Python3.7,本實驗的測試平臺采用CPU為AMD-Ryzen7-2700-Eight-Core CPU、內存16 GB、顯存11 GB,顯卡類型為GeForce GTX 1080Ti,滿足深度學習模型訓練的硬件配置要求。
網絡學習模型的訓練基于Pytorch的深度學習框架,訓練部分參數設置:輸入圖片大小為640×640,預先設置總迭代次數為200,實驗大概在100次迭代后,損失值逐漸趨于穩(wěn)定,模型收斂。
YOLOv5s網絡的損失函數共包含3個部分:obj_loss為置信度損失函數,反映了網絡的置信度誤差;box_loss為定位損失函數,用于衡量預測框與標定框之間的誤差;cls_loss為分類損失函數,計算錨框與對應的標定分類是否正確。模型在訓練過程中的損失變化如圖6所示。
圖6 損失函數變化
分別通過測試精度(precision,P)、召回率(Re?call,R)和LoU為0.5時的mAP來評價模型的性能[14]。P表示檢測模型預測的正樣本確實是正樣本的概率;R是檢測模型預測的實際正樣本數;A P是每個類別所有圖片的P對R的積分,mAP是各種A P的平均值,用于評估檢測模型的整體性能。表2所示為SSD[15]、YOLOv3、YO?LOv4三種模型以及本文所選模型YOLOv5s在訓練中的性能對比。由表可知:YOLO系列的模型性能在本研究中比起SSD模型更有優(yōu)勢,P、R、mAP值都有提升,就本文選取的這3個YOLO系列模型來說,YOLOv5s模型比起YOLOv3與YOLOv4模型性能優(yōu)勢明顯更優(yōu),特別是準確率比起YOLOv3提升了4.8%,比起YOLOv4提升了3.3%性能更佳。
表2 模型性能對比
同樣地,為了更好地顯示出YOLOv5s模型的優(yōu)勢,保持訓練平臺信息配置和訓練數據集不變,分別使用SSD、YOLOv3、YOLOv4三種模型與本文所選模型YO?LOv5s對4種缺陷進行檢測比較,檢測實驗在CPU上進行,結果如表3所示。由表可知:4種模型對于不同的缺陷都有著高于87%的準確性,但從表中可以看出YO?LOv5s模型對4種缺陷的準確率穩(wěn)定性和平均準確率值都是最優(yōu)的,此外在檢測速度上也有明顯的優(yōu)勢,單張圖片檢測時間比SSD快了0.156 s,比YOLOv3快了0.116 s,比YOLOv4快了0.178 s,說明無論從檢測準確率還是從檢測速度上來說YOLOv5s模型具有更優(yōu)性。
表3 不同模型檢測結果比較
為了實現對SIM卡殼在實際流水線上檢測速度與準確性的提升,本文提出了一種可以對SIM卡外殼在生產中造成的多種缺陷(外殼針腳缺失、彈片翹起、圓孔變形、金屬斷裂)進行檢測的方法,該方法基于現有的YOLOv5s模型進行深度學習,通過實驗檢測,該模型的平均準確率可達97.8%,在CPU上檢測單張圖速度能達到297 ms,能滿足工業(yè)的實時性要求,為當前工業(yè)大環(huán)境下檢測SIM卡外殼缺陷提供了一種新思維。對于該研究的擴展,可以繼續(xù)收集不同的SIM卡外殼缺陷類型的數據集進行訓練,使模型更具兼容性,將模型應用到更多不同場合。