李祖勝,孫玉秋,胡維 (長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023)
黎雄 (北京師范大學(xué)數(shù)學(xué)學(xué)院,北京 100875)
基于數(shù)字圖像處理技術(shù)的雙指針機(jī)械儀表讀數(shù)自動識別方法
李祖勝,孫玉秋,胡維 (長江大學(xué)信息與數(shù)學(xué)學(xué)院,湖北 荊州 434023)
黎雄 (北京師范大學(xué)數(shù)學(xué)學(xué)院,北京 100875)
針對工程應(yīng)用中大批量雙指針儀表的讀數(shù)識別問題,提出了一種基于數(shù)字圖像處理技術(shù)的自動識別算法:首先對圖像進(jìn)行預(yù)處理,包括圖像分割、濾波及膨脹腐蝕等步驟;然后設(shè)計了一種限定閾值的Hough變換,確定不同指針的位置關(guān)系,并根據(jù)指針與旋轉(zhuǎn)中心的距離關(guān)系標(biāo)定不同指針的矢量信息;最后利用表盤刻度與指針夾角的線性關(guān)系計算指針讀數(shù),并對指針與正刻度線重合、不同指針反向等情況進(jìn)行校正處理。試驗結(jié)果表明,該算法對于均勻刻度的雙指針儀表有出色的測試精度和識別效率。
Hough變換;雙指針儀表; 自動識別
雙指針式儀表在礦井作業(yè)、石油勘探、自來水運(yùn)輸?shù)阮I(lǐng)域有廣泛應(yīng)用,基于數(shù)字圖像處理技術(shù)的儀表自動識別技術(shù)能提高儀表檢測效率,減少人為誤差[1]。常見的指針式儀表檢測方法[2]有3種:步長法、圓周灰度檢測法和Hough變換法。目前有很多單一指針識別算法[3~6]研究成果:基于視覺顯著性區(qū)域檢測的指針式儀表讀數(shù)方法[7,8]可以有效解決因光照因素導(dǎo)致對儀表指針識別精度問題;喬麗娟等[9,10]研究的多指針型水表自動識讀系統(tǒng)為雙指針儀表研究提供借鑒基礎(chǔ);王瑞等[11]提出的改進(jìn)角度法能確定不同指針位置,但雙指針對稱位置刻度無法識別;王永會等[12]提出的圓弧快速檢測算法能有效檢測圓弧,而針對具有刻度的“毛刺”圓弧的識別效率差。因此,確定指針數(shù)量、檢測并標(biāo)定出不同指針的位置,確定指針在儀表盤的有效旋轉(zhuǎn)弧度,是解決雙指針自動讀數(shù)識別問題的關(guān)鍵。為此,筆者提出了一種基于數(shù)字圖像處理技術(shù)的自動識別算法。
圖1 圖像處理主要過程示意圖
工程應(yīng)用中機(jī)械式儀表盤的有效量程范圍可以分為2大類:一類是有效量程弧度為(0,π),如電流表和電壓表等;一類是有效量程弧度為(0,2π),如壓力表和鐘表等。筆者以常見的雙指針壓力表作為研究對象,對采集到的圖片運(yùn)用數(shù)字圖像處理技術(shù)進(jìn)行處理。圖像處理主要過程示意圖如圖1所示,包括目標(biāo)區(qū)域分割和濾波處理、圖像二值化、形態(tài)學(xué)處理、Hough變換確定指針的位置、不同指針位置的標(biāo)定和坐標(biāo)提取以及計算指針刻度。
1.1 圖像分割
采集到的圖像,往往含有儀表盤以及儀表盤邊框等干擾信息,對指針檢測造成干擾,因而提取僅含指針區(qū)域的步驟是重要的過程。采用人機(jī)交互式提取感興趣區(qū)域是常用的方法。但在大批量的圖像信息處理中,采用限定閾值的方式(見圖2(a))提取出僅含指針區(qū)域是較好的選擇。
1.2 濾波處理
濾波的目的在于消除在圖像采集、傳輸、接收等過程中不可避免的噪聲干擾,例如光電轉(zhuǎn)換過程、傳輸過程和人為因素等造成的噪聲干擾。濾波的方式分為線性濾波和非線性濾波兩大類。線性濾波常見的是均值濾波方法,能夠平滑突變因子但一定程度上模糊了圖像;非線性濾波常見的是中值濾波方法,能較好的抑制孤立噪聲且較好的保存圖像邊緣信息。依據(jù)中值濾波的基本原理,結(jié)合均值濾波的特性,筆者采用文獻(xiàn)[13]提出的自適應(yīng)中值濾波方法,在濾除噪聲的同時也保存了圖像的邊緣信息(見圖2(b))。
1.3 二值化處理
圖像二值化處理常見的方法有:最大類間方差法、迭代法、動態(tài)閾值分割法和類間最大距離法等??紤]到表盤圖像中指針與背景的明顯區(qū)分的特性,采用最大類間方差法,根據(jù)指針與背景之間的類間方差大小自動選取閾值。如圖2(c)所示,2幅圖像受到不同程度環(huán)境干擾,均可得到較好的二值化處理圖。
1.4 膨脹和腐蝕處理
圖像形態(tài)學(xué)處理是指針檢測處理過程中最重要的步驟之一。形態(tài)學(xué)處理可以解決特征提取、形狀識別等問題,基本運(yùn)算包含膨脹、腐蝕、開運(yùn)算和閉運(yùn)算等。由于二值化處理后的圖像指針信息不連續(xù),筆者運(yùn)用膨脹運(yùn)算將間斷點(diǎn)連接起來使得指針區(qū)域連續(xù)。但此時指針變得粗大,不利于讀數(shù)識別,運(yùn)用腐蝕運(yùn)算對粗大的形體進(jìn)行縮小,直至指針形體不再變化。最后進(jìn)行細(xì)化操作,使得指針圖像成為直線段,以便于清晰的觀察。圖2(d)顯示了細(xì)化處理后得到的結(jié)果圖。
圖2 圖像預(yù)處理
2.1 Hough變換直線檢測原理
Hough變換是圖像處理中常見的識別幾何形狀的方法。它根據(jù)曲線形狀獨(dú)特的規(guī)律性(如直線的斜率是恒定的,圓的半徑是恒定的),將數(shù)字圖像中給定曲線形狀的所有點(diǎn)都映射到Hough空間的某個點(diǎn)(稱之為峰點(diǎn))。采用文獻(xiàn)[9]的原理,依據(jù)二維空間上點(diǎn)共線性對應(yīng)于參數(shù)空間線共點(diǎn)性的對偶性原理,來擬合直線的相關(guān)參數(shù)。
對于給定的二維空間中的直線:
ρ=xcosθ+ysinθ ρ>0 0≤θ<2π
(1)
式中,ρ為直線到原點(diǎn)的距離; θ為直線與x軸的夾角。
Hough變換檢測直線的實現(xiàn)方法如下:
1)設(shè)計參量空間Pm×n,并為參量空間設(shè)置累加器矩陣Rm×n(m,n分別為ρ,θ的等份數(shù))。
2)為參量空間每一個P(i,j)分配一個累加器R(i,j)。
3)取二維空間的點(diǎn)(x0,y0)代入式(1),計算得到ρ與θ的一組值,并在參數(shù)空間內(nèi)將ρ與θ所對應(yīng)的累加器加1,即:
R(i,j)=R(i,j)+1
(2)
4)遍歷直線上所有點(diǎn)(xi,yi),參數(shù)空間每一個R(i,j)都得到統(tǒng)計。所對應(yīng)的值在空間Pm×n中形成一簇僅相交于一點(diǎn)的曲線(交點(diǎn)稱為峰點(diǎn))。參量空間P(i,j)累加數(shù)越大,使該簇曲線都相交于一點(diǎn)的表現(xiàn)型越明顯。提取峰點(diǎn)P(ρi,θj),參數(shù)ρi,θj就是二維空間中方程(1)的參數(shù)值,如圖3所示。
圖3 Hough變換直線檢測示意圖
2.2 指針位置標(biāo)定與坐標(biāo)提取
2.2.1 限定閾值標(biāo)定指針位置
Hough變換檢測直線是一個一對多的映射,然而原圖像上的刻度線、表盤量程圓弧以及表盤邊框等仍然可能形成直線,這對指針提取的工作相當(dāng)不利。筆者采用文獻(xiàn)[14]的方法,根據(jù)視覺顯著性原理采取如下3步方法對Hough變換進(jìn)行閾值限定,從而減少冗余計算,提高了程序性能,提升了指針識別的準(zhǔn)確率。
第1步:減少參數(shù)空間累積數(shù)的提取。在式(2)中,由于累積函數(shù)R(i,j)是獨(dú)立分布的,而筆者關(guān)心的是直線所對應(yīng)的最大累積值。據(jù)此限定參數(shù)空間峰點(diǎn)的統(tǒng)計數(shù)量NR≤3,從而降低計算復(fù)雜度。
第2步:采用增大步長法減少計算的次數(shù),由于式(2)中步長取值較短,每個像素位點(diǎn)都被計算,加重運(yùn)算負(fù)荷。因此,在不損失結(jié)果的精確性的前提下,適當(dāng)提高步長,可以提高程序的運(yùn)算速度。
第3步:限定角度θ的取值,依據(jù)表盤固有量程范圍,設(shè)計針對指針可能出現(xiàn)的范圍約束θ,使θ的取值變小,從而減少冗余數(shù)據(jù)的計算。
2.2.2 坐標(biāo)提取
指針在表盤中是有限長度的線段,通過對已檢測出的不同的線段進(jìn)行初始位置和截止位置的坐標(biāo)提取,計算不同指針的斜率,圖4(b)給出了不同指針的標(biāo)定和坐標(biāo)示意圖。分別提取不同標(biāo)記線段的初始位置坐標(biāo)xi(1,j)和截止位置坐標(biāo)yi(2,j)(其中,j=1表示橫坐標(biāo);j=2表示縱坐標(biāo)),依據(jù)斜率公式計算出不同指針的斜率ki:
(3)
2.3 雙指針讀數(shù)識別
2.3.1 有效量程的識別
有效量程的范圍可以由簡單方法完成:分別提取指針位置在初始刻度時和在滿刻度時圖像,計算初始位置指針斜率為k1;滿刻度位置指針斜率k2,則表盤有效量程θ(單位:度)的計算方式為:
(4)
2.3.2 不同指針位置的判定
規(guī)定指向刻度端為針頭,另一端為針尾。Hough變換能夠準(zhǔn)確的檢測出圖像空間中的直線,但是不能確定直線所在的矢量位置信息。如圖4(b)所示,當(dāng)有效量程范圍在(0.2π)時,檢測的同一根直線代表著針頭和針尾2個位置的刻度值。因此,對針頭位置的標(biāo)定對于指針的刻度的識別具有至關(guān)重要的作用??紤]到儀表指針設(shè)計的特性(針頭到旋轉(zhuǎn)中心的距離明顯大于針尾到旋轉(zhuǎn)中心的距離),比較初始位置橫坐標(biāo)xi(1,1)和截止位置橫坐標(biāo)yi(2,1)與整幅數(shù)字圖像行寬(記圖像行寬:N)的大小來判別針頭的位置,判別方式如下:
若xi(1,1)+yi(2,1) 若xi(1,1)+yi(2,1)>N,表示指針的位置在第Ⅰ、第Ⅳ象限。 這就導(dǎo)致了,在有限游戲中個別人的幸福必定是建立在多數(shù)人的痛苦之上的,“己之不欲,勿施于人”之類的倫理準(zhǔn)則是根本不可能真正落地的。這就是人類社會經(jīng)常陷入“囚徒困境”與“零和博弈”的現(xiàn)實邏輯。 2.3.3 讀數(shù)識別 結(jié)合實際儀表盤的有效量程范圍和儀表盤量程選擇不同的參數(shù)值,設(shè)儀表盤量程最小值為Imin,最大值為Imax,讀數(shù)為Ri。式(4)提供了有效量程θ的計算方法,指針在表盤上偏轉(zhuǎn)的角度與初始位置角度的差值?(單位:度)可以由式(5)具體給出: (5) (6) 由于不同指針的量程大小不一定全部相同,因此儀表盤量程最小值Imin、最大值Imax必須依據(jù)不同指針的實際的量程選取準(zhǔn)確的參數(shù)。 2.4 讀數(shù)的誤差處理 2.4.1 整刻度線讀數(shù)的誤差處理 由于參數(shù)的選取和計算關(guān)系(如正切函數(shù)減法運(yùn)算和常數(shù)π的選取)導(dǎo)致指針指向表盤整刻度時,輸出讀數(shù)Ri是一個非整數(shù)的情況。為避免該類誤差,在Hough變換檢測指針直線的過程中,根據(jù)累加器中峰點(diǎn)個數(shù)判別指針是否與刻度重合,當(dāng)指針峰點(diǎn)重合時,自動對讀數(shù)Ri取整,從而減小了整刻度線讀數(shù)的誤差,達(dá)到了較好的判別效果。 2.4.2 雙指針重合或反向時誤差處理 由于雙指針測量時指針位置是任意性的。從而有可能出現(xiàn)雙指針的針頭重合在一起,或者針頭反向在同一條直線上的情況,如圖5(g)和圖5(h)所示。為解決該類誤差,求出不同指針的線段長度Li: (7) 標(biāo)記最長的指針為參考指針L0。然后依據(jù)實時檢測指針長度L1與參考指針L0進(jìn)行比較: 若L1=L0,表明雙指針針頭重合在一起。此時,雙指針的斜率統(tǒng)一確定為L1的斜率ki。 2.4.3 指針垂直時誤差處理 根據(jù)算法原理,在Matlab-R2014b的運(yùn)行環(huán)境下,以常見的雙指針壓力表為例,檢驗該算法對儀表盤有效量程范圍是(0,2π)的強(qiáng)適應(yīng)性。圖5為一組常見的精度等級為0.1的雙指針壓力表示數(shù),其中圖5(a)~圖5(f)為一組壓力表不同刻度的分類標(biāo)定的結(jié)果; (g)為壓力表2根指針重合時標(biāo)定的結(jié)果; (h)為壓力表2根指針反向時標(biāo)定的結(jié)果。 圖5 雙指針讀數(shù)標(biāo)定 表1為圖5所示不同指針讀數(shù)的自動識別結(jié)果,其中C表示黑色指針實測讀數(shù),R表示紅色指針讀數(shù),EC表示黑色指針測試誤差,ER表示紅色指針測試誤差。 表1 雙指針壓力表不同測試數(shù)據(jù) 表1數(shù)據(jù)表明, (a)和(e)自動識別黑色指針數(shù)據(jù)跟人工讀取數(shù)據(jù)相同,符合指針與刻度線重合的誤差分析; (g)自動識別數(shù)據(jù)相同,是由指針重合在一起導(dǎo)致的;(h)數(shù)據(jù)與圖5(h)指針并行所示讀數(shù)識別的結(jié)果相同,與誤差分析處理一致。此外,自動識別誤差最大值比儀表盤固有精度小,表明此方法自動識別數(shù)據(jù)的實用性、可靠性都很好。 采用Hough變換進(jìn)行指針直線的檢測,并對雙指針的不同位置進(jìn)行標(biāo)定,使得檢測的指針位置即為實際指針的位置。對不同指針進(jìn)行分類處理以避免指針錯誤檢驗,并對整刻度讀數(shù)誤差和雙指針并行或者重合的情況做了后期的誤差矯正處理。數(shù)據(jù)表明,筆者設(shè)計的雙指針讀數(shù)自動識別的算法原理簡單,計算速度快,適用于各種類型的具有均勻刻度的儀表盤的指針的自動讀數(shù),如指針式壓力表、四分之一圓弧表盤等。由于表盤量程是人工測量,因此下一步工作重點(diǎn)將放在具有刻度齒的圓弧檢測。 [1]岳國義,李寶樹,趙書濤. 智能型指針式儀表識別系統(tǒng)的研究[J]. 儀器儀表學(xué)報,2003,24(4):430~431. [2] 張志佳,李媛,周純冰,等. 基于圖像識別的雙指針儀表自動讀數(shù)方法[J].沈陽工業(yè)大學(xué)學(xué)報,2011,33(5):550~555. [3] 孫浩晏. 基于機(jī)器視覺的指針式儀表讀數(shù)識別系統(tǒng)研究[D]. 長春:吉林大學(xué),2015. [4] 李勇. 指針式表盤的自動識別技術(shù)研究及實現(xiàn)[D].鄭州:鄭州大學(xué),2015. [5] 陶冰潔,李恩. 一種實用的指針式儀表讀數(shù)識別方法[J]. 光電工程,2011,38(4):145~150. [6] 劉復(fù)玉,呂新榮. 指針式壓力表自動讀數(shù)系統(tǒng)設(shè)計[J]. 電子測量技術(shù),2015,38(12):96~99. [7] 宋偉,張文杰,張家齊,等.基于指針區(qū)域特征的儀表讀數(shù)識別算[J]. 儀器儀表學(xué)報,2014, 35(12):50~58. [8] 張文杰,熊慶宇,張家齊,等.基于視覺顯著性的指針式儀表讀數(shù)識別算[J].計算機(jī)輔助設(shè)計與 圖形學(xué)學(xué)報,2015,27(12):2282~2295. [9] 朱芳芳,顧宏斌.一種改進(jìn)的Hough變換直線檢測算法[J]. 計算機(jī)技術(shù)與發(fā)展,2009,9(5):20 22. [10] 喬麗娟. 基于圖像處理技術(shù)的雙指針?biāo)碜詣有r炏到y(tǒng)[D].濟(jì)南:山東大學(xué),2015. [11] 王瑞,李琦,方彥軍. 一種基于改進(jìn)角度法的指針式儀表圖像自動讀數(shù)方法[J]. 電測與儀表,2013, 50(11):115~118. [12] 王永會,郭聳,袁帥.基于切線段匹配的快速圓弧檢測算法[J].計算機(jī)應(yīng)用, 2016,36(4):1126~1131. [13] 郭海霞,解凱.一種改進(jìn)的自適應(yīng)中值濾波算法[J]. 中國圖像圖形學(xué)報,2007,12(7): 1185~1188. [14] 陳繼華,李勇,田增國,等. 基于機(jī)器視覺的機(jī)械式表盤自動讀表技術(shù)的實現(xiàn)[J].鄭州大學(xué)學(xué)報(工學(xué)版),2015,36(3):101~105. [編輯] 張濤 2016-06-00 國家自然科學(xué)基金項目(11571041); 湖北省自然科學(xué)基金重點(diǎn)項目(2013CFA053)。 李祖勝(1992-),男,碩士生,現(xiàn)主要從事數(shù)字圖像處理方面的研究工作。 孫玉秋(1968-),女,博士,教授,博士生導(dǎo)師,現(xiàn)主要從事數(shù)字圖像處理、模式識別等方面的教學(xué)與研究工作;E-mail:yqsun@yangtzeu.edu.cn。 TP391 A 1673-1409(2016)31-0031-06 [引著格式]李祖勝,孫玉秋,胡維,等.基于數(shù)字圖像處理技術(shù)的雙指針機(jī)械儀表讀數(shù)自動識別方法[J].長江大學(xué)學(xué)報(自科版),2016,13(31):31~36.3 試驗
4 結(jié)語