張李軒, 閆 坤,2, 李慧慧, 黃雪梅
(1.桂林電子科技大學 信息與通信學院,廣西 桂林 541004;2.桂林電子科技大學 衛(wèi)星導航定位與位置服務國家地方聯(lián)合工程研究中心,廣西 桂林 541004)
隨著計算機圖像處理技術的發(fā)展,機器視覺已廣泛進入各種生產(chǎn)、生活領域。機器視覺是指圖像轉換為數(shù)字形式并進行分析,從中提取可供后端使用的信息,它是人工智能的關鍵。目前,機器視覺被用在遠程信息采集、實時監(jiān)控及特種場所管理。2011年漢諾威工業(yè)博覽會上正式推出的工業(yè)4.0將工業(yè)發(fā)展推向智能化時代,其中工業(yè)設備信息采集是自動化的基礎。常用的工業(yè)設備信息采集包括:1)基于各種傳感器的信息采集;2)基于機器視覺的信息采集。由于基于機器視覺的信息采集具有無需侵入設備內(nèi)部、安裝方便等優(yōu)勢,被工業(yè)界廣泛認可。指針式儀表的識別是機器視覺在工業(yè)信息采集方面的一個典型應用,由于其結構簡單、維護方便、成本低等優(yōu)點,被廣泛應用于壓力、電壓和電流等各種物理參數(shù)的信息采集。因為這項應用的潛力巨大,多個研究團隊采用計算機圖像處理技術設計指針式儀表的識別與讀數(shù)算法[1-4]。
目前對于指針式儀表指針的識別與分類有很多算法研究成果。主要研究方向為單一指針識別算法,文獻[5-8]提出的方法針對單一指針式儀表,可以解決光照因素引起的識別算法魯棒性問題。多指針識別及讀數(shù)的算法研究相對較少,李祖勝等[9]提出基于Hough變換的雙指針機械儀表讀數(shù)自動識別方法,能夠估計雙指針儀表讀數(shù),但使用Hough變換對儀表清晰度要求較高且計算量較大。另外Hough變換的指針識別和讀數(shù)估計需利用直線特征,對于不具備直線特征的特殊形狀指針,指針誤檢和漏檢的概率將會上升。高建龍等[10]提出一種改進ORB和Hough變換的指針式儀表識讀方法用于識別單一指針,滿足了儀表讀數(shù)的高精度要求,但該方法利用Hough變換提取儀表內(nèi)的指針直線和刻度直線,會檢測到表盤內(nèi)的非指針線條,易受各類線條干擾,因此對表盤本身和表盤的拍攝環(huán)境的要求較高。崔行臣等[11]提出使用減影法獲取指針讀數(shù),其通過減影獲取指針與基準值之間的夾角,利用直線擬合得到指針精確位置,這種方法對減影后的指針完整度要求較高,且需要指針基準值才能完成指針識別讀數(shù)。
針對上述問題,為了提供一種魯棒性較高的多指針儀表識別與讀數(shù)方法,利用細分掩膜選取區(qū)域的方法,搜尋表盤指針像素點峰值完成指針識別,然后估算多指針的讀數(shù)。掩膜的設計可根據(jù)不同儀表調整,以適應多種工程需要。
指針識別是多指針儀表的圖像處理中重要的算法設計,不同指針可能對應不同物理意義、物理單位。因此,如何建立指針與其物理意義的對應關系,是實現(xiàn)指針讀數(shù)的重要步驟。設計以下流程完成指針識別:儀表圖像預處理,掩膜構造,指針檢測,指針區(qū)域提取,指針模板匹配。完成指針識別后,可進行儀表讀數(shù),其流程主要包括局部指針搜索、指針讀數(shù)估計。多指針儀表識別算法系統(tǒng)框圖如圖1所示。
圖1 多指針儀表識別系統(tǒng)框圖
為減少儀表識別過程的計算量和存儲空間,將彩色圖像轉換為灰度圖像;同時為更好地捕獲特殊形狀指針式儀表的指針特征,需對采集到的儀表圖像預處理,從而得到指針特征清晰的儀表圖像。
對采集到的儀表圖像通過閾值分割的方法進行圖像二值化處理,并將二值化后的圖像歸一化。二值化后圖像g(x,y)為
(1)
其中:(x,y)為像素點坐標;f(x,y)為輸入圖像的灰度值;T為二值化處理設定的閾值,該閾值將指針所在區(qū)域二值化為白色。對圖像設定合理的閾值可以突出有效信息,去除冗余信息。圖像二值化處理常用的方法有:自適應中值濾波法、迭代法、最大熵閾值法、最大類間方差法等[12-15]。根據(jù)表盤的特性,為了得到較為理想的二值化圖像,采用最大類間方差法[15-16]求二值化閾值,濾除了表盤的背景和表盤中的部分刻度與數(shù)字,保留了指針特征與表盤外延。
掩膜的作用是提取指針可活動區(qū)域。掩膜對二值化處理后的多指針儀表圖像進行剪裁,最終得到指針可活動區(qū)域圖像,以減少計算復雜度。
以圖2(a)儀表為例說明掩膜構造方法。假設儀表中心點(x0,y0)及表盤半徑R已知(可采用人工標定方式預設或利用Hough變換確定),以該中心點為圓心構造掩膜,用以覆蓋全部指針活動區(qū)。掩膜設計如圖2(c)所示。掩膜設計步驟為:首先以儀表中心(x0,y0)和半徑R-r構造圓形掩膜,令r=0.4R,R-r的長度的圓形掩膜以不覆蓋刻度區(qū)域為標準。然后剪除一個內(nèi)圓,內(nèi)圓圓心為儀表中心(x0,y0),半徑為R-ε,其中ε為剪除參數(shù)。為提高掩膜精度,對圖2(a)儀表掩膜進一步優(yōu)化。由于環(huán)狀掩膜的部分區(qū)域無指針活動,可剪除該區(qū)域,該區(qū)域為環(huán)狀底部,其展開的角度與位置對應于表盤指針無示數(shù)部分。
圖2 指針粗端搜索過程
細分掩膜選取的儀表區(qū)域,利用指針與表盤間的色差特性搜索指針的位置。使用掩膜能夠避免儀表其他區(qū)域對指針檢測的影響,提高檢測精度。對儀表的掩膜選擇區(qū)域(圖2(d))進行扇形細分,如圖2(e)所示,并計算扇形細分圖中每個小扇形所包含的白色像素點個數(shù),即計算指針在每個扇形中所占面積。計算過程如下:
假設扇形細分個數(shù)(即小扇形個數(shù))為N,首先確定扇形掩膜中每個小扇形的起始角度θ(i),
(2)
其中:θs為扇形掩膜展開的起始角度;θe為扇形掩膜展開的終止角度。計算扇形掩膜中第i個小扇形中白色像素點數(shù)的累加和k(i),
(3)
其中:rmin為在第i個扇形角度θ中的最小半徑;rmax為在第i個扇形角度θ中的最大半徑。r從rmin取值至rmax,相當于以圓心為原點建立極坐標系,r從最小半徑rmin遍歷到最大半徑rmax,計算第i個θ中的白色像素點數(shù),坐標(x0,y0)是圖像表盤儀表圓的圓心點。
(4)
根據(jù)搜索條件可得估計指針角度集合,
A={a1,a2,…,aM},
(5)
其中:a為搜索條件下所估計指針角度;M為所估計指針數(shù)。
圖3 指針粗端搜索結果
ωm={θ|am-ξ<θ (6) 其中ξ為鄰域半徑。工程實踐中用平均值計算ξ, (7) 截取指針如圖4所示。截取指針模板匹配過程首先將各個指針截取圖歸一化,與預設指針模板匹配并計算匹配度,然后通過匹配度高低識別指針,取匹配度最高的模板指針為其對應指針,并給每個模板設定編號值,以編號值代替模板來對應指針。指針截取圖Π(m)判定方法為 (8) 其中:P(j)為第j個指針模板;X為識別出來的指針編號。指針識別部分完成指針檢測和識別功能,從而可以建立指針與其物理意義的對應關系。 圖4 指針粗端截取圖 φm={θ|am-υ<θ (9) (10) (11) 其中:局部搜索半徑區(qū)間為(R-r,R);H為最大白色像素點對應的θ值。取最大白色像素點數(shù)對應的θ值計算指針讀數(shù)。 圖5 指針尖端搜索過程 圖6 指針尖端搜索結果 利用指針角度θ與儀表刻度的線性關系計算儀表的讀數(shù)D(θ), D(θ)=θS/N±b, (12) 其中:S為儀表最大量程;b為校正參數(shù),用來校正計算讀數(shù)與實際讀數(shù)的誤差。因為在實際拍攝時,攝像機與待識別儀表很難做到完全平行,使得判別函數(shù)關系存在一定的非線性,這在一定程度上影響了算法的識別精度,設置校正參數(shù)b使讀數(shù)估計值更加接近實際值。 在Matlab環(huán)境下,以電接點壓力表為例,測試多指針儀表識別算法的效果。實驗圖像數(shù)據(jù)通過固定在冶金廠電接點壓力表前的攝像裝置獲取,實驗輸入儀表圖像,將計算值與人工判讀值進行比較,以判斷算法的準確性。由于儀表刻度精度不高,人工讀數(shù)的實際值只取小數(shù)點后3位。采用2種方法對三指針儀表讀取數(shù)據(jù),計算2種方法對3個指針讀數(shù)的絕對誤差與相對誤差,最終得出平均相對誤差,其中算法實現(xiàn)的判別值即系統(tǒng)判別值。扇形細分法與Hough變換直線檢測法測試結果見表1和表2。由于該儀表中的指針為缺口狀,直線特征不強,且表盤干擾線條較多,直接對表盤使用Hough變換直線檢測法會增大指針誤檢和漏檢概率,甚至無法檢測指針與讀數(shù),與本方法對比意義不大。該實驗的Hough變換直線檢測法測試結果以圖5(c)指針尖端圖為基礎進行測試,以提高實驗讀數(shù)的準確性。 由表1和表2可知,扇形細分法平均相對誤差為0.194 69%,在局部指針搜索步驟基礎上的Hough變換直線檢測法平均相對誤差為0.361 09%,可見, 表1 扇形細分法測試結果 表2 在指針尖端搜索步驟基礎上的Hough變換直線檢測法測試結果 扇形細分法精度高于Hough變換直線檢測法,且在局部指針搜索步驟基礎上的Hough變換直線檢測方法的讀數(shù)平均相對誤差也較低。此外,自動讀數(shù)方法誤差最大值比儀表盤固有精度小,算法準確性滿足儀表讀數(shù)要求,表明本方法自動識別讀數(shù)的實用性、可靠性都較好。 多指針儀表識別算法取得了較好效果,扇形法檢測指針可識別特殊形狀的多指針式儀表,并且降低指針漏檢概率。本方法的識別精度較高,有較高的魯棒性,適用于各類均勻刻度表盤的指針識別與讀數(shù),如圓形表盤、圓弧形表盤等。因此,儀表讀數(shù)方法是一種可行的方法,具有較好的應用前景。 對于精度要求高的儀表讀數(shù),如精密壓力表,可增大扇形細分數(shù),提高讀數(shù)精度,以滿足高精度儀表讀數(shù)要求。今后將進一步優(yōu)化算法性能,爭取在提高識別精度的同時降低復雜度。1.5 指針模板匹配
1.6 指針尖端搜索
1.7 指針讀數(shù)估計
2 實驗結果與分析
3 結束語
———《扇形的認識》教學廖