張柯,朱永宏,陸進(jìn)宇,郝霞莉,周文輝
(1. 河南省計量科學(xué)研究院,河南 鄭州 450008; 2. 河南省醫(yī)療器械檢驗所,河南 鄭州 450008)
機(jī)械式冷水水表是居民日常用水的主要計量器具,國家規(guī)定,住宅生活用水表在出廠前須強(qiáng)制檢定。傳統(tǒng)的通過人工讀數(shù)、人工計算的檢定方法存在自動化程度低、人為因素影響大的問題。對此,學(xué)者們利用PLC技術(shù)和機(jī)器視覺技術(shù)對原有的檢定方式進(jìn)行自動化改造,以提高讀數(shù)精度和檢定裝置的自動化水平。
國內(nèi)外利用機(jī)器視覺對水表讀數(shù)的方法主要包含計算梅花針轉(zhuǎn)數(shù)[1-2 ]和指針讀數(shù)識別[3-5]。由于梅花針轉(zhuǎn)速高,視覺檢定過程中,攝像機(jī)容易出現(xiàn)失幀的情況導(dǎo)致讀數(shù)誤差,因此,研究主要集中在指針讀數(shù)識別。BELAN[6]等人利用 Bresenham 畫線法提取指針直線,其檢測直線的效率與霍夫變換法相比提高了45%。湯思孟[7]等人采用一種基于動態(tài)視頻圖像處理和模式識別算法的水表快速自動檢定技術(shù)獲取水表讀數(shù)。呂露[8]提出了一種基于 SVM 分類器加 HOG 特征的指針式水表讀數(shù)自動識別方案。但是對于水表指針存在大氣泡的干擾,檢定算法的實時性差等問題,仍需要進(jìn)一步研究。
本文以檢定系統(tǒng)的穩(wěn)定性和準(zhǔn)確性為目標(biāo),設(shè)計了水表指針識別算法,并結(jié)合稱重法,研制了一種基于機(jī)器視覺的稱重法全自動水表檢定裝置,提高水表檢定裝置的自動化程度。
該檢定裝置由PC工控機(jī)、圖像采集模塊、視覺檢定模塊、電氣控制模塊等組成,采用稱重法計量標(biāo)準(zhǔn)水量,設(shè)計了移動式圖像采集平臺,由伺服電機(jī)帶動使相機(jī)做直線運動,并在每個水表工位設(shè)置光電傳感器用于觸發(fā)相機(jī)拍照,實現(xiàn)單個相機(jī)完成多工位的水表圖像采集,節(jié)約了設(shè)備成本,并利用PLC實現(xiàn)電磁閥門的自動控制。該檢定裝置的結(jié)構(gòu)如圖1所示。

1—工控機(jī);2— PLC;3—圖像采集平臺;4—穩(wěn)壓罐;5—電磁閥;6—電子稱式儲水桶。圖1 稱重法水表檢定裝置結(jié)構(gòu)圖
本文設(shè)計了基于PLC 及人機(jī)界面的全自動水表檢定裝置控制系統(tǒng),主要負(fù)責(zé)設(shè)備的通訊、邏輯信號控制及伺服電機(jī)控制、閥門控制,以實現(xiàn)生產(chǎn)自動化。控制系統(tǒng)總體設(shè)計如圖2所示。

圖2 檢定裝置控制系統(tǒng)圖
由于水表在生產(chǎn)線上的放置會存在一定的偏差,造成每次子表盤的位置發(fā)生變化,導(dǎo)致算法定位的水表子表盤中心位置偏差大。目前主要的解決方法是利用水表的幾何結(jié)構(gòu)特征來提高各子表盤中心的定位精度,但在后續(xù)利用指針旋轉(zhuǎn)角度進(jìn)行讀數(shù)時會造成誤差累計。本方案中此處先采用模板匹配的方法對水表圖像進(jìn)行旋轉(zhuǎn)和平移校正,減小圖像位置偏差。
方案設(shè)計中的水表指針讀數(shù)包含基于模板匹配圖像校正、指針定位、計算指針讀數(shù)、讀數(shù)校正等部分,算法流程圖如圖3所示。

圖3 算法流程圖
模板的選擇需要具有唯一性和方向性,根據(jù)這一特征,選擇表盤表面的箭形符號作為模板。采用canny算子對圖像進(jìn)行邊緣提取,來獲取圖像的邊緣特征點以及邊緣點的梯度。
canny算法[9]的基本步驟為:
1) 利用高斯濾波器對圖像進(jìn)行去噪,設(shè)二維高斯函數(shù)為:
(1)
式中δ為平滑因子,控制著圖像的平滑程度。
2) 計算梯度的幅值和方向,水平方向分量為G(x),豎直方向分量為G(y),則邊緣梯度幅值和方向為:
(2)
3) 對梯度幅值進(jìn)行非極大值抑制。為確定邊緣必須細(xì)化幅值圖像中的屋脊帶,即保留幅值局部變化最大的點。這一過程叫非極大值抑制(non-maxima suppression, NMS),它會生成細(xì)化的邊緣。對于傳統(tǒng)canny邊緣檢測,需要檢查其梯度方向的兩個相鄰像素點值,如果小于其值則為非邊緣點,將其置為0,否則為邊緣點。
4) 雙門限檢測與邊緣連接。經(jīng)過非極大值抑制后依然會存在虛假邊緣,因此為了得到真實的邊緣,采用高低閾值對經(jīng)過非極大值抑制后的圖像進(jìn)行進(jìn)一步操作。如果該點的像素值大于高閾值則為邊緣點,如果該點的像素值小于低閾值則不是邊緣點,如果該點的像素值介于兩個閾值之間,則繼續(xù)判斷是否是上述邊緣點的8鄰域點,如果是則是邊緣點,否則不是。
最終提取的模板如圖4所示。

圖4 模板
設(shè)模型由一系列點pi=(xi,yi)T組成的點集,并且每個點的梯度向量為di=(ti,ui)T,i=1,2,…,n。待匹配圖像點的方向向量為ex,y=(vx,y,wx,y)。由于待匹配圖像上的模板位置是不確定的,因此在進(jìn)行匹配的時候,需要將模板經(jīng)過剛性變換,例如平移和旋轉(zhuǎn)。因此變換過的點坐標(biāo)和方向向量為p'=Ap,d'=Ad,其變換矩陣
(3)
為了獲取魯棒的匹配結(jié)果,相似性度量方法必須對遮擋、陰影、非均勻光照具有魯棒性,因此采用經(jīng)過變換后的模型點與待匹配圖像點的梯度內(nèi)積和作為相似性判斷標(biāo)準(zhǔn)[10]。
(4)
上述的歸一化公式能夠?qū)φ趽跻约皹O性變化具有魯棒性。為了能夠快速尋找到模板位置,此處一方面利用圖像金字塔進(jìn)行加速,在最頂層金字塔采用窮舉法進(jìn)行查找,當(dāng)找到大致位置,然后在每一層的鄰域位置進(jìn)行修正,最終得到模板位置。另一方面當(dāng)進(jìn)行相似度計算時,為了提高查找速度,在此設(shè)置一個閾值,若當(dāng)前點的得分小于設(shè)置閾值,即停止當(dāng)前位置的計算,這樣就能避免后續(xù)點的無效計算。其閾值計算公式如下:
(5)
其中:smin為人為設(shè)定的最小相似度分?jǐn)?shù),g為控制匹配速度的因子,smin、g的取值范圍為0~1;j為已經(jīng)計算點的個數(shù);n為中心點周圍已經(jīng)匹配過點的個數(shù)。
利用水表指針的顏色信息進(jìn)行指針提取,采用LRCD方法提取表盤中的紅色指針,將紅色分量與黑色分量做差。其公式如下:
C=R-Y=0.3R-0.11B
(6)
接著對指針進(jìn)行二值化,并提取其輪廓,利用最小二乘法[11]進(jìn)行圓心擬合。由于指針存在較長的尖端部分,因此直接利用最小二乘法所擬合得到的圓精度不高,存在偏差,同時當(dāng)存在氣泡的時候,擬合效果更差。因此提出一種改進(jìn)的最小二乘法擬合圓心算法,其基本步驟為:
1) 利用最小二乘法進(jìn)行圓擬合,得到初始圓心;
2) 以初始圓心為中心點,將指針輪廓分為4部分小輪廓;
3) 計算每部分輪廓點到圓心的距離后,再計算距離值的方差;
4) 選取方差最小的輪廓點集作為新的擬合對象,回到步驟1),當(dāng)新的圓心位置與上次圓心的位置保持基本不變時,則停止運算。
傳統(tǒng)最小二乘法擬合效果如圖5所示,改進(jìn)的最小二乘法擬合效果如圖6所示。

圖5 改進(jìn)前擬合結(jié)果

圖6 改進(jìn)后擬合結(jié)果
從圖6的擬合結(jié)果可得該算法具有更高的擬合精度,且對于存在氣泡的水表指針圖像仍可以準(zhǔn)確定位。
為了確定指針方向,需要明確知道指針?biāo)A舻奈恢谩S捎谥羔樶樇馕恢檬且粋€較為明顯的角點,為了快速而精確地獲取指針位置,采用harris角點檢測算法,其角點定義為當(dāng)圖像向任意方向移動微小距離,檢測窗口內(nèi)灰度均會產(chǎn)生劇烈變化,則該點為角點。其原理公式如下:
C(x,y)=∑w[I(xi+Δx,yi+Δy)-I(xi,yi)]2=

(7)
(8)
式中:C(x,y)為灰度變化量;I是圖像灰度函數(shù),(xi,yi)表示落在w內(nèi)點的坐標(biāo),w為窗口函數(shù);Ix、Iy為x、y的一階偏導(dǎo)數(shù);M為圖像自相關(guān)矩陣,定義角點響應(yīng)函數(shù)。
R=det(M)-k·Tr2(M)
(9)
當(dāng)R高于設(shè)定閾值T時,該點為角點。k為經(jīng)驗常數(shù),一般取0.04~0.06。為了避免其他角點的干擾,將通過圓心到指針尖端的距離作為閾值,進(jìn)行篩選。
由于經(jīng)過模板匹配及仿射變換后,子表盤的位置已經(jīng)確定,因此零點的位置也被確定下來。為了得到指針的讀數(shù),采用角度換算間接得到數(shù)字信息。通過計算圓心與零點形成的直線和圓心與指針角點形成的連線之間的夾角獲得指針的讀數(shù)。

表1 夾角與讀數(shù)之間的關(guān)系 單位:(°)
角度計算公式如下:
(10)
Num=Floor(angle/36)
(11)
式中:angle為所求的夾角,anglei為指針指向與水平線的夾角,angle0為零刻度直線的角度;Num為最終的指針讀數(shù);Floor表示向下取整。利用上式進(jìn)行判斷得到最終的讀數(shù)。讀數(shù)的結(jié)果如圖7所示。

圖7 讀數(shù)結(jié)果
實物如圖8所示。

圖8 檢定裝置實物圖
在設(shè)備調(diào)試階段,為了驗證本文檢定系統(tǒng)的準(zhǔn)確性和穩(wěn)定性,對生產(chǎn)數(shù)據(jù)進(jìn)行了統(tǒng)計。對 15 個生產(chǎn)班次的水表圖像進(jìn)行人工識別,每個班次人工識別 100 張,對比系統(tǒng)識別的數(shù)值。系統(tǒng)的正確識別率如圖9所示。

圖9 本文檢定系統(tǒng)圖像識別正確率圖
從圖9可得:每個班次系統(tǒng)的識別正確率都在94%以上,平均識別正確率為95.8%,具有較高的識別率和穩(wěn)定性。通過對識別錯誤的水表圖像統(tǒng)計分析發(fā)現(xiàn),這類圖像主要由于水表表盤裝配時混入了空氣,導(dǎo)致檢定時表盤有特大氣泡覆蓋在指針上,造成指針無法清晰成像。可以在水表檢定前,通過人為調(diào)整降低該情況的發(fā)生。經(jīng)統(tǒng)計,調(diào)整后系統(tǒng)的識別正確率保持在98%以上。
對改造后的水表檢定裝置的產(chǎn)量進(jìn)行統(tǒng)計,共統(tǒng)計15個生產(chǎn)班次,生產(chǎn)數(shù)據(jù)如圖10所示。

圖10 本文檢定裝置與人工檢定法產(chǎn)量對比
從圖10可得:改造后的水表檢定裝置每個班次的水表檢定數(shù)量都提高了 44 只以上,生產(chǎn)效率得到了提高。
設(shè)計了一種高效準(zhǔn)確的水表檢定算法,使用單個相機(jī)完成水表圖像采集,并結(jié)合PLC技術(shù)研制了一種新型的稱重法水表檢定裝置。實驗結(jié)果表明該檢定裝置具有一定的工程實用價值。