你的位置:首頁(yè) > 互連技術(shù) > 正文

可隨時(shí)隨地進(jìn)行的識(shí)別:基于安卓手機(jī)的液晶屏數(shù)字識(shí)別系統(tǒng)

發(fā)布時(shí)間:2016-02-15 責(zé)任編輯:susan

【導(dǎo)讀】本文針對(duì)帶有七段碼的數(shù)字液晶屏,設(shè)計(jì)了一種基于安卓手機(jī)的液晶屏數(shù)字識(shí)別系統(tǒng)。實(shí)際檢測(cè)結(jié)果表明識(shí)別率很高,而且識(shí)別速度很快,該系統(tǒng)基于安卓手機(jī),使用方便,便于攜帶,可以實(shí)時(shí)操作。
 
通過(guò)手機(jī)拍照獲取液晶屏圖像,利用安卓本地接口功能調(diào)用計(jì)算機(jī)視覺(jué)庫(kù),對(duì)圖像進(jìn)行處理;針對(duì)圖像的傾斜問(wèn)題,通過(guò)圖像預(yù)處理和霍夫變換取得圖像傾斜角,并進(jìn)行傾斜矯正;利用直方圖對(duì)數(shù)字字符進(jìn)行分割,以網(wǎng)格法提取字符的特征值,用三層BP神經(jīng)網(wǎng)絡(luò)進(jìn)行液晶屏數(shù)字字符的識(shí)別。實(shí)際檢測(cè)結(jié)果表明識(shí)別率很高,而且識(shí)別速度很快,該系統(tǒng)基于安卓手機(jī),使用方便,便于攜帶,可以實(shí)時(shí)操作。
    
隨著我國(guó)信息化建設(shè)和現(xiàn)代化進(jìn)程的加快,自動(dòng)識(shí)別技術(shù)已經(jīng)越來(lái)越廣泛地應(yīng)用在各個(gè)工程領(lǐng)域,利用數(shù)字圖像識(shí)別技術(shù)可以有效地加快自動(dòng)化、智能化進(jìn)程。液晶屏作為智能化設(shè)備的主要標(biāo)志,其識(shí)別已經(jīng)成為模式識(shí)別領(lǐng)域的重要研究課題。帶有七段碼的數(shù)字液晶屏,其顯示精度高,易于讀取和設(shè)置,在工業(yè)領(lǐng)域應(yīng)用非常廣泛。利用現(xiàn)有的圖像采集技術(shù)、圖像處理技術(shù)和圖像識(shí)別技術(shù),可以實(shí)現(xiàn)液晶屏數(shù)字的識(shí)別,常用的方法有神經(jīng)網(wǎng)絡(luò)和模版匹配,識(shí)別的時(shí)間、識(shí)別精度和系統(tǒng)的便攜性是識(shí)別系統(tǒng)的關(guān)鍵。
  
現(xiàn)有的識(shí)別系統(tǒng)大都是以計(jì)算機(jī)為載體,不能實(shí)現(xiàn)隨時(shí)隨地識(shí)別液晶屏的要求。近年以來(lái),智能手機(jī)系統(tǒng)尤其是安卓系統(tǒng),以其開放性、易開發(fā)和基于Linux操作系統(tǒng)等優(yōu)勢(shì),獲得了大量的用戶。安卓系統(tǒng)提供本地接口(JNI)功能,使開發(fā)者可以通過(guò)接口調(diào)用庫(kù)文件,不僅可以使用Java語(yǔ)言進(jìn)行開發(fā),而且可以使用輕量級(jí)且高效的C/C++語(yǔ)言編寫。安卓的本地接口功能為實(shí)現(xiàn)圖像處理提供了方便。通過(guò)調(diào)用計(jì)算機(jī)視覺(jué)庫(kù)文件,安卓開發(fā)人員可以方便進(jìn)行圖像的處理和圖像的識(shí)別。基于此,本文提出基于安卓手機(jī)的液晶屏數(shù)字識(shí)別系統(tǒng),通過(guò)安卓手機(jī)拍照,獲取液晶屏圖像,利用圖像處理技術(shù)對(duì)圖像進(jìn)行處理,最后采用三層BP神經(jīng)網(wǎng)絡(luò)對(duì)圖像進(jìn)行識(shí)別,隨時(shí)隨地、快速、準(zhǔn)確地識(shí)別液晶屏圖像。
  
一.識(shí)別系統(tǒng)流程
  
圖像識(shí)別技術(shù)是利用計(jì)算機(jī)視覺(jué)采集物理對(duì)象,以圖像數(shù)據(jù)為基礎(chǔ),讓機(jī)器模仿人類視覺(jué),自動(dòng)完成某些信息的處理功能,達(dá)到人類所具有的對(duì)視覺(jué)采集圖像進(jìn)行識(shí)別的能力,以代替人去完成圖像分類及識(shí)別的任務(wù)。圖像模式識(shí)別系統(tǒng)通常由五個(gè)模塊組成,如圖1所示。
 
 
二.圖像預(yù)處理及特征提取
  
由安卓手機(jī)拍照成功后得到液晶屏圖像,這里選取拍照條件不是很理想的情況下獲取的照片,如下圖2所示。
 
 
由上圖2所示,得到的圖像是彩色圖像,由于光照強(qiáng)度等原因,液晶屏圖像中常有許多噪聲點(diǎn)。為了得到精確圖像,本文對(duì)圖像進(jìn)行灰度化處理、大津法二值化處理和開運(yùn)算處理。下圖3中(a)、(b)和(c)分別為灰度化處理、大津法二值化處理和開運(yùn)算處理后的結(jié)果。
 
 
1.圖像傾斜矯正
  
在拍攝過(guò)程中由于拍攝角度等因素,導(dǎo)致圖像會(huì)有一定角度的傾斜,如圖3(c)所示。圖像的傾斜將會(huì)增加后續(xù)字符分割和特征提取的難度,甚至導(dǎo)致提取到的特征值是錯(cuò)誤的,進(jìn)而嚴(yán)重影響字符識(shí)別的精度。為了便于圖像后續(xù)處理,需要對(duì)圖像進(jìn)行傾斜矯正。
  
對(duì)于液晶屏圖像,考慮采用霍夫變換的方法求其傾斜角。通過(guò)霍夫變換,可以取得圖像中所有直線的端點(diǎn)。為了便于快速、高效地求取圖像的傾斜角,先對(duì)圖像進(jìn)行膨脹處理和邊緣檢測(cè)。
  
膨脹是指將圖像與核進(jìn)行卷積,核可以是任何形狀或大小。通過(guò)圖像的膨脹操作,可以將圖像中的高亮區(qū)域逐漸增加。對(duì)于圖3(c),先進(jìn)行反色處理,然后采用7×7的矩形內(nèi)核膨脹處理5次。膨脹處理后的圖像包含有許多直線,對(duì)膨脹處理圖像進(jìn)行邊緣檢測(cè)。設(shè)定上下限閾值比為3:1,通過(guò)Canny邊緣檢測(cè)得到的邊緣圖像。圖4中(a)和(b)分別是對(duì)圖3(c)進(jìn)行膨脹和邊緣檢測(cè)后的結(jié)果。
 
 
由圖4(b)可以看出,經(jīng)膨脹處理和邊緣檢測(cè)后的圖像可以將液晶屏數(shù)字的輪廓勾勒出來(lái)。對(duì)圖4(b)進(jìn)行霍夫變換,可以獲取圖像中每條線段的端點(diǎn),進(jìn)而可以求其反正切函數(shù),即求得每條線段與橫軸之間的夾角。對(duì)其余傾斜角求取平均值,即認(rèn)為是圖3(c)的傾斜角度。
  
根據(jù)傾斜角將圖3(c)進(jìn)行旋轉(zhuǎn)得圖5。
 
 
2.字符分割及歸一化
  
字符的分割技術(shù)可以將單個(gè)字符從圖像中分割出來(lái)。直方圖廣泛應(yīng)用于計(jì)算機(jī)視覺(jué)應(yīng)用中,可以對(duì)圖像的數(shù)據(jù)進(jìn)行統(tǒng)計(jì),獲得數(shù)據(jù)分布的統(tǒng)計(jì)圖。
  
對(duì)于一個(gè)大小為X×Y的二值化圖像,定義其在橫軸和縱軸的投影分布函數(shù)為Hx(i)(i=1,2,…,X)和Hy(i)(i=1,2,…,Y),其中,X代表橫軸的坐標(biāo),Y代表縱軸的坐標(biāo),初始化時(shí)設(shè)置函數(shù)值均為0。遍歷該圖像中的像素點(diǎn),如果該像素點(diǎn)為黑色像素點(diǎn),則將該像素點(diǎn)對(duì)應(yīng)的投影分布函數(shù)Hx(i)和Hy(i)分別加1。最后,得出圖像在橫軸和縱軸的投影分布函數(shù)Hx(i)和Hy(i)。利用縱軸和橫軸方向分布函數(shù)中波峰和波谷的位置[9],根據(jù)字符和空白在縱軸和橫軸投影的不同,得出各個(gè)字符的頂、底、左端和右端在圖像中位置。
  
根據(jù)各個(gè)字符在圖像中的位置,即可將字符分割,對(duì)圖3(c)進(jìn)行字符分割后各個(gè)字符如圖6所示。
 
 
得到字符在圖像中的位置后,即可將字符從圖像中分割出來(lái)。由于實(shí)際分割過(guò)程中每個(gè)字符大小不一致,如圖6所示,所以對(duì)分割字符進(jìn)行歸一化處理,使不同字符的大小統(tǒng)一為固定大小,便于后續(xù)字符分割。首先將圖6中字符周圍的空白位置切除,然后采用三次樣條插值的方法,對(duì)源圖像附近的4×4個(gè)鄰近像素進(jìn)行三次樣條擬合,最后將目標(biāo)像素對(duì)應(yīng)的三次樣條值作為目標(biāo)圖像對(duì)應(yīng)像素點(diǎn)的值。將字符歸一化以后,所得各個(gè)字符如下圖7所示。
 
 
3.字符特征提取
  
將字符從圖像中分割以后,就可以對(duì)圖像進(jìn)行特征提取。采用網(wǎng)格法提取字符的21個(gè)特征值,用于字符圖像的識(shí)別。首先將字符圖像均分為5行3列的區(qū)域,分別求得每個(gè)區(qū)域內(nèi)黑色像素所占該區(qū)域的比例,作為字符的15個(gè)特征值;然后將字符圖像均分為3行,分別求得每行內(nèi)黑色像素點(diǎn)占該區(qū)域的比例,作為字符圖像的3個(gè)特征值;最后,將字符圖像均分為3列,分別求得每列內(nèi)黑色像素點(diǎn)占該區(qū)域的比例,作為字符圖像的另外3個(gè)特征值。共提取字符圖像的21個(gè)特征值,用于字符圖像的識(shí)別。
  
[page]
三.字符識(shí)別
  
用誤差反向后傳算法即BP神經(jīng)網(wǎng)絡(luò)來(lái)進(jìn)行數(shù)字字符的識(shí)別。BP神經(jīng)網(wǎng)絡(luò)由Rumelhart和McClelland于1985年提出,實(shí)現(xiàn)了Minsky和Papert認(rèn)為不能實(shí)現(xiàn)的多層網(wǎng)絡(luò)的設(shè)想。
 
 
三層BP神經(jīng)網(wǎng)絡(luò)的模型如圖8所示,包括輸入層、隱含層和輸出層,各層間由連接權(quán)值構(gòu)成。BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過(guò)程由信號(hào)的正向傳播和誤差的反向傳播兩個(gè)過(guò)程組成,其學(xué)習(xí)的本質(zhì)是各連接權(quán)值的動(dòng)態(tài)調(diào)整。隨著網(wǎng)絡(luò)的不斷學(xué)習(xí),權(quán)值也不斷的調(diào)整,直到誤差減少到可接受的程度或者訓(xùn)練達(dá)到預(yù)定的訓(xùn)練次數(shù)。
  
1.網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)
  
2.3節(jié)說(shuō)明了提取字符的21個(gè)特征值,本系統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的輸入層采用21個(gè)節(jié)點(diǎn),分別對(duì)應(yīng)字符的21個(gè)特征值。數(shù)字字符的識(shí)別結(jié)果共10個(gè),本文用各個(gè)數(shù)字對(duì)應(yīng)的四位二進(jìn)制數(shù)表示其對(duì)應(yīng)的期望輸出,即輸出層采用4個(gè)節(jié)點(diǎn)。
  
由理論分析證明,具有單隱層的BP神經(jīng)網(wǎng)絡(luò)即可滿足大部分的設(shè)計(jì)需求,本文中采用單隱層。
  
BP神經(jīng)網(wǎng)絡(luò)隱含層節(jié)點(diǎn)數(shù)的設(shè)計(jì)與訓(xùn)練樣本數(shù)的多少、樣本噪聲的大小及樣本中蘊(yùn)含規(guī)律的復(fù)雜程度密切相關(guān)。實(shí)際應(yīng)用中常用試湊法確定最佳隱節(jié)點(diǎn)個(gè)數(shù)。下面是一些確定隱節(jié)點(diǎn)數(shù)的經(jīng)驗(yàn)公式:
 
 
隱節(jié)點(diǎn)數(shù),n為輸入層節(jié)點(diǎn)數(shù),l為輸出層節(jié)點(diǎn)數(shù),為1~10之間常數(shù)。
  
經(jīng)過(guò)分析與實(shí)際檢驗(yàn),本系統(tǒng)采用10個(gè)隱節(jié)點(diǎn)數(shù)時(shí),可以使網(wǎng)絡(luò)誤差很小,同時(shí)具有很高的訓(xùn)練精度,訓(xùn)練速度也很快,所以采用10個(gè)隱節(jié)點(diǎn)數(shù)。
  
網(wǎng)絡(luò)訓(xùn)練所需樣本數(shù)取決于輸入輸出的非線性映射關(guān)系的復(fù)雜程度,映射關(guān)系越復(fù)雜,為保證映射精度,所需要的樣本數(shù)就越多。對(duì)于本系統(tǒng)而言,當(dāng)每個(gè)數(shù)字字符取10個(gè)樣本,總共取100個(gè)樣本的時(shí)候,就可以訓(xùn)練出比較理想的BP神經(jīng)網(wǎng)絡(luò)。
 
2.生成訓(xùn)練樣本和測(cè)試樣本
  
本系統(tǒng)收集了1400張液晶屏數(shù)字的圖像,任意選取100張作為訓(xùn)練樣本,剩余1300張作為測(cè)試樣本。
  
3.訓(xùn)練神經(jīng)網(wǎng)絡(luò)
  
如果用安卓手機(jī)來(lái)進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,消耗的時(shí)間非常長(zhǎng)。為了節(jié)省時(shí)間,用計(jì)算機(jī)進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。采用VC++平臺(tái),根據(jù)訓(xùn)練樣本訓(xùn)練三層BP神經(jīng)網(wǎng)絡(luò),訓(xùn)練成功后將BP神經(jīng)網(wǎng)絡(luò)模型移植到安卓手機(jī)中。
  
4.系統(tǒng)測(cè)試
  
圖9為本系統(tǒng)對(duì)圖2的識(shí)別結(jié)果,可以看到,該系統(tǒng)可以快速實(shí)現(xiàn)液晶屏數(shù)字的識(shí)別。
 
 
用1 300個(gè)測(cè)試樣本對(duì)識(shí)別系統(tǒng)進(jìn)行檢測(cè),檢測(cè)結(jié)果表明本系統(tǒng)正確識(shí)別率高達(dá)97.8%,可以實(shí)現(xiàn)液晶屏數(shù)字的精確識(shí)別。
  
四.結(jié)論
  
現(xiàn)有的液晶屏數(shù)字識(shí)別技術(shù)大都是以計(jì)算機(jī)作為載體來(lái)實(shí)現(xiàn)的,不便于實(shí)現(xiàn)隨時(shí)隨地進(jìn)行液晶屏的識(shí)別。針對(duì)這個(gè)問(wèn)題,以安卓手機(jī)為載體,通過(guò)拍照獲取圖像,調(diào)用計(jì)算機(jī)視覺(jué)庫(kù)實(shí)現(xiàn)圖像的預(yù)處理和特征提取,用訓(xùn)練的三層BP神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)液晶屏數(shù)字的識(shí)別。檢測(cè)結(jié)果表明,該系統(tǒng)可以隨時(shí)隨地、快速、高效地實(shí)現(xiàn)液晶屏數(shù)字的識(shí)別。
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉