邵錫 沈普 韓俊 俞武嘉
摘要:針對傳統(tǒng)的單純的利用Hough變換處理多指針儀表的讀數(shù)識(shí)別時(shí)遇到的一系列問題,提出了一種改進(jìn)后的指針讀數(shù)方法。該算法先利用指針和表盤背景的色差提取指針輪廓,利用Hough梯度法確定指針圓點(diǎn),并運(yùn)用輪廓法確定指針。對指針與零刻度線間夾角長刻度與零刻度線間夾角進(jìn)行校正,采用牛頓插值法逼近指針與零刻度線間夾角和儀表示值的函數(shù)關(guān)系,實(shí)現(xiàn)儀表示值的智能讀取。實(shí)驗(yàn)結(jié)果表明,該算法很好的解決了噪聲對結(jié)果產(chǎn)生的影響,在保證準(zhǔn)確率的同時(shí)提高了識(shí)別速度。
關(guān)鍵詞:讀數(shù)識(shí)別 Hough變換 OpenCV 視覺檢測
中圖分類號(hào):TP391.4 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)07-0229-02
當(dāng)前很多領(lǐng)域受工作條件限制及經(jīng)濟(jì)性、便捷性要求,指針式儀表還大量使用。目前在計(jì)量檢定領(lǐng)域,對指針式儀表的檢定多采用手動(dòng)校驗(yàn)的方法,檢定過程復(fù)雜,大量的重復(fù)測量工作以及數(shù)據(jù)處理多而繁瑣,造成檢定工作費(fèi)時(shí)費(fèi)力,極容易造成人為差錯(cuò),使檢定準(zhǔn)確性難以保證。因此,研究和發(fā)展計(jì)量測量過程中所需的先進(jìn)自動(dòng)化技術(shù),對于提高工作效率,減少人工干預(yù)并降低出錯(cuò)概率具有重要的現(xiàn)實(shí)意義。
本文將在現(xiàn)有的指針式讀數(shù)識(shí)別算法的基礎(chǔ)上改進(jìn)不足之處,提出一種改進(jìn)的指針式讀數(shù)圖像識(shí)別算法。具體算法流程如下圖1所示。
指針式儀表自動(dòng)識(shí)別的關(guān)鍵技術(shù)就是指針的提取[1]。而Hough變換是圖像變換中的經(jīng)典手段之一,主要用來從圖像中分離出具有某種相同特征的幾何形狀(如,直線,圓等)。本文在傳統(tǒng)Hough變換的基礎(chǔ)上提出了一種改進(jìn)算法,在完成表盤區(qū)域的預(yù)處理后,鎖定ROI(Region of Interesting),將子表盤區(qū)域單獨(dú)提取出,放入內(nèi)存中,剔除其余部分,減小Hough變換的搜索范圍來減小Hough變換所需的存儲(chǔ)空間和計(jì)算量,然后利用Hough梯度法獲取指針圓心后,運(yùn)用輪廓法找出指針,最后用牛頓插值法逼近指針與零刻度線間夾角和儀表示值的函數(shù)關(guān)系,實(shí)現(xiàn)儀表示值的智能讀取。
1 圖像預(yù)處理
本文所研究的指針儀表如下圖2所示。本儀表盤中紅色的指針是其中特征最明顯的物體,故提取紅色的指針。在彩色空間(RGB)中,每個(gè)像素由三個(gè)字節(jié)表示,圖像由彩色變換為灰度,其對應(yīng)點(diǎn)的灰度值為[2]:其中:Y為灰度值,R、G和B為RGB顏色空間中像素的三個(gè)分量。為了突出本次實(shí)驗(yàn)中研究對象中的紅色成分而削弱其他顏色成分,采用直方圖法來分割圖像。
二值化是圖像預(yù)處理的關(guān)鍵環(huán)節(jié),其效果將對后續(xù)的數(shù)字定位和分割操作產(chǎn)生直接的影響。這里我們使用計(jì)算圖像直方圖的方法來找出每一幅圖像一一對應(yīng)的最佳閾值。按照以上算法得到的結(jié)果如圖3所示。一般用255表示白色,0表示黑色?;\統(tǒng)地講,灰度值越小,代表越暗,值越大,代表越亮。
可以直觀地看到,灰度的中間位置存在一個(gè)大的峰值,同時(shí)有大量的深色像素。這幾組像素基本對應(yīng)的是圖像的背景和前景。因此我們可以在這幾組像素之間的過渡處進(jìn)行閾值化。按照以上算法得到的結(jié)果如圖5所示。
2 指針圓心定位
再完成了圖像預(yù)處理后,就需要對子表盤的指針進(jìn)行定位,找出指針并確定指針的指向。在OpenCV的應(yīng)用中可以通過一個(gè)比較靈活的Hough梯度法來解決圓變換的這一問題。按照該算法,可以得到如圖6的結(jié)果。
3 指針指向定位與讀數(shù)識(shí)別
在找出各個(gè)指針的圓心點(diǎn)后,我們就需要識(shí)別指針指向了。常用的指針指向識(shí)別算法有[4]:步長法、圓周灰度檢測法和基于多特征的分區(qū)模板匹配法等。
在檢測過程中,發(fā)現(xiàn)由于光照時(shí)候玻璃的反光以及光照的不均勻,使指針在背光方向形成陰影,導(dǎo)致水表表盤區(qū)域明暗灰度的變化不規(guī)則。而步長法和圓周灰度檢測對圖像灰度和光照分布均勻都有很高要求,所以用這兩種方法不能正確識(shí)別指針方向。如果使用基于多特征的分區(qū)模板匹配法,由于受到模板的約束條件的限制,當(dāng)指針的指示方向在一個(gè)刻度附近的時(shí),就很難區(qū)分該指針指示的是哪一個(gè)數(shù)值。而且該算法考慮的特征信息較多,算法的時(shí)間復(fù)雜度比較大。針對以上出現(xiàn)的幾種問題,我們提出了一種新的處理方法。使用輪廓跟蹤算法( Contour Trace )來定位指針指向。輪廓跟蹤法基于區(qū)域邊界上相鄰像素點(diǎn)的相互連通性,沿區(qū)域邊界走一圈回到起始點(diǎn)可以得到一段封閉曲線,適用于輪廓完整,但內(nèi)部像素性質(zhì)不一定相一致的區(qū)域的分割。輪廓跟蹤就是從一個(gè)起始點(diǎn)開始,按照四連通或八連通關(guān)系逐點(diǎn)跟蹤下個(gè)邊界點(diǎn),同時(shí)輸出移動(dòng)的方向(即鏈碼值),直到得到整條輪廓線。
在OpenCV中一般用序列來存儲(chǔ)輪廓信息。序列中的每一個(gè)元素是曲線中一個(gè)點(diǎn)的位置。所以,對于定位指針,我們只需找出離圓心點(diǎn)最遠(yuǎn)的點(diǎn),然后將圓心點(diǎn)和這個(gè)最遠(yuǎn)的點(diǎn)相連接,這條直線即為指針。按照以上算法,可以得到如圖7的結(jié)果。
再完成對指針的圓心與指針尖端的定位后,我們就需要用相應(yīng)方法完成對指針指向的定位。我們需要一種能夠使得指針的指向不受表盤的傾斜情況影響,而且計(jì)算簡單的算法。經(jīng)過綜合分析后,我們發(fā)現(xiàn)牛頓插值法是一種完全能滿足上述需求的方法。用牛頓插值法得出的函數(shù)關(guān)系式可以完成對指針與零刻度線間夾角長刻度與零刻度線間夾角的校正,并且很好地逼近零刻度線間夾角和儀表示值之間最真實(shí)的關(guān)系,從而實(shí)現(xiàn)儀表示值的智能讀取。
插值函數(shù)的定義:設(shè)連續(xù)函數(shù)y-f(x) 在區(qū)間[a,b]上有定義,已知在n+1個(gè)互異的點(diǎn)x0,x1,…xn上取值分別為y0,y1,…yn(設(shè)a≤x1≤x2……≤xn≤b)。若在函數(shù)類中存在以簡單函數(shù)P(x),使得P(xi) = yi,則稱P(x) 為f(x)的插值函數(shù)。稱x1,x2,…xn為插值節(jié)點(diǎn),而稱[a,b]為插值區(qū)間。插值函數(shù)定理:n次代數(shù)插值問題的解存在且唯一。
需要說明的一點(diǎn)是,用牛頓插值法計(jì)算得到的指針示值只是指針相對于自己所在的子表盤的刻度線的讀數(shù)。從表盤的結(jié)構(gòu)分析可以得出結(jié)論,即表盤的中心和指針的回轉(zhuǎn)中心的連線與表盤0刻度線的夾角是一定的。另外,指針指向線段在表盤圖像坐標(biāo)系中的角度可利用它的直線方程求出??衫眠@兩個(gè)角求出指針相對于零基準(zhǔn)線的轉(zhuǎn)角α,進(jìn)而可以根據(jù)轉(zhuǎn)角α與表盤讀數(shù)的關(guān)系計(jì)算指針讀數(shù)。轉(zhuǎn)角α與表盤讀數(shù)的關(guān)系如表1所示。
利用表盤中心與指針回轉(zhuǎn)中心的連線與子表盤0刻度線的夾角一定的特征來計(jì)算表盤0刻度線與指針指向線段的夾角方法有效地克服了表盤隨機(jī)角度旋轉(zhuǎn)對讀數(shù)識(shí)別算法的影響。
4 實(shí)驗(yàn)與分析
本文以水表表盤為具體研究對象,采用Microsoft Visual 2010開發(fā)測試程序?qū)λ淼闹羔樖絻x表的自動(dòng)識(shí)別功能進(jìn)行測試。我們首先自己構(gòu)建一個(gè)圖像集,用來模擬實(shí)際采集水表表盤圖像時(shí)可能出現(xiàn)的隨機(jī)角度旋轉(zhuǎn)、一定程度的隨機(jī)噪聲干擾、外界光照條件變化造成的圖像明暗變化等情況,然后對這個(gè)圖像集中的圖片進(jìn)行自動(dòng)識(shí)別。圖8給出實(shí)驗(yàn)測試算法的識(shí)別時(shí)間和識(shí)別結(jié)果。
同時(shí),本文基于同一組圖像數(shù)據(jù)分別利用基于Hough變換的子表盤定位方法與本文提出的定位子表盤區(qū)域算法進(jìn)行了定位對比實(shí)驗(yàn)。比較結(jié)果如表2所示。
實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)的Hough變換相比,改進(jìn)算法的處理速度要快5~6倍,在存儲(chǔ)空間減小的同時(shí)保持了良好的效果,具有較高的實(shí)用價(jià)值。
參考文獻(xiàn)
[1]陳燕.指針式水表的圖像自動(dòng)讀數(shù)判讀方法的研究[D].江蘇:蘇州大學(xué),2009.
[2]苑瑋琦,邵蕊.指針式儀表識(shí)別方法的研究[J].微計(jì)算機(jī)信息,2009,25(12): 26-28.
[3]鄒俊貴,陳以.常用指針式儀表識(shí)別技術(shù)研究綜述[J].儀器儀表與分析檢測,2009(1):1-6.
[4]江澤濤,王軾,李克偉.一種指針式儀表非接觸測量方法[J].計(jì)算機(jī)應(yīng)用與軟件,2009, 26(4):281-283.
[5]J.R.Parker著,景麗譯.圖像處理與計(jì)算機(jī)視覺算法及應(yīng)用(第二版)[M].北京:清華大學(xué)出版社,2012.