歐陽家斌 胡維平 侯會(huì)達(dá)
1(廣西師范大學(xué)電子工程學(xué)院 廣西 桂林 541000) 2(中國(guó)科學(xué)院自動(dòng)化研究所蘇州研究院 江蘇 蘇州 215000)
隨著電子產(chǎn)品的快速發(fā)展,相應(yīng)的電路板也得到很大的發(fā)展[1],電路面板是一種常見的電子類產(chǎn)品的表面,其表面由各類元器件組成,為了使其正常工作,對(duì)電路面板的元件識(shí)別在實(shí)現(xiàn)生產(chǎn)中成品檢驗(yàn)的自動(dòng)化與流水線化方面有著重大意義。近年來,隨著人工智能的飛速發(fā)展,深度學(xué)習(xí)技術(shù)在計(jì)算機(jī)視覺物體檢測(cè)識(shí)別領(lǐng)域展出了很大的成效[2]。在傳統(tǒng)的圖像識(shí)別任務(wù)中,一般由手工設(shè)計(jì)的特征提取器完成特征提取,這導(dǎo)致運(yùn)算量大、速度慢,對(duì)于不規(guī)則、場(chǎng)景復(fù)雜的物體檢測(cè)識(shí)別率低。為了避免人工設(shè)計(jì)特征的繁瑣和不確定性,基于深度學(xué)習(xí)的方法具有準(zhǔn)確率高、速度快、魯棒性好等優(yōu)勢(shì)。
在分析和前人研究的基礎(chǔ)上,本文提出了一種基于ResNet50[3]和EfficientNet[4]融合的backbone網(wǎng)絡(luò)[5]方法。這是一種改進(jìn)的EfficientDet[6]目標(biāo)檢測(cè)網(wǎng)絡(luò)方法,首先將圖片輸入到融合的骨干網(wǎng)提取基本的語義特征,然后通過Bi-FPN[4]加強(qiáng)網(wǎng)絡(luò)特征層獲得更高層的語義信息。在重復(fù)自上而下和自下而上的雙向特征融合后,最后將融合的特征輸入邊界框和類別預(yù)測(cè)框網(wǎng)絡(luò)。實(shí)驗(yàn)表明,本文所采用的方法具有高精度、高速度和良好的魯棒性,對(duì)電路面板的元件的有效檢測(cè)具有重要的意義和應(yīng)用價(jià)值。
ResNet網(wǎng)絡(luò)[3]的起始是一個(gè)常規(guī)比較淺的網(wǎng)絡(luò)上探索加層的過程,其思想在于引進(jìn)一個(gè)深度殘差框架來解決梯度消失的問題,如圖1所示,輸入x值,一個(gè)分支經(jīng)過網(wǎng)絡(luò)堆疊層,另一右側(cè)分支直接shortout(捷徑)操作,再將兩個(gè)分支的結(jié)果進(jìn)行相加操作,通過ResNet子模塊直連的引入,將需要擬合的映射變?yōu)闅埐頕(x):H(x)-x。
圖1 殘差網(wǎng)絡(luò)結(jié)構(gòu)
這相比于直接優(yōu)化潛在映射H(x),優(yōu)化殘差映射F(x)更為容易。圖2為ResNet50的一個(gè)Bottleneck結(jié)構(gòu)[7],1×1的卷積核讓整個(gè)殘差單元更加細(xì)長(zhǎng),且參數(shù)減少,可將通道數(shù)通過下采樣變?yōu)橄嗤?再進(jìn)行相加操作。ResNet50一共有50層,有4個(gè)大卷積組,而這4個(gè)卷積組的Bottleneck數(shù)分別是3、4、6、3。
圖2 ResNet50網(wǎng)絡(luò)的Bottleneck結(jié)構(gòu)
模型縮放的高效性嚴(yán)重地依賴于baseline網(wǎng)絡(luò)[8],如何創(chuàng)造在深度d、寬度w、分辨率r這三個(gè)維度的平衡至關(guān)重要。它們?nèi)叩年P(guān)系如下:
(1)
其約束條件為:
α·β·γ≈2
α≥1,β≥1,γ≥1
(2)
式中:Φ是一個(gè)待定的系數(shù),控制資源的使用量,可以人工設(shè)定,取值范圍在0~7之間,本次實(shí)驗(yàn)取Φ=0。ɑ、β、γ是很小范圍搜索的常量[9],用于決定資源的分配。
EfficientNet-Bo[4]的baseline結(jié)構(gòu)網(wǎng)絡(luò)如表1所示。
表1 EfficientNet的網(wǎng)絡(luò)結(jié)構(gòu)示意
為了增強(qiáng)語義信息,傳統(tǒng)的目標(biāo)檢測(cè)網(wǎng)絡(luò)模型通常只在卷積網(wǎng)絡(luò)的最后一個(gè)特征圖上進(jìn)行后續(xù)操作,導(dǎo)致小物體在特征圖上的有效信息比較少,因此小物體的檢測(cè)性能通常會(huì)急劇下滑。為了解決多尺度問題,可以從卷積神經(jīng)網(wǎng)絡(luò)不同層大小上進(jìn)行語義信息的提取。FPN(Feature Pyramid Network)[10]方法融合了不同層的特征,較好地改善了多尺度的檢測(cè)問題。
如圖3所示,利用自下而上進(jìn)行下采樣卷積,使得圖像變小,直至生產(chǎn)最精細(xì)的特征圖。橫向連接的目的是將上采樣后的高語義特征與淺層的定位細(xì)節(jié)特征進(jìn)行融合,高語義特征經(jīng)過上采樣后,其長(zhǎng)寬與對(duì)應(yīng)的淺層特征相同,因此進(jìn)行逐元素相加操作得到相應(yīng)的新特征。
圖3 普通FPN結(jié)構(gòu)圖
在圖4中,移除一個(gè)輸入邊的節(jié)點(diǎn),在原始輸入到輸出節(jié)點(diǎn)添加額外的邊,保證不增加大量成本的情況下融合更多的特征。FPN融合辦法是對(duì)所有輸入特征平等對(duì)待,不加區(qū)別,但由于不同輸入特征的分辨率不同,故對(duì)輸出特征的貢獻(xiàn)亦不同。為解決該問題,在特征融合的過程中,為每一個(gè)輸入添加額外的權(quán)重,再讓網(wǎng)絡(luò)學(xué)習(xí)每個(gè)輸入特征的重要性。使用快速限制融合方法,公式如下:
(3)
圖4 Bi-FPN結(jié)構(gòu)圖
如P6層的融合方式為:
(4)
骨干特征網(wǎng)是物體檢測(cè)的基礎(chǔ),為網(wǎng)絡(luò)特征提取器,其作用是提取圖片中的信息,供后面網(wǎng)絡(luò)使用。
由于ResNet對(duì)網(wǎng)絡(luò)訓(xùn)練梯度不消失的優(yōu)勢(shì),EfficientNet在深度、寬度、分辨率三者中可以達(dá)到一個(gè)很好的平衡。在分類任務(wù)中,特征融合的識(shí)別準(zhǔn)確率上的優(yōu)勢(shì)相比于單一特征越發(fā)明顯。如圖5所示,首先進(jìn)行input操作,因?yàn)镃1層的特征圖尺寸較大,其含有的語義信息不足,故舍去。P3、P4、P5為自下而上的模塊,使用ResNet50結(jié)構(gòu),特征圖大小減少,通道數(shù)遞增。通過橫向連接得到右邊特征圖使用EfficientNet骨架網(wǎng)絡(luò)提取特征。經(jīng)過backbone網(wǎng)絡(luò)提取特征之后,利用Bi-FPN進(jìn)行更進(jìn)一步的特征提取操作,此結(jié)構(gòu)一共串聯(lián)了3個(gè)Bi-FPN層。最后,輸送到邊框回歸網(wǎng)絡(luò)和分類預(yù)測(cè)網(wǎng)絡(luò)。
圖5 改進(jìn)后的EfficientNet網(wǎng)絡(luò)結(jié)構(gòu)示意圖
實(shí)驗(yàn)平臺(tái)為Windows 10(64 bit)操作系統(tǒng),Intel i7-9700KF CPU 3.6 GHz,NVIDIA GeForce GTX 1650 4 GB,RAM 32 GB,使用PyTorch構(gòu)建網(wǎng)絡(luò)模型。
采集到的圖片分辨率較大,分辨率為5 472×3 648,因硬件資源有限,無法進(jìn)行導(dǎo)入模型運(yùn)算,故將圖片沿著上下左右各包含兩個(gè)元件進(jìn)行裁切,得到分辨率為2 300×1 050的圖片進(jìn)行訓(xùn)練和識(shí)別。圖6所示為包含了四種需要檢測(cè)元件的未裁剪原始圖片,圖7為上下左右方向的四類元件圖。將上下方向包含元件A和元件B的進(jìn)行裁剪,裁剪后的圖片放入文件夾work1,圖8所示為下方向裁剪后得到的單個(gè)樣本圖。將左右方向包含元件C和元件D的進(jìn)行裁剪,裁剪后的圖片放入文件夾work2,圖9所示為左方向裁剪后得到的單個(gè)樣本圖。其中work1的圖片1 615幅,按8∶1∶1對(duì)訓(xùn)練集、驗(yàn)證集、測(cè)試集進(jìn)行劃分,得到訓(xùn)練集1 293幅,驗(yàn)證集161幅,測(cè)試集161幅。處理后的work2圖片共有1 454幅,同理,可得到訓(xùn)練集1 164幅,測(cè)試集和驗(yàn)證集均為145幅。
圖6 采集圖片中單個(gè)樣本示意圖
(a) 元件A (b) 元件B
(c) 元件C (d) 元件D圖7 四個(gè)方向四種元件示意圖
圖8 文件夾work1其中的單個(gè)樣本示意圖
圖9 文件夾work2其中的單個(gè)樣本示意圖
(1) AdamW[11]優(yōu)化算法。學(xué)習(xí)過程的核心算法用于最優(yōu)化求解[12],SGD方法對(duì)于不同的任務(wù),初始值不固定,其依賴于較好的初始學(xué)習(xí)率,容易陷入局部最優(yōu)。Adam優(yōu)化器是一種學(xué)習(xí)率自適應(yīng)的算法,因超參數(shù)選擇不當(dāng)可能會(huì)造成不收斂問題,學(xué)習(xí)率需要從建議的默認(rèn)選擇。AdamW是Adam的進(jìn)化版,為目前訓(xùn)練神經(jīng)網(wǎng)絡(luò)最快的方式,可獲得更快的首先速度。
(2) Focal Loss[13]損失函數(shù)。選擇FL損失函數(shù)主要為了解決正負(fù)樣本不均衡問題,通過參數(shù)的協(xié)調(diào)來控制,可以做到解決簡(jiǎn)單樣本和難樣本的不平衡問題。
(3) 參數(shù)初始化。學(xué)習(xí)率為1e-4;batch_size為3;epoch為60;所有權(quán)重初始化均值為0、標(biāo)準(zhǔn)差為0.01的高斯分布。
為了驗(yàn)證本文提出的backbone(骨干網(wǎng)絡(luò))ResNe50和EfficientNet融合的方法,將work1、work2文件夾的數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)并統(tǒng)計(jì),使用各類元件的檢出、過檢,漏檢和單幅測(cè)試的fps(每秒傳輸?shù)膸瑪?shù))進(jìn)行性能評(píng)價(jià)。
根據(jù)表2的實(shí)驗(yàn)結(jié)果可以看出,元件A和元件D的識(shí)別效果使用未改進(jìn)的backbone網(wǎng)絡(luò)也可以達(dá)到100%準(zhǔn)確識(shí)別,而對(duì)于元件B過檢和漏檢均比改進(jìn)的網(wǎng)絡(luò)多。對(duì)于元件D,融合的特征網(wǎng)絡(luò)可準(zhǔn)確識(shí)別,而未融合的網(wǎng)絡(luò)存在過檢的識(shí)別。
表2 檢出、過檢和漏檢的對(duì)比實(shí)驗(yàn)
對(duì)四類元件的檢出和存在過檢和漏檢的元件進(jìn)行分析,隨機(jī)選取在實(shí)驗(yàn)測(cè)試的圖片,對(duì)兩者網(wǎng)絡(luò)共同的問題,選擇代表性圖片進(jìn)行展示。如圖10所示,元件A和元件C使用兩者網(wǎng)絡(luò)均可檢出,圖10(a)和圖10(e)分別為元件A檢出和元件C檢出選取的單個(gè)樣本示意圖。元件B的檢測(cè)中兩者網(wǎng)絡(luò)都有過檢和漏檢的情況,圖10(b)為檢出,圖10(c)和圖10(d)為漏檢和過檢的圖片中選取的單個(gè)樣本示意圖。在檢測(cè)元件D中,兩者檢測(cè)網(wǎng)絡(luò)算法沒有漏檢情況,但未改進(jìn)的網(wǎng)絡(luò)存在過檢行為,圖10(f)為檢出的示意圖,圖10(g)為未改進(jìn)網(wǎng)絡(luò)過檢的實(shí)驗(yàn)圖片。
(a) 元件A檢出(b) 元件B檢出(c) 元件B漏檢
(d) 元件B過檢 (e) 元件C檢出(f) 元件D檢出
(g) 元件D過檢圖10 各元件識(shí)別情況效果分析圖
對(duì)實(shí)驗(yàn)的分析可發(fā)現(xiàn),電路面板在高光下采集,多數(shù)呈現(xiàn)灰白色,在光照不足條件下,呈現(xiàn)灰暗色。元件A和C較易呈現(xiàn)黑色,與背景面板顏色有一定的差別,元件A和C較于元件B和D大,因此使用兩者網(wǎng)絡(luò)達(dá)到了相同的檢測(cè)效果,均可檢出,無漏檢和過檢現(xiàn)象。而對(duì)于元件B和D,在顏色、紋理、形狀上和背景其中部分相近。如圖10(d)中,該圖像存在于電路面板的凹凸處,形狀和元件B較為相似,容易和面板的其他部位混淆,導(dǎo)致過檢。同理,圖10(g)存在過檢的現(xiàn)象也源于該部分與元件D有著一定的相似性,而造成過檢。圖10(c)所示漏檢的樣本中,元件C在物體的尺寸上比較偏小,在多層池化處理操作后,使得部分有效特征喪失[14],且圖片暗沉,缺少有效的語義信息,因而造成漏檢情況,無法正確檢測(cè)該物體。使用ResNet50融合EfficientNet作為特征網(wǎng)絡(luò),提取多層有效語義信息,加強(qiáng)網(wǎng)絡(luò)特征的提取,對(duì)顏色相近及小物體檢測(cè)有著一定的效果,因此在元件B的漏檢數(shù)和過檢數(shù)得到良好的改善,而對(duì)于元件D可以全部有效地正確識(shí)別。
為了驗(yàn)證網(wǎng)絡(luò)檢測(cè)速度,本文進(jìn)行實(shí)時(shí)性檢測(cè)效果對(duì)比,對(duì)測(cè)試集每一幅圖片測(cè)試后進(jìn)行相加并取平均值,得到表3??梢钥闯?融合的網(wǎng)絡(luò)比單一使用EfficientNet網(wǎng)絡(luò)在速度上平均高出0.559 fps,對(duì)高要求的實(shí)時(shí)檢測(cè)應(yīng)用場(chǎng)景有一定的幫助,有助于快速檢測(cè)物體。
表3 單幅圖片的平均幀率對(duì)比
文中檢測(cè)電路面板器件對(duì)電路的合格生產(chǎn)有著至關(guān)重要的作用,本文以真實(shí)工業(yè)需求出發(fā),采集相關(guān)數(shù)據(jù)集為研究對(duì)象,針對(duì)多尺度物體檢測(cè)的骨干網(wǎng)進(jìn)行特征融合,有效解決了多類型的物體識(shí)別。從實(shí)驗(yàn)結(jié)果來看,相比于改進(jìn)前的網(wǎng)絡(luò)模型,融合網(wǎng)絡(luò)模型在單張檢測(cè)速度平均提高了0.559 fps,元件B的檢出率提高了0.62%,過檢和漏檢均減少了0.62%。元件C檢出率提高了0.69%,沒有出現(xiàn)過檢情況。說明本文提出的方法行之有效。電路面板各元件識(shí)別對(duì)生產(chǎn)工業(yè)有很大的發(fā)展前景,不但可以節(jié)省人力,還可以避免因主觀因素而導(dǎo)致不合格品的流出,大大地提高了硬件的質(zhì)量。元件和瑕疵的檢測(cè)這一研究方向擁有廣闊的發(fā)展空間,在未來,對(duì)智能工業(yè)制造有著重要的意義和深遠(yuǎn)的影響。對(duì)元件的板面臟污,板材壓傷、劃傷、斷裂,損件等缺陷類型有待進(jìn)一步的研究。