陳剛 胡子峰 鄭超
摘要:為對數(shù)顯類儀表的顯示數(shù)據(jù)進(jìn)行自動識別與監(jiān)測,提高該類儀表的自動化水平,需要研究儀表數(shù)碼快速識別算法。該文提出一種基于特征提取的數(shù)字儀表數(shù)碼快速直接識別算法。將圖像進(jìn)行預(yù)處理后,對數(shù)顯屏幕進(jìn)行定位。通過列切實現(xiàn)單個數(shù)碼字符切割,對單個數(shù)碼字符進(jìn)行七段特征檢測和五線相交檢測,實現(xiàn)對正體數(shù)碼和斜體數(shù)碼的快速直接識別。實驗表明,算法基本可以滿足各種儀表數(shù)碼的識別需求,識別速度快、準(zhǔn)度高。
關(guān)鍵詞:數(shù)碼識別;特征檢測;數(shù)字儀表;快速識別
中圖分類號:TP391.4文獻(xiàn)標(biāo)志碼:A 文章編號:1674-5124(2019)04-0146-05
0引言
隨著科學(xué)技術(shù)的發(fā)展,各行業(yè)的管理手段正在由人工管理逐漸變?yōu)樽詣踊虬胱詣庸芾矸绞?,工業(yè)的自動化也是發(fā)展的必然趨勢。由于使用環(huán)境和儀器設(shè)計的原因,目前很多儀器儀表尚無計算機數(shù)據(jù)通信接口,需要進(jìn)行人為讀數(shù)。為了實現(xiàn)這類儀器儀表的動態(tài)數(shù)據(jù)自動化監(jiān)測,需要使用數(shù)碼攝像頭實時拍攝儀表數(shù)字顯示區(qū)域,通過計算機進(jìn)行圖像采集和處理識別,將圖像轉(zhuǎn)換為文本形式的數(shù)字,從而進(jìn)行讀數(shù)的存儲和分析。在此過程中,圖像處理識別算法是實現(xiàn)自動化監(jiān)測的核心。
這類儀器儀表大多是采用各種數(shù)碼管進(jìn)行數(shù)據(jù)顯示。七段數(shù)碼管所顯示的數(shù)字較規(guī)則,但筆畫較寬,使用普通的OCR識別無法正確識別。數(shù)碼管基本可以分為正體和斜體兩種,大多數(shù)數(shù)碼管所顯示的數(shù)字為正體或稍向右側(cè)傾斜,但也有一部分?jǐn)?shù)碼管向右傾斜較大。針對這類儀表的圖像處理識別算法主要就是對數(shù)碼管的數(shù)字和小數(shù)點進(jìn)行識別檢測。
目前數(shù)碼檢測已有一些檢測算法,如模板匹配法、穿線法、七段特征提取法、基于BP網(wǎng)絡(luò)的識別方法、基于KNN的識別算法川、基于數(shù)學(xué)形態(tài)學(xué)的識別方法和基于模式識別的方法等。模板匹配法需要建立0~9這10個數(shù)字的模板,將數(shù)字圖像與模板圖像歸一化成相同大小,求差后逐一對比,將差值最小的認(rèn)為是相同的數(shù)字;此方法簡單、易于實現(xiàn),但要根據(jù)不同的字體設(shè)計不同的模板,計算量較大。穿線法將一條垂直的二等分線和兩條水平的四等分線穿過數(shù)字矩形區(qū)域,掃描線上的像素點,以此確定具體數(shù)字;此方法計算量小,但易受前期預(yù)處理效果影響。七段特征提取法通過判斷7個位置的數(shù)碼管是否點亮來判斷具體數(shù)字,抗干擾能力強,但不適用于傾斜度很高的數(shù)碼數(shù)字?;贐P網(wǎng)絡(luò)的識別方法具有良好的自學(xué)習(xí)能力,但需要海量數(shù)據(jù)進(jìn)行訓(xùn)練,使用復(fù)雜?;贙NN的識別算法和基于數(shù)學(xué)形態(tài)學(xué)的識別方法的識別率高,但識別過程緩慢,實時性不強?;谀J阶R別的方法算法簡單,但受限于分類方法的具體實現(xiàn)方案。
為了克服現(xiàn)有方法的不足,實現(xiàn)儀表數(shù)碼的快速直接檢測,本文提出了基于特征檢測的數(shù)字儀表數(shù)碼快速直接識別算法。將七段特征提取法和穿線法進(jìn)行融合改進(jìn),通過七段特征檢測和五線相交檢測來確定具體數(shù)字,實現(xiàn)正體數(shù)碼和斜體數(shù)碼快速直接檢測。
1數(shù)碼快速識別算法
在獲取到儀器數(shù)顯屏區(qū)域的圖像后,對圖像進(jìn)行預(yù)處理和數(shù)字切分,得到每個數(shù)字的二值化圖像。本文提出的數(shù)碼快速識別算法分為兩步,第一步為利用七段特征檢測,第二步為利用五線相交檢測。
1.1七段特征檢測
七段特征檢測本質(zhì)為七段特征提取法,但在原有方法上對檢測點進(jìn)行了優(yōu)化,降低了對圖像處理的要求,更便于實現(xiàn)。數(shù)碼管如圖1所示,標(biāo)記了7個需要檢測的點。
對于一個切分好的數(shù)碼字符二值化圖像,若使其背景為黑色,數(shù)字為白色,則此圖像為一個二維矩陣,各元素分別為0或1。其中,1代表白色,0代表黑色。假設(shè)圖像為mxn矩陣,記為A。假設(shè)數(shù)碼筆畫線寬為w,對于一般的數(shù)碼管,線寬與數(shù)碼圖像寬度n關(guān)系式為:
為了防止圖像局部噪聲過大或數(shù)碼斜體等情況對檢測結(jié)果產(chǎn)生誤判,需要使用7個特征點來判斷數(shù)字。若7個特征點的值出現(xiàn)其他的組合,則視為識別錯誤,可以使用五線相交進(jìn)行補償檢測。
1.2五線相交檢測
傳統(tǒng)的穿線法用3根線條與圖像像素的交點作為數(shù)碼識別的依據(jù),此方法對于正體和稍微傾斜的數(shù)碼字體有較好效果,但對于傾斜較大的字體無法識別,同時也無法進(jìn)行數(shù)字后小數(shù)點的識別與判斷。本文提出的五線相交檢測方法,采用5根線條作為檢測對象,通過每根線條與對應(yīng)位置的相交次數(shù)來進(jìn)行數(shù)字判斷。
橫向采用兩根線條,分別放置于圖像縱向的2個四分點位置;縱向采用3根線條,一條放置于橫向中線,一條放置于稍往前一段的位置,另一條放置于橫向末端,如圖2所示。
對于矩陣A對應(yīng)的圖片,以其左下角作為坐標(biāo)原點,橫向向右作為x軸正方向,縱向向上作為y軸正方向,則所用的5條直線表達(dá)式分別為:
直線l1、l2與圖像中筆畫相交次數(shù)分別為pnp12,用兩位表示。其中,第一位表示直線與圖像左半部相交次數(shù),第二位表示圖像與右半部相交次數(shù)。例如,若直線l1與圖像左半部沒有相交,與右半部相交一次,則pn=01。直線l3、l4與圖像中筆畫相交次數(shù)分別為p13、p14,用一位表示,只記錄相交次數(shù),不記錄位置。需要說明的是,計算直線與圖像中筆畫相交次數(shù)時,在跨度為w的范圍內(nèi)重復(fù)相交算作一次,以防止由于圖像噪聲點產(chǎn)生的計算錯誤。
數(shù)碼為1和小數(shù)點可以根據(jù)圖像尺寸判斷,方法如1.1節(jié)所述。剩余數(shù)字可以根據(jù)pn、p12和min{p13,p14}三者的值來進(jìn)行數(shù)字判斷,對應(yīng)關(guān)系見表2。
對于直線l5,可以通過其與圖像下部之間是否有交點來判斷數(shù)字后是否帶有小數(shù)點。若有交點且相交范圍較小,則表示該數(shù)碼數(shù)字后帶有小數(shù)點。
1.3融合兩種方法的數(shù)碼識別方法
七段特征檢測方法抗干擾能力強,對于正體數(shù)碼和稍微傾斜的數(shù)碼很有效,但不能識別數(shù)字后面是否帶有小數(shù)點。五線相交檢測方法對于斜體檢測很有效,并且可以識別數(shù)字后面是否帶有小數(shù)點,但抗噪聲能力稍弱。因此,將此兩種方法綜合使用,可以實現(xiàn)對各種儀表數(shù)碼的快速直接檢測。算法融合流程如圖3所示。
2實驗驗證
為了驗證算法的有效性,采用廣陸公司的數(shù)顯卡尺和DP-360數(shù)顯傾角儀作為測試對象,進(jìn)行數(shù)碼識別實驗。實驗處理流程如圖4所示。
以一組數(shù)據(jù)為例,攝像頭拍到的圖片如圖5所示。根據(jù)設(shè)置的紅、綠、藍(lán)三色的閾值對圖像進(jìn)行二值化,并選定最大連通域圖像為圖6。根據(jù)橫向和縱向投影,設(shè)置閾值,確定顯示屏的上下左右邊界如圖7所示。
對顯示屏范圍內(nèi)的圖像進(jìn)行剪裁,進(jìn)行灰度化處理和直方圖均衡化處理,結(jié)果見圖8。采用OTSU法進(jìn)行二值化,并進(jìn)行濾波和取反,得到最后的預(yù)處理結(jié)果見圖9。
通過水平投影和豎直投影進(jìn)行行切割和列切割,將各個數(shù)字所在區(qū)域切分出來,最終的切分結(jié)果如圖10所示。
經(jīng)過算法識別,得到識別結(jié)果為28.99。識別速度快,識別準(zhǔn)確。在實驗中多次改變數(shù)顯卡尺和數(shù)顯傾角儀的讀數(shù),均可以快速準(zhǔn)確地識別出正確讀數(shù)。
3結(jié)束語
本文提出了一種基于特征檢測的儀器儀表數(shù)碼快速直接識別算法。分別將傳統(tǒng)的七段特征提取法和穿線法進(jìn)行改進(jìn),改良為七段特征檢測方法和五線相交檢測方法,并給出了具體的算法公式和結(jié)果適配。七段特征檢測方法適用于正體和稍微傾斜的數(shù)碼檢測,抗干擾能力強;五線相交檢測方法適用于斜體數(shù)碼檢測,并可以檢測數(shù)字后的小數(shù)點。將這兩種方法融合,基本可以實現(xiàn)所有的儀表數(shù)碼的快速準(zhǔn)確檢測,適用于正體、斜體,抗干擾能力強。經(jīng)過大量實驗,驗證了此算法的準(zhǔn)確性,對實現(xiàn)儀器儀表的動態(tài)數(shù)據(jù)自動化監(jiān)測具有參考意義。