常 穎,常大俊
(1.吉林建筑科技學(xué)院 計(jì)算機(jī)科學(xué)與工程學(xué)院, 長春 130000; 2.長春建筑學(xué)院 電氣信息學(xué)院, 長春 130000)
隨著工業(yè)4.0與我國“智能制造2025”計(jì)劃的不斷深入發(fā)展,電子產(chǎn)品焊接質(zhì)量的自動(dòng)識別、智能檢出也成為熱門話題,因?yàn)閷更c(diǎn)質(zhì)量的檢測是保證產(chǎn)品質(zhì)量的重要環(huán)節(jié)[1]。智能檢出技術(shù)的有效應(yīng)用離不開機(jī)器視覺,而通過機(jī)器視覺判斷的核心是圖像識別處理算法[2]。電子產(chǎn)品焊點(diǎn)的焊接形式各異,焊接程度要求標(biāo)準(zhǔn)也不同,傳統(tǒng)的識別算法已難滿足日益增長的測試需求,開發(fā)具有更好識別能力的算法具有重要意義。
為了實(shí)現(xiàn)對印刷板電路(printed circuit board,PCB)[3]中的焊接異常進(jìn)行識別,有效地機(jī)器視覺配合具有自適應(yīng)、自學(xué)習(xí)的識別算法成為了當(dāng)前的研究熱點(diǎn)。尤其針對密度大、元件小的產(chǎn)品批量監(jiān)測需求,研究開發(fā)快速準(zhǔn)確、具有一定適應(yīng)性的圖像識別算法是十分必要的?,F(xiàn)有PCB焊接問題主要包括橋連、小球、虛焊、焊珠、空洞等問題[4-6],傳統(tǒng)的機(jī)器視覺檢測往往是通過將拍攝照片與標(biāo)準(zhǔn)照片進(jìn)行對比完成的。這種方法對于缺焊、空洞的識別率非常高,幾乎不存在漏檢或誤檢,但對錫量過大或少錫的情況識別效果很差,漏檢率高,同時(shí),當(dāng)焊點(diǎn)不均或者邊界欠清時(shí)還會出現(xiàn)檢測類型有誤的現(xiàn)象。這些問題的產(chǎn)生主要是因?yàn)樽R別算法不具備學(xué)習(xí)能力,或者自適應(yīng)性不強(qiáng)。
為了提高該類情況的檢出效果,有多種方法被嘗試,如反向傳播(back propagation,BP)算法[7]、k均值近鄰法[8]、支持向量機(jī)(support vector machine,SVM)[9]、深度學(xué)習(xí)法[10]等。BP算法思路成熟但收斂速度慢,容易產(chǎn)生局部極值[11];k均值近鄰法簡單易實(shí)現(xiàn)、但無學(xué)習(xí)能力,拍攝圖片效果稍有差異就會造成識別精度大幅下降[12]; SVM具有學(xué)習(xí)指向性,能夠從一定程度上解決圖片差異的問題,但面對當(dāng)前焊接異常類型的不斷增多,大樣本的訓(xùn)練導(dǎo)致其識別速度大幅下降[13]。相比之下,深度學(xué)習(xí)識別能力強(qiáng)、速度快,更適合智能制造的需求。本文中提出了一種基于深度學(xué)習(xí)的快速焊點(diǎn)異常識別算法,其具有低誤檢率、低漏檢率、高速響應(yīng)的特點(diǎn),可應(yīng)用于智能制造中的快速焊接質(zhì)量檢測。
在焊接質(zhì)量檢測過程中,希望獲得低誤檢率和低漏檢率。誤檢率(false detection rate,FDR)指錯(cuò)誤判斷采集圖像,將正常焊點(diǎn)誤判為異常焊點(diǎn)的比率。漏檢率(missed detection rate,MDR)指將有焊接質(zhì)量問題的焊點(diǎn)誤判為正常焊點(diǎn),從而漏掉檢出問題焊點(diǎn)的比率。系統(tǒng)由X射線源、機(jī)械控制轉(zhuǎn)臺、數(shù)據(jù)處理系統(tǒng)、像增強(qiáng)器、CCD以及圖像采集卡構(gòu)成。測試系統(tǒng)及其采集獲取得到原始圖像如圖1所示,圖中矩陣表示原始圖像中每個(gè)焊接點(diǎn)Sij對應(yīng)的矩陣位置。
Fig.1 Diagram of the system structure
為了實(shí)現(xiàn)快速焊點(diǎn)質(zhì)量檢測,需要對原始圖像進(jìn)行預(yù)處理,即圖像增強(qiáng)、均衡化處理以及平滑補(bǔ)償,從而突出待測圖像特征,降低焊點(diǎn)異常提取的難度。由于相機(jī)對環(huán)境光強(qiáng)變化的動(dòng)態(tài)適應(yīng)性有限,故首先對照明變化導(dǎo)致的成像質(zhì)量差異進(jìn)行預(yù)處理,利用圖像增強(qiáng)技術(shù)調(diào)節(jié)原始圖像亮度范圍,本系統(tǒng)中采用了直方圖均衡配合灰度拉伸算法完成圖像灰度調(diào)節(jié)。算法步驟如下。
將原始圖像中的灰度直方圖均勻化分布,使每個(gè)灰度級對應(yīng)的像素?cái)?shù)一致,進(jìn)而增加其動(dòng)態(tài)范圍。設(shè)圖像灰度級為橫坐標(biāo),灰度級像素出現(xiàn)頻率為縱坐標(biāo),灰度級∈[0,L-1],則灰度直方圖函數(shù)可表示為:
h(rk)=nk,(k∈[0,L-1])
(1)
式中,rk為第k個(gè)灰度級,nk為灰度級rk的像素?cái)?shù),L表示圖像的最大灰度值。
通過灰度拉伸算法對圖像中每個(gè)點(diǎn)的灰度值進(jìn)行拉伸處理。設(shè)f(x,y)為原始圖像,其灰度級∈[l1,l2]。為了得到[l3,l4]范圍內(nèi)圖像函數(shù)g(x,y),需要進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換函數(shù)可表示為
T=(l4-l3)(l2-l1)-1(r-l1)+l3
(2)
式中,r表示圖像像素點(diǎn)的灰度值。由此可見,經(jīng)過拉伸函數(shù)處理后,圖像中所有像素點(diǎn)的灰度值均完成灰度變換,圖像對比度得到提高,實(shí)現(xiàn)圖像增強(qiáng)。
為了降低焊點(diǎn)圖像的不均勻性,抑制雜散光等的影響,選取平滑算法優(yōu)化圖像質(zhì)量,提高圖像信噪比。采用中值濾波的方式對所有像素對應(yīng)值進(jìn)行排序處理,對所選圖像區(qū)域所有像素點(diǎn)灰度值取中值Qmid,其圖像矩陣可寫為:
(3)
式中,(i,j)為算法選擇區(qū)域中濾波區(qū)域?qū)?yīng)的像素位置,(i,j)在圖像邊界區(qū)域中,C表示圖像區(qū)域。由于中心像素選取的灰度值是根據(jù)原始像素及其相鄰像素的灰度值統(tǒng)計(jì)分類獲得的,故本濾波算法可用于非線性圖像處理。利用此中值濾波算法可以剔除誤差較大的孤立像素,對圖像全局影響不大,同時(shí)大大降低離散噪聲對圖像的影響。
深度學(xué)習(xí)(deep learning,DL)[14]是學(xué)習(xí)樣本數(shù)據(jù)的內(nèi)在規(guī)律及表示層次的一種數(shù)據(jù)處理方法,屬于機(jī)器學(xué)習(xí)算法的一個(gè)方向,重點(diǎn)應(yīng)用于圖像識別方面。其中,深度學(xué)習(xí)算法中具有深度結(jié)構(gòu)反饋運(yùn)算特性的有卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[15-16],可對原始圖像樣本進(jìn)行數(shù)據(jù)處理。其結(jié)構(gòu)由輸入層、卷積層、匯集層、連接層和邏輯回歸層構(gòu)成。系統(tǒng)通過卷積核實(shí)現(xiàn)卷積操作,指示符為長度、寬度及深度,其卷積神經(jīng)網(wǎng)絡(luò)傳遞函數(shù)的表達(dá)式有:
S(i,j)=(I*K)(i,j)=
(4)
式中,I為圖像矩陣,*表示卷積,K(i-x,j-y)為卷積核。x和y為i和j像素點(diǎn)對應(yīng)的圖像位置,x和y的集合為焊點(diǎn)區(qū)域。將相鄰像素點(diǎn)與卷積核對應(yīng)點(diǎn)相乘再求和,獲得該點(diǎn)的像素值,該操作遍歷每個(gè)像素點(diǎn),從而得到卷積神經(jīng)網(wǎng)絡(luò)的前向傳播。
卷積神經(jīng)網(wǎng)絡(luò)屬于前饋式神經(jīng)網(wǎng)絡(luò),訓(xùn)練樣本不需要太大,最重要的是其對圖像畸變、模式變化具有較高的容錯(cuò)能力,所以對大量焊接圖像不同缺陷類型具有較好的兼容性。該網(wǎng)絡(luò)結(jié)構(gòu)由輸入層、卷積層、降維層、連接層以及輸出層構(gòu)成。焊接圖像進(jìn)入輸出層后與核函數(shù)進(jìn)行卷積,由激勵(lì)函數(shù)輸出神經(jīng)元,實(shí)現(xiàn)特征圖像的獲取并進(jìn)入下一層。設(shè)第n卷積層的第j個(gè)特征為:
(5)
式中,f()為激勵(lì)函數(shù),Nj為上層特征圖像集合,ki,j,n為卷積核權(quán)值,bj,n為和偏置。獲取特征后導(dǎo)入降維層減小運(yùn)算量。則第n降維層第j個(gè)特征圖有:
Yj,n=f(ηg(Yj,n-1)+bj,n)
(6)
式中,g()為降維函數(shù),η為積偏置。
因?yàn)楹附赢惓D像特征本身具有多樣性,每種缺陷雖然存在相似性,但尺寸面形仍具有較大差異,所以需要具有數(shù)據(jù)選擇的自適應(yīng)性,由此提出了通過對數(shù)據(jù)自組織映射實(shí)現(xiàn)對卷積神經(jīng)網(wǎng)絡(luò)的改進(jìn)。
設(shè)輸入數(shù)據(jù)樣本為xi,p(p=1,2…,m,i為分量),輸出為Cij,則輸出方程有:
(7)
式中,σ( )為單調(diào)函數(shù),ωj為第j個(gè)神經(jīng)元的權(quán)值。利用赫布規(guī)則化簡可得:
(8)
式中,t是時(shí)間。
由此得到輸出層相當(dāng)于具有中心分布的樣本數(shù)據(jù),然后利用訓(xùn)練網(wǎng)絡(luò)與學(xué)習(xí)網(wǎng)絡(luò)配合實(shí)現(xiàn)數(shù)據(jù)分類的加速收斂。
在改進(jìn)型卷積神經(jīng)網(wǎng)絡(luò)框架基礎(chǔ)上構(gòu)建焊接質(zhì)量識別算法的模型,其中,損失函數(shù)利用Cross Entropy實(shí)現(xiàn)。在本算法中利用反饋數(shù)據(jù)自適應(yīng)的方式完成,從而依據(jù)每次的測試結(jié)果進(jìn)行參量調(diào)整?;谧越M織映射的卷積神經(jīng)網(wǎng)絡(luò)算法參量設(shè)置與實(shí)現(xiàn)步驟如下:(1)在訓(xùn)練網(wǎng)絡(luò)中設(shè)卷積神經(jīng)網(wǎng)絡(luò)的核函數(shù)、激活函數(shù)等,確定學(xué)習(xí)速率初值并構(gòu)建鄰域初值;(2)將標(biāo)記樣本導(dǎo)入訓(xùn)練網(wǎng)絡(luò),由(5)式和(6)式獲取特征樣本;(3)在鄰域權(quán)值競爭基礎(chǔ)上完成異常圖像特征點(diǎn)調(diào)整,并將獲得的新特征點(diǎn)加入樣本標(biāo)記;(4)將訓(xùn)練網(wǎng)絡(luò)導(dǎo)入學(xué)習(xí)網(wǎng)絡(luò),迭代尋找最優(yōu)值。
其工作流程如圖2所示。
Fig.2 Flow chart of an improved CNN model
實(shí)驗(yàn)中選用UNIQ-3000型CCD相機(jī)完成焊機(jī)圖像采集,共采集5000張,其中包括焊接良好和焊接異常兩大類,焊接異常中分為小球、橋連、虛焊、少錫、偏球5種類型。3000張焊接圖像構(gòu)成算法模型訓(xùn)練集,1000張焊接圖像構(gòu)成模型驗(yàn)證集,1000張焊接圖像用于測試?;谏疃葘W(xué)習(xí)的焊接異常識別算法在Ten-sorflow環(huán)境下采用Python編譯實(shí)現(xiàn)。
為了檢驗(yàn)對比基于深度學(xué)習(xí)的焊接異常圖像識別算法的效果,對其漏檢率與誤檢率量化分析。與傳統(tǒng)的canny邊緣提取算法進(jìn)行對比,從而考察本算法在邊緣特征信息保留方面的性能;同時(shí),與k均值聚類算法進(jìn)行對比,從而考察本算法在特性分類方面的性能。同時(shí)采用3種方法針對5種典型焊接異常進(jìn)行識別檢測,3種方法獲得的處理結(jié)果如圖3所示。
Fig.3 Image recognition result of welding abnormality
由圖像處理結(jié)果可知,canny算法的邊界處理效果最好,清晰度高、對比度強(qiáng),有利于識別橋連和小球類型的焊接異常(例如橋連缺陷S32和S33、小球缺陷S23),但焊點(diǎn)中的分布信息被明顯削弱,造成對虛焊、偏球、少錫類型的焊接異常識別能力降低。k均值算法的邊界處理效果雖然清晰度不如canny算法好,但采用反饋型閾值解析仍可以獲得很好的邊緣檢測精度。另外,k均值算法獲得的焊點(diǎn)圖像仍保留了同灰度級的差異,可有效地識別偏球缺陷(例如偏球缺陷S12),但對虛焊和少錫的特征分類效果并不明顯。本算法中邊界處理效果與k均值算法相近,同時(shí),焊點(diǎn)特征保留更為明顯,不但有表征偏球缺陷的同灰度級差異,還有梯度變化信息,可以對虛焊和少錫問題進(jìn)行閾值量化分析(例如虛焊缺陷S24,少錫缺陷S22)。對驗(yàn)證集的檢測結(jié)果進(jìn)行統(tǒng)計(jì)分析,獲得3種方法漏檢率與誤檢率數(shù)據(jù)分布如表1所示。
由測試結(jié)果可知,3種算法對橋連的判斷都能達(dá)到100%識別,即誤檢率和漏檢率均為0,分析認(rèn)為橋連的圖像范圍大,易識別;相比而言,小球缺陷的檢測對邊界特征信息要求更高,canny算法的邊界處理效果更好,其誤檢率和漏檢率均低于k均值算法和本算法;對于偏球缺陷而言,其不但涉及邊界分布還需考慮焊點(diǎn)灰度分布特性,canny算法的識別效果最差,k均值算法優(yōu)于canny算法,本算法效果最好,誤檢率與漏檢率相比canny算法減小了一個(gè)數(shù)量級;對于虛焊和少錫缺陷而言,都需要對焊點(diǎn)的灰度分布梯度進(jìn)行解析,傳統(tǒng)的兩種算法測試效果相近,本算法識別精度有所下降,但總體水平仍優(yōu)于前兩種方法。實(shí)驗(yàn)結(jié)果表明,相比傳統(tǒng)圖像分割算法,本算法可以更好地獲得各種焊接缺陷圖像,從而為焊接質(zhì)量分析提供了更好的支撐。
Table 1 Comparison of missed detection rate and false detection rate of three methods
算法驗(yàn)證后采用未知缺陷分布情況的焊接圖片進(jìn)行測試,將1000張測試圖片分別輸入3種算法后迭代運(yùn)算,分類后完成數(shù)據(jù)統(tǒng)計(jì)分析,對誤檢率、漏檢率和召回率進(jìn)行統(tǒng)計(jì)。為了對圖像測試數(shù)據(jù)進(jìn)行綜合評價(jià),在1000張測試圖像中等比例插入了5種不同缺陷形式的焊接圖像。統(tǒng)計(jì)結(jié)果顯示,canny算法在測試集中的誤檢率為7.8%、漏檢率為9.7%、召回率為90.75%;k均值算法在測試集中的誤檢率為7.4%、漏檢率為8.3%、召回率為92.15%;本算法在測試集中的誤檢率為1.6%、漏檢率為1.7%、召回率為98.45%。由此測試集統(tǒng)計(jì)數(shù)據(jù)可知,3種算法的識別能力與驗(yàn)證集中各測試結(jié)果的加權(quán)平均值相近,說明基本可以表征各算法的實(shí)際測試效果,也驗(yàn)證了本算法具有更好的焊接異常檢測識別性能。
針對傳統(tǒng)焊接異常識別算法對不同焊點(diǎn)缺陷識別能力差異大的問題,提出了一種基于深度學(xué)習(xí)的焊接異常識別算法,利用卷積神經(jīng)網(wǎng)絡(luò)完成自適應(yīng)矩估計(jì)計(jì)算,并結(jié)合5000幅焊接圖像進(jìn)行訓(xùn)練測試。實(shí)驗(yàn)結(jié)果顯示,本算法在5種常見焊接異常情況下均能很好地完成焊點(diǎn)缺陷的識別,驗(yàn)證了其在快速電路板檢測應(yīng)用領(lǐng)域具有一定的應(yīng)用價(jià)值。