姜立斌
(福建省計(jì)量科學(xué)研究院,福建福州,350003)
帶彈簧管壓力表的氣體減壓器(以下簡(jiǎn)稱減壓器)主要用于氧氣、氫氣、氮?dú)?、乙炔等多種類高壓氣源的壓力減低以及保持穩(wěn)定的出口壓力,同時(shí)具備進(jìn)口壓力降低、及保持出口壓力穩(wěn)定兩種作用。安裝在高壓氣瓶上,廣泛應(yīng)用于工程現(xiàn)場(chǎng)、化工、醫(yī)療衛(wèi)生系統(tǒng),檢疫機(jī)構(gòu),食品加工,科研等領(lǐng)域。主要校準(zhǔn)參數(shù)為示值誤差、密封性以及安全閥的密封性及排氣功能,其功能直接關(guān)系到人民的生命健康及安全生產(chǎn),屬于強(qiáng)制檢定計(jì)量器具范疇。目前國(guó)內(nèi)普遍采用多種計(jì)量器具來分別校準(zhǔn)其示值誤差、密封性及安全閥參數(shù),需要多次拆裝減壓閥,校準(zhǔn)效率偏低。
本項(xiàng)目通過編寫自動(dòng)讀數(shù)系統(tǒng),應(yīng)用數(shù)字圖像處理技術(shù)自動(dòng)獲取壓力表示值信息,研究包括儀表圖像預(yù)處理、表盤定位、指針定位和讀數(shù)等,并基于Hough變換(HT)、隨機(jī)霍夫變換(RHT)等方法,提出新的圓檢測(cè)、直線檢測(cè)以及模板匹配方法,最后用C語(yǔ)言實(shí)現(xiàn)一個(gè)儀表自動(dòng)讀數(shù)的系統(tǒng)。其中,采用圖像識(shí)別技術(shù)對(duì)被檢壓力表的示值進(jìn)行自動(dòng)讀取是本項(xiàng)目的重中之重。
本文以帶彈簧管壓力表的氣體減壓器壓力表為例,應(yīng)用圖像識(shí)別技術(shù)來實(shí)現(xiàn)壓力示值的自動(dòng)讀取功能,具體步驟如下:
為了使圖像能夠被精確定位,在定位搜索以前,要進(jìn)行圖像預(yù)處理:需要將圖像縮放、變換,并將彩色圖像轉(zhuǎn)化成256 色的灰度圖后進(jìn)行處理,然后對(duì)圖像做二值化處理,再去噪、平滑、膨脹、腐蝕削弱背景干擾。其流程圖如圖1所示。
圖1 預(yù)處理流程圖
1.1.1 縮放和變換
縮放操作的主要目的是減小圖像大小,減少計(jì)算量,縮放操作不是必須的,但是如果系統(tǒng)對(duì)輸入圖像的大小有要求,比如需要?dú)w一化處理,那么就需要進(jìn)行縮放,常見的縮放方式有等比縮放和強(qiáng)制縮放。
等比縮放是指按原始圖像的長(zhǎng)寬比例進(jìn)行縮放,縮放后的圖像大小不變;強(qiáng)制縮放是指按照設(shè)定的長(zhǎng)寬進(jìn)行縮放,縮放后可能導(dǎo)致圖像變形。其實(shí)縮放屬于圖像變換中的仿射變換中的一種,相對(duì)應(yīng)的還有透視變換等,這兩個(gè)變換都是圖像處理中最基本的兩種變換。
仿射變換和透視變換更直觀的叫法可以叫做“平面變換”和“空間變換”或者“二維坐標(biāo)變換”和“三維坐標(biāo)變換”。
仿射變換:允許圖形任意傾斜,而且允許圖形在兩個(gè)方向上任意伸縮的變換。仿射變換,可以用于保持線共點(diǎn)、點(diǎn)共線的關(guān)系,保持平行狀態(tài),保持中點(diǎn)不變,保持線段比例關(guān)系不變,但是,原來的線段長(zhǎng)度變化,原來的夾角角度變化。
透視變換:是指利用像點(diǎn)、透視中心、目標(biāo)點(diǎn)三點(diǎn)共線的條件,按透視旋轉(zhuǎn)定律使透視面繞透視軸旋轉(zhuǎn)某一特定角度,破壞原有的投影光線束,仍能保持透視面上投影幾何圖形不變的變換。
透視變換常用在移動(dòng)機(jī)器人視覺導(dǎo)航研究中,攝像機(jī)與地面之間有一傾斜角,而不是直接正投影,如希望將圖象校正成正投影,就需要利用透視變換。
1.1.2 灰度化
灰度化的目的之一是將原有的三通道的RGB彩色圖像轉(zhuǎn)化為單通道的灰度圖像。當(dāng)R=G=B時(shí)的值就稱為灰度值,因此灰度值的取值范圍是0~255。RGB轉(zhuǎn)灰度計(jì)算公式為:
Gray = (R×30 + G×59 + B×11 + 50) / 100 (1)
轉(zhuǎn)換公式有多個(gè),根據(jù)場(chǎng)景不同,有的要求效率,有的要求精度,所以最終結(jié)果可能會(huì)有一點(diǎn)偏差,這里給出的是一種計(jì)算效率較高的轉(zhuǎn)換公式。
對(duì)于顏色空間,在圖像處理中,常用的就是RGB和YCrCb,YCrCb常用于膚色檢測(cè)。
圖像灰度化的重要目的之一是減少處理的數(shù)據(jù)量,加快計(jì)算速度,因?yàn)榛叶葓D只有一個(gè)通道,只需要計(jì)算一個(gè)值即可。
1.1.3 去噪和平滑
去噪和平滑是預(yù)處理中最重要的步驟之一,去噪的效果完全可以影響最終的處理效果。這里所說的噪聲不僅僅包括設(shè)備拍攝時(shí)所產(chǎn)生的斑點(diǎn)、校驗(yàn)噪聲等,還包括我們所不感興趣的部分,比如多余的點(diǎn),多余的線條等等。那么對(duì)于斑點(diǎn)和校驗(yàn)噪聲,可以使用中值濾波來進(jìn)行消除,對(duì)于其他的我們不想要、不感興趣的部分,則可以通過一系列其他操作來過濾,比如模糊處理,圖像加減法等進(jìn)行過濾和消除。
噪聲消除方法可分為頻域、空間域兩種類型。頻域方法在低頻部分,利用數(shù)字圖像的有用信息來進(jìn)行噪聲消除??臻g域法包括中值濾波器法、均值濾波器法等。
(a)中值濾波。中值濾波是基于排序統(tǒng)計(jì)理論的非線性信號(hào)處理技術(shù),能有效抑制噪聲,對(duì)消除脈沖干擾噪聲具有顯著效果,同時(shí)也可一定程度上減輕圖像邊沿的模糊,用該點(diǎn)的一個(gè)鄰域中各點(diǎn)值的中值代替數(shù)字圖像中的點(diǎn)值,是周圍像素灰度差大的像素改取與周圍的像素值接近值,消除孤立的噪聲點(diǎn),從而有效減低噪聲。中值濾波器的優(yōu)點(diǎn)是在濾除疊加白噪聲和長(zhǎng)尾疊加噪聲時(shí)有優(yōu)勢(shì)。改進(jìn)算法有權(quán)重中值濾波、基于排序閾值的開關(guān)中值濾波算法、自適應(yīng)中值濾波器。中值的取值采用了分治算法,其原理是對(duì)于規(guī)模為m的問題,若容易解決則直接解決;否則將其分解為n個(gè)規(guī)模較小的問題并逐個(gè)解決,最后合并n個(gè)子問題的解,得到原問題的解。
(b)均值濾波。也稱線性濾波,主要采用鄰域平均法,均值濾波的核心思想是其將整個(gè)圖像看成是由很多灰度恒定的小塊組成,相鄰像素間相關(guān)性很強(qiáng),但噪聲具有統(tǒng)計(jì)獨(dú)立性。故可用鄰域的均值替代原圖像中的各個(gè)像素值。該方法非常適用于去除通過掃描得到的圖像中的顆粒噪聲,對(duì)此算法進(jìn)行改進(jìn)算法,濾波器在進(jìn)行平滑處理時(shí),主動(dòng)避開對(duì)景物邊界的平滑處理,大大降低對(duì)圖像的模糊效果。注意,均值濾波算法可使噪聲幅值減小,但范圍變大,因此圖像邊緣變得模糊。
1.1.4 膨脹和腐蝕
膨脹就是求局部最大值的操作,而腐蝕則是求局部最小值的操作。簡(jiǎn)單來說,膨脹就是增加白色(像素值高的)區(qū)域,而減小黑色(像素值低的)的區(qū)域,腐蝕則相反。在儀表識(shí)別中通過腐蝕/膨脹操作來加強(qiáng)或者消除刻度區(qū)域以及指針等等。也就是說膨脹和腐蝕操作可以增強(qiáng)我們感興趣的區(qū)域,也可以減少噪聲,可以看作是一種濾波操作。如圖2所示為圖像預(yù)處理前后的圖片。
圖2 預(yù)處理前后對(duì)比圖
針對(duì)圓形儀表來說,表盤定位常用的方法是Hough圓檢測(cè)。
傳統(tǒng)Hough圓檢測(cè)的步驟如下:
(1)遍歷圖像上非零像素點(diǎn),然后以此點(diǎn)為圓心,嘗試對(duì)半徑進(jìn)行縮放操作;
(2)將每一個(gè)圓心坐標(biāo)和半徑映射到參數(shù)空間(a-b-r空間中);
(3)在參數(shù)空間a-b-r中,一個(gè)圓將被映射為一個(gè)點(diǎn),這些點(diǎn)將形成一個(gè)圓錐曲面;
(4)這些圓錐曲面將會(huì)有很多個(gè)交點(diǎn),分別對(duì)這些交點(diǎn)進(jìn)行投票(“票”即為經(jīng)過該交點(diǎn)的圓錐曲面);
(5)根據(jù)票數(shù)對(duì)這些交點(diǎn)進(jìn)行排序,得票最高者即為最可能圓,次之。
在OpenCV中對(duì)傳統(tǒng)Hough進(jìn)行了改進(jìn),速度至少提升幾個(gè)數(shù)量級(jí),它采用的是基于梯度的Hough圓檢測(cè)。該算法首先計(jì)算像素點(diǎn)的梯度,然后進(jìn)行縮放半徑進(jìn)行找圓,這樣就把三維的參數(shù)空間轉(zhuǎn)化為二維(計(jì)算圓心和半徑),效率得到了很大的提升。
另一種效率較高的圓檢測(cè)算法為RHT(隨機(jī)Hough變換)圓檢測(cè),它利用三點(diǎn)確定圓的方法,從圖像上隨機(jī)選取三個(gè)點(diǎn),然后對(duì)這三點(diǎn)確定的圓進(jìn)行投票選舉,具體過程可以參見:基于隨機(jī)Hough變換的快速圓檢測(cè)方法。
圖3 是使用Hough圓檢測(cè)定位到的圓形表盤。
圖3 使用Hough圓檢測(cè)定位到的圓形表盤
刻度在儀表自動(dòng)讀數(shù)中并不作為計(jì)算依據(jù)(起始和終止刻度除外),最終讀數(shù)僅僅依賴指針、表盤位置以及量程,因此在求儀表刻度線時(shí)可以允許少量誤差,這些誤差不會(huì)對(duì)最終結(jié)果造成影響。
對(duì)于刻度線的擬合,本質(zhì)上還是對(duì)直線的擬合,因此常用的方法有最小二乘法和Hough變換擬合。我們通過多次輪廓篩選,然后計(jì)算輪廓外接矩形的中心,作為刻度點(diǎn),刻度點(diǎn)與表盤圓心的連線作為刻度線。
根據(jù)刻度線的特點(diǎn),輪廓篩選包括對(duì)輪廓的形狀、大小以及位置和角度進(jìn)行篩選,滿足以下條件的輪廓將被保留,否則被剔除:
(1)輪廓點(diǎn)個(gè)數(shù)n(或面積)在設(shè)定的范圍內(nèi)
通過判斷輪廓點(diǎn)的個(gè)數(shù)(或面積),可以初步過濾掉大面積的非刻度區(qū)域。
(2)輪廓點(diǎn)的最小外接矩形寬w、高h(yuǎn)的比在設(shè)定的范圍內(nèi)根據(jù)刻度線的特點(diǎn),刻度線的寬高比M一般在1:2~1:5之間,根據(jù)寬高比可以過濾掉相同面積的非刻度輪廓。
(3)輪廓的位置在表盤圓周附近
通過圓檢測(cè)定位到表盤后,判斷輪廓中心(x_0,y_0)與表盤圓O(a,b,r)圓心的距離d,可以過濾掉面積以及寬高比相近的輪廓。
(4)輪廓最小外接矩形的方向指向圓心
根據(jù)刻度線的特點(diǎn),刻度線總是指向表盤圓心,因此根據(jù)其最小外接矩形的傾斜角度α,判斷是否是指向表盤圓心,達(dá)到最終的過濾目的。
儀表的最終讀數(shù),取決于表盤圓心、指針偏移起始刻度的角度以及量程。在確定表盤圓心、指針方向以及量程后,才可以通過指針偏移角度來計(jì)算示數(shù)。很重要的一點(diǎn)就是計(jì)算起始/終止刻度的位置。
起始/終止刻度的確定可以先使用刻度擬合法來找出刻度,再根據(jù)刻度的位置關(guān)系來確定起始/終止刻度,但是由于受旋轉(zhuǎn),噪聲等影響,定位結(jié)果往往差強(qiáng)人意,而最終讀數(shù)又與起始坐標(biāo)密切相關(guān),所以為了保證其精度,課題采用分段定位的方式識(shí)別讀數(shù)。
經(jīng)一段時(shí)間的實(shí)際使用,證明該裝置運(yùn)用圖像識(shí)別技術(shù),可正常識(shí)別被檢減壓閥壓力表的讀數(shù),并將其數(shù)據(jù)傳輸?shù)诫娔X端。該裝置精度高,性能穩(wěn)定,可用于開展壓力表檢測(cè)工作,提高了計(jì)量檢測(cè)的檢測(cè)效率和準(zhǔn)確性。