鄧仕超, 張延儒, 高興宇, 劉 平, 黃海蘭, 楊家欣
(桂林電子科技大學(xué)廣西制造系統(tǒng)與先進(jìn)制造技術(shù)重點(diǎn)實(shí)驗(yàn)室,桂林 541004)
微型電機(jī)轉(zhuǎn)子是微型電機(jī)中旋轉(zhuǎn)的部分,電流通過轉(zhuǎn)子線圈產(chǎn)生交變磁場,將電能轉(zhuǎn)換為機(jī)械能,是微型電機(jī)的核心零件。轉(zhuǎn)子焊點(diǎn)是連接轉(zhuǎn)子線圈和電極的重要結(jié)點(diǎn),位于電極的尾端,用于連通線圈和電極之間的回路,它的檢測質(zhì)量嚴(yán)重影響著轉(zhuǎn)子的性能。由于焊點(diǎn)非常微小,肉眼無法分辨焊點(diǎn)的優(yōu)劣。傳統(tǒng)的焊點(diǎn)質(zhì)量檢測采取的是光學(xué)放大和人眼結(jié)合的檢測方法,依靠有經(jīng)驗(yàn)的工人憑借長期積累的經(jīng)驗(yàn)來判斷焊點(diǎn)的好壞。不僅工人的培訓(xùn)需要花費(fèi)大量的時間和金錢,而且人工檢測效率低,存在主觀性,對生產(chǎn)效率和產(chǎn)品質(zhì)量有著嚴(yán)重影響,長時間的工作也會對工作人員的身心健康造成巨大傷害。
隨著圖像處理技術(shù)和機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,越來越多的研究人員運(yùn)用相關(guān)技術(shù)針對焊點(diǎn)檢測問題做出了一些研究。比如:劉美菊等[1]提出了改進(jìn)的K-近鄰算法將電路板焊點(diǎn)檢測的準(zhǔn)確率提高到了96%;吳福培等[2]利用單目視覺三維檢測的方法使印制電路板(PCB)焊點(diǎn)的測量精度達(dá)到了0.12 mm;謝達(dá)奇等[3]針對汽車車身焊點(diǎn)檢測提出了MeanShift聚類圓擬合算法,檢測精度達(dá)到了95%;陳壽宏等[4]為提高PCB板中元器件焊點(diǎn)的缺陷檢測正確率,提出了多特征向量的支持向量機(jī)的分類方法,準(zhǔn)確率達(dá)到了98.46%;錢佳等[5]提出了模糊C均值聚類與松弛約束支持向量機(jī)聯(lián)用的識別方法,對人工焊點(diǎn)缺陷識別具有很好的效果。雖然上述研究人員對焊點(diǎn)檢測都有深入的研究,取得了不錯的研究成果,但是都是針對PCB焊點(diǎn)或者人工焊焊點(diǎn)檢測,少有學(xué)者針對微型電機(jī)轉(zhuǎn)子焊點(diǎn)檢測做相關(guān)的研究。
轉(zhuǎn)子焊點(diǎn)圖像屬于非常復(fù)雜的圖像,不同種類的缺陷相似度非常高,極其難以分辨,人工設(shè)計(jì)的特征描述比較依賴個人經(jīng)驗(yàn),主觀意識對轉(zhuǎn)子焊點(diǎn)的特征描述影響較大,分類器的自適應(yīng)能力不強(qiáng),其分類檢測效果很難保證[6]。針對以上問題,本文利用大量數(shù)據(jù),提出了基于殘差神經(jīng)網(wǎng)絡(luò)的焊點(diǎn)檢測方法,實(shí)現(xiàn)焊點(diǎn)圖像的分類,并取得了較好的效果。
殘差網(wǎng)絡(luò)模型(ResNet)是目前最主流的深度卷積神經(jīng)網(wǎng)絡(luò)之一,它于2015年被He等[7]所提出,同年在ImageNet比賽的分類識別任務(wù)上獲得了冠軍,因?yàn)閺?qiáng)大的分類識別性能,通常應(yīng)用在圖像檢測、圖像分割、目標(biāo)跟蹤等領(lǐng)域[8]。ResNet用到了兩種映射方法:一種是恒等映射(identity mapping),另外一種是殘差映射(residual mapping),如圖1所示。恒等映射即圖1中那條折線,直接將輸入作為輸出的一部分,它可以使得網(wǎng)絡(luò)隨著深度增加而不會出現(xiàn)退化現(xiàn)象;殘差映射為圖1中經(jīng)過卷積函數(shù)conv、激活函數(shù)relu得到的輸出f(x)那部分結(jié)構(gòu),它會在不引入額外參數(shù)和計(jì)算復(fù)雜度的情況下,將殘差塊中的數(shù)層映射擬合成另一個映射。h(x)為整個殘差網(wǎng)絡(luò)模型的輸出,這樣就可以保證在不出現(xiàn)退化的情況下,模型依舊保留深層網(wǎng)絡(luò)的高性能。
圖1 ResNet映射圖Fig.1 ResNet maping
ResNet50總共包含了50層,將網(wǎng)絡(luò)中的50層主要分成5部分,分別是conv1、conv2_x、conv3_x、conv4_x、conv5_x。其結(jié)構(gòu)如圖2所示。conv1是由7×7×64(長×寬×輸出通道),步長為2的卷積操作組成的,經(jīng)過conv1這部分卷積操作之后特征圖的長寬由原來的224縮小為112,通道數(shù)變成了64通道。conv2_x是由一個復(fù)合結(jié)構(gòu)組成,首先是一個3×3,步長為2的最大值池化,接著是3個相同的卷積結(jié)構(gòu)塊構(gòu)建而成,這個結(jié)構(gòu)塊是由1×1×64,3×3×64,1×1×256三個卷積核組成,卷積操做之后,特征圖長寬縮小為56。conv3_x則是直接由4個相同的卷積結(jié)構(gòu)塊構(gòu)成,每個結(jié)構(gòu)塊包含1×1×128,3×3×128,1×1×512三個卷積核,這一步將conv3_x的56縮小為28。conv4_x的結(jié)構(gòu)與conv3_x相似,該結(jié)構(gòu)是由6個相同的卷積結(jié)構(gòu)塊組成,每個結(jié)構(gòu)塊的三個卷積核分別是1×1×256,3×3×256,1×1×1 024,特征圖大小又減小了一半。conv5_x是在前面幾層的基礎(chǔ)上,增加了卷積核的個數(shù),這一部分是由3個相同的卷積結(jié)構(gòu)塊構(gòu)成的,每個結(jié)構(gòu)塊是由1×1×512卷積,3×3×512卷積,1×1×2 048卷積組成,特征圖變成了7。最后一層是分類層,由三部分組成,首先是一個全局平均池化,接著是一個輸出通道為4的全連接層,隨后是一個softmax層。
圖2 ResNet50模型結(jié)構(gòu)圖Fig.2 ResNet50 model structure diagram
殘差神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練需要大量的標(biāo)記數(shù)據(jù)和強(qiáng)大的運(yùn)算能力[9],直接用轉(zhuǎn)子焊點(diǎn)圖像重新訓(xùn)練,需要制作大量數(shù)據(jù)集,這需要花費(fèi)大量的訓(xùn)練時間,造成時間和精力的浪費(fèi)。適當(dāng)?shù)木W(wǎng)絡(luò)預(yù)訓(xùn)練可以加速模型的收斂,減少訓(xùn)練的時間和提高模型識別率。ImageNet擁有千萬級的數(shù)據(jù)量,共有約2×104個物體類別,訓(xùn)練出來的模型具有很好的抗干擾能力和泛化能力,因而可將ImageNet訓(xùn)練的網(wǎng)絡(luò)模型遷移到轉(zhuǎn)子焊點(diǎn)圖像上,再提取高維深度特征進(jìn)行識別,提高模型的識別準(zhǔn)確率。利用ImageNet數(shù)據(jù)集對ResNet網(wǎng)絡(luò)模型進(jìn)行預(yù)訓(xùn)練,選擇的超參數(shù)如表1所示。
表1 超參數(shù)選擇
將預(yù)訓(xùn)練模型的全連接層修改為4分類,將預(yù)訓(xùn)練模型的權(quán)重參數(shù)導(dǎo)入ResNet網(wǎng)絡(luò)模型,凍結(jié)前10層的權(quán)重參數(shù),將轉(zhuǎn)子焊點(diǎn)數(shù)據(jù)集導(dǎo)入網(wǎng)絡(luò)中,進(jìn)行迭代訓(xùn)練,得到新的適合轉(zhuǎn)子焊點(diǎn)檢的網(wǎng)絡(luò)模型,將待檢測的焊點(diǎn)圖像輸入新的模型中,提取焊點(diǎn)特征,最后的到分類結(jié)果。模型預(yù)訓(xùn)練結(jié)構(gòu)圖如圖3所示。
圖3 模型預(yù)訓(xùn)練結(jié)構(gòu)圖Fig.3 Pre-training model structure diagram
殘差神經(jīng)網(wǎng)絡(luò)訓(xùn)練是一個復(fù)雜的過程,不斷的前向傳播、反向傳播和更新迭代,由于ResNet網(wǎng)絡(luò)層數(shù)比較深,前幾層的微小變化,會在后面幾層逐漸放大,甚至于在最后形成梯度彌散,嚴(yán)重的影響網(wǎng)絡(luò)的訓(xùn)練速度和檢測效果。因此,在卷積層之后,激活函數(shù)之前對特征圖進(jìn)行適當(dāng)批量歸一化,可以減少特征圖的變換范圍,減少計(jì)算量,加速網(wǎng)絡(luò)的訓(xùn)練速度,避免梯度彌散和提高模型整體的識別性能。批量歸一化的步驟如下。
(1)輸入批量數(shù)據(jù)x1,x2,…,xm。
其中,m是批量數(shù)據(jù)的長度;c是一個極小的常數(shù)。
轉(zhuǎn)子焊點(diǎn)位于微型電機(jī)的上端,在整個微型電機(jī)中占據(jù)很小的區(qū)域,轉(zhuǎn)子焊點(diǎn)形態(tài)多樣,肉眼極難分辨,待檢測轉(zhuǎn)子的焊點(diǎn)高為2.2 mm、寬為1.7 mm,如圖4所示。
圖4 焊點(diǎn)圖像Fig.4 Solder joint image
轉(zhuǎn)子焊點(diǎn)類別主要分為焊點(diǎn)閉合異常、焊點(diǎn)下垂、焊點(diǎn)歪斜和焊點(diǎn)正常共四類,通過一段時間采集到了51個焊點(diǎn)異常數(shù)據(jù),119個焊點(diǎn)下垂數(shù)據(jù),76個焊點(diǎn)歪斜數(shù)據(jù)和154個焊點(diǎn)正常的數(shù)據(jù)。顯然400個數(shù)據(jù)對于殘差神經(jīng)網(wǎng)絡(luò)來說是不夠的,數(shù)據(jù)集過少,且每個類別數(shù)據(jù)不均衡,模型很容易出現(xiàn)過擬合現(xiàn)象,并且識別率不會太高,因此對數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)是必要的。通過對原始圖像進(jìn)行旋轉(zhuǎn)、改變亮度、雙邊濾波、增加噪聲、剪裁等方式,以焊點(diǎn)閉合異常為例,如圖5所示,將各類數(shù)據(jù)集擴(kuò)增到300,使數(shù)據(jù)集基本滿足要求,并使各類數(shù)據(jù)均衡。將數(shù)據(jù)集分為的4/5作為訓(xùn)練集,1/5作為測試集。
圖5 數(shù)據(jù)增強(qiáng)圖Fig.5 Data enhancement image
模型的分類性能通過分類準(zhǔn)確率表示,分類準(zhǔn)確率是指正確分類的樣本數(shù)與總樣本(正確分類樣本數(shù)與錯誤分類樣本數(shù)之和)之比,其數(shù)學(xué)表達(dá)式為
(1)
式(1)中:P為分類準(zhǔn)確率;xi為正確分類的樣本;yi為錯誤分類的樣本。
為了檢驗(yàn)本文方法的性能,選擇了廣泛使用的先進(jìn)算法來跟本文方法進(jìn)行對比。在傳統(tǒng)機(jī)器學(xué)習(xí)算法領(lǐng)域選擇了K近鄰算法(K-nearest neighbor,KNN)[10]和支持向量機(jī)算法(support vector machines,SVM)[11],然后在深度學(xué)習(xí)領(lǐng)域比較了LeNet[12]和AlexNet兩個經(jīng)典模型算法,實(shí)驗(yàn)結(jié)果如表2所示。
表2 算法分類正確率對比
由表2的實(shí)驗(yàn)數(shù)據(jù)可以看出,ResNet50在訓(xùn)練集上的準(zhǔn)確率為89.7%,在測試集上的準(zhǔn)確率為91.5%;KNN聚類算法在訓(xùn)練集的確率為65.3%,在測試集的準(zhǔn)確率為64.6%,該算法的效果和ResNet50相差甚遠(yuǎn);SVM分類算法在訓(xùn)練集上的分類準(zhǔn)確率為68.8%,測試集上的準(zhǔn)確率為69.8%,這個分類算法相比KNN聚類算法略有提升,但和本文算法的分類準(zhǔn)確率相比還存在差距;LeNet模型在訓(xùn)練集上的準(zhǔn)確率達(dá)到了74.2%,測試集上的準(zhǔn)確率為74.8%,這個效果相對于最開始的算法已經(jīng)有大幅度的提升,因?yàn)樵撃P褪状芜\(yùn)用卷積-池化-全連接層的結(jié)構(gòu)來提升模型的分類準(zhǔn)確率;另外一個經(jīng)典神經(jīng)網(wǎng)絡(luò)模型AlexNet在訓(xùn)練集上的分類準(zhǔn)確率為80.9%,測試集上的準(zhǔn)確率為82.1%,得益于該模型將網(wǎng)絡(luò)變的很寬很深并使用ReLU函數(shù)代替sigmoid函數(shù),減少梯度彌散問題,但依然未能超過本文算法的分類正確率。
最后將本文算法部署在檢測設(shè)備上,如圖6所示,該設(shè)備包括傳送機(jī)構(gòu)、夾取機(jī)構(gòu)、拍照和圖像處理系統(tǒng),將本文算法與現(xiàn)場工人的識別效果做對比,如表3所示。
圖6 檢測設(shè)備圖Fig.6 Test equipment image
表3 人工檢測與算法檢測對比
由表3的實(shí)驗(yàn)數(shù)據(jù)可知,在100個樣本中,人工檢測正確分類個數(shù)為97個,正確識別率為97%,花費(fèi)的時間為15 min 32 s,中間休息1次,本文的算法檢測正確分類91個,正確識別率為91%,花費(fèi)時間為4 min 27 s,中間休息0次。雖然本文算法的準(zhǔn)確率不如人工檢測的高,但是對于相同的樣本花費(fèi)的時間更少,時間上面提高了約3.5倍,而且該檢測設(shè)備可以連續(xù)工作。
根據(jù)以上的對比實(shí)驗(yàn),本文提出的基于殘差神經(jīng)網(wǎng)絡(luò)的焊點(diǎn)檢測方法在訓(xùn)練集上取得了89.7%的分類準(zhǔn)確率,在測試集上的分類準(zhǔn)確率達(dá)到了91.5%,無論是在訓(xùn)練集上還是測試集上,均是表現(xiàn)最好,相比于其他算法的準(zhǔn)確率有了9%~27%的提升。與人工檢測相比,檢測時間上面提高了約3.5倍,效率大增。
針對轉(zhuǎn)子焊點(diǎn)圖像,提出了基于殘差神經(jīng)網(wǎng)絡(luò)的轉(zhuǎn)子焊點(diǎn)圖像檢測方法,通過在原有的網(wǎng)絡(luò)結(jié)構(gòu)中加入批量歸一化和預(yù)訓(xùn)練的方式,提高網(wǎng)絡(luò)的訓(xùn)練速度,減少過擬合,增強(qiáng)模型的泛化能力,在訓(xùn)練集上得到了89.7%的準(zhǔn)確率,在測試集上得到了91.5%的準(zhǔn)確率,并與KNN、SVM、LeNet和AlexNet等四種算法做了對比,并將該算法部署在檢測設(shè)備上,與工人檢測作對比,在準(zhǔn)確率上相差無幾,時間效率上提高了3.5倍,證明本文方法分類準(zhǔn)確率最高,說明該方法對轉(zhuǎn)子焊點(diǎn)圖像分類行之有效,并有較好的使用效果。