羅瑞,何為,鄭雪枚,盧小海
(武昌首義學(xué)院 機(jī)電與自動(dòng)化學(xué)院,湖北武漢,430064)
國外機(jī)器視覺技術(shù)發(fā)展迅猛,在工業(yè)生產(chǎn)中得到了廣泛地應(yīng)用?;谟?jì)算機(jī)視覺的表面檢測(cè)技術(shù)可以概括為:PCB 印刷電路檢測(cè)、SMT 表面貼裝檢測(cè)、產(chǎn)品尺寸檢測(cè)、生物醫(yī)學(xué)檢測(cè)等,從而使產(chǎn)品檢測(cè)的準(zhǔn)確度和生產(chǎn)效率得到了極大的提升[1~2]。
在國外,日本川崎公司于1974 年開發(fā)了用于鍍錫薄板表面缺陷的在線機(jī)器視覺測(cè)試設(shè)備[3]。1983 年,霍尼韋爾公司利用線陣CCD 攝像機(jī)和圖像處理技術(shù),開發(fā)出一套用于精密檢測(cè)鑄件表面缺陷的設(shè)備[4]。1993 年,Liao K.等對(duì)完整的玉米種子和破碎的種子進(jìn)行了檢測(cè);2002 年,N.Aleixos 等人開發(fā)了一種基于計(jì)算機(jī)視覺的柑橘分類方法。在這方面,目前比較成功公司的有PROIMAGE,NI,BOBST,VMT,Hexsight,Cognex,DAC,TOKIMEC,Keyence。
隨著目標(biāo)檢測(cè)技術(shù)的快速發(fā)展,傳統(tǒng)的機(jī)器視覺方法被應(yīng)用于工業(yè)中缺陷檢測(cè)。如王淑青等利用基于YOLOv5 的瓷磚表面缺陷檢測(cè)法[5],以瓷磚為研究對(duì)象,針對(duì)瓷磚表面缺陷檢測(cè)基于YOLOv5 的瓷磚表面缺陷檢測(cè)法。實(shí)驗(yàn)結(jié)果表明:該方法適用于不同類型的缺陷檢測(cè),并且該方法在準(zhǔn)確度和速度上均比傳統(tǒng)的缺陷檢測(cè)優(yōu)秀。由此可得YOLOv5網(wǎng)絡(luò)是十分適用于不同類型的缺陷檢測(cè),并且速度、內(nèi)存、大小都得到了很完美的提升。
基于機(jī)器視覺的注塑杯表面缺陷檢測(cè)系統(tǒng)總共分為兩個(gè)部分組成,分別是硬件和軟件。硬件部分主要包括:電腦、相機(jī)、光源、支架、傳輸帶、圖像采集設(shè)備。軟件部分則是由圖像采集系統(tǒng)和電腦端軟件程序構(gòu)成的圖像處理、缺陷識(shí)別系統(tǒng)。注塑杯表面缺陷系統(tǒng)檢測(cè)的總體模型如圖1 所示。
圖1 圖像采集模塊模型圖
由圖1 可知,當(dāng)傳輸帶進(jìn)行物品傳輸工作時(shí),注塑杯經(jīng)傳感器檢測(cè)信號(hào)通過PLC 傳輸?shù)诫娔X,電腦通過相機(jī)對(duì)物品進(jìn)行抓拍,獲取的圖像通過圖像采集卡再次傳輸?shù)诫娔X上,同時(shí)對(duì)物品進(jìn)行缺陷分析處理,得到直觀的結(jié)果反饋在顯示器上,以此達(dá)到對(duì)注塑杯表面缺陷檢測(cè)的實(shí)際數(shù)據(jù)。最后通過電機(jī)驅(qū)動(dòng)推桿,將產(chǎn)品進(jìn)行分揀,檢測(cè)出的殘次品將進(jìn)行回收處理。圖2 中的流程完成注塑杯的智能識(shí)別和分類功能。
圖2 項(xiàng)目整體流程圖
綜上所述,硬件是實(shí)驗(yàn)的基礎(chǔ),合適的硬件有助于減小實(shí)驗(yàn)中外界因素對(duì)缺陷檢測(cè)的影響。軟件則是實(shí)驗(yàn)的核心,選擇合適的軟件可以使檢測(cè)工作更快速更準(zhǔn)確。
本實(shí)驗(yàn)是以機(jī)器視覺為基礎(chǔ)的檢測(cè)系統(tǒng),同時(shí)電腦處理的圖片信息就是通過相機(jī)獲取的圖像進(jìn)行分析。因此相機(jī)的選擇十分重要,目前工業(yè)用相機(jī)主要基于CCD 或者CMOS芯片的相機(jī)。在圖像處理速度和幀率,CMOS 高于CCD,避免了拖尾和模糊現(xiàn)象[6],并且相比較,CMOS 的成本都比CCD 要低,兼容性、可靠性都優(yōu)于CCD。并且CMOS 在低靈敏度、低電流、低填充等方面進(jìn)行了大量的技術(shù)研究和技術(shù)攻關(guān)[7~8]。
在圖像采集過程中,光學(xué)鏡頭在機(jī)器視覺系統(tǒng)中也是不可或缺的組成部分,它的好壞將對(duì)圖像的質(zhì)量產(chǎn)生重要的影響。因此在選擇光學(xué)鏡頭時(shí)要考慮鏡頭是否能增強(qiáng)圖像的效果,同時(shí)能否適配所選相機(jī)。
光源的選擇同樣重要,合適的光源可以使相機(jī)清晰獲取注塑杯的細(xì)節(jié)與輪廓,配合相機(jī)能清晰展示出檢測(cè)項(xiàng)目的缺陷類型,還可以有效降低噪點(diǎn);因此應(yīng)多方面考慮光源的面積、亮度以及穩(wěn)定性。
本次本人所選擇的圖像處理軟件是Labellmg 軟件,該軟件是我們常用的十分簡(jiǎn)單的標(biāo)注工具,可以幫助我們進(jìn)行目標(biāo)檢測(cè)項(xiàng)目的標(biāo)注工作,它的操作簡(jiǎn)單易上手。
缺陷檢測(cè)的具體流程如圖3 所示,數(shù)值圖像處理的目的是從圖像中提取有用信息數(shù)據(jù),隨后對(duì)圖像進(jìn)行分析處理,以此得到我們需要的一個(gè)結(jié)果。同時(shí)圖像與圖像之間是緊密連接的,只要我們針對(duì)其分析出來了必要信息,后續(xù)的工作也可以事半功倍。
圖3 缺陷檢測(cè)流程圖
Labellmg 軟件對(duì)目標(biāo)圖像進(jìn)行標(biāo)注需要人工進(jìn)行標(biāo)注,于是在采集完圖像后對(duì)目標(biāo)缺陷類型先進(jìn)行了分類區(qū)分??偣卜譃? 個(gè)類型:發(fā)白、黑點(diǎn)、進(jìn)膠點(diǎn)高凸、毛邊、缺膠,隨后在軟件中對(duì)目標(biāo)進(jìn)行缺陷類型標(biāo)注。本次采用YOLOv5 檢測(cè)法,根據(jù)YOLOv5 官方發(fā)布的數(shù)據(jù)代碼可知,該監(jiān)測(cè)網(wǎng)絡(luò)共有四個(gè)版本,依次為YOLOv5x、YOLOv5l、YOLOv5s。其中YOLOv5s 是深度和特征圖寬度最小的網(wǎng)絡(luò)。
3.2.1 實(shí)驗(yàn)環(huán)境搭建
在Anaconda 軟件的命令方塊中, 創(chuàng)建一個(gè)以Python3.8 為基礎(chǔ)的YOLO 環(huán)境,然后鍵入“activate YOLO”的命令,啟動(dòng)YOLO 環(huán)境。使用Pycharm 來開啟YOLOv5 模式,并在之前創(chuàng)建的YOLO 環(huán)境下安裝依賴庫文件。環(huán)境搭配流程圖如圖4 所示。
圖4 環(huán)境搭配流程圖
圖5 訓(xùn)練結(jié)果
3.2.2 建立訓(xùn)練集
首先準(zhǔn)備自己的帶有圖像和標(biāo)簽的數(shù)據(jù)集。對(duì)于標(biāo)記圖像,可以使用Labelme 或CVAT 等工具。然后,應(yīng)該編寫相應(yīng)的Dataset 類,該類可以通過_getitem__方法加載圖像和標(biāo)簽。YOLOX 支持COCO 格式和VOC 格式。而YOLOv5 和YOLOv4 只支持YOLO 形式。目標(biāo)檢測(cè)標(biāo)注形式,目前主流的目標(biāo)檢測(cè)的標(biāo)注形式主要有COCO 形式,VOC形式,和YOLO 形式。為了更好地在不同網(wǎng)絡(luò)上進(jìn)行訓(xùn)練,需要建立一個(gè)數(shù)據(jù)格式轉(zhuǎn)換的程序。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練是一個(gè)非常復(fù)雜的過程,在這過程中,許多變量之間相互影響。在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,更加簡(jiǎn)單方便地加速訓(xùn)練網(wǎng)絡(luò)有許多的技巧。我們需要反復(fù)迭代以調(diào)整最好的參數(shù),以求在最快的時(shí)間訓(xùn)練出最好的網(wǎng)絡(luò)。
3.3.1 模型微調(diào)
由于手工標(biāo)注的數(shù)據(jù)量非常有限,對(duì)于一些稍大的網(wǎng)絡(luò),難以滿足其數(shù)據(jù)量的需求,所以使用預(yù)訓(xùn)練模型進(jìn)行微調(diào)是非常有必要的。大的學(xué)習(xí)率可能會(huì)導(dǎo)致網(wǎng)絡(luò)的災(zāi)難性遺忘。因此通常使用較小的學(xué)習(xí)率進(jìn)行warm up,讓網(wǎng)絡(luò)逐漸適應(yīng)新的數(shù)據(jù)集。這既可以加速網(wǎng)絡(luò)收斂,也可以讓網(wǎng)絡(luò)保留在超大數(shù)據(jù)量的預(yù)訓(xùn)練中學(xué)習(xí)到的經(jīng)驗(yàn)。
3.3.2 超參數(shù)設(shè)置
(1)learning rate:由于預(yù)訓(xùn)練通常是在超大量圖片上進(jìn)行的。為了讓原模型學(xué)到的知識(shí)盡可能地保留,在模型微調(diào)過程當(dāng)中,我們的學(xué)習(xí)率通常是正常訓(xùn)練學(xué)習(xí)率的1/10。
(2)batch size,可承受范圍內(nèi)盡量大,主要是為了迭代速度更快。
(3)warm up steps,lr schedule,epochs 數(shù)量,dropout rate 等,都是對(duì)照網(wǎng)絡(luò)訓(xùn)練時(shí)候的數(shù)據(jù),按照經(jīng)驗(yàn)和觀察調(diào)整。
3.3.3 P-R 曲線
選定的閾值不同分類的結(jié)果也是不同的。Recall 和Presion 的值也不同。畫出兩者閾值變化的曲線圖,如圖6所示??梢钥吹絻烧咧g有一定的反比關(guān)系。
圖6 R-P 曲線關(guān)系圖
3.3.4 測(cè)試結(jié)果
從圖7 可以看出缺陷精準(zhǔn)度有了一定的提升,但是有些細(xì)小方面的問題仍無法檢測(cè)出來或者是檢測(cè)精準(zhǔn)度不高。
圖7 檢測(cè)結(jié)果
本文聚焦于目標(biāo)檢測(cè)任務(wù),介紹了深度學(xué)習(xí)的研究背景以及目標(biāo)檢測(cè)任務(wù)的發(fā)展現(xiàn)狀?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法目前可以分為一階段算法以及二階段算法。本文主要介紹了特征金字塔網(wǎng)絡(luò)(FPN)、路徑聚合網(wǎng)絡(luò)(PANet)和雙向特征融合網(wǎng)絡(luò)(BiFPN)。此外,由于YOLOv5 算法是目前比較好的目標(biāo)及檢測(cè)算法,所以本文從數(shù)據(jù)增強(qiáng)、網(wǎng)絡(luò)結(jié)構(gòu)、損失函數(shù)等方面對(duì)YOLOv5 算法進(jìn)行了具體的闡述。
基于YOLOv5 網(wǎng)絡(luò),本文提出了YOLOv5 網(wǎng)絡(luò)的兩種網(wǎng)絡(luò),并且對(duì)其進(jìn)行了對(duì)比分析。并且實(shí)驗(yàn)部分采用了COCO 數(shù)據(jù)集,并且與其他同類檢測(cè)算法進(jìn)行比較。實(shí)驗(yàn)數(shù)據(jù)證明。YOLOv5s網(wǎng)絡(luò)為基準(zhǔn),YOLOv5l網(wǎng)絡(luò)為改進(jìn)后網(wǎng)絡(luò),可以做到提升檢測(cè)的精準(zhǔn)速度以及速度,對(duì)中小型目標(biāo)的檢測(cè)精度提升效果較好。
本文后續(xù)的研究方面可以分為以下兩個(gè)方面:一方面。雖然現(xiàn)有的小目標(biāo)檢測(cè)算法已經(jīng)取得了一些成果,但是檢測(cè)的精準(zhǔn)度仍不夠高,小目標(biāo)檢測(cè)和旋轉(zhuǎn)目標(biāo)檢測(cè)方面仍是本次實(shí)驗(yàn)的難點(diǎn);另一方面,隨著實(shí)力工程的應(yīng)用,模型是否能做到更好地適配硬件也變得尤為重要,也需要進(jìn)一步的考慮,在考慮如何使模型具有良好檢測(cè)性能的同時(shí),降低算法的復(fù)雜程度,提高檢測(cè)的效率。因此,得到更適合實(shí)際應(yīng)用的新型網(wǎng)絡(luò)是我們未來的目標(biāo)。