摘要:本文為了獲取指針式儀表的示數(shù),研究了基于圖像處理的示數(shù)自動(dòng)判讀算法。根據(jù)采集到的儀表示數(shù)圖像,首先采用預(yù)處理增強(qiáng)、降采樣及二值化、旋轉(zhuǎn)投影指針的方法提取出指針?biāo)诘膮^(qū)域;然后選取備選區(qū)域并進(jìn)行二值化處理,在備選區(qū)域中定位了針尖的位置;最后對(duì)刻度線進(jìn)行標(biāo)記和排序,完成了示數(shù)判讀。結(jié)果表明,測量的214幅圖像中,誤差小于儀表最小分度值5%的讀數(shù)占85.05%。本文網(wǎng)絡(luò)版地址:http://www.eepw.com.cn/article/274754.htm
關(guān)鍵詞:指針式儀表;自動(dòng)判讀;圖像處理;降采樣;二值化DOI:10.3969/j.issn.1005-5517.2015.5.014
引言
指針式儀表在工業(yè)生產(chǎn)中得到了廣泛應(yīng)用,如何|央速準(zhǔn)確讀取儀表的示數(shù)是人們關(guān)心的問題。使用機(jī)械設(shè)備進(jìn)行讀數(shù)是一種方便、準(zhǔn)確的方法,與之配套使用的圖像處理和示數(shù)自動(dòng)判讀算法是整套設(shè)備的核心。國內(nèi)外很多學(xué)者研究了指針式儀表示數(shù)自動(dòng)判讀算法,但研究仍存在一些不足,如:算法不具有普遍性、沒有考慮光線等干擾對(duì)判讀結(jié)果的影響。因此,本文以某公司使用的指針式壓力儀表為對(duì)象,研究了示數(shù)自動(dòng)判讀算法。
1 指針區(qū)域提取
1.1 預(yù)處理增強(qiáng)
本文使用一臺(tái)CCD相機(jī)獲取儀表讀數(shù)的圖像,由于光線較差時(shí)會(huì)導(dǎo)致圖像灰暗,因此需要增強(qiáng)灰度值偏低的圖像,步驟為:
(1)計(jì)算原圖像整體平均灰度值M。
(2)如果M 以某儀表為例,增強(qiáng)效果如圖1所示,將圖l(b)的圖像定義為I。 1.2 基于降采樣處理的二值化 由于CCD相機(jī)采集到的原圖像尺寸較大,采用經(jīng)過8倍降采樣的金字塔第3級(jí)圖像進(jìn)行圖像降采樣。定義降采樣后的圖像為Ilon=0.6Mlow,計(jì)算其灰度均值為Mlon,設(shè)置其闕值Thlow。w=0.6Mlow。使用全局二值化方法進(jìn)行二值化,低于闕值的像素點(diǎn)在二值圖像中賦值為1,得到的二值圖像記為BWlow。對(duì)于BWlow,首先去除與圖像邊界連接的連通域,同時(shí)將二值圖中間的部分設(shè)置為感興趣區(qū)域(ROI),然后分別計(jì)算剩余連通域的長度,如果該長度低于某一闕值,則將其剔除。根據(jù)該思想,與圖l(b)對(duì)應(yīng)的降采樣后的圖像Ilow。w如圖2(a)所示,與Ilow對(duì)應(yīng)的連通域分析結(jié)果如圖2(b)所示。 1.3 旋轉(zhuǎn)投影提取指針 基于圖2(b),得到指針?biāo)趨^(qū)域的步驟為: (1)將圖像左上角設(shè)置為原點(diǎn)(o,o),將圖像BWlow繞其中心點(diǎn)c。(w1/2,hl/2)依次逆時(shí)針旋轉(zhuǎn)。 (2)旋轉(zhuǎn)后將BWr豎直投影,記錄投影曲線的最大值mi,和最大投影點(diǎn)的橫坐標(biāo)xi。 (3)根據(jù)所有mi繪制全局投影曲線上,,找至憶,的最大值點(diǎn)m*=max(m1)以及取得該最大值時(shí)的旋轉(zhuǎn)角度i*和對(duì)應(yīng)的橫坐標(biāo)xi。 由于指針區(qū)域是長條狀,因此只要得出其中一點(diǎn)的坐標(biāo),并對(duì)寬度加以約束,就可以得到包含指針的區(qū)域信息。指針區(qū)域關(guān)鍵坐標(biāo)點(diǎn)P相對(duì)于Co的坐標(biāo)為: 在以Co為中心的坐標(biāo)系中,通過P且與指針區(qū)域指向平行的直線斜率k和截距6是:確定直線方程后加入距離約束d,同時(shí)構(gòu)造與圖像Ilow大小一致的模板圖像Im,Im、與此直線距離小于d的像素點(diǎn)設(shè)置為感興趣點(diǎn),所有感興趣點(diǎn)構(gòu)成了包含指針的條狀區(qū)域。根據(jù)降采樣的比例因子,將Im放大至原始尺寸,與原圖像I相乘,可以得出包含指針的條狀區(qū)域圖像Ip,如圖3所示。 2 針尖區(qū)域提取及定位 2.1 備選區(qū)域提取 采用豎直的邊緣提取算子提取指針的邊緣信息,提取出豎直邊緣特征后用Otsu_值化得到豎直邊緣的二值圖像BWp,通過水平投影分析找到投影曲線的最大非零區(qū)間,可以確定圖像lp的旋轉(zhuǎn)圖像lp上指針兩端的粗略坐標(biāo),進(jìn)而變換到Ip中,得到指針兩端的坐標(biāo)。 BWp的水平投影中最大的非零區(qū)間對(duì)應(yīng)指針,從該區(qū)間的端點(diǎn)向曲線兩側(cè)搜索,若發(fā)現(xiàn)新的非零區(qū)間滿足該區(qū)間與最大非零區(qū)間的間隔小于闕值ETh。,則將該新區(qū)間并入最大非零區(qū)間。本文ETh=h/30,設(shè)圖像的尺寸是h×w ,H是旋轉(zhuǎn)圖像Ip的高度。設(shè)在BWp中,指針兩端點(diǎn)的坐標(biāo)是pl(x1,y1)和P2(x2,y2),y1和y2是上述最大非零區(qū)間兩端點(diǎn)的坐標(biāo),x1是BWp第一行最左端非零點(diǎn)與最右端非零點(diǎn)的橫坐標(biāo)均值,x2的含義類似。pl(x1,y1)和P2(x2,y2)粗略標(biāo)記了指針兩端在Bwp和lp中的位置。設(shè)原圖像尺寸為6×w,將這麗點(diǎn)的坐標(biāo)變換到圖像Ip中,得到在原圖I中指針兩端點(diǎn)的粗略坐標(biāo)pi(xi,yi): 根據(jù)p,點(diǎn)的坐標(biāo),設(shè)置感興趣區(qū)域大小為hr×Wr,可以在原圖中得到兩塊備選子區(qū)域。以某圖像為例,備選子區(qū)域如圖4所示,針尖一定位于兩個(gè)子區(qū)域中的一個(gè)。 2.2 基于LoG算子邊緣檢測的二值化 由于針尖區(qū)域內(nèi)刻度線的邊緣特征明顯,因此采用基于Laplacian ofGuassian(LoG)算子邊緣檢測的二值化處理方法。設(shè)原圖像為I(x,y),邊緣檢測后輸出圖像為o(x,y),則:式(6)中參數(shù)8的計(jì)算公式為: 其中,Int是取整運(yùn)算:m是模板寬度,取m=min(hr,Wr)/7。通過求取o(x,y)中過零點(diǎn)的軌跡即可得到原圖像的邊緣點(diǎn),最后的闕值為: 其中,c的取值范圍是0—1,是所有邊緣點(diǎn)灰度值之和,N=是邊緣點(diǎn)的總數(shù)。 2.3 備選子區(qū)域篩選 對(duì)于二值化處理結(jié)果,針尖區(qū)域包含了針尖和刻度線。本文的針尖區(qū)域遠(yuǎn)離圖像中心,對(duì)于第i個(gè)備選區(qū)域,定義判斷值Ji口下: 其中,N是二值圖中連通域的數(shù)目,是所有連通域面積之和,ca、c1、c2是常數(shù)。通過計(jì)算兩塊備選區(qū)域的判斷值,選擇判斷值較大的區(qū)域即可得到針尖所在區(qū)域。 2.4 針尖定位 在第2.3節(jié)的基礎(chǔ)上,對(duì)針尖定位的步驟是: (1)將僅含指針連通域的ROIBW逆時(shí)針旋轉(zhuǎn)角度i*得到ROI,BW,從指針連通域所連接邊界對(duì)側(cè)的邊界開始搜索,判斷是否出現(xiàn)分叉點(diǎn)。判斷方法是:統(tǒng)計(jì)該行所有寬度大于2的非零區(qū)間的數(shù)目,如果有兩個(gè)這樣的區(qū)間且距離不小于2,說明存在交叉點(diǎn)。設(shè)這一對(duì)區(qū)間的端點(diǎn)坐標(biāo)分別是(x1,x2:)和(X3,X4),則交叉點(diǎn)橫坐標(biāo)為。若逐行搜索至ROIBW高度的一半仍未發(fā)現(xiàn)分叉,跳至第(4)步。 (2)根據(jù)將ROIBw分為左右兩部分,記為I和r,計(jì)算兩部分連通域的面積S1和Sr。如果,則在ROIBW中將面積較小的一側(cè)置零,跳轉(zhuǎn)至第(4)步。 (3)若(2)中條件不滿足,分別計(jì)算l和r中連通域面積占該連通域外接矩形框面積的比例R.和Rr,在ROIBW中將比例較小的一側(cè)置零。 (4)從指針連通域所連接邊界對(duì)側(cè)的邊界開始逐行搜索,找到的第一個(gè)非零行的行坐標(biāo)即針尖位置的縱坐標(biāo),將該行豎直投影,投影曲線左右兩端非零點(diǎn)的橫坐標(biāo)均值視為針尖位置的橫坐標(biāo)。 (5)將ROIBW中的針尖坐標(biāo)變換到ROIBW,進(jìn)而得到針尖在原圖像I中的針尖坐標(biāo)。 3 刻度線標(biāo)記及讀數(shù) 3.1 基于逐步搜索的刻度線標(biāo)記 定位針尖后,搜索刻度線的步驟為: (1)以ROIBW任一刻度線為起始,其中心點(diǎn)為Ps,刻畫待搜索區(qū)域,該區(qū)域?yàn)閮A斜矩形,長和寬分別是ws和hs。 (2)使用基于LoG算子邊緣檢測的二值化方法對(duì)搜索區(qū)域進(jìn)行二值化,再由Ps出發(fā),沿過該點(diǎn)且與刻度線垂直的直線方向搜索相鄰的刻度線。 (3)標(biāo)記搜索到的相鄰刻度線,記錄中心坐標(biāo)、刻度線長度、與水平軸夾角,更新起始點(diǎn)Ps,刻畫新的待搜索區(qū)域繼續(xù)搜索。 (4)若沿某方向搜索不到新的刻度線,說明該方向搜索完畢,返回起始刻度線,轉(zhuǎn)換搜索方向繼續(xù)搜索標(biāo)記至結(jié)束。 逐步搜索標(biāo)記刻度線的實(shí)例如圖5所示,矩形框?yàn)樗阉鲄^(qū)域,兩個(gè)箭頭表示搜索方向。 3.2 刻度線排序 標(biāo)記完所有刻度線后設(shè)置參考點(diǎn),并結(jié)合已知儀表指針的旋轉(zhuǎn)方向?qū)⒖潭染€排序。參考點(diǎn)設(shè)置方法為:設(shè)兩個(gè)方向搜索到的末端兩條刻度線中心點(diǎn)分別是P1(x1,y1和p2(x2,y2),參考點(diǎn)坐標(biāo)可設(shè)為,h是原圖像的高度。 3.3 讀數(shù) 通過計(jì)算針尖位置和參考點(diǎn)連線的斜率,可以確定針尖位于哪兩條刻度線之間,記這兩條刻度線的序號(hào)為n1和n2(n2>n1),同時(shí)計(jì)算針尖到這兩條刻度線所在直線的距離為d1和d2則讀數(shù)V的計(jì)算方法為: 其中,S是儀表的量程,u是儀表的最小分度值,n是搜索到的刻度線數(shù)目。 4 實(shí)驗(yàn)及評(píng)價(jià) 為了驗(yàn)證本文方法的準(zhǔn)確性,測量了該公司214幅指針式儀表的圖像。定義誤差,其中v是本文算法的讀數(shù),v是肉眼讀數(shù),將判讀結(jié)果列于表1。有5幅圖像由于光線太暗,導(dǎo)致無法正確標(biāo)記刻度線;有85.05%的讀數(shù)誤差小于儀表最小分度值的5%,讀數(shù)誤差大于儀表最小分度值10%的僅4.20%,證明本文算法的準(zhǔn)確率較高。 (1)首先對(duì)圖像進(jìn)行預(yù)處理增強(qiáng),然后對(duì)圖像進(jìn)行降采樣和二值化,之后進(jìn)行旋轉(zhuǎn)投影提取出指針?biāo)诘膮^(qū)域。 (2)在指針兩端分割出兩塊區(qū)域,基于LoG算子邊緣檢測的二值化方法在子區(qū)域中篩選出針尖的區(qū)域,并對(duì)針尖定位。 (3)采用逐步搜索的方法標(biāo)記刻度線,并對(duì)刻度線排序,從而實(shí)現(xiàn)示數(shù)讀數(shù)。 (4)判讀了214幅圖像的讀數(shù),85.05%的讀數(shù)誤差小于儀表最小分度值的5%,讀數(shù)誤差大于儀表最小分度值10%的僅4.20%,證明本文算法的準(zhǔn)確率很高。