盧麒仰,徐超林,楊 育,伍梓帆,趙洪琛,劉宏展
(華南師范大學(xué)信息光電子科技學(xué)院,廣東 廣州 510631)
作為電子工業(yè)的重要部件,PCB 幾乎作用于每種電子設(shè)備,它可以代替復(fù)雜的布線(xiàn),實(shí)現(xiàn)電路中各元件之間的電氣連接。面對(duì)PCB 較大的生產(chǎn)量和精細(xì)的結(jié)構(gòu),人工檢測(cè)暴露出低效率,低準(zhǔn)確率和低缺陷檢測(cè)率的問(wèn)題[1-2]。為了應(yīng)對(duì)PCB 生產(chǎn)量和市場(chǎng)對(duì)PCB 的需求的提高,目前已有許多學(xué)者對(duì)其進(jìn)行了研究[3-5]。
在PCB 圖像的檢測(cè)方面,傳統(tǒng)方法主要是圖像處理統(tǒng)計(jì)方法。陳壽宏等[6]基于多特征的SVM 多分類(lèi)方法檢測(cè)PCB 的焊點(diǎn),對(duì)采集到焊點(diǎn)圖像的形狀和紋理特征利用SVM 中最優(yōu)的核函數(shù)進(jìn)行檢測(cè),再利用基于HOG 的SVM 多分類(lèi)算法進(jìn)行二次檢測(cè)得到結(jié)果。李廣宏等[7]采用紅外圖像和可見(jiàn)光圖像結(jié)合的方法,獲得兼具元器件位置和工作屬性等信息的圖像,其檢測(cè)速度快于只用可見(jiàn)光圖像的方法,但是存在外界環(huán)境對(duì)紅外圖像溫漂的影響。李孟歆等[8]通過(guò)優(yōu)選邊緣檢測(cè)算子,采用基于熵的全局多閾值圖像分割算法提取焊點(diǎn)邊緣特征,再利用粗糙集對(duì)提取得到的形狀特征進(jìn)行約簡(jiǎn)和特征組合。但是這類(lèi)傳統(tǒng)方法具有一定的局限性,無(wú)法滿(mǎn)足復(fù)雜情況下的檢測(cè)。
如今隨著計(jì)算機(jī)科學(xué)發(fā)展,PCB 圖像的檢測(cè)多使用深度學(xué)習(xí)的方法,整體的效率和精確度大為上升。在深度學(xué)習(xí)領(lǐng)域中,兩階段目標(biāo)檢測(cè)算法有基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)R-CNN 算法、快速基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)Fast R-CNN[9]算法和更快的基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)Faster R-CNN[10]算法等,單階段目標(biāo)檢測(cè)算法有快速目標(biāo)檢測(cè)算法YOLO[11]和SSD[12]。而在實(shí)際應(yīng)用中,伍濟(jì)鋼等[13]在YOLOv4網(wǎng)絡(luò)的基礎(chǔ)上改進(jìn)二分K-Means 聚類(lèi)結(jié)合交并比(Intersection over Union,IoU)損失函數(shù)確定錨框,并且引用MobileNetV3 作為特征提取網(wǎng)絡(luò),提升對(duì)PCB 小目標(biāo)缺陷的檢測(cè)性能。瞿棟等[14]采用基于殘差學(xué)習(xí)結(jié)構(gòu)的方法,允許原始輸入信息直接傳到后面的層中,并使該層的神經(jīng)網(wǎng)絡(luò)可以只學(xué)習(xí)上一個(gè)網(wǎng)絡(luò)輸出的殘差。減少了由于網(wǎng)絡(luò)深度加深而導(dǎo)致的準(zhǔn)確度飽和對(duì)網(wǎng)絡(luò)檢測(cè)效果進(jìn)一步提升的影響。通過(guò)何國(guó)忠等人[15]的基于卷積神經(jīng)網(wǎng)絡(luò)的PCB 板缺陷檢測(cè)的研究可知,YOLO 系列算法的檢測(cè)精度和檢測(cè)速度相比其他算法具有較大優(yōu)勢(shì)。但YOLO 系列網(wǎng)絡(luò)在檢測(cè)微小缺陷時(shí)仍存在檢測(cè)正確率低的情況。
針對(duì)YOLO 系列網(wǎng)絡(luò)存在對(duì)微小缺陷檢測(cè)效果較差的問(wèn)題,本文提出對(duì)YOLOv5 網(wǎng)絡(luò)進(jìn)行修改,采取FPN 算法,增加了針對(duì)小目標(biāo)的檢測(cè)層,將底層和上層的缺陷特征進(jìn)行融合,以提高其對(duì)小缺陷的檢測(cè)能力。同時(shí),本文通過(guò)圖像處理技術(shù),分割提取出待測(cè)板的缺陷ROI 圖片,提高缺陷尺寸在整張圖片中的占比,再對(duì)缺陷ROI 圖片進(jìn)行檢測(cè),將檢測(cè)到的缺陷信息回歸原圖。通過(guò)放大缺陷占比和減少檢測(cè)次數(shù),提高了檢測(cè)正確率和檢測(cè)效率。由此能滿(mǎn)足工業(yè)生產(chǎn)對(duì)PCB 的要求。
基于改進(jìn)YOLOv5 網(wǎng)絡(luò)的PCB 裸板缺陷識(shí)別算法流程如圖1 所示。
圖1 基于YOLOv5 的PCB 裸板缺陷識(shí)別算法流程圖
YOLO 系列是非常經(jīng)典的one-stage 目標(biāo)檢測(cè)算法,它將物體檢測(cè)問(wèn)題視為一個(gè)回歸問(wèn)題,用一個(gè)卷積神經(jīng)網(wǎng)絡(luò)完成檢測(cè)。相比于其他網(wǎng)絡(luò),它具有更加優(yōu)秀的檢測(cè)性能,可以更快地進(jìn)行實(shí)時(shí)檢測(cè)。并且在框架上使用Pytorch 框架,相對(duì)于YOLOv4 采用的Darknet 框架,YOLOv5 模型體積縮小了,因而更容易部署在硬件側(cè),且更容易投入生產(chǎn)。其速度在高達(dá)140 FPS 的同時(shí),仍保持了較高的正確率和穩(wěn)定性。
PCB 板缺陷具有缺陷區(qū)域面積小的特點(diǎn),對(duì)于這種小目標(biāo)的檢測(cè),YOLOv5 表現(xiàn)出了一定的局限性,即復(fù)雜環(huán)境下的小目標(biāo)物體檢測(cè)易受背景信息的影響,特征提取網(wǎng)絡(luò)能夠提取的語(yǔ)義信息較為有限。在目標(biāo)檢測(cè)特征提取過(guò)程中,由于經(jīng)過(guò)了較少的卷積運(yùn)算,淺層特征圖含分辨率較高的特征形狀信息,可提升邊界框回歸識(shí)別精度,但其語(yǔ)義信息較少,易受噪音點(diǎn)的干擾;經(jīng)過(guò)多次卷積計(jì)算得到的深層特征圖含較強(qiáng)的語(yǔ)義信息,但其分辨率較低,細(xì)節(jié)表達(dá)能力較差。引入特征融合可以將淺層的形狀信息補(bǔ)充進(jìn)深層的語(yǔ)義信息中,提高深層信息的綜合度進(jìn)而提升對(duì)小目標(biāo)形狀的檢測(cè)能力。
本文首先在YOLOv5 網(wǎng)絡(luò)的基礎(chǔ)上增加了多個(gè)小目標(biāo)檢測(cè)層,即每個(gè)尺度的檢測(cè)層均配備額外的小目標(biāo)檢測(cè)層來(lái)提取網(wǎng)絡(luò)所提取的特征。在網(wǎng)絡(luò)結(jié)構(gòu)分布上,各個(gè)小目標(biāo)檢測(cè)層同樣具有不同深度層次的分布,將輸出進(jìn)行通道混合,重新等量分配到各個(gè)檢測(cè)模塊中。同時(shí)本文采用晚融合中的FPN 算法,將深層信息上采樣,與淺層信息逐元素地相加,達(dá)到提升預(yù)測(cè)正確率的效果。并且在每個(gè)融合后的特征層上單獨(dú)進(jìn)行預(yù)測(cè),從而構(gòu)建了尺寸不同的特征混合金字塔結(jié)構(gòu)。YOLOv5 網(wǎng)絡(luò)中,本身具有三層FPN 檢測(cè)結(jié)構(gòu),其大小分別為20×20、40×40 以及80×80,但其只適合檢測(cè)大尺度的缺陷,在檢測(cè)小缺陷圖像時(shí)易丟失信息。因此本文在其基礎(chǔ)上進(jìn)行改進(jìn),添加了一層大小為160×160 的FPN 檢測(cè)結(jié)構(gòu),使其更適合于檢測(cè)小型多形態(tài)目標(biāo),其結(jié)構(gòu)示意圖如圖2 所示。
圖2 修改后的FPN 結(jié)構(gòu)圖
具體操作為:首先在模型的第17 層后,轉(zhuǎn)為對(duì)特征圖進(jìn)行上采樣等處理,使得特征圖繼續(xù)擴(kuò)大,使其包含更多的小缺陷特征。在第20 層時(shí),將獲取到的大小為160×160 的深層特征圖與骨干網(wǎng)絡(luò)中第2層的淺層特征圖進(jìn)行concat 融合,再通過(guò)1×1 卷積核將特征信息混合得到新的特征信息,該部分特征信息同時(shí)包括了形狀特征和語(yǔ)義特征,能夠反映缺陷區(qū)域的整體形態(tài)。在輸出通道混組后,等效于每個(gè)輸出具有了3 個(gè)尺度的綜合信息,相較于之前的特征具有更高的全局特征綜合度,補(bǔ)充了小目標(biāo)的淺層語(yǔ)義信息,構(gòu)成了FPN 檢測(cè)結(jié)構(gòu)。通過(guò)增加小目標(biāo)檢測(cè)層和特征融合次數(shù),提高了網(wǎng)絡(luò)模型對(duì)小目標(biāo)的檢測(cè)能力。
微小目標(biāo)檢測(cè)效果不好主要是因?yàn)槠涑叽鐔?wèn)題,在復(fù)雜環(huán)境下的小目標(biāo)物體檢測(cè)易受背景信息的影響,特征提取網(wǎng)絡(luò)能夠提取的語(yǔ)義信息十分有限。網(wǎng)絡(luò)輸入圖像尺寸為32N×32N,在YOLOv5 中進(jìn)行五次下采樣,得到的三張圖像特征圖尺寸分別為N×N,2N×2N,4N×4N。其中最大的4N×4N負(fù)責(zé)小目標(biāo)的檢測(cè),感受野為大小。因此若待檢測(cè)目標(biāo)的尺寸小于8 像素時(shí),網(wǎng)絡(luò)檢測(cè)會(huì)遺漏目標(biāo)的特征信息,造成誤檢或漏檢。因此采用分割的方式,將分割后的圖像輸入目標(biāo)檢測(cè)網(wǎng)絡(luò)中,可以極大地降低最小可檢測(cè)目標(biāo)像素值。傳統(tǒng)方法主要通過(guò)對(duì)圖像進(jìn)行滑塊式分割,但采用全局滑塊式分割的方式,會(huì)進(jìn)行較多無(wú)效檢測(cè),大大增加檢測(cè)時(shí)間。因此本文在網(wǎng)絡(luò)檢測(cè)中利用圖像處理方法分割出ROI 區(qū)域,提高檢測(cè)效率。其步驟與示意圖如圖3 所示。
圖3 缺陷ROI 分割流程實(shí)例圖
本文通過(guò)模版匹配方法,首先通過(guò)比較標(biāo)準(zhǔn)板與待測(cè)板,通過(guò)圖像異或方法對(duì)預(yù)處理后的二值圖片進(jìn)行比較,得到缺陷位置。圖像異或是把兩幅圖像對(duì)應(yīng)位置的像素值進(jìn)行異或,定義標(biāo)準(zhǔn)板為A,待測(cè)板為B,若兩圖中同一位置像素值相同,則將其設(shè)置為背景色,若不同,則將其突出出來(lái),即
上述運(yùn)算后,得到兩幅圖的差異,由于在圖像采集過(guò)程中,圖像很難嚴(yán)格重合,因此在進(jìn)行異或操作之后,往往存在像素級(jí)的微小差異,對(duì)缺陷位置的確定存在干擾,需要對(duì)異或后的二值圖像進(jìn)行去噪。本文中采用中值濾波濾除噪聲,中值濾波是一種非線(xiàn)性濾波方式,將圖像中一點(diǎn)的值用該點(diǎn)的一個(gè)鄰域中各點(diǎn)值的中值代替,讓周?chē)南袼刂到咏鎸?shí)值,從而消除孤立的噪聲點(diǎn),設(shè){xij(i,j)∈I2}為圖像中各個(gè)像素點(diǎn)的灰度值大小,F(xiàn)為設(shè)定的濾波窗口,其大小為9×9。
濾除噪聲之后即可清晰地得到圖像缺陷位置。如圖4 所示,白色像素區(qū)域即為缺陷位置。
圖4 異或操作后的PCB 圖
圖5 截取后的PCB 圖
圖7 網(wǎng)絡(luò)檢測(cè)輸出的PCB 圖
根據(jù)上述步驟中得到的缺陷位置,將其坐標(biāo)返回到原圖中,并以其為中心,將缺陷及其周?chē)膱D像信息提取出來(lái),作為缺陷圖片,送入網(wǎng)絡(luò)模型中進(jìn)行識(shí)別。當(dāng)缺陷位于圖像邊緣時(shí),提取出的缺陷圖片的質(zhì)量難以保證,故本文提取圖片背景色將圖像進(jìn)行擴(kuò)充。
通過(guò)上述步驟,能夠精確地得到以缺陷為中心,大小可自定義的缺陷ROI 圖片,利用網(wǎng)絡(luò)模型對(duì)其進(jìn)行檢測(cè)可以得到相比直接檢測(cè)原始圖像更為精確的結(jié)果。
本實(shí)驗(yàn)采用包含RTX2080 顯卡、64G 內(nèi)存的工作站。
在實(shí)際工業(yè)生產(chǎn)中,可采用如圖所示的圖像采集系統(tǒng)獲得PCB 的圖片。其中傳送帶勻速運(yùn)動(dòng),四臺(tái)高亮度LED 在PCB 上方沿PCB 寬度固定,保證了PCB 受光照均勻,整體亮度一致,當(dāng)PCB 待測(cè)板運(yùn)動(dòng)到指定位置時(shí),由CCD 攝取PCB 平面圖經(jīng)PC的圖像采集卡采集。隨著傳送帶的運(yùn)動(dòng),即得到隨傳送帶運(yùn)動(dòng)的多張PCB 的高清平面圖。而傳送帶的具體移動(dòng)速度取決于具體工業(yè)生產(chǎn)的程序。
印刷電路板瑕疵數(shù)據(jù)集是一個(gè)公共的合成PCB 數(shù)據(jù)集,它由北京大學(xué)發(fā)布,其中包含1 386 張圖像以及6 種缺陷(短路、斷路、毛刺、漏孔,鼠嚙、銅渣),用于檢測(cè)、分類(lèi)和配準(zhǔn)任務(wù)。因此本文選用該數(shù)據(jù)集來(lái)模擬實(shí)際生產(chǎn)的PCB 板。
為驗(yàn)證切割缺陷周?chē)鷪D像以進(jìn)行檢測(cè)的方法對(duì)系統(tǒng)識(shí)別準(zhǔn)確率的影響,本實(shí)驗(yàn)通過(guò)使用改進(jìn)后的YOLOv5 訓(xùn)練框架進(jìn)行訓(xùn)練,為擴(kuò)大數(shù)據(jù)集容量,對(duì)數(shù)據(jù)集復(fù)制一份到十份,訓(xùn)練完成后,得到訓(xùn)練模型。利用該模型,對(duì)缺陷ROI 圖片進(jìn)行檢測(cè),得出缺陷種類(lèi)和相應(yīng)的檢測(cè)準(zhǔn)確率。
本文將數(shù)據(jù)集和標(biāo)簽文件分為訓(xùn)練集、驗(yàn)證集、測(cè)試集,并分別將其放到進(jìn)行操作的文件夾內(nèi),然后對(duì)訓(xùn)練模型的參數(shù)進(jìn)行配置,訓(xùn)練次數(shù)Epochs 設(shè)為1 000 次;批次大小Batch size 是指訓(xùn)練時(shí)一次性輸入網(wǎng)絡(luò)的圖片數(shù)目,將其設(shè)為16;提高輸入分辨率會(huì)提高小目標(biāo)檢測(cè)精度,所以輸入分辨率img-size值設(shè)置為640。參數(shù)設(shè)置完成后,開(kāi)始訓(xùn)練,在訓(xùn)練結(jié)束后,得到檢測(cè)模型。將待測(cè)PCB 圖輸入模型,即可進(jìn)行識(shí)別,得到PCB 的缺陷情況。
若將待測(cè)PCB 圖直接送入YOLOv5 網(wǎng)絡(luò)進(jìn)行檢測(cè),則檢測(cè)效果較差,有較多的漏判和誤判現(xiàn)象,因此本文首先分割出缺陷ROI 圖片再送入改進(jìn)的YOLOv5 網(wǎng)絡(luò),由于增加了小目標(biāo)檢測(cè)層和FPN 算法,改進(jìn)的YOLOv5 網(wǎng)絡(luò)對(duì)其識(shí)別效果更好,用這種方式得到檢測(cè)結(jié)果的漏判和誤判率明顯下降。
本文中為評(píng)估模型的檢測(cè)性能引入以下評(píng)估指標(biāo)對(duì)模型進(jìn)行測(cè)試分析:Precision,Recall,AP 及mAP,各個(gè)指標(biāo)的計(jì)算公式如下:
將數(shù)據(jù)集中的大量PCB 平面圖輸入進(jìn)行訓(xùn)練及驗(yàn)證,驗(yàn)證得到的結(jié)果見(jiàn)表1。
表1 剪切圖和原圖缺陷驗(yàn)證的效果比較 單位:%
從實(shí)驗(yàn)結(jié)果可見(jiàn),設(shè)計(jì)的優(yōu)化方案相比于優(yōu)化前缺陷漏判率降低了1.91%;檢測(cè)精確度提高了1.89%;召回率提高了1.83%;平均檢測(cè)精度均值提高了1.82%。由于本文對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了改進(jìn),提升了對(duì)于圖像中小缺陷的檢測(cè)能力,同時(shí)由于是對(duì)圖像的的缺陷ROI 區(qū)域進(jìn)行檢測(cè),可以放大缺陷的尺度,進(jìn)而得到更好的檢測(cè)結(jié)果。
實(shí)驗(yàn)中選取9 種不同種類(lèi)的PCB 板,通過(guò)訓(xùn)練得到的權(quán)重對(duì)其進(jìn)行實(shí)際檢測(cè),得到該權(quán)重對(duì)不同種類(lèi)缺陷的識(shí)別正確率,檢測(cè)得到的結(jié)果見(jiàn)表2。
表2 不同種類(lèi)缺陷識(shí)別的效果比較
從實(shí)驗(yàn)結(jié)果可見(jiàn),本文的的優(yōu)化方案相比于優(yōu)化前各種缺陷的檢測(cè)率均有所提升,其中對(duì)于毛刺,其檢測(cè)精確度提升程度高達(dá)20.77%。由此可見(jiàn),經(jīng)過(guò)異或操作得到ROI 缺陷圖片,輸入改進(jìn)后的網(wǎng)絡(luò)進(jìn)行檢測(cè),相較于直接檢測(cè),對(duì)于微小缺陷的檢測(cè)率有較大提升。
本文針對(duì)PCB 制造過(guò)程中產(chǎn)生的缺陷提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的檢測(cè)模型。該模型重點(diǎn)解決了對(duì)微小缺陷檢測(cè)不準(zhǔn)確的問(wèn)題。該模型首先通過(guò)額外增加小目標(biāo)檢測(cè)層獲取更多小目標(biāo)特征信息,再使用FPN 算法逐層融合YOLOv5 網(wǎng)絡(luò)中的淺層形狀信息和深層語(yǔ)義信息,補(bǔ)充了語(yǔ)義信息,提高了其綜合度。此外,通過(guò)圖像分割增大了缺陷在圖像中的尺度占比,更好地獲取缺陷信息,進(jìn)而提升了對(duì)小目標(biāo)的檢測(cè)能力。根據(jù)測(cè)試,本文所設(shè)計(jì)的優(yōu)化YOLOv5相比優(yōu)化前對(duì)于小目標(biāo)的檢測(cè)能力顯著提升??蓪?duì)未來(lái)PCB 更加精細(xì)的研究提供技術(shù)支持。