呂振偉
(太原學(xué)院 基礎(chǔ)部,山西 太原030032)
手寫漢字的研究一直是模式識(shí)別領(lǐng)域的一個(gè)熱點(diǎn)問題,已經(jīng)有大量關(guān)于手寫漢字識(shí)別的研究工作,但是手寫漢字生成的研究并不多。同時(shí),手寫漢字生成的研究有其一定的意義,例如可以用來構(gòu)建漢字?jǐn)?shù)據(jù)庫等等,因此本文將研究如何生成具有一定風(fēng)格的漢字的問題。
手寫漢字生成的比較早的工作來自于文獻(xiàn)[1],其中把漢字分為了五層,分別為結(jié)構(gòu)橢圓、簡單筆劃、復(fù)合筆劃、偏旁部首和單字,在對(duì)訓(xùn)練樣本的幾個(gè)離散風(fēng)格進(jìn)行學(xué)習(xí)建立風(fēng)格的模型以后,新的風(fēng)格由訓(xùn)練樣本風(fēng)格的線性插值來表示,給定不同的參數(shù)就可以生成不同的風(fēng)格。文獻(xiàn)[2]把漢字分為兩層,即筆劃和單字,然后分別建立筆劃和單字的統(tǒng)計(jì)模型。每一個(gè)筆劃由表示筆劃的特征點(diǎn)的概率密度函數(shù)來表示,而每一個(gè)單字由組成單字的筆劃的聯(lián)合概率密度函數(shù)來表示,但該模型太復(fù)雜,不易試驗(yàn)和操作。
本文也運(yùn)用漢字的統(tǒng)計(jì)結(jié)構(gòu)模型,把漢字分為三層:筆劃、部首和單字,然后分別建立三個(gè)層次的統(tǒng)計(jì)模型,最后基于HCL2000漢字?jǐn)?shù)據(jù)庫來驗(yàn)證模型的有效性。
因?yàn)槭謱憹h字存在大小和傾斜等問題,所以需要對(duì)漢字進(jìn)行匹配預(yù)處理以后才可以進(jìn)行漢字的生成研究,對(duì)手寫漢字進(jìn)行預(yù)處理,其中包括漢字特征點(diǎn)的提取和漢字的匹配。由漢字結(jié)構(gòu)可知,漢字由部首或筆劃表示,部首由組成它的筆劃表示,而筆劃由組成它的特征點(diǎn)表示,特征點(diǎn)的提取由手工來完成。我們首先是建立漢字的統(tǒng)計(jì)模型,這主要運(yùn)用主成份分析[3](PCA)和核主成份分析[4](KPCA)的方法,然后從統(tǒng)計(jì)模型中生成漢字,見圖1漢字生成的系統(tǒng)結(jié)構(gòu)圖。
設(shè)某一筆劃的樣本為x1,…,xl,其中xi由M 個(gè)點(diǎn)組成,記 xi=(xi1,yi1,xi2,yi2,…,xiM,yiM),設(shè) x1,…,xl為已匹配的筆劃樣本,運(yùn)用KPCA對(duì)筆劃的形狀進(jìn)行統(tǒng)計(jì),可得筆劃的模型:Vkφ(x)=Vkγ + ˉφ,其中γ為K維參數(shù)向量,它服從K維獨(dú)立正態(tài)分布,即γ~N(0,Λ)。Vk是由V中前k個(gè)最大特征值對(duì)應(yīng)的特征向量組成的矩陣,V是中心化核矩陣~K的特征向量矩陣,ˉφ 是樣本均值[6]。
有了筆劃之后,我們接著討論用筆劃生成部首。設(shè)每一個(gè)筆劃都用它的外部輪廓來表示,即用包括該筆劃的矩形來表示.設(shè)矩形對(duì)角頂點(diǎn)的坐標(biāo)表示為(x1,y1,x2,y2)。首先,對(duì)某一部首的樣本進(jìn)行匹配,然后應(yīng)用新模型研究組成部首的各個(gè)筆劃之間的相對(duì)大小和位置,設(shè)部首由m個(gè)筆劃組成,每個(gè)筆劃的矩形輪廓用(xi1,yi1,xi2,yi2),i=1,…,m 來表示,每個(gè)筆劃包含的相對(duì)大小和位置關(guān)系xi用它的矩形輪廓和起點(diǎn)和終點(diǎn)來表示,設(shè)起點(diǎn)為(xis,yis),終點(diǎn)為(xie,yie),則 xi=(xi1,yi1,xi2,yi2,xie,yie,xis,yis),用X表示部首的各個(gè)筆劃之間的相對(duì)大小和 位置關(guān)系,設(shè)部首有l(wèi)個(gè)樣本,我們建立新模型:
圖1 漢字生成系統(tǒng)結(jié)構(gòu)圖
其中η為參數(shù)向量,它服從正態(tài)分布,即η~N(0,Λ),其中Λ是對(duì)角線為特征值的對(duì)角矩陣;ε=(ε1,…,εl)是誤差變量,也可以把它看作噪聲變量,它服從多維獨(dú)立分布,且若ηi>0,則εi~N(0,σ2),其中,若 ηi=0,則 εi=0,1 ≤ i≤l,且η和ε獨(dú)立,V是由特征向量組成的矩陣,這里假設(shè)它的列向量按特征值由大到小的順序排列,Vk是由V的前k個(gè)最大特征值對(duì)應(yīng)的特征向量組成的矩陣。給定某一參數(shù)η,可以用最小二乘法,求使得下式最小的。
可以得到對(duì)應(yīng)的部首中各個(gè)筆劃之間的相對(duì)大小和位置關(guān)系。
部首的統(tǒng)計(jì)模型由兩部分組成,第一部分是由在訓(xùn)練樣本集上得到的部首的形狀統(tǒng)計(jì)模型,它在所有部首樣本上進(jìn)行統(tǒng)計(jì),而不是在各個(gè)風(fēng)格子集上進(jìn)行統(tǒng)計(jì),因此得到的模型是對(duì)部首形狀的整體統(tǒng)計(jì),表示部首的一般形狀,第二部分要用到測試樣本集中的信息,此部分建立在各個(gè)風(fēng)格子集上,它研究同一部首在不同漢字中的關(guān)系,本文假設(shè)這個(gè)關(guān)系與風(fēng)格無關(guān),所以我們只建立第二部分的模型,我們運(yùn)用PCA來研究這個(gè)問題。
假設(shè)要研究的部首為r,要研究的漢字為w1和w2,則要研究的關(guān)系是給定w1的部首r之后,求出w2的部首r.設(shè)訓(xùn)練樣本集上的風(fēng)格為S1,…,Sm,即訓(xùn)練樣本集共有m個(gè)風(fēng)格.設(shè)某一風(fēng)格S的樣本子集中 w1,w2的樣本數(shù)分別為 k1,k2,其中 S表示 S1,…,Sm中的任一風(fēng)格,r是由特征點(diǎn)表示的n維向量,漢字w1中的筆劃r記為r1,w2中的筆劃r記為r2,要研究r1和r2的關(guān)系,首先建立樣本對(duì)(r1,r2),顯然共有k1×k2個(gè)這樣的樣本對(duì),然后對(duì)部首r的各個(gè)筆劃和部首中筆劃的相對(duì)大小和位置關(guān)系進(jìn)行匹配,這通過仿射變換來完成。設(shè)Δr=r2-r1,則風(fēng)格S共有k1×k2個(gè)樣本Δr,其中Δr包括兩部分,一部分式r對(duì)應(yīng)筆劃的差另一部分式部首中筆劃的相對(duì)大小和位置關(guān)系的差。
對(duì)樣本集Δr進(jìn)行PCA可得模型:Δr=μ+Ukb+ε,其中b是參數(shù)向量,它服從正態(tài)分布,即b~N(0,Λ),其中Λ是對(duì)角線為特征值的對(duì)角矩陣;ε是誤差變量,也可以把它看作噪聲變量,它也服從正態(tài)分布,即 ε ~ N(0,σ2I),其中,且 b和ε獨(dú)立。
設(shè)在風(fēng)格Si下模型為,假設(shè)研究的關(guān)系和風(fēng)格獨(dú)立,則Δr的統(tǒng)計(jì)模型如下:g(Δr)= ∫f(Δr|S)f(S)dS,這里假設(shè)各個(gè)風(fēng)格的先驗(yàn)概率相等,因?yàn)楣灿衜個(gè)風(fēng)格,所以設(shè)每個(gè)風(fēng)格的概率為,則g(Δr)可近似表示為:
由此我們得到了統(tǒng)計(jì)模型g(Δr)。假設(shè)在訓(xùn)練樣本集上得到的部首的整體形狀的模型為h(r),此處得到的部首模型仍然是由部首中的筆劃和筆劃之間的相對(duì)位置的大小模型組成,而KPCA和新模型不易求出在原樣本空間對(duì)應(yīng)的形狀的顯示表達(dá)式,所以不能通過公式f(r)=λg(Δr)+(1-λ)h(r)來直接求出部首的統(tǒng)計(jì)模型,為此我們給出了新的解決方法如下:
通過抽樣給定模型h(r)和g(Δr)的參數(shù),對(duì)于h(r),通過前面的方法,應(yīng)用最小二乘法求出對(duì)應(yīng)的形狀Xh;對(duì)于g(Δr),給定其中的參數(shù)后利用測試樣本中的部首的形狀就可以直接求出對(duì)應(yīng)的形狀Xg,對(duì)Xh和Xg進(jìn)行匹配,然后對(duì)匹配后的Xh和Xg進(jìn)行線性插值,就可以得到最后的形狀,線性插值如下:
其中λ為參數(shù),0≤λ≤1。
上面只考慮了測試樣本中只有一個(gè)漢字包含要研究的部首的情況,若測試樣本中還有一個(gè)漢字也包含要研究的部首,為此我們建立模型:
對(duì)于模型2.1,在極端情況下,當(dāng)λ=0時(shí),X=Xh,這對(duì)應(yīng)于測試樣本數(shù)為零的情況,此時(shí)部首完全由訓(xùn)練樣本學(xué)習(xí)得到;當(dāng)λ=1時(shí),X=Xg,這對(duì)應(yīng)于測試樣不數(shù)非常大的情況,此時(shí),可以通過直接學(xué)習(xí)測試樣本來求得部首的模型,通過這個(gè)模型可以解決兩個(gè)漢字包含要研究的部首的問題。
由各個(gè)部首組成單字的模型和由各個(gè)筆劃組成部首的模型類似,包括部首模型和部首之間的相對(duì)大小和位置模型兩部分,其中部首模型由上面表示,部首之間的相對(duì)大小和位置模型用KPCA表示.給定單字的統(tǒng)計(jì)模型以后,通過隨機(jī)抽樣就可以生成漢字。
本文在HCL2000漢字?jǐn)?shù)據(jù)庫的基礎(chǔ)之上用Mathlab數(shù)學(xué)軟件進(jìn)行實(shí)驗(yàn),樣本庫來自于文獻(xiàn)[5],它是三個(gè)人寫的樣本集。實(shí)驗(yàn)中使用高斯核,在研究筆劃的形狀時(shí),取σ=5,在研究筆劃之間的空間大小和位置關(guān)系以及部首之間的空間大小和位置關(guān)系時(shí)取σ=20。
本實(shí)驗(yàn)通過學(xué)習(xí)其中兩個(gè)人的手寫漢字,并且給出第三個(gè)人的手寫漢字“把”,最后生成符合第三個(gè)人手寫風(fēng)格的漢字“把”,實(shí)驗(yàn)生成的圖像如下:
圖2 生成的漢字”把”
在上圖中得到了符合一定風(fēng)格的漢字,這證明了本文提出模型的有效性。
下面是mathlab軟件實(shí)驗(yàn)本文改進(jìn)方法kpca的源代碼:
本文研究了手寫漢字自動(dòng)生成的問題,建立了漢字的統(tǒng)計(jì)結(jié)構(gòu)模型,再PCA和KPCA方法的基礎(chǔ)上給出了筆劃、部首和單字的統(tǒng)計(jì)模型,從而實(shí)現(xiàn)了漢字的生成,以后的工作主要包括形狀度量的建立和最終生成漢字的評(píng)價(jià)函數(shù)的建立兩個(gè)方面。
[1]Songhua Xu,F(xiàn).C.M.Lau,W.K.Cheung,Yunhe Pan.Automatic generation of artistic chinese calligraphy[J].IEEE Intelligent Systems,2005,20(3).
[2]Kim I J,Kim J H.Statistical character structure modeling and its application to handwritten Chinese character recognition[J].IEEE Trans PAMI,2003,25(15).
[3]Cootes,Taylor,et al..Active shape models:their training and application[J].Computer Vision and Image Understanding,1995,16(1).
[4]Y.Rathi,S.Dambreville,A.Tannenbaum.Statistical shape analysis using kernel pca[J].In:SPIE,Electronic Imaging,2006.
[5]任俊玲,郭軍.HCL2000手寫漢字?jǐn)?shù)據(jù)庫的更新及相關(guān)研究[J].中文信息學(xué)報(bào),2005(5).
[6]M.B.Stegmann,D.D.Gomez.A brief introduction to statistical shape analysis.tech.rep.,Richard Petersens.Plads:Building 321,DK-2800 Kgs.Lyngby,2002.