專利名稱:利用判定樹減少手寫體識(shí)別器差錯(cuò)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及輸入用戶信息到計(jì)算機(jī)系統(tǒng)中,更具體地涉及識(shí)別用戶輸入的手寫字符。
手寫體識(shí)別技術(shù)中的最大問(wèn)題之一為減小差錯(cuò)率。一種頻發(fā)的差錯(cuò)類型來(lái)自當(dāng)用戶電子地輸入緊密地與在計(jì)算機(jī)試圖將手跡(即一組編碼點(diǎn))與之匹配的集合中的兩個(gè)或更多可能字符的手寫字符(稱作手跡)匹配時(shí)。導(dǎo)致最多差錯(cuò)的字符通常是除了人能辨別但現(xiàn)代識(shí)別器不能辨別的單個(gè)差別之外互相相同的字符。例如,某些日文符號(hào)除了單個(gè)的細(xì)微差別之外基本上互相相同。
問(wèn)題出現(xiàn)在大多數(shù)手寫體識(shí)別系統(tǒng)采用基于神經(jīng)網(wǎng)絡(luò)、隱式馬爾科夫(Markov)模型(HMM)或K個(gè)最近鄰點(diǎn)(KNN)方法的識(shí)別器。這些系統(tǒng)在根據(jù)它們的總體外觀區(qū)別字符的任務(wù)上完成得合理地好,但當(dāng)兩個(gè)字符除了單個(gè)差別以外相同時(shí),它們經(jīng)常失敗。雖然已試圖手工編碼識(shí)別器來(lái)辨別特別麻煩的識(shí)別對(duì),但存在著許多容易互相混淆的字符組。這使得編碼過(guò)程非常費(fèi)力及煩瑣。此外,編碼的結(jié)果取決于一或多人關(guān)于為了區(qū)別字符要測(cè)試什么的最佳猜測(cè)。這不一定是最好的,因?yàn)閷?duì)于用什么來(lái)區(qū)分兩個(gè)(或更多)接近的字符最好存在著許多可能性。其實(shí),最好的這種系統(tǒng)并不實(shí)質(zhì)性降低差錯(cuò)率。最后,每一次改變識(shí)別器時(shí),該識(shí)別器混淆的字符集也改變,要求重復(fù)大部分費(fèi)力的編碼過(guò)程。
已試圖將基于判定樹,尤其是分類與回歸樹(Classificationand Regression Trees-CART),的另一類識(shí)別系統(tǒng)用于手寫體識(shí)別。這些類型的系統(tǒng)已遭到拒絕,因?yàn)樗鼈儾荒軓拇罅孔址凶鞒隹煽康呐卸?。作為示例,?duì)于采用日文字符集的系統(tǒng),支持6650個(gè)不同的字符。如能理解的,研制出能接收6550個(gè)字符中任何一個(gè)及重復(fù)地與正確地從適當(dāng)?shù)姆种蛳聹y(cè)試該字符直到找到單一的正確結(jié)果為止會(huì)是極為困難與煩重的任務(wù)。
相應(yīng)地,本發(fā)明的總的目的為提供用于降低手寫體識(shí)別中的差錯(cuò)率的改進(jìn)的方法與機(jī)構(gòu)。
為了達(dá)到這一目的,相關(guān)的目的為提供以高成功率區(qū)別通?;煜淖址姆椒ㄅc機(jī)構(gòu)。
另一目的為提供能用樣本數(shù)據(jù)加以自動(dòng)訓(xùn)練的上述種類的方法與系統(tǒng)。
又另一目的為提供快速、可靠、成本、高效、靈活與可擴(kuò)展的上述種類的方法與機(jī)構(gòu)。
簡(jiǎn)要地說(shuō),本發(fā)明提供用于識(shí)別輸入到計(jì)算機(jī)系統(tǒng)中的手跡的方法與機(jī)構(gòu)。提供了一級(jí)識(shí)別器將手跡轉(zhuǎn)換成編碼點(diǎn),及研制與訓(xùn)練了二級(jí)識(shí)別器(諸如CART樹)來(lái)區(qū)分生成選擇的編碼點(diǎn)的手跡。各個(gè)這種二級(jí)識(shí)別器是與各個(gè)選擇的編碼點(diǎn)關(guān)聯(lián)的。在接收到手跡時(shí),將手跡提供給一級(jí)識(shí)別器,從而接收與之對(duì)應(yīng)的編碼點(diǎn)。作出關(guān)于該編碼點(diǎn)是否對(duì)應(yīng)于具有與之關(guān)聯(lián)的二級(jí)識(shí)別器的所選擇的編碼點(diǎn)之一的判定。如果沒(méi)有,便返回一級(jí)識(shí)別器提供的編碼點(diǎn)。如果有,便將手跡傳遞給二級(jí)識(shí)別器并從二級(jí)識(shí)別器返回編碼點(diǎn)。
從下面結(jié)合附圖所作的詳細(xì)描述中,其它目的與優(yōu)點(diǎn)將是顯而易見(jiàn)的,附圖中
圖1為可包含本發(fā)明的計(jì)算機(jī)系統(tǒng)的框圖;圖2為表示按照本發(fā)明的一個(gè)方面訓(xùn)練一級(jí)手寫體識(shí)別器的功能部件的框圖;圖3為表示用于將一級(jí)識(shí)別器所識(shí)別的手跡分類到基于編碼點(diǎn)的文件中以開發(fā)按照本發(fā)明的二級(jí)識(shí)別系統(tǒng)的功能部件的框圖;圖4表示圖3中的一級(jí)識(shí)別器所歸類的示范性文件的內(nèi)容;圖5為歸類手跡所采取的總的步驟的流程圖;圖6為表示從圖3的文件生成二級(jí)識(shí)別系統(tǒng)的功能部件的框圖;圖7-9包括構(gòu)造與訓(xùn)練二級(jí)識(shí)別系統(tǒng)所采取的總的步驟的流程圖;圖10為表示優(yōu)化本發(fā)明的識(shí)別機(jī)制的功能部件的框圖;圖11-13包括表示優(yōu)化本發(fā)明的識(shí)別機(jī)制所采取的總的步驟的流程圖;圖14為表示利用本發(fā)明的識(shí)別機(jī)制來(lái)識(shí)別手跡的功能部件的框圖;以及圖15為表示在利用本發(fā)明的識(shí)別機(jī)制來(lái)識(shí)別手跡時(shí)所采用的總的步驟的流程圖。
翻到附圖并首先參見(jiàn)圖1,其中示出了可包含本發(fā)明的總體指示為20的計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)系統(tǒng)20包括可操作地連接到存儲(chǔ)器24上的處理器22,存儲(chǔ)器包括隨機(jī)存取存儲(chǔ)器(RAM)26及諸如硬盤驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器之類的非易失性存儲(chǔ)器28。能夠理解,非易失性存儲(chǔ)器能結(jié)合RAM使用,通過(guò)眾所周知的交換技術(shù)提供相對(duì)地大的虛擬存儲(chǔ)量。
處理器22還通過(guò)I/O電路32連接到一個(gè)或多個(gè)輸入設(shè)備30上,諸如鍵盤及諸如鼠標(biāo)器、筆觸輸入板、觸摸設(shè)備或其它取得電子墨水的裝置等指點(diǎn)設(shè)備。系統(tǒng)20還包括連接在I/O電路32上的至少一個(gè)本地輸出設(shè)備34,用于諸如通過(guò)圖形用戶接口將信息傳遞給系統(tǒng)20的用戶。操作系統(tǒng)加載在存儲(chǔ)器24中。
按照本發(fā)明的一個(gè)方面,并如下面更詳細(xì)地描述的,將經(jīng)常使識(shí)別器混淆的那些手跡提供給二級(jí)識(shí)別進(jìn)程。為了達(dá)到這一目的,對(duì)于各輸入手跡,傳統(tǒng)的(一級(jí))識(shí)別器輸出一個(gè)編碼點(diǎn)。不是直接返回該編碼點(diǎn),而是首先檢驗(yàn)該編碼點(diǎn)來(lái)判定它是否對(duì)應(yīng)于一個(gè)混淆集合,即表示經(jīng)常互相混淆的手跡的兩個(gè)(或多個(gè))編碼點(diǎn)之一。如果返回的編碼點(diǎn)并不屬于一個(gè)混淆集合,該機(jī)構(gòu)便返回被一級(jí)識(shí)別器原先返回的編碼點(diǎn)。然而,如果該編碼點(diǎn)表示一個(gè)混淆集,便將該手跡給予特別為區(qū)分該特定混淆集開發(fā)的二級(jí)識(shí)別器。二級(jí)識(shí)別器利用比一級(jí)識(shí)別器所執(zhí)行的更定向的測(cè)試來(lái)分析手跡,并根據(jù)測(cè)試結(jié)果返回兩個(gè)(或多個(gè))編碼點(diǎn)之一。注意這種經(jīng)?;煜氖舟E不限于兩個(gè)的集合,而經(jīng)常與兩個(gè)或更多的其它手跡混淆。
在替代實(shí)施例中,能訓(xùn)練一級(jí)識(shí)別器來(lái)識(shí)別表示表面相似的編碼點(diǎn)(或編碼點(diǎn)子集)的形狀類。當(dāng)提供手跡時(shí),一級(jí)識(shí)別器從而返回至少一個(gè)形狀類索引。然后二級(jí)識(shí)別器從形狀類索引中確定手跡表示哪一個(gè)編碼點(diǎn)。注意形狀類索引是更一般的概念,即一個(gè)編碼點(diǎn)是形狀類索引的特定類型。然而,為了簡(jiǎn)單起見(jiàn),本發(fā)明將相對(duì)于返回編碼點(diǎn)的一級(jí)識(shí)別器加以描述,除非另有說(shuō)明。
從而,應(yīng)指出本發(fā)明具有兩個(gè)不同的方面。第一方面涉及利用取自若干(最好是諸如數(shù)千的大量)用戶的手寫體樣本數(shù)據(jù)來(lái)開發(fā)本發(fā)明的改進(jìn)的識(shí)別機(jī)制。第二方面涉及采用按照本發(fā)明的第一方面開發(fā)的識(shí)別機(jī)制將手跡轉(zhuǎn)換成編碼點(diǎn)。第一方面,識(shí)別機(jī)制的開發(fā)通常是在相對(duì)強(qiáng)大的計(jì)算機(jī)系統(tǒng)上的開發(fā)環(huán)境中進(jìn)行的,該計(jì)算機(jī)系統(tǒng)可通過(guò)網(wǎng)絡(luò)連接之類連接到樣本數(shù)據(jù)的大型數(shù)據(jù)庫(kù)上。第二方面,識(shí)別機(jī)制的使用通常是在手持式(掌上)計(jì)算設(shè)備之類上執(zhí)行的。這一設(shè)備最好在加載在存儲(chǔ)器24中的Windows CE操作系統(tǒng)下運(yùn)行,并包含用于輸入手寫字符(手跡)的觸敏液晶顯示屏。其它較佳的系統(tǒng)包含基于圖形輸入板的在Windows95或Windows NT操作系統(tǒng)下運(yùn)行的桌面?zhèn)€人計(jì)算機(jī)。
參照?qǐng)D2-4回到識(shí)別機(jī)制的開發(fā)上,構(gòu)造/訓(xùn)練進(jìn)程42利用樣本字符的第一訓(xùn)練集合40來(lái)開發(fā)與訓(xùn)練一級(jí)識(shí)別器44(圖3)。訓(xùn)練集合是包含與它們的實(shí)際、正確編碼點(diǎn)(即標(biāo)識(shí)用戶想要寫的字符的編碼點(diǎn))結(jié)合存儲(chǔ)的手跡的文件。一級(jí)識(shí)別器44最好是采用最近鄰(nearest neighbor KNN)方法的那種。這些識(shí)別器與它們的構(gòu)造及訓(xùn)練是已知的,從而此后不作詳細(xì)描述,除外說(shuō)明識(shí)別器44將手跡與訓(xùn)練過(guò)的識(shí)別器數(shù)據(jù)46(諸如終點(diǎn)信息)進(jìn)行匹配來(lái)輸出編碼點(diǎn)。同時(shí)指出識(shí)別器44實(shí)際上可根據(jù)輸入其中的手跡返回替換編碼點(diǎn)的表(按概率排列的),然而為了簡(jiǎn)單起見(jiàn),本發(fā)明將參照單一的返回的編碼點(diǎn)描述,除非另有說(shuō)明。注意一級(jí)識(shí)別器也能具有返回任何類型的形狀索引的形式,用形狀碼來(lái)訓(xùn)練一級(jí)識(shí)別器。如熟悉本技術(shù)的人員所能理解的,這一技術(shù)對(duì)于返回離散提議的任何識(shí)別器或模式匹配技術(shù)工作得一樣好。
按照本發(fā)明的一個(gè)方面及如圖3中開頭最好地示出的,利用一級(jí)識(shí)別器44來(lái)開始構(gòu)成上述二級(jí)識(shí)別機(jī)構(gòu)。通常,分類進(jìn)程47按照一級(jí)識(shí)別器44為該手跡返回的任何編碼點(diǎn)(或其它形狀索引)分類手跡,從而相對(duì)于它們的實(shí)際編碼點(diǎn)分類手跡的方式最終揭示一級(jí)識(shí)別器44趨向于混淆的手跡。為了達(dá)到這一目的,一旦構(gòu)成了一級(jí)識(shí)別器44(圖2),便將包含各與其實(shí)際編碼點(diǎn)一起存儲(chǔ)的樣本手跡的第二訓(xùn)練集合48提供給一級(jí)識(shí)別器44。利用其訓(xùn)練過(guò)的識(shí)別器數(shù)據(jù)46,一級(jí)識(shí)別器44返回編碼點(diǎn)給分類進(jìn)程47,后者將手跡與實(shí)際編碼點(diǎn)分類到不同的文件501-50n中。注意如果正在使用其它類型的形狀索引,則根據(jù)一級(jí)識(shí)別器44返回的形狀索引類似地將手跡分類到各形狀索引的文件中。
更具體地,如圖5中所示,在步驟500上分類進(jìn)程47首先為識(shí)別機(jī)構(gòu)要支持的各編碼點(diǎn)建立獨(dú)立的文件。在步驟502上選擇第二訓(xùn)練集合48中的第一手跡,并在步驟504上將其發(fā)送到一級(jí)識(shí)別器44。在步驟506上,一級(jí)識(shí)別器44將一個(gè)編碼點(diǎn)(實(shí)際上可能是不正確的)返回給分類進(jìn)程47,并在步驟508上將其連同從訓(xùn)練集合48中知道的實(shí)際編碼點(diǎn)一起寫入與返回的編碼點(diǎn)關(guān)聯(lián)的文件中。例如,如果返回標(biāo)識(shí)“A”的編碼點(diǎn),分類進(jìn)程47便將引發(fā)“A”響應(yīng)的手跡連同其實(shí)際編碼點(diǎn)(可能不是“A”)寫入“A”文件502中。從圖5中顯而易見(jiàn),步驟510-512用下一個(gè)手跡重復(fù)分類進(jìn)程47直到以這一方式分類了訓(xùn)練集合48中的所有手跡為止。注意對(duì)于編碼點(diǎn)以外的形狀索引,進(jìn)程是相同的。
以示例方式,圖4示出了一個(gè)這種文件50x的內(nèi)容,其中的兩個(gè)混淆的手跡具有不同的實(shí)際編碼點(diǎn)NX與NY。在分類進(jìn)程中某一時(shí)間上,一級(jí)識(shí)別器44將各不同的手跡(編碼點(diǎn)NX與NY)識(shí)別為將NX作為其編碼點(diǎn)。從而,分類進(jìn)程47將各手跡及其實(shí)際編碼點(diǎn)寫入NX文件50x。注意,如果一級(jí)識(shí)別器44不出錯(cuò),所有文件將只包含與標(biāo)識(shí)該文件的編碼點(diǎn)匹配的(手跡,實(shí)際編碼點(diǎn))對(duì)。然而在提供了適當(dāng)?shù)卮蟮挠?xùn)練集合時(shí),從未發(fā)現(xiàn)具有這種精確度的一級(jí)識(shí)別器。
一旦將第二訓(xùn)練集合48分類成文件501-50n,二級(jí)識(shí)別器開發(fā)/訓(xùn)練進(jìn)程52便用文件501-50n來(lái)開發(fā)二級(jí)識(shí)別器。如圖6中所示,將分類與回歸樹(CART或CART樹)用作二級(jí)識(shí)別器。CART樹為在名稱為“分類與回歸樹”(Classification and RegressionTrees,Breiman、Friedman、Olshen與Stone,Chapman與Hall,(1984),)中描述的二叉判定樹,這里通過(guò)引用將其全部結(jié)合在此。在進(jìn)程中這一時(shí)間上,將為各支持的編碼點(diǎn)(或形狀索引)開發(fā)與訓(xùn)練集合541-54n中的一個(gè)CART樹。
圖7-9一般性地描述如何開發(fā)各CART樹。首先匯集認(rèn)為與區(qū)分混淆對(duì)相關(guān)的問(wèn)題表。這些問(wèn)題通常是基于手寫體筆劃的,諸如“手跡中一共有多少筆劃?”,“第一筆劃的長(zhǎng)度多少?”與/或“第三筆劃相對(duì)于第一筆劃的角度多大?”。當(dāng)前尚無(wú)標(biāo)準(zhǔn)問(wèn)題集合,只有基于熟悉本技術(shù)者的經(jīng)驗(yàn)與觀察的問(wèn)題。注意可將問(wèn)題修剪到系統(tǒng)已知的手跡中的筆劃計(jì)數(shù)上。如果是顯而易見(jiàn)的,問(wèn)題的次序并不重要。此外,除了構(gòu)造進(jìn)程自己的墨水的特征之外,一級(jí)識(shí)別器可能已提供了某些構(gòu)造進(jìn)程能影響的特征信息。
通常,為了確定與排列對(duì)于給定的文件哪些問(wèn)題最好地解決一級(jí)識(shí)別器的混淆,CART建立進(jìn)程52將所有問(wèn)題應(yīng)用在所有樣本上(在各文件501-50n中)。然而,在建立CART之前,通過(guò)在步驟700上掃描樣本數(shù)據(jù)來(lái)判定給定文件中所有實(shí)際編碼點(diǎn)是否都相同(并與文件匹配)來(lái)執(zhí)行初步測(cè)試。如果是,樣本中的數(shù)據(jù)是純的,從而二級(jí)識(shí)別不會(huì)改進(jìn)總體識(shí)別。相應(yīng)地,CART建立進(jìn)程52對(duì)這一樣本文件結(jié)束。
然而,在文件中存在大量樣本數(shù)據(jù)的更典型的情況中,至少某些手跡會(huì)具有并不與一級(jí)識(shí)別器所確定的編碼點(diǎn)(并從而與對(duì)應(yīng)的文件)直接匹配的實(shí)際編碼點(diǎn)。從而,為了建立CART,在圖7的步驟701上,取得表中的第一個(gè)問(wèn)題,在步驟702上(從諸如501等文件之一)取得第一樣本手跡,并在步驟704上將問(wèn)題應(yīng)用在該樣本上而產(chǎn)生一個(gè)結(jié)果。例如,問(wèn)題可以是查詢第一筆劃的水平長(zhǎng)度,而對(duì)第一樣本得出值9(最大X坐標(biāo)減最小X坐標(biāo)等于9)。
在步驟706上將得出的值與該樣本的實(shí)際編碼點(diǎn)一起保存,諸如(值,實(shí)際編碼點(diǎn)),并且在步驟708-710上,進(jìn)程在選擇的文件501中的下一個(gè)樣本上重復(fù)。這時(shí)從頭至尾,步驟706再一次保存這一下一樣本對(duì)這一第一問(wèn)題得出的任何(值,實(shí)際編碼點(diǎn))。最終,通過(guò)步驟708-710,對(duì)照第一問(wèn)題測(cè)試文件中的所有樣本,從而所有得出的值及它們的相關(guān)編碼點(diǎn)在正在為這一問(wèn)題開發(fā)CART樹的給定文件中是已知的。
此時(shí),執(zhí)行圖8的步驟,通常找出哪些值沿它們的相關(guān)實(shí)際編碼點(diǎn)的線分開(分裂)文件中的手跡。應(yīng)指出雖然一般不實(shí)際,但是有可能以強(qiáng)制方法測(cè)試各問(wèn)題的每一個(gè)可能的值來(lái)確定最佳分裂。例如,可為長(zhǎng)度問(wèn)題測(cè)試從1到1000的每一個(gè)長(zhǎng)度,等等,對(duì)其它問(wèn)題測(cè)試其它廣范圍的值。然而,只將圖7的步驟得出的實(shí)際結(jié)果用于這一目的,實(shí)質(zhì)性地加速了圖8的分裂測(cè)試進(jìn)程。此外,雖然可應(yīng)用各唯一的結(jié)果作為對(duì)各樣本的二叉問(wèn)題來(lái)確定分裂,但更好的方法為利用已存在的結(jié)果數(shù)據(jù)來(lái)確定最佳分裂。
更具體地,步驟720將為給定問(wèn)題得到的結(jié)果(圖7中)分類進(jìn)(值,實(shí)際編碼點(diǎn))的有序范圍中。從而,對(duì)于長(zhǎng)度示例,最短長(zhǎng)度可以是40而最長(zhǎng)為100。為了測(cè)試分裂的質(zhì)量,在步驟722上,將具有“值等于40”的各編碼點(diǎn)移到一個(gè)(如左方)子集中,并將具有其它值的所有編碼點(diǎn)放置(或留在)另一子集(如右子集)中。編碼點(diǎn)的移動(dòng)是增量地發(fā)生的。然后在已移動(dòng)了所有“40”的值時(shí),在步驟724上按下面描述測(cè)定分裂的質(zhì)量。如能理解的,CART樹是二叉的,從而該移動(dòng)實(shí)際上是問(wèn)文件501中的所有樣本問(wèn)題“第一筆劃的水平長(zhǎng)度小于或等于40嗎?”,即Xmaxs1-Xmins1<=40?各手跡實(shí)際上是按照這一問(wèn)題分類的,將回答是的編碼點(diǎn)放在一個(gè)(左分支)集中而將回答否的編碼點(diǎn)放置在另一(右分支)集中。
按照本發(fā)明,在步驟724上,按照某種分裂標(biāo)準(zhǔn)評(píng)價(jià)分裂的質(zhì)量。確定分裂質(zhì)量的較佳方法為用Gini差異指數(shù)(Gini diversityindex)測(cè)試集合的均勻性。通常Gini差異指數(shù)利用在左與右集合的各個(gè)中的編碼點(diǎn)的量的均勻性(h)使用平方和方法,即,hLeft=[CP1Left/(CP1Left+CP2Left+…CPnleft)]2+[CP2Left/(CP1Left+CP2Left+…CPnleft)]2+…[CPnLeft/(CP1Left+CP2Left+…CPnleft)]2及hRight=[CP1Right/(CP1Right+CP2Right+…CPnRight)]2+[CP2Right/(CP1Right+CP2Right+…CPnRight)]2+…[CPnRight/(CP1Right-CP2Right+…CPnRight)]2,where其中下標(biāo)“l(fā)eft”與“right”表示左與右集合而CP1,CP2…CPn表示各集合中各編碼點(diǎn)值的編碼點(diǎn)數(shù)目。然后用各集合中的編碼點(diǎn)數(shù)目加權(quán)均勻性結(jié)果,從而這一問(wèn)題(Q1)與值(V1)的最終均勻性公式如下H(Q1,V1)=[(hLeft)(CP1Left+CP2Left)+(hRight)(CP1Right+CP2Right)]/(CP1Left+CP2Left+CP1Right+CP2Right).步驟726相對(duì)于任何前面的結(jié)果測(cè)試分裂的質(zhì)量(如果有前面的結(jié)果的話),如果較好,步驟727保存均勻性結(jié)果H(Q1,V1)作為最佳質(zhì)量分裂。注意步驟727保存到此為止所有問(wèn)題上的最佳分裂,有可能包含當(dāng)前的問(wèn)題在內(nèi),從而步驟726相對(duì)于來(lái)自前面確定的最佳(問(wèn)題,值)的結(jié)果比較各后面的分裂。
步驟728-730導(dǎo)致再一次測(cè)試與比較對(duì)于下一個(gè)值的分裂,這一次使用該范圍中的下一個(gè)值,諸如41。通過(guò)在步驟722上將對(duì)應(yīng)于這一值的編碼點(diǎn)增量地移動(dòng)到左分裂子集中,實(shí)際上將樣本分割成在左子集中帶有具有小于或等于41的值的編碼點(diǎn)。注意前面移到左子集中的與40關(guān)聯(lián)的編碼點(diǎn)保留在那里,由于它們也小于41。然后在步驟724上,計(jì)算下一個(gè)均勻性H(Q1,V2),在步驟726上(相對(duì)于到此為止最佳的值40)進(jìn)行比較,如果有改進(jìn),便在步驟727上連同其對(duì)應(yīng)的問(wèn)題標(biāo)識(shí)作為最佳值保存。
一旦以這一方式測(cè)試了所有的值,如步驟728所確定的,便確定了這一第一問(wèn)題的最佳值(即提供最均勻的分裂的值)。隨后,選擇下一個(gè)問(wèn)題(步驟732-734),而進(jìn)程利用這一下一問(wèn)題在文件中的樣本上重復(fù)。為相對(duì)于其它問(wèn)題與值分裂的比較繼續(xù)保存最佳(問(wèn)題,值)對(duì),等等,直到知道了全體最佳單個(gè)(問(wèn)題,值)對(duì)為止。
最終,利用了所有問(wèn)題的所有值來(lái)分裂樣本及計(jì)算其均勻性,及保存了最佳(問(wèn)題,值)對(duì)。此時(shí),執(zhí)行圖9的步驟來(lái)建立按照生成編碼點(diǎn)的最佳(最均勻)分裂的最佳次序適當(dāng)?shù)貑?wèn)該最佳的問(wèn)題的CART樹。有重大意義地,進(jìn)程這樣自動(dòng)地定位各級(jí)上的最佳(可利用的)問(wèn)題/值對(duì)。結(jié)果,進(jìn)程經(jīng)常發(fā)現(xiàn)最佳的可利用問(wèn)題不是原先人們認(rèn)為這樣重要的、但盡管如此仍然提出的問(wèn)題。注意對(duì)于均勻地分裂樣本集合這不一定是理想的問(wèn)題與值的組合,只是可利用的最佳問(wèn)題與值。
在任何情況下,一旦知道了最佳問(wèn)題與值,便在步驟742上利用這一最佳問(wèn)題/值對(duì)將樣本集合(文件501)分成兩個(gè)子集。然后,如步驟744所示,進(jìn)程在這兩個(gè)子集的每一個(gè)上循環(huán)重復(fù)來(lái)找出最均勻地分割各子集的下一個(gè)最佳問(wèn)題與值對(duì)。遞歸地重復(fù)進(jìn)程(即,進(jìn)程返回到圖7的步驟700去最優(yōu)地分裂兩個(gè)子集的每一個(gè)),分支成更多更多的均勻子集直到到達(dá)不再能改進(jìn)均勻性時(shí)為止。如能理解的,在越來(lái)越低的級(jí)上的遞歸操作在各分支與級(jí)上建立最佳的問(wèn)題/值對(duì)來(lái)進(jìn)一步細(xì)分混淆對(duì)的差別。在步驟746上,從各級(jí)上的這些問(wèn)題與值的對(duì)中建立CART樹。
然而,主要因?yàn)榭衫玫臉颖緮?shù)據(jù)是有限的,CART樹會(huì)是不完善的,尤其是在較低的級(jí)上。此外,CART樹可能很大,需要通常在手持式計(jì)算設(shè)備中不能獲得的大量存儲(chǔ)單元。從而,在步驟748上將一個(gè)新的樣本集合應(yīng)用在CART上來(lái)測(cè)試其蘊(yùn)藏的問(wèn)題中哪些作出正確的判定。在步驟750上從樹中去掉(刪除)在解決混淆對(duì)上確定為低效的問(wèn)題。這在規(guī)模上留下更好管理的CART,同時(shí)對(duì)識(shí)別精度無(wú)不利影響。
所有文件501-50n都具有了以上述方式為其開發(fā)的CART樹之后,系統(tǒng)所支持的各編碼點(diǎn)都存在一個(gè)CART樹。然而某些CART樹可能只有與一級(jí)識(shí)別器輸出的編碼點(diǎn)相同的一個(gè)可能的輸出。這種CART樹并不改進(jìn)識(shí)別,從而將其丟棄。
類似地,(如果一級(jí)識(shí)別器是返回編碼點(diǎn)的那種),則沒(méi)有保證特定的CART樹將改進(jìn)一級(jí)識(shí)別器的識(shí)別精度。當(dāng)CART樹是用較少量數(shù)據(jù)開發(fā)時(shí),這特別真實(shí),因?yàn)橥ǔS?xùn)練數(shù)據(jù)越多,CART在解決混淆上越好。如果特定的CART樹并不改進(jìn)識(shí)別的某些閾值量(這可以是甚至非常小的改進(jìn)),便沒(méi)有理由保留它,因?yàn)镃ART樹消耗存儲(chǔ)空間。類似地,即使CART樹是極快的,采用CART樹的二級(jí)識(shí)別也會(huì)增加總的識(shí)別時(shí)間,并再一次增加成本。
從而,圖10及11-13示出通過(guò)丟棄不必要的CART樹來(lái)優(yōu)化識(shí)別機(jī)制的一個(gè)進(jìn)程。首先,在步驟900上,從第三訓(xùn)練集合56(圖10)中選擇第一手跡。在步驟902上將手跡發(fā)送給一級(jí)識(shí)別器44。在步驟904上,如果一級(jí)識(shí)別器44返回的編碼點(diǎn)與實(shí)際的正確編碼點(diǎn)相同,便在步驟906上將該CART樹(即該文件)的一級(jí)識(shí)別器匹配計(jì)數(shù)62遞增。
然后在步驟908上,選擇對(duì)應(yīng)于從一級(jí)識(shí)別器44返回的編碼點(diǎn)的適當(dāng)CART樹。在步驟920上,將相同的手跡提供給該CART樹,借此由CART樹作出判定并返回其編碼點(diǎn)。在步驟922,如果該CART樹52返回的編碼點(diǎn)與實(shí)際的正確編碼點(diǎn)相同,便在步驟924上將這一CART樹的CART匹配計(jì)數(shù)66遞增。步驟926-928重復(fù)該進(jìn)程直到測(cè)試了第三訓(xùn)練集合56中的所有手跡為止。
最后,圖13比較各CART樹的一級(jí)與CART匹配計(jì)數(shù)來(lái)確定該CART樹是否改進(jìn)識(shí)別。更具體地,在步驟940上選擇第一個(gè)支持的編碼點(diǎn)(每一個(gè)有一個(gè)文件),并將這一CART樹的CART匹配計(jì)數(shù)66與一級(jí)識(shí)別器匹配計(jì)數(shù)62進(jìn)行比較。如果該CART匹配計(jì)數(shù)小于或等于一級(jí)匹配計(jì)數(shù),便在步驟944上丟棄該CART樹,因?yàn)樗⒉桓倪M(jìn)識(shí)別機(jī)構(gòu),否則保留這一編碼點(diǎn)的CART樹。步驟946-948重復(fù)這一比較直到已測(cè)試過(guò)所有支持的編碼點(diǎn)為止。注意如果需要,步驟942可以是更復(fù)雜的測(cè)試,以便丟棄并不改進(jìn)某一閾值量的識(shí)別進(jìn)程的任何CART樹。例如,如果CART匹配計(jì)數(shù)對(duì)一級(jí)匹配計(jì)數(shù)之比并不超過(guò)1加上某一小數(shù)量,則可將該CART樹丟棄。然而,應(yīng)指出,利用上述優(yōu)化,CART樹(可能有數(shù)百個(gè))只在一兆字節(jié)的一級(jí)識(shí)別器上增加大約18千字節(jié),因此從丟棄只是很少地改進(jìn)識(shí)別的CART樹中得到的任何存儲(chǔ)器節(jié)省可能并不值得識(shí)別精別精度的降低。
確實(shí),已徹底地測(cè)試過(guò)本發(fā)明的組合一級(jí)與二級(jí)識(shí)別機(jī)制,對(duì)于某些混淆對(duì)具有99.7%的精確率。認(rèn)為0.3%的差錯(cuò)率是從人也難于辨認(rèn)的太拙劣地書寫的字符中得出的,并且事實(shí)上與人的識(shí)別差錯(cuò)率相當(dāng)。注意本發(fā)明是高度靈活與可擴(kuò)展的。例如,如果一級(jí)識(shí)別器改變,從而改變了混淆對(duì),能以上述方式自動(dòng)生成與測(cè)試新的CART樹。類似地,隨著設(shè)想出另外的問(wèn)題,可以簡(jiǎn)單地相對(duì)于其它問(wèn)題試驗(yàn)這些問(wèn)題,來(lái)確定它們是否改進(jìn)給定分裂的均勻性并從而改進(jìn)該機(jī)制的精確性。
注意,利用返回與編碼點(diǎn)不同的形狀索引的一級(jí)識(shí)別器,至少需要某些將形狀索引映射到編碼點(diǎn)上的最小CART樹。然而,雖然這增加了CART存儲(chǔ)量,利用形狀碼來(lái)訓(xùn)練一級(jí)識(shí)別器及分裂用于生成CART樹的數(shù)據(jù),及隨后用實(shí)際編碼點(diǎn)來(lái)訓(xùn)練CART樹,得出有限的但更小與更快的一級(jí)識(shí)別器。由于將一級(jí)識(shí)別器優(yōu)化成將手跡數(shù)據(jù)分裂成形狀的類,同時(shí)將CART樹優(yōu)化成集中注意在手跡的精微差別上,而再一次獲得優(yōu)越性。
一旦開發(fā)了包含CART樹的識(shí)別機(jī)制,便可在手持式個(gè)人計(jì)算設(shè)備等相對(duì)地低功能的系統(tǒng)中使用該識(shí)別機(jī)制。圖14-15示出如何用該系統(tǒng)來(lái)識(shí)別字符。首先,在步驟1100上以已知方式接收來(lái)自用戶的手跡80(圖14),諸如通過(guò)筆在觸敏屏幕上的輸入。然后本發(fā)明的識(shí)別機(jī)制將手跡提交給一級(jí)識(shí)別器44并從其接收編碼點(diǎn)(或形狀索引)82(步驟1102)。在步驟1104上,利用編碼點(diǎn)82(由查找進(jìn)程84之類)來(lái)確定該編碼點(diǎn)是否具有與之關(guān)聯(lián)的CART樹。如果否,在步驟1108識(shí)別機(jī)制將一級(jí)識(shí)別器返回的編碼點(diǎn)82作為返回的編碼點(diǎn)88返回。
然而,如果存在著與編碼點(diǎn)82關(guān)聯(lián)的CART樹,便選擇可利用的CART樹的集合72中的適當(dāng)CART樹并在步驟1106上將手跡80提交給它。注意本身不是編碼點(diǎn)的形狀索引碼具有與之關(guān)聯(lián)的二級(jí)識(shí)別器(CART樹),即使只是非常小的將形狀索引轉(zhuǎn)換成編碼點(diǎn)的二級(jí)識(shí)別器。在步驟1108將選擇的CART樹返回的編碼點(diǎn)返回作為返回的編碼點(diǎn)88。識(shí)別機(jī)制一直重復(fù)到用戶完成書寫為止,如步驟1110檢測(cè)到的。
雖然對(duì)于本發(fā)明并非必要,但如果一級(jí)識(shí)別器返回替代的編碼點(diǎn)的表,便能在表中掃描具有關(guān)聯(lián)的CART樹的編碼點(diǎn),而二級(jí)識(shí)別器則為表中的一個(gè)或多個(gè)編碼點(diǎn)操作。二級(jí)進(jìn)程利用來(lái)自位于頂部的CART樹的結(jié)果,即具有最高的概率來(lái)重新排序該表。此外,CART樹能提供用概率排列的替代品,所有這些都能編排進(jìn)復(fù)合的按概率排列的表中。
此外,能將多個(gè)CART樹與單個(gè)字符關(guān)聯(lián)。例如,能將第一CART樹作為用于區(qū)別兩筆劃的“A”形字符的二級(jí)進(jìn)程提供,及第二區(qū)分CART樹用于區(qū)別三或多筆劃“A”形字符。此外,可將一級(jí)識(shí)別器配置成分裂筆劃,例如,一級(jí)識(shí)別器在分析它之前可將單筆劃“A”形字符首先分裂成兩個(gè)筆劃。一級(jí)與/或二級(jí)識(shí)別器可類似地利用筆劃計(jì)數(shù)以外的其它特征。
最后,可以理解,本發(fā)明可應(yīng)用于聯(lián)機(jī)及脫機(jī)字符識(shí)別兩者。在聯(lián)機(jī)字符識(shí)別中,字符中的點(diǎn)是作為(x,y,時(shí)間)形式的坐標(biāo)接收的,即序列中的點(diǎn)連同下筆與收筆位置是已知的。脫機(jī)手跡只是沒(méi)有特定次序的x-y點(diǎn)。本發(fā)明在兩種識(shí)別中都是有價(jià)值的,雖然一級(jí)與二級(jí)識(shí)別器(諸如它們的問(wèn)題)會(huì)相當(dāng)不同。
從上面的詳細(xì)描述中能夠看出,提供了用于降低手寫體識(shí)別中的差錯(cuò)率的改進(jìn)的方法與機(jī)制。本方法與機(jī)制以高成功率辨別通?;煜淖址⒛芾脴颖緮?shù)據(jù)加以自動(dòng)訓(xùn)練。本方法與機(jī)制是快速、可靠、節(jié)省費(fèi)用、靈活及可擴(kuò)展的。
雖然本發(fā)明是對(duì)各種修正與替換構(gòu)造敏感的,并在附圖中示出一些示例的實(shí)施例及在上面已加以詳細(xì)描述。但是,應(yīng)理解,并沒(méi)有將本發(fā)明限制在所公開的特定形式上的意圖,而是與之相反,意在包括落入本發(fā)明的精神與范圍內(nèi)的所有修改、替代構(gòu)造及等效物。
權(quán)利要求
1.一種識(shí)別輸入到計(jì)算機(jī)系統(tǒng)中的手跡的方法,包括下述步驟提供用于將手跡轉(zhuǎn)換成編碼點(diǎn)的一級(jí)識(shí)別器;訓(xùn)練多個(gè)二級(jí)識(shí)別器來(lái)辨別在提供給一級(jí)識(shí)別器時(shí)生成選擇的編碼點(diǎn)的手跡,并將一個(gè)二級(jí)識(shí)別器與各選擇的編碼點(diǎn)關(guān)聯(lián);接收手跡;將該手跡提供給一級(jí)識(shí)別器并接收與之對(duì)應(yīng)的編碼點(diǎn);判定該編碼點(diǎn)是否對(duì)應(yīng)于具有與之關(guān)聯(lián)的二級(jí)識(shí)別器的選擇的編碼點(diǎn),如果是,將該手跡傳遞給該二級(jí)識(shí)別器并從該二級(jí)識(shí)別器返回一個(gè)編碼點(diǎn)。
2.權(quán)利要求1的方法,其中各該二級(jí)識(shí)別器為一個(gè)CART樹。
3.權(quán)利要求1的方法,其中訓(xùn)練二級(jí)識(shí)別器的步驟包括下述步驟提供包括多個(gè)手跡與實(shí)際編碼點(diǎn)的第一訓(xùn)練集合;接收來(lái)自該訓(xùn)練集合的手跡;將各接收的手跡提供給一級(jí)識(shí)別器及從其接收識(shí)別出的編碼點(diǎn);將各手跡及其實(shí)際編碼點(diǎn)組合進(jìn)多個(gè)集合之一中;一級(jí)識(shí)別器返回用識(shí)別出的編碼點(diǎn)確定的集合。
4.權(quán)利要求3的方法,其中訓(xùn)練二級(jí)識(shí)別器的步驟還包括下述步驟選擇組合成一個(gè)選擇的集合的集合之一;在選擇的集合的手跡上應(yīng)用多個(gè)問(wèn)題之一;根據(jù)該問(wèn)題的結(jié)果將該集合分裂成編碼點(diǎn)的兩個(gè)子集;測(cè)定子集的分裂質(zhì)量;將多個(gè)問(wèn)題中的另一個(gè)作用在選擇的集合中的手跡上;根據(jù)另一問(wèn)題的結(jié)果將該集合分裂成編碼點(diǎn)的兩個(gè)其它子集;測(cè)定這兩個(gè)其它子集的分裂質(zhì)量;以及比較分裂的質(zhì)量來(lái)確定哪一個(gè)問(wèn)題最好地分裂該子集。
5.權(quán)利要求4的方法,其中各問(wèn)題是至少與一個(gè)值組合的,而根據(jù)手跡對(duì)該值的比較各問(wèn)題的結(jié)果是真或偽。
6.權(quán)利要求5的方法,還包括通過(guò)將問(wèn)題應(yīng)用在包含該手跡的數(shù)據(jù)上及接收應(yīng)答該問(wèn)題的值,而獲得各問(wèn)題的至少一個(gè)值的步驟。
7.權(quán)利要求4的方法,其中分裂的質(zhì)量是用子集中的編碼點(diǎn)的均勻性確定的。
8.權(quán)利要求7的方法,其中編碼點(diǎn)的均勻性是用各子集中的編碼點(diǎn)的量加權(quán)的。
9.權(quán)利要求7的方法,其中比較分裂的質(zhì)量來(lái)確定哪一個(gè)問(wèn)題最佳地分裂該子集的步驟包括確定哪一個(gè)分裂最均勻的步驟。
10.權(quán)利要求4的方法,還包括在按照分裂的質(zhì)量所組織的CART樹中排列多個(gè)問(wèn)題的步驟。
11.權(quán)利要求10的方法,還包括下述步驟從另一訓(xùn)練集合提供手跡給該CART樹;監(jiān)視哪些問(wèn)題在將手跡的實(shí)際編碼點(diǎn)與問(wèn)題所確定的編碼點(diǎn)的匹配中是低效的;以及從CART樹中消除低效的問(wèn)題。
12.權(quán)利要求3的方法,還包括下述步驟確定哪些二級(jí)識(shí)別器改進(jìn)一級(jí)識(shí)別器的識(shí)別精度;以及選擇對(duì)應(yīng)于改進(jìn)識(shí)別精度的二級(jí)識(shí)別器的編碼點(diǎn)作為選擇的編碼點(diǎn)。
13.權(quán)利要求12的方法,其中確定哪些二級(jí)識(shí)別器改進(jìn)一級(jí)識(shí)別器的識(shí)別精度的步驟包括下述步驟將來(lái)自另一訓(xùn)練集合的手跡單個(gè)地提供給一級(jí)識(shí)別器與二級(jí)識(shí)別器;以及對(duì)于各手跡,接收來(lái)自各識(shí)別器的識(shí)別出的編碼點(diǎn);將一級(jí)識(shí)別器識(shí)別出的編碼點(diǎn)與該手跡的實(shí)際編碼點(diǎn)比較,如果這兩個(gè)編碼點(diǎn)相等,將與該實(shí)際編碼點(diǎn)關(guān)聯(lián)的一級(jí)匹配計(jì)數(shù)器遞增,將二級(jí)識(shí)別器識(shí)別出的編碼點(diǎn)與該手跡的實(shí)際編碼點(diǎn)比較,如果這兩個(gè)編碼點(diǎn)相等,將與實(shí)際編碼點(diǎn)關(guān)聯(lián)的二級(jí)匹配計(jì)數(shù)器遞增,將各編碼點(diǎn)的一級(jí)匹配計(jì)數(shù)器與二級(jí)匹配計(jì)數(shù)器進(jìn)行比較,以及如果二級(jí)匹配計(jì)數(shù)器小于或等于一級(jí)匹配計(jì)數(shù)器,便丟棄該編碼點(diǎn)的二級(jí)識(shí)別器。
14.一種用于識(shí)別輸入到計(jì)算機(jī)系統(tǒng)中的手跡的機(jī)構(gòu),包括用于將手跡轉(zhuǎn)換成編碼點(diǎn)的一級(jí)識(shí)別器;用于開發(fā)與訓(xùn)練多個(gè)二級(jí)識(shí)別器來(lái)區(qū)別提供給一級(jí)識(shí)別器時(shí)生成選擇的編碼點(diǎn)的手跡的裝置,當(dāng)提供有在一級(jí)識(shí)別器上生成的選擇的編碼點(diǎn)的手跡時(shí),各二級(jí)識(shí)別器返回一個(gè)編碼點(diǎn);用于將二級(jí)識(shí)別器與各選擇的編碼點(diǎn)關(guān)聯(lián)的裝置;用于接收手跡的裝置;用于將手跡提供給一級(jí)識(shí)別器及接收與之對(duì)應(yīng)的編碼點(diǎn)的裝置;用于判定該編碼點(diǎn)是否對(duì)應(yīng)于具有與之關(guān)聯(lián)的二級(jí)識(shí)別器的選擇的編碼點(diǎn)的裝置,以及當(dāng)用于判定的裝置指示選擇的編碼點(diǎn)沒(méi)有與之關(guān)聯(lián)的二級(jí)識(shí)別器時(shí),用于返回從一級(jí)識(shí)別器接收的編碼點(diǎn)的裝置;以及當(dāng)用于判定的裝置指示選擇的編碼點(diǎn)具有與之關(guān)聯(lián)的二級(jí)識(shí)別器時(shí),用于返回從二級(jí)識(shí)別器接收的編碼點(diǎn)的裝置,所述裝置包括用于將該手跡傳遞給二級(jí)識(shí)別器的裝置及用于接收來(lái)自它的編碼點(diǎn)的裝置。
15.一種識(shí)別輸入到計(jì)算機(jī)系統(tǒng)中的手跡的方法,包括下述步驟提供用于將手跡轉(zhuǎn)換成形狀索引的一級(jí)識(shí)別器;訓(xùn)練多個(gè)二級(jí)識(shí)別器來(lái)將手跡轉(zhuǎn)換成編碼點(diǎn),并將二級(jí)識(shí)別器與形狀索引關(guān)聯(lián);接收手跡;將手跡提供給一級(jí)識(shí)別器并從其接收形狀索引;確定哪一個(gè)二級(jí)識(shí)別器與該形狀索引關(guān)聯(lián);以及將該形狀索引與手跡傳遞給對(duì)應(yīng)于該形狀索引的二級(jí)識(shí)別器及從該二級(jí)識(shí)別器返回一個(gè)編碼點(diǎn)。
全文摘要
一種用于識(shí)別輸入到計(jì)算機(jī)系統(tǒng)中的手跡的方法與機(jī)構(gòu)。提供了一級(jí)識(shí)別器(44)用于將手跡轉(zhuǎn)換成編碼點(diǎn),開發(fā)與訓(xùn)練諸如二叉CART樹等二級(jí)識(shí)別器(52)來(lái)區(qū)分在一級(jí)識(shí)別器上生成某些編碼點(diǎn)的手跡。各二級(jí)識(shí)別器與各選擇的編碼點(diǎn)關(guān)聯(lián)。在接收到手跡時(shí),將該手跡提供給一級(jí)識(shí)別器(44),一個(gè)對(duì)應(yīng)的編碼點(diǎn)。如果該編碼點(diǎn)對(duì)應(yīng)于二級(jí)識(shí)別器之一,便將該手跡傳遞給該二級(jí)識(shí)別器,并從該二級(jí)識(shí)別器返回一個(gè)編碼點(diǎn)。如果為否,便返回一級(jí)識(shí)別器所提供的編碼點(diǎn)。本發(fā)明設(shè)置一個(gè)自動(dòng)化進(jìn)程用于訓(xùn)練CART樹及通過(guò)丟棄并不改進(jìn)一級(jí)識(shí)別器的識(shí)別精度的CART樹(70)來(lái)優(yōu)化識(shí)別機(jī)構(gòu)。
文檔編號(hào)G06K9/62GK1236458SQ98801107
公開日1999年11月24日 申請(qǐng)日期1998年6月4日 優(yōu)先權(quán)日1997年6月6日
發(fā)明者G·N·胡爾倫德爾, J·R·本內(nèi)特, P·M·哈魯普特佐克 申請(qǐng)人:微軟公司