基于手寫辨識(shí)芯片的漢字手寫輸入技術(shù)
關(guān)鍵詞 手寫體辨識(shí) 觸摸屏 ePHl200辨識(shí)芯片
許多的掌上裝置與移動(dòng)設(shè)備采用小型嵌入式系統(tǒng),而這些裝置很多都需要具有輸入漢字的功能。計(jì)算機(jī)系統(tǒng)中實(shí)現(xiàn)漢字輸入的方法有多種,但根據(jù)實(shí)現(xiàn)的技術(shù)路線區(qū)分,不外乎足編碼輸入(如拼音、五筆字型輸入等)、語音輸入(如語音識(shí)別)、字型辨識(shí)輸入(如掃描輸入、手寫體輸入)等幾種。由于語音輸入技術(shù)尚未成熟,手寫漢字輸入方法頗受人們青睞。然而由于受微控制器本身處理能力及系統(tǒng)內(nèi)存空間的限制,要在其中嵌入手寫體漢字識(shí)別軟內(nèi)核難度非常大,且軟內(nèi)核必須針對(duì)不同的嵌入式應(yīng)用系統(tǒng)進(jìn)行移植才能使用。這無疑增加了這類產(chǎn)品開發(fā)的成本與風(fēng)險(xiǎn)。ePHl200是義隆電子公司將手寫體辨識(shí)軟內(nèi)核硬化的一款專用芯片,它通過與電阻式觸摸屏、微控制器相連,有效地實(shí)現(xiàn)漢字的手寫輸入。這為掌上裝置以及各種移動(dòng)設(shè)備等嵌入應(yīng)用系統(tǒng)實(shí)現(xiàn)漢字的手寫輸入功能提供了一個(gè)很好的解決方案。
1 ePHl200的特點(diǎn)與手寫體辨識(shí)過程
ePHl200手寫體辨識(shí)芯片內(nèi)嵌蒙恬手寫識(shí)別軟內(nèi)核,能對(duì)國(guó)標(biāo)漢字(共6 763個(gè))、ASCII碼字符以及其他一些特殊字符的手寫體進(jìn)行辨識(shí),支持筆劃連寫,識(shí)別正確率高達(dá)99.9%;提供備選字輸出,輸出結(jié)果為Unicode編碼或者GB2312國(guó)標(biāo)碼,單字辨識(shí)時(shí)間約為O.34 s。ePHl200具有CSP24和LQFP44兩種封裝型式;功耗低,工作電壓為2.8~3.6V,工作電流約為2 mA,待機(jī)模式時(shí)的靜態(tài)耗電小于20μA;工作溫度范圍為一20~+80℃。ePHl2D0具有UART接口,方便與各種微控制器配合使用;UART接口的數(shù)據(jù)傳輸速率固定為9 600 bps,一幀數(shù)據(jù)為10位(1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)停止位),數(shù)據(jù)位由低位到高位依次傳送。ePHl200內(nèi)嵌電阻式觸摸屏控制接口電路,可直接與四線電阻式觸摸屏相連。電阻式觸摸屏控制接口電路包括電子開關(guān)切換電路和A/D轉(zhuǎn)換器(轉(zhuǎn)換精度8位/10位可選)。圖1為ePHl200的原理框圖。
ePHl200通過內(nèi)部的觸摸屏控制接口和A/D轉(zhuǎn)換器,獲取在電阻式觸摸屏上筆劃軌跡的坐標(biāo)信息。當(dāng)停筆時(shí)間(也就是書寫筆不接觸摸屏的時(shí)間)大于設(shè)定值時(shí),表示一個(gè)字符已書寫完成。這時(shí)內(nèi)嵌的辨識(shí)內(nèi)核開始處理,通過采用字符識(shí)別算法對(duì)輸入的字型點(diǎn)陣信息進(jìn)行計(jì)算,便可以辨識(shí)出剛才所書寫的字符,獲得其Unicode/GB2312編碼。字符的編碼和筆劃字型點(diǎn)陣信息均可通過UART端口輸出,送給系統(tǒng)的微控制器;系統(tǒng)的微控制器便將手寫字符的筆劃字型點(diǎn)陣和根據(jù)編碼獲取的標(biāo)準(zhǔn)字型點(diǎn)陣輸出到顯示屏。這樣在顯示屏上就可以映射顯示出手寫字型和被識(shí)別字符的標(biāo)準(zhǔn)字型。
2 ePH1200硬件接口電路的設(shè)計(jì)
圖2為實(shí)現(xiàn)手寫輸入的硬件接口電路。ePHl20O通過XP、XN、YP、YN四個(gè)引腳端與四線電阻式觸摸屏直接相連,通過串口與系統(tǒng)微控制器MSP430交換信息。當(dāng)ePHl200處在待機(jī)模式時(shí),可通過WKI端輸入外部中斷喚醒信號(hào)(如微控制器通過檢測(cè)觸摸屏工作狀態(tài)所產(chǎn)生的輸出信號(hào)),使其恢復(fù)到正常工作模式。
觸摸屏上的筆劃或點(diǎn)擊信息,經(jīng)過ePHl200的采集與處理,由串行接口送給微控制器MSP430;微控制器MSP430在收到這些數(shù)據(jù)后進(jìn)行分析處理,將筆劃點(diǎn)陣信息映射顯示在LCD屏上,并將點(diǎn)觸軟鍵盤功能鍵的信息交由鍵盤處理程序處理。
3 應(yīng)用程序設(shè)計(jì)
3.1 ePHl2D0的編程方法
由于ePHl200只能通過串行接口與系統(tǒng)的微控制器通信,因此各種數(shù)據(jù)信息的傳送都是通過串行協(xié)議來實(shí)現(xiàn)的。系統(tǒng)的微控制器由串口發(fā)送命令包,可以將cPHl200設(shè)置為不同的工作狀態(tài)。當(dāng)ePHl200工作在辨識(shí)狀態(tài)時(shí),可以對(duì)觸摸屏上設(shè)定范嗣內(nèi)手寫的一級(jí)、二級(jí)漢字以及一些ASCII碼字符進(jìn)行辨識(shí),并輸出其代碼(如GB2312碼)和手寫筆跡的坐標(biāo)值;當(dāng)工作在圖形狀態(tài)時(shí),不對(duì)手寫的字符進(jìn)行辨識(shí),而只是將觸摸屏上設(shè)定范圍內(nèi)手寫筆跡的坐標(biāo)值輸出。ePH1200上電工作后處在默認(rèn)工作模式,系統(tǒng)的微控制器必須根據(jù)應(yīng)用要求通過串口對(duì)其進(jìn)行初始化設(shè)置。串行通信的命令包格式如下;
例如,要設(shè)置ePHl200工作在圖形工作狀態(tài),系統(tǒng)的微控制器應(yīng)通過串行接口向ePHl200發(fā)送以下8字節(jié)的命令包:
ePHl200應(yīng)答輸出包的格式有多種,包括命令確認(rèn)應(yīng)答包、命令錯(cuò)誤應(yīng)答包、單字辨識(shí)結(jié)果數(shù)據(jù)包和筆跡坐標(biāo)數(shù)據(jù)包等。限于篇幅不在此介紹。
3.2 手寫筆跡坐標(biāo)數(shù)據(jù)包的接收
在手寫輸入過程中,ePHl200幾乎同步地輸出手寫筆跡坐標(biāo)數(shù)據(jù)包。系統(tǒng)的微控制器須不停地接收這些數(shù)據(jù)包,通過提取坐標(biāo)值,將其在屏幕上顯示出來。但由于系統(tǒng)的微控制器具有多個(gè)任務(wù),處理速度不一定足夠快,因此為了防止手寫筆跡坐標(biāo)數(shù)據(jù)包發(fā)生丟失,需要建立坐標(biāo)數(shù)據(jù)包接收緩沖區(qū)。根據(jù)實(shí)際應(yīng)用情況,緩沖區(qū)定義為環(huán)形,可存放10個(gè)數(shù)據(jù)包。緩沖區(qū)的管理采用雙指針:數(shù)據(jù)包接收存放位置指針與數(shù)據(jù)包提取位置指針。數(shù)據(jù)包被提取后,相應(yīng)的存儲(chǔ)單元即被清除,以免被重復(fù)提取使用;數(shù)據(jù)包提取位置指針也調(diào)整為指向下一個(gè)數(shù)據(jù)包的存放位置,若沒有新的數(shù)據(jù)包可提取則等待。數(shù)據(jù)包的接收存放管理相對(duì)簡(jiǎn)單,每接收存放一個(gè)數(shù)據(jù)包后,將數(shù)據(jù)包接收存放位置指針調(diào)整指向下一個(gè)存放位置即可,無須考慮緩沖區(qū)的溢出問題。
3.3 手寫筆跡的顯示
在觸摸屏上進(jìn)行書寫,雖然手寫的筆劃是連續(xù)的,但ePHl200輸出的筆跡坐標(biāo)數(shù)據(jù)包只是筆跡曲線上采樣點(diǎn)的坐標(biāo)值,因而是不連續(xù)的。如果要將手寫的筆跡在顯示屏上映射顯示出來,則必須利用軟件進(jìn)行處理。采用Bresenham畫線算法和利用ePHl200輸出的坐標(biāo)值,可在顯示屏上繪出與手寫筆跡基本一致的連續(xù)曲線。下面是繪線示例程序:
3.4 字符辨識(shí)結(jié)果的處理
在觸摸屏上書寫完一個(gè)字符后,ePHl200會(huì)將辨識(shí)結(jié)果以數(shù)據(jù)包的形式輸出,數(shù)據(jù)包的內(nèi)容為若干個(gè)備選字符的Unicode/GB2312編碼。根據(jù)這些編碼,通過索引顯示字模庫,可將各備選字符在顯示屏上依次顯示出來;隨后就可以根據(jù)需要.利用觸摸屏或按鍵選取相應(yīng)的字符。這樣就完成了漢字的手寫輸入。
結(jié)語
漢字的手寫輸入解決方案多種多樣,ePHl200作為一款手寫體的辨{bn,g片,為小型嵌人式系統(tǒng)應(yīng)用增加手寫漢字輸入功能帶來了方便。本文介紹的只是制對(duì)特定微控制器MSP430的一種典型硬件接r=l和軟件設(shè)計(jì)方法,但由于ePHl2。0接u簡(jiǎn)單,因此采用其他微控制器的應(yīng)用,設(shè)計(jì)方法大同小異。