李冰,劉敏
(河南質(zhì)量工程職業(yè)學(xué)院,河南平頂山467000)
手寫(xiě)體識(shí)別(Handwriting Recognize)是指將在手寫(xiě)設(shè)備上書(shū)寫(xiě)產(chǎn)生的有序軌跡信息轉(zhuǎn)化為內(nèi)碼的過(guò)程。WindowsCE是一個(gè)開(kāi)放的、可升級(jí)的32位嵌入式操作系統(tǒng),是基于掌上型電腦類(lèi)的電子設(shè)備操作系統(tǒng)。主要應(yīng)用在手機(jī)、指紋識(shí)別系統(tǒng)、汽車(chē)電子檢測(cè)設(shè)備、智能家電、醫(yī)療儀器、工業(yè)控制儀器、定位導(dǎo)行設(shè)備上。本文嘗試在WindowsCE環(huán)境下建立一個(gè)手寫(xiě)體識(shí)別系統(tǒng)。
本文系統(tǒng)對(duì)手寫(xiě)文字的識(shí)別過(guò)程主要包括:用戶在系統(tǒng)手寫(xiě)區(qū)輸入文字、文字定位、特征提取、特征比對(duì)等。
(1)繪制文字:在手寫(xiě)窗口中實(shí)現(xiàn)文字的手寫(xiě),并對(duì)其坐標(biāo)值進(jìn)行保存。
(2)預(yù)處理:在手寫(xiě)體識(shí)別系統(tǒng)中不需要對(duì)圖像進(jìn)行灰度化處理、去噪處理等基本操作,僅保存坐標(biāo)值就可以生成一個(gè)二值化圖像。
(3)特征提?。簩?duì)文字進(jìn)行定位,找出手寫(xiě)體文字的上、下、左、右邊界,重新生成一張圖片,將新生成的圖片分成20×20的區(qū)域,統(tǒng)計(jì)每個(gè)區(qū)域的目標(biāo)像素個(gè)數(shù)和整個(gè)小區(qū)域像素個(gè)數(shù),計(jì)算目標(biāo)像素個(gè)數(shù)與整個(gè)小區(qū)域像素的比值,得到400個(gè)特征值,這樣就可以有足夠的特征值進(jìn)行比較,必要時(shí)還可擴(kuò)展特征值數(shù)量。
(4)樣本特征庫(kù):本文系統(tǒng)需要一個(gè)識(shí)別標(biāo)準(zhǔn),即樣本特征庫(kù)。將文字與對(duì)應(yīng)的手寫(xiě)體特征值存儲(chǔ)到樣本特征庫(kù)中。由于WindowsCE便于對(duì)文本文件讀取,而且速度快。因此本文系統(tǒng)的樣本特征庫(kù)使用的是txt文件類(lèi)型,格式是“文字+空格+特征值”。樣本特征庫(kù)越豐富,識(shí)別率越高。
(5)分類(lèi)判斷:本系統(tǒng)采用了模板匹配法,其實(shí)質(zhì)是提取出手寫(xiě)文字的特征值,利用這些特征值與樣本特征庫(kù)的特征值進(jìn)行比對(duì),找出待識(shí)別文字的特征值與特征庫(kù)中的特征值最接近的文字,作為識(shí)別結(jié)果。
(6)誤識(shí)別人工分類(lèi):無(wú)法識(shí)別的文字特征,需進(jìn)行樣本訓(xùn)練,經(jīng)過(guò)人工分類(lèi)后存入樣本特征庫(kù),建立新的樣本特征記錄。
本文系統(tǒng)的具體工作流程如圖1所示。
考慮到應(yīng)用領(lǐng)域和可推廣性,本文系統(tǒng)主要針對(duì)的是WindowsCE5.0平臺(tái)。開(kāi)發(fā)環(huán)境采用了VisualStudio2005和Platform Builder5.0。
圖1 工作流程
本文以“人”字的特征值提取為例。
(1)對(duì)手寫(xiě)窗口進(jìn)行預(yù)處理。
bmpDraw=new Bitmap(pbDraw.Width,pbDraw.Height);
pen.DashStyle=System.Drawing.Drawing2D.DashStyle.Solid;
g=Graphics.FromImage((Image)bmpDraw);
g.Clear(Color.White);
pbDraw.Image=(Image)bmpDraw;
this.pbDraw=pbDraw;
(2)將特征提取到樣本特征庫(kù)中。
將特征值存入rec.txt中:
StreamWriter sw=new StreamWriter(fileName,true);
sw.WriteLine(name+""+GetBMPContext(bmpDraw));
在GetBMPContext方法中提取特征值:
Bitmap bmp2=new Bitmap(20,20);
作為一種固定模式的學(xué)案導(dǎo)學(xué)模式,其在實(shí)際應(yīng)用中的具體形式是千差萬(wàn)別的。由于每個(gè)教師都有自己獨(dú)特的教學(xué)風(fēng)格,且學(xué)生的情況不同,因此具體采用哪種方式因人而異。但無(wú)論其是何具象,這種新型教學(xué)模式的主體仍然是學(xué)生,一切表現(xiàn)形式都以學(xué)生為主。歷史不僅是一門(mén)學(xué)科更是一門(mén)藝術(shù),因此歷史教學(xué)不像數(shù)學(xué)、哲學(xué)教學(xué)過(guò)程中注重邏輯思維的培養(yǎng),其更加講究教學(xué)的藝術(shù)手段。在初中歷史教學(xué)過(guò)程中,教師應(yīng)更加注重培養(yǎng)學(xué)生的學(xué)習(xí)興趣,使課堂更具活力和生命力。只有這樣,才能激發(fā)學(xué)生學(xué)習(xí)歷史的積極性,從而提高他們獨(dú)立思考和獨(dú)立學(xué)習(xí)的能力。然而,由于本人知識(shí)和生活經(jīng)驗(yàn)的限制,它未能涵蓋學(xué)術(shù)指導(dǎo)模式在教學(xué)中應(yīng)用的所有方面。
Graphics g2=Graphics.FromImage((Image)bmp2);
g2.Clear(Color.White);
g2.DrawImage(bmp,new Rectangle(0,0,bmp2.Width,bmp2.Height),
new Rectangle(0,0,bmp.Width,bmp.Height,GraphicsUnit.Pixel);
g2.Dispose();
int a=0,b=0;
for(int i=0;i<bmp2.Width;i++)
{
for(int j=0;j<bmp2.Height;j++)
{
if(bmp2.GetPixel(i,j).ToArgb()==Color.Black.ToArgb())
result=result+"0";
else
result=result+"1";
}
}
return result;}
(3)識(shí)別判斷。
通過(guò)Bitmap.getPixel(x,y)返回Color,再次提取當(dāng)前特征值,遍歷庫(kù)中特征值進(jìn)行比較判斷,如果匹配度達(dá)到一定閾值,就可以認(rèn)為已經(jīng)識(shí)別,否則需要進(jìn)行人工分類(lèi),并存入樣本特征庫(kù)。
本文的手寫(xiě)體識(shí)別系統(tǒng)具有重復(fù)樣本特征值提取功能,這樣可以避免因?yàn)閭€(gè)人書(shū)寫(xiě)習(xí)慣不同等因素導(dǎo)致的識(shí)別率不高,通過(guò)樣本訓(xùn)練提取手寫(xiě)文字特征值添加到樣本特征庫(kù)。樣本特征庫(kù)內(nèi)容越豐富,系統(tǒng)識(shí)別率就越高。
[1] 范艷峰,肖樂(lè),甄彤.自由手寫(xiě)體數(shù)字識(shí)別技術(shù)研究[J].計(jì)算機(jī)工程,2005,31(10):168-167.
[2] 張炘中.漢字識(shí)別技術(shù)[M].北京:清華大學(xué)出版社,1992.
[3] 陳彬彬.高精度手寫(xiě)體數(shù)字識(shí)別[D].成都:四川師范大學(xué),2007.
[4] 羅佳.無(wú)約束手寫(xiě)數(shù)字串切分于識(shí)別研究[D].成都:四川師范大學(xué),2007.