夏玉果,董天天,丁 晟
(江蘇信息職業(yè)技術(shù)學(xué)院微電子學(xué)院,江蘇 無錫 214153)
電子元器件是現(xiàn)代電子智能制造的基礎(chǔ),在電子產(chǎn)品的焊接、組裝、檢測等多個(gè)生產(chǎn)工序中必須進(jìn)行元器件的識別。所謂電子元器件識別就是根據(jù)不同元器件的外形特性來判斷其所屬的元器件類別,隨著電子信息技術(shù)的發(fā)展,電子元器件的種類和數(shù)量迅速增長,因此快速準(zhǔn)確的元器件識別對于提高現(xiàn)代電子產(chǎn)品的生產(chǎn)效率具有非常重要的意義。
電子元器件的識別主要依據(jù)圖像處理和模式識別的原理和方法。傳統(tǒng)的識別方法是通過提取不同元器件的特征,再根據(jù)這些特征匹配進(jìn)行類別判定,如杜思思等[1]提出的電子元器件自動(dòng)分類的算法,對于有引腳的元器件的檢測分類取得很好的結(jié)果。但是隨著微電子技術(shù)發(fā)展,貼片元器件特別無引腳或短引腳元器件的大量使用,這種算法的弊端日益凸顯。近年來,隨著深度學(xué)習(xí)在機(jī)器學(xué)習(xí)領(lǐng)域不斷的成功,人們提出了基于深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks,DNN)的元器件識別算法,如陳翔等[2]提出的基于AlexNet 的電子元器件分類方法,在5 類常見的電子元器件數(shù)據(jù)集上取得不錯(cuò)的分類效果。陳文帥等[3]則利用目標(biāo)檢測算法對極性電子元器件類別與方向識別進(jìn)行了研究,這些大大推進(jìn)了元器件識別的研究。相對于傳統(tǒng)的分類算法,深度學(xué)習(xí)算法能夠自動(dòng)學(xué)習(xí)不同元器件的特征,不需要再針對不同元器件選取不同的特征,降低了算法的復(fù)雜度。另一方面,深度學(xué)習(xí)算法在效果上大大提升了識別率,但同時(shí)也存在模型訓(xùn)練的計(jì)算量大、內(nèi)存需求量大、對硬件設(shè)備要求高等缺點(diǎn),由此導(dǎo)致模型移植到移動(dòng)設(shè)備或嵌入式設(shè)備困難,無法滿足實(shí)時(shí)運(yùn)行需要。
針對以上問題,本文提出一種基于輕量化深度遷移網(wǎng)絡(luò)的元器件識別方法。該方法首先以輕量化神經(jīng)網(wǎng)絡(luò)模型MobileNet 為基礎(chǔ),通過引入通道注意力機(jī)制和新的激活函數(shù),構(gòu)建基于MobileNetV3 的主干網(wǎng)絡(luò)。其中通道注意力機(jī)制進(jìn)一步對圖片的關(guān)鍵特征進(jìn)行加權(quán),提升模型的分類能力。其次采用遷移學(xué)習(xí)(Transfer Learning,TF)算法,通過預(yù)訓(xùn)練模型實(shí)現(xiàn)模型參數(shù)遷移,并進(jìn)行微調(diào),進(jìn)一步降低算法的參數(shù)量,并且避免了由于數(shù)據(jù)集小引起的過擬合現(xiàn)象,提升了算法的泛化能力。最后將此訓(xùn)練模型部署在樹莓派系統(tǒng)中,實(shí)驗(yàn)表明,該算法能夠準(zhǔn)確識別出12 種常見的元器件,并能很好滿足邊緣端計(jì)算和運(yùn)行的需要。
以輕量化神經(jīng)網(wǎng)絡(luò)和遷移學(xué)習(xí)構(gòu)建的模型結(jié)構(gòu)如圖1 所示,其中上半部分為ImageNet 上的預(yù)訓(xùn)練模型[4],主要完成遷移學(xué)習(xí)。下半部分為輕量化網(wǎng)絡(luò)MobileNetV3 的模型結(jié)構(gòu),主要包括卷積層、block層、池化層以及注意力模塊。
MobileNet 系列模型是Google 團(tuán)隊(duì)提出的主要針對移動(dòng)端或嵌入式設(shè)備的輕量級深層神經(jīng)網(wǎng)絡(luò),與傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)相比,MobileNet 在保證正確率的基礎(chǔ)上,大大降低了模型參數(shù)和運(yùn)算量,并具有延時(shí)低的特點(diǎn)。MobileNet 系列可分為MobileNetV1、V2 和V3 三種模型。
MobileNetV1[5]是在經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)網(wǎng)絡(luò)結(jié)構(gòu)基礎(chǔ)上,將池化層、部分全連接層用卷積層來代替,并引入了深度可分離卷積。深度可分離卷積的核心思想是將標(biāo)準(zhǔn)卷積分為兩步:第一是深度卷積(Depthwise),即對每個(gè)輸入通道應(yīng)用單通道的輕量化濾波器;第二是點(diǎn)卷積(Pointwise),負(fù)責(zé)計(jì)算輸入通道的線性組合并構(gòu)建新的特征。它使用更少的參數(shù)進(jìn)行特征的學(xué)習(xí),能夠有效減少計(jì)算量和模型參數(shù)。
MobileNetV2[6-7]在MobileNetV1 的基礎(chǔ)上,借鑒ResNet 的殘差連接思想,提出倒殘差結(jié)構(gòu),如圖2 所示,該結(jié)構(gòu)先使用點(diǎn)卷積進(jìn)行特征升維,再使用3×3的深度卷積提取各通道的特征,最后使用點(diǎn)卷積進(jìn)行特征降維。當(dāng)步長為1 時(shí),使用倒殘差結(jié)構(gòu);當(dāng)步長為2 時(shí),使用串聯(lián)結(jié)構(gòu)。這樣的結(jié)構(gòu)使得網(wǎng)絡(luò)允許更小的輸入和輸出維度,降低網(wǎng)絡(luò)的計(jì)算量和參數(shù)量,提升梯度傳播效率,使得網(wǎng)絡(luò)表達(dá)能力更強(qiáng)。
圖2 MobileNetV2 中倒殘差結(jié)構(gòu)
1.2.1 注意力機(jī)制
注意力機(jī)制(Attention Mechanism,AM)已成為深度學(xué)習(xí)領(lǐng)域的研究熱點(diǎn),它通過模擬人腦機(jī)制,關(guān)注視覺內(nèi)有突出特點(diǎn)的重要信息,忽略不重要的信息,從而進(jìn)一步提升有效特征的區(qū)別性。在圖像處理領(lǐng)域中常使用空間注意力(Spatial Attention)和通道注意力(Channel Attention)[9],根據(jù)輕量化網(wǎng)絡(luò)的特點(diǎn),這里引入通道注意力機(jī)制中的SE 網(wǎng)絡(luò)模塊(Squeeze and Excitation,SE)[10]。
通道注意力機(jī)制SE 是在特征通道維度上動(dòng)態(tài)調(diào)整各通道的權(quán)重,加大對網(wǎng)絡(luò)性能好的特征通道權(quán)重,減小對網(wǎng)絡(luò)特性不好的特征通道權(quán)重,實(shí)現(xiàn)對通道權(quán)重的重新分配。它主要包含壓縮(Squeeze)和激勵(lì)(Excitation)兩種操作,其中壓縮操作如式(1)所示:
式中:zc為壓縮操作結(jié)果,uc為輸入特征,H、W分別為輸入特征的高度和寬度。激勵(lì)操作如式(2)所示:
式中:sc為激勵(lì)操作結(jié)果,σ和δ分別表示激活函數(shù)Sigmoid 和ReLU(Rectified Linear Unit),經(jīng)過以上操作后,通道注意力輸出為激勵(lì)操作輸出產(chǎn)生的權(quán)重與特征圖進(jìn)行相乘,從而實(shí)現(xiàn)特征的加權(quán),如式(3)所示:
先用較堅(jiān)硬的石塊回填槽孔,石塊不宜太大;然后進(jìn)行重新造孔。重新造孔進(jìn)尺不宜太快,發(fā)現(xiàn)孔斜時(shí)應(yīng)再次回填石塊重復(fù)造孔。
圖3 通道注意力SE 模塊結(jié)構(gòu)圖
在此結(jié)構(gòu)中,首先對輸入特征矩陣的每一個(gè)通道進(jìn)行全局平均池化操作,然后通過兩個(gè)全連接層得到輸出的向量。其中第一個(gè)全連接層節(jié)點(diǎn)個(gè)數(shù)為特征矩陣通道數(shù)的四分之一,第二個(gè)全連接層的節(jié)點(diǎn)個(gè)數(shù)等于特征矩陣的通道數(shù)。最后,第二個(gè)全連接層輸出結(jié)果是對特征矩陣的每一個(gè)通道賦予不同的權(quán)重,對于比較重要通道賦予較大的權(quán)重,反之較小,從而更加突出特征的區(qū)別性。其中第一個(gè)全連接層使用激活函數(shù)ReLU,第二個(gè)全連接層使用激活函數(shù)H-swish。
1.2.2 激活函數(shù)
激活函數(shù)是在人工神經(jīng)網(wǎng)絡(luò)神經(jīng)元上運(yùn)行的函數(shù),主要負(fù)責(zé)神經(jīng)元之間的信息映射。激活函數(shù)將非線性特性引入神經(jīng)網(wǎng)絡(luò),從而增加神經(jīng)網(wǎng)絡(luò)模型的非線性因素,使得網(wǎng)絡(luò)可以學(xué)習(xí)和理解更加復(fù)雜的事物。
在MobileNetV2 中使用的激活函數(shù)是swish,它具有非單調(diào)性、無下界、平滑的特點(diǎn),在深層網(wǎng)絡(luò)的效果優(yōu)于傳統(tǒng)的ReLU 函數(shù),如式(4)所示:
由于swish 函數(shù)求導(dǎo)復(fù)雜,增大計(jì)算量,不利于量化,因此MobileNetV3 在swish 上進(jìn)行改進(jìn),使用了一種新的激活函數(shù)H-swish[x],如式(5)所示:
遷移學(xué)習(xí)[11]是通過在已有領(lǐng)域中學(xué)習(xí)獲取的知識,轉(zhuǎn)移到新的相關(guān)領(lǐng)域中,以此來改進(jìn)新的學(xué)習(xí)任務(wù),并獲得更好的學(xué)習(xí)效果。實(shí)踐表明,遷移學(xué)習(xí)[12]在解決小樣本學(xué)習(xí)問題上有較好的效果。本文將在ImageNet 數(shù)據(jù)集上訓(xùn)練得到的預(yù)訓(xùn)練模型遷移到電子元器件識別中,首先利用預(yù)訓(xùn)練模型對新的網(wǎng)絡(luò)模型進(jìn)行初始化,去掉最后的全連接層,作為特征提取,再在電子元器件數(shù)據(jù)庫上進(jìn)行訓(xùn)練,同時(shí)降低學(xué)習(xí)率,并對模型進(jìn)行微調(diào),即凍結(jié)所有層,只訓(xùn)練全連接層中的卷積層,并將網(wǎng)絡(luò)的輸出類別數(shù)改為電子元器件分類任務(wù)的12 類,最后得到電子元器件識別模型。通過采用遷移學(xué)習(xí)的MobileNetV3 網(wǎng)絡(luò)模型,不僅加快模型的學(xué)習(xí)效率,而且進(jìn)一步提升模型的泛化能力。本文遷移學(xué)習(xí)的流程如圖4 所示。
圖4 遷移學(xué)習(xí)流程
為了驗(yàn)證本文方法的有效性,在12 類常見的電子元器件數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并將本文算法與其他深度學(xué)習(xí)模型的遷移學(xué)習(xí)算法進(jìn)行對比。
目前,國內(nèi)還沒有公開發(fā)布的電子元器件數(shù)據(jù)庫,本實(shí)驗(yàn)利用工業(yè)相機(jī)、人工拍攝和網(wǎng)絡(luò)搜索等方式采集電子元器件圖像并構(gòu)建數(shù)據(jù)集,該數(shù)據(jù)集包括插件電阻器、貼片電阻器、插件電容器、貼片電容器、電解電容器、插件電感器、貼片電感器、插件二極管、貼片二極管、發(fā)光二極管、插件三極、貼片三極管等12 種常見的元器件,共計(jì)3 105 張,具體分布如圖5 所示。在實(shí)驗(yàn)中,按8 ∶1 ∶1 的比例拆分成訓(xùn)練集、驗(yàn)證集和測試集,為了保證模型性能所需的大量樣本數(shù)據(jù),實(shí)驗(yàn)中對數(shù)據(jù)集進(jìn)行增強(qiáng)處理[13],包括隨機(jī)裁剪、翻轉(zhuǎn)、縮放等方法進(jìn)行預(yù)處理,以增加樣本的多樣性。
圖5 電子元器件種類
本實(shí)驗(yàn)操作系統(tǒng)為Windows 10,兩塊16G 顯存NVIDIA GeForce GTX 2060 顯卡,CPU 為Intel Core i7-7700K,Python 版本為3.8,深度學(xué)習(xí)框架為TensorFlow2.3。實(shí)驗(yàn)利用GPU 加快模型訓(xùn)練速度,選擇Adam 作為模型參數(shù)優(yōu)化器,損失函數(shù)選擇交叉熵?fù)p失函數(shù),學(xué)習(xí)率為0.000 1,訓(xùn)練周期為100 次,每批次訓(xùn)練的圖像為16 張。
2.3.1 考察遷移學(xué)習(xí)的效果
為了驗(yàn)證不同模型在采用遷移學(xué)習(xí)方法后的識別效果,這里選取典型的 VGG16、ResNet50、InceptionV3 和MobileNetV3 模型作對比實(shí)驗(yàn),并選用TOP1 和TOP5 識別準(zhǔn)確率作為評價(jià)指標(biāo),實(shí)驗(yàn)結(jié)果如表1 所示,其中TF 是遷移學(xué)習(xí)Transfer Learning 的簡稱。
表1 不同模型的遷移學(xué)習(xí)結(jié)果
從表1 可以看出,這4 種模型在采用遷移學(xué)習(xí)算法后TOP1 和TOP5 的識別正確率均獲得了提升,其中VGG19 模型提升幅度最大為10.19%,本文提出的MobileNetV3 的遷移學(xué)習(xí)算法提升了3.62%,說明采用遷移學(xué)習(xí)方法,可以進(jìn)一步提高模型識別的準(zhǔn)確率。另外,在訓(xùn)練中,這4 種模型的損失率穩(wěn)步降低,準(zhǔn)確率穩(wěn)步提升,這表明采用遷移學(xué)習(xí)算法后模型的性能更加穩(wěn)定,其中本文提出的算法表現(xiàn)最好。
2.3.2 考察不同模型的遷移特性
為了進(jìn)一步考察不同模型在采用遷移學(xué)習(xí)后的特性,本實(shí)驗(yàn)選擇VGG19、ResNet50、InceptionV3 和MobileNetV3 為實(shí)驗(yàn)對象,主要考察模型識別率、訓(xùn)練時(shí)間和模型參數(shù)量三個(gè)方面指標(biāo),實(shí)驗(yàn)結(jié)果如表2 所示。
表2 不同模型的遷移特性
從表2 可以看出,本文提出的算法在TOP1 識別正確率、訓(xùn)練時(shí)間和模型參數(shù)量方面都取得了很好的結(jié)果,其中識別率遠(yuǎn)高于傳統(tǒng)的VGG16 和Res-Net50 網(wǎng)絡(luò),雖然InceptionV3 網(wǎng)絡(luò)在識別率上與本文提出算法相差不大,但是在模型訓(xùn)練時(shí)間和參數(shù)量上,本文提出的算法遠(yuǎn)遠(yuǎn)低于InceptionV3 網(wǎng)絡(luò),突出了輕量化的特點(diǎn),為模型部署到移動(dòng)端或嵌入式系統(tǒng)提供了條件。
2.3.3 考察輕量化系列網(wǎng)絡(luò)的遷移特性
針對模型的部署和使用,將本文提出的算法與典型的輕量級網(wǎng)絡(luò)MobileNetV1 和MobileNetV2 作對比實(shí)驗(yàn),主要從識別率、模型大小和參數(shù)量三個(gè)方面考察,實(shí)驗(yàn)結(jié)果如表3 所示。
表3 輕量化網(wǎng)絡(luò)遷移學(xué)習(xí)的實(shí)驗(yàn)結(jié)果
由表3 可以看出,本文提出的算法在TOP1 和TOP5 的識別準(zhǔn)確率遠(yuǎn)高于傳統(tǒng)的MobileNetV1 和MobileNetV2 網(wǎng)絡(luò),其中TOP1 準(zhǔn)確率分別提高了3.94%、2.3%,Top5 準(zhǔn)確率分別提高了0.66%、1.97%。在模型大小和參數(shù)量方面,本文提出的算法訓(xùn)練的模型介于MobileNetV1 和MobileNetV2 兩者之間,這也為模型的部署提供了很好的基礎(chǔ)。圖6 給出了3 種輕量化深度遷移神經(jīng)網(wǎng)絡(luò)識別結(jié)果的混淆矩陣,從圖中可以看出,相比于其他元器件,3 種模型均對插件電阻的識別率最高,其中本文提出算法的識別率為100%,而在元器件最低的識別率分布上,則表現(xiàn)得比較分散,這是由于這些元器件在數(shù)據(jù)庫中的數(shù)據(jù)量相對較少,現(xiàn)實(shí)中這些元器件的種類也較少,如貼片二極管、貼片三極管和插件電感,其中本文提出算法對元器件的最低識別率要高于MobileNetV1 和Mobile-NetV2 網(wǎng)絡(luò)。
圖6 輕量化網(wǎng)絡(luò)遷移學(xué)習(xí)識別結(jié)果的混淆矩陣
2.3.4 嵌入式系統(tǒng)部署
為了更好滿足邊緣端的使用,本文通過TensorFlow Lite 將模型部署在樹莓派嵌入式系統(tǒng)中[14-15]。TensorFlow Lite 是Google 公司開發(fā),旨在幫助開發(fā)者在移動(dòng)端或嵌入式設(shè)備上高效運(yùn)行機(jī)器學(xué)習(xí)模型,并將訓(xùn)練好的模型通過轉(zhuǎn)化、部署和優(yōu)化,進(jìn)一步提升運(yùn)算速度、減少內(nèi)存和顯存,其工作流程如圖7 所示。
圖7 模型部署流程圖
按此工作流程,構(gòu)建基于樹莓派開發(fā)電子元器件識別系統(tǒng),將經(jīng)過訓(xùn)練的模型保存為.h5 模型,然后將其轉(zhuǎn)換為.tflite 模型,并將其部署在樹莓派系統(tǒng)中,這里選用樹莓派型號為工業(yè)級CM4,??低?K 高清攝像頭,操作流程如圖8 所示。
圖8 樹莓派系統(tǒng)操作流程圖
實(shí)驗(yàn)顯示的識別結(jié)果如圖9 所示,不難看出,在不同的環(huán)境下,通過攝像頭拍攝元器件,無論是單個(gè)元器件還是多個(gè)元器件的組合,樹莓派系統(tǒng)都可以準(zhǔn)確地識別出元器件類別,而且實(shí)時(shí)性好。
圖9 樹莓派系統(tǒng)識別結(jié)果
針對現(xiàn)代電子產(chǎn)品生產(chǎn)中電子元器件種類多,差異小的特點(diǎn),提出了基于輕量化深度遷移網(wǎng)絡(luò)MobileNetV3 的識別方法。在傳統(tǒng)的MobileNet 系列模型的基礎(chǔ)上,通過遷移學(xué)習(xí),將預(yù)訓(xùn)練模型的參數(shù)遷移到電子元器件圖片的訓(xùn)練模型MobileNetV3中,在進(jìn)一步提升模型識別率的同時(shí),解決了傳統(tǒng)模型所需訓(xùn)練樣本多、訓(xùn)練參數(shù)量大以及部署應(yīng)用端困難等問題。實(shí)驗(yàn)結(jié)果表明,本算法提高了識別效果,并在樹莓派系統(tǒng)中表現(xiàn)出很好的實(shí)時(shí)性。今后將進(jìn)一探討本模型在移動(dòng)手機(jī)端的應(yīng)用研究。