李 娜, 姜 志, 王 軍,3*, 董興法
(1. 蘇州科技大學 電子與信息工程學院, 江蘇 蘇州 215009;2. 中國白城兵器試驗中心,吉林 白城 137001;3. 中國科學院 長春光學精密機械與物理研究所, 吉林 長春 130033)
指針式儀表構(gòu)造簡單且成本低,常用于電力、化工、石油等行業(yè)。電力系統(tǒng)中擁有多類指針式儀表,比如電流表、電壓表、壓力表等,指針式的儀表沒有通訊接口,采用人工進行讀取數(shù)據(jù),工作量大且容易疲勞,導(dǎo)致檢測效率低、誤差大、利用機器視覺圖像處理等手段,可以自動識別儀表示數(shù)[1-5]。針對各類儀表圖像,如何準確定位分類出目標區(qū)域,針對目標區(qū)域準確識別出儀表示數(shù)是本文研究重點。
目前,國內(nèi)外研究者對儀表示數(shù)識別提出了一些算法,傳統(tǒng)的Hough變換算法識別指針式儀表指針特征,Kucheruk V等人[4]提出基于指針旋轉(zhuǎn)中心位置結(jié)合ORB特征提取來進行儀表識別和讀?。恢旌O嫉热薣6]采用Hough變換方法完成指針直線特征的識別,通過減少累加像素數(shù)目結(jié)合灰度中心法來提高原性特征定位的效率和精度;朱柏林等人[7]提出一種基于ORB和改進Hough變換的指針儀表識讀方法,針對儀表區(qū)域識別、二值化處理、骨架提取和讀數(shù)獲取進行研究;姚洋等人[8]提出了一種改進Canny邊緣檢測算法,結(jié)合Hough變換技術(shù)提取儀表指針信息,提高儀表識別精度。也有一些研究者采用深度學習目標檢測的方法對儀表進行識別;邢浩強等人[9]利用卷積神經(jīng)網(wǎng)絡(luò)模型檢測當前視野下儀表目標的包圍框位置;徐發(fā)兵等人[10]利用卷積神經(jīng)網(wǎng)絡(luò)模型和改進有效準確的場景文本檢測器(EAST)算法對儀表進行定位和識別;Huang等人[11]采用R-FCN(基于區(qū)域的全卷積網(wǎng)絡(luò))進行儀表區(qū)域定位,利用改進的局部閾值分割方法和概率圓方法進行示數(shù)識別。雖然這些研究者對傳統(tǒng)算法進行了改進,但是依然面臨計算量大,復(fù)雜環(huán)境下多類儀表檢測準確度不高,遇到較大干擾時指針區(qū)域檢測存在困難等問題。
針對這些問題,本文提出基于Faster R-CNN的儀表示數(shù)識別,將FPN與Faster R-CNN網(wǎng)絡(luò)RPN結(jié)合,F(xiàn)PN自上而下的特征融合,提高了儀表檢測準確度,針對儀表圖像正負樣本不平衡,引入Focal Loss損失函數(shù)與RPN網(wǎng)絡(luò)結(jié)合進行訓練數(shù)據(jù)集,最后使用反卷積和FPN網(wǎng)絡(luò)結(jié)合進行儀表指針區(qū)域分割,提高了指針區(qū)域分割的準確性,測試結(jié)果準確性滿足電力系統(tǒng)的需求。
電力系統(tǒng)中主要存在以下幾個技術(shù)難點:(1)如何在復(fù)雜明暗程度不同的儀表圖像中準確定位到表盤區(qū)域,并進行分類;(2)當采集到圖像存在表盤傾斜時,如何對儀表表盤進行校準;(3)如何提高指針區(qū)域的定位識別。針對這些技術(shù)難點,本文提出基于深度學習目標檢測方法,根據(jù)儀表圖像特點,引入深度學習網(wǎng)絡(luò),對儀表區(qū)域進行定位和分類,通過透視變換對傾斜的儀表表盤進行校準,對校準后的儀表區(qū)域,再次使用深度學習網(wǎng)絡(luò)進行指針區(qū)域定位,再對指針區(qū)域進行細化,擬合指針獲得偏轉(zhuǎn)角度,最后輸出儀表示數(shù)。本文深度學習目標檢測網(wǎng)絡(luò)采用Faster R-CNN和FPN特征金字網(wǎng)絡(luò)進行儀表圖像的特征提取,算法流程如圖1所示。
圖1 基于Faster R-CNN的儀表自動識別流程
在電力系統(tǒng)中,環(huán)境比較復(fù)雜,采集到儀表圖像,儀表盤占比較小,傳統(tǒng)的Faster R-CNN網(wǎng)絡(luò)在最后一層特征映射圖區(qū)域建議采取RPN網(wǎng)絡(luò)操作,RPN是一種用于產(chǎn)生高可靠性候選區(qū)域框的網(wǎng)絡(luò)[12],雖然最后一層語義信息很強,但儀表表盤和指針的細節(jié)特征有損失,低層網(wǎng)絡(luò)能夠很好地顯示目標的紋理和邊緣細節(jié),而FPN將底層信息與高層語義進行融合,提高了檢測精度,因此提出特征金字塔(FPN)網(wǎng)絡(luò)與Faster R-CNN的RPN網(wǎng)絡(luò)結(jié)合進行儀表檢測,模型如圖2所示。
圖2 Faster R-CNN檢測儀表模型
采集的儀表圖像經(jīng)過特征金字塔進行特征提取,得到多尺度特征圖,RPN模塊分別對多尺度的特征圖前景和背景進行檢測,根據(jù)目標特征生成一定數(shù)量的錨框,對錨框中的目標進行分類,再經(jīng)過池化層,對候選區(qū)域進行調(diào)整,對目標進行分類,最終定位到目標區(qū)域。
FPN增加了基于原始網(wǎng)絡(luò)的層層連接,并生成特征金字塔,在所有尺度上都有很強的語義信息,F(xiàn)PN的基本思想是利用不同尺度的特征信息來預(yù)測不同尺度的目標,可分為自上而下和自下而上兩個過程[13],如圖3所示,自下而上的過程是通過卷積神經(jīng)網(wǎng)絡(luò)的前饋計算提取特征的過程,提取的特征為(C2,C3,C4,C5);自上向下的過程包括兩個步驟,上采樣和水平連接,自下而上提取特征(C2,C3,C4,C5)進行向上采樣,使高層特征的尺度可以滿足與底層特征水平連接的尺度,然后添加所獲得的采樣特征和像素之間底層特征,即水平連接,得到特征(P2,P3,P4,P5)。
圖3 FPN網(wǎng)絡(luò)框架
在電力系統(tǒng)中,儀表表盤和指針區(qū)域占比較小,特別是對指針區(qū)域的定位和識別,還需要進一步提高識別準確度。針對儀表表盤區(qū)域和指針區(qū)域的定位,引入FPN特征金字塔網(wǎng)絡(luò)與Faster R-CNN與RPN網(wǎng)絡(luò)結(jié)合,進行多尺度的ROLs感興趣區(qū)域特征提取,經(jīng)過FPN網(wǎng)絡(luò)將底層信息和高層信息進行融合,F(xiàn)PN的每個層級的特征圖分別使用RPN的滑動窗口進行感興趣區(qū)域ROLs提取,產(chǎn)生一系列候選框,得到的候選框映射到原始特征圖上,連接到Softmax得到最終目標分類,如圖4所示。為了提高準確性,本文將網(wǎng)絡(luò)層次較深、運算量更小的深度殘差網(wǎng)絡(luò)ResNet50代替VGG16進行圖像特征提取。
圖4 FPN和RPN網(wǎng)絡(luò)結(jié)構(gòu)圖
借助TensorFlow框架對Faster R-CNN深度學習網(wǎng)絡(luò)進行構(gòu)建和訓練。在訓練過程中,圖像的正負樣本框數(shù)很難達到平衡,一般圖像中少數(shù)是正樣本框數(shù),所以還需要解決樣本不平衡問題,提高檢測準確性,因此本文在RPN網(wǎng)絡(luò)中引入Focal Loss來進行訓練,F(xiàn)ocal Loss公式如下:
FL=-α(1-p)γlogp
,
(1)
式中,α是平衡正負樣本的參數(shù),(1-p)γ可以平衡難易樣本損失,實驗表明γ取2,α取0.25時效果最佳,將Focal Loss引入到RPN網(wǎng)絡(luò)中提高了檢測準確性。
改進的Faster R-CNN網(wǎng)絡(luò)對儀表表盤區(qū)域識別結(jié)果如圖5所示,從識別結(jié)果可以看出,在不同角度、不同距離情況下都可以準確識別出儀表區(qū)域。
圖5 儀表表盤區(qū)域定位
改進的Faster R-CNN對儀表指針區(qū)域的檢測定位結(jié)果如圖6所示。從圖中可以看出,在不同光照、不同角度情況下,依然較為準確地識別出指針區(qū)域。
圖6 儀表指針區(qū)域定位
定位到指針區(qū)域之后,對指針像素進行分割,傳統(tǒng)的分割算法,在對指針區(qū)域分割時,由于指針區(qū)域占比較小,對目標區(qū)域像素不敏感,不能有效排除其他外界干擾且速度慢,分割效果不好。本文提出基于特征金字塔網(wǎng)絡(luò)進行儀表區(qū)域圖像分割,能夠有效解決這些問題。首先,經(jīng)過特征金字塔網(wǎng)絡(luò)得到通道數(shù)為256的不同尺度的特征層(P2,P3,P4,P5),將各尺度的特征層使用上采樣倍數(shù)是2倍的反卷積進行上采樣,輸出相同尺度的特征圖,通道數(shù)為128,然后再將所有尺度的特征圖進行特征融合,經(jīng)過conv1x1全連接輸出,再通過4 倍上采樣將輸出結(jié)果映射為輸入圖像的大小,由 softmax 輸出最終語義分割的預(yù)測結(jié)果。改進的方法結(jié)構(gòu)圖如圖7所示。
圖7 儀表指針區(qū)域分割結(jié)構(gòu)
儀表指針區(qū)域分割結(jié)果,如圖8所示。
圖8 指針區(qū)域分割結(jié)果圖
針對采集圖像有儀表傾斜的現(xiàn)象,提出透視變換對儀表圖像進行校正,透視變換可以將原始圖像通過三維空間映射到新的視平面[14]。以表盤中心為原心建立坐標系,在檢測的儀表區(qū)域設(shè)置合適半徑,畫最小外接圓,與坐標系生成4個交點,分別是A,B,C,D,儀表輪廓一般是橢圓一部分,再在儀表區(qū)域畫最佳外接橢圓,與坐標系生成4個交點,分別是A′,B′,C′,D′。儀表圖像將原始圖像經(jīng)過透視變換,產(chǎn)生一個新平面,這個新平面會與實際表盤平面偏差角度,設(shè)為θ,如圖9所示。
圖9 透視變換原理圖
設(shè)透視變換矩陣為a,原圖中任意一點坐標設(shè)為(x,y,1),三維空間投影的坐標設(shè)為(X,Y,Z),映射到新的平面坐標為(X′,Y′,Z′),透視變換矩陣變換公式為:
,
(2)
.
(3)
根據(jù)最小外接圓和外接橢圓與坐標系的4個交點,根據(jù)透視變換公式,求出透視變換矩陣a,再經(jīng)過透視變換矩陣a計算所有投射到新平面的點,得到新平面圖像。根據(jù)向量計算兩個向量之間的偏差角度,經(jīng)過仿射變換得到儀表圖像,透視變換結(jié)果如圖10所示。
圖10 透視變換儀表校準圖
經(jīng)過前期FPN指針區(qū)域的分割,已經(jīng)排除其他背景干擾,最后需要針對指針區(qū)域進行指針直線擬合,找到指針的偏角來得到儀表讀數(shù)。最小二乘法常用于直線擬合,有較好的實驗效果,最小二乘法的原理是利用最小化誤差的平方和找到一組數(shù)據(jù)的最佳匹配線性關(guān)系。假設(shè)有n個擬合點設(shè)為(xi,yi),(i=1,2,3.......n),這些點的線性關(guān)系表示為:
y(x)=ax+b
.
(4)
擬合值與實際值的平方偏差和表示為:
.
(5)
當r2最小時,對應(yīng)a和b這兩個系數(shù)值即為所求值,對a和b求一階偏導(dǎo)數(shù),求得公式如下:
(6)
(7)
對前面所檢測提取的指針連通域像素點進行標記,求得這兩個系數(shù),即可得到最佳線性關(guān)系。擬合指針結(jié)果,如圖11所示。
圖11 最小二乘法擬合指針直線
對于不同光照、不同角度、不同分辨率的儀表圖片集,每張儀表圖片都只有一個儀表目標。采用本文提出的算法模型和幾種其他算法模型進行儀表目標檢測對比,本文提出的算法模型誤檢率和漏檢率都低于其他方法。誤檢率也就是虛警率,是錯誤判斷正樣本的概率。復(fù)雜環(huán)境中存在一些目標相似的物體,這對目標識別產(chǎn)生一定的影響,本文對誤檢的負樣本進行訓練,在一定程度上降低了誤檢率。本文的模型也存在一定的漏檢率,通過實驗發(fā)現(xiàn),采集圖片存在圖片清晰度過于模糊,拍攝儀表目標不完整等問題,這都會對儀表檢測造成影響。本文對漏檢的情況在終端顯示界面中進行報警提示,再對這些漏檢的儀表圖像進行訓練,降低漏檢率,測試結(jié)果如表1所示。
表1 儀表目標檢測結(jié)果對比
電力系統(tǒng)中相機與目標物體的距離一般在0.4 m左右,相機采集儀表圖片時,當一些儀表位置較偏時,拍攝位置相對會較遠,相對距離遠的儀表圖像,表盤區(qū)域和指針區(qū)域細節(jié)有所損失,對識別的精確度會有所影響。在相同環(huán)境下,針對同一儀表,拍攝20組不同距離的儀表圖像,驗證距離對識別的影響,如圖12所示。
圖12 距離對儀表識別的影響
由圖12分析可知,當拍攝距離小于1.0 m時,相對誤差較小,識別精確度較高,1.0 m之后距離對識別影響較大,識別精確度較低。一些儀表位置較偏的,拍攝距離正常情況下也不會超過1.0 m,因此本文提出的方法對精確度有一定的保證。
使用本文提出的算法模型對儀表進行示數(shù)識別,抽取18組識別結(jié)果,如表2所示。
表2 儀表示數(shù)識別結(jié)果
續(xù) 表
在系統(tǒng)中,對儀表角度識別誤差要求在3°以內(nèi),針對不同儀表換算成最大誤差數(shù)據(jù),通過數(shù)據(jù)分析,第7組類別的儀表示數(shù)要求最大相對誤差在1.85%以內(nèi),而第7組相對誤差是2%,不符合系統(tǒng)精確度要求。除了第7組,其他幾組類別的儀表示數(shù)符合系統(tǒng)精確度要求,通過分析儀表圖像綜合準確率達到94.25%,本文的算法模型相對誤差低,識別準確率很高,為系統(tǒng)準確識別儀表提供了有效手段。
本文提出基于深度學習目標檢測的方法代替?zhèn)鹘y(tǒng)方法自動識別儀表,包括儀表盤定位、指針區(qū)域定位、目標區(qū)域透視變換、指針區(qū)域分割擬合四個部分。由于儀表區(qū)域占比較小,特別是指針區(qū)域不易檢測,提出將Faster R-CNN的RPN網(wǎng)絡(luò)與FPN網(wǎng)絡(luò)結(jié)合,能夠較為準確地定位到目標區(qū)域。此外引入Focal Loss損失函數(shù)與RPN網(wǎng)絡(luò)結(jié)合進行訓練數(shù)據(jù)集,平衡儀表圖像正負樣本,有效提高檢測準確度。有些采集圖像存在儀表傾斜的現(xiàn)象,針對這一問題,采用透視變換進行校準圖像,其次對指針區(qū)域使用FPN特征金字塔分割指針像素,F(xiàn)PN網(wǎng)絡(luò)結(jié)合反卷積提高了特征提取性能,分割出指針像素,再對指針進行最小二乘法擬合直線,得到指針偏角,最終識別出儀表示數(shù)。與傳統(tǒng)檢測儀表示數(shù)的方法相比,本文算法錯檢率為0,漏檢率為3.6%,儀表示數(shù)識別相對誤差較小,漏檢和誤差大的儀表圖像綜合準確率達到94.25%,符合電力系統(tǒng)準確率要求,能夠識別多類儀表,實用性更強。