《電子技術應用》
您所在的位置:首頁 > 顯示光電 > 設計應用 > 基于安卓手機的液晶屏數字識別系統(tǒng)的設計與實現
基于安卓手機的液晶屏數字識別系統(tǒng)的設計與實現
2015年微型機與應用第17期
張新剛,曹自平,唐貴進,朱洪波
(南京郵電大學 通信與信息工程學院,江蘇 南京 210003)
摘要: 針對帶有七段碼的數字液晶屏,設計了一種基于安卓手機的液晶屏數字識別系統(tǒng)。通過手機拍照獲取液晶屏圖像,利用安卓本地接口功能調用計算機視覺庫,對圖像進行處理;針對圖像的傾斜問題,通過圖像預處理和霍夫變換取得圖像傾斜角,并進行傾斜矯正;利用直方圖對數字字符進行分割,以網格法提取字符的特征值,用三層BP神經網絡進行液晶屏數字字符的識別。實際檢測結果表明識別率很高,而且識別速度很快,該系統(tǒng)基于安卓手機,使用方便,便于攜帶,可以實時操作。
Abstract:
Key words :

  摘  要: 針對帶有七段碼的數字液晶屏,設計了一種基于安卓手機的液晶屏數字識別系統(tǒng)。通過手機拍照獲取液晶屏圖像,利用安卓本地接口功能調用計算機視覺庫,對圖像進行處理;針對圖像的傾斜問題,通過圖像預處理和霍夫變換取得圖像傾斜角,并進行傾斜矯正;利用直方圖對數字字符進行分割,以網格法提取字符的特征值,用三層BP神經網絡進行液晶屏數字字符的識別。實際檢測結果表明識別率很高,而且識別速度很快,該系統(tǒng)基于安卓手機,使用方便,便于攜帶,可以實時操作。

  關鍵詞: 安卓;數字識別;開源計算機視覺庫;BP神經網絡

0 引言

  隨著我國信息化建設和現代化進程的加快,自動識別技術已經越來越廣泛地應用在各個工程領域,利用數字圖像識別技術可以有效地加快自動化、智能化進程。液晶屏作為智能化設備的主要標志,其識別已經成為模式識別[1]領域的重要研究課題。帶有七段碼的數字液晶屏,其顯示精度高,易于讀取和設置,在工業(yè)領域應用非常廣泛。利用現有的圖像采集技術、圖像處理技術和圖像識別技術,可以實現液晶屏數字的識別,常用的方法有神經網絡和模版匹配,識別的時間、識別精度和系統(tǒng)的便攜性是識別系統(tǒng)的關鍵。

  現有的識別系統(tǒng)大都是以計算機為載體,不能實現隨時隨地識別液晶屏的要求。近年以來,智能手機系統(tǒng)尤其是安卓系統(tǒng)[2],以其開放性、易開發(fā)和基于Linux操作系統(tǒng)等優(yōu)勢,獲得了大量的用戶。安卓系統(tǒng)提供本地接口(JNI)功能,使開發(fā)者可以通過接口調用庫文件,不僅可以使用Java語言進行開發(fā),而且可以使用輕量級且高效的C/C++語言編寫。安卓的本地接口功能為實現圖像處理提供了方便。通過調用計算機視覺庫[3]文件,安卓開發(fā)人員可以方便進行圖像的處理和圖像的識別。基于此,本文提出基于安卓手機的液晶屏數字識別系統(tǒng),通過安卓手機拍照,獲取液晶屏圖像,利用圖像處理技術對圖像進行處理,最后采用三層BP神經網絡[4]對圖像進行識別,隨時隨地、快速、準確地識別液晶屏圖像。

1 識別系統(tǒng)流程

  圖像識別技術是利用計算機視覺采集物理對象,以圖像數據為基礎,讓機器模仿人類視覺,自動完成某些信息的處理功能,達到人類所具有的對視覺采集圖像進行識別的能力,以代替人去完成圖像分類及識別的任務[5]。圖像模式識別系統(tǒng)通常由五個模塊組成,如圖1所示。

001.jpg

2 圖像預處理及特征提取

  由安卓手機拍照成功后得到液晶屏圖像,這里選取拍照條件不是很理想的情況下獲取的照片,如下圖2所示。

002.jpg

  由上圖2所示,得到的圖像是彩色圖像,由于光照強度等原因,液晶屏圖像中常有許多噪聲點。為了得到精確圖像,本文對圖像進行灰度化處理、大津法[6]二值化處理和開運算處理。下圖3中(a)、(b)和(c)分別為灰度化處理、大津法二值化處理和開運算處理后的結果。

  2.1 圖像傾斜矯正

  在拍攝過程中由于拍攝角度等因素,導致圖像會有一定角度的傾斜,如圖3(c)所示。圖像的傾斜將會增加后續(xù)字符分割和特征提取的難度,甚至導致提取到的特征值是錯誤的,進而嚴重影響字符識別的精度。為了便于圖像后續(xù)處理,需要對圖像進行傾斜矯正。

  對于液晶屏圖像,考慮采用霍夫變換的方法求其傾斜角。通過霍夫變換,可以取得圖像中所有直線的端點。為了便于快速、高效地求取圖像的傾斜角,先對圖像進行膨脹處理和邊緣檢測。

003.jpg

  膨脹是指將圖像與核進行卷積,核可以是任何形狀或大小。通過圖像的膨脹操作,可以將圖像中的高亮區(qū)域逐漸增加。對于圖3(c),先進行反色處理,然后采用7×7的矩形內核膨脹處理5次。膨脹處理后的圖像包含有許多直線,對膨脹處理圖像進行邊緣檢測。設定上下限閾值比為3:1,通過Canny邊緣檢測得到的邊緣圖像。圖4中(a)和(b)分別是對圖3(c)進行膨脹和邊緣檢測后的結果。

004.jpg

  由圖4(b)可以看出,經膨脹處理和邊緣檢測后的圖像可以將液晶屏數字的輪廓勾勒出來。對圖4(b)進行霍夫變換,可以獲取圖像中每條線段的端點,進而可以求其反正切函數,即求得每條線段與橫軸之間的夾角。對其余傾斜角求取平均值,即認為是圖3(c)的傾斜角度。

  根據傾斜角將圖3(c)進行旋轉得圖5。

005.jpg

  2.2 字符分割及歸一化

  字符的分割技術[7]可以將單個字符從圖像中分割出來。直方圖[8]廣泛應用于計算機視覺應用中,可以對圖像的數據進行統(tǒng)計,獲得數據分布的統(tǒng)計圖。

  對于一個大小為X×Y的二值化圖像,定義其在橫軸和縱軸的投影分布函數為Hx(i)(i=1,2,…,X)和Hy(i)(i=1,2,…,Y),其中,X代表橫軸的坐標,Y代表縱軸的坐標,初始化時設置函數值均為0。遍歷該圖像中的像素點,如果該像素點為黑色像素點,則將該像素點對應的投影分布函數Hx(i)和Hy(i)分別加1。最后,得出圖像在橫軸和縱軸的投影分布函數Hx(i)和Hy(i)。利用縱軸和橫軸方向分布函數中波峰和波谷的位置[9],根據字符和空白在縱軸和橫軸投影的不同,得出各個字符的頂、底、左端和右端在圖像中位置。

  根據各個字符在圖像中的位置,即可將字符分割,對圖3(c)進行字符分割后各個字符如圖6所示。

006.jpg

  得到字符在圖像中的位置后,即可將字符從圖像中分割出來。由于實際分割過程中每個字符大小不一致,如圖6所示,所以對分割字符進行歸一化處理,使不同字符的大小統(tǒng)一為固定大小,便于后續(xù)字符分割。首先將圖6中字符周圍的空白位置切除,然后采用三次樣條插值的方法,對源圖像附近的4×4個鄰近像素進行三次樣條擬合,最后將目標像素對應的三次樣條值作為目標圖像對應像素點的值。將字符歸一化以后,所得各個字符如下圖7所示。

007.jpg

  2.3 字符特征提取

  將字符從圖像中分割以后,就可以對圖像進行特征提取。采用網格法[10]提取字符的21個特征值,用于字符圖像的識別。首先將字符圖像均分為5行3列的區(qū)域,分別求得每個區(qū)域內黑色像素所占該區(qū)域的比例,作為字符的15個特征值;然后將字符圖像均分為3行,分別求得每行內黑色像素點占該區(qū)域的比例,作為字符圖像的3個特征值;最后,將字符圖像均分為3列,分別求得每列內黑色像素點占該區(qū)域的比例,作為字符圖像的另外3個特征值。共提取字符圖像的21個特征值,用于字符圖像的識別。

3 字符識別

  用誤差反向后傳算法即BP神經網絡來進行數字字符的識別。BP神經網絡由Rumelhart和McClelland于1985年提出,實現了Minsky和Papert認為不能實現的多層網絡的設想[11]。

008.jpg

  三層BP神經網絡的模型如圖8所示,包括輸入層、隱含層和輸出層,各層間由連接權值構成。BP神經網絡的訓練過程由信號的正向傳播和誤差的反向傳播兩個過程組成,其學習的本質是各連接權值的動態(tài)調整。隨著網絡的不斷學習,權值也不斷的調整,直到誤差減少到可接受的程度或者訓練達到預定的訓練次數。

  3.1 網絡結構設計

  2.3節(jié)說明了提取字符的21個特征值,本系統(tǒng)BP神經網絡的輸入層采用21個節(jié)點,分別對應字符的21個特征值。數字字符的識別結果共10個,本文用各個數字對應的四位二進制數表示其對應的期望輸出,即輸出層采用4個節(jié)點。

  由理論分析證明,具有單隱層的BP神經網絡即可滿足大部分的設計需求,本文中采用單隱層。

  BP神經網絡隱含層節(jié)點數的設計與訓練樣本數的多少、樣本噪聲的大小及樣本中蘊含規(guī)律的復雜程度密切相關。實際應用中常用試湊法確定最佳隱節(jié)點個數[12]。下面是一些確定隱節(jié)點數的經驗公式:

  %){8B7)B580F8$PRP9T)06F.png

隱節(jié)點數,n為輸入層節(jié)點數,l為輸出層節(jié)點數,為1~10之間常數。

  經過分析與實際檢驗,本系統(tǒng)采用10個隱節(jié)點數時,可以使網絡誤差很小,同時具有很高的訓練精度,訓練速度也很快,所以采用10個隱節(jié)點數。

  網絡訓練所需樣本數取決于輸入輸出的非線性映射關系的復雜程度,映射關系越復雜,為保證映射精度,所需要的樣本數就越多。對于本系統(tǒng)而言,當每個數字字符取10個樣本,總共取100個樣本的時候,就可以訓練出比較理想的BP神經網絡。

  3.2 生成訓練樣本和測試樣本

  本系統(tǒng)收集了1 400張液晶屏數字的圖像,任意選取100張作為訓練樣本,剩余1 300張作為測試樣本。

  3.3 訓練神經網絡

  如果用安卓手機來進行BP神經網絡的訓練,消耗的時間非常長。為了節(jié)省時間,用計算機進行BP神經網絡的訓練。采用VC++平臺,根據訓練樣本訓練三層BP神經網絡,訓練成功后將BP神經網絡模型移植到安卓手機中。

  3.4 系統(tǒng)測試

009.jpg

  圖9為本系統(tǒng)對圖2的識別結果,可以看到,該系統(tǒng)可以快速實現液晶屏數字的識別。

  用1 300個測試樣本對識別系統(tǒng)進行檢測,檢測結果表明本系統(tǒng)正確識別率高達97.8%,可以實現液晶屏數字的精確識別。

4 結論

  現有的液晶屏數字識別技術大都是以計算機作為載體來實現的,不便于實現隨時隨地進行液晶屏的識別。針對這個問題,以安卓手機為載體,通過拍照獲取圖像,調用計算機視覺庫實現圖像的預處理和特征提取,用訓練的三層BP神經網絡模型實現液晶屏數字的識別。檢測結果表明,該系統(tǒng)可以隨時隨地、快速、高效地實現液晶屏數字的識別。

參考文獻

  [1] 范會敏,王浩.模式識別方法概述[J].電子設計工程,2012,20(19):48-51.

  [2] 李寧.Android開發(fā)權威指南[M].北京:人民郵電出版社,2013.

  [3] 于仕琪,劉瑞禎.學習OpenCV[M].北京:清華大學出版社,2009.

  [4] Dong Yu, Li Deng, SEIDE F. The deep tensor neural network with applications to large vocabulary speech recognition[J]. IEEE Transactions on Audio, Speech, and Language Processing, 2013,21(2):388-396.

  [5] 楊淑瑩.圖像識別與項目實踐:VC++、MATLAB技術實現[M].北京:電子工業(yè)出版社,2014.

  [6] OTSU N. A threshold selection method from gray-level histograms[J]. IEEE Transactions, Systems, Man and Cybernetics, 1979, 9(1):62-66.

  [7] 龐然,汪仁煌,劉洪江.液晶屏數字識別中分割算法的研究[J].電子技術應用,2007,33(5):64-66.

  [8] 趙莉,楊莉,林曉.基于投影信號和小波分析的字符特征提取方法[J].山東建筑大學學報,2007,22(3):247-250.

  [9] 朱俊梅,陳少平.基于改進的投影方法的車牌圖像字符分割[J].中南民族大學學報,2007,26(4):58-60.

  [10] 鞏玉濱,楊紅娟,張運楚,等.一種數顯儀表數字字符識別方法研究[J].山東建筑大學學報,2011,26(2):134-137.

  [11] 王明勛.基于神經網絡的液晶數字識別在船用設備管理中的應用[J].艦船電子工程,2012,32(7):95-97.

  [12] 施彥,韓立群,廉小親,等.神經網絡設計方法與實例分析[M].北京:北京郵電大學出版社,2009.


此內容為AET網站原創(chuàng),未經授權禁止轉載。