朱欣蔚 楊長強
摘 要:中國書法藝術源遠流長,隨著計算機技術的發(fā)展,利用計算機進行書法識別成為可能。為使書法能夠在計算機中精確識別,書法筆畫的正確分割與提取必不可少。采用基于點到邊界方向距離(PBOD)的筆畫分割算法,對得到的分割筆畫結合原圖像構建無向圖,根據(jù)無向圖的連接區(qū)域最終組合成單獨的筆畫。采用200幅隨機書法字圖像進行實驗,結果表明筆畫提取的正確率達到95.35%,證明基于圖的書法字筆畫提取算法準確率高。該算法不僅能正確地對筆畫進行提取,而且很好地解決了復雜漢字存在多個筆畫交叉區(qū)域、在筆畫分割后混淆相似子筆畫的問題,提高了筆畫提取效率。
關鍵詞:PBOD;筆畫分割;無向圖;筆畫組合
DOI:10. 11907/rjdk. 191165
中圖分類號:TP317.4文獻標識碼:A文章編號:1672-7800(2019)004-0184-04
0 引言
提取筆畫信息是書法字識別和書寫風格分析的重要環(huán)節(jié)。筆畫提取主要有兩個問題:①如何解決交叉點的切分歧義問題;②對分割后的子筆畫正確組合。
筆畫提取研究很多[1-8],現(xiàn)有的筆劃提取方法大多采用細化過程。細化是骨架化輸入圖像最常用的方法,一般通過數(shù)學形態(tài)學算法[9]或Zhang快速并行細化算法[10]獲取書法字骨架,基于書法字骨架提取筆畫。劉佳巖等[11]通過細化筆畫初步提取進而得到筆順信息,章夏芬[12]等對筆畫細化后通過骨架爬蟲提取筆畫,還有如輪廓或線鄰接圖方法等。文獻[13]提出了一種利用漢字外輪廓特征點的方法。
然而,從骨架、輪廓或線鄰接圖中抽取筆劃各有各的問題,由于中國書法特殊的性質,這些方法可能是無效的。本文基于筆畫的基本性質提出一種書法筆畫提取方法,利用點到邊界的方向距離(point-to-boundary orientation distance,PBOD)[14]以及筆畫之間的連接關系構建書法筆畫的無向圖。
1 圖像預處理
1.1 圖像去噪
由于毛筆所含墨汁的狀態(tài),毛筆字在書寫過程中可能出現(xiàn)“小孔”或“毛刺”。此外,在書法字掃描成圖像過程中,可能會因為傳輸?shù)葐栴}產生噪聲,這些噪聲會對筆畫提取造成影響。因此,首先需要對書法圖像進行去噪。
本文采用中值濾波器去噪。用一個奇數(shù)點的滑動窗口遍歷圖像,把滑動窗口的中心對應到目標像素[15],用滑動窗口中所有像素值的中值代替目標像素的像素值,以此去掉不必要的“點”,實現(xiàn)降噪[16]。圖1、圖2為去噪前后的書法字圖像,從中可以看到許多墨點消失了,字體本身也更加平滑。
1.2 圖像二值化
在毛筆字書寫過程中,不同筆畫甚至同一筆畫的不同位置手部用力情況是不同的,毛筆字的各個部分墨汁深淺存在差異。本文使用直方圖法對圖像進行二值化,使圖像變?yōu)楹诎變缮?,具體方法為:把圖像中所有像素點的灰度值放進直方圖中,找到直方圖中的兩個波峰,選擇兩個波峰中的波谷作為閾值,大于閾值的像素點灰度值設為255,反之,設為0[17]。圖3是書法字圖像的直方圖以及閾值選擇,二值化結果見圖4。
1.3 提取字符邊界
提取圖像字符邊界采用邊界跟蹤算法。首先,從上到下、從左到右掃描整個圖像,找到第一個像素值為0的像素點,記為A0,并定義一個方向向量dir,用來記錄邊界點的移動方向,初始值為0。然后,按順時針方向遍歷當前像素的3×3鄰域,當找到與當前像素值相同的點時,記此點為A1,并更新dir。一直循環(huán)此步驟,直到當前點AN是A1且AN-1是A0時結束跟蹤[18]。此時,A0,A1,…AN就是字符邊界,把它們存放在一個數(shù)組中待使用。
2 交叉區(qū)域獲取
本文采用PBOD算法對筆畫交叉區(qū)域進行提取。PBOD算法的基本原理是根據(jù)圖像中每個像素點到字符邊界的距離將字符中的點分為端點、普通點和交叉點,這3類點又構成字符的端點區(qū)域、普通點區(qū)域和交叉點區(qū)域。具體做法為:把每一個像素點從0°~360°每隔3°計算這個方向上點到字符邊界的距離,這樣每個像素點就可得到120個數(shù)據(jù)。把得到的數(shù)據(jù)以X軸為度數(shù)、Y軸為距離畫出曲線圖。觀察曲線圖的波峰數(shù)目:波峰數(shù)為1此點為端點;波峰數(shù)為2此點為普通點;波峰數(shù)大于等于3此點為交叉點[19]。圖5、圖6是多個波峰和一個波峰的情況。
如圖7所示,圖5的多個波峰對應圖7中的交叉區(qū)域,圖6的單個波峰對應圖7中的端點區(qū)域。
3 筆畫提取
3.1 字符圖表示
以往的筆畫提取研究大多直接對所有子筆畫進行組合測試,以此判斷兩個子筆畫之間是否組成一個筆畫,比較復雜。本文采取對字符進行建模形成無向圖的方式,使一個子筆畫只同和它連接在同一個交叉區(qū)域的其它子筆畫進行組合測試,大大提高了效率和準確性。具體如下:
在使用PBOD算法找到所有交叉區(qū)域后,把交叉區(qū)域分開的端點區(qū)域和普通點區(qū)域看成一部分,則一個字符就由子筆畫和交叉區(qū)域兩部分組成。建立一個無向圖[G=][(V,E)]對每個字符建模,其中V和E是節(jié)點和邊的集合。G中每個節(jié)點v代表字符中的一個子筆畫或交叉區(qū)域[20]。如果一個交叉區(qū)域和一個子筆畫在字符中是相互連接的,則它們分別對應的節(jié)點vi和vj之間有一條邊ei,記為[(vi,vj)∈][E][21-22]。圖8、圖9為漢字“夫”構建的無向圖示例。
無向圖在計算機中以矩陣的形式存儲,矩陣行和列的數(shù)量為無向圖的節(jié)點數(shù)(即字符的子筆畫和交叉區(qū)域數(shù)),矩陣中每個元素的值表示節(jié)點之間的連接關系:若節(jié)點之間有邊連接,則對應的矩陣值為1;反之,則為0。圖9中無向圖矩陣表示為式(1)。
為了在筆畫組合過程中方便確定每個區(qū)域的位置和其對應的無向圖中的節(jié)點,對整個字符建立坐標系,以圖像左下角的點為坐標原點。取每個區(qū)域的重心表示該區(qū)域和該區(qū)域在無向圖中對應的節(jié)點[23],重心Ai(xi,yi)公式如下:
3.2 筆畫組合
在把整個漢字分成各個子筆畫區(qū)域后,需要對子筆畫進行組合進而形成一個個完整的筆畫,算法過程如下:
(1)對整張圖像遍歷,通常選取圖像左上角的子筆畫(圖8中的a區(qū)域),根據(jù)公式(2)得到的重心確定該子筆畫在坐標系中的位置和在無向圖中對應的節(jié)點(圖9中的節(jié)點a)。
(2)通過無向圖找到與該節(jié)點相連的節(jié)點(圖9中的c節(jié)點),即找到無向圖中該節(jié)點在存儲矩陣中所代表的行值為1的元素(矩陣(1)中第1行第3個元素)。之后再通過公式(2)得到的重心確定相連節(jié)點在字符中的位置(圖8中的c區(qū)域)。
(3)重復步驟(2),找到相連的節(jié)點(圖9中的b節(jié)點、d節(jié)點和j節(jié)點),確定其在字符中的位置(圖8中的b區(qū)域、d區(qū)域和j區(qū)域)。將這些區(qū)域根據(jù)無向圖的連接關系相連,分別作連續(xù)性分析(即把圖8中的a區(qū)域與c區(qū)域相連之后分別與b區(qū)域、d區(qū)域和j區(qū)域相連)。連續(xù)性分析方法:對相連的3個區(qū)域,計算中間區(qū)域像素的PBOD曲線,若PBOD曲線只有兩個波峰且波峰之間的度數(shù)相距大約180°,則這3個區(qū)域為同一個筆畫[24]。
(4)重復步驟(3)直到沒有與之相連的節(jié)點,至此組成了一個完整的筆畫(圖8中的a區(qū)域、c區(qū)域、j區(qū)域、g區(qū)域、h區(qū)域組成一個完整的筆畫)。
(5)返回步驟(1),繼續(xù)遍歷圖像,找到一個仍然沒有組成完整筆畫的子筆畫(如圖8中的b區(qū)域)。
(6)圖像中所有子筆畫都組合成了完整的筆畫(圖8中的a、c、j、g、h為一個筆畫,b、c、d為一個筆畫,e、g、f為一個筆畫,g、i為一個筆畫),結束遍歷。
4 實驗結果
為驗證本文算法的有效性,對一組漢字圖像進行一系列實驗。在Visual Studio 2017的平臺環(huán)境下,隨機選取一組不同藝術家書寫的200幅楷體書法字圖像作為實驗對象,進行預處理、交叉區(qū)域獲取和筆畫組合,結果共包含?? 1 285個交叉區(qū)域和2 276個筆畫,筆畫提取正確率達到95.35%。圖10為漢字“堵”的筆畫提取示例。
5 結語
本文利用無向圖對PBOD分割的子筆畫進行排列,在筆畫組合過程中只讓彼此相連的子筆畫進行筆畫組合,與筆畫分割后所有子筆畫進行組合相比,提高了筆畫組合的準確性,降低了筆畫提取復雜度。
雖然本文算法筆畫提取的準確性較高,但還需進行以下工作:本文算法目前只能對楷書這種較規(guī)范的字體進行筆畫提取,而對于草書等筆畫連綿、狂亂的字體在交叉區(qū)域的提取、無向圖的構建和子筆畫的組合上還有待完善,要解決這方面的問題很大程度上依賴漢字書寫的先驗知識。因此,對各種書法字體筆畫的提取是今后要研究的主題。
參考文獻:
[1] YU K,WU J,YUAN Z. Stroke extraction for chinese calligraphy characters[J]. Journal of Computational Information Systems, 2012,8(6):2493-2500.
[2] LAM J H M,YAM Y. Structural analysis based stroke segmentation for Chinese characters[C]. Proceedings of the IEEE Conference on Decision and Control,2009:3118-3123.
[3] LIU C L,KIM I J,JIN H K. Model-based stroke extraction and matching for handwritten chinese character recognition[J]. Pattern Recognition, 2001,34(12): 2339-2352.
[4] FAN K C,WU W H. A run-length coding based approach to stroke extraction of Chinese characters [J]. Pattern Recognition,2000,33(11):1881-1895.
[5] 李國宏,施鵬飛. 基于筆劃方向特征和非對稱分布的手寫體漢字識別[J]. 上海交通大學學報,2005,39(12):35-41.
[6] 程立,王江晴,李波,等. 基于輪廓的漢字筆畫分離算法[J]. 計算機科學,2013, 40(7):307-311.
[7] 錢自強. 基于圖像處理的毛筆書法參數(shù)化辨識研究[J].? 工業(yè)控制計算機,2016,29(9):124-125.
[8] 鄧學雄,李京陶,李牧. 毛筆書法臨帖的計算機評價[J]. 圖學學報, 2014, 35(6):899-904.
[9] 李杰,彭月英,元昌安,等. 基于數(shù)學形態(tài)學細化算法的圖像邊緣細化[J].? 計算機應用, 2012, 32(2):514-520.
[10] 吳選忠. Zhang快速并行細化算法的擴展[J].? 福建工程學院學報,2006,4(1):89-92.
[11] 劉佳巖,章夏芬. 基于書寫規(guī)則的書法字筆畫及筆順提取[J]. 微型機與應用, 2015, 34(15):51-54.
[12] 章夏芬,劉佳巖. 用爬蟲法提取書法筆畫[J]. 計算機輔助設計與圖形學學報,2016,28(2):301-309.
[13] MA X,PAN Z,ZHANG F. The automatic generation of Chinese outline font based on stroke extraction[J]. Journal of Computer Science & Technology,1995,10(1):42-52.
[14] TAN C L,CAO R. A model of stroke extraction from Chinese character images[C]. International Conference on Pattern Recognition, 2000.
[15] 王偉華. 基于機器視覺的表貼芯片缺陷檢測系統(tǒng)的研究[D]. 西安:西安建筑科技大學,2017.
[16] 張艷楠. 圖像處理中的中值濾波及其改進[J]. 中國新通信, 2018,20(2):230-231.
[17] 何春. 一種基于直方圖的圖像二值化算法[J]. 宜賓學院學報, 2016,16(12):53-55.
[18] 楊琦. 毛筆書法中筆畫的提取[D]. 青島:山東科技大學, 2015.
[19] 陳睿,唐雁,邱玉輝. 基于筆畫段分割和組合的漢字筆畫提取模型[J]. 計算機科學,2003, 30(10):74-77.
[20] 周昌樂. 一種手寫漢字拓撲圖表示及其動態(tài)獲取[J]. 計算機科學, 1996,23(5):60-62.
[21] WANG X,LIANG X,SUN L,et al. Triangular mesh based stroke segmentation for Chinese calligraphy[C]. International Conference on Document Analysis and Recognition, 2013.
[22] 朱程輝,曹敏,王建平. 基于過程神經網絡的漢字特征提取方法的研究[J]. 合肥工業(yè)大學學報:自然科學版,2013(10):1203-1209.
[23] 王民,曾寶瑩,要趁紅,等. 中國書法的特征提取及識別[J]. 信息通信, 2015(7):19-20.
[24] SUN Y,QIAN H,XU Y. A geometric approach to stroke extraction for the Chinese calligraphy robot[C]. IEEE International Conference on Robotics & Automation,2014.
(責任編輯:杜能鋼)