周佳禾,宮臨凡,王盛瑤
(1.國網(wǎng)天津信通公司,天津 300010;2.長庚大學(xué)資訊工程學(xué)系,臺灣桃園 333323;3.浙江大學(xué)數(shù)學(xué)院,浙江杭州 310027)
廣泛應(yīng)用于數(shù)碼相機(jī)、移動電話等便攜電子設(shè)備的方形卷繞式鋰電池是鋰電池3種重要構(gòu)型中的一種,集成了圓柱卷繞式與方形層疊式兩種構(gòu)型各自的優(yōu)點。方形卷繞式鋰電池安全性好、體積小、容量大、空間利用率高。在方形卷繞式鋰電池的生產(chǎn)工藝流程中,卷繞及組裝等環(huán)節(jié)容易產(chǎn)生隔膜褶皺與電極錯位等現(xiàn)象,嚴(yán)重影響電池的安全性與使用壽命。為保證鋰電池產(chǎn)品質(zhì)量,生產(chǎn)過程中的缺陷檢測必不可少。使用數(shù)字化X射線攝影(digital radiography,DR)技術(shù)生成鋰電池電極結(jié)構(gòu)影像,利用機(jī)器視覺技術(shù)處理、分析獲得的DR影像,實現(xiàn)鋰電池電極缺陷檢測[1-4],是業(yè)界的主流技術(shù)路線。
傳統(tǒng)機(jī)器視覺基本思想包括圖像采集和特征檢測2部分。特征提取算法主要包括HOG[5]、LBP和SIFT[6]等,此類算法均依賴于人工定義特征,其靈活性與適應(yīng)性有很大的局限性。隨著機(jī)器學(xué)習(xí)技術(shù)迅速發(fā)展,在物體識別方面能夠達(dá)到商業(yè)化的要求。早期的鋰電池缺陷檢測研究中,缺陷識別多使用傳統(tǒng)的圖像處理方法,如灰色關(guān)聯(lián)算法[7]和Otsu算法[8]等,但其發(fā)展趨勢逐漸步入機(jī)器學(xué)習(xí)領(lǐng)域。文獻(xiàn)[9]提出一種鋰電池膨脹缺陷的檢測算法,使用雙峰直方圖對圖像進(jìn)行預(yù)處理,并使用支持向量機(jī)SVM實現(xiàn)特征提取與分類。文獻(xiàn)[10]使用基于Tucker張量分解的方法對鋰電池的單元缺陷進(jìn)行研究,利用支持Tucker機(jī)對缺陷樣本進(jìn)行訓(xùn)練并實現(xiàn)分類。文獻(xiàn)[11]選擇機(jī)器學(xué)習(xí)中的決策樹分類器建立模型,對鋰電池的電極隔膜缺陷進(jìn)行檢測分類。
自2012年以來,以卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)為代表的深度學(xué)習(xí)技術(shù)發(fā)展迅猛。CNN在模式分類、目標(biāo)檢測、圖像分割等任務(wù)上性能全面超越了傳統(tǒng)的機(jī)器視覺技術(shù),成為科學(xué)研究和工程實踐的熱點之一。
歷史上第一個成功的CNN模型是應(yīng)用于識別手寫數(shù)字的LeNet-5[12],它的出現(xiàn)推動了深度學(xué)習(xí)領(lǐng)域的發(fā)展,隨后又陸續(xù)出現(xiàn)了AlexNet[13]、VGG[14]、GoogLeNet[15]、ResNet[16]和MobileNet[17]等經(jīng)典的網(wǎng)絡(luò)模型,均取得了標(biāo)志性的成就。如今CNN已成為機(jī)器視覺問題中最受歡迎的研究方法,并在解決基于圖像的識別與分類問題上倍受青睞。文獻(xiàn)[18]使用改進(jìn)的LeNet-5模型對太陽能電池板進(jìn)行缺陷識別與分類。文獻(xiàn)[19]以VGG的網(wǎng)絡(luò)結(jié)構(gòu)為基礎(chǔ)進(jìn)行了電池片缺陷識別的研究。2019年,文獻(xiàn)[20]選取了VGG19等幾種經(jīng)典的深度學(xué)習(xí)模型對鋰電池的缺陷檢測進(jìn)行研究,在取得較好的實驗結(jié)果的同時,也存在著參數(shù)較多、運算時間較長的問題。
針對方形卷繞式鋰電池電極褶皺缺陷,本文提出了一種卷積神經(jīng)網(wǎng)絡(luò)CNN與支持向量機(jī)SVM結(jié)合的檢測方法,使用CNN模型提取圖像特征,再使用SVM完成最終的檢測分類預(yù)測,在精確度與實時性兩方面均滿足實際生產(chǎn)要求。
圖1為非晶硅平板探測器拍攝的鋰電池局部的DR影像,圖像尺寸為1 600×1 200。圖中高亮圓形部分是X射線覆蓋區(qū)域,右下角處為鋰電池電極有效區(qū)域的影像,其中左側(cè)亮度偏高的灰色部分為鋰電池的陽極區(qū)域,右側(cè)亮度偏低的部分為陽極與陰極混合區(qū)域,影像中能夠清晰看見極片的橫截面情況。從圖1可以看出該區(qū)域電極分布均勻、排列整齊、無錯位或褶皺現(xiàn)象發(fā)生。檢測系統(tǒng)需依次檢測電池的四角,方能綜合確定電池的質(zhì)量。
鋰電池DR影像的預(yù)處理包括電極位置調(diào)整、傾斜校正和電極圖像分割。位置調(diào)整的目的在于將鋰電池DR影像中電極有效區(qū)域調(diào)整為同一位置(右下角),便于后續(xù)處理,傾斜校正力圖減小電池姿態(tài)對成像的影響。鋰電池DR影像經(jīng)過位置調(diào)整和傾斜校正,通過簡單的圖像分割即可獲得電池電極有效區(qū)域的圖像。圖2(a)為鋰電池DR影像經(jīng)預(yù)處理后得到的電池電極有效區(qū)域圖像,圖中顯示電池外層陽極邊緣出現(xiàn)了明顯的褶皺。
為了擴(kuò)大數(shù)據(jù)集的規(guī)模,對每幅原始電池電極圖像,以其中心為圓心分別進(jìn)行2次-2°~-1°和1°~2°的隨機(jī)旋轉(zhuǎn),從而將每幅電極圖像數(shù)量擴(kuò)展至5幅,以補(bǔ)償CNN在旋轉(zhuǎn)不變性上的不足。每幅電極圖像以重疊分割的方式裁剪出100張99×99的小尺寸子圖,在水平與垂直方向的裁剪間隔均為在10像素基礎(chǔ)上附加0~5個像素的隨機(jī)擾動。每幅原始電池電極圖像可生成500張候選子圖。圖2(b)為從圖2(a)中裁剪出的部分候選子圖。
面對數(shù)以十萬計的候選子圖,如果采用直接人工標(biāo)注分類,一方面對操作者的體力和心理是一個巨大的挑戰(zhàn),另一方面候選子圖感受域的有限會影響分類判斷,錯誤標(biāo)注不可避免。為此,本文采用人工標(biāo)注與自動分類結(jié)合的數(shù)據(jù)集標(biāo)注方法。針對數(shù)量較少的用于生成候選子圖的電極圖像,使用標(biāo)注工具labelme對其存在的電極褶皺進(jìn)行人工標(biāo)注。根據(jù)電極褶皺形態(tài)的不同,分別使用了線段、折線、多邊形、三角形和矩形等方式予以標(biāo)注。對于每張候選子圖,在其中心位置劃分出尺寸為79×79的正方形核心區(qū)域,使該核心區(qū)域與子圖邊界的間隔均為10像素。自動分類時,對于每張候選子圖,若其完整區(qū)域與其原始生成電極圖像褶皺標(biāo)記區(qū)域交集像素小于正例分類閾值,標(biāo)注為正例樣例。如果候選子圖核心區(qū)域與其原始生成電極圖像褶皺標(biāo)記區(qū)域存在交集,則標(biāo)注為負(fù)例樣例。除此以外的其他情況,候選子圖雖然與標(biāo)記區(qū)域存在交集,但不滿足正例和負(fù)例的判定條件,該子圖被歸類為灰色樣例。
本文共選取1 300幅鋰電池電極圖像進(jìn)行子圖裁剪,生成65萬張候選子圖用于數(shù)據(jù)集的制作,正例分類閾值設(shè)置為5。訓(xùn)練集、驗證集與測試集中的樣例分別源自不同的原始電池電極圖像,以保持各數(shù)據(jù)集的相對獨立。在剔除灰色樣例后,訓(xùn)練集、驗證集與測試集的樣例數(shù)量分別為460 918、51 599和55 364。
本文使用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征,具體結(jié)構(gòu)如表1所示。網(wǎng)絡(luò)的第一層是預(yù)處理層,完成對輸入數(shù)據(jù)的歸一化預(yù)處理。conv1使用步長為2×2的7×7卷積核,結(jié)合max-pool層進(jìn)行下采樣,縮小特征圖的尺寸。conv3_0和conv4_0使用步長為2×2的1×1的卷積替代池化層。conv5_1、conv5_2和fc層均使用卷積運算實現(xiàn)全連接層的功能。該模型訓(xùn)練階段輸入圖像的尺寸為99×99,輸出為1×1×2的張量。在推理階段受益于卷積運算的自適應(yīng)性,模型可以輸入任意尺寸大于99×99的圖像,利用輸出的張量實現(xiàn)電池電極圖像特征提取。網(wǎng)絡(luò)中除linear以外的所有卷積層均使用ReLU激活函數(shù),除conv5_2和linear以外的所有卷積層都加入了批歸一化(batch normalization,BN)[21]操作。
表1 卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)
歸一化是深度學(xué)習(xí)中常見的數(shù)據(jù)預(yù)處理手段,統(tǒng)計訓(xùn)練集的均值與方差,并使用該均值與方差在訓(xùn)練與推理階段對訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)做歸一化處理。受批歸一化的啟發(fā),將歸一化處理加入到CNN的第一層,利用訓(xùn)練階段minibatch的均值與方差估計訓(xùn)練集的均值與方差,這兩個參數(shù)在網(wǎng)絡(luò)訓(xùn)練結(jié)束后被集成在網(wǎng)絡(luò)模型中,供推理時使用。預(yù)處理層具體計算方法如下:
μE=EB[μB]
(1)
(2)
(3)
式(1)和式(2)與標(biāo)準(zhǔn)BN算法完全相同,式(3)與標(biāo)準(zhǔn)BN算法稍有差別。式(3)利用均值與方差的估計值對輸入數(shù)據(jù)x做歸一化處理,省略了BN中的平移及縮放運算。預(yù)處理層中部分運算源自BN,但無待學(xué)習(xí)的參數(shù)。為此,將該層命名為“類批歸一化”(BN-like,BNL)。
選擇交叉熵函數(shù)作為網(wǎng)絡(luò)訓(xùn)練階段使用的代價函數(shù)主體,并加入了正則項,提高網(wǎng)絡(luò)的泛化能力。
(4)
式中:m取值為128;yi為當(dāng)前minibatch中第i個樣例的分類置信度;αi為其歸一化樣本均衡因子,正比于yi歸屬類別樣本數(shù)量的倒數(shù);正則項中的w表示網(wǎng)絡(luò)各層中的突觸權(quán)值,正則項系數(shù)λ=1.0×10-2,用于懲罰較大的突觸權(quán)值,旨在提升網(wǎng)絡(luò)的泛化能力。
此外,網(wǎng)絡(luò)的conv5_2層和linear層中還引入了dropout機(jī)制,也能夠?qū)崿F(xiàn)過擬合抑制,dropout的概率取值為0.5。
網(wǎng)絡(luò)在隨機(jī)梯度下降的訓(xùn)練過程中,加入了動量項和學(xué)習(xí)率衰減的策略,用于加速網(wǎng)絡(luò)的收斂,減少梯度下降過程中的頻繁震蕩。訓(xùn)練階段網(wǎng)絡(luò)參數(shù)的更新規(guī)則為
(5)
θj+1∶=θj+vj+1
(6)
η=max(0.981p·η0,5.0×10-4)
(7)
式中:v為動量項;μ為動量項系數(shù),μ取值0.6;θ為網(wǎng)絡(luò)中包括突觸權(quán)值在內(nèi)的待學(xué)習(xí)參數(shù);j為迭代次數(shù);η為學(xué)習(xí)率,學(xué)習(xí)率初值η0=0.01;p為回合次數(shù),學(xué)習(xí)率每回合更新一次,呈指數(shù)級衰減,至第120回合時衰減為1.0×10-3;max(·)為取最大值運算,確保學(xué)習(xí)率不低于5.0×10-4。
利用小尺寸子圖訓(xùn)練得到的CNN模型,將用于電池電極有效區(qū)域圖像的特征提取,該特征供SVM完成最后電池電極褶皺的結(jié)果預(yù)測。
與訓(xùn)練階段不同的是,CNN模型在推理階段使用了較大尺寸的圖像,目的在于覆蓋電池電極完整的有效區(qū)域。針對電池電極有效區(qū)域圖像尺寸的不同,通過裁剪或補(bǔ)零將其尺寸統(tǒng)一處理至275×275。在輸入圖像尺寸為275×275時,CNN模型推理輸出的維度擴(kuò)展為12×12×2,可分解為2幅尺寸為12×12的分類置信度結(jié)果圖。選擇負(fù)例對應(yīng)的置信度結(jié)果圖,經(jīng)閾值降噪處理后作為電池電極特征(見圖3),SVM使用該特征完成遷移學(xué)習(xí),并給出電池電極褶皺的檢測結(jié)果預(yù)測。閾值降噪處理的計算為
f(x)=xu(x-th)
(8)
式中:x為負(fù)例對應(yīng)的置信度結(jié)果輸出;u(x)為階躍函數(shù);th為閾值,本文取0.25。
圖4為CNN訓(xùn)練120回合的訓(xùn)練誤差與測試誤差曲線,訓(xùn)練誤差最低達(dá)到0.05%,測試誤差最優(yōu)為0.38%。
我們使用17 160幅電池電極圖像進(jìn)行特征提取與遷移學(xué)習(xí)。選擇測試誤差最優(yōu)回合的CNN模型提取電極圖像特征,并借助sklearn的SVM實現(xiàn)SVM遷移學(xué)習(xí)。在參數(shù)配置上,核函數(shù)選擇高斯核函數(shù),懲罰因子設(shè)為2.0,并加入了自動樣本均衡設(shè)置。使用10折疊交叉驗證方法,交叉驗證結(jié)果如圖5所示,平均驗證誤差為0.96%。
為了對比SVM遷移學(xué)習(xí)的性能,設(shè)計了另一種遷移學(xué)習(xí)方案。在訓(xùn)練得到的CNN模型中,保留conv5_1之前的結(jié)構(gòu)并凍結(jié)其參數(shù),在此基礎(chǔ)上添加4個3×3卷積層、1個全局平均池化層、2個全連接層和一個softmax層。使用相同的數(shù)據(jù)集進(jìn)行相同的10折疊交叉驗證實驗,每次驗證訓(xùn)練120回合。從圖5的數(shù)據(jù)對比可以看出,SVM遷移學(xué)習(xí)性能略優(yōu)于基于CNN遷移學(xué)習(xí),這印證了在SVM較小數(shù)據(jù)集上的性能優(yōu)勢和CNN對數(shù)據(jù)集規(guī)模的依賴。
實驗使用的硬件平臺為i5-4570CPU+GTX1050GPU。CNN模型對尺寸為275×275的電極圖像提取特征的平均耗時為7.6 ms,SVM推理的平均耗時為0.27 ms。
鋰電池的缺陷檢測通常應(yīng)用于實際生產(chǎn)中,因此對檢測的精確度與實時性要求較高。本文共選取了VGG19、MobileNetV2、InceptionResNetV2[22](表2中簡寫為IncResNetV2)和ResNet50等4種基于深度學(xué)習(xí)的CNN模型,從準(zhǔn)確性與實時性兩方面進(jìn)行對比實驗。實驗結(jié)果表明,本文提出的方法在檢測精度與檢測速度方面略占優(yōu)勢。實驗從遷移學(xué)習(xí)的角度出發(fā),對比模型均使用了keras中提供的預(yù)訓(xùn)練模型參數(shù),且這些模型同樣只用于提取特征,后續(xù)的分類預(yù)測仍然由SVM完成。表2為不同模型結(jié)合SVM的10折疊交叉驗證性能對比。可以看出,本文提出的方法在檢測精度與檢測速度方面略占優(yōu)勢。
表2 模型性能對比
在使用模型進(jìn)行特征提取方面,針對不同模型的特點,在輸入圖像尺寸上采用了相應(yīng)的設(shè)置。由表2可知,InceptionResNetV2的特征提取耗時最長,原因是該模型結(jié)構(gòu)較深,深度達(dá)572層,因此計算的復(fù)雜度也會相對較高;MobileNetV2模型是針對移動設(shè)備設(shè)計的輕量型網(wǎng)絡(luò),參數(shù)量較小,計算速度較快,因此MobileNetV2的總耗時在4種對比模型中最少。但MobileNetV2由于模型規(guī)模較小、參數(shù)較少,性能相比規(guī)模較大的網(wǎng)絡(luò)會稍差一些。從表2可以看出ResNet50、VGG19和InceptionResNetV2結(jié)合SVM的分類預(yù)測誤差較低,使用MobileNetV2的分類預(yù)測誤差偏高。
本文利用卷積神經(jīng)網(wǎng)絡(luò)提取特征結(jié)合支持向量機(jī)實現(xiàn)分類的方法對卷繞式鋰電池電極褶皺檢測進(jìn)行了研究,實驗證明該方法具有較高的檢測精度與檢測速度,能夠滿足基本生產(chǎn)要求。在進(jìn)一步提升檢測性能方面來看,研究中還存在一些待改善的問題:一是在制作數(shù)據(jù)集前的圖像預(yù)處理中,提前分析成像環(huán)境等因素是否對圖像造成了影響,加強(qiáng)電池圖像的質(zhì)量;二是平衡不同褶皺特征的樣本數(shù)量,改善樣本的均衡度。