孫榮艷,李曉明
(太原科技大學 計算機科學與技術學院,山西 太原 030024)
指針式儀表廣泛應用于工業(yè)領域;隨著智能化生產的升級改造,基于視覺的儀表自動巡檢讀數成為了一項重要的研究內容;儀表的讀數通常通過檢測指針的位置來確定。不同規(guī)格型號的儀表,指針指向相同位置所代表的具體讀數不同,因此,預先識別儀表的詳細類別是進行自動讀數的重要前提。
迄今為止,許多學者對儀表的檢測識別和讀數已經做了很多研究,但有關儀表細分類的研究比較少。目前的文獻在儀表讀數相關研究中,通常采用經典的目標檢測模型(如Yolo等)實現儀表的檢測,并假設儀表的類別是已知的,回避了儀表的細分類問題。究其原因,主要是由于不同類別的儀表外觀差異較小,相同類別儀表又因光照強度變化和環(huán)境等導致差異較大。如圖1所示,相同廠家相同類型的儀表只有量程和刻度數不同,再加上有效樣本數量少,背景干擾大,因此,現有的基于通用目標檢測的分類識別模型在樣本量較少的情況下對于儀表細分類的準確率較低。基于此,一些研究者們應用細粒度圖像分類算法挖掘儀表的鑒別特征。文獻[1]通過圖像生成器增廣數據集,從而為細粒度分類模型提供更多可鑒別粒度;文獻[2]使用基于注意力機制的裁剪方式增廣圖像達到擴充訓練數據集的目的,提高了細粒度識別的準確率。
圖1 某變電站儀表數據示例圖
針對上述儀表數據的特點,該文提出了基于鑒別注意力融合的儀表細粒度圖像分類方法,設計的鑒別注意力模塊(Discriminant Attention Model,DAM)是通過雙線性池化進行融合的,亮點在于利用淺層網絡提供的位置空間信息引導模型分類;通過添加鑒別注意力模塊和構建類別區(qū)分力更強的正交損失函數,突出了儀表之間的細微區(qū)別,從而有效改善了儀表細分類的性能。貢獻總結如下:
(1)針對儀表圖像細化分類問題,提出了DAM模塊,該模塊能有效利用淺層特征信息引導分類。
(2)采用DAM模塊生成的鑒別注意力圖和骨干網絡輸出的高級特征進行融合,生成的特征矩陣使網絡不同層信息互補,提升模型關鍵鑒別特征表征能力。引入正交損失,提高表盤不同類型鑒別特征的正交性。
(3)通過實驗對比驗證了所提儀表細粒度分類方法的性能,為儀表后續(xù)自動讀數提供了可靠保障。
近年來,基于深度學習的目標檢測算法應用廣泛,許多學者引入目標檢測算法對儀表進行識別。文獻[3]使用目標檢測算法YOLOv4-tiny[4]檢測表盤區(qū)域,但只針對了特定類型的儀表,沒有細化分類,難以應對實際應用中儀表種類繁多的情況。文獻[5]利用Faster-RCNN對儀表做了單分類的粗識別。文獻[6-8]通過標注儀表上的多個關鍵點,應用經典檢測算法進行識別,但不同儀表表盤內刻度數字豐富多變,標注關鍵點十分耗時。且在實際工業(yè)環(huán)境中,采集到的有效樣本量少也是表盤細化分類效果不佳的原因之一。一般的基于卷積神經網絡的圖像分類[9-11]模型,也不能很好地應用于儀表的細粒度分類。此外,儀表細粒度分類還受復雜背景的干擾。儀表表盤由于其特殊外形易于被檢出,但儀表細化分類所需的鑒別性特征都存在于表盤內,以往細化分類效果不佳的重要原因就是模型無法充分學習到儀表的關鍵鑒別特征。YOLOv5與其它YOLO系列算法相比,準確率和速度都達到最優(yōu)平衡,可以簡便快捷地對表盤鑒別區(qū)域做粗提取。
雙線性網絡[12]是細粒度分類的經典模型。文獻[13-14]采用雙線性特征融合網絡提取鑒別特征完成細粒度分類,但兩個特征提取器也增加了網絡模型的復雜度和深度。儀表圖像不同于一般細粒度分類任務,表盤淺層紋理特征豐富,過深的網絡結構可能會導致網絡失去紋理信息位置編碼等重要鑒別粒度,因此儀表細粒度分類任務采用ResNet34[15]作為特征提取器,不會由于網絡過深過淺而導致鑒別特征提取不足,但基礎模型無法充分利用網絡淺層特征對細粒度分類的引導作用。
此外,多分類任務中常用的交叉熵損失由于采用類間競爭機制,更關注類間顯著特征信息,但在細粒度分類中,隱藏層的共有特征存在交叉,因此對于儀表細粒度分類任務中學習到的特征,單純使用交叉熵損失存在忽略特有特征的問題,結合正交損失[16]可以平衡交叉熵損失的不足。
針對以往經典分類識別方法在儀表細粒度分類中的不足,提出基于鑒別注意力(DAM)融合的模型進行表盤的細粒度分類,處理流程如圖2所示。
圖2 儀表細粒度分類識別流程
儀表表盤有大量剛性粒度特征信息,淺層網絡能夠提取到豐富紋理特征,但網絡層數過深或網絡復雜會導致網絡學習到更多高層語義信息,而忽略大量淺層關鍵鑒別特征,使得儀表細粒度分類準確率達到飽和甚至下降??紤]淺層紋理特征以及空間位置信息對細粒度分類的引導作用,該文添加鑒別注意力生成模塊,通過將生成的鑒別注意力圖和骨干網絡最后一層輸出的特征圖進行雙線性融合,提升模型關鍵鑒別特征表征能力,有效改善儀表細分類的性能,如圖3所示。
圖3 基于DAM融合的儀表細粒度模型
淺層特征圖每個像素點對應的感受野重疊區(qū)域小,保證了網絡能捕獲更多細節(jié)。隨著網絡不斷加深,卷積次數以及感受野的增加,感受野之間的重疊區(qū)域也不斷增加,此時網絡獲得的是更多部件之間的語義信息。
淺層網絡擁有更多紋理、量程、數字的位置和空間信息,這些信息可作為儀表細粒度分類的關鍵鑒別特征,但同時也由于表盤邊緣和刻度線等噪聲信息影響分類性能,文獻[13-14]添加了更多雙線性層,通過融合更多層的卷積特征來提升網絡分類性能。
該文改進雙線性融合所需的特征提取器,增加鑒別注意力模塊進行雙線性池化。將骨干網絡的Layer2,3,4層特征分別上采樣至與Layer1尺寸大小相等,并將它們拼接起來,結合淺層粒度信息能有效提升儀表圖像特征表達能力。
隨后對上采樣對齊的特征圖通過SPPF[17]結構,SPPF在提升感受野的同時,有效融合上下文層信息,再經過自適應池化層,最后生成與Layer4尺寸相等的結合淺層信息的鑒別注意力圖A,每個通道代表不同的粒度部件。
算法流程具體如下:
給定一組批量輸入圖像:B為批量大小,圖像尺寸為H×W,通道數為3。通過Layer1后,得到B×64個尺寸為H/4×W/4的特征圖,Layer2獲得B×128個尺寸為H/8×W/8的特征圖,Layer3獲得B×256個H/16×W/16的特征圖,Layer4獲得B×512個尺寸為H/32×W/32的特征圖。將Layer2,3,4上采樣至與Layer1尺寸大小一致,表示為:
(1)
其中,φ為采用雙線性插值的上采樣操作。
(2)
其中,φ為自適應池化操作,Ak∈RH×W,N為一個批次內所有類的鑒別注意力特征圖的個數。如圖4所示,直觀展示了一種儀表類型不同層的粒度注意力熱力圖。
圖4 不同層注意力熱力圖
每個粒度注意力圖代表一個儀表類別的某個鑒別粒度區(qū)域,將骨干網絡經過Layer4后輸出的特征圖F重塑為F1,與鑒別粒度注意力圖A執(zhí)行雙線性池化,再通過全局平均池化提取出所有類別的局部鑒別粒度特征,如圖5所示,生成特征矩陣M,由f1,f2,…,fN組成,表示為:
(3)
其中,g為全局平均池化操作。
不同分類任務中所需特征不盡相同。儀表粗分類中,表盤內顯著的字體豐富的刻度以及表盤外形可以幫助從復雜背景中識別出儀表類別。但在細粒度分類中,這些儀表的共有特性會將同規(guī)格同類型不同量程的儀表歸于同類,這就造成了儀表細粒度分類準確率下降。為使網絡更關注不同類別特有鑒別性特征,通過引入正交損失函數來緩解類間分離性不足的問題。交叉熵函數(Cross Entropy Function)通常作為分類任務的損失函數,并沒有強制不同類的特征進行分離,直接將得到的特征矩陣M輸入分類器,不能充分分離共有特征和鑒別性特有特征。既要保持相同類之間的聚合性,又要提高不同類之間的分離性,就需要對模型所得特征矩陣M施加正交性,來改善交叉熵損失的不足,從而直接加強了類間分離性,提升了儀表細粒度分類性能。
(4)
(5)
(6)
Lol=(1-sim)+β·|dis|
(7)
其中,〈·,·〉表示余弦相似度,余弦相似性運算需要對特征向量進行歸一化操作,‖·‖表示L2范數歸一化,|·|表示絕對值。Mfi和Mfj表示同類樣本的兩個特征,Mfi和Mfk表示不同類別的兩個特征。Lol為正交損失表達式,約束sim→1,使得同類別樣本的特征聚集;約束dis→0,使得不同類別樣本特征正交。通過β控制這兩個不同約束sim和dis的權重,確定類間分離和類內聚集兩個任務的優(yōu)先級。
網絡的整體損失函數如下:
Loss=Lce+λLol
(8)
其中,Lce為交叉熵損失。
在實驗中,通過調節(jié)(β,λ)的取值,使同類特征聚合,不同類特征更加疏遠,提高類間方差,使模型達到最好的效果。參數調節(jié)過程中,表明當β,λ分別取0.9和1時,文中的儀表細粒度分類模型達到最好效果。
在分類識別領域,使用準確率(Accuracy)、召回率(Recall)、混淆矩陣對分類算法的性能進行評價。
準確率Acc是所有樣本中模型正確識別的樣本占比,公式表示為:
(9)
召回率R又稱查全率,是實際為正的樣本中被預測為正的概率,公式表示為:
(10)
其中,TP表示正樣本被模型正確識別為正樣本;TN表示負樣本被模型正確識別為負樣本;FP表示負樣本被模型錯誤識別為正樣本;FN表示正樣本被模型錯誤識別為負樣本。模型要同時兼顧準確率和召回率。
混淆矩陣統(tǒng)計每個類別預測正確和不正確的樣本數量,顯示了分類模型在進行預測時所產生的類別混淆,既可以直觀分析模型的錯誤預測,又可以看到發(fā)生錯誤的類型,補充了分類準確率所帶來的局限性。
該文使用的是某變電站實際場景采集的八種不同規(guī)格壓力表圖像,實際采集280張,分辨率為1 920×1 080,增廣擴充至400張后輸入到YOLOv5檢測模型中進行識別訓練。通過YOLOv5對儀表表盤進行粗提,得到儀表細粒度分類數據集,從表盤數據集中選出129張作為測試集。將數據集中剩余圖像擴充至838張,并將儀表細粒度分類數據集按照訓練、驗證8∶2進行劃分。
所有實驗都是在NVIDIA GeForce RTX 3090上進行的,GPU內存為24G,使用深度學習框架Pytorch1.7、CUDA11.4實現了模型的訓練驗證。粗提取的表盤圖像歸一化至448×448的輸入大小,隨后采用ResNet34(在ImageNet上預訓練)作為骨干網絡,動量設為0.9,初始學習率為0.001,使用標準優(yōu)化器SGD,權重衰減設為0.001,batch size 設為8,經過50個epoch。
3.3.1 鑒別注意力模塊(DAM)對比實驗分析
采用基于鑒別注意力模塊的雙線性融合。為驗證DAM模塊在儀表細粒度分類任務中的性能,使用文獻[13-14]提出的YOLOv3結合雙線性特征融合的細粒度分類算法在文中儀表細粒度分類測試數據集上進行比較。
文獻[13-14]都是通過YOLOv3粗提取目標以后,在雙線性融合的基礎上添加了新的雙線性層。從表1可以看出,文中的儀表分類準確率比使用上述兩個方法分別提高3.9百分點和2.3百分點,召回率比上述兩個方法提升3.9百分點,表明基于DAM模塊的雙線性融合方案更有助于模型對儀表表盤的細粒度分類。
表1 文中方法與現有模型的實驗對比結果 %
為進一步評估提出的DAM模塊的有效性,應用Grad-CAM[18]對融合DAM模塊后的網絡層進行可視化,如圖6所示。Grad-CAM是通過特征圖的加權求和形成的,它可以顯示每個區(qū)域對其分類的重要性。對于同廠家同規(guī)格同類型不同量程的儀表,識別出關鍵量程字樣是細粒度分類準確的關鍵。由圖6可以看出,基準模型無法提取到關鍵鑒別部件,網絡更關注一些顯著性特征;文獻[13-14]通過改進的雙線性融合算法使得模型關注到部分鑒別特征,但沒有充分獲取淺層鑒別粒度的位置和信息;文中提出的DAM模塊,使模型關注到了關鍵量程數字1,能利用更多淺層關鍵鑒別粒度引導模型分類,提高了模型對儀表細粒度識別的準確率。
圖6 不同模型分類可視化對比
3.3.2 消融實驗
表2展示了不同模塊消融實驗的結果對比。可以看出,加入DAM引導的儀表細粒度分類識別準確率較基準模型(YOLOv5結合ResNet)提升了7.8百分點 ,召回率提升了9.7百分點,表明文中方法得到了更多有效的分類信息,降低了類間差異較小目標的錯檢率。加入正交損失函數準確率提升了2.2百分點,召回率提升了0.7百分點,正交函數使得同類之間的距離更加接近,不同類之間的距離更加疏遠,從而提高了分類準確率,降低了儀表表盤細粒度分類誤差。
表2 消融實驗對比 %
3.3.3 文中方法對比實驗分析
量程為0.6的壓力表記為pressure_0.6,與量程為1 的壓力表記為pressure_1較為相似,同樣較為相似的pressue_0.1和pressure_0.9使用經典分類識別方法也不能完成很好的細化區(qū)分。圖7是由129張測試集數據生成的兩個混淆矩陣。由圖7可以看出,基準模型在類間差距較小的儀表之間分類識別效果較差,將pressure_0.6誤識別為pressure_1等,pressure_0.9和pressure_0.1的誤識別率也較高,而文中方法可以很好地識別pressure_0.6,提高了類間差異較小類別的召回率?;鶞誓P筒徽撌遣煌?guī)格儀表,還是規(guī)格相同粒度差異較小的儀表,分類誤差都相對較大,文中方法則在準確度和召回率上都有所提升。分析pressure_0.9召回率較低的原因是測試數據集中該類別存在采集時較為模糊的肉眼也難以分辨的圖像,沒有剔除。因此,文中模型基本符合工業(yè)場景下儀表細化分類的要求。
(a)基準 (b)文中圖7 混淆矩陣
進一步將整體網絡模型的注意力區(qū)域進行可視化。圖8以文中測試集中同規(guī)格同型號量程分別為0.6、1、2.5的壓力表圖像為例,第一行為YOLOv5粗提取的儀表表盤圖像;第二行為基準分類識別模型的可視化,基準網絡沒有很好地識別到關鍵可鑒別粒度,其注意力過于集中在顯著區(qū)域,例如儀表的類型(壓力表等)字樣,但三類儀表都屬于壓力表,導致類間差異小的類別不易區(qū)分;第三行為文中模型,網絡關注到了關鍵可鑒別的數字粒度以及更多其他鑒別性粒度部件,使得類間相似度高的儀表也能得到很好的細化區(qū)分,提高了儀表表盤細粒度分類結果的可靠性。
圖8 文中方法可視化效果
提出一種基于鑒別注意力融合的儀表細粒度分類識別方法。在構建的儀表細粒度分類測試數據集上,平均準確率達96.8%,與其它細粒度融合方案的對比表明,基于鑒別注意力融合的儀表細粒度分類方法提升了模型對表盤鑒別粒度部件的識別能力,能滿足工業(yè)儀表自動讀數任務中儀表預先進行細粒度分類的需求。