魯恒潤 李 強(qiáng) 楊文旺
(礦冶科技集團(tuán) 北礦機(jī)電科技有限責(zé)任公司,北京 100160)
陰極板的鋅片脫離是鋅電解生產(chǎn)工藝中的重要步驟之一,自動剝鋅機(jī)通過剝刀可實現(xiàn)鋅片自動剝離,但由于剝鋅機(jī)在剝離鋅片過程中會產(chǎn)生鋅片剝離不徹底導(dǎo)致極板殘留鋅片。傳統(tǒng)方法需要工人使用工具進(jìn)行二次剝離,人工剝離效率低、勞動強(qiáng)度大。隨著機(jī)器視覺技術(shù)的快速發(fā)展,使用視覺技術(shù)識別鋅陰極板殘留具有非接觸、實時性好的特點,可以有效提高剝鋅機(jī)的剝鋅效率,提升裝備智能化水平。
在圖像識別領(lǐng)域,傳統(tǒng)的識別方法大都采用基于特征的方式[1-2],通過提取目標(biāo)識別物的紋理、顏色、形狀等信息進(jìn)行識別,該方法依賴于人工設(shè)計的特征,當(dāng)目標(biāo)物的顏色、光照等發(fā)生變化時,識別準(zhǔn)確度、穩(wěn)定性無法保證。另外,基于模板匹配的方法,根據(jù)圖像之間的相似度進(jìn)行識別,同樣容易受到外界干擾(光照、拍攝角度等)造成的影響。
近年來,深度學(xué)習(xí)技術(shù)在圖像識別等領(lǐng)域快速發(fā)展,基于深度學(xué)習(xí)的圖像識別方法通過多層卷積神經(jīng)網(wǎng)絡(luò)自動提取圖像的特征,具有較高的魯棒性和識別準(zhǔn)確度[3-13]。本文以算法YOLOv3[12]為基礎(chǔ),通過改進(jìn)算法的主干網(wǎng)絡(luò)以及候選框生成策略提升了模型的泛化能力,提高鋅陰極板的殘留物識別的準(zhǔn)確度,實現(xiàn)故障鋅極板的在線識別。
YOLO(You only look once)系列算法是單階段目標(biāo)檢測器中經(jīng)典算法之一,由Joseph Redmon 等在2016年首次提出。YOLOv3是其第三代版本,在YOLOv1[10]和YOLOv2[11]算法的基礎(chǔ)上,結(jié)合FPN特征金字塔[13]和Faster-rcnn[8]的Anchor機(jī)制,顯著提升了單階段檢測器的檢測精度。
YOLOv3使用k-means聚類方法為每個尺度各生成3個錨點框,網(wǎng)絡(luò)預(yù)測邊界框的4個坐標(biāo)值,計算方法如公式1~4。
bx=σ(tx)+cx
(1)
by=σ(ty)+cy
(2)
bw=pwetw
(3)
bh=pheth
(4)
式中,tx、ty、tw、th為網(wǎng)絡(luò)的預(yù)測輸出;(cx,cy)為相對于圖像左上角的偏移值;pw、ph為錨點框的寬度和高度;bx、by、bw、bh預(yù)測值轉(zhuǎn)化為實際輸出坐標(biāo)值,σ(·)為Sigmoid函數(shù)。
為解決小目標(biāo)檢測較差問題,YOLOv3采取了FPN特征金字塔網(wǎng)絡(luò)的思想[12-14],輸出三種不同尺度的特征圖并將不同尺度特征圖相互融合做預(yù)測。YOLOv3使用了52×52、26×26和13×13三種尺度的輸出作為預(yù)測,三種不同尺度的特征圖分別從網(wǎng)絡(luò)的不同層輸出且相互融合,包含了更多的語義信息,大尺度的特征圖語義信息豐富,適合檢測小目標(biāo)物體,通過多尺度預(yù)測提升了對小目標(biāo)檢測的效果。
YOLOv3使用darknet53作為主干網(wǎng)絡(luò),darknet53具有52個卷積層和1個全連接層做成,交替使用3×3和1×1的卷積核,采用殘差模塊解決網(wǎng)絡(luò)層數(shù)加深梯度消失或梯度爆炸導(dǎo)致的訓(xùn)練退化問題。YOLOv3的3個尺度輸出分別從主干網(wǎng)絡(luò)的32倍下采樣、16倍下采樣和8倍下采樣層獲得,尺度特征圖之間通過1×1的卷積和2倍上采樣操作分別進(jìn)行尺度融合。
YOLOv3的損失函數(shù)由3部分組成,分別是坐標(biāo)損失、置信度損失和類別損失。其中坐標(biāo)損失采用平方和誤差進(jìn)行評價,置信度和類別概率使用二值交叉熵進(jìn)行評價。
網(wǎng)絡(luò)的輸入由256×256×3修改為512×512×3分辨率提升了一倍,有利于保留更多的有用信息。使用改進(jìn)的深度可分離卷積網(wǎng)絡(luò)Xception[14]代替原有的Darknet53主干網(wǎng)絡(luò)。如圖1所示,Xception網(wǎng)絡(luò)由輸入頭、中間體和輸出體三部分組成,網(wǎng)絡(luò)結(jié)合了殘差和寬度拓寬思想,在Inception網(wǎng)絡(luò)的基礎(chǔ)上將普通的卷積替換成可分離卷積。三個預(yù)測圖分別從Xception網(wǎng)絡(luò)模塊Block4、Block13和Block14的可分離卷積層輸出,大小分別為64×64×728、32×32×1024和16×16×2048。與YOLOv3的結(jié)構(gòu)相同,尺度特征圖之間通過1×1的卷積和2倍上采樣操作分別進(jìn)行尺度融合操作。
圖1 YOLOv3-Xception網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of YOLOv3-Xception
YOLOv3單階段目標(biāo)檢測在候選窗口的生成上采用錨點機(jī)制,當(dāng)正樣本較少情況下會產(chǎn)生大量的負(fù)樣本,大量負(fù)樣本會導(dǎo)致網(wǎng)絡(luò)過度關(guān)注負(fù)樣本,降低模型的識別效果(增加漏檢率)。在陰極板殘留物識別屬于單類目標(biāo)識別且絕大多數(shù)故障板僅有1塊或者2塊呈塊狀分布的殘留區(qū)域。實驗中發(fā)現(xiàn)這種候選框生成機(jī)制會導(dǎo)致嚴(yán)重的正負(fù)樣本失衡問題,正負(fù)樣本比高達(dá)1∶318。
通過觀察陰極板殘留,發(fā)現(xiàn)陰極板殘留物所在區(qū)域主要分布在極板的兩側(cè)。為了進(jìn)一步統(tǒng)計陰極板殘留的分布區(qū)域規(guī)律,針對殘留物目標(biāo)統(tǒng)計訓(xùn)練集中所有圖片目標(biāo)中心所落區(qū)域的散點如圖2所示(黑色點為訓(xùn)練集中標(biāo)記的殘留物區(qū)域的矩形框的中心點位置,(x,y)中心點在原圖中的像素點位置)。
圖2 目標(biāo)中心所落區(qū)域分布Fig.2 Target center distribution
從圖2中可以看出,陰極板殘留物主要分布在極板兩側(cè),中間區(qū)域絕大部分為負(fù)樣本區(qū)域。如圖3所示,以橫坐標(biāo)x將圖片劃分為5個區(qū)域,分別統(tǒng)計5個區(qū)域內(nèi)落點占比。
圖3 目標(biāo)中心所落區(qū)域分布頻率Fig.3 Distribution frequency of target center
在訓(xùn)練過程對于預(yù)測的坐標(biāo)值(bx,by,bw,bh)當(dāng)?shù)螖?shù)小于等于N時,按照原有Anchor機(jī)制生成候選框。當(dāng)?shù)螖?shù)大于N且生成框的橫坐標(biāo)位于0~100、200~300或者400~500區(qū)域時,預(yù)測Anchor坐標(biāo)值按照指數(shù)進(jìn)行衰減,如公式5所示。
(5)
式中,epoch為迭代次數(shù),N為可調(diào)超參數(shù);(bx,by,bw,bh)為預(yù)測坐標(biāo)值。在訓(xùn)練初期正負(fù)樣本對網(wǎng)絡(luò)的訓(xùn)練影響不大,當(dāng)訓(xùn)練到一定次數(shù)后,由于正負(fù)樣本的失衡會導(dǎo)致網(wǎng)絡(luò)對負(fù)樣本傾斜,此時需要減低負(fù)樣本的權(quán)重值,使網(wǎng)絡(luò)增加對正樣本關(guān)注。根據(jù)陰極板殘留區(qū)域的分布規(guī)律可知,殘留主要分布在陰極板的兩側(cè),因此可對除兩側(cè)之外的其他區(qū)域(負(fù)樣本出現(xiàn)概率大的區(qū)域)的預(yù)測坐標(biāo)值進(jìn)行衰減。
使用Python3.5編程語言、Tensorflow1.14深度學(xué)習(xí)框架,結(jié)合Intel(R)-CPU-E5-2620-V4處理器,在Ubuntu 16.04操作系統(tǒng)下進(jìn)行實驗。使用Nvidia Titan RTX顯卡、CUDA10.0和cuDNN7.6調(diào)用GPU進(jìn)行加速。迭代次數(shù)N取1 000,使用Adam梯度下降,學(xué)習(xí)率取0.001,batch大小為4。
如表1所示,數(shù)據(jù)集分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,共486幅圖片數(shù)據(jù)。其中有殘留圖片384幅,從中隨機(jī)抽取318幅作為訓(xùn)練數(shù)據(jù)集,66幅作為測試數(shù)據(jù)集,無殘留數(shù)據(jù)102幅,從中隨機(jī)抽取29幅作為訓(xùn)練數(shù)據(jù)集,73幅作為測試數(shù)據(jù)集。
表1 訓(xùn)練和測試集分布
表2所示為3種不同模型的識別結(jié)果,Model1使用的是原始YOLOv3-darknet53模型,Model2使用的原始YOLOv3中將Darknet主干網(wǎng)絡(luò)替換為Xception網(wǎng)絡(luò)的YOLOv3-Xception模型,Model3使用的改進(jìn)的YOLOv3-Xception模型(替換主干網(wǎng)絡(luò)為Xception網(wǎng)絡(luò)并調(diào)整生成候選框策略)。從表2可知,相比原始的YOLOv3-darknet53模型,改進(jìn)的YOLOv3模型在有殘留識別率和無殘留識別率上均有較大提升。測試識別效果顯示:Model 3>Model 2>Model 1。
表2 識別結(jié)果
為進(jìn)一步分析原因,做出了3種模型訓(xùn)練過程的損失曲線圖。如圖4所示,Model 1訓(xùn)練集損失曲線隨著迭代次數(shù)增加逐步下降并趨于平緩,但交叉驗證集損失曲線振蕩下降且曲線始終位于訓(xùn)練集損失曲線上方,表明模型處于欠擬合狀態(tài),學(xué)習(xí)效果較差。
圖4 YOLOv3-Darknet53模型損失曲線Fig.4 Loss curves of YOLOv3-Darknet53 model
如圖5所示,Model 2訓(xùn)練集損失曲線和交叉驗證集損失曲線隨著迭代次數(shù)增加逐步下降并趨于平緩,交叉驗證集損失曲線略微位于訓(xùn)練集損失曲線上方,說明相對于原始的YOLOv3-Darknet53主干網(wǎng)絡(luò),Xception網(wǎng)絡(luò)提升了模型的擬合能力。
如圖6所示,Model 3訓(xùn)練集損失曲線和交叉驗證集損失曲線隨著迭代次數(shù)增加逐步下降并趨于平緩,且2個曲線幾乎重合,模型的擬合能力進(jìn)一步得到了提升,主要原因是通過改進(jìn)候選框生成策略,解決了模型正負(fù)樣本失衡問題,使得模型對正負(fù)樣本的學(xué)習(xí)能力得到了提升。
圖5 YOLOv3-Xception模型損失曲線Fig.5 Loss curves of YOLOv3-Xception model
圖6 改進(jìn)的YOLOv3-Xception模型損失曲線Fig.6 Loss curves of improved YOLOv3-Xception model
訓(xùn)練過程損失曲線進(jìn)一步證明了通過主干網(wǎng)絡(luò)和候選框生成策略的調(diào)整,檢測模型的泛化能力得到了明顯提升。如圖7所示,列舉了常見的幾種鋅極板殘留情況以及使用本文改進(jìn)算法的識別結(jié)果。
圖7 實際檢測效果 Fig.7 Effect of actual detection
1)針對原有網(wǎng)絡(luò)特征提取能力不足,使用Xception網(wǎng)絡(luò)調(diào)整了原有Darknet53主干網(wǎng)絡(luò)結(jié)構(gòu),提升了模型的特征提取能力。
2)通過訓(xùn)練過程預(yù)測值指數(shù)衰減改進(jìn)候選框生成策略,有效減低正負(fù)樣本不平衡導(dǎo)致學(xué)習(xí)向負(fù)樣本偏移問題,有利于降低識別的漏檢率。