王欣藝 景超 張浩宇 楊襄龍 張興忠*
(1.太原理工大學(xué)軟件學(xué)院 山西省太原市 030024 2.山西農(nóng)業(yè)大學(xué)軟件學(xué)院 山西省太原市 030031)
在變電站等有強(qiáng)磁干擾的環(huán)境中,數(shù)顯式、電子式儀表無(wú)法正常工作,因此指針式儀表在此類工作環(huán)境中發(fā)揮著重要作用,但指針式儀表讀數(shù)復(fù)雜且人工讀數(shù)存在一定誤差,所以指針式儀表適用的工業(yè)場(chǎng)景并不適合人工讀取儀表示數(shù)。綜上所述,研究指針式儀表的智能讀數(shù)具有重要意義。
近年來(lái),國(guó)內(nèi)外研究者針對(duì)指針式儀表示數(shù)識(shí)別提出許多方法,張軍國(guó)等人提出基于 ICM 的指針式儀表讀數(shù)方法,利用加權(quán)最大類間方差法提取指針表圓弧,最后通過距離法對(duì)極坐標(biāo)變換后的圖像進(jìn)行讀數(shù)。李俊等人利用Hough 變換裁剪表盤區(qū)域,查找刻度線輪廓,并利用最小二乘法進(jìn)行擬合,再利用隨機(jī)采樣一致性擬合指針中心,最后通過指針的回轉(zhuǎn)角度得到示數(shù)。李金紅等人基于深度學(xué)習(xí)算法檢測(cè)指針,在指針圖像的基礎(chǔ)上進(jìn)行二值化、細(xì)化、霍夫變換檢測(cè)直線、最小二乘法擬合直線等步驟識(shí)別儀表最終讀數(shù)。雖然這些研究者對(duì)指針式儀表智能讀取做出了許多研究,但仍然面臨指針式儀表識(shí)別過程復(fù)雜,智能讀取普適性低,實(shí)時(shí)性差等問題。
針對(duì)上述指針表自動(dòng)讀數(shù)方法的不足,本文提出一種基于計(jì)算機(jī)視覺技術(shù)的指針式儀表示數(shù)的快速讀取方法,首先對(duì)輸入圖像應(yīng)用均值偏移濾波,降低后續(xù)計(jì)算量,再通過改進(jìn)的Canny 邊緣檢測(cè)算法二值化圖像,然后利用基于Hough梯度法的Hough 圓檢測(cè)定位儀表盤質(zhì)心,其次通過CTPN +CRNN 網(wǎng)絡(luò)讀取開始刻度和最大量程的數(shù)值與位置,并且基于區(qū)域選擇的概率Hough 直線檢測(cè)算法提取指針,最后利用角度法得到儀表示數(shù),完成高精度自動(dòng)讀數(shù),方法的系統(tǒng)架構(gòu)與數(shù)據(jù)流圖如圖1 所示。
圖1:系統(tǒng)架構(gòu)與數(shù)據(jù)流圖
為實(shí)現(xiàn)指針儀表示數(shù)的讀取,首先需要對(duì)指針式儀表表盤進(jìn)行定位,表盤定位由均值偏移過濾、改進(jìn)的Canny 邊緣檢測(cè)算法、應(yīng)用Hough 梯度法的Hough 圓檢測(cè)三部分組成。
指針儀表表盤定位之前需要借助Mean Shift 算法的分割特性將色彩分布相近的元素進(jìn)行聚類,即收斂到同一點(diǎn)的起始點(diǎn)歸為一類,然后把這一類的標(biāo)號(hào)賦給這些起始點(diǎn),同時(shí)把包含像素點(diǎn)少的類去掉,這樣可以平滑色彩細(xì)節(jié),經(jīng)過Mean Shift 算法分割后的圖像將大幅減少后續(xù)的計(jì)算量。
本方法應(yīng)用Mean Shift 算法在d 維空間中n 個(gè)取樣點(diǎn)x的向量數(shù)學(xué)形式定義如式(1),其中k 表示落在高維球形區(qū)域所有的取樣點(diǎn),(x-x)表示取樣點(diǎn)對(duì)于x 的偏移量,S表示以h 為半徑的高維球形區(qū)域,S滿足關(guān)系式(2)。輸入圖像的長(zhǎng)寬為物理空間,輸入圖像的RGB 信息為色彩空間,圖像任取一點(diǎn)作為中心點(diǎn),構(gòu)建5 維球形空間,求得5 維球形空間中所有取樣點(diǎn)相對(duì)于中心點(diǎn)的向量之和,移動(dòng)迭代空間的中心點(diǎn)到新的位置,此位置可表示如式(3),其中M為t 狀態(tài)下求得的偏移均值, x為t 狀態(tài)下的中心點(diǎn)。
遍歷所有取樣點(diǎn),可以通過計(jì)算得到所有種類,收斂到同一點(diǎn)的點(diǎn)歸為一類,將與此類中心點(diǎn)接近的取樣點(diǎn)都賦值為此類中心點(diǎn)的像素值,實(shí)現(xiàn)指針式儀表圖像的模糊處理。
傳統(tǒng)Canny 邊緣檢測(cè)算法在對(duì)圖像二值化時(shí)需要人工選取高低閾值,并且會(huì)使得圖像邊緣變得模糊。所以本文就指針式儀表示數(shù)讀取時(shí)圖像二值化問題,對(duì)傳統(tǒng)Canny 邊緣檢測(cè)算法進(jìn)行改進(jìn),本文改進(jìn)的Canny 邊緣檢測(cè)算法流程圖如圖2 所示。
圖2:本文改進(jìn)的Canny 邊緣檢測(cè)算法流程圖
2.2.1 雙邊濾波保邊去噪
針對(duì)傳統(tǒng)Canny 算法進(jìn)行邊緣檢測(cè)時(shí)易丟失邊緣細(xì)節(jié)的缺陷,本文使用同時(shí)考慮值域與空間域的非線性雙邊濾波代替高斯濾波,以實(shí)現(xiàn)圖像去除噪聲的同時(shí)很好的保留邊緣信息。假設(shè)G(i,j)為像素點(diǎn)最終輸出,I(k,l)表示中心點(diǎn)像素值,I(i,j)表示空間領(lǐng)域內(nèi)(i,j)的像素值,雙邊濾波的權(quán)系數(shù)W(i,j,k,l)最終表示形式為式(4),最終像素點(diǎn)輸出為式(5)。
2.2.2 八領(lǐng)域計(jì)算梯度幅值和方向
本文對(duì)圖像進(jìn)行雙邊濾波后,在3×3 鄰域內(nèi)計(jì)算梯度幅值,即通過圖像某一像素的8 鄰域即x 方向,y 方向,45°方向和135°方向的一階偏導(dǎo)數(shù)的有限差分來(lái)確定像素的梯度幅值及方向。
各方向的梯度計(jì)算模板使用Sober 算子,如圖3 所示。
圖3:Sober 算子方向模板
由圖3 的方向模板與雙邊濾波后的圖像做卷積,分別得到四個(gè)方向的一階梯度分量,根據(jù)這四個(gè)方向的梯度分量,重新求得水平方向和垂直方向的差分,從而獲得像素點(diǎn)的梯度幅值和方向。其中水平方向的差分如式(6),垂直方向的差分如式(7),再使用式(8)和式(9)和計(jì)算梯度幅值和方向。
2.2.3 非極大值抑制與Otsu 算法選取閾值
得到梯度幅值與方向后,接著對(duì)邊緣信息進(jìn)行非極大值抑制(NMS),達(dá)到邊緣細(xì)化的效果。之后在 Canny 邊緣檢測(cè)的基礎(chǔ)上加入最大類間方差法,即通過統(tǒng)計(jì)圖像中像素點(diǎn)的灰度分布,分割出圖像的背景和前景,將區(qū)域內(nèi)灰度的類間方差最大化,找到使方差最大的閾值,該閾值可以實(shí)現(xiàn)最佳的分割效果。假設(shè)最佳閾值為t,輸入圖像灰度級(jí)為[0,L-1] ,根據(jù)閾值將圖像進(jìn)行灰度級(jí)的劃分C={0,1,…,t}和C={t+1,t+2,…,L-1},每個(gè)灰度級(jí)的比例如式(10),C類出現(xiàn)的概率如式(11),C類出現(xiàn)的概率如式(12),整個(gè)圖像以及C和C類出現(xiàn)的均值如式(13),C和C類間方差 σ如式(14)。
找到使方差最大的閾值,將此閾值定義為高閾值,低閾值為k 倍的高閾值k?[0.5,0.8]。最后進(jìn)行邊緣連接,當(dāng)某一像素點(diǎn)幅值超過高閾值時(shí),則判斷該像素點(diǎn)為邊緣;當(dāng)某一像素點(diǎn)幅值低于低閾值時(shí),則判斷該像素點(diǎn)不是邊緣點(diǎn);當(dāng)像素點(diǎn)幅值處于高閾值與低閾值之間時(shí),如果該像素點(diǎn)與高閾值相連則判斷該像素點(diǎn)為邊緣,否則不是邊緣。
得到二值化圖像后需要進(jìn)一步確定圓形儀表盤質(zhì)心與半徑。圓檢測(cè)常使用Hough 圓檢測(cè)算法,但由于傳統(tǒng)的 Hough變換方法計(jì)算量大,計(jì)算時(shí)間長(zhǎng),并不適合于要求實(shí)時(shí)性強(qiáng)的圓檢測(cè)中。為提高圓檢測(cè)的速度,本文應(yīng)用Hough 梯度的Hough 圓檢測(cè)定位儀表盤質(zhì)心。通過基于Hough 梯度法的Hough 圓檢測(cè),可以將傳統(tǒng)Hough 圓檢測(cè)計(jì)算的三維空間降到二維空間,大大減低了計(jì)算量,使得最終結(jié)果可以滿足實(shí)時(shí)性的要求。主要分為以下幾個(gè)步驟:
S1. 進(jìn)行本文改進(jìn)的Canny 邊緣檢測(cè);
S2. 遍歷所有邊緣,將沿邊緣梯度方向的垂直線段所形成的交點(diǎn)在二維累加器中累加;
S3. 對(duì)累計(jì)器中計(jì)數(shù)從大到小排序,只保留計(jì)數(shù)最多的位置為圓心;
S4. 計(jì)算圓心到邊緣點(diǎn)的距離,得到半徑。
為適應(yīng)不同量程的儀表,本文將指針式儀表圖像輸入到CTPN+CRNN 網(wǎng)絡(luò)中進(jìn)行文字區(qū)域的檢測(cè)與識(shí)別。CTPN 網(wǎng)絡(luò)可以進(jìn)行指針式儀表盤橫向文本檢測(cè),從而得到指針式儀表所有文字位置,CTPN 網(wǎng)絡(luò)總體結(jié)構(gòu)與檢測(cè)效果如圖4 所示。
圖4:CTPN 網(wǎng)絡(luò)總體結(jié)構(gòu)與檢測(cè)效果
使用CTPN 將指針式儀表文字圖像進(jìn)行分割之后,將分割的文字輸入到CRNN 網(wǎng)絡(luò)對(duì)文本進(jìn)行識(shí)別,CRNN 主要由3 部分構(gòu)成:
CNN:首先將文字區(qū)域進(jìn)行統(tǒng)一放縮,經(jīng)過一系列卷積與池化,通過Map-to-Sequence 提取特征序列,最終輸出Feature Sequence;
RNN:將Feature Sequence 輸入到兩層各256 單元的雙向LSTM 網(wǎng)絡(luò)中,可以得到每個(gè)特征向量對(duì)應(yīng)的概率分布向量,輸出由概率分布向量組成的概率矩陣;
CTC:將概率矩陣轉(zhuǎn)化為實(shí)際輸出的字符,概率矩陣中每一列的最大值對(duì)應(yīng)的字符作為該列標(biāo)簽,并且對(duì)識(shí)別的結(jié)果進(jìn)行合并去冗。
CRNN 網(wǎng)絡(luò)的總體結(jié)構(gòu)如圖5 所示。
圖5:CRNN 網(wǎng)絡(luò)總體結(jié)構(gòu)
CTPN+CRNN 網(wǎng)絡(luò)讀取指針式儀表的文本信息以后,只保留數(shù)字進(jìn)行排序,最小值對(duì)應(yīng)開始刻度的數(shù)值與位置,最大值對(duì)應(yīng)最大量程的數(shù)值與位置,CTPN+CRNN 網(wǎng)絡(luò)檢測(cè)效果如圖6 所示。
圖6:CTPN+CRNN 網(wǎng)絡(luò)檢測(cè)效果圖
本文使用改進(jìn)的Hough 直線檢測(cè)進(jìn)行指針的提取,傳統(tǒng)Hough 直線檢測(cè)對(duì)每個(gè)像素點(diǎn)都進(jìn)行計(jì)數(shù)和三角函數(shù)運(yùn)算,運(yùn)算量大,運(yùn)行速度慢。為提高指針檢測(cè)的速度,本文對(duì)傳統(tǒng)Hough直線檢測(cè)進(jìn)行改進(jìn),根據(jù)指針式儀表盤的特征,指針只會(huì)落在開始刻度與最大量程刻度夾角之外的區(qū)域,可以選擇常數(shù)K 確定所占半徑比例,從而減少Hough 直線檢測(cè)的區(qū)域面積。本文選定區(qū)域如圖7 所示,僅將規(guī)定區(qū)域像素點(diǎn)帶入Hough 變換,不僅大幅減少了Hough 直線的計(jì)算量,同時(shí)提高了指針檢測(cè)的準(zhǔn)確性和實(shí)時(shí)性。
圖7:Hough 直線檢測(cè)范圍示意圖
Hough 圓檢測(cè)的圓半徑為R,開始刻度與最大量程刻度夾角為α,K 為選擇圓區(qū)域的常數(shù),可求得概率霍夫直線檢測(cè)的區(qū)域面積S 為式(15)。
基于區(qū)域選擇的Hough 直線檢測(cè)算法流程如圖8 所示,通過直線檢測(cè)算法選定區(qū)域內(nèi)所有的線段后,計(jì)算所有線段的長(zhǎng)度,找到最長(zhǎng)的線段即為指針。
圖8:基于區(qū)域選擇的概率Hough 直線流程圖
本文儀表讀數(shù)計(jì)算使用了角度法,通過計(jì)算儀表開始刻度和最大量程刻度之間的角度,以及指針與開始刻度之間的角度,計(jì)算指針和開始刻度形成夾角在總量程角度的占比,最后結(jié)合儀表的最大量程,計(jì)算出儀表的讀數(shù),角度法儀表示數(shù)計(jì)算示意如圖9 所示。
圖9:角度法儀表示數(shù)計(jì)算示意圖
實(shí)驗(yàn)測(cè)試對(duì)象為150℃ 量程的指針式溫度表,在實(shí)驗(yàn)過程中將控制溫度不斷增大,進(jìn)行多次識(shí)別。實(shí)驗(yàn)包括正常環(huán)境下指針表讀數(shù)識(shí)別結(jié)果與分析、干擾環(huán)境下讀數(shù)識(shí)別結(jié)果與分析。
正常環(huán)境下指針表圖像的處理過程如圖10 所示,正常環(huán)境下識(shí)別示數(shù)實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)見表1。
圖10:正常環(huán)境下指針表圖像的處理過程
表1:正常環(huán)境下識(shí)別示數(shù)實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)表
由表1 可見,在不考慮儀表基本誤差和附加誤差影響的情況下,自動(dòng)讀數(shù)算法處理結(jié)果與實(shí)際值的最大相對(duì)誤差在0.5%以內(nèi) , 最慢識(shí)別時(shí)間為0.45 秒。該誤差值與延遲時(shí)間對(duì)本實(shí)驗(yàn)中所用指針式儀表盤是可以接受的。
在真實(shí)的工業(yè)環(huán)境中,指針表讀數(shù)可能會(huì)受光斑、污點(diǎn)和暗光等因素干擾。為了測(cè)試本文算法的穩(wěn)定性,本文模擬了真實(shí)環(huán)境中可能存在的干擾,并進(jìn)行了實(shí)驗(yàn)。干擾環(huán)境下指針表圖像的處理過程如圖 11 所示,干擾環(huán)境下識(shí)別示數(shù)實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)見表 2。
圖11:干擾環(huán)境下指針表圖像的處理過程
表2:干擾環(huán)境下識(shí)別示數(shù)實(shí)驗(yàn)數(shù)據(jù)統(tǒng)計(jì)表
由表 2 可見,最大相對(duì)誤差為 0.59%,最慢識(shí)別時(shí)間為0.48 秒。實(shí)驗(yàn)表明,對(duì)比無(wú)干擾情況,干擾環(huán)境下本方法的識(shí)別誤差有所增加,其中暗光環(huán)境下的讀數(shù)誤差較大,但最大相對(duì)誤差仍低于0.6%,說明該方法在一定干擾情況下仍有較好性能,具有魯棒性。
由上述可知,本文所設(shè)計(jì)漸進(jìn)式指針式儀表盤示數(shù)讀取方法已基本滿足一定誤差范圍內(nèi)的指針式儀表盤示數(shù)讀取要求。
針對(duì)指針式儀表識(shí)別過程復(fù)雜,智能讀取普適性低、實(shí)時(shí)性差等問題,本文提出了基于計(jì)算機(jī)視覺技術(shù)的指針式儀表快速讀取示數(shù)方法。首先對(duì)輸入圖像進(jìn)行均值偏移過濾,再使用本文改進(jìn)的Canny 邊緣檢測(cè)算法,然后應(yīng)用基于Hough 梯度法的Hough 圓檢測(cè)定位儀表盤質(zhì)心;其次通過CTPN+CRNN 網(wǎng)絡(luò)讀取開始刻度和最大量程的數(shù)值與位置,并且基于區(qū)域選擇的概率Hough 直線檢測(cè)算法減少了搜索范圍與計(jì)算量,取得了較好的檢測(cè)結(jié)果;最后利用角度法得到儀表示數(shù)。通過實(shí)驗(yàn)表明,本文提出的方法讀數(shù)的最大相對(duì)誤差低于0.6%,具有精確性和良好的使用價(jià)值。