本發(fā)明屬于圖像數(shù)據(jù)處理技術(shù)領(lǐng)域,更進一步涉及字符識別技術(shù)領(lǐng)域中的一種手寫與按鍵結(jié)合的藏文輸入系統(tǒng)及方法。本發(fā)明可以用來在移動終端上輸入藏文音節(jié)。
背景技術(shù):
目前,移動終端上的藏文輸入法,普遍采用藏文按鍵輸入系統(tǒng)及鍵盤式藏文輸入方法。由于藏文字母數(shù)量比較多,本地藏文和梵音藏文共有41個輔音字母和15個元音字母,使得現(xiàn)有的移動終端上的藏文輸入法存在鍵盤式藏文輸入系統(tǒng)過于復雜、藏文鍵盤鍵位數(shù)過多、輸入方法不自然、輸入效率低的問題。
尼瑪扎西等四人在其申請的專利文獻“藏文輸入方法和系統(tǒng)”(公開號:CN105807949A,申請?zhí)枺?01610130611.7,申請日:2016-03-06)中提出了一種藏文輸入方法和系統(tǒng)。該系統(tǒng)由輸入模塊、鍵盤定義模塊、藏文字庫和處理裝置四個部分組成。通過按鍵輸入的藏文字符存儲在按鍵對應(yīng)的存儲單元中,由處理裝置根據(jù)存儲單元中的藏文字符和藏文字庫確定目標藏文預組合字后輸出。其中輸入模塊的輸入方法采用47個輸入鍵,用于用戶輸入藏文字符。該方法雖然能實現(xiàn)藏文字符的輸入,但是該方法仍然存在的不足之處是:由于藏文字母數(shù)量較多,部分字母存在變形形式且字母間可以上下組合等因素,使得藏文的鍵盤輸入需要較多的鍵位數(shù),該方法的輸入模塊包含47個鍵,使得在移動終端上藏文的鍵盤輸入步驟比較復雜,非常不便于人們使用。
青海師范大學在其申請的專利文獻“一種基于36鍵位的藏文鍵盤布局和輸入系統(tǒng)”(公開號:CN104503599A,申請?zhí)枺?01510015365.6,申請日:2015-01-13)中提出了一種基于36鍵位的藏文鍵盤布局和輸入系統(tǒng)。該系統(tǒng)的輸入方法通過主鍵盤、第一輔助鍵盤和第二輔助鍵盤來實現(xiàn),每個鍵盤有36個鍵位。該系統(tǒng)的輸入方法雖然解決了移動終端輸入法按鍵過多的問題,但是,該輸入方法仍然存在的不足之處是:該輸入系統(tǒng)的鍵盤布局由主鍵盤、第一輔助鍵盤和第二輔助鍵盤組成,使得在移動終端上需翻頁輸入,仍然避免不了按鍵輸入方式過于復雜的問題。
綜上所述,雖然現(xiàn)有的移動終端上的輸入系統(tǒng)及方法都可以實現(xiàn)藏文音節(jié)輸入的功能,但是沒有考慮到按鍵輸入方式輸入藏文字母所存在的缺陷,使得移動終端的藏文音節(jié)輸入不夠便捷。
技術(shù)實現(xiàn)要素:
本發(fā)明針對上述已有系統(tǒng)及方法的不足,提出了一種手寫與按鍵結(jié)合的藏文輸入系統(tǒng)及方法,以實現(xiàn)移動終端上藏文音節(jié)簡易、高效、自然及準確的輸入。采用這種方法的原因是,一個藏文音節(jié)由一個藏文基字字母和多個藏文附加字母按照藏文字母組成規(guī)律構(gòu)成,根據(jù)藏文音節(jié)的基字字母和附加字母的組合規(guī)律,采用手寫與按鍵結(jié)合的輸入系統(tǒng)及方法,將基字藏文字母按照手寫輸入的方式,附加藏文字母按照按鍵輸入的方式,進行藏文音節(jié)的輸入,使得移動終端上的藏文音節(jié)輸入的復雜性大大降低。
本發(fā)明的主要思路是:采用先手寫輸入藏文基字字母,后按鍵輸入藏文附加字母的方式,完成手寫與按鍵結(jié)合的藏文輸入系統(tǒng)及方法的設(shè)計。藏文音節(jié)由藏文基字字母和藏文附加字母組成,藏文基字字母包括30種藏文輔音字母,藏文附加字母包括3種上加字母5種前加字母10種后加字母4種下加字母1種下加元音字母3種上加元音字母2種重后加字母和5種前加字母利用組成藏文音節(jié)的藏文基字字母和藏文附加字母的組成規(guī)律完成手寫與按鍵結(jié)合的藏文輸入系統(tǒng)及方法的設(shè)計。
為實現(xiàn)上述目的,本發(fā)明的系統(tǒng)包括藏文軌跡采集模塊、藏文手寫基字字母識別模塊、圖像顯示模塊、按鍵接收模塊和藏文字母組合模塊。
所述的藏文軌跡采集模塊,用于采集用戶在手寫狀態(tài)下輸入的藏文手寫基字字母軌跡點,將采集到的藏文手寫基字字母軌跡點,以字符串的形式發(fā)送給藏文手寫基字字母識別模塊;
所述的藏文手寫基字字母識別模塊,用于接收從藏文軌跡采集模塊發(fā)送來的字符串序列,利用特征提取算法,從字符串序列中,依次提取圖像數(shù)組的特征,得到特征數(shù)組,利用歐氏距離分類器,對特征數(shù)組的特征向量和特征模版庫中每個藏文基字字母的特征向量進行匹配,得到候選藏文基字字母編號序列,發(fā)送給圖像顯示模塊;
所述的圖像顯示模塊,用于接收藏文手寫基字字母識別模塊和按鍵接收模塊發(fā)送來的藏文基字字母編號,從藏文字母圖像庫中,讀取與藏文基字字母編號對應(yīng)的藏文基字字母圖像,在移動終端上顯示藏文基字字母圖像;
所述的按鍵接收模塊,用于接收用戶輸入的藏文基字字母選擇信號和藏文附加字母選擇信號,將被選的藏文基字字母對應(yīng)的編號發(fā)送給向圖像顯示模塊,將被選的藏文基字字母對應(yīng)的unicode編碼及藏文附加字母對應(yīng)的unicode編碼發(fā)送給藏文字母組合模塊;
所述的藏文字母組合模塊,用于接收從按鍵接收模塊發(fā)送來的藏文基字字母對應(yīng)的unicode編碼和藏文附加字母對應(yīng)的unicode編碼,將藏文基字字母對應(yīng)的unicode編碼和藏文附加字母對應(yīng)的unicode編碼存儲在存儲單元中,利用藏文音節(jié)的字母組合編碼規(guī)則,輸出組合編碼后的藏文音節(jié)。
實現(xiàn)本發(fā)明的方法的具體步驟如下:
(1)建立數(shù)據(jù)庫:
(1a)建立包含30個藏文基字字母、4個藏文元音字母和5個藏文反寫字母的藏文字母圖像庫;
(1b)將藏文字母圖像庫中的30個藏文基字字母按照0到29的順序依次對應(yīng)編號;
(1c)建立包含1000套藏文手寫字符數(shù)據(jù),每套數(shù)據(jù)包含30個藏文輔音字母、4個藏文元音字母和5個藏文反寫字母的藏文手寫字符數(shù)據(jù)庫;
(1d)利用特征提取算法,對藏文手寫字符庫中的數(shù)據(jù)進行特征提取后得到特征數(shù)組,建立由特征數(shù)組組成的特征模版庫;
(2)輸入手寫藏文基字字母:
藏文軌跡采集模塊采集用戶在手寫狀態(tài)下輸入的藏文手寫基字字母軌跡點,將采集到的藏文手寫基字字母軌跡點,以字符串的形式發(fā)送給藏文手寫基字字母識別模塊;
(3)識別手寫藏文基字字母:
(3a)藏文手寫基字字母識別模塊接收從藏文軌跡采集模塊發(fā)送來的字符串序列,利用特征提取算法,從字符串序列中,依次提取圖像數(shù)組的特征,得到特征數(shù)組;
(3b)利用歐氏距離分類公式,藏文手寫基字字母識別模塊將特征數(shù)組的特征向量與特征模版庫中每個藏文基字字母的特征向量進行匹配,得到匹配度數(shù)組;
(3c)藏文手寫基字字母識別模塊將匹配度數(shù)組中的元素,按照從小到大的順序進行排序,得到排序后的匹配度數(shù)組;
(3d)藏文手寫基字字母識別模塊,將排序后的匹配度數(shù)組對應(yīng)的候選藏文基字字母編號序列,發(fā)送給圖像顯示模塊;
(4)顯示候選藏文基字字母圖像:
(4a)圖像顯示模塊接收候選藏文基字字母編號序列;
(4b)圖像顯示模塊從藏文字母圖像庫中,依次讀取與候選藏文基字字母編號序列對應(yīng)的候選藏文基字字母圖像;
(4c)圖像顯示模塊在移動終端上顯示讀取的候選藏文基字字母圖像;
(5)選擇藏文基字字母:
(5a)按鍵接收模塊接收用戶輸入的候選藏文基字字母選擇信號;
(5b)按鍵接收模塊向圖像顯示模塊發(fā)送被選的藏文基字字母對應(yīng)的編號;
(5c)按鍵接收模塊向藏文字母組合模塊發(fā)送藏文基字字母對應(yīng)的unicode編碼;
(6)顯示被選藏文基字字母圖像:
(6a)圖像顯示模塊接收從按鍵接收模塊發(fā)送來的被選的藏文基字字母對應(yīng)的編號;
(6b)圖像顯示模塊從藏文字母圖像庫中讀取與被選的藏文基字字母對應(yīng)的編號對應(yīng)的被選藏文基字字母的圖像;
(6c)圖像顯示模塊在移動終端上顯示被選藏文基字字母的圖像;
(7)存儲與藏文基字字母對應(yīng)的unicode編碼:
(7a)藏文字母組合模塊接收從按鍵接收模塊發(fā)送來的藏文基字字母對應(yīng)的unicode編碼;
(7b)藏文字母組合模塊將藏文基字字母對應(yīng)的unicode編碼存儲在存儲單元中;
(8)輸入藏文附加字母:
按鍵接收模塊接收用戶通過按鍵輸入的藏文附加字母的按鍵選擇信號,將藏文附加字母對應(yīng)的unicode編碼發(fā)送給藏文字母組合模塊;
(9)存儲藏文附加字母對應(yīng)的unicode編碼:
藏文字母組合模塊接收從按鍵接收模塊發(fā)送來的藏文附加字母對應(yīng)的unicode編碼,將藏文附加字母對應(yīng)的unicode編碼存儲在存儲單元中;
(10)輸出藏文音節(jié):
利用藏文音節(jié)的字母組合編碼規(guī)則,藏文字母組合模塊將藏文基字字母對應(yīng)的unicode編碼和藏文附加字母對應(yīng)的unicode編碼進行組合編碼,藏文字母組合模塊輸出組合編碼后的藏文音節(jié)。
本發(fā)明與現(xiàn)有技術(shù)相比較具有如下的優(yōu)點:
第一,由于本發(fā)明的藏文輸入系統(tǒng)采用了藏文軌跡采集模塊和藏文手寫基字字母識別模塊,對用戶在移動終端輸入的藏文手寫基字字母進行采集、識別,采用按鍵接收模塊對藏文附加字母進行輸入,采用藏文字母組合模塊對基字字母和附加字母進行組合輸出,克服了現(xiàn)有技術(shù)中移動終端上鍵盤式藏文輸入系統(tǒng)過于復雜的問題,使得本發(fā)明在移動終端上實現(xiàn)了藏文音節(jié)高效、準確的輸入。
第二,由于本發(fā)明的藏文輸入方法采用了手寫輸入藏文基字字母的方式,克服了現(xiàn)有技術(shù)中移動終端上藏文輸入方式不自然的問題,使得本發(fā)明在移動終端上實現(xiàn)了藏文基字字母自然的輸入。
第三,由于本發(fā)明的藏文輸入方法采用了按鍵輸入藏文附加字母的方式,克服了現(xiàn)有技術(shù)中移動終端上鍵盤式藏文輸入方法輸入效率低和鍵位數(shù)過多的問題,使得本發(fā)明在移動終端上實現(xiàn)了藏文附加字母高效、便捷的輸入。
附圖說明
圖1為本發(fā)明的手寫與按鍵結(jié)合的藏文輸入系統(tǒng)的模塊結(jié)構(gòu)示意圖;
圖2為本發(fā)明的藏文輸入方法的具體步驟示意圖;
圖3為本發(fā)明的藏文輸入方法的特征提取算法的具體步驟示意圖;
圖4為本發(fā)明的藏文輸入方法的Bresenham直線算法流程示意圖;
圖5為本發(fā)明的藏文輸入方法的藏文手寫基字字母的輸入界面示意圖;
圖6為本發(fā)明的藏文輸入方法的候選藏文基字字母圖像顯示界面示意圖;
圖7為本發(fā)明的藏文輸入方法的藏文附加字母輸入界面示意圖;
圖8為本發(fā)明的藏文輸入方法的藏文音節(jié)輸入界面示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步的描述。
參照附圖1,對本發(fā)明的藏文輸入系統(tǒng)做詳細的描述。
本發(fā)明的系統(tǒng)包括藏文軌跡采集模塊、藏文手寫基字字母識別模塊、圖像顯示模塊、按鍵接收模塊和藏文字母組合模塊。
藏文軌跡采集模塊,用于采集用戶在手寫狀態(tài)下輸入的藏文手寫基字字母軌跡點,將采集到的藏文手寫基字字母軌跡點,以字符串的形式發(fā)送給藏文手寫基字字母識別模塊。
藏文手寫基字字母識別模塊,用于接收從藏文軌跡采集模塊發(fā)送來的字符串序列,利用特征提取算法,從字符串序列中,依次提取圖像數(shù)組的特征,得到特征數(shù)組,利用歐氏距離分類器,對特征數(shù)組的特征向量和特征模版庫中每個藏文基字字母的特征向量進行匹配,得到候選藏文基字字母編號序列,發(fā)送給圖像顯示模塊。
圖像顯示模塊,用于接收藏文手寫基字字母識別模塊和按鍵接收模塊發(fā)送來的藏文基字字母編號,從藏文字母圖像庫中,讀取與藏文基字字母編號對應(yīng)的藏文基字字母圖像,在移動終端上顯示藏文基字字母圖像。
按鍵接收模塊,用于接收用戶輸入的藏文基字字母選擇信號和藏文附加字母選擇信號,將被選的藏文基字字母對應(yīng)的編號發(fā)送給向圖像顯示模塊,將被選的藏文基字字母對應(yīng)的unicode編碼及藏文附加字母對應(yīng)的unicode編碼發(fā)送給藏文字母組合模塊。
藏文字母組合模塊,用于接收從按鍵接收模塊發(fā)送來的藏文基字字母對應(yīng)的unicode編碼和藏文附加字母對應(yīng)的unicode編碼,將藏文基字字母對應(yīng)的unicode編碼和藏文附加字母對應(yīng)的unicode編碼存儲在存儲單元中,利用藏文音節(jié)的字母組合編碼規(guī)則,輸出組合編碼后的藏文音節(jié)。
參照附圖2,對本發(fā)明的藏文輸入方法的具體步驟做詳細的描述。
步驟1,建立數(shù)據(jù)庫。
建立包含30個藏文基字字母、4個藏文元音字母和5個藏文反寫字母的藏文字母圖像庫。
藏文字母圖像庫中的30個藏文基字字母包括4個藏文元音字母包括
將藏文字母圖像庫中的30個藏文基字字母按照0到29的順序依次對應(yīng)編號。
建立包含1000套藏文手寫字符數(shù)據(jù),每套數(shù)據(jù)包含30個藏文輔音字母、4個藏文元音字母和5個藏文反寫字母的藏文手寫字符數(shù)據(jù)庫。
建立藏文手寫字符數(shù)據(jù)庫的具體步驟如下。
第1步,開發(fā)基于安卓系統(tǒng)的藏文手寫字符采集軟件,藏文手寫字符采集軟件的開發(fā)參考了西安電子科技大學立人智能信息技術(shù)研究所暨智能信號處理與模式識別實驗室許亞美博士的手寫維文構(gòu)件采集軟件,藏文手寫字符采集軟件的開發(fā)、設(shè)計和運行都是基于Android手機操作系統(tǒng)的。
第2步,采集藏文手寫字符,藏文手寫字符由藏族同胞通過移動終端的藏文手寫字符采集軟件進行手寫采集。共100人書寫,每人書寫了10套,共收集藏文手寫字符數(shù)據(jù)1000套。所有采集的藏文手寫字符樣本的書寫筆順無任何限制,使得采集樣本具有真實性、全面性以及代表性。
利用特征提取算法對藏文手寫字符庫中的數(shù)據(jù)進行特征提取后得到特征數(shù)組,建立由特征數(shù)組組成的特征模版庫。
參照附圖3,對本發(fā)明的藏文輸入方法的利用特征提取算法對藏文手寫字符庫中的數(shù)據(jù)進行特征提取后得到特征數(shù)組的具體步驟做詳細的描述。
第1步,對藏文手寫字符庫中的藏文手寫圖像數(shù)組進行線性歸一化處理,得到線性歸一化后的藏文手寫圖像數(shù)組。
線性歸一化是將圖像在水平方向和垂直方向上,按照線性比例進行放大或縮小,縮放成規(guī)定尺寸大小的圖像。該方法的優(yōu)點是算法簡單,失真較小,不會改變其原有字母的形狀和特征。
對藏文手寫圖像數(shù)組進行線性歸一化處理的方法是,利用線性歸一化公式,對藏文手寫圖像數(shù)組進行線性縮放,使得歸一化后的圖像大小為256×256。
按照下式,對藏文手寫字符庫中的圖像數(shù)組進行線性歸一化:
RatioX=N/(xmax-xmin)
RatioY=N/(ymax-ymin)
x'=xRatioX
y'=y(tǒng)RatioY
其中,(x,y)表示線性歸一化前藏文手寫字符庫中藏文手寫圖像的字母軌跡點的橫縱坐標,xmin表示線性歸一化前藏文手寫圖像的字母軌跡點序列中橫坐標最小的字母軌跡點的橫坐標值,xmax表示線性歸一化前藏文手寫圖像的字母軌跡點序列中橫坐標最大的字母軌跡點的橫坐標值,ymin表示線性歸一化前藏文手寫圖像的字母軌跡點序列中縱坐標最小的字母軌跡點的縱坐標值,ymax表示線性歸一化前藏文手寫圖像的字母軌跡點序列中縱坐標最大的字母軌跡點的縱坐標值,N表示線性歸一化后藏文手寫圖像的寬高值,本發(fā)明中N的值取256,N×N表示線性歸一化后的藏文手寫圖像的大小,本發(fā)明中線性歸一化后的藏文手寫圖像的大小為256×256,RatioX表示藏文字母圖像在水平方向上的線性縮放比率,RatioY表示藏文字母圖像在垂直方向上的線性縮放比率,(x',y')表示線性歸一化后的藏文手寫圖像的字母軌跡點的橫縱坐標。
第2步,將線性歸一化后的藏文手寫圖像數(shù)組進行基于點密度均衡的非線性歸一化處理,得到非線性歸一化后的藏文手寫圖像數(shù)組。
基于點密度均衡的非線性歸一化處理的方法是,利用投影密度公式,得到線性歸一化后藏文手寫圖像的字母軌跡點在水平方向和垂直方向上的投影密度函數(shù),對投影密度函數(shù)進行均勻化處理,使得原本分布不均勻的投影密度函數(shù)均勻化,從而調(diào)整藏文手寫圖像中字母變形嚴重的部分,將手寫字母的重心位置調(diào)整到了藏文手寫圖像的中心。
按照下式,得到線性歸一化后藏文手寫圖像的字母軌跡點在水平方向和垂直方向上的投影密度函數(shù):
其中,f(x,y)表示線性歸一化后藏文手寫圖像的灰度函數(shù),藏文手寫圖像字母軌跡點的點列坐標映射的圖像為二值形式,圖像灰度函數(shù)f(x,y)的值為1,表示筆畫像素點,圖像灰度函數(shù)f(x,y)的值為0,表示背景空白點,(x,y)表示線性歸一化后藏文手寫圖像中字母軌跡點的橫縱坐標,X表示字母軌跡點序列中橫坐標最大的字母軌跡點的橫坐標值,Y表示字母軌跡點序列中縱坐標最大的字母軌跡點的縱坐標值,H(x)表示線性歸一化后的藏文手寫圖像的字母軌跡點在水平方向上的投影密度函數(shù),V(y)表示線性歸一化后的藏文手寫圖像的字母軌跡點在垂直方向上的投影密度函數(shù),αH表示水平修正參數(shù),αV表示垂直修正參數(shù),αH和αV的值取0,修正參數(shù)的數(shù)值與修正效果成反比。
利用基于點密度均衡的非線性歸一化公式,對線性歸一化后的藏文手寫圖像做基于點密度均衡的非線性歸一化處理。使得非線性歸一化后的手寫字母軌跡點均勻分布在256×256的圖像上,手寫字母圖像軌跡的重心位置被調(diào)整到字母軌跡點陣的中心。
按照下式,對線性歸一化后的藏文手寫數(shù)組圖像進行基于點密度均衡的非線性歸一化處理:
其中,M表示線性歸一化后藏文手寫圖像中軌跡點的橫坐標,N表示線性歸一化后藏文手寫圖像中軌跡點的縱坐標,m表示非線性歸一化后藏文手寫圖像中軌跡點的橫坐標,n表示非線性歸一化后藏文手寫圖像中軌跡點的縱坐標,H(k)表示線性歸一化后的藏文手寫圖像的字母軌跡點在水平方向上的投影密度函數(shù),V(l)表示線性歸一化后的藏文手寫圖像的字母軌跡點在垂直方向上的投影密度函數(shù),x表示藏文手寫圖像的字母軌跡點的當前點的橫坐標的值,y表示藏文手寫圖像的字母軌跡點的當前點的縱坐標的值,k表示藏文手寫圖像的字母軌跡點的第k個點的橫坐標,l表示藏文手寫圖像的字母軌跡點的第l個點的縱坐標,X表示線性歸一化后的藏文手寫圖像的字母軌跡點的橫坐標的最大值,Y表示線性歸一化后的藏文手寫圖像的字母軌跡點的縱坐標的最大值。
第3步,將非線性歸一化后的藏文手寫圖像數(shù)組進行三點線性平滑處理,得到平滑處理后的藏文手寫圖像數(shù)組。
按照下式,對非線性歸一化后的藏文手寫圖像中的字母軌跡進行三點線性平滑去噪處理:
其中,S={xi|1≤i≤n}表示手寫藏文字母軌跡點列中的一個筆畫,S′={xi′|1≤i≤n}表示筆畫S經(jīng)過三點線性平滑處理后的筆畫,i表示筆畫中的第i個點,x(xi)表示平滑處理前筆畫中第i個點的橫坐標,x(xi-1)表示平滑處理前筆畫中第i-1個點的橫坐標,x(xi+1)表示平滑處理前筆畫中第i+1個點的橫坐標,y(xi)表示平滑處理前筆畫中第i個點的縱坐標,y(xi-1)表示平滑處理前筆畫中第i-1個點的縱坐標,y(xi+1)表示平滑處理前筆畫中第i+1個點的縱坐標,x(xi′)表示平滑處理后筆畫中第i個點的橫坐標,y(xi′)表示平滑處理后筆畫中第i個點的縱坐標,λ1,λ2,λ3表示平滑系數(shù),根據(jù)經(jīng)驗值,本發(fā)明中取λ1的值為0.4,取λ2的值為0.2,取λ3的值為0.4。
第4步,將平滑處理后的藏文手寫圖像數(shù)組進行基于Bresenham直線插值算法的插值處理,得到插值處理后的藏文手寫圖像數(shù)組。
對三點線性平滑處理后的藏文手寫圖像數(shù)組采用Bresenham直線算法進行插值處理,Bresenham直線算法的流程圖如圖4所示。其原理是,手寫字母軌跡中的任意一點,計算相鄰兩點的橫軸向增量和縱軸向增量,若其中的較大值大于給定的插值步長,則在兩點之間進行插值。插值位置利用兩點間的斜率和步長來進行計算,插值進取方向為增量較大的方向,以保證在另一個方向上插值點間的距離都小于插值步長。
第5步,對插值處理后的藏文手寫圖像數(shù)組進行最鄰近重采樣操作,得到重采樣后的藏文手寫圖像數(shù)組。
首先檢測手寫藏文字母筆畫的關(guān)鍵點,手寫藏文字母筆畫的關(guān)鍵點包括筆畫的起點、終點、拐點和尖點,其中筆畫的起點和終點信息已知,筆畫的拐點和尖點可依據(jù)道格拉斯-普克Douglas-Peucker算法來檢測。檢測出筆畫的關(guān)鍵點后,保留所有的關(guān)鍵點,對兩相鄰關(guān)鍵點之間的筆畫段進行等間距重采樣。預設(shè)重采樣閾值,本發(fā)明的重采樣閾值設(shè)為3,以兩相鄰關(guān)鍵點之間筆畫段的起始點為基準點,依次計算從基準點開始的相鄰兩點間的距離,并進行累加,當某點對應(yīng)的累加距離大于重采樣閾值,就刪除基準點與該點之間的點,并把該點作為新的基準點重復上述步驟,直到所有點采樣操作完成。
第6步,對重采樣操作后的藏文手寫圖像數(shù)組進行點密度的彈性網(wǎng)格劃分,得到彈性網(wǎng)格劃分后的藏文手寫圖像數(shù)組。
使用8×8的彈性網(wǎng)格將重采樣后的藏文手寫字母圖像進行網(wǎng)格劃分,該彈性網(wǎng)格根據(jù)筆劃密度函數(shù)來劃分,筆劃密度小的區(qū)域網(wǎng)格密,筆劃密度大的區(qū)域網(wǎng)格疏。
第7步,對彈性網(wǎng)格劃分后的藏文手寫圖像數(shù)組中每個網(wǎng)格內(nèi)的每個像素點,提取方向線素特征,將每個網(wǎng)格內(nèi)每個像素點的方向線素特征存在藏文手寫圖像數(shù)組中。
提取每個彈性網(wǎng)格內(nèi)每個像素點的八方向線素特征的原理是,將每個網(wǎng)格內(nèi)每個像素點的八方向線素特征進行每個分量上的累加,就得出了該網(wǎng)格的方向線素特征向量。
按照下式,對個網(wǎng)格內(nèi)每個像素點的方向線素特征進行每個分量上的累加:
其中,N表示該網(wǎng)格中的像素點個數(shù),i表示第i個網(wǎng)格,f1,f2,…,fN表示該網(wǎng)格內(nèi)每個像素點的方向線素特征向量,fi.a1,fi.a2,…,fi.a8表示該網(wǎng)格內(nèi)每個像素點的方向線素特征向量的8個方向線素特征分量,F(xiàn).a1,F.a2,…,F.a8表示該網(wǎng)格的8個方向線素特征分量,F(xiàn)=(a1,a2,a3,a4,a5,a6,a7,a8)表示該網(wǎng)格的方向線素特征向量,它是由每個網(wǎng)格內(nèi)每個像素點的特征向量進行每個分量上的累加得到。
步驟2,輸入手寫藏文基字字母。
藏文軌跡采集模塊采集用戶在手寫狀態(tài)下輸入的藏文手寫基字字母軌跡點,將采集到的藏文手寫基字字母軌跡點,以字符串的形式發(fā)送給藏文手寫基字字母識別模塊。
藏文軌跡采集模塊采集用戶在手寫狀態(tài)下輸入的藏文手寫基字字母軌跡點的原理是,用戶在基于安卓系統(tǒng)的移動終端的手寫狀態(tài)下觸屏的瞬間會觸發(fā)觸摸MotionEvent事件,用戶的手指在屏幕上滑動時會觸發(fā)滾動條onScroll事件,安卓手機每隔500毫秒采集一次當前觸摸點的橫縱坐標,將采集到的藏文手寫基字字母軌跡點坐標序列以字符串的形式發(fā)送給藏文手寫基字字母識別模塊。藏文手寫基字字母在基于安卓系統(tǒng)的移動終端上的輸入界面示意圖如圖5所示。
步驟3,識別手寫藏文基字字母。
藏文手寫基字字母識別模塊接收從藏文軌跡采集模塊發(fā)送來的字符串序列,利用特征提取算法,從字符串序列中,依次提取圖像數(shù)組的特征,得到特征數(shù)組。
特征提取算法的具體步驟如下。
第1步,對藏文手寫圖像數(shù)組進行線性歸一化處理,得到線性歸一化后的藏文手寫圖像數(shù)組。
線性歸一化是將圖像在水平方向和垂直方向上,按照線性比例進行放大或縮小,縮放成規(guī)定尺寸大小的圖像。該方法的優(yōu)點是算法簡單,失真較小,不會改變其原有字母的形狀和特征。
對藏文手寫圖像數(shù)組進行線性歸一化處理的方法是,利用線性歸一化公式,對藏文手寫圖像數(shù)組進行線性縮放,使得歸一化后的圖像大小為256×256。
按照下式,對藏文手寫圖像數(shù)組進行線性歸一化:
RatioX=N/(xmax-xmin)
RatioY=N/(ymax-ymin)
x'=xRatioX
y'=y(tǒng)RatioY
其中,(x,y)表示線性歸一化前藏文手寫圖像的字母軌跡點的橫縱坐標,xmin表示線性歸一化前藏文手寫圖像的字母軌跡點序列中橫坐標最小的字母軌跡點的橫坐標值,xmax表示線性歸一化前藏文手寫圖像的字母軌跡點序列中橫坐標最大的字母軌跡點的橫坐標值,ymin表示線性歸一化前藏文手寫圖像的字母軌跡點序列中縱坐標最小的字母軌跡點的縱坐標值,ymax表示線性歸一化前藏文手寫圖像的字母軌跡點序列中縱坐標最大的字母軌跡點的縱坐標值,N表示線性歸一化后藏文手寫圖像的寬高值,本發(fā)明中N的值取256,N×N表示線性歸一化后的藏文手寫圖像的大小,本發(fā)明中線性歸一化后的藏文手寫圖像的大小為256×256,RatioX表示藏文字母圖像在水平方向上的線性縮放比率,RatioY表示藏文字母圖像在垂直方向上的線性縮放比率,(x',y')表示線性歸一化后的藏文手寫圖像的字母軌跡點的橫縱坐標。
第2步,將線性歸一化后的藏文手寫圖像數(shù)組進行基于點密度均衡的非線性歸一化處理,得到非線性歸一化后的藏文手寫圖像數(shù)組。
基于點密度均衡的非線性歸一化處理的方法是,利用投影密度公式,得到線性歸一化后藏文手寫圖像的字母軌跡點在水平方向和垂直方向上的投影密度函數(shù),對投影密度函數(shù)進行均勻化處理,使得原本分布不均勻的投影密度函數(shù)均勻化,從而調(diào)整藏文手寫圖像中字母變形嚴重的部分,將手寫字母的重心位置調(diào)整到了藏文手寫圖像的中心。
按照下式,得到線性歸一化后藏文手寫圖像的字母軌跡點在水平方向和垂直方向上的投影密度函數(shù):
其中,f(x,y)表示線性歸一化后藏文手寫圖像的灰度函數(shù),藏文手寫圖像字母軌跡點的點列坐標映射的圖像為二值形式,圖像灰度函數(shù)f(x,y)的值為1,表示筆畫像素點,圖像灰度函數(shù)f(x,y)的值為0,表示背景空白點,(x,y)表示線性歸一化后藏文手寫圖像中字母軌跡點的橫縱坐標,X表示字母軌跡點序列中橫坐標最大的字母軌跡點的橫坐標值,Y表示字母軌跡點序列中縱坐標最大的字母軌跡點的縱坐標值,H(x)表示線性歸一化后的藏文手寫圖像的字母軌跡點在水平方向上的投影密度函數(shù),V(y)表示線性歸一化后的藏文手寫圖像的字母軌跡點在垂直方向上的投影密度函數(shù),αH表示水平修正參數(shù),αV表示垂直修正參數(shù),αH和αV的值取0,修正參數(shù)的數(shù)值與修正效果成反比。
利用基于點密度均衡的非線性歸一化公式,對線性歸一化后的藏文手寫圖像做基于點密度均衡的非線性歸一化處理。使得非線性歸一化后的手寫字母軌跡點均勻分布在256×256的圖像上,手寫字母圖像軌跡的重心位置被調(diào)整到字母軌跡點陣的中心。
按照下式,對線性歸一化后的藏文手寫數(shù)組圖像進行基于點密度均衡的非線性歸一化處理:
其中,M表示線性歸一化后藏文手寫圖像中軌跡點的橫坐標,N表示線性歸一化后藏文手寫圖像中軌跡點的縱坐標,m表示非線性歸一化后藏文手寫圖像中軌跡點的橫坐標,n表示非線性歸一化后藏文手寫圖像中軌跡點的縱坐標,H(k)表示線性歸一化后的藏文手寫圖像的字母軌跡點在水平方向上的投影密度函數(shù),V(l)表示線性歸一化后的藏文手寫圖像的字母軌跡點在垂直方向上的投影密度函數(shù),x表示藏文手寫圖像的字母軌跡點的當前點的橫坐標的值,y表示藏文手寫圖像的字母軌跡點的當前點的縱坐標的值,k表示藏文手寫圖像的字母軌跡點的第k個點的橫坐標,l表示藏文手寫圖像的字母軌跡點的第l個點的縱坐標,X表示線性歸一化后的藏文手寫圖像的字母軌跡點的橫坐標的最大值,Y表示線性歸一化后的藏文手寫圖像的字母軌跡點的縱坐標的最大值。
第3步,將非線性歸一化后的藏文手寫圖像數(shù)組進行三點線性平滑處理,得到平滑處理后的藏文手寫圖像數(shù)組。
按照下式,對非線性歸一化后的藏文手寫圖像中的字母軌跡進行三點線性平滑去噪處理:
其中,S={xi|1≤i≤n}表示手寫藏文字母軌跡點列中的一個筆畫,S′={xi′|1≤i≤n}表示筆畫S經(jīng)過三點線性平滑處理后的筆畫,i表示筆畫中的第i個點,x(xi)表示平滑處理前筆畫中第i個點的橫坐標,x(xi-1)表示平滑處理前筆畫中第i-1個點的橫坐標,x(xi+1)表示平滑處理前筆畫中第i+1個點的橫坐標,y(xi)表示平滑處理前筆畫中第i個點的縱坐標,y(xi-1)表示平滑處理前筆畫中第i-1個點的縱坐標,y(xi+1)表示平滑處理前筆畫中第i+1個點的縱坐標,x(xi′)表示平滑處理后筆畫中第i個點的橫坐標,y(xi′)表示平滑處理后筆畫中第i個點的縱坐標,λ1,λ2,λ3表示平滑系數(shù),根據(jù)經(jīng)驗值,本發(fā)明中取λ1的值為0.4,取λ2的值為0.2,取λ3的值為0.4。
第4步,將平滑處理后的藏文手寫圖像數(shù)組進行基于Bresenham直線插值算法的插值處理,得到插值處理后的藏文手寫圖像數(shù)組。
對三點線性平滑處理后的藏文手寫圖像數(shù)組采用Bresenham直線算法進行插值處理。其原理是,手寫字母軌跡中的任意一點,計算相鄰兩點的橫軸向增量和縱軸向增量,若其中的較大值大于給定的插值步長,則在兩點之間進行插值。插值位置利用兩點間的斜率和步長來進行計算,插值進取方向為增量較大的方向,以保證在另一個方向上插值點間的距離都小于插值步長。
第5步,對插值處理后的藏文手寫圖像數(shù)組進行最鄰近重采樣操作,得到重采樣后的藏文手寫圖像數(shù)組。
首先檢測手寫藏文字母筆畫的關(guān)鍵點,手寫藏文字母筆畫的關(guān)鍵點包括筆畫的起點、終點、拐點和尖點,其中筆畫的起點和終點信息已知,筆畫的拐點和尖點可依據(jù)道格拉斯-普克Douglas-Peucker算法來檢測。檢測出筆畫的關(guān)鍵點后,保留所有的關(guān)鍵點,對兩相鄰關(guān)鍵點之間的筆畫段進行等間距重采樣。預設(shè)重采樣閾值,本發(fā)明的重采樣閾值設(shè)為3,以兩相鄰關(guān)鍵點之間筆畫段的起始點為基準點,依次計算從基準點開始的相鄰兩點間的距離,并進行累加,當某點對應(yīng)的累加距離大于重采樣閾值,就刪除基準點與該點之間的點,并把該點作為新的基準點重復上述步驟,直到所有點采樣操作完成。
第6步,對重采樣操作后的藏文手寫圖像數(shù)組進行點密度的彈性網(wǎng)格劃分,得到彈性網(wǎng)格劃分后的藏文手寫圖像數(shù)組。
使用8×8的彈性網(wǎng)格將重采樣后的藏文手寫字母圖像進行網(wǎng)格劃分,該彈性網(wǎng)格根據(jù)筆劃密度函數(shù)來劃分,筆劃密度小的區(qū)域網(wǎng)格密,筆劃密度大的區(qū)域網(wǎng)格疏。
第7步,對彈性網(wǎng)格劃分后的藏文手寫圖像數(shù)組中每個網(wǎng)格內(nèi)的每個像素點,提取方向線素特征,將每個網(wǎng)格內(nèi)每個像素點的方向線素特征存在藏文手寫圖像數(shù)組中。
提取每個彈性網(wǎng)格內(nèi)每個像素點的八方向線素特征的原理是,將每個網(wǎng)格內(nèi)每個像素點的八方向線素特征進行每個分量上的累加,就得出了該網(wǎng)格的方向線素特征向量。
按照下式,對個網(wǎng)格內(nèi)每個像素點的方向線素特征進行每個分量上的累加:
其中,N表示該網(wǎng)格中的像素點個數(shù),i表示第i個網(wǎng)格,f1,f2,…,fN表示該網(wǎng)格內(nèi)每個像素點的方向線素特征向量,fi.a1,fi.a2,…,fi.a8表示該網(wǎng)格內(nèi)每個像素點的方向線素特征向量的8個方向線素特征分量,F(xiàn).a1,F.a2,…,F.a8表示該網(wǎng)格的8個方向線素特征分量,F(xiàn)=(a1,a2,a3,a4,a5,a6,a7,a8)表示該網(wǎng)格的方向線素特征向量,它是由每個網(wǎng)格內(nèi)每個像素點的特征向量進行每個分量上的累加得到。
利用歐氏距離分類公式,藏文手寫基字字母識別模塊將特征數(shù)組的特征向量與特征模版庫中每個藏文基字字母的特征向量進行匹配,得到匹配度數(shù)組。
歐氏距離分類公式如下:
其中,d表示特征數(shù)組的特征向量與特征模版庫中藏文基字字母的特征向量之間的歐式距離,d的值越小,特征數(shù)組的特征向量與特征模版庫中的藏文基字字母的特征向量之間的匹配度越高,d的值越大,特征數(shù)組的特征向量與特征模版庫中的藏文基字字母的特征向量之間的匹配度越低,n表示特征向量中特征分量的總數(shù),i表示特征向量的第i個特征分量,k表示特征數(shù)組的特征向量的特征分量個數(shù),m表示特征模版庫中藏文基字字母的特征向量的特征分量個數(shù),X(x1,x2,…,xm)表示特征模版庫中藏文基字字母的特征向量的m個特征分量,Y(y1,y2,…,yk)表示特征數(shù)組的特征向量的k個特征分量,k、m和n的取值相等。
歐氏距離分類器是目前常用的最小距離分類器中的一種。歐氏距離分類器相對于最鄰近分類器的優(yōu)點是響應(yīng)速度快,非常適合應(yīng)用于有實時要求的系統(tǒng)上。同時歐氏距離適合應(yīng)用于衡量各個分量的量綱一致并且各個分量的分布(期望,方差等)都相同的向量之間的距離關(guān)系,而本發(fā)明所采用的方向線素特征滿足以上條件。因此,本發(fā)明最終采用歐氏距離分類器作為聯(lián)機手寫藏語單字符識別的分類器。
藏文手寫基字字母識別模塊將匹配度數(shù)組中的元素按照從小到大的順序進行排序,得到排序后的匹配度數(shù)組。
藏文手寫基字字母識別模塊將排序后的匹配度數(shù)組對應(yīng)的藏文基字字母編號序列發(fā)送給圖像顯示模塊。
步驟4,顯示候選藏文基字字母圖像。
圖像顯示模塊接收候選藏文基字字母編號序列。
圖像顯示模塊從藏文字母圖像庫中,依次讀取與候選藏文基字字母編號序列對應(yīng)的候選藏文基字字母圖像。
圖像顯示模塊在移動終端上顯示讀取的候選藏文基字字母圖像。
圖像顯示模塊接收藏文手寫基字字母識別模塊發(fā)送來的藏文基字字母編號序列,從藏文字母圖像庫中讀入候選基字字母編號對應(yīng)的藏文基字字母圖像,在移動終端上顯示候選藏文基字字母圖像。在軟件安裝完成時,該軟件會自動將手寫識別算法訓練出來的分類器加載到手機中。圖像顯示模塊接收藏文手寫基字字母識別模塊發(fā)送來的藏文基字字母編號序列,經(jīng)過分類器識別,按照匹配度從高到低的順序,從藏文字母圖像庫中讀入候選基字字母編號對應(yīng)的藏文基字字母圖像,在移動終端上顯示候選藏文基字字母圖像。在移動終端上顯示候選藏文基字字母圖像的示意圖如圖6所示。
步驟5,選擇藏文基字字母。
按鍵接收模塊接收用戶輸入的候選藏文基字字母選擇信號。
按鍵接收模塊接收用戶輸入的候選基字字母選擇信號,得到被選基字字母的編號和被選基字字母對應(yīng)的unicode編碼。按鍵接收模塊接收用戶輸入的候選基字字母選擇信號的原理是,當按鍵接收模塊收到點擊屏幕的觸摸MotionEvent事件通知時,按鍵接收模塊根據(jù)觸摸點的橫縱坐標信息,接收用戶輸入的候選基字字母選擇信號,得到被選基字字母的編號和被選基字字母對應(yīng)的unicode編碼。
按鍵接收模塊向圖像顯示模塊發(fā)送被選的藏文基字字母對應(yīng)的編號。
按鍵接收模塊向藏文字母組合模塊發(fā)送藏文基字字母對應(yīng)的unicode編碼。
步驟6,顯示被選藏文基字字母圖像。
圖像顯示模塊接收從按鍵接收模塊發(fā)送來的被選的藏文基字字母對應(yīng)的編號。
圖像顯示模塊從藏文字母圖像庫中讀取與被選的藏文基字字母對應(yīng)的編號對應(yīng)的被選藏文基字字母的圖像。
圖像顯示模塊在移動終端上顯示被選藏文基字字母的圖像。
步驟7,存儲與藏文基字字母對應(yīng)的unicode編碼。
藏文字母組合模塊接收從按鍵接收模塊發(fā)送來的藏文基字字母對應(yīng)的unicode編碼。
藏文字母組合模塊將藏文基字字母對應(yīng)的unicode編碼存儲在存儲單元中。
步驟8,輸入藏文附加字母。
按鍵接收模塊接收用戶通過按鍵輸入的藏文附加字母的按鍵選擇信號。在移動終端上輸入藏文附加字母的示意圖如圖7所示。
用戶輸入的附加藏文字母是指藏文音節(jié)的上加字母、前加字母、后加字母、下加字母、下加元音字母、上加元音字母和重后加字母,按鍵接收模塊接收用戶輸入的上加字母、前加字母、后加字母、下加字母、下加元音字母、上加元音字母和重后加字母的選擇信號的原理是,按鍵接收模塊收到用戶在屏幕上點擊的觸摸MotionEvent事件通知時,根據(jù)觸摸點的橫縱坐標信息,接收用戶輸入的上加字母、前加字母、后加字母、下加字母、下加元音字母、上加元音字母和重后加字母的選擇信號,得到用戶輸入的藏文附加字母對應(yīng)的unicode編碼。
按鍵接收模塊將藏文附加字母對應(yīng)的unicode編碼發(fā)送給藏文字母組合模塊。
步驟9,存儲藏文附加字母對應(yīng)的unicode編碼。
藏文字母組合模塊接收從按鍵接收模塊發(fā)送來的藏文附加字母對應(yīng)的unicode編碼,將藏文附加字母對應(yīng)的unicode編碼存儲在存儲單元中。
步驟10,輸出藏文音節(jié)。
利用藏文音節(jié)的字母組合編碼規(guī)則,藏文字母組合模塊將藏文基字字母對應(yīng)的unicode編碼和藏文附加字母對應(yīng)的unicode編碼進行組合編碼,輸出組合編碼后的藏文音節(jié)。移動終端上輸出顯示藏文音節(jié)的示意圖如圖8所示。本發(fā)明的藏文字母的unicode編碼如表1所示,藏文音節(jié)的字母組合編碼示例如表2所示。
表1藏文字母的unicode編碼
表2藏文音節(jié)的字母組合編碼示例