呂振偉
(太原學院 基礎部,山西 太原030032)
手寫漢字的研究一直是模式識別領域的一個熱點問題,已經有大量關于手寫漢字識別的研究工作,但是手寫漢字生成的研究并不多。同時,手寫漢字生成的研究有其一定的意義,例如可以用來構建漢字數據庫等等,因此本文將研究如何生成具有一定風格的漢字的問題。
手寫漢字生成的比較早的工作來自于文獻[1],其中把漢字分為了五層,分別為結構橢圓、簡單筆劃、復合筆劃、偏旁部首和單字,在對訓練樣本的幾個離散風格進行學習建立風格的模型以后,新的風格由訓練樣本風格的線性插值來表示,給定不同的參數就可以生成不同的風格。文獻[2]把漢字分為兩層,即筆劃和單字,然后分別建立筆劃和單字的統計模型。每一個筆劃由表示筆劃的特征點的概率密度函數來表示,而每一個單字由組成單字的筆劃的聯合概率密度函數來表示,但該模型太復雜,不易試驗和操作。
本文也運用漢字的統計結構模型,把漢字分為三層:筆劃、部首和單字,然后分別建立三個層次的統計模型,最后基于HCL2000漢字數據庫來驗證模型的有效性。
因為手寫漢字存在大小和傾斜等問題,所以需要對漢字進行匹配預處理以后才可以進行漢字的生成研究,對手寫漢字進行預處理,其中包括漢字特征點的提取和漢字的匹配。由漢字結構可知,漢字由部首或筆劃表示,部首由組成它的筆劃表示,而筆劃由組成它的特征點表示,特征點的提取由手工來完成。我們首先是建立漢字的統計模型,這主要運用主成份分析[3](PCA)和核主成份分析[4](KPCA)的方法,然后從統計模型中生成漢字,見圖1漢字生成的系統結構圖。
設某一筆劃的樣本為x1,…,xl,其中xi由M 個點組成,記 xi=(xi1,yi1,xi2,yi2,…,xiM,yiM),設 x1,…,xl為已匹配的筆劃樣本,運用KPCA對筆劃的形狀進行統計,可得筆劃的模型:Vkφ(x)=Vkγ + ˉφ,其中γ為K維參數向量,它服從K維獨立正態分布,即γ~N(0,Λ)。Vk是由V中前k個最大特征值對應的特征向量組成的矩陣,V是中心化核矩陣~K的特征向量矩陣,ˉφ 是樣本均值[6]。
有了筆劃之后,我們接著討論用筆劃生成部首。設每一個筆劃都用它的外部輪廓來表示,即用包括該筆劃的矩形來表示.設矩形對角頂點的坐標表示為(x1,y1,x2,y2)。首先,對某一部首的樣本進行匹配,然后應用新模型研究組成部首的各個筆劃之間的相對大小和位置,設部首由m個筆劃組成,每個筆劃的矩形輪廓用(xi1,yi1,xi2,yi2),i=1,…,m 來表示,每個筆劃包含的相對大小和位置關系xi用它的矩形輪廓和起點和終點來表示,設起點為(xis,yis),終點為(xie,yie),則 xi=(xi1,yi1,xi2,yi2,xie,yie,xis,yis),用X表示部首的各個筆劃之間的相對大小和 位置關系,設部首有l個樣本,我們建立新模型:

圖1 漢字生成系統結構圖

其中η為參數向量,它服從正態分布,即η~N(0,Λ),其中Λ是對角線為特征值的對角矩陣;ε=(ε1,…,εl)是誤差變量,也可以把它看作噪聲變量,它服從多維獨立分布,且若ηi>0,則εi~N(0,σ2),其中,若 ηi=0,則 εi=0,1 ≤ i≤l,且η和ε獨立,V是由特征向量組成的矩陣,這里假設它的列向量按特征值由大到小的順序排列,Vk是由V的前k個最大特征值對應的特征向量組成的矩陣。給定某一參數η,可以用最小二乘法,求使得下式最小的。

可以得到對應的部首中各個筆劃之間的相對大小和位置關系。
部首的統計模型由兩部分組成,第一部分是由在訓練樣本集上得到的部首的形狀統計模型,它在所有部首樣本上進行統計,而不是在各個風格子集上進行統計,因此得到的模型是對部首形狀的整體統計,表示部首的一般形狀,第二部分要用到測試樣本集中的信息,此部分建立在各個風格子集上,它研究同一部首在不同漢字中的關系,本文假設這個關系與風格無關,所以我們只建立第二部分的模型,我們運用PCA來研究這個問題。
假設要研究的部首為r,要研究的漢字為w1和w2,則要研究的關系是給定w1的部首r之后,求出w2的部首r.設訓練樣本集上的風格為S1,…,Sm,即訓練樣本集共有m個風格.設某一風格S的樣本子集中 w1,w2的樣本數分別為 k1,k2,其中 S表示 S1,…,Sm中的任一風格,r是由特征點表示的n維向量,漢字w1中的筆劃r記為r1,w2中的筆劃r記為r2,要研究r1和r2的關系,首先建立樣本對(r1,r2),顯然共有k1×k2個這樣的樣本對,然后對部首r的各個筆劃和部首中筆劃的相對大小和位置關系進行匹配,這通過仿射變換來完成。設Δr=r2-r1,則風格S共有k1×k2個樣本Δr,其中Δr包括兩部分,一部分式r對應筆劃的差另一部分式部首中筆劃的相對大小和位置關系的差。
對樣本集Δr進行PCA可得模型:Δr=μ+Ukb+ε,其中b是參數向量,它服從正態分布,即b~N(0,Λ),其中Λ是對角線為特征值的對角矩陣;ε是誤差變量,也可以把它看作噪聲變量,它也服從正態分布,即 ε ~ N(0,σ2I),其中,且 b和ε獨立。
設在風格Si下模型為,假設研究的關系和風格獨立,則Δr的統計模型如下:g(Δr)= ∫f(Δr|S)f(S)dS,這里假設各個風格的先驗概率相等,因為共有m個風格,所以設每個風格的概率為,則g(Δr)可近似表示為:

由此我們得到了統計模型g(Δr)。假設在訓練樣本集上得到的部首的整體形狀的模型為h(r),此處得到的部首模型仍然是由部首中的筆劃和筆劃之間的相對位置的大小模型組成,而KPCA和新模型不易求出在原樣本空間對應的形狀的顯示表達式,所以不能通過公式f(r)=λg(Δr)+(1-λ)h(r)來直接求出部首的統計模型,為此我們給出了新的解決方法如下:
通過抽樣給定模型h(r)和g(Δr)的參數,對于h(r),通過前面的方法,應用最小二乘法求出對應的形狀Xh;對于g(Δr),給定其中的參數后利用測試樣本中的部首的形狀就可以直接求出對應的形狀Xg,對Xh和Xg進行匹配,然后對匹配后的Xh和Xg進行線性插值,就可以得到最后的形狀,線性插值如下:

其中λ為參數,0≤λ≤1。
上面只考慮了測試樣本中只有一個漢字包含要研究的部首的情況,若測試樣本中還有一個漢字也包含要研究的部首,為此我們建立模型:

對于模型2.1,在極端情況下,當λ=0時,X=Xh,這對應于測試樣本數為零的情況,此時部首完全由訓練樣本學習得到;當λ=1時,X=Xg,這對應于測試樣不數非常大的情況,此時,可以通過直接學習測試樣本來求得部首的模型,通過這個模型可以解決兩個漢字包含要研究的部首的問題。
由各個部首組成單字的模型和由各個筆劃組成部首的模型類似,包括部首模型和部首之間的相對大小和位置模型兩部分,其中部首模型由上面表示,部首之間的相對大小和位置模型用KPCA表示.給定單字的統計模型以后,通過隨機抽樣就可以生成漢字。
本文在HCL2000漢字數據庫的基礎之上用Mathlab數學軟件進行實驗,樣本庫來自于文獻[5],它是三個人寫的樣本集。實驗中使用高斯核,在研究筆劃的形狀時,取σ=5,在研究筆劃之間的空間大小和位置關系以及部首之間的空間大小和位置關系時取σ=20。
本實驗通過學習其中兩個人的手寫漢字,并且給出第三個人的手寫漢字“把”,最后生成符合第三個人手寫風格的漢字“把”,實驗生成的圖像如下:

圖2 生成的漢字”把”
在上圖中得到了符合一定風格的漢字,這證明了本文提出模型的有效性。
下面是mathlab軟件實驗本文改進方法kpca的源代碼:




本文研究了手寫漢字自動生成的問題,建立了漢字的統計結構模型,再PCA和KPCA方法的基礎上給出了筆劃、部首和單字的統計模型,從而實現了漢字的生成,以后的工作主要包括形狀度量的建立和最終生成漢字的評價函數的建立兩個方面。
[1]Songhua Xu,F.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].中文信息學報,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.