雷鑫 李俊陽(yáng) 宋宇 賽琳偉
摘 要: 本文提出了一種手寫漢字文本的分割方法,填補(bǔ)了漢字識(shí)別領(lǐng)域在文本行分割方面的空白。本方法首先對(duì)預(yù)處理后的文本圖片進(jìn)行池化處理,然后運(yùn)用并查集算法得到每行為一個(gè)連通區(qū)域,最后調(diào)整每行上下的孤立區(qū)域的歸屬,最終把多行文本圖片分割為單行,為后期的漢字列分割做準(zhǔn)備。此方法雖然用行分割,但也為漢字的列分割提供了新的思路。
關(guān)鍵詞: 手寫漢字識(shí)別;池化;文本分割;并查集
Abstract:In this paper a text segmentation method for handwritten Chinese characters is developed which fills in the blank of text line segmentation in the field of Chinese character recognition. In this method the pretreatment of the text image is pooled. Then using the method of searching and collecting coarse segmentation of the pictures after the pooling step is processed and the result of the coarse segmentation is segmented by the calculation of the connected set. Finally the multi-line text picture is segmented into a single line to prepare for the later Chinese character segmentation. Although this method is used for row segmentation it also provides a new way for column segmentation of Chinese character text.
Key words: handwritten Chinese character recognition;pool;text segmentation;the method of searching and collecting
引言
漢字識(shí)別技術(shù)經(jīng)過(guò)長(zhǎng)期的發(fā)展已經(jīng)日趨成熟,無(wú)論是聯(lián)機(jī)漢字識(shí)別還是難度更高的脫機(jī)手寫漢字識(shí)別[1],其識(shí)別成功率均有較大的提升,并在相關(guān)的領(lǐng)域得到了一定的推廣應(yīng)用。作為漢字識(shí)別中的關(guān)鍵組成部分,漢字分割技術(shù)的進(jìn)展也將制約著漢字識(shí)別率的研究提升。能夠完整無(wú)誤地分割出整個(gè)漢字對(duì)漢字識(shí)別來(lái)說(shuō)尤為重要,這也是目前漢字識(shí)別技術(shù)攻關(guān)中的研究處理重點(diǎn)。
區(qū)別于字母、數(shù)字,漢字的結(jié)構(gòu)復(fù)雜,形式多樣,不同人的書(shū)寫習(xí)慣和選用字體也形色多樣,書(shū)寫起來(lái)多具有很大的隨意性,因此漢字分割較其它字符的分割也更顯難度。近年來(lái),學(xué)界已基于漢字識(shí)別技術(shù)研發(fā)提出了一系列的漢字分割方法。這些方法主要包括:基于漢字結(jié)構(gòu)的切分方法[2]、基于識(shí)別的切分方法[3]、基于詞的整體切分方法以及基于統(tǒng)計(jì)的切分方法[4]等。如上的漢字分割方法雖然對(duì)特定的漢字圖片獲得了可觀的成功率[5],但卻都各自存在著一定缺陷。例如基于結(jié)構(gòu)的切分方法中漢字筆畫的提取十分復(fù)雜,基于識(shí)別和詞整體切分方法又會(huì)產(chǎn)生效率與識(shí)別率雙重走低的問(wèn)題,而基于統(tǒng)計(jì)的切分方法則只適用于非黏連的漢字。綜上論述可見(jiàn),漢字分割依然是漢字識(shí)別技術(shù)中亟待解決的研究難題。
通常的漢字分割方法只是圍繞少量漢字或者單行漢字而展開(kāi)研究,對(duì)漢字文本分割的研究迄今為止仍屬罕見(jiàn)。眾所皆知,應(yīng)用到漢字識(shí)別的地方多數(shù)為大篇幅的文章和段落,因此只有先對(duì)文本實(shí)現(xiàn)行分割后才能再次轉(zhuǎn)入漢字分割,行分割是漢字分割的基礎(chǔ)。不同于印刷體干凈整齊的排布,手寫漢字往往由于人為原因而扭曲變形,每一行漢字并不能做到嚴(yán)格水平布置,從而產(chǎn)生傾斜和扭曲,甚至出現(xiàn)相鄰行的黏連現(xiàn)象,這都是不可避免的。如果用投影法或者連通域法[6]對(duì)文本進(jìn)行分割則無(wú)法處理相隔較近的行,對(duì)嚴(yán)重扭曲和黏連的文本也難以達(dá)到滿意的效果。
因此本文綜合了多種算法后,設(shè)計(jì)提出了一種新的分割方法。不同于以往傳統(tǒng)的漢字分割方法,該方法先用池化操作將漢字文本變換為大片的連通區(qū)域;再用并查集算法找出每個(gè)連通分支(往往是一行),這樣就初步分離出每一行;而后確定相鄰兩行之間的小塊連通區(qū)域的歸屬,對(duì)行引入微調(diào)處理,最終實(shí)現(xiàn)了文本的行分割。
1 預(yù)處理
為了方便后期的文本分割和識(shí)別研究過(guò)程,即要對(duì)漢字圖像進(jìn)行必要的預(yù)處理。本研究中對(duì)初期錄入的文本圖片,如圖1(a)所示,進(jìn)行了去噪聲、二值化等操作,得到了圖1(b)。經(jīng)過(guò)處理后發(fā)現(xiàn),圖片質(zhì)量得到了明顯的提升。
2 池化處理
如果對(duì)圖1(b)直接進(jìn)行分割顯然難度較大,文本中每行漢字并不是嚴(yán)格的水平排列,且相鄰兩行的漢字存在黏連的情況。因此研究采取了池化的方法對(duì)預(yù)處理后的文本圖片做更深層次的調(diào)整與加工。雖然一行可能有嚴(yán)重的傾斜,但一個(gè)小片段傾斜度往往很小,可以近似為水平。假設(shè)一個(gè)漢字的平均寬度是64,就可選取257*3大小的長(zhǎng)條形卷積核對(duì)整個(gè)圖片進(jìn)行掃描,得出的結(jié)果如圖2所示。從圖2中可以清楚地看到,一行漢字經(jīng)過(guò)池化后形成了一個(gè)連通的黑色區(qū)域,而相鄰兩行的黏連情況也被消除了,這樣就可以根據(jù)這個(gè)結(jié)果對(duì)每一行進(jìn)行提取,從而實(shí)現(xiàn)行分割的目的。
3 粗分割
3.1 并查集算法
并查集算法[7]可以高效地計(jì)算一個(gè)集合的連通分支。利用并查集中的合并算法,將圖2中處于一個(gè)連通域的黑色像素點(diǎn)并為一個(gè)集合,這樣就可以把不同的行區(qū)分出來(lái)。其中,每一個(gè)合并的集合就是一個(gè)列表,這個(gè)列表里包含了整個(gè)連通域的所有像素,而背景(本示例圖片為白色)也合并為一個(gè)集合。這樣就得到了許多不同的集合,這些集合包括每一行漢字、背景以及池化產(chǎn)生的噪點(diǎn)。這些噪點(diǎn)是由于漢字的某一部分在池化后脫離了本行而形成了一個(gè)單獨(dú)的連通域,如果簡(jiǎn)單地刪除會(huì)影響漢字的識(shí)別過(guò)程,因此在后續(xù)的操作中則需要將這部分噪點(diǎn)合并到其所在的行,從而將一行漢字完整地分割出來(lái)。
3.2 初步分割出行
并查集中的搜索算法可以查找某一個(gè)像素點(diǎn)所在的集合,根據(jù)這個(gè)特性可以從上向下對(duì)圖2中的像素點(diǎn)進(jìn)行掃描,從而找出圖中所有的集合(除了背景集合),再將這些集合整理并從上到下順次排序(包括噪點(diǎn))。通過(guò)觀察圖2可以發(fā)現(xiàn)那些噪點(diǎn)無(wú)論是長(zhǎng)度、還是寬度都遠(yuǎn)小于每一行,經(jīng)過(guò)一定條件的篩選就可以暫時(shí)剔除這些噪點(diǎn),這樣研究就初步分割出了每一行(不包括噪點(diǎn)),并按照原有位置從上到下得到了有序排列,具體如圖3所示,分割邊界用線條顯示。
4 細(xì)分割
如圖3所示,初步分割并不能將一行完整地分離出來(lái),有些漢字上部或者下部被截?cái)?,而這些截?cái)嗟臐h字部分在池化時(shí)被抹去或者形成了單獨(dú)的噪點(diǎn),在細(xì)分割的時(shí)候需要將這些部分還原到其所在的行中。在圖3的基礎(chǔ)上對(duì)每一行邊界向外(上邊界向上,下邊界向下)計(jì)算連通集,如果存在連通的部分則相應(yīng)地調(diào)整分割邊界,從而將截?cái)嗟牟糠职谠撔袃?nèi)。第一行的上邊界和最后一行的下邊界易于調(diào)整,其余的情況將大致分為3類,每一類的功能闡釋可見(jiàn)如下。
(1)修改上一行的下邊界。從每一行(除去最后一行)的下邊界處向下進(jìn)行連通集查找,直至下一行的上邊界處結(jié)束,如果存在連通的部分則修改本行的下邊界。若上下兩行有黏連情況,即上下兩行某部分連通在一起,則根據(jù)日常人們的書(shū)寫習(xí)慣將這部分歸于上一行。
(2)修改下一行的上邊界。從每一行(除去第一行)的上邊界向上進(jìn)行連通集查找,直至上一行的下邊界處結(jié)束,如果存在連通部分則修改本行的上邊界。
(3)確定兩行中間區(qū)域的歸屬。當(dāng)兩行中間的噪點(diǎn)既不與上一行連接、也不與下一行連接時(shí),通過(guò)確定閾值來(lái)判斷這些噪點(diǎn)與上、下兩行的位置關(guān)系,從而找出離噪點(diǎn)更近的行來(lái)設(shè)置合并。經(jīng)過(guò)修改后的分割邊界將每一行的漢字都完整地包含進(jìn)去,得到的行分割結(jié)果如圖4所示。例如第一個(gè)字“客”,該字下面的“口”在之前分割中被斷開(kāi),經(jīng)過(guò)這一步后,調(diào)整了下邊界為口的下方。類似地,“客”字上面的一點(diǎn)之前也在上邊界之外,現(xiàn)在重新修改了上邊界為點(diǎn)的上邊。這樣,“客”字完全落在第一行的紅色區(qū)域之內(nèi)。
5 結(jié)束語(yǔ)
手寫漢字文本相對(duì)于印刷體存在著扭曲、變形、黏連等現(xiàn)象。針對(duì)于這一狀況,本文提出了一種文本分割的方法,采用并查集算法和計(jì)算連通集的方法對(duì)池化后的文本圖片進(jìn)行處理,從而實(shí)現(xiàn)行分割的目的,有效應(yīng)對(duì)了文本扭曲和黏連的情況,對(duì)大量手寫漢字樣本進(jìn)行實(shí)驗(yàn)均達(dá)到了理想的分割效果。該方法也可用于一行漢字的列分割。
參考文獻(xiàn)
[1] 金連文. 手寫體漢字識(shí)別的研究[D]. 廣州:華南理工大學(xué),1996.
[2] 熊鵬. 漢字筆跡的筆劃提取[D]. 武漢:華中科技大學(xué),2008.
[3] 邵潔,成瑜. 關(guān)于手寫漢字切分方法的思考[J]. 計(jì)算機(jī)技術(shù)與發(fā)展 2006,16(6):184-186,190.
[4] 趙繼印,鄭蕊蕊,吳寶春,等. 脫機(jī)手寫體漢字識(shí)別綜述[J]. 電子學(xué)報(bào) 2010,38(2):405-415.
[5] 馬瑞,楊靜寧. 一種有效的手寫漢字多步分割方法[J]. 中國(guó)圖象圖形學(xué)報(bào),2007,12(11):2062-2067.
[6] 陳艷,孫羽菲,張玉志. 基于連通域的漢字切分技術(shù)研究[J]. 計(jì)算機(jī)應(yīng)用研究 2005(6):246-248.
[7] 曾志雄. 并查集的樹(shù)型存儲(chǔ)表示及優(yōu)化實(shí)現(xiàn)[J]. 現(xiàn)代計(jì)算機(jī) 2001(7):61-63.
[8] 楊峰,張黎,王立克,等. 二值圖像中基于連通集的濾波算法[J]. 山東師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,21(2):27-29.