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