基于連通域標記的壓力表讀數自動識別系統
針對壓力表這種模擬儀表沒有提供接口供外部讀取數據的情況,設計一種通過機器視覺技術來自動識別壓力表讀數的系統。運用標 記連通域的方法標記指針及刻度線,Hough變換求取指針直線,求出表盤的圓心及半徑,再在指針所指刻度區間運用角度法求得指針讀數。經 實驗證明,該系統讀取數據較人工估讀數據更加準確,能夠避免人為因素干擾,并能提高壓力表檢定效率。
0.引言
壓力表是以彈性元件為敏感元件,用于測量對 儀表零件不起腐蝕作用的液體、氣體和蒸汽表壓力 的儀表,一般可分為普通壓力表和精密壓力表。壓 力表結構簡單、堅固耐用,使用方便,易于維護修理, 在基層單位應用普遍。基層單位使用的壓力表,絕 大部分是普通壓力表,一塊普通壓力表,一年可能要 送到計量站溯源兩次,計量站壓力表一年的檢定任 務量到達上千臺次。而大部分壓力表屬于機械儀 表,表本身并沒有提供可供外部讀取數據的接口,每 次檢定壓力表,都需要人為的讀取數據,再與標準表 讀數計算得出誤差,效率低下,受人為因素影響較 大,隨著檢定業務量的增大,檢定人員也會產生視覺 疲勞,影響數據的估讀,可靠性及準確性都會隨著降 低。近年來,計算機視覺技術快速發展,為壓力表等 模擬指針儀表實現自動讀數提供了強有力的技術支 持,將人眼讀數轉化為計算機自動讀數,避免了人為 因素對讀數產生的影響,同時提高了讀數的精確性 及檢定效率。
1.系統構成
此系統由三大部分構成,組成框圖如圖1所示。
儀表部分:在同一壓力泵平臺上,安裝標準表及 被檢表(以普通壓力表為例),檢定規程參照《JJG 52 -2013彈性元件式一般壓力表、壓力真空表和真空表檢定規程》。
攝像頭部分:使用特定的鏡頭及相機對被檢表 進行拍攝,將圖片通過數據線傳送給計算機,供后續 算法使用。
讀數識別系統部分:這是系統核心部分,通過一 系列算法獲取被檢表的讀數,從而實現壓力表讀數 的自動識別。
2.系統流程圖及主要算法實現
整套系統算法的流程如圖2所示。
被檢表圖像傳入計算機,首先對圖像進行預處理。 對處理后的圖像提取指針回轉中心及半徑,去除半 徑外的圖像,得到感興趣區域ROI( Region of Inter-esting )。在ROI中,標記刻度線位置及角度,同時標 記指針及其所指向的角度,通過對指針所指刻度區 間運用角度比例法,得到壓力表讀數。
2. 1圖像預處理
圖像預處理主要包括圖像去噪及圖像二值化處 理。相機拍攝被檢表圖像經數據線傳入計算機后, 因各種原因,圖像會帶有噪聲等干擾因素,會加大后 續算法的計算量。本系統通過使用中值濾波來濾除 圖像噪聲。同時為了減少后續算法計算量,我們還 需要對圖像進行二值化處理。
2.1.1中值濾波
中值濾波是一種典型的非線性濾波技術,基本 原理是運用統計排序的方法,用像素點鄰域灰度值 的中間值來代替該像素點的灰度值,讓周圍的像素 值接近真實值,從而消除孤立的噪聲點。該方法在
2.1.2圖像二值化
圖像的二值化通常通過對圖像進行閾值處理來 實現。圖像閾值處理是一種最基本的圖像分割方 法,它通過選取一個閾值,將圖像各個像素值中大于 (或大于等于)和小于等于(或小于)該閾值的像素 點分別設置為不同的值,從而形成兩個像素值集合, 以達到分割對象圖像和背景圖像的目的。常用的閾 值處理方法包括基于最大類間方差法(OTSU)的自 適應全局閾值化分割法和基于高斯算子的局部閾值 化分割法,此系統選取第二種方法進行分割。
局部自適應閾值基于像素鄰域塊的像素值分布 來計算得到該像素點位置上的分割閾值,其好處是 閾值是根據像素點鄰域的像素分布來計算得出。其 原理為:
{255,/( x,> T( x,
I0,x,) ^T( x,)
其中T( x,)為當前像素點的領域加權值,其權值 為高斯核值,其中采用的二維高斯濾波器函數是
圖4為基于OTSU閾值處理及基于高斯算子的 局部閾值處理后的圖像:
2.2指針提取
為了后續指針及刻度的角度確定并減少算法計算量,需要提前確定被檢表的回轉中心(即圓心)。 在拍攝被檢表圖像的時候,也可以將圖像的中心與 表盤的回轉中心重合,但人為因素可能帶來誤差,因 此我們要計算得出圓心的位置,避免人為因素影響。
通過觀察表盤可以發現,所有的刻度的延長線 都經過圓心,同時,指針也隨圓心轉動,所以指針也 經過圓心,求取所有刻度線與指針的交點,即可以得 出圓心位置。同時觀察圖4,除了需要的刻度及指 針對象外,圖像還有許多其他背景圖像,由此,還需 要將表盤外圈及文字和數字去掉,盡可能只剩下表盤 刻度及指針這些有用的對象,方便后續算法處理。
通過對表盤外圈進行擬合圓操作,可以得到一 個大概的圓心位置及其半徑,就可以提取感興趣區 域ROI,此系統一共提取兩個ROI,分別用于刻度的 標記及指針的提取。提取出的ROI如圖5所示。
圖像中每個像素點,其周圍4個水平和垂直的 像素稱為該像素的4鄰域,其周圍4個水平和垂直 的像素和4個對角相鄰像素稱為該像素的8鄰域, 如圖6所示。連通域就是在一個像素集合中,所有 像素都以一種鄰接方式(4鄰接或8鄰接)相鄰接,并 與其他像素集合不相鄰。將圖5( b)進行連通域標記, 提取最大一塊連通域就能得到指針對象,如圖7所示。 同時對圖5 ( a)中刻度進行連通域標記。
圖6像素點X的4鄰域和8鄰域
提取到細化后的指針,則需要運用Hough變換 從指針圖像中提取指針直線方程,一是用于圓心的 提取,二是確定指針所指的角度方向。在直角坐標 系中,直線的方程可以表示為y = kx + 6,其對應在 極坐標系中則表示為:r = xcos^ + ysin0,這就說明直
2. 3圓心提取
對圖5( a)進行連通域標記后,對每一個刻度用 最小二乘法進行線性擬合,得出每條刻度線的直線 方程,以便于后續圓心的提取。
最小二乘法的原理:設某條刻度擬合的直線方 程為:y = kx + b,則該條刻度連通域內像素點(,1) 和直線上(xt,yt)的偏差為:dl = yl - kXi - b;最小二
乘法就是計算得到k和b使gd2最小。求取各個刻度直線與指針直線的交點,再取各個交點的平均值, 記為圓心。
對刻度進行直線擬合后,選取每個刻度連通域 中擬合直線的中點或者該刻度連通域的質心,用于 標記其代表的刻度,便于后續讀數的計算。標記方 法:將所有的標記點按橫坐標分為圓心左邊部分和 圓心右邊部分,按照縱坐標大小不同,左邊部分從下 往上標記,右邊部分從上往下標記,即將表盤的刻度 從小到大依次標記完成,將標記的結果保存于數組 中,數組的索引為刻度的序號,數組值為該刻度對應 的角度(角度以表盤6點鐘位置為0度,順時針依次 增大)。圓心的結果和刻度的標記如圖9所示。
2. 4計算指針讀數
此系統指針讀數計算方法是:刻度值根據其在 標記結果數組中的索引值乘于表盤刻度分度值,再 加上表盤的最小值來計算,指針的讀數用指針所指 的角度與相鄰的兩個刻度的角度比例來計算。由于 連通域標記可能會將某些刻度與指針標記在一起 (包括指針和刻度重合的情況),所以指針讀數計算 會有以下幾種情況。
設指針的角度為&兩個標記的刻度值的角度 為^和eB、壓力值為:va和vb,分度值為F。
第一種情況:
指針讀數為:s = H ? V + Vb。
"A -廿 B
第二種情況(包含指針和刻度重合的情況): 指針讀數為:s = H ? ? V + Vb。
"A -廿 B
第三種情況:
指針讀數為:s = H ? V + Va。
^ A - " B
實驗驗證
該系統在VS2013環境下編寫完成,選取的標 準表為ConST273數字式壓力校驗儀,選取的普通壓力 表的信息如表1所示,實驗結果如表2、表3所示。
表2及表3結果表明,自動識別讀數精確度要 高于人工估讀讀數,由于角度比例法只在指針所指 相鄰刻度間進行,比全局使用角度比例法誤差更小,說 明了這套系統能夠用于壓力表的讀數識別,并且精確 度更高,能夠避免人為因素干擾,達到了預計需求。
4.結論
本文針對普通的一般壓力表的檢定讀數,提出 了基于機器視覺的自動讀數方案,通過對壓力表圖 像中指針及刻度線進行連通域標記,求得圓心,并將 刻度值進行標記,運用局部角度比例法,計算壓力表 的讀數。通過實驗對自動識別讀數算法進行了可行 性論證,通過實驗表明,該方法精確度更高,準確性 更好,同時避免了人為干擾因素,提高了壓力表檢定 效率。
上一篇:談談壓力表的校準
下一篇:關于車載燃氣壓力表檢測方法的報告