徐紅武,趙海月,樊玉平,李雅芹
(國(guó)電南京自動(dòng)化股份有限公司,南京 210031)
隨著電力系統(tǒng)變電站、發(fā)電廠等電力基礎(chǔ)實(shí)施數(shù)字化、智能化改造的推進(jìn),一些具備通信協(xié)議的智能指針儀表已經(jīng)被較好地接入了變電站和發(fā)電廠的監(jiān)控系統(tǒng)中。然而仍然有一些指針儀表不具備軟通信接口,在變電站、發(fā)電廠的日常運(yùn)維中需要運(yùn)維人員定期通過(guò)手動(dòng)抄表的方式獲取這些指針儀表的讀數(shù)值。近年來(lái),隨著人工智能特別是深度學(xué)習(xí)技術(shù)的進(jìn)步,基于人工智能的目標(biāo)檢測(cè)技術(shù)獲得了空前的成功?;谏疃葘W(xué)習(xí)的指針儀表識(shí)別技術(shù)已經(jīng)被成功應(yīng)用于變電站的指針儀表讀數(shù)識(shí)別,該技術(shù)的運(yùn)用減輕了運(yùn)維人員的工作負(fù)擔(dān),提升了變電站的智能化水平。利用該技術(shù)可以比較準(zhǔn)確地識(shí)別出指針儀表的表盤并且識(shí)別出指針儀表的指針位置,但是需要對(duì)特定的指針儀表進(jìn)行大量的模型訓(xùn)練。由于該方法實(shí)現(xiàn)項(xiàng)目落地需要人工智能開發(fā)工程師事前進(jìn)行大量的模型訓(xùn)練準(zhǔn)備工作,項(xiàng)目實(shí)施的人力成本高,不易于在變電站和發(fā)電廠進(jìn)行推廣應(yīng)用。
基于人工智能深度學(xué)習(xí)的目標(biāo)檢測(cè)算法可分為單階段和兩階段兩大類。兩階段目標(biāo)檢測(cè)算法主要有RCNN[1]、Fast RCNN[2]、Faster RCNN[3]、SPPNet等,該算法主要先生成候選框,然后對(duì)每個(gè)候選框進(jìn)行分類回歸,該算法運(yùn)行時(shí)間較長(zhǎng),但檢測(cè)精度較高。單階段目標(biāo)檢測(cè)算法主要有YOLO[4]、SSD[5-7]等網(wǎng)絡(luò)模型,該算法運(yùn)行速度快,但檢測(cè)精度稍差一些。文獻(xiàn)[8]中采用Faster RCNN 實(shí)現(xiàn)了電力機(jī)房巡檢機(jī)器人的指針式儀表識(shí)別。文獻(xiàn)[9]所述的遷移學(xué)習(xí)技術(shù)提高了模型訓(xùn)練的效率,但實(shí)際應(yīng)用中仍然需要對(duì)特定的指針儀表進(jìn)行大量的模型訓(xùn)練。文獻(xiàn)[10]對(duì)比分析了YOLOv4、Tiny-YOLOv4、Fast-RCNN 等目標(biāo)檢測(cè)算法,并采用Tiny-YOLOv4 網(wǎng)絡(luò)進(jìn)行指針儀表識(shí)別。
本文結(jié)合當(dāng)前先進(jìn)的YOLOv5 網(wǎng)絡(luò)模型,將深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)僅用于指針儀表盤的識(shí)別,預(yù)訓(xùn)練的網(wǎng)絡(luò)模型具有通用性的特點(diǎn),針對(duì)特定的現(xiàn)場(chǎng)環(huán)境,不需要對(duì)模型進(jìn)行特定的再訓(xùn)練?;谏窠?jīng)網(wǎng)絡(luò)的識(shí)別結(jié)果調(diào)整攝像機(jī)的焦距,從復(fù)雜環(huán)境中分割出指針儀表盤;在此基礎(chǔ)上通過(guò)尺度不變特征轉(zhuǎn)換算法(Scale Invariant Feature Transform,SIFT)將待檢測(cè)圖片與指針儀表盤模板圖片進(jìn)行匹配校準(zhǔn);采用霍夫變換算法識(shí)別出指針直線并計(jì)算出其傾角,最終通過(guò)指針刻度與指針傾角的關(guān)系計(jì)算出指針儀表讀數(shù)。
本文融合深度學(xué)習(xí)技術(shù)與尺度不變特征變換算法,充分發(fā)揮各算法的優(yōu)勢(shì),達(dá)到無(wú)需針對(duì)具體環(huán)境進(jìn)行模型再訓(xùn)練,只需在預(yù)訓(xùn)練模型的基礎(chǔ)上即可準(zhǔn)確識(shí)別出各種儀表表盤的目的。該算法能克服光照、視角變化等因素的影響,較準(zhǔn)確地讀出指針儀表盤的讀數(shù)。采用深度學(xué)習(xí)技術(shù),在僅進(jìn)行預(yù)訓(xùn)練的情況下,就可以準(zhǔn)確定位表盤,以適應(yīng)不同形狀、大小的表盤,無(wú)需根據(jù)現(xiàn)場(chǎng)的具體儀表盤進(jìn)行模型的再訓(xùn)練,實(shí)現(xiàn)一次訓(xùn)練,多次應(yīng)用的目的。采用SFIT 算法,可以在定位表盤的基礎(chǔ)上,與指針儀表標(biāo)準(zhǔn)模板庫(kù)進(jìn)行比較,自動(dòng)校準(zhǔn)表盤方位和角度,并識(shí)別出表盤的指針,計(jì)算出指針的角度,最終計(jì)算出指針的刻度值。具體算法流程如圖1所示。
圖1 文中所提算法流程
YOLO 網(wǎng)絡(luò)主要由CSP-Darknet53、CSP-PAN、SPPF等網(wǎng)絡(luò)模塊組成,是一種端到端的單階段深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)在保證目標(biāo)檢測(cè)精度的前提下具有運(yùn)行速度快的特點(diǎn)?;赮OLO 的網(wǎng)絡(luò)模型被廣泛應(yīng)用于目標(biāo)快速檢測(cè)領(lǐng)域,已經(jīng)取得了較好的實(shí)際效果[11-15]。
YOLO 深度學(xué)習(xí)網(wǎng)絡(luò)是一種單階段目標(biāo)檢測(cè)算法,其基本網(wǎng)絡(luò)結(jié)構(gòu)由Backbone主干網(wǎng)絡(luò)、Neck網(wǎng)絡(luò)、Head網(wǎng)絡(luò)3 個(gè)部分組成。其中,Backbone 主干網(wǎng)絡(luò)負(fù)責(zé)目標(biāo)檢測(cè)物體特征信息的提取;Neck 網(wǎng)絡(luò)對(duì)特征信息進(jìn)行多維度融合,提升檢測(cè)網(wǎng)絡(luò)的魯棒性;Head 網(wǎng)絡(luò)用來(lái)輸出待檢測(cè)的目標(biāo)物體信息。本文在CSP-Darknet53 主干網(wǎng)絡(luò)的C3網(wǎng)絡(luò)單元中增加注意力機(jī)制,使其對(duì)指針儀表盤特征更敏感,有利于及時(shí)檢測(cè)出指針儀表盤。改進(jìn)后的CSP-Darknet53 網(wǎng)絡(luò)具體由P1、P2、C3SE、C3’等模塊組成。其中,P1 是一個(gè)通道為64,填充為2,步長(zhǎng)為2,卷積核為6 的卷積層;P2 是一個(gè)通道為128,填充為1,步長(zhǎng)為2,卷積核為3 的卷積層;P1、P2 主要作用是實(shí)現(xiàn)特征的初步提取,并將采樣值調(diào)整到合適的通道大小及特征尺寸,為輸入C3SE 模塊準(zhǔn)備好數(shù)據(jù);C3SE、C3’是對(duì)特征信息進(jìn)一步處理的主要模塊,其主要區(qū)別為瓶頸層是否增加了輸入端與輸出端的直連相加操作并且是否具備通道注意力機(jī)制,C3SE網(wǎng)絡(luò)的瓶頸層增加了輸入端與輸出端的直連相加操作,并具有通道注意力機(jī)制;而C3’網(wǎng)絡(luò)的瓶頸層輸入端與輸出端不直接相連,且不具備通道注意力機(jī)制。Neck網(wǎng)絡(luò)由SPPF空間金字塔池化網(wǎng)絡(luò)、CSP-PAN網(wǎng)絡(luò)組成。SPPF空間金字塔池化模塊,將任意大小的特征圖轉(zhuǎn)換成固定大小的特征向量,實(shí)現(xiàn)局部特征和全局特征的融合;CSP-PAN 主要由C3’模塊、上采樣模塊、卷積模塊等構(gòu)成,實(shí)現(xiàn)了對(duì)小目標(biāo)、中目標(biāo)、大目標(biāo)物體的融合檢測(cè)。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 網(wǎng)絡(luò)結(jié)構(gòu)
為提高卷積神經(jīng)網(wǎng)絡(luò)識(shí)別物體的能力,近年來(lái)注意力機(jī)制已經(jīng)被越來(lái)越多地應(yīng)用于計(jì)算機(jī)視覺(jué)領(lǐng)域。文獻(xiàn)[16-17]通過(guò)在卷積神經(jīng)網(wǎng)絡(luò)中加入CBMA[18]注意力模塊,獲得了較好的識(shí)別效果。CBMA 注意力機(jī)制同時(shí)對(duì)通道注意力和空間注意力進(jìn)行評(píng)分,模塊結(jié)構(gòu)稍顯復(fù)雜。由于本文僅需要識(shí)別表盤,且識(shí)別物體一般都比較大,不會(huì)像吸煙檢測(cè)這樣檢測(cè)很小的物體,采用更簡(jiǎn)潔的只關(guān)注通道注意力評(píng)分的SEnet[19]模塊。
SEnet 注意力模塊的網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示,主要由壓縮操作、激發(fā)操作、縮放操作等步驟構(gòu)成。將SEnet 加在Backbone 主干網(wǎng)絡(luò)中,用于學(xué)習(xí)通道間的相關(guān)性,篩選出針對(duì)通道的注意力。它通過(guò)對(duì)卷積后的特征圖進(jìn)行全局平均池化處理,得到一個(gè)和通道數(shù)一樣的一維向量作為每個(gè)通道的評(píng)價(jià)分?jǐn)?shù),然后將該分?jǐn)?shù)分別施加到對(duì)應(yīng)的通道上。壓縮操作如式(1)所示、激發(fā)操作如式(2)所示、縮放操作如式(3)所示。
圖3 SEnet網(wǎng)絡(luò)結(jié)構(gòu)
式中:H、W分別為特征信息的高、寬;un為第n個(gè)通道的特征。
式中:Z為輸入特定描述符;W為通道權(quán)重;δ為ReLU激活函數(shù);σ為Sigmoid激活函數(shù)。
式中:U為所有通道的特征。
本文分別對(duì)改進(jìn)前和改進(jìn)后的網(wǎng)絡(luò),采用大樣本和小樣本兩種方法進(jìn)行相同次數(shù)的訓(xùn)練。結(jié)果表明:在大樣本情況下,未增加通道注意力機(jī)制的網(wǎng)絡(luò)模型過(guò)早發(fā)生了過(guò)擬合情況,其驗(yàn)證對(duì)象損失函數(shù)過(guò)早出現(xiàn)了到達(dá)最低點(diǎn)后緩慢上升的情況;增加通道注意力機(jī)制的網(wǎng)絡(luò)模型顯示在同樣的訓(xùn)練次數(shù)下,網(wǎng)絡(luò)模型還未出現(xiàn)過(guò)擬合情況,其訓(xùn)練精度可隨訓(xùn)練次數(shù)的增加而繼續(xù)獲得提升。大樣本訓(xùn)練情況下,YOLOv5、YOLOv5-C3SE 對(duì)象損失函數(shù)訓(xùn)練結(jié)果如圖4所示。
圖4 網(wǎng)絡(luò)訓(xùn)練結(jié)果
本文選用SIFT[20]作為特征提取方法,SIFT 廣泛應(yīng)用于物體辨別、機(jī)器人地圖感知與導(dǎo)航、影像拼接、3D 模型建立、手勢(shì)識(shí)別、影像追蹤等技術(shù)領(lǐng)域。該算法對(duì)旋轉(zhuǎn)、尺度縮放、亮度變化保持不變性,對(duì)視角變化、噪聲等也存在一定程度的穩(wěn)定性;該算法信息量豐富,適用于在海量特征數(shù)據(jù)中進(jìn)行快速、準(zhǔn)確的特征匹配;該算法具有多量性特點(diǎn),即使少數(shù)幾個(gè)物體也可以產(chǎn)生大量的SIFT 特征向量。該方法首先構(gòu)建高斯金字塔,以表示連續(xù)尺度空間。高斯金字塔由多組金字塔組成,每組金字塔的尺度不同,每組金字塔內(nèi)有多層構(gòu)成,每層的平滑程度不同。高斯金字塔的組數(shù)n與原圖像分辨率(M,N)和頂層圖像分辨率(Mt,Nt)有關(guān):
根據(jù)高斯金字塔,進(jìn)行高斯模糊,建立連續(xù)尺度空間L(x,y,σ):
式中:σ為尺度空間因子,是高斯正態(tài)分布的標(biāo)準(zhǔn)差,其值反映了圖像被模糊的程度,其值越大圖像越模糊,對(duì)應(yīng)的尺度也就越大;I(x,y)為圖形坐標(biāo)(x,y)處的灰度值;G(x,y,σ)為高斯函數(shù):
式中:(x0,y0)為高斯函數(shù)的中心點(diǎn)坐標(biāo),對(duì)于m×n尺度的二維模板,則x0=m∕2,y0=n∕2。
計(jì)算同一組中相鄰層圖形的高斯差分空間D(x,y,σ):
根據(jù)高斯差分空間D(x,y,σ)尋找極值點(diǎn)作為SIFT 特征提取算法的特征點(diǎn),以該特征點(diǎn)為中心,計(jì)算區(qū)域內(nèi)像素點(diǎn)的梯度向量幅度m(x,y)和方向θ(x,y):
在完成關(guān)鍵點(diǎn)的梯度計(jì)算后,通過(guò)幅值m(x,y)和相角θ(x,y)并使用梯度直方圖統(tǒng)計(jì)鄰域內(nèi)像素的梯度和方向。獲取128 維的關(guān)鍵點(diǎn)特征向量,對(duì)其進(jìn)行歸一化處理。設(shè)得到的描述子向量為H(h1,h2,…,h128),歸一化的特征向量為L(zhǎng)(l1,l2,…,l128),則歸一化向量li:
得到歸一化特征向量后,采用余弦相識(shí)度計(jì)算方法,與標(biāo)準(zhǔn)模板的特征向量進(jìn)行比較:
式中:x、y為需要比對(duì)的特征向量
采用SIFT 特征提取算法,可以把現(xiàn)場(chǎng)攝像機(jī)拍攝到的任意角度、方位的儀表表盤圖與表盤模板庫(kù)中的標(biāo)準(zhǔn)表盤進(jìn)行特征匹配,并根據(jù)標(biāo)準(zhǔn)表盤對(duì)攝像機(jī)拍攝到的角度、方位不正的表盤進(jìn)行校準(zhǔn),方便進(jìn)行表盤指針讀數(shù)計(jì)算。圖5 所示為目標(biāo)檢測(cè)算法檢測(cè)分割出的表盤與表盤模板庫(kù)中的標(biāo)準(zhǔn)表盤進(jìn)行SIFT 特征點(diǎn)匹配的實(shí)驗(yàn)結(jié)果。由圖可知,即便攝像機(jī)拍攝到的目標(biāo)表盤方位、角度不對(duì),但只要在表盤模板庫(kù)中有該種表盤型號(hào)的標(biāo)準(zhǔn)模板,根據(jù)SIFT 算法,仍然可以將表盤的特征點(diǎn)識(shí)別出來(lái),并對(duì)其進(jìn)行正視校準(zhǔn)。
圖5 特征點(diǎn)匹配結(jié)果
霍夫變換指明了笛卡爾坐標(biāo)系中的一條直線,對(duì)應(yīng)于霍夫空間中的一個(gè)點(diǎn)。為了便于描述垂直于X軸的直線,本文采用極坐標(biāo)的形式來(lái)描述笛卡爾坐標(biāo)系的直線:
式中:ρ為坐標(biāo)原點(diǎn)垂直于直線的距離;θ為該距離與x軸的夾角。假設(shè)一個(gè)圖像大小為m×n,則對(duì)這個(gè)m×n大小的圖像的每個(gè)像素點(diǎn),根據(jù)式(12)計(jì)算其0~180°的ρ,統(tǒng)計(jì)哪個(gè)θ下ρ值相同的數(shù)量最多,記錄并尋找出(ρ,θ)值,代入式(12)即可找出指針?biāo)诘闹本€。由于現(xiàn)場(chǎng)攝像機(jī)拍攝到的圖片質(zhì)量參差不齊,實(shí)際應(yīng)用霍夫變換原理提取指針的過(guò)程往往會(huì)出現(xiàn)如圖6(a)所示的只能提取到指針的某一部分多段線段長(zhǎng)度,并且指針兩側(cè)邊緣都有可能提取到直線。遇到這種情況,為了提高可靠性,避免誤判,一般選擇提取到的線段多的那側(cè)的線段構(gòu)成的直線作為指針的指向。對(duì)于提取到的指針指向的線段可用L(x1,y1,x2,y2)表示,其中(x1,y1)表示線段的起點(diǎn)坐標(biāo)值,(x2,y2)表示線段的終點(diǎn)坐標(biāo)值。首先通過(guò)計(jì)算其斜率k=可以把指針邊緣兩側(cè)的線段區(qū)分開,然后再通過(guò)比較線段數(shù)多的那側(cè)的線段起始點(diǎn)的橫坐標(biāo)x值大小,可以取出x值最小和x值最大的坐標(biāo)點(diǎn),將找到的兩個(gè)點(diǎn)作為擬合提取到的直線的兩個(gè)端點(diǎn),即可提取到比較完整的指針直線,如圖6(b)所示。
圖6 霍夫變換提取指針直線
指針儀表讀數(shù)的計(jì)算方法,歸根到底就是要計(jì)算指針的角度與表盤刻度的關(guān)系。文獻(xiàn)[21]中利用差影法提取指針信息,根據(jù)指針傾斜角度與表盤刻度的關(guān)系計(jì)算出指針刻度值。本文把表盤分成4個(gè)象限,根據(jù)每個(gè)象限和指針刻度的關(guān)系,分別根據(jù)式(12)~(15)計(jì)算出指針的刻度值。
假設(shè)指針刻度范圍為G,指針刻度范圍對(duì)應(yīng)的角度范圍為θ0,以表盤中心點(diǎn)為圓點(diǎn),把表盤與X軸相交的左刻度值x0作為配置參數(shù)供工程配置人員輸入。
當(dāng)識(shí)別的指針在第一象限時(shí),指針表盤刻度計(jì)算方法為:
當(dāng)識(shí)別的指針在第二象限時(shí),指針表盤刻度計(jì)算方法為:
當(dāng)識(shí)別出指針在第三象限時(shí),指針表盤刻度計(jì)算方法為:
當(dāng)識(shí)別的指針在第四象限時(shí),指針表盤刻度計(jì)算方法為:
如圖7所示指針儀表讀數(shù),程序檢測(cè)出指針在第一象限,并且計(jì)算出其傾角為為35°,則根據(jù)式(12),指針刻度為4.3。
本課題研究的硬件環(huán)境:聯(lián)想電腦QiTianM530-A051,無(wú)GPU,主機(jī)主頻3.6 GHz,內(nèi)存24 GB;軟件環(huán)境:Windows 64位操作系統(tǒng),Python版本為3.7.13。
為驗(yàn)證注意力機(jī)制對(duì)YOLOv5網(wǎng)絡(luò)的影響,準(zhǔn)備了大樣本和小樣本兩套數(shù)據(jù)。大樣本訓(xùn)練集6 000張圖片,驗(yàn)證集500張圖片。小樣本訓(xùn)練集800張圖片,驗(yàn)證集40張圖片。大小樣本均采用LabelImg軟件對(duì)檢測(cè)目標(biāo)進(jìn)行標(biāo)注。實(shí)驗(yàn)結(jié)果表明經(jīng)過(guò)大樣本數(shù)據(jù)訓(xùn)練后獲得的預(yù)訓(xùn)練模型,對(duì)指針式儀表的表盤的識(shí)別具有普遍的適應(yīng)性,可以準(zhǔn)確地定位出指針式儀表的表盤,在不需要識(shí)別指針式儀表指針位置的情況下,無(wú)需針對(duì)特定場(chǎng)合對(duì)模型進(jìn)行再訓(xùn)練。
實(shí)驗(yàn)結(jié)果表明在圖片質(zhì)量較好的情況下,采用傳統(tǒng)的OpenCV 方法和采用基于深度學(xué)習(xí)技術(shù)的卷積神經(jīng)網(wǎng)絡(luò)的方法均能準(zhǔn)確地識(shí)別出指針式儀表的表盤。在圖片質(zhì)量不好和有遮擋的情況下,采用深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的方法比傳統(tǒng)的OpenCV 方法更容易檢測(cè)出指針儀表的表盤。在圖片清晰、有遮擋情況下,分別利用傳統(tǒng)方法和基于深度學(xué)習(xí)技術(shù)的方法識(shí)別表盤結(jié)果如圖8~9所示。
圖7 指針儀表讀數(shù)
圖8 圖片清晰情況下識(shí)別表盤
圖9 有遮擋情況下識(shí)別表盤
增加注意力機(jī)制后,YOLOv5-C3SE 的推理時(shí)間為1.181 4 s,比沒(méi)有增加注意力機(jī)制的YOLOV5 推理時(shí)間1.432 7 s更短,單張圖片的推理時(shí)間可以節(jié)約251.3 ms。
針對(duì)本文中的指針儀表刻度識(shí)別方法,進(jìn)行10 余種型號(hào)指針表盤指針讀數(shù)識(shí)別實(shí)驗(yàn),結(jié)果如表1 所示,讀數(shù)平均精度約0.93,基本符合發(fā)電廠對(duì)指針儀表讀數(shù)圖像識(shí)別精度的要求。
表1 檢測(cè)結(jié)果
本文融合了傳統(tǒng)的圖像分析方法和人工智能深度學(xué)習(xí)技術(shù),既發(fā)揮了人工智能深度學(xué)習(xí)技術(shù)識(shí)別表盤更靈敏的優(yōu)點(diǎn),又采用傳統(tǒng)的方法來(lái)識(shí)別儀表的指針,使得算法的適應(yīng)性獲得了顯著的提升。但本文中采用的SIFT算法在圖片質(zhì)量不好的情況下存在待測(cè)圖片與指針儀表標(biāo)準(zhǔn)模板庫(kù)中的圖片匹配不成功的情況,后期將繼續(xù)進(jìn)行相關(guān)研究,提升模型匹配效果。
針對(duì)近年來(lái)廣泛采用深度學(xué)習(xí)技術(shù)進(jìn)行指針式儀表刻度識(shí)別需要對(duì)每個(gè)項(xiàng)目單獨(dú)進(jìn)行模型的再訓(xùn)練,項(xiàng)目的工程實(shí)施成本高,不易于大批量推廣應(yīng)用的問(wèn)題,提出了基于混合策略的指針式儀表刻度識(shí)別方法。該算法僅采用深度學(xué)習(xí)技術(shù)識(shí)別指針式儀表的表盤,在檢測(cè)出指針式儀表表盤后采用尺度不變特征轉(zhuǎn)換和霍夫變換算法來(lái)識(shí)別指針式儀表的指針。算法在精度上可以滿足發(fā)電廠的實(shí)際使用需要,且在卷積神經(jīng)網(wǎng)絡(luò)僅進(jìn)行預(yù)訓(xùn)練的基礎(chǔ)上,就可以準(zhǔn)確識(shí)別出儀表的表盤,無(wú)需針對(duì)具體的項(xiàng)目再進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)模型的再訓(xùn)練,克服了每個(gè)工程現(xiàn)場(chǎng)需要進(jìn)行特定模型訓(xùn)練和部署的麻煩,簡(jiǎn)化了深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,該方法具有普遍通用性,提高了項(xiàng)目的工程化水平。