一種面向矢量字形的漢字筆畫自動(dòng)提取方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種矢量字形的漢字筆畫自動(dòng)提取方法。更具體地說(shuō),涉及到一種非 剛性點(diǎn)集注冊(cè)方法,并使用點(diǎn)集注冊(cè)的結(jié)果提出一種提取矢量漢字筆畫的算法,從而完成 對(duì)矢量字形的筆畫自動(dòng)提取,屬于計(jì)算機(jī)圖形學(xué)和圖像處理技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 漢字是一種古老的文字,擁有著近五千年的悠久歷史。在漢字的發(fā)展演化過(guò)程中 出現(xiàn)了多種多樣的字體,在計(jì)算機(jī)發(fā)展的早期,漢字字庫(kù)僅包含黑體、宋體、楷體和仿宋等 幾種有限的字體。隨著計(jì)算機(jī)技術(shù)的發(fā)展和網(wǎng)絡(luò)的普及,人們對(duì)于不同字體的需求越發(fā)迫 切。
[0003] 目前制作一套字庫(kù)主要有兩種方法:一種是由人工完成整個(gè)字庫(kù)集的書(shū)寫,然后 對(duì)字形進(jìn)行掃描和處理,存儲(chǔ)到字庫(kù)中;另一種是由人工來(lái)設(shè)計(jì)出每個(gè)漢字的字形,存儲(chǔ)到 字庫(kù)中。制作一款字庫(kù)大約需要2-3人年,效率較低。所以自動(dòng)化的字庫(kù)生成方法成為當(dāng) 今漢字技術(shù)研宄者的一個(gè)重要課題。
[0004] 自動(dòng)化生成字庫(kù)基于漢字具有結(jié)構(gòu)化的性質(zhì),即漢字字形由筆畫和部件構(gòu)成,相 同的筆畫和部件經(jīng)過(guò)拼組可以形成不同的漢字。通過(guò)對(duì)一小部分漢字進(jìn)行筆畫提取,可以 使用算法拼組生成整個(gè)漢字字庫(kù)。可見(jiàn)筆畫提取是自動(dòng)化生成字庫(kù)的一項(xiàng)關(guān)鍵技術(shù)。
[0005] 目前現(xiàn)有的筆畫提取方法都是基于圖像的漢字筆畫提取。而我們知道,字形存儲(chǔ) 的演化是從圖像字形發(fā)展到圖形字形,使用Bezier曲線來(lái)表示字形有著更高的精確度以 及更靈活的存儲(chǔ)及處理方式。如果將現(xiàn)有的研宄成果優(yōu)化整合到基于圖形的字體,應(yīng)能取 得更加精確理想的實(shí)驗(yàn)結(jié)果。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的在于提出一種面向矢量字形的漢字筆畫自動(dòng)提取方法,可以有效地 針對(duì)輸入的矢量字庫(kù)提取出每個(gè)字形的高質(zhì)量的筆畫。同時(shí)點(diǎn)集注冊(cè)為該算法的一個(gè)核心 步驟,針對(duì)這一問(wèn)題,本發(fā)明提出了基于結(jié)構(gòu)信息的非剛性點(diǎn)集注冊(cè),從而有效提高了點(diǎn)集 注冊(cè)的精確度。
[0007] 為了實(shí)現(xiàn)上述目的,本發(fā)明提出的一種面向矢量字形的漢字筆畫自動(dòng)提取方法, 主要包括以下四個(gè)步驟:
[0008] 第一步,對(duì)待提取的目標(biāo)字形(在后文中簡(jiǎn)稱"數(shù)據(jù)字",其對(duì)應(yīng)的骨架點(diǎn)集和輪 廓點(diǎn)集簡(jiǎn)稱"數(shù)據(jù)點(diǎn)集"和"數(shù)據(jù)輪廓")以及模板數(shù)據(jù)庫(kù)(如楷體、行楷等)中與其相對(duì)應(yīng) 的帶有筆畫歸類信息的模板字形(在后文中簡(jiǎn)稱"模板字",其對(duì)應(yīng)的骨架點(diǎn)集和輪廓點(diǎn)集 簡(jiǎn)稱"模板點(diǎn)集"和"模板輪廓")進(jìn)行骨架提取。該步驟執(zhí)行完畢后,得到兩個(gè)點(diǎn)集,即數(shù) 據(jù)點(diǎn)集和模板點(diǎn)集。
[0009] 第二步,將數(shù)據(jù)點(diǎn)集、模板點(diǎn)集以及模板點(diǎn)集的筆畫歸屬關(guān)系作為基于結(jié)構(gòu)信息 的非剛性點(diǎn)集注冊(cè)算法的輸入,注冊(cè)完畢后得到數(shù)據(jù)點(diǎn)集的筆畫歸屬關(guān)系。也就是說(shuō),在此 步執(zhí)行完畢后,目標(biāo)字的骨架被劃分成了若干子集,每個(gè)子集包括若干骨架點(diǎn)。
[0010] 第三步,將數(shù)據(jù)點(diǎn)集的筆畫歸屬關(guān)系轉(zhuǎn)換成數(shù)據(jù)輪廓段的歸屬關(guān)系,該步驟完成 后,對(duì)于構(gòu)成字形輪廓的每一個(gè)輪廓段,都有了相應(yīng)的歸屬筆畫。但是對(duì)于每一個(gè)筆畫所對(duì) 應(yīng)的輪廓段,它們是間斷不閉合的,這就需要一個(gè)算法對(duì)每個(gè)離散的輪廓段集合進(jìn)行閉合 操作。
[0011] 第四步,閉合第三步生成的輪廓段,從而得到最終的筆畫提取結(jié)果。
[0012] 下面具體說(shuō)明上述第一步至第四步的實(shí)施過(guò)程。
[0013] 1.第一步中的骨架提取方法
[0014]該步驟優(yōu)選使用參考文獻(xiàn)(TYZhangandChingY.Suen,"Afastparallel algorithmforthinningdigitalpatterns, "CommunicationsoftheACM,vol. 27,no .3,pp. 236 - 239, 1984.)中的并行連通性保持骨架提取算法進(jìn)行骨架提取。需要注意的 是,該步驟也可以使用其他骨架提取算法,例如參考文獻(xiàn)(Arcelli,Carlo,DiBaja,and GabriellaSanniti.〃Awidth-independentfastthinningalgorithm."Pattern AnalysisandMachineIntelligence,IEEETransactionson4(1985) :463-474.)中的 寬度獨(dú)立細(xì)化算法,以及參考文獻(xiàn)(Holt,ChristopherM.,etal.〃Animprovedparallel thinningalgorithm."CommunicationsoftheACM30. 2(1987): 156-160.)中的優(yōu)化并行 細(xì)化算法等。
[0015] 2.第二步中基于結(jié)構(gòu)信息的非剛性點(diǎn)集注冊(cè)算法
[0016] 基于結(jié)構(gòu)信息的非剛性點(diǎn)集注冊(cè)算法是基于參考文獻(xiàn)(AndriyMyronenkoand XuboSong,"Pointsetregistration:Coherentpointdrift,''PatternAnalysisand MachineIntelligence,IEEETransactionson,vol.32,no.12,pp.2262 - 2275,2010.)中 提出的點(diǎn)集一致性移動(dòng)算法(CoherentPointDrift,CPD)的一種改進(jìn),原始的CPD算法在 期望最大化(ExpectationMaximization,EM)算法迭代收斂之后會(huì)使得目標(biāo)函數(shù)取得最小 值,迭代收斂后算法達(dá)到的狀態(tài)是模板點(diǎn)集達(dá)到全局最優(yōu)的一種狀態(tài)。但是事實(shí)上在大多 數(shù)時(shí)候點(diǎn)的位置更多的會(huì)受到局部點(diǎn)的影響。直觀地說(shuō),迭代收斂時(shí)對(duì)于每個(gè)局部的點(diǎn)集, 其狀態(tài)并不一定是最優(yōu)的。
[0017]為了解決上述問(wèn)題并將結(jié)構(gòu)化信息加入到原始cro算法中,本發(fā)明提出了兩方面 的解決方案。首先,對(duì)吸引力矩陣G進(jìn)行優(yōu)化,加入局部化優(yōu)化算子(LocalizedOperator, L0),這樣可以保證點(diǎn)在移動(dòng)的過(guò)程中更多地受到結(jié)構(gòu)化分類內(nèi)部的點(diǎn)的影響,而盡可能地 忽略分類以外的外圍點(diǎn)的影響。具體來(lái)講,在原始cro算法中,矩陣G是一個(gè)M*M的矩陣, 該矩陣可以使用下式來(lái)計(jì)算:
[0018]
[0019]其中yi表示第i個(gè)數(shù)據(jù)點(diǎn),0為歸一化參數(shù)。加入局部化優(yōu)化算子后的吸引力矩 陣可以由下式來(lái)計(jì)算:
[0020]
[0021] 其中、表示了第i個(gè)點(diǎn)和第j個(gè)點(diǎn)的歸屬關(guān)系,若兩點(diǎn)屬于同一子集,則1 ^為1, 否則為0。
[0022] 之后加入局部化的點(diǎn)集匹配,從而將原始cro算法的全局迭代和本發(fā)明提出的局 部迭代相結(jié)合,形成一個(gè)綜合性的基于迭代的點(diǎn)集注冊(cè)算法,本發(fā)明稱之為SGcro算法。
[0023] 基于上述優(yōu)化思路,得到如圖1所示的算法基本流程圖。輸入的為兩個(gè)點(diǎn)集(深 灰色代表數(shù)據(jù)點(diǎn)集,淺灰色代表模板點(diǎn)集),首先對(duì)輸入的兩個(gè)點(diǎn)集進(jìn)行帶有局部化優(yōu)化算 子的一致性點(diǎn)集移動(dòng)算法(CoherentPointDriftwithLocalizedOperator,CPDL0),該 過(guò)程是全局范圍內(nèi)的點(diǎn)集注冊(cè)。注冊(cè)完畢后可以根據(jù)歸屬矩陣P中的信息得到數(shù)據(jù)點(diǎn)集的 初次劃分結(jié)果。然后針對(duì)每一個(gè)子集執(zhí)行局部帶有局部化優(yōu)化算子的一致性點(diǎn)集移動(dòng)算法 (LocalizedCoherentPointDriftwithLocalized0perator,LCPDL0),該過(guò)程是局部的 點(diǎn)集注冊(cè)。注冊(cè)完成后返回全局注冊(cè),直到迭代收斂得到最終的注冊(cè)結(jié)果退出循環(huán)。
[0024] 對(duì)于非剛性點(diǎn)集注冊(cè),本發(fā)明還可以使用參考文獻(xiàn)(ZhengyouZhang,"Iterative pointmatchingforregistrationoffree-formcurvesandsurfaces,''International journalofcomputervision,vol. 13,no. 2,pp. 119 - 152, 1994.)中提到的迭代點(diǎn)集注冊(cè) (ICP)算法或者參考文獻(xiàn)(HailiChuiandAnandRangarajan,"Anewalgorithmfor non-rigidpointmatching,"inComputerVisionandPatternRecognition, 2000. Proceedings.IEEEConferenceon.IEEE, 2000,vol. 2,pp. 44 - 51.)中提到的TPS-RPM算法 或其他常用點(diǎn)集注冊(cè)算法來(lái)實(shí)現(xiàn)。
[0025] 3.第三步中將數(shù)據(jù)點(diǎn)集的歸屬關(guān)系轉(zhuǎn)換成數(shù)據(jù)輪廓段的歸屬關(guān)系的方法
[0026] 對(duì)于每一個(gè)輪廓段的起始點(diǎn)S和終止點(diǎn)E,使用最近鄰方式計(jì)算出其第一歸屬S1、 E1以及第二歸屬S2、E2。第一歸屬是指距離當(dāng)前點(diǎn)最近的骨架點(diǎn)所對(duì)應(yīng)的歸屬,第二歸屬 是指和第一歸屬不同并且距離當(dāng)前點(diǎn)最近的骨架點(diǎn)所對(duì)應(yīng)的歸屬。這樣可以得到一個(gè)輪廓 段歸屬的候選集合{Sl,S2,El,E2}。然后對(duì)輪廓段歸屬候選集合進(jìn)行一次遍歷,計(jì)算每一 個(gè)歸屬筆畫中的骨架點(diǎn)到兩個(gè)端點(diǎn)距離和的最小值,使用該最小值所對(duì)應(yīng)的筆畫歸屬作為 當(dāng)前輪廓段最終對(duì)應(yīng)的筆畫歸屬。
[0027] 該算法的具體執(zhí)行流程如圖3所示。對(duì)于左圖中深色圈中的筆畫段計(jì)算其兩個(gè)端 點(diǎn)分別對(duì)應(yīng)的第一和第二歸屬,從而得到可能歸屬的筆畫候選集合為{筆畫a,筆畫b,筆畫 c},中圖表示對(duì)每個(gè)候選筆畫計(jì)算骨架點(diǎn)到兩個(gè)端點(diǎn)的距離,可以明顯看出筆畫b所對(duì)應(yīng) 的距離是最短的,故最終該輪廓段的歸屬為筆畫b,如右圖所示。
[0028] 4.第四步中對(duì)輪廓段集合進(jìn)行閉合操作的方法
[0029] 首先定義筆畫所對(duì)應(yīng)的輪廓段集合為S,集合中每一個(gè)元素代表一個(gè)離散的輪廓 段。
[0030] 第一步,對(duì)于集合S中每一個(gè)輪廓段的兩個(gè)端點(diǎn),構(gòu)成筆畫端點(diǎn)集合E,E中元素個(gè) 數(shù)應(yīng)為S中元素個(gè)數(shù)的二倍。
[0031] 第二步,計(jì)算集合E中不同端點(diǎn)兩兩之間的距離,構(gòu)造出端點(diǎn)的距離矩陣M。
[0032] 第三步,根據(jù)啟發(fā)式規(guī)則對(duì)M中兩兩點(diǎn)之間的距離進(jìn)行更新。啟發(fā)式規(guī)則主要基 于以下三點(diǎn)規(guī)律:
[0033]a)若兩點(diǎn)位于同一個(gè)輪廓段,則它們之間的距離增大2000_3000(該數(shù)值表示輪 廓段連接時(shí)的權(quán)重降低程度,數(shù)值越大兩點(diǎn)之間連接的權(quán)重越小),如圖4 (a)所示,每個(gè)端 點(diǎn)應(yīng)該和