基于区域生长算法的汉字笔画统计与分析
2023-07-15蔡志伟奚海丹田云松
蔡志伟, 奚海丹, 田云松
(1.大连民族大学 a.计算机科学与工程学院;b.大连市汉字计算机字库设计技术创新中心,辽宁 大连 116605;2.沈阳开放大学,辽宁 沈阳 110003)
笔画是汉字的组成部分,研究汉字的组成结构等离不开笔画。统计汉字笔画的编码及笔画类别、笔画数量、各种笔画在字库中出现的频率等数据,对于基于笔画的汉字输入法和汉字的联机手写识别等方面具有重要的指导意义[1]。
汉字数以万计,是中华民族传统文化的核心和信息交流的主要工具。每个汉字不论简体或繁体都需要按照笔画顺序进行书写。因此,汉字的笔画及其笔顺对于汉字书写和设计至关重要。
1 研究现状
1.1 汉字笔画数据集构建研究现状
(1)汉字笔画数据集现状。林华[2]于2004年通过提取汉字笔画轮廓线抽取汉字笔画,实现计算机辅助汉字笔顺教学;吴建国等人[1]于2005年统计汉字笔画的相关信息并将其应用于标准键盘和数字键盘;导夫[3]于2013年按《汉字内码扩展规范》总笔画数进行排序、统计。
(2)图像分割现状。覃学标等[4]于2023年提出基于目标检测及边缘支持的鱼类图像分割方法;齐小祥等[5]于2021年提出基于边缘检测的SAR图像自适应区域分割;李建华等[6]于2022年提出基于Canny算子和距离正则化水平集的乳腺植入物图像分割算法。
1.2 现有汉字笔画数据集及其构建的不足
表1 汉字笔画种类示意图
(2)汉字笔画数据集中只含有总笔画数,未出现笔画细节及个数。现流行数据集大多只存储汉字编码、汉字字形、笔画总数以及笔顺等信息,丢失单个字形所含有的笔画类别及数量信息如图1。
图1 汉字笔画数据集示例
1.3 主要研究内容
采用文献[8]提出的汉字笔画分割数据集(Chinese character stroke segment dataset,CCSSD),对汉字笔画分割数据集进行笔画统计,由于CCSSD将笔画交叉区域划分为新一类,并且将所属横折折撇的两种写法如图2。记作两类,共计34类,在统计汉字笔画类别数量时,采用区域生长算法将交叉类归还给原笔画,根据连通域数量计算笔画类别,采用统计学方法对汉字笔画进行分析。
图2 横折折撇示例图
2 区域生长算法
区域生长算法是一种常用的图像分割方法,其核心思想是通过将具有相同性质的像素点逐步合并以实现图像分割的目的。在该算法中,首先针对每个区域指定一个种子点作为生长节点,然后将其周围的像素点与该种子点进行对比,将相似性质的像素点合并至同一区域,随后继续对新的像素点进行对比,直至该区域的生长完成。而当没有满足条件的像素点被包含进来时,该区域的生长也即告结束。具体步骤见表2。
表2 区域生长算法步骤
3 基于区域生长算法的汉字笔画统计
本文采用应用于图像分割的CCSSD数据集,利用其灰度图像,不同笔画类别以不同灰度进行标注,笔画交叉区域作为第34类,采用区域生长算法,从每个笔画类别入手,采用八邻域搜索,判断周围是否拥有笔画交叉区域,若有将其归属于一类,判断结束,根据连通分量进行统计笔画数量并保存。具体流程如图3。
图3 基于区域生长算法的笔画统计流程
区域生长算法的好坏取决于:1.初始点(即种子节点)的选取;2.生长准则;3.终止条件。为了提高算法的准确性,本算法采用每个笔画类别的第一个像素值的位置作为种子节点,将相同类别和交叉类别作为生长准则,若无相同笔画类别或交叉笔画,则终止生长。
假设采用如图4,大小为5×5的图像矩阵,以7作为种子节点,像素生长准则为7或9,按照区域生长算法对该图像进行分割。
图4 图像矩阵
采用八邻域搜索方式加快查找速度,生长区域为7或9,第一次生长结果如图5。第二次生长如图6。
图5 第一次生长结果
图6 第二次生长结果
第三次生长可见周边邻域内没有满足生长条件的像素点,故停止生长,至此,将生长区域标记为1,未生长区域标记为0,分割结果如图7。
图7 分割结果图
4 实验结果与分析
标准宋体“安”字按照灰度图分割所得笔画如图8,方正兰亭黑“安”字分割所得笔画如图9。可以看出,算法适用于不同种类字体,且对于连通分量计算笔画个数更为准确。
图8 标准宋体“安”笔画示意图
图9 方正兰亭黑“安”笔画示意图
此外,本文采用连通域统计,计算各汉字各笔画种类数量,并按照GB2312编码顺序将其包含的6 763个中文汉字进行编码分析,由于横折折撇有两种写法,但是同一个unicode编码,故将这两种归属于横折折撇类,6 763个中文汉字共计32个种类,笔画编号、类别及编码见表3,其中每个含有该32个种类的汉字数量见表4。
表3 笔画基本信息表
表4 含有32个笔画的汉字数量
统计各种类笔画总数量占比如图10。基于笔画的汉字输入法键盘设计具有重大意义,从图10可以看出,横、竖、撇、点、横折占比最多,说明字体设计中这五种作为常用笔画。
图10 笔画总数量占比
字库中包含某笔画的汉字数量见表4。可以看出点、横、撇、竖、提作为基本笔画,应用广泛。
本文构建新数据集下载网址:https://github.com/caixiaocai1234/glyph。
5 结 语
构建汉字笔画数据集对于汉字的拼接组成具有重大意义,使用区域生长算法将交叉域归还原笔画,提高了笔画数量计算的准确率,同时小笔画数据集构建有助于提高字体设计师设计效率,统计常用小笔画分类有助于笔画键盘布局设计。笔画往往与笔顺相关联,对于小笔画分类的笔顺分布还少之又少,如何利用算法进行小笔画笔顺分布以减少人力和时间,是当下主要研究之一。