,,, ,
(浙江工業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,杭州 310023)
指針式儀表由于結(jié)構(gòu)簡單,價格低廉,防凍防水,在社會各個生產(chǎn)行業(yè)得到了廣泛的應(yīng)用。隨著社會的進步與發(fā)展,指針式儀表人工讀數(shù)因存在低效率、易疲勞、管理困難和實時性差等問題,已難以滿足實際生產(chǎn)與工作的需求。而基于機器視覺的自動識別技術(shù)的發(fā)展與應(yīng)用,為利用計算機代替人工提供了技術(shù)支撐。
目前,國內(nèi)外對于指針式儀表識別做了大量的研究,取得了一定的成果。通常指針式儀表示數(shù)識別包括指針定位與儀表示數(shù)識別兩部分。其中,指針定位主要是通過圖像處理或機器視覺技術(shù)確定儀表刻度與指針的相對位置進而確定指針位置, 或者直接利用指針特征確定指針位置; 主要方法包括:Hough直線變換法[1-7]、剪影法、中心投影法、最小二乘法。Hough直線變換法通常將指針圖像二值化后,采用Hough變換檢測指針直線,其中相關(guān)方法有:李金彪[1]提出了一種基于Snake 算法的自動識別方法,分為Hough 變換粗定位圓形特征、Snake算法精定位圓形特征、Hough 變換檢測直線特征3個環(huán)節(jié),該方法適合恒定光照條件下的儀表指針檢測;Han[2]提出一種基于改進Hough變換的,先通過自適應(yīng)中值濾波與二值化方法對儀表圖像進行預(yù)處理,然后使用改進的Hough變換提取指針直線角度讀取示數(shù);Yue等[3]提出一種基于Hough 變換自動儀表讀數(shù)方法, 通過測量指針直線與零刻度直線的夾角來計算儀表示數(shù);剪影法[4,8]是指將不同時刻的兩幅指針式儀表圖像做差值運算,進而求得指針位置和偏轉(zhuǎn)角度,該方法適用于光照充足條件下獲取圖像指針位置,但對于光照變化大、有陰影干擾的環(huán)境,剪影法效果并不理想;另外,Wang Qi等[9]采用最小二乘法擬合定位指針位置,但對噪聲點敏感且運算量大;張永強等[10]提出了基于收斂映射CM-Hough變換進行指針檢測的算法,利用Hough變換的檢測結(jié)果直接算出指針位置;張文杰等[11]提出了基于視覺顯著性區(qū)域檢測的指針式儀表讀數(shù)方法,利用視覺顯著性檢測先驗知識提取指針區(qū)域,再通過旋轉(zhuǎn)圖像找到橫坐標(biāo)投影最大值,計算指針旋轉(zhuǎn)角度后,利用擬合的線性函數(shù)換算為儀表示數(shù)。楊志娟等[12]提出基于圓周區(qū)域的累積直方圖法對指針進行定位,由指針偏轉(zhuǎn)角度得到示數(shù)。
基于圖像特征的指針式儀表示數(shù)識別已有很多方法,但指針式儀表種類繁多,形態(tài)各異,很難有通用方法能解決所有的儀表示數(shù)識別問題。針對刻度均勻分布的指針式儀表,本文提出一種基于標(biāo)定的指針式儀表數(shù)據(jù)視覺讀取方法。首先,在系統(tǒng)安裝完成后對儀表進行標(biāo)定,記錄儀表的先驗信息,如表盤位置,儀表量程,儀表最大、最小值刻度線斜率及大致區(qū)域;對于實時采集到的儀表圖像調(diào)取對應(yīng)標(biāo)定模板配置文件,用于儀表最大、最小刻度線識別與斜率計算;其次,通過儀表表盤圖像預(yù)處理及連通區(qū)域篩選進行指針粗定位;然后,融合Hough變換法和邊緣聚類與擬合方法實現(xiàn)儀表指針邊緣的精確定位,進而實現(xiàn)指針數(shù)據(jù)的識別與讀取。為指針式儀表數(shù)據(jù)的讀取提供了一種基于機器視覺高精度自動采集方法。
儀表標(biāo)定是指在系統(tǒng)安裝完成后,對儀表表盤各部分的大致位置進行標(biāo)定,并將相關(guān)先驗信息填入儀表模板庫中。每個系統(tǒng)安裝完成后只需要進行一次標(biāo)定。為保證圖像識別的魯棒性,標(biāo)定區(qū)域應(yīng)稍大于檢測區(qū)域。不同類型儀表的標(biāo)定信息可能不同,通常標(biāo)定信息包括:儀表量程、儀表最小刻度線、最小刻度線識別區(qū)、儀表最大刻度線、最大刻度線識別區(qū)、圓形表盤識別區(qū)、方形表盤識別區(qū)、噪聲屏蔽區(qū)等。圖1所示為某類型避雷器監(jiān)測器標(biāo)定結(jié)構(gòu)圖。
進行指針示數(shù)識別前,需要根據(jù)儀表名從儀表模板庫文件中讀取該儀表的標(biāo)定信息。通過截取當(dāng)前圖像中標(biāo)定區(qū)域的子圖,完成后續(xù)刻度線斜率識別、指針示數(shù)識別等步驟。
圖1 儀表標(biāo)定結(jié)構(gòu)圖
在獲取儀表圖像過程中,由于相機抖動等干擾,往往造成表盤區(qū)域偏移或旋轉(zhuǎn),不利于指針示數(shù)識別。為此,本文先基于標(biāo)定模板完成儀表表盤最大、最小刻度線識別與斜率計算,具體為:在儀表標(biāo)定后,先讀取儀表模板庫中對應(yīng)的標(biāo)定信息,得到最大刻度線識別區(qū)和最小刻度線識別區(qū)位置;然后截取當(dāng)前儀表圖像中對應(yīng)子圖,并完成儀表最大、最小刻度線識別與斜率計算。
最小刻度線斜率和最大刻度線斜率的識別過程相似,此處僅給出最小刻度線斜率識別過程,其具體步驟為:
1)從模板庫文件讀取最小刻度線識別區(qū)的標(biāo)定信息,并截取當(dāng)前儀表圖像對應(yīng)位置最小刻度線識別區(qū)子圖,結(jié)果如圖2(a)所示。
2)對最小刻度線識別區(qū)圖進行預(yù)處理,具體包括灰度化、自適應(yīng)閾值二值化和Canny算子邊緣檢測。預(yù)處理后得到的最小刻度線識別區(qū)邊緣圖如圖2(b)所示。
3)對最小刻度線識別區(qū)邊緣圖采用Hough變換提取nmin條線段lMINi(i=1,2,3,…,nmin),結(jié)果如圖2(c)所示。線段的兩個端點分別記為AMINi(xAi,yAi)和BMINi(xBi,yBi),xAi和xBi表示點AMINi和BMINi的橫坐標(biāo),yAi和yBi表示點AMINi和BMINi的縱坐標(biāo);坐標(biāo)原點為圖像的左上角,根據(jù)式(1) 計算每條線段斜率ki:
(1)
4)對線段進行聚類與擬合,得到集合Hcombine={lj|j=1,2,3,…,nc},其中nc表示合并后的直線數(shù)量。邊緣聚類與擬合具體步驟見2.2,結(jié)果如圖2(d)所示。
5)根據(jù)最小刻度線識別區(qū)和表盤圓心位置信息,估計最小刻度線的斜率kminE:
(2)
其中:Xmin和Ymin分別表示最小識別區(qū)圖中心在原圖中的橫坐標(biāo)和縱坐標(biāo),XC和YC分別表示原圖中心的橫坐標(biāo)和縱坐標(biāo)。
6)最小刻度線斜率必定穩(wěn)定在估計斜率附近的某范圍內(nèi),即滿足|θj-θminE|≤θthr,其中θj表示刻度直線與水平向右方向的夾角,θminE表示估計最小刻度線斜率對應(yīng)的角度,θthr為角度估計閾值。對于本例儀表類型,角度估計閾值為5°。篩選后的最小值圖像如圖2(e)所示。
7)計算最小值圖像中長度最大線段llmax的斜率,作為最小刻度線的斜率Kmin。
圖2 計算最小刻度線斜率
由于圖像模糊、噪聲等原因,采用Hough變換檢測直線時易出現(xiàn)線段斷裂、錯位及多條較短線段等情況,嚴(yán)重影響圖像識別的效果。為提高直線檢測的精度,本文提出了一種邊緣聚類與擬合的方法,其具體步驟如下:
1)對線段集合LP進行擬合,LP={li|i=1,2,…,np},其中,li表示LP中第i條線段,np表示檢測出的線段數(shù)量;
且當(dāng)i≠j時Li∩Lj=φ
(3)
Li∈L,Lj∈L,Li?Lp,Lj?Lp
(4)
|θvi-θvj|≤θ0
(5)
|θui-θvj|>θ0,u≠v
(6)
dis(lvi,lvj)≤λ0,lvi∈Lv,lvj∈Lv
(7)
dis(lui,lvj)>λ0,lui∈Lu,lvj∈Lv
(8)
dis(lui,lvj)=min(dlui→lvj,dlvj→lui)
(9)
其中:θvi表示第v個子集中第i條線段lvi與水平向右方向的夾角,θvj表示第v個子集中第j條線段lvj與水平向右方向的夾角,θui表示第u個子集中第i條線段lui與水平向右方向的夾角,θ0表示事先給定的角度閾值,λ0表示事先給定的線段距離判斷閾值;dlui→lvj表示線段lui中點到線段lvj的垂直距離,dlvj→lui表示線段lvj中點到線段lui的垂直距離;
3)對完成聚類的線段集合進行合并,將Lv中元素按線段最左點的橫坐標(biāo)按從小到大進行排序;對Lv中線段lv1和lv2進行合并,令合并后的線段為lvr,其中,kvr和bvr分別表示lvr的斜率和截距(xcvr,ycvr)和(xdvr,ydvr)分別表示線段lvr的左右兩個端點的坐標(biāo),根據(jù)斜率kvr的取值采用式(12)或(13)進行計算;從Lv中刪除線段lv1和lv2,并將lvr加入到集合Lv中;
(10)
(11)
(12)
(13)
其中:kv1和kv2分別表示線段lv1和lv2的斜率,θv1表示lv1與水平向右方向的夾角,θv2表示lv2與水平向右方向的夾角,dv1和dv2分別表示線段lv1和lv2的長度,bv1和bv2分別表示lv1和lv2的截距;(xcv1,ycv1)表示lv1的最左點,(xdv2,ydv2)表示線段lv1和lv2的最右點;重復(fù)這一過程直到Lv中無線段可合并,得集合Lv合并后線段lv。
4)最終得到集合Lafter={lv|v=1,2,3,…,q},其中l(wèi)v即為子集Lv通過段合并后得到的線段。
通常情況下,Hough變換能精確定位指針邊緣,但在光照變化或表盤圖案干擾下,特別是粗指針識別中,Hough變換得到的直線容易偏離表盤軸心,使實際表盤上的指針與檢測出的直線不匹配,導(dǎo)致算法識別精度下降。為解決上述問題,本文先通過儀表表盤圖像預(yù)處理及連通區(qū)域篩選得到指針大致區(qū)域,然后融合Hough變換法和邊緣聚類與擬合方法實現(xiàn)儀表指針邊緣的精確定位,進而實現(xiàn)指針示數(shù)的識別。
為減少噪聲、表盤圖案等干擾對計算指針夾角的影響,本文先對儀表指針進行粗定位。通過標(biāo)定模板和粗指針的特征,對表盤圖像進行預(yù)處理及連通區(qū)域篩選,得到粗指針在儀表中的大致區(qū)域。具體步驟如下:
1)讀取模板庫文件中方形表盤識別區(qū)位置信息,再從輸入圖像中截取對應(yīng)子圖得到方形表盤識別區(qū)圖,如圖3(a)所示。
2)對方形表盤識別區(qū)域圖進行雙邊濾波、灰度化、自適應(yīng)閾值的二值化、區(qū)域屏蔽和Canny邊緣檢測等預(yù)處理。預(yù)處理后得到的區(qū)域屏蔽圖如圖3(b)所示。
3)在區(qū)域屏蔽圖中查找連通域。根據(jù)指針偏轉(zhuǎn)范圍在儀表量程內(nèi)的先驗知識,剔除儀表量程外的連通域,得到篩選后的矩形集合C:
C={(xi,yi,wi,hi)|i=1,2,3,...,m}
(14)
其中:(xi,yi)表示最小外接矩形左上角的坐標(biāo),wi和hi分別表示最小外接矩形的寬度和高度,m表示最小外接矩形數(shù)量,矩形中點坐標(biāo)表示為(xci,yci):
(15)
(16)
集合C中矩形須滿足條件:(1)xci (17) 其中:λc為事先給定的距離判斷系數(shù);W表示表盤識別區(qū)域圖的寬度;(Xpc,Ypc)表示表盤識別區(qū)域圖的中心坐標(biāo),位置篩選后的表盤外接矩形圖如圖3(c)所示。 4)篩除量程外的干擾后,指針區(qū)域所在連通域的最小外接矩形面積最大。在集合Cin中找到面積最大的外接矩形,記為rmax=(xmax,ymax,wmax,hmax),(xmax,ymax)為矩形rmax左上角的坐標(biāo),wmax和hmax分別為矩形rmax的寬度和高度; 5)計算矩形rmax在表盤中所在象限qr。該坐標(biāo)系以表盤區(qū)域圓心為原點,水平向右為x軸正方向,垂直向上為y軸正方向。 (18) 圖3 指針粗定位 針對直接Hough變換檢測直線無法準(zhǔn)確檢測出指針邊緣的問題,本文在Hough變換法基礎(chǔ)上,再進行邊緣聚類與擬合得到指針精確邊緣,具體為: 1)根據(jù)指針位置矩形rmax,在表盤識別區(qū)域圖中截取指針圖像,如圖4(a)所示。 2)對指針圖像進行灰度化、自適應(yīng)閾值的二值化和圖像Canny算子邊緣提取等預(yù)處理,得到指針邊緣圖如圖4(b)所示。 3)采用Hough變換對指針邊緣圖進行直線檢測,得到線段集合LP={li|i=1,2,…,np},其中,li表示LP中第i條線段,np表示檢測出的線段數(shù)量。Hough直線檢測結(jié)果如圖4(c)所示。 4)對LP進行邊緣聚類與擬合,得到線段集合LC={(pcv,pdv)|v=1,2,3,…,q},pcv,和pdv表示合并后的線段的兩個端點,q表示擬合后得到的線段數(shù)量。具體步驟見2.2。邊緣聚類與擬合后結(jié)果如圖4(d)所示。 5)在指針圖像中,指針部分的線段較表盤背景干擾線段較長。因此,可從集合LC中篩選出長線段并構(gòu)建集合Llong={(x1j,y1j,x2j,y2j,kj)|j=1,2,3,…,qL},qL表示Llong中的線段數(shù)量,其中的長線段滿足:(x1j-x2j)2+ (y1j-y2j)2≥(λlong·wmax)2,λlong為事先給定的長線段判斷系數(shù),(x1j,y1j) 和(x2j,y2j)分別表示第j條長線段的起點坐標(biāo)和終點坐標(biāo),kj表示第j條長線段的斜率。長線段篩選后結(jié)果如圖4(e)所示。 圖4 指針精確定位 通常指針式儀表刻度是均勻的,儀表刻度與指針夾角之間的對應(yīng)關(guān)系為線性變化。儀表指針精確定位后,可計算出指針與最小刻度線之間的夾角,然后將夾角轉(zhuǎn)化為指針示數(shù),其具體步驟為: 1)計算指針?biāo)谥本€斜率Kp,即長線段集合Llong中的平均斜率: (19) 2)計算指針指向方向與最小刻度線之間的角度θ: (20) 3)根據(jù)區(qū)域模板庫文件已知的最小刻度值V1和最大刻度值V2計算指針示數(shù)V: (21) 以某品牌避雷器監(jiān)測器為例,對本文方法的有效性進行實驗驗證。圖5為某品牌避雷器經(jīng)過標(biāo)定后,存入模板庫表盤信息的標(biāo)定界面。 圖5 某品牌避雷器監(jiān)測器標(biāo)定界面 圖5所示避雷器監(jiān)測器量程為 0 ~ 3 mA,精度是0.001 mA。在實際的工程應(yīng)用中,指針角度的識別誤差允許范圍為3°內(nèi),允許示數(shù)誤差為0.037 5 mA。表1為有強光照時對該避雷器監(jiān)測器的實驗測試結(jié)果,其中真實值為多人示數(shù)的平均值。由表1可知,最大絕對誤差為0.02 mA,滿足儀表自動示數(shù)的精度識別要求。 表1 避雷器監(jiān)測器的實驗結(jié)果 針對指針式儀表數(shù)據(jù)的精確識別問題,提出一種基于標(biāo)定的指針式儀表數(shù)據(jù)視覺讀取方法。首先,基于標(biāo)定模板完成儀表表盤最大、最小刻度線識別與斜率計算,解決了表盤區(qū)域偏移或旋轉(zhuǎn)導(dǎo)致指針夾角存在誤差進而影響儀表示數(shù)精度問題。其次,通過儀表表盤圖像預(yù)處理減少噪聲干擾,然后根據(jù)粗指針特點,篩選連通區(qū)域得到指針大致區(qū)域,避免了表盤圖案帶來的干擾。然后,融合Hough和邊緣聚類與擬合方法實現(xiàn)儀表指針邊緣的精確定位。最后根據(jù)指針夾角計算儀表示數(shù)。實驗結(jié)果表明,本文算法能夠準(zhǔn)確、穩(wěn)定的識別出指針式儀表示數(shù),達(dá)到實用化要求。 [1]李金彪.基于Snake算法的圓盤儀表示數(shù)識別技術(shù)研究[J].電測與儀表,2016,53(9):19-22. [2]Han J, Li E, Tao B, et al. Reading recognition method of analog measuring instruments based on improved Hough transform[A]. International Conference on Electronic Measurement & Instruments[C]. IEEE, 2011:337-340. [3]Yue X F, Zhang M, Zhou X D, et al. The research on auto-recognition method for analogy measuring instruments[A]. Proceedings of International Conference on Computer, Mechatronics, Control and Electronic Engineering[C]. Los Alamitos: IEEE Computer Society Press, 2010: 207-210. [4]崔家瑞, 紀(jì)建才, 胡廣大,等. 基于圖像的換流站用避雷器儀表識別[J]. 電工技術(shù)學(xué)報, 2015, 30(S1):377-382. [5]林獻(xiàn)坤, 林羿江, 朱 琳. 機械儀表的機器視覺數(shù)據(jù)自動獲取技術(shù)[J]. 組合機床與自動化加工技術(shù), 2016, (7):19-22. [6]朱海霞. 基于改進Hough變換和BP網(wǎng)絡(luò)的指針儀表識別[J]. 電測與儀表, 2015, 52(5):11-14. [7]施 健,張 冬,何建國,等.一種指針式化工儀表的遠(yuǎn)程抄表設(shè)計方法[J]. 自動化儀表, 2014, 35(5): 77-79. [8]宋 偉,張文杰,張家齊,等.基于指針區(qū)域特征的儀表讀數(shù)識別算法[J].儀器儀表學(xué)報,2014,35(12):50-58. [9]Wang Q, Fang Y, Wang W, et al. Research on automatic reading recognition of index instruments based on computer vision[A]. Proceedings of the 3rd IEEE International Conference on Computer Science and Network Technology[C].2013:10-13. [10]張永強,邸金紅,馬鵬閣.基于機器視覺的汽車儀表盤指針檢測[J].計算機測量與控制,2015,23 (6) :1922-1924. [11]張文杰, 熊慶宇, 張家齊,等. 基于視覺顯著性的指針式儀表讀數(shù)識別算法[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報, 2015, 27(12):2282-2295. [12]楊志娟,袁縱橫等.基于圖像處理的指針式儀表智能識別方法研究[J].計算機測量與控制, 2015,23(5):1717-1720.3.2 儀表指針精確定位
3.3 計算指針夾角與示數(shù)識別
4 實驗結(jié)果與分析
5 結(jié)論