徐亞超 馬月梅
摘要:本文研究的是基于機器視覺、模式識別對指針式溫濕度計讀數(shù)的識別方法。為了提升識別精度,本文提出了一種旋轉(zhuǎn)檢測連通域的方法,并將其應用在指針儀式表檢測中,可以把識別精度控制在一個刻度之內(nèi)。該算法具有較好的魯棒性、準確率,實用性也很強。
關(guān)鍵詞:指針式溫濕度計;讀數(shù)識別;機器視覺;模式識別;旋轉(zhuǎn)檢測連通域。
0引言
目前指針式溫濕度儀表精度檢測主要通過目測,這種檢測方法占用大量勞動力,且效率低下,誤差較大。隨著機器視覺理論和工業(yè)水平的發(fā)展,機器視覺技術(shù)應用于儀表檢測的案例屢見不鮮。得益于機器視覺在效率和自動化方面的優(yōu)勢,一些學者在指針式儀表機器視覺檢測方法方面做了許多建設(shè)性的研究和應用,其中利用指針偏轉(zhuǎn)的角度計算讀數(shù)的方案占大多數(shù),這種方案一旦儀表位置發(fā)生偏轉(zhuǎn),或指針圓心存在誤差等,都會導致讀數(shù)誤差增大。陳樹等在利用K-Means聚類算法提取刻度輪廓基礎(chǔ)上,用刻度輪廓質(zhì)心擬合圓,將刻度圓環(huán)全景展開,細化指針并檢測出直線方程,最后通過直線和圓環(huán)交點識別讀數(shù),這種方法一定程度上提高了儀表檢測系統(tǒng)的魯棒性,但是其過程中,運用K-Means聚類算法會增大計算量;將刻度全景展開會造成圖像扭曲現(xiàn)象;細化指針、Hough變換都會因采集圖像的質(zhì)量、光源等因素受到不同程度的影響。本文利用表盤空間位置直接截取儀表刻度,并且提出一種新的連通域檢測方法用于對每個刻度按照順序標號,通過指針指向與刻度標號之間的距離數(shù)值直接判斷讀數(shù),將誤差限制在一個刻度以內(nèi)。該方案對圓心位置的準確度,儀表擺放位置的偏轉(zhuǎn),以及儀表本身的做工誤差均沒有特別精細的要求,故系統(tǒng)魯棒性很高。
1一種新的連通域檢測方法——旋轉(zhuǎn)檢測連通域
連通域分析是一種在機器視覺和圖像處理等多學科中常用的方法,主要用于前景目標的提取工作。目前在數(shù)字圖像處理中,常用的連通域檢測方法是按照行或列的順序遍歷圖像,檢測到的連通域順序也是從上到下或者從左到右。在本文的刻度提取部分,我們需要將原圖進行二值化處理后再進行連通域分析。尋找連通域?qū)⒃谙袼刂迪嗤臀恢孟噜弮蓚€條件下進行。對于圖像中的每個連通域,將標記唯一的標識(1abel),以區(qū)別其他的連通域,需要注意的是:掃描指的是按行或按列訪問圖像的所有像素點,本文算法采用按行掃描方式;被掃描的二值圖像記為B:前景像素值為1,背景像素值為0。
常用連通域分析方法使用Two-Pass算法對連通域進行掃描分析,Two-Pass算法需要對圖像掃描兩遍,以完成對所有連通域的尋找標記工作。Two-Pass算法的簡單步驟如下:
第一次掃描,如圖5(a)所示:訪問當前像素B(x,y),如果B(x,y)=1,如果B(x,y)的鄰接像素的值都為0,則賦予B(x,y)一個新的label值:label=label+1,B(x,y)=label;如果B(x,y)的鄰接中有像素值>1的像素neighbors,將neighbors中的最小值賦給B(x,y),B(x,y)_min{hel‘ghbors);記錄neighbors中各個值(1abel)之間的相等關(guān)系,即這些值(1abel)同屬于一個連通域。
第二次掃描,如圖5(b)所示:訪問當前像素B(x,y),如果B(x,y)>1,找到與labeI=B(x,y)同屬相等關(guān)系的一個最小label值,并賦給B(x,y)。掃描完成后,圖像中具有相同label值的像素就組成了同一個連通域。
本文為了對環(huán)繞在表盤邊緣的刻度進行排序,提出了旋轉(zhuǎn)檢測連通域的方法。如圖1,首先將圓盤以O(shè)為圓心均分成若干角度為a的扇形,a要足夠小,滿足最寬處(p到p的距離)不超過一個像素。然后步驟如下:
(1)按照順時針(如圖1箭頭方向)從①開始逐個扇形掃描圖像,把每一扇形區(qū)域中連續(xù)的白色像素組成一個集合,并記下它的起點、它的終點以及所在行數(shù)。然后從1號開始按照數(shù)字順序標注每個集合。
(2)對于除了第一個扇形外的所有行里的集合,如果它與前一扇形中的所有集合都沒有重合區(qū)域,則給它一個新的標號;如果它僅與上一扇形中一個集合有重合區(qū)域,則將上一扇形的那個集合的標號賦給它;如果它與上一扇形的2個以上的集合有重疊區(qū)域,則給當前集合賦一個相連集合的最小標號,并將上一扇形的這幾個集合的標記寫入等價對,說明它們屬于一類。
(3)以上述方法遍歷整個區(qū)域,將各個集合的標號賦值給該集合每個像素。
本文選取了市面上常用的一種指針式溫濕度儀作為案例,其算法總體流程在下文詳細敘述(本文所有提到某點的“角度”均是指該點和圓心的連線與O軸夾角的角度)。
2圖像預處理
采集到的原始圖像會由于各種原因的影響而夾雜多種噪聲,對原始圖像進行預處理,是之后各種處理的前提。預處理工作的重點是去除圖像中的噪聲干擾并突出圖像中有用的特征信息,然后通過選擇合適的算法函數(shù)并設(shè)置適當?shù)拈撝祬?shù)對儀表圖像的特征信息進行分析識別的過程。通過圖像濾波、圖像增強以及提取特征信息區(qū)域等手段,突出圖像中有價值的特征信息,提高儀表圖像的可檢測性,為后續(xù)計算識別做準備。預處理工作是整個指針讀數(shù)識別系統(tǒng)中的必要過程,預處理效果的好壞對儀表讀數(shù)的識別效果有直接影響,乃至整個識別系統(tǒng)的準確率。采集原圖經(jīng)過截取,圖像去燥,圖像增強,閾值分割,然后得到較為理想二值化的效果如圖3。圖像增強采用伽馬變換,對輸入圖像灰度值進行的非線性操作,使灰度值的輸出與輸入呈指數(shù)關(guān)系如V。經(jīng)過伽馬變換后的輸入和輸出圖像灰度值關(guān)系如圖2所示。
4表盤刻度標號
使用上文提出的旋轉(zhuǎn)連通域檢測方法可以進行表盤刻度標號。在第三步中,已經(jīng)對刻度盤進行了截取,且每個刻度是一個單獨的實心連通域,故這里可以對旋轉(zhuǎn)連通域檢測方法進行簡化,如圖1,將圓盤以0為圓心均分成若干角度為a的扇形,如圖1中①②④。為了減少計算量,a只需滿足小于兩個距離最小的相鄰刻度之間角度之差的二分之一。⑨是要檢測的刻度,實際情況是白色的,像素值為1。設(shè)kn是刻度的標號,初始k=0。簡化后的步驟如下:
5讀數(shù)
根據(jù)先前已經(jīng)確定的指針末尾端點P(x,Y)與最相近兩個刻度的位置關(guān)系,確定最后的讀數(shù)。首先確定表盤的刻度數(shù)目n,由上述方法檢測得出的連通域個數(shù)k。求出除指針端點所在連通域外其他連通域的質(zhì)心,這就要求在截取表盤刻度的操作時將所有刻度切成統(tǒng)一長度,以免質(zhì)心坐標過度偏離圓弧造成讀數(shù)誤差。圖形的幾何矩為m叩,
6結(jié)語
本文從機器視覺和圖像處理的角度對指針式儀表的刻度提取和標號進行了研究,提出的通過旋轉(zhuǎn)檢測連通域的方法進行對指針式儀表的檢測,相對以往的檢測的方法有效地減小了誤差。在實際的溫濕度儀表檢測中,該檢測算法可以穩(wěn)定的將誤差縮小在一個刻度之內(nèi),系統(tǒng)魯棒性優(yōu)秀,實用性強。