胡 鑫 歐陽華 尹 洋
(海軍工程大學電氣工程學院 武漢 430033)
變電站穩(wěn)定性要求高,分布范圍廣,但維護人員少,維護路線長。在這種復雜環(huán)境下,儀表的種類繁多。變電站設備的巡檢普遍還是采用人工巡檢的方式,巡檢一次通常要2h~3h,該方式勞動強度大、效率低、檢測質量分散性大,巡檢人員維護能力不足,對供電保障造成極大影響。所以將先進的識別算法引入工業(yè)儀表識別領域,以解決目前自動識別在準確率、泛化能力等方面的不足,并將儀表自動識別應用于機器人巡檢[1]之中,通過機器人實時識別儀表類型,解放勞動力,這也將成為未來的發(fā)展趨勢。1959年Hubel[2]發(fā)現(xiàn)在貓的初級視覺皮層之中存在簡單細胞和復雜細胞,分別承擔不同層次的視覺感知功能。這些細胞對視覺輸入空間的子區(qū)域非常敏感,我們稱之為感受野。而卷積神經(jīng)網(wǎng)絡的正式提出,是由 Yann LeCun[3]于 1998 年提出,在卷積神經(jīng)網(wǎng)絡之中引入了反向傳播算法,在手寫數(shù)字識別上有了很大的成功。進而,卷積神經(jīng)網(wǎng)絡真正開始了深度學習的新篇章,各種基于卷積神經(jīng)網(wǎng)絡的改進模型不斷被提出,應用于圖像各個領域。例如在2014年3月,一支由湯曉鷗[4]領導的中國人工智能團隊發(fā)布其原創(chuàng)的人臉識別算法研究成果,準確率達到98.52%,首次超越人眼識別能力。英特爾公司的研究人員提出的LPRNet[5](License Plate Recognition via Deep Neural Net?works),采用一種端到端的識別方案,不需要進行圖片的分割,速度快,準確度高于95%,在大陸多種車牌上取得了不錯的效果。2020年,何配林[6]利用Mask-RCNN識別工業(yè)儀表讀數(shù),首先將儀表分為指針式和數(shù)字式兩類,進行儀表類型的識別,對于兩類特征區(qū)別明顯的儀表,其識別的成功率接近100%。本文則針對指針式儀表中最為重要的四類儀表進行分類識別,采用深度學習中卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network)的 AlexNet[7]模型對儀表圖像進行自動特征提取,然后進行建模與分類,最后采用改變模型池化層的池化方式的組合形式,改進得到的識別結果準確率和損失程度更低,以滿足更高精度要求的工程需要。
目前,并沒有找到可以直接應用的數(shù)據(jù)集,于是針對實驗所必須的輸入數(shù)據(jù),利用實驗室已有的吊軌機器人系統(tǒng),制作了一個儀表為對象的數(shù)據(jù)集;主要手段是針對已有圖片進行擴展,數(shù)據(jù)量增強,從而提高實驗精度和準確度。
1)對已有圖片進行旋轉操作,模擬相機采集圖片時出現(xiàn)的角度偏差問題;
2)對已有圖片進行加噪處理,模擬巡檢環(huán)境現(xiàn)場的各種噪聲對圖像采集造成的影響;
3)對已有圖片進行整體色調的調整變換,模擬戶外環(huán)境下光照因素帶來的影響。
初步得到了一個針對工業(yè)巡檢十分重要的四類儀表:壓力表(圖1(a))、電壓表(圖1(b))、電流表(圖1(c)和溫度表(圖1(d))的數(shù)據(jù)集,如圖1所示。其中電壓表640張、電流表640張、溫度表360張壓力表2000張,四類儀表共3640張圖片這樣的一個數(shù)據(jù)集,然后按照8:2的比例劃分訓練集和測試集,從數(shù)據(jù)規(guī)模來看基本達到了用于深度學習的數(shù)據(jù)量的標準,可以用來投入使用。
圖1 四類儀表
卷積神經(jīng)網(wǎng)絡[8](Convolutional Neural Networks,CNN)是一類通過卷積運算,并且具有局部連接、權重共享等特性的前饋神經(jīng)網(wǎng)絡,是深度學習領域之中的代表作品。卷積神經(jīng)網(wǎng)絡具有表征學習能力,其最早是用來處理圖像信息。目前的卷積神經(jīng)網(wǎng)絡一般是由卷積層、匯聚層、和全連接層交叉堆疊而成的前饋神經(jīng)網(wǎng)絡,在結構上有三個特性:局部連接、權重共享以及匯聚。這些特性使得卷積神經(jīng)網(wǎng)絡具有一定程度上的平移、縮放和旋轉不變性。上述數(shù)據(jù)集之中的四類儀表由于形狀、字符標志的不同,當其輸入卷積神經(jīng)網(wǎng)絡之中,進行局部區(qū)域特征提取之后,會得到不同的特征映射,從而得以區(qū)分。
AlexNet是在2012年,在Geoff Hinton的實驗室由Alex Krizhevsky等設計出的,是第一個現(xiàn)代深層卷積神經(jīng)網(wǎng)絡,其首次運用了很多現(xiàn)代深度卷積網(wǎng)絡的技術方法,例如使用GPU來并行訓練,非線性激活函數(shù)采用了ReLU函數(shù),并使用Dropout來防止過擬合,使用數(shù)據(jù)增強手段來提高模型準確率等,并且一舉奪得了 2012 年 ImageNet[9~11]圖像分類競賽的冠軍(top5錯誤率僅為15.3%),這在當時引起了很大的轟動。AlexNet是一個具有很大歷史意義的網(wǎng)絡結構,AlexNet誕生之后,卷積神經(jīng)網(wǎng)絡(CNN)受到極大重視,在領域內被不斷改進并且層次越來越深,這也使得CNN成為在圖像識別分類的核心算法模型,并且將其應用到工業(yè)、醫(yī)學、農(nóng)業(yè)等各大領域。
AlexNet網(wǎng)絡結構共有8層,分別是前面5層的卷積層和后面3層的全連接層,其中最后一個全連接層是使用了Softmax函數(shù)的輸出層。其結構如圖2所示。
圖2 AlexNet網(wǎng)絡結構圖
AlexNet的輸入為224*224*3的圖像。
第一個卷積層:通過使用兩個大小為11*11*3*48的卷積核,設定為4的步長,為3的零填充,能夠得到兩個大小為55*55*48的特征映射組;
第一個匯聚層:通過使用大小為3*3的最大匯聚層,設定為2的步長,能夠得到兩個27*27*48的特征映射組;
第二個卷積層:通過使用兩個大小為5*5*48*128的卷積核,設定為1的步長,為2的零填充,能夠得到兩個大小為27*27*128的特征映射組;第二個匯聚層:通過使用大小為3*3的最大匯聚層,設定為2的步長,從而得到兩個13*13*128的特征映射組;
第三個卷積層:比較特殊,是兩個路徑的融合,通過使用一個大小為3*3*256*384的卷積核,設定為1的步長,為1的零填充,能夠得到兩個大小為13*13*192的特征映射組;
第四個卷積層:通過使用兩個大小為3*3*192*192的卷積核,設定為1的步長,為1的零填充,能夠得到兩個大小為13*13*192的特征映射組;
第五個卷積層:通過使用兩個大小為3*3*192*128的卷積核,設定為1的步長,為1的零填充,能夠得到兩個大小為13*13*128的特征映射組;
第三個匯聚層:通過使用大小為3*3的最大匯聚層,設定為2的步長,能夠得到兩個6*6*128的特征映射組;
最后是三個全連接層,神經(jīng)元數(shù)量分別為4096、4096和1000。
卷積層的計算公式為
Ii表示輸入矩陣,Wij表示卷積核,bj表示偏置,f(·)表示激活函數(shù)。
池化層的計算公式為
down表示池化操作。
全連接層最后利用SoftMax函數(shù)進行分類,其計算公式為
Ii為所有輸入組合中的第i個輸入,K為輸入神經(jīng)元個數(shù)。通過Softmax函數(shù),輸出值能夠映射到了[0,1]范圍內,利用Softmax分類實際上就是根據(jù)概率值來進行分類操作。
另外,AlexNet在前兩個匯聚層之后還進行了局部響應歸一化(Local Response Normalization)。一般而言,在神經(jīng)網(wǎng)絡中用激活函數(shù)對輸出進行非線性映射,并且對于ReLU激活函數(shù)而言,值域沒有一個區(qū)間,因此要對這個進行一個結果的歸一化。
局部響應歸一化公式如下所示:
通過局部響應歸一化,增強了模型的泛化功能。
實驗環(huán)境為64位的Win10系統(tǒng),計算機的CPU 為 Intel(R)Core(TM)i5-9300H,CPU 的主頻為2.4GHz,內存為8GB,顯卡為GTX1650。模型訓練是利用Anaconda下基于Python語言的Pycharm編譯工具,采用Keras深度學習框架。
分類指標包括訓練準確率、訓練損失率、驗證準確率和驗證損失率。準確率和訓練損失率用來判斷模型本身的性能,可以分別用下面公式表示出來:
將數(shù)據(jù)導入AlexNet網(wǎng)絡中運行,并且調整ep?ochs(訓練輪數(shù))和batch size(一次訓練所選取的樣本數(shù))用來進行對比。仿真識別結果如圖2~4所示。
仿真結果分析如下。
本次實驗考察的是圖像識別的準確率和損失率,圖2~4的橫坐標為訓練輪數(shù),左圖縱坐標為準確度,右圖縱坐標為損失程度。針對batch_size和epochs這兩個超參數(shù)進行對比分析。
圖2 batch_size=16,epochs=20
圖4與圖3相比batch_size更大,收斂更快,但精度略低,且出現(xiàn)了損失程度較大的情況。說明batch_size設的大一些,收斂得更快,也就是需要訓練的次數(shù)少,準確率上升的也很穩(wěn)定,但是實際使用起來可能精度不高。batch_size設的小一些,收斂得慢,可能準確率會來回震蕩,因此需要把基礎學習速率降低一些,但是實際使用起來精度較高。
圖3 batch_size=16,epochs=50
圖4 batch_size=32,epochs=50
圖3與圖2相比epoch更大,可以看到圖3的收斂情況更好,損失程度更低。梯度下降本身是一個迭代過程,所以經(jīng)過單個epoch更新權重遠遠不夠。隨著epoch的增加,神經(jīng)網(wǎng)絡中權重更新迭代的次數(shù)增加,曲線從開始的欠擬合,慢慢進入最佳擬合,epoch繼續(xù)增加,最后過擬合。從上述結果可以判斷出圖2還未進入最佳擬合狀態(tài)。
根據(jù)上圖結果顯示,本次仿真識別結果較為理想,特別是當batch_size=16,epochs=50時,識別的準確度最高。經(jīng)過一段時間訓練,訓練集的準確率保持在95%以上,其個別特殊樣本會引起極小程度的波動,但是影響并不大。對其四個指標計算平均值,得到的結果較好,能夠對儀表類別達到初步效果。
表1 指標精度
從AlexNet的結構分析,可知,此網(wǎng)絡包含3個池化層[12~13](pooling)且運用的都為最大池化(Max?pooling)。為了能夠提取局部感受野中精確的圖像特征,研究了最大值池化和均值池化的特點,最大值池化可以提取圖片局部的特征信息,通過局部的特征信息可以組合成為全局的特征信息。但是在特征的細節(jié)處理上效果表現(xiàn)欠佳,而另外一種均值池化(Averagepooling)恰恰與之相反。因而提出兩者結合運用的池化方式,既保留了輪廓的完整性,又能在細節(jié)的處理上更加精確。
最大池化公式為
均值池化公式為
vm表示圖像中T個像素點中的第m個像素點,m表示該點在滑動窗口中的方位,池化即把vm映射到對應的統(tǒng)計值上。
經(jīng)反復實驗對比分析池化方式的選擇得出,當?shù)谝淮问褂镁党鼗诘途S數(shù)據(jù)時著重細節(jié)處理,在后兩次還是使用最大值池化,在高維時提取全局特征信息。即由(Maxpooling*3)改為(Aver?agepooling+Maxpooling*2),此時得出的結果為最優(yōu)。通過結合兩者的優(yōu)點,提取出更加精確的特征信息。
對其進行仿真實驗,取第一次仿真中效果最好的一組,即取batch_size=16,epochs=50進行實驗。
結果如圖5~6。
圖5 原模型的仿真結果
圖6 改進后的仿真結果
表2 改進之后的指標精度
根據(jù)仿真結果進行分析可得:通過改進之后,測試結果收斂性更好,并且四項指標都得到了小幅度提升,驗證準確率達到了97.68%,驗證損失率降低至9.37%,這也反映了本次改進的有效性。
本文利用AlexNet網(wǎng)絡模型針對四類常見的變電站儀表進行識別分類,通過構造實時環(huán)境的數(shù)據(jù)集,使得訓練模型具有更好的適應性。并且根據(jù)網(wǎng)絡模型的結構,針對池化層進行研究,并且進行對比分析,驗證了改進方案的模型可靠性,得到一個效果更好的池化組合方式,使得識別的準確率有了小幅度的提升,為后續(xù)的變電站智能無人巡檢提供了更好的性能支撐。