羅瑞,何為,鄭雪枚,盧小海
(武昌首義學院 機電與自動化學院,湖北武漢,430064)
國外機器視覺技術發展迅猛,在工業生產中得到了廣泛地應用。基于計算機視覺的表面檢測技術可以概括為:PCB 印刷電路檢測、SMT 表面貼裝檢測、產品尺寸檢測、生物醫學檢測等,從而使產品檢測的準確度和生產效率得到了極大的提升[1~2]。
在國外,日本川崎公司于1974 年開發了用于鍍錫薄板表面缺陷的在線機器視覺測試設備[3]。1983 年,霍尼韋爾公司利用線陣CCD 攝像機和圖像處理技術,開發出一套用于精密檢測鑄件表面缺陷的設備[4]。1993 年,Liao K.等對完整的玉米種子和破碎的種子進行了檢測;2002 年,N.Aleixos 等人開發了一種基于計算機視覺的柑橘分類方法。在這方面,目前比較成功公司的有PROIMAGE,NI,BOBST,VMT,Hexsight,Cognex,DAC,TOKIMEC,Keyence。
隨著目標檢測技術的快速發展,傳統的機器視覺方法被應用于工業中缺陷檢測。如王淑青等利用基于YOLOv5 的瓷磚表面缺陷檢測法[5],以瓷磚為研究對象,針對瓷磚表面缺陷檢測基于YOLOv5 的瓷磚表面缺陷檢測法。實驗結果表明:該方法適用于不同類型的缺陷檢測,并且該方法在準確度和速度上均比傳統的缺陷檢測優秀。由此可得YOLOv5網絡是十分適用于不同類型的缺陷檢測,并且速度、內存、大小都得到了很完美的提升。
基于機器視覺的注塑杯表面缺陷檢測系統總共分為兩個部分組成,分別是硬件和軟件。硬件部分主要包括:電腦、相機、光源、支架、傳輸帶、圖像采集設備。軟件部分則是由圖像采集系統和電腦端軟件程序構成的圖像處理、缺陷識別系統。注塑杯表面缺陷系統檢測的總體模型如圖1 所示。

圖1 圖像采集模塊模型圖
由圖1 可知,當傳輸帶進行物品傳輸工作時,注塑杯經傳感器檢測信號通過PLC 傳輸到電腦,電腦通過相機對物品進行抓拍,獲取的圖像通過圖像采集卡再次傳輸到電腦上,同時對物品進行缺陷分析處理,得到直觀的結果反饋在顯示器上,以此達到對注塑杯表面缺陷檢測的實際數據。最后通過電機驅動推桿,將產品進行分揀,檢測出的殘次品將進行回收處理。圖2 中的流程完成注塑杯的智能識別和分類功能。

圖2 項目整體流程圖
綜上所述,硬件是實驗的基礎,合適的硬件有助于減小實驗中外界因素對缺陷檢測的影響。軟件則是實驗的核心,選擇合適的軟件可以使檢測工作更快速更準確。
本實驗是以機器視覺為基礎的檢測系統,同時電腦處理的圖片信息就是通過相機獲取的圖像進行分析。因此相機的選擇十分重要,目前工業用相機主要基于CCD 或者CMOS芯片的相機。在圖像處理速度和幀率,CMOS 高于CCD,避免了拖尾和模糊現象[6],并且相比較,CMOS 的成本都比CCD 要低,兼容性、可靠性都優于CCD。并且CMOS 在低靈敏度、低電流、低填充等方面進行了大量的技術研究和技術攻關[7~8]。
在圖像采集過程中,光學鏡頭在機器視覺系統中也是不可或缺的組成部分,它的好壞將對圖像的質量產生重要的影響。因此在選擇光學鏡頭時要考慮鏡頭是否能增強圖像的效果,同時能否適配所選相機。
光源的選擇同樣重要,合適的光源可以使相機清晰獲取注塑杯的細節與輪廓,配合相機能清晰展示出檢測項目的缺陷類型,還可以有效降低噪點;因此應多方面考慮光源的面積、亮度以及穩定性。
本次本人所選擇的圖像處理軟件是Labellmg 軟件,該軟件是我們常用的十分簡單的標注工具,可以幫助我們進行目標檢測項目的標注工作,它的操作簡單易上手。
缺陷檢測的具體流程如圖3 所示,數值圖像處理的目的是從圖像中提取有用信息數據,隨后對圖像進行分析處理,以此得到我們需要的一個結果。同時圖像與圖像之間是緊密連接的,只要我們針對其分析出來了必要信息,后續的工作也可以事半功倍。

圖3 缺陷檢測流程圖
Labellmg 軟件對目標圖像進行標注需要人工進行標注,于是在采集完圖像后對目標缺陷類型先進行了分類區分。總共分為5 個類型:發白、黑點、進膠點高凸、毛邊、缺膠,隨后在軟件中對目標進行缺陷類型標注。本次采用YOLOv5 檢測法,根據YOLOv5 官方發布的數據代碼可知,該監測網絡共有四個版本,依次為YOLOv5x、YOLOv5l、YOLOv5s。其中YOLOv5s 是深度和特征圖寬度最小的網絡。
3.2.1 實驗環境搭建
在Anaconda 軟件的命令方塊中, 創建一個以Python3.8 為基礎的YOLO 環境,然后鍵入“activate YOLO”的命令,啟動YOLO 環境。使用Pycharm 來開啟YOLOv5 模式,并在之前創建的YOLO 環境下安裝依賴庫文件。環境搭配流程圖如圖4 所示。

圖4 環境搭配流程圖

圖5 訓練結果
3.2.2 建立訓練集
首先準備自己的帶有圖像和標簽的數據集。對于標記圖像,可以使用Labelme 或CVAT 等工具。然后,應該編寫相應的Dataset 類,該類可以通過_getitem__方法加載圖像和標簽。YOLOX 支持COCO 格式和VOC 格式。而YOLOv5 和YOLOv4 只支持YOLO 形式。目標檢測標注形式,目前主流的目標檢測的標注形式主要有COCO 形式,VOC形式,和YOLO 形式。為了更好地在不同網絡上進行訓練,需要建立一個數據格式轉換的程序。
神經網絡訓練是一個非常復雜的過程,在這過程中,許多變量之間相互影響。在神經網絡訓練過程中,更加簡單方便地加速訓練網絡有許多的技巧。我們需要反復迭代以調整最好的參數,以求在最快的時間訓練出最好的網絡。
3.3.1 模型微調
由于手工標注的數據量非常有限,對于一些稍大的網絡,難以滿足其數據量的需求,所以使用預訓練模型進行微調是非常有必要的。大的學習率可能會導致網絡的災難性遺忘。因此通常使用較小的學習率進行warm up,讓網絡逐漸適應新的數據集。這既可以加速網絡收斂,也可以讓網絡保留在超大數據量的預訓練中學習到的經驗。
3.3.2 超參數設置
(1)learning rate:由于預訓練通常是在超大量圖片上進行的。為了讓原模型學到的知識盡可能地保留,在模型微調過程當中,我們的學習率通常是正常訓練學習率的1/10。
(2)batch size,可承受范圍內盡量大,主要是為了迭代速度更快。
(3)warm up steps,lr schedule,epochs 數量,dropout rate 等,都是對照網絡訓練時候的數據,按照經驗和觀察調整。
3.3.3 P-R 曲線
選定的閾值不同分類的結果也是不同的。Recall 和Presion 的值也不同。畫出兩者閾值變化的曲線圖,如圖6所示。可以看到兩者之間有一定的反比關系。

圖6 R-P 曲線關系圖
3.3.4 測試結果
從圖7 可以看出缺陷精準度有了一定的提升,但是有些細小方面的問題仍無法檢測出來或者是檢測精準度不高。

圖7 檢測結果
本文聚焦于目標檢測任務,介紹了深度學習的研究背景以及目標檢測任務的發展現狀。基于深度學習的目標檢測算法目前可以分為一階段算法以及二階段算法。本文主要介紹了特征金字塔網絡(FPN)、路徑聚合網絡(PANet)和雙向特征融合網絡(BiFPN)。此外,由于YOLOv5 算法是目前比較好的目標及檢測算法,所以本文從數據增強、網絡結構、損失函數等方面對YOLOv5 算法進行了具體的闡述。
基于YOLOv5 網絡,本文提出了YOLOv5 網絡的兩種網絡,并且對其進行了對比分析。并且實驗部分采用了COCO 數據集,并且與其他同類檢測算法進行比較。實驗數據證明。YOLOv5s網絡為基準,YOLOv5l網絡為改進后網絡,可以做到提升檢測的精準速度以及速度,對中小型目標的檢測精度提升效果較好。
本文后續的研究方面可以分為以下兩個方面:一方面。雖然現有的小目標檢測算法已經取得了一些成果,但是檢測的精準度仍不夠高,小目標檢測和旋轉目標檢測方面仍是本次實驗的難點;另一方面,隨著實力工程的應用,模型是否能做到更好地適配硬件也變得尤為重要,也需要進一步的考慮,在考慮如何使模型具有良好檢測性能的同時,降低算法的復雜程度,提高檢測的效率。因此,得到更適合實際應用的新型網絡是我們未來的目標。