摘 要: 為了實(shí)現(xiàn)指針式儀表的自動(dòng)讀數(shù),提出了一種基于Halcon的極坐標(biāo)變換、BP神經(jīng)網(wǎng)絡(luò)、形態(tài)學(xué)處理、幾何計(jì)算相結(jié)合的方法。該方法考慮了儀表的圓心特征,對(duì)于各種不同的指針儀表,僅僅依賴儀表的圖像信息,檢測(cè)精度較高。實(shí)驗(yàn)證明該方法簡單快捷,且有利于提高效率和精確度。
關(guān)鍵詞: 指針式儀表; 極坐標(biāo)變換; BP神經(jīng)網(wǎng)絡(luò); 形態(tài)學(xué)處理
中圖分類號(hào): TN911.73?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2016)17?0016?04
0 引 言
指針式儀表因具有價(jià)格便宜、結(jié)構(gòu)和維護(hù)簡單等諸多優(yōu)點(diǎn)被廣泛應(yīng)用于很多領(lǐng)域,如工業(yè)領(lǐng)域和實(shí)驗(yàn)領(lǐng)域。對(duì)于指針式儀表的讀數(shù),傳統(tǒng)的方法是通過目測(cè)完成,勞動(dòng)強(qiáng)度大,受人為因素影響大,容易產(chǎn)生誤差,存在可靠性差的隱患,并且效率低 [1]。
指針的提取是指針式儀表自動(dòng)讀數(shù)的關(guān)鍵,目前指針提取有以下幾種常用方法:基于圖像形態(tài)骨架細(xì)化和改進(jìn)的Hough變換的方法[2]、模板匹配的方法[3]、基于收斂映射CM?Hough變換的方法[4]、基于減影和Hough變換的方法[5]等。實(shí)踐表明,以上每種方法都有其優(yōu)缺點(diǎn)。例如模板匹配的方法具有較強(qiáng)的抗干擾性能,但過程復(fù)雜;Hough變換的方法受噪聲和曲線間斷的影響較小,但Hough變換的計(jì)算量大,提取參數(shù)受空間量化間隔的制約。
本文采用基于Halcon的機(jī)器視覺技術(shù),實(shí)現(xiàn)圖像的自動(dòng)采集、處理、識(shí)別以及顯示讀數(shù),解決目前人工判讀的不足[6],且可以應(yīng)用到各類指針式儀表的讀數(shù)中。
1 指針式儀表讀數(shù)系統(tǒng)
指針式儀表讀數(shù)系統(tǒng)在德國MVTec公司研發(fā)的圖像處理軟件平臺(tái)Halcon上實(shí)現(xiàn),此軟件以最新科技為基礎(chǔ),提供功能強(qiáng)大的視覺算法開發(fā)包,包含有1 100個(gè)以上的獨(dú)立函數(shù),具有快速、全面、精確、魯棒性等特點(diǎn),應(yīng)用領(lǐng)域幾乎沒有限制,涵蓋醫(yī)學(xué)、遙感探測(cè)、監(jiān)控及工業(yè)上的各類自動(dòng)化檢測(cè)。
系統(tǒng)算法流程為:首先采集圖像并對(duì)圖像進(jìn)行一系列處理,提取指針后根據(jù)公式計(jì)算獲取讀數(shù),包括圖像采集、圖像預(yù)處理、極坐標(biāo)變換、儀表刻度線的獲取、BP神經(jīng)網(wǎng)絡(luò)最大值字符識(shí)別、指針定位、幾何計(jì)算等部分,如圖1所示。
2 指針式儀表圖像的處理
采集圖像后,首先根據(jù)指針在RGB顏色模式中R通道的紋理特征進(jìn)行一次閾值分割,得到儀表的中心坐標(biāo);通過極坐標(biāo)變換把圓型儀表盤轉(zhuǎn)換成矩形;然后根據(jù)region的行、列、面積特征獲取刻度線位置;為實(shí)現(xiàn)儀表自動(dòng)讀數(shù),需先經(jīng)過BP神經(jīng)網(wǎng)絡(luò)識(shí)別出儀表的最大值;然后經(jīng)過形態(tài)學(xué)處理獲得指針位置;最后根據(jù)公式計(jì)算得到表盤的讀數(shù),并將結(jié)果顯示在屏幕上。
2.1 圖像采集
適當(dāng)?shù)墓庠凑彰髟O(shè)計(jì),使圖像中的目標(biāo)、背景信息得到最佳分離,可大大降低圖像處理算法分割、識(shí)別的難度,提高系統(tǒng)的定位、測(cè)量精度,所以光源對(duì)圖像的質(zhì)量影響很大。相機(jī)作為機(jī)器視覺系統(tǒng)中的核心部件,對(duì)于系統(tǒng)的重要性是不言而喻的。在選擇好光源和相機(jī)類型、位置后,調(diào)用Halcon軟件中的算子read_image()加載已獲取的圖像,采集的圖像如圖2(a)所示。
2.2 圖像預(yù)處理
采集的圖像指針是紅色的,在RGB顏色模式中,R通道中指針的灰度值明顯大于其他通道,調(diào)用算子decompose3()把彩色圖像轉(zhuǎn)化為3個(gè)單通道的R,G,B圖像,R通道圖像如圖2(b)所示。對(duì)R通道圖像進(jìn)行圖像增強(qiáng),突出圖像中的感興趣區(qū)域,增強(qiáng)感興趣區(qū)域與背景的對(duì)比度,使圖像比原始圖像更加適合處理,然后根據(jù)R通道的紋理特征,經(jīng)全局閾值分割得到儀表盤的region,如圖2(c)所示。
2.3 極坐標(biāo)變換
Halcon中調(diào)用極坐標(biāo)變換算子polar_trans_image_ext()把圓形儀表刻度線轉(zhuǎn)化為水平方向[7?8],然后經(jīng)過形態(tài)學(xué)處理獲取指針,彌補(bǔ)Hough變換計(jì)算時(shí)間長、占用內(nèi)存大的缺陷。
直角坐標(biāo)系與極坐標(biāo)系之間的互換公式為:
[ρ2=x2+y2tanθ=yx,x≠0] (1)
極點(diǎn)與直角坐標(biāo)系重合是互換公式的前提條件之一,故首先要進(jìn)行坐標(biāo)平移、翻轉(zhuǎn),然后將直角坐標(biāo)系中圓心為原點(diǎn)、半徑為[R]的圓,變換到極坐標(biāo)系中[r=R]的一條直線,實(shí)現(xiàn)圓形轉(zhuǎn)化成水平方向,極坐標(biāo)變換原理如圖3(a)所示。
圖3(a)中,[O]為同心圓的圓心,[θ]為內(nèi)圓上點(diǎn)的極角,[ρ]為內(nèi)圓上點(diǎn)的極徑。點(diǎn)[A]與點(diǎn)[B]之間的極角不同,但由于在同一個(gè)圓內(nèi),所以兩者之間的極徑是一樣的,故點(diǎn)[A]與點(diǎn)[B]在極坐標(biāo)系中位于同一條直線上。
閾值分割后的region是一個(gè)整體的region,使用算子connection()進(jìn)行連通域操作,把整個(gè)region中不同的連通域化為單個(gè)的region,然后就可以對(duì)單個(gè)的region進(jìn)行操作;根據(jù)面積特征,提取包含儀表刻度線的最小外圓;然后獲取最小外圓的圓心坐標(biāo)和半徑,即儀表盤的圓心坐標(biāo)和半徑;把獲得的圓心坐標(biāo)和半徑作為polar_trans_image_ext()算子的參數(shù),使之僅僅依賴儀表的圖像信息,以適用于各種不同的指針儀表。
調(diào)用算子polar_trans_image_ext()時(shí),輸出圖像左上角像素總是對(duì)應(yīng)于由開始半徑和開始角度決定的輸入圖像的點(diǎn)。類似地,輸出圖像右下角像素總是對(duì)應(yīng)于由最終半徑和最終角度決定的輸入圖像的點(diǎn)。一般情況下都是進(jìn)行正方向(逆時(shí)針)的極坐標(biāo)變換,變換后的圖像數(shù)字位于刻度線上邊,本文中進(jìn)行順時(shí)針方向的變換,使刻度線位于數(shù)字上邊,如圖3(b)所示。
2.4 儀表刻度線的獲取
從圖像3(b)可以看出,圖像光照不均勻。為更好地提取刻度線、最大值和指針,應(yīng)使用動(dòng)態(tài)閾值算子var_threshold(),否則字符周圍會(huì)出現(xiàn)光暈;計(jì)算區(qū)域的連通域后,根據(jù)區(qū)域的面積、行、列特征,提取刻度線;調(diào)用區(qū)域排列算子,根據(jù)從左至右按列排序的方法對(duì)刻度線依次排序,使左邊第一個(gè)刻度線的索引值為1;計(jì)算排序后刻度線的數(shù)量,選出第一個(gè)刻度線作為一個(gè)region,然后再獲取該region的中心坐標(biāo)[(R1,C1),]同理獲取最后一個(gè)刻度線的中心坐標(biāo)[(R2,C2),]閾值后的region和提取的刻度線分別如圖4(a),4(b)所示。
2.5 儀表最大值字符的識(shí)別
不同的儀表最大刻度值是不同的,為實(shí)現(xiàn)非人工輸入最大值,識(shí)別儀表最大值是非常有必要的。極坐標(biāo)變換后的region區(qū)域大,為減少運(yùn)行時(shí)間,先創(chuàng)建一個(gè)與坐標(biāo)軸平行的長方形,位置為刻度線從0到最大值的區(qū)域;然后調(diào)用算子intersection()計(jì)算長方形和經(jīng)過極坐標(biāo)變換后區(qū)域的交叉區(qū)域,處理后得到的region如圖5(a)所示;最后再根據(jù)面積、行、列特征,獲得最大值所在區(qū)域,如圖5(b)所示。
2.5.1 字符校正與分割
雖然利用極坐標(biāo)變換把圓形儀表盤變換成水平方向,但獲得的最大值不是水平方向的,需要先使其校正到水平位置。
(1) 使用算子union1()獲得最大值區(qū)域的并值,然后獲得該區(qū)域的中心坐標(biāo)[(R3,C3)。]
(2) 仿射變換是一種簡單的變換,它的變換包括平移、旋轉(zhuǎn)、伸縮變換。旋轉(zhuǎn)變換為物體上的各點(diǎn)繞一固定點(diǎn)沿圓周路徑作轉(zhuǎn)動(dòng),原理圖如圖5(c)所示。
在圖5(c)中,點(diǎn)[(x,y)]旋轉(zhuǎn)到[(x,y)]的旋轉(zhuǎn)角度為[ψ,]其中:
[x=rcos ψy=rsinψ] (2)
[x=rcos (ψ+θ)y=rsin(ψ+θ)] (3)
(3) 把字符分割成不同的區(qū)域,然后通過對(duì)面積和高度進(jìn)行過濾得到只包含字符的區(qū)域;最后調(diào)用sort_region()算子排列分割出的單個(gè)字符,如圖5(d)所示。
圖5 字符校正與分割過程的圖像
2.5.2 BP神經(jīng)網(wǎng)絡(luò)字符識(shí)別
Halcon中有多種字體的字符庫,但有時(shí)直接利用已有庫識(shí)別字符,識(shí)別率和預(yù)期有差別,所以要對(duì)分割出的字符進(jìn)行訓(xùn)練,這里使用三層BP神經(jīng)網(wǎng)絡(luò)[9?11]的識(shí)別算法。
BP神經(jīng)網(wǎng)絡(luò)是一種按誤差逆?zhèn)鞑ニ惴ㄓ?xùn)練的多層前饋網(wǎng)絡(luò),包含信息的正向傳播和誤差的反向傳播兩個(gè)學(xué)習(xí)過程,由輸入層、隱層和輸出層組成,結(jié)構(gòu)如圖6所示。
圖6 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
將分割后大小不一的字符統(tǒng)一成6×8大小的圖像進(jìn)行訓(xùn)練,輸入層節(jié)點(diǎn)個(gè)數(shù)是訓(xùn)練字符提取的字符特征的數(shù)目,所以輸入神經(jīng)元為48個(gè)。隱層神經(jīng)元個(gè)數(shù)一般為輸入神經(jīng)元個(gè)數(shù)的2倍,由實(shí)驗(yàn)得隱層神經(jīng)元個(gè)數(shù)為98時(shí)效果最好,輸出神經(jīng)元個(gè)數(shù)為1。
Halcon字符識(shí)別的過程如下:
(1) 在for循環(huán)內(nèi),先對(duì)圖像進(jìn)行預(yù)處理,再調(diào)用算子append_ocr_trainf()訓(xùn)練樣本文件,然后添加到訓(xùn)練文件中;
(2) 由算子creat_ ocr_class_mlp()創(chuàng)建分類文件,使用trainf_ocr_class_mlp()算子訓(xùn)練已創(chuàng)建的訓(xùn)練文件;
(3) 調(diào)用算子write_ ocr_class_mlp()寫入分類器;
(4) 用算子read_ocr_class_mlp()調(diào)出創(chuàng)建好的分類器;再用do_ocr_multi_class_mlp()算子根據(jù)字符的特征進(jìn)行字符分類,并將類返還到字符數(shù)組中;
(5) 把識(shí)別出來的單個(gè)字符通過算子tuple_number()變換成數(shù)字,按公式賦值給變量MaxValue,公式為:
MaxValue:=Number1*100+Number2*10+Number3 (4)
式中:Number1為識(shí)別出的第一個(gè)字符,即最大值的百位;Number2,Number3分別為識(shí)別出的第二個(gè)、第三個(gè)字符。
2.6 指針的定位
數(shù)學(xué)形態(tài)學(xué)作為一種有效的圖像處理工具,可以從圖像中提取出表達(dá)和描繪區(qū)域形狀的有用圖像分量,如邊界、骨架和凸殼等[12]。開運(yùn)算是先腐蝕后膨脹的過程,具有消除小物體,分離物體和平滑較大物體邊界的作用,其定義為:
[A°B=(A?B)⊕B] (5)
式(5)表示所有完全被[A]容納的[B]的平移的并集。
使用開運(yùn)算算子opening_circle()獲得有指針關(guān)鍵部分的region,再根據(jù)面積特征提取合適的指針區(qū)域,如圖7所示。再使用算子smallest_circle()獲取指針的中心[(R4,C4)。]
2.7 幾何計(jì)算
指針到第一條刻度線的距離與刻度線的總長度的比值乘以刻度最大值得到的數(shù)值即為指針的讀數(shù),幾何表達(dá)式為:
[S=MaxValue*C4-C1C2-C1] (6)
式中:[S]為指針的讀數(shù);MaxValue為該指針式儀表的最大刻度值;[C1]為左邊第一條刻度線的列坐標(biāo);[C2]為最后第一條刻度線的列坐標(biāo);[C4]為指針?biāo)谖恢玫牧凶鴺?biāo)。識(shí)別出的數(shù)字顯示在原圖中,如圖8所示。
圖7 指針關(guān)鍵部分的region 圖8 表盤讀數(shù)
3 結(jié) 語
指針式儀表的自動(dòng)讀數(shù)系統(tǒng)應(yīng)滿足實(shí)時(shí)性和準(zhǔn)確性的要求,本文利用機(jī)器視覺軟件Halcon對(duì)采集到的不同刻度值的儀表圖像進(jìn)行處理,平均每0.348 s識(shí)別一幅圖像,讀數(shù)誤差小于1%。實(shí)驗(yàn)結(jié)果表明該方法檢測(cè)精度較高,實(shí)時(shí)性令人滿意。該系統(tǒng)可以大大提高產(chǎn)品的讀數(shù)效率,同時(shí)節(jié)約勞動(dòng)力成本,系統(tǒng)節(jié)能,安全穩(wěn)定,具有很好的擴(kuò)展性和適應(yīng)性,可廣泛應(yīng)用于各類指針式儀表的讀數(shù)中,具有很大的市場(chǎng)價(jià)值和應(yīng)用前景。
參考文獻(xiàn)
[1] 宋人杰,趙立亞.Hough變換的改進(jìn)及其在電廠指針式儀表自動(dòng)識(shí)別中的應(yīng)用[J].東北電力大學(xué)學(xué)報(bào),2011(3):42?46.
[2] 李盛陽,葉梧,馮穗利.基于Hough變換的視覺識(shí)別方法在儀表自動(dòng)檢測(cè)中的應(yīng)用研究[J].科學(xué)技術(shù)與工程,2005(2):82?85.
[3] SABLATNIG R, HANSEN C. Machine vision for automatic ca?libration of analog display instruments [J]. Machine vision applications in industrial inspection, 1995(2423): 356?366.
[4] 張永強(qiáng),邸金紅,馬鵬閣.基于機(jī)器視覺的汽車儀表盤指針檢測(cè)[J].計(jì)算機(jī)測(cè)量與控制,2015(6):1922?1924.
[5] 晁陽.基于特征識(shí)別的指針式儀表自動(dòng)識(shí)別研究[D].濟(jì)南:山東大學(xué),2008.
[6] 袁勇.基于機(jī)器視覺的轎車儀表自動(dòng)校驗(yàn)技術(shù)與系統(tǒng)開發(fā)[D].上海:上海交通大學(xué),2008.
[7] 邵蕊.指針式儀表識(shí)別方法的研究[D].沈陽:沈陽工業(yè)大學(xué),2009.
[8] 黃劍航.基于HALCON的圓環(huán)區(qū)域字符識(shí)別實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī)(專版),2010(7):58?60.
[9] 張銀蘋,葛廣英.基于HALCON的車牌識(shí)別研究[J].現(xiàn)代電子技術(shù),2014,37(16):92?95.
[10] 肖???,葛廣英,姚坤,等.基于HALCON的噴碼字符識(shí)別技術(shù)的研究與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2015,38(15):95?98.
[11] 朱正禮.基于三層BP神經(jīng)網(wǎng)絡(luò)的字符識(shí)別系統(tǒng)的實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī),2006(10):93?95.
[12] GONZALEZ R C, WOODS R E. Digital image processing [M]. 3rd ed. Upper Saddle River: Prentice Hall, 2011.