一種手寫輸入的識別方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及字符識別技術(shù)領(lǐng)域,特別涉及一種手寫輸入的字符的識別方法及系 統(tǒng)。
【背景技術(shù)】
[0002] 隨著科學(xué)技術(shù)的不斷發(fā)展,帶有手寫輸入功能的智能終端設(shè)備(如PDA、手機(jī)或掌 上電腦)在生活中得到了廣泛應(yīng)用。這種智能終端設(shè)備通常集成有電阻式、電容式或電磁 式手寫輸入系統(tǒng),用戶可以利用手指或手寫筆等通過接觸或非接觸方式在手寫輸入系統(tǒng)上 輸入字符并由智能終端設(shè)備的處理器進(jìn)行識別或直接顯示在顯示屏幕上。這種手寫輸入系 統(tǒng)取代了傳統(tǒng)的鍵盤輸入,使用戶可以在無需掌握各種復(fù)雜輸入法的情況下更便捷地輸入 字符。
[0003] 但是,現(xiàn)有技術(shù)中,因個人書寫習(xí)慣不同,手寫輸入的字符千變?nèi)f化,因此手寫輸 入字符的識別難度會比較大,導(dǎo)致識別速度和識別效率比較低,并且手寫輸入字符的識別 正確率也不高。
【發(fā)明內(nèi)容】
[0004] 為了克服上述現(xiàn)有技術(shù)中的不足,本發(fā)明提供了一種手寫輸入的識別方法及系 統(tǒng),其通過對手寫輸入的筆跡流進(jìn)行微碼描述,進(jìn)而對微碼特征比較后輸出識別結(jié)果,能夠 快速精確的識別出用戶的手寫內(nèi)容,識別正確率高、識別速度快。
[0005] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案為: 一種手寫輸入的識別方法,包括如下步驟: 每隔預(yù)設(shè)時間間隔采樣觸屏位置,獲取輸入的滑動軌跡數(shù)據(jù); 基于所述滑動軌跡數(shù)據(jù)將手寫輸入的滑動軌跡分解為多個弧段; 對每一個弧段分別通過起點至終點的方向特征、起點和終點的位置特征以及終點的壓 力特征進(jìn)行微碼描述;其中,所述起點至終點的方向特征通過角度量化值、上下方向量化 值、左右方向量化值以及象限量化值進(jìn)行表征;所述起點和終點的位置特征分別通過橫坐 標(biāo)和縱坐標(biāo)在預(yù)設(shè)空域的量化值進(jìn)行表征; 將所述滑動軌跡的微碼流與詞庫中的單詞軌跡提取的微碼流進(jìn)行動態(tài)規(guī)劃計算微碼 流之間的相似度; 通過模式匹配算法匹配檢索,輸出檢索結(jié)果。
[0006] 可選地,在將滑動軌跡分解為多個弧段之前,還包括對所述滑動軌跡數(shù)據(jù)進(jìn)行預(yù) 處理,包括:提取所述滑動軌跡數(shù)據(jù)中坐標(biāo)變化量符號發(fā)生變化的點、起點和終點、以及抬 筆點中的部分或全部作為初級特征點,并篩選所述初級特征點。
[0007] 可選地,在提取所述初級特征點之前,還包括步驟:預(yù)處理所述滑動軌跡數(shù)據(jù);其 中,預(yù)處理所述滑動軌跡數(shù)據(jù)包括:去掉所述滑動軌跡數(shù)據(jù)中重復(fù)的數(shù)據(jù)、將所述滑動軌跡 數(shù)據(jù)的坐標(biāo)位置對齊、平滑所述滑動軌跡數(shù)據(jù)的濾波、以及將所述滑動軌跡數(shù)據(jù)歸一化至 統(tǒng)一的高度和寬度中的部分或全部。
[0008] 可選地,篩選所述初級特征點包括如下步驟: 去掉所述初級特征點中重復(fù)的點,并按照從小到大排序; 判斷相鄰初級特征點之間的距離是否小于第一距離閾值,并且相應(yīng)橫縱坐標(biāo)差的絕對 值與所述滑動軌跡數(shù)據(jù)最大橫縱坐標(biāo)比的和是否小于第二距離閾值,如是,在兩點之間所 有的點選擇一個角度最小的點作為候選特征點;如否,直接執(zhí)行下一步驟; 去掉相鄰三點之間夾角大于第一角度閾值的點; 去掉夾角在第二角度閾值和第三角度閾值之間的點; 計算相鄰兩個特征點之間橫縱坐標(biāo)差的絕對值與所述滑動軌跡數(shù)據(jù)最大橫縱坐標(biāo)比 的和是否小于第三距離閾值,如是,假設(shè)去掉所述兩個特征點,重新計算去掉所述兩個特征 點之后的相鄰特征點之間的夾角,如夾角變大并小于第四距離閾值,或者夾角變小,則在所 述兩個特征點之間選擇一個夾角最小的點。
[0009] 可選地,在去掉夾角在第二角度閾值和第三角度閾值之間的點之后,還包括步驟: 重新計算相鄰點之間的夾角,若夾角變小,則去掉該點。
[0010] 可選地,若手寫輸入的數(shù)據(jù)為字符串,還包括如下字符串匹配步驟: 將所述手寫字符串表征為矩陣;其中,所述矩陣的行與數(shù)字和/或字母編碼為數(shù)字的 編碼數(shù)相對應(yīng),所述矩陣的列與所述手寫字符串的長度相對應(yīng),所述矩陣中的第i行第j列 元素表示所述手寫字符串中第j個手寫字符識別成編號為i的字符的匹配度百分?jǐn)?shù); 基于所述匹配度計算所述手寫字符串與詞庫中字符串的最長公共子串;其中,若所述 匹配度大于第一預(yù)設(shè)閾值,則認(rèn)為匹配,否則,認(rèn)為不匹配; 基于所述匹配度和第二預(yù)設(shè)閾值的差值計算匹配誤差,其中,若所述匹配度大于第一 預(yù)設(shè)閾值,所述匹配度以第二預(yù)設(shè)閾值進(jìn)行表征;若所述匹配度小于第一預(yù)設(shè)閾值,所述匹 配度以真實值表征; 計算所述手寫字符串與詞庫中的字符串的總體匹配代價,將所述手寫字符串的微碼流 與詞庫中的字符串提取的微碼流進(jìn)行動態(tài)規(guī)劃求微碼流之間的相似度; 通過模式匹配算法匹配檢索,輸出字符串匹配的檢索結(jié)果。
[0011] 可選地,若手寫輸入的數(shù)據(jù)為疊寫或連寫數(shù)據(jù),在字符串匹配步驟之前,還包括如 下拆分步驟: 從所述滑動軌跡數(shù)據(jù)的起點開始選擇滑動窗口,其中,所述滑動窗口的長度為識別一 個數(shù)字或字母的最大抬筆數(shù); 對所述滑動窗口中的筆畫進(jìn)行識別,基于所述筆畫的識別代價選擇候選拆分點;其中, 若所述滑動窗口中筆畫的識別代價小于第三預(yù)設(shè)閾值,在所述識別代價中選擇前兩種代價 最小的識別結(jié)果作為候選拆分點;若所述滑動窗口中筆畫的識別代價均高于第三預(yù)設(shè)閾 值,只選擇代價最小的識別結(jié)果作為候選拆分點; 所述滑動窗口順序后移,繼續(xù)對下一個滑動窗口中的筆畫進(jìn)行識別,基于所述筆畫的 識別代價選擇候選拆分點; 所有滑動窗口的候選拆分點構(gòu)建形成多條路徑,在所述多條路徑中選擇一條總代價最 小的路徑,所述路徑對應(yīng)的識別結(jié)果就是所述疊寫或連寫數(shù)據(jù)對應(yīng)的字符串。
[0012] 可選地,在對所述滑動窗口中的筆畫進(jìn)行識別之前,還包括步驟:排除所述滑動窗 口中,不可能為一個字的結(jié)束筆的抬筆。
[0013] 可選地,在對所述滑動窗口中的筆畫進(jìn)行識別時,若拆分點的置信度高于第四預(yù) 設(shè)閾值,直接跳出滑動窗口。
[0014] 本發(fā)明還提出了一種手寫輸入的識別系統(tǒng),包括: 數(shù)據(jù)采集模塊,用于每隔預(yù)設(shè)時間間隔采樣觸屏位置,獲取輸入的滑動軌跡數(shù)據(jù); 分解模塊,用于基于所述滑動軌跡數(shù)據(jù)將手寫輸入的滑動軌跡分解為多個弧段; 特征描述模塊,用于對每一個弧段分別通過起點至終點的方向特征、起點和終點的位 置特征以及終點的壓力特征進(jìn)行微碼描述;其中,所述起點至終點的方向特征通過角度量 化值、上下方向量化值、左右方向量化值以及象限量化值進(jìn)行表征;所述起點和終點的位置 特征分別通過橫坐標(biāo)和縱坐標(biāo)在預(yù)設(shè)空域的量化值進(jìn)行表征; 微碼流匹配模塊,用于將所述微碼流與詞庫中的單詞軌跡提取的微碼流進(jìn)行動態(tài)規(guī)劃 求微碼流之間的相似度,并通過模式匹配算法匹配檢索,輸出檢索結(jié)果。
[0015] 可選地,所述識別系統(tǒng)還包括特征提取及篩選模塊,用于提取所述滑動軌跡數(shù)據(jù) 中坐標(biāo)變化量符號發(fā)生變化的點、起點和終點、以及抬筆點中的部分或全部作為初級特征 點,并篩選所述初級特征點。
[0016] 可選地,所述識別系統(tǒng)還包括預(yù)處理模塊,用于對獲取的滑動軌跡數(shù)據(jù)進(jìn)行預(yù)處 理。
[0017] 可選地,所述識別系統(tǒng)還包括字符串匹配模塊,用于將所述手寫字符串的微碼流 與詞庫中的字符串提取的微碼流進(jìn)行動態(tài)規(guī)劃求微碼流之間的相似度,并通過模式匹配算 法匹配檢索,輸出檢索結(jié)果。
[0018] 可選地,所述識別系統(tǒng)還包括疊寫或連寫拆分模塊,用于將用戶手寫輸入的疊寫 或連寫數(shù)據(jù)拆分為對應(yīng)的手寫字符串。
[0019] 本發(fā)明的有益效果: 本發(fā)明所提出的手寫輸入方法及系統(tǒng),通過對手寫輸入的筆跡流進(jìn)行微碼描述,進(jìn)而 對微碼特征比較后輸出識別結(jié)果,能夠快速精確的識別出用戶的手寫內(nèi)容,識別正確率高、 識別速度快。
【附圖說明】
[0020] 附圖1為本發(fā)明手寫輸入方法的單字識別流程示意圖; 附圖2為本發(fā)明方向特征的量化示意圖; 附圖3為本發(fā)明手寫輸入方法的滑動軌跡數(shù)據(jù)篩選流程示意圖; 附圖4為本發(fā)明第一實施例手寫輸入單字的初始滑動軌跡數(shù)據(jù)示意圖; 附圖5為本發(fā)明第一實施例中滑動軌跡數(shù)據(jù)的第一篩選結(jié)果示意圖; 附圖6為本發(fā)明第一實施例中滑動軌跡數(shù)據(jù)的第二篩選結(jié)果示意圖; 附圖7為本發(fā)明第一實施例中坐標(biāo)特征的量化示意圖; 附圖8為本發(fā)明第一實施例中微碼編碼結(jié)果示意圖; 附圖9為本發(fā)明手寫輸入方法的字符串識別流程示意圖; 附圖10為本發(fā)明第二實施例手寫輸入字符串的初始數(shù)據(jù)示意圖; 附圖11為本發(fā)明第二實施例中將手寫輸入字符串表征為矩陣的示意圖; 附圖12為本發(fā)明手寫輸入方法的疊寫或連寫數(shù)據(jù)拆分流程示意圖; 附圖13為本發(fā)明第三實施例手寫輸入疊字的初始數(shù)據(jù)示意圖; 附圖14為本發(fā)明第三實施例中疊字拆分示意圖; 附圖15為本發(fā)明第三實施例中拆分路徑構(gòu)建示意圖; 附圖16為本發(fā)明第三實施例中基于手寫模式剪枝示意圖;以及 附圖17為本發(fā)明手寫輸入系統(tǒng)的結(jié)構(gòu)框架流程示意圖。
【具體實施方式】
[0021] 本發(fā)明通過如下實施方式對本發(fā)明進(jìn)行詳細(xì)說明。但本領(lǐng)域技術(shù)人員應(yīng)了解,下 述實施方式不是對本發(fā)明保護(hù)范圍的限制,任何在本發(fā)明基礎(chǔ)上做出的改進(jìn)和變化,都在 本發(fā)明的保護(hù)范圍之內(nèi)。
[0022] 下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步說明。
[0023] 參照附圖1所示,為本發(fā)明手寫輸入方法的單字識別流程示意圖,具體包括如下 步驟: S101,每隔預(yù)設(shè)時間間隔采樣觸屏位置,獲取輸入的滑動軌跡數(shù)據(jù)。
[0024] 具體地,本發(fā)明基于手寫輸入的方式實現(xiàn),其目標(biāo)輸入硬件設(shè)備一般是電阻式、電 容式或電磁式觸摸輸入屏,根據(jù)觸摸輸入屏的硬件特性,其每隔一段時間(如500ms)對當(dāng)前 滑動位置進(jìn)行采樣,記錄當(dāng)前手指的移動位置(X,Y,P),其分別為該位置的橫坐標(biāo),縱坐標(biāo) 和壓力值,其中P壓力值代表該位置有無抬筆。當(dāng)完成一個輸入滑動軌跡,數(shù)據(jù)采集模塊將 滑動軌跡數(shù)據(jù)的結(jié)果上傳到手寫輸入的識別系統(tǒng),由系統(tǒng)對該滑動軌跡數(shù)據(jù)進(jìn)行處理及識 別。
[0025] S102,基于滑動軌跡數(shù)據(jù)將手寫輸入的滑動軌跡分解為多個弧段。
[0026] 具體地,將手寫輸入所記錄的位置點即滑動軌跡數(shù)據(jù)點連接成線,形成手寫輸入 的筆跡,稱之為手寫輸入的滑動軌跡。任意一種手寫輸入的滑動軌跡,都可以分解成由弧段 構(gòu)成,弧是滑動軌跡的最小單位。本發(fā)明中,基于滑動軌跡數(shù)據(jù)將滑動軌跡分解為多個弧 段,弧段的數(shù)量根據(jù)滑動軌跡數(shù)據(jù)的數(shù)量來確定,一般而言,若滑動軌跡數(shù)據(jù)為N個,則可 以將滑動軌跡分解為N-I個弧段。
[0027] S103,對每一個弧段分別通過起點至終點的方向特征、起點和終點的位置特征以 及終點的壓力特