吳慧君,施玉娟,楊文元
(1.漳州職業(yè)技術(shù)學(xué)院, 福建 漳州 363000;2. 閩南師范大學(xué) 福建省粒計(jì)算及其應(yīng)用重點(diǎn)實(shí)驗(yàn)室,福建 漳州 363000)
隨著電子信息高速發(fā)展,幾乎每種有集成電路的電子設(shè)備都要使用印制電路板(Printed Circuit Boards, PCB)[1].電路板集成規(guī)模越來(lái)越大,生產(chǎn)難度直線上升,出現(xiàn)瑕疵的幾率也大大增加[2].PCB的質(zhì)量直接影響了電子設(shè)備的性能[3].所以,瑕疵檢測(cè)環(huán)節(jié)成為PCB制造業(yè)的關(guān)鍵技術(shù)并得到廣泛應(yīng)用[4].
計(jì)算機(jī)視覺(jué)和人工智能的發(fā)展,對(duì)工業(yè)圖像分析設(shè)備的更新起到了促進(jìn)作用,生產(chǎn)檢測(cè)也逐漸趨于自動(dòng)化[4-5].1996年,Moganti等人[6]聯(lián)合日本東芝公司提出了PCB自動(dòng)光學(xué)檢測(cè)算法.2002年,Heriansyah等人[7]提出了數(shù)學(xué)形態(tài)學(xué)和窗口技術(shù)的圖像分割算法.2014年,Malge等人[8]進(jìn)一步優(yōu)化PCB瑕疵的檢測(cè)、分類和定位.2019年,Huang等人[9]發(fā)布了用于PCB瑕疵檢測(cè)的數(shù)據(jù)集.Ding等人[10]增強(qiáng)數(shù)據(jù)集并實(shí)現(xiàn)相關(guān)檢測(cè)網(wǎng)絡(luò)TDD-Net.采用深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)讀取并分析PCB圖像,可大幅提升自動(dòng)化視覺(jué)檢測(cè)的圖像判讀能力和準(zhǔn)確度[11-12].特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks, FPN)解決了物體檢測(cè)中的多尺度問(wèn)題[13].R-CNN系列檢測(cè)算法[14]先提取目標(biāo),再進(jìn)行分類和回歸,檢測(cè)精度較高.YOLO (You Only Look Once)算法將目標(biāo)的定位與識(shí)別合二為一,直接使用一個(gè)卷積神經(jīng)網(wǎng)絡(luò)輸出邊界框的位置和所屬類別[15-16].YOLO V2提升了定位的準(zhǔn)確度,改善了召回率[17].并用分類與檢測(cè)的聯(lián)合訓(xùn)練方法檢測(cè)超過(guò)9 000個(gè)類別的模型[18].YOLO V3采用多尺度策略對(duì)不同尺度的特征圖進(jìn)行檢測(cè)[19],在小目標(biāo)檢測(cè)方面表現(xiàn)優(yōu)異[20-21].
然而,在PCB瑕疵檢測(cè)的過(guò)程中,通過(guò)分析外觀來(lái)識(shí)別功能缺陷和表面瑕疵是最困難的任務(wù)之一.面對(duì)大量的PCB板,人工目測(cè)已無(wú)法快速完成檢測(cè)任務(wù).采用自動(dòng)光學(xué)檢測(cè)雖然可以提高檢測(cè)速度,但PCB圖像中的瑕疵只占整個(gè)圖像區(qū)域的很小比例,難以辨認(rèn).傳統(tǒng)的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)對(duì)于小目標(biāo)的檢測(cè)精度并不是很高.
針對(duì)上述問(wèn)題,本文提出超分辨率生成式對(duì)抗網(wǎng)絡(luò)小目標(biāo)檢測(cè)算法(Super-Resolution Small Object Detection, SRSOD).利用超分辨率生成式對(duì)抗網(wǎng)絡(luò)提高PCB數(shù)據(jù)集的圖像分辨率,再用深層網(wǎng)絡(luò)的多尺度進(jìn)行小目標(biāo)瑕疵檢測(cè),以提升瑕疵檢測(cè)的精確率.首先,用SRGAN對(duì)電路板數(shù)據(jù)集中的圖像進(jìn)行超分辨率處理,使小目標(biāo)瑕疵放大至4倍,得到標(biāo)注好6類瑕疵位置的超分辨率數(shù)據(jù)集PCB-SR.其次,將PCB-SR輸入檢測(cè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,在不同層級(jí)卷積提取19×19、38×38、76×76三種粒度的特征,將對(duì)應(yīng)的高層特征上采樣后融合低層特征映射,使高層能使用低層的細(xì)粒度特征以及更多語(yǔ)義信息,以取得各尺度下細(xì)致的檢測(cè)結(jié)果.最后,聚類出的9種長(zhǎng)寬比不同的先驗(yàn)框,用以對(duì)特征圖進(jìn)行預(yù)測(cè),調(diào)整邊界框的位置和大小并輸出邊界框坐標(biāo)及對(duì)應(yīng)的分類.實(shí)驗(yàn)表明,在PCB-SR的6個(gè)瑕疵類別中,開(kāi)路和短路類別的精確率達(dá)99.76%和99.03%,有較明顯的提高.缺孔和銅渣類別的精確率達(dá)99.66%和99.63%,有小幅改進(jìn).缺口和毛刺類別略有下降.6個(gè)類別的平均精確率達(dá)到了99.38%,比相關(guān)檢測(cè)網(wǎng)絡(luò)均有提高.
本節(jié)主要介紹SRSOD所涉及的相關(guān)基礎(chǔ)工作,主要包含超分辨率對(duì)抗網(wǎng)絡(luò)和YOLO V3檢測(cè)網(wǎng)絡(luò)兩個(gè)技術(shù).
(1)
SRGAN的判別網(wǎng)絡(luò)定義為D,D和G通過(guò)交互進(jìn)行優(yōu)化,以解決對(duì)抗網(wǎng)絡(luò)中的min-max問(wèn)題.
EILR~PG(ILR)[1-logDθG) (GθG) (ILR))].
(2)
對(duì)抗網(wǎng)絡(luò)中,訓(xùn)練生成模型G,用于欺騙可分辨的判別器D,D在區(qū)分真實(shí)圖像和超分辨率圖像的過(guò)程中得到訓(xùn)練.訓(xùn)練后,G學(xué)會(huì)生成與真實(shí)圖像無(wú)限接近的結(jié)果,讓D難辨真假.如此循環(huán),生成器便能形成接近原始圖片的最優(yōu)解.
YOLO V3設(shè)計(jì)了卷積神經(jīng)網(wǎng)絡(luò)Darknet-53.引入ResNet的殘差模塊,交替使用1×1和3×3的卷積層,加快了檢測(cè)速度.對(duì)精度的提升也有較好的效果.如圖1所示,在Darknet-53網(wǎng)絡(luò)中,輸入圖像在3種尺度下被分成不同大小的柵格.如果圖片中待檢測(cè)物體的中心點(diǎn)落在某個(gè)柵格內(nèi),則該柵格負(fù)責(zé)預(yù)測(cè)該物體.每個(gè)尺度的特征圖使用三個(gè)尺寸的先驗(yàn)框預(yù)測(cè)邊界框,預(yù)測(cè)的邊界框坐標(biāo)根據(jù)先驗(yàn)框的位置和大小進(jìn)行調(diào)整.每個(gè)預(yù)測(cè)框均包含四個(gè)坐標(biāo)信息.
圖1 Darknet-53 網(wǎng)絡(luò)結(jié)構(gòu)Figure 1 Darknet-53 network structure
bx=σ(tx)+cx,
(3)
by=σ(ty)+cy,
(4)
bw=pwetw,
(5)
bh=pheh,
(6)
其中:tx和ty是先驗(yàn)框的中心點(diǎn)相對(duì)于該單元格左上角位置的偏移量,tw和th是寬高縮放比,表示模型的預(yù)測(cè)輸出,單元格的坐標(biāo)是cx和cy.先驗(yàn)框的預(yù)測(cè)的寬度和高度則為pw和ph.
損失函數(shù)是機(jī)器學(xué)習(xí)里最關(guān)鍵的因素,用來(lái)表現(xiàn)預(yù)測(cè)與實(shí)際數(shù)據(jù)的誤差程度,是衡量訓(xùn)練模型泛化能力的重要指標(biāo).通過(guò)對(duì)損失函數(shù)的定義、優(yōu)化,在不過(guò)擬合的情況下盡可能地降低損失值.本部分著重分析和重構(gòu)PCB小目標(biāo)放大和檢測(cè)過(guò)程中的損失函數(shù).
利用生成式對(duì)抗網(wǎng)絡(luò)訓(xùn)練模型,生成網(wǎng)絡(luò)對(duì)原始圖片加高斯噪聲生成低分辨率圖片,判別網(wǎng)絡(luò)將其與原始圖片對(duì)比并判別.以此處理數(shù)據(jù)集圖片,形成10 668張2 400×2 400的4倍分辨率圖片.對(duì)PCB數(shù)據(jù)集進(jìn)行超分辨率處理的過(guò)程如圖2(A)所示.
圖2 SRSOD對(duì)PCB瑕疵的檢測(cè)過(guò)程Figure 2 SRSOD's detection process for PCB defects
感知損失函數(shù)lSR的定義對(duì)生成網(wǎng)絡(luò)的性能至關(guān)重要.通常lSR是基于均方誤差(Mean Squared Error,MSE)函數(shù)建模的.SRSOD對(duì)損失函數(shù)進(jìn)行了改進(jìn),分為內(nèi)容損失的加權(quán)和對(duì)抗損失分量.
(7)
2.1.1 內(nèi)容損失函數(shù)
當(dāng)高信噪比時(shí),MSE的最優(yōu)化問(wèn)題通常缺乏高頻內(nèi)容,導(dǎo)致紋理過(guò)于光滑,視覺(jué)感知不盡如人意.因此,采取ReLU作為激活函數(shù),基于VGG19網(wǎng)絡(luò)的預(yù)訓(xùn)練模型來(lái)定義VGG損失.
(8)
式(8)結(jié)合φi,j計(jì)算了重構(gòu)圖特征GθG(ILR)x,y和原圖特征(IHR)x,y之間的歐式距離.其中:Wi,j和Hi,j表示HR和LR的特征圖維度.i,j表示第i個(gè)最大池化層和激活后的第j層.
2.1.2 對(duì)抗損失函數(shù)
在對(duì)抗中,生成網(wǎng)絡(luò)G學(xué)會(huì)生成逼真的圖像,用來(lái)欺騙判別網(wǎng)絡(luò)D,D訓(xùn)練得越好,G生成的圖像就越接近最優(yōu).
(9)
其中:DθD(GθG(ILR))是重建圖像的概率,GθG(ILR)是生成的高分辨率圖像.
檢測(cè)網(wǎng)絡(luò)的損失函數(shù)由坐標(biāo)損失Lcoord、分類損失Lclass和置信度損失Lconf3個(gè)部分組成.
檢測(cè)網(wǎng)絡(luò)分三路多尺度融合,尺度1是19×19,輸出相對(duì)于原始圖像32倍的下采樣,這一路適合檢測(cè)較大尺寸的物體.尺度2是38×38,從79層開(kāi)始做上采樣,然后和61層融合,再做正常卷積到91到94層,輸出相對(duì)于原始圖像16倍下采樣,這一路適合檢測(cè)中等尺寸的物體.尺度3是76×76,從91層開(kāi)始做上采樣,和36層融合,正常卷積到106層.輸出相對(duì)于原始圖像是8倍下采樣,適用于檢測(cè)小尺寸物體.PCB瑕疵數(shù)據(jù)集小尺寸目標(biāo),適用于尺度3.PCB數(shù)據(jù)集瑕疵檢測(cè)過(guò)程如圖2(B)所示.
2.2.1 坐標(biāo)損失
坐標(biāo)損失Lcoord包含中心坐標(biāo)損失Lcentre和邊界框?qū)捀邠p失Lwh,圖片劃分為v×v個(gè)柵格,每個(gè)柵格有s個(gè)邊界框.
(10)
(11)
因此,坐標(biāo)損失函數(shù)分別計(jì)算中心坐標(biāo)誤差和寬高誤差,關(guān)乎算法的檢測(cè)交并比.
2.2.2 分類損失
對(duì)象條件類別概率數(shù)組的長(zhǎng)度為模型檢測(cè)的類別種類數(shù)量,它表示當(dāng)邊界框認(rèn)為當(dāng)前柵格中有對(duì)象時(shí),該對(duì)象是所有類別中每種類別的概率.
(12)
2.2.3 置信度損失
置信度包含先驗(yàn)框中是否有物體的置信程度和先驗(yàn)框?qū)⒄麄€(gè)物體的所有特征都包括進(jìn)來(lái)的置信程度.損失函數(shù)分為兩部分:存在對(duì)象和不存在對(duì)象的邊界框置信度誤差.
(13)
(14)
本節(jié)主要介紹實(shí)驗(yàn)環(huán)境以及參數(shù)設(shè)置,描述實(shí)驗(yàn)數(shù)據(jù)集的圖片和瑕疵詳情,分析超分辨率實(shí)驗(yàn)輸出的數(shù)據(jù)集對(duì)實(shí)驗(yàn)結(jié)果的影響,剖析SRSOD與相關(guān)檢測(cè)網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果,解析實(shí)驗(yàn)中導(dǎo)致AP、mAP等數(shù)據(jù)產(chǎn)生變化的客觀原因.
本實(shí)驗(yàn)的環(huán)境配置如表1所示.
表1 實(shí)驗(yàn)環(huán)境配置Table 1 Experimental environment configuration
SRSOD實(shí)驗(yàn)中,批量大小batch設(shè)為64;分組參數(shù)subdivisions設(shè)為32;圖像寬高設(shè)為608×608;最大迭代次數(shù)max_batches設(shè)為20 000次,每訓(xùn)練1000次保存一次模型.filter設(shè)為3×(6+5)=33,其中:3為尺度、6為類別、5表示4個(gè)位置加置信度.并設(shè)置訓(xùn)練集、測(cè)試集和驗(yàn)證集的比例為6∶2∶2.
基于PCB裸板的數(shù)據(jù)集PCB-693[9]由693幅原始方向和手動(dòng)旋轉(zhuǎn)一定角度的圖片組成.模板包含6種瑕疵類型.每幅PCB圖片有3~5個(gè)瑕疵,為每個(gè)瑕疵提供相應(yīng)的邊界框標(biāo)注數(shù)據(jù).圖3展示了數(shù)據(jù)集中6類瑕疵的范例.
圖3 數(shù)據(jù)集瑕疵范例Figure 3 Examples of defects in the data set
由于數(shù)據(jù)集PCB-693較小,Runwei Ding[10]等人采用數(shù)據(jù)增強(qiáng)技術(shù)對(duì)圖像進(jìn)行增強(qiáng)后,將圖像裁剪成600×600子圖像,得到含有10 668幅圖像的數(shù)據(jù)集PCB-E.其中:每幅圖片都有1~4個(gè)同類別瑕疵及相應(yīng)的標(biāo)注框.PCB-E的更多細(xì)節(jié)如表2所示.
表2 增強(qiáng)數(shù)據(jù)集PCB-ETable 2 Enhanced data set PCB-E
實(shí)驗(yàn)通過(guò)生成式對(duì)抗網(wǎng)絡(luò)將PCB-E中10 668張600×600的圖片放大4倍像素至2 400×2 400.得到超分辨率數(shù)據(jù)集PCB-SR.圖4展示了6個(gè)瑕疵類別超分辨率前后的視覺(jué)效果.
圖4 瑕疵部位對(duì)比范例圖(左原圖,右SR)Figure 4 Comparison of the defects (left picture is the original,right picture is SR)
由此可見(jiàn),為了提高圖像分辨率,SRSOD在訓(xùn)練過(guò)程中,超分辨率生成式對(duì)抗網(wǎng)絡(luò)會(huì)嘗試為圖片補(bǔ)充一些額外的像素,以取得判別網(wǎng)絡(luò)的信任.因此,這個(gè)過(guò)程產(chǎn)生了一些額外的紋路,使得生成的超分辨率圖片對(duì)比度和線條感更強(qiáng).這些額外的像素能使開(kāi)路和短路類別的瑕疵變得清晰,更易于辨認(rèn);缺孔和銅渣類別的瑕疵肉眼看并無(wú)明顯變化;而缺口和毛刺類別的瑕疵受此影響,瑕疵部位邊界變得模糊,視覺(jué)效果反而差一些.
將PCB-SR輸入SRSOD的檢測(cè)模塊進(jìn)行訓(xùn)練并檢測(cè).SRSOD檢測(cè)范例如圖5所示.兩個(gè)檢測(cè)范例中各設(shè)置了10處瑕疵.圖5(A)箭頭所指位置有1個(gè)缺口瑕疵未檢出.由于該瑕疵尺寸小,邊界模糊,而且該電路板圖片對(duì)比度較弱,故而發(fā)生了漏檢.
圖5 SRSOD檢測(cè)結(jié)果范例Figure 5 Example of the SRSOD detect results
實(shí)驗(yàn)中,SRSOD的測(cè)試集中共有2 134張圖像,包含了分屬6個(gè)類別共4 349處瑕疵.其中:大部分瑕疵部位的尺寸都非常小,肉眼難以辨別.SRSOD的多尺度檢測(cè)模塊檢出了4 325處,漏檢24處,召回率達(dá)99.44%;有87處發(fā)生類別錯(cuò)檢,mAP達(dá)99.38%.SRSOD與FPN、Faster R-CNN、TDD-Net以及YOLOv3的AP對(duì)比如圖6示.6種檢測(cè)網(wǎng)絡(luò)的總體檢測(cè)精度都超過(guò)了90%.
圖6 與相關(guān)算法的精確率對(duì)比圖Figure 6 Accuracy comparison with related algorithms
其中:FPN是一種適用于多尺度檢測(cè)的金字塔網(wǎng)絡(luò),但由于PCB圖像顏色比較單一,瑕疵容易與背景混淆.所以,F(xiàn)PN在6個(gè)類別上的AP相對(duì)較低,其中:毛刺類別沒(méi)有超過(guò)90%.Faster R-CNN用VGG16網(wǎng)絡(luò)提取特征,通過(guò)softmax和proposcal函數(shù)判斷分類并精確定位,檢測(cè)速度快.在PCB瑕疵檢測(cè)中精確度比較高.TDD-Net是針對(duì)數(shù)據(jù)集PCB-E所設(shè)計(jì)的檢測(cè)網(wǎng)絡(luò),結(jié)合了FPN和Faster R-CNN的特點(diǎn),也有效提高了AP和mAP.YOLO V3采用多尺度策略,適用于小目標(biāo)檢測(cè).缺口和毛刺兩個(gè)類別的AP在圖中6個(gè)相關(guān)檢測(cè)網(wǎng)絡(luò)中取得最佳.
由于SRSOD不僅對(duì)數(shù)據(jù)集圖片通過(guò)超分辨率網(wǎng)絡(luò)放大至4倍,而且采用高層特征上采樣再融合低層特征的多尺度檢測(cè)策略,在3個(gè)尺度的融合特征圖上獨(dú)立做檢測(cè).在6個(gè)類別中,SRSOD有4個(gè)類別AP值最優(yōu),其中開(kāi)路類別的優(yōu)勢(shì)最明顯.所有類別的mAP也在相關(guān)檢測(cè)網(wǎng)絡(luò)中取得最優(yōu).
在6個(gè)瑕疵類別的檢測(cè)中,SRSOD的檢測(cè)情況與數(shù)據(jù)集PCB-SR的視覺(jué)效果基本一致.經(jīng)過(guò)超分辨率生成式對(duì)抗網(wǎng)絡(luò)處理,瑕疵部位變清晰的類別,漏檢錯(cuò)檢現(xiàn)象均有所改善,AP值相應(yīng)得到提高.
基于YOLO V3在除了SRSOD以外的相關(guān)檢測(cè)網(wǎng)絡(luò)中取得最優(yōu)成果,下面詳細(xì)分析YOLO V3和SRSOD的實(shí)驗(yàn)數(shù)據(jù)及其變化的原因.
檢測(cè)實(shí)驗(yàn)中,測(cè)試集占數(shù)據(jù)集的20%,含瑕疵數(shù)4 349處.如表3所示,SRSOD檢出瑕疵數(shù)為4 325,漏檢24處,比YOLO V3多檢出33處瑕疵.召回率達(dá)99.44%.此外,SRSOD發(fā)生類別錯(cuò)檢89處,比YOLO V3少20處,mAP達(dá)99.38%.在平均交并比方面,SRSOD比YOLO V3提高了1.88%.這是因?yàn)椋篠RSOD不僅對(duì)數(shù)據(jù)集圖像通過(guò)超分辨率處理,放大瑕疵部位,避免在深層卷積網(wǎng)絡(luò)中小目標(biāo)特征丟失,而且通過(guò)類別損失函數(shù)提高檢測(cè)類別的準(zhǔn)確性,通過(guò)坐標(biāo)損失使得標(biāo)注框的位置更接近真實(shí)大小,進(jìn)而有效提高了平均交并比.
表3 SRSOD與 YOLO V3 瑕疵檢測(cè)結(jié)果對(duì)比Table 3 Comparison of defect detection results between SRSOD and YOLO V3
由于開(kāi)路和短路兩類瑕疵都是線條型的,經(jīng)過(guò)超分辨率網(wǎng)絡(luò)處理后,不僅瑕疵部位尺寸變大,對(duì)比度和線型也更強(qiáng).有利于SRSOD的檢測(cè)模塊中的特征提取和高層的上采樣工作.因此,SRSOD中開(kāi)路和短路的AP值達(dá)99.76%和99.03%.分別比YOLO V3提高1.06%和2.1%.
缺孔和銅渣兩個(gè)類別的圖片經(jīng)過(guò)超分辨率對(duì)抗網(wǎng)絡(luò)處理后,瑕疵部位變化不明顯,對(duì)檢測(cè)過(guò)程影響不大.所以,相比YOLO V3,AP的變化比較細(xì)微,缺孔類的AP為99.66%,銅渣類的AP為99.63%,只有小幅提高.
而缺口和毛刺兩類瑕疵原本就與底板顏色相近,視覺(jué)效果極為相似.圖片經(jīng)過(guò)超分辨率網(wǎng)絡(luò)處理后,瑕疵部位反而產(chǎn)生了一些額外的紋路,致使這兩類瑕疵更容易混淆成背景,對(duì)檢測(cè)過(guò)程產(chǎn)生了干擾.導(dǎo)致漏檢的幾率有所增加.所以,相比YOLO V3,缺口類和毛刺類的精確率分別降低了0.54%和0.33%.
綜上所述,在SRSOD中,由于加入了超分辨率生成式對(duì)抗網(wǎng)絡(luò),增加了數(shù)據(jù)集圖片的分辨率,使得瑕疵位置對(duì)比度更強(qiáng),便于特征的提取和采樣.在PCB-SR的6個(gè)瑕疵類別中,開(kāi)路和短路的檢測(cè)指標(biāo)得到了一定的改善,缺孔和銅渣取得小幅提高,缺口和毛刺有少許下降.6個(gè)類別平均召回率提高了0.26%,mAP提高了0.46%.
實(shí)驗(yàn)表明,SRSOD借鑒了殘差網(wǎng)絡(luò)結(jié)構(gòu),形成更深的網(wǎng)絡(luò)層次,添加多尺度檢測(cè),提升了mAP及小物體檢測(cè)效果.并加入了超分辨率網(wǎng)絡(luò)對(duì)圖片預(yù)處理,即使圖片清晰度不夠,也能提高圖像分辨率,確保電路板瑕疵小目標(biāo)檢測(cè)的精確率.
本文提出了超分辨率生成式對(duì)抗網(wǎng)絡(luò)的電路板瑕疵小目標(biāo)檢測(cè)算法,解決了PCB瑕疵尺寸小,難以檢測(cè)的問(wèn)題.但其中毛刺和缺口類別的檢測(cè)精度不佳.下一步考慮對(duì)訓(xùn)練數(shù)據(jù)集圖片再次調(diào)整和增強(qiáng),進(jìn)一步改進(jìn)超分辨率算法及檢測(cè)細(xì)節(jié)與算法的檢測(cè)精度.