[论文阅读] Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation
1. Pre
title: Design and Development of a Framework For Stroke-Based Handwritten Gujarati Font Generation
source: arXiv2024
paper: https://arxiv.org/abs/2404.03277
code: None
关键词: font generation, handwritten, gujarati, stroke
阅读理由: 刷新鲜论文ing
2. Motivation
针对古吉拉特语(印度22种官方语言与14种地区性语言之一)的字体生成研究相对较少;古吉拉特语结构独特且复杂,现有的针对其他语言的方法不能直接应用。
3. Idea
通过分割字符的笔画并组合得到相同风格的其余文字,手工成分很大。
4. Background
创建能够体现用户写作风格关键元素的手写字体是一项艰巨的任务,特别是在字符集较小的语言,如英语(仅包含26个字母)中。有许多字体开发工具可用,如FontForge[2]、Calligrapher、Font Creator[3]、FontLab[4]等。这些工具只需要输入26个字母,就能迅速生成符合用户要求的完整字体。
这段很迷,字符集较小的语言不是更容易生成吗
当前字体生成领域的研究主要集中在阿拉伯语[2-11]、中文[12-27]、拉丁语(英语和西班牙语)[28-37]、孟加拉语[38-40]、日语[41-43]、韩语[44-46]和印度语(Indian)[39,47-49]等语言。
手写合成有多种应用,如实时在线修正的可编辑手写文件、文档数字化、修复历史文档、字体图形、验证码生成(Editable handwritten files with real-time inline correction, document digitization, historical documents repairing, font graphics, captcha generation)等[1]。此外,它对法医鉴定人员、残疾人和致力于手写识别系统研究的人员也有帮助[19]。
手写合成方法主要分为运动模拟(movement simulation)和形状模拟(shape simulation)两种。运动模拟方法利用神经肌肉手部运动来模拟书写,考虑了书写技巧、手部运动和笔压作为特征,最终用于描述笔迹的弯曲度[26]。相比之下,形状模拟方法则使用形状和弯曲度来模拟书写,具有生成和连接两个阶段。在生成阶段,需要从足够样本中提取统计信息,最终创建新的模型[8,9,45,50-52,28-33,38,41];连接是一种基于融合的技术,通过混合两笔或更多笔画来生成新的笔画[13,20-27]。
写的什么勾八,一会phrase一会approach。后面引用也引错了,讲的中文生成引了篇阿拉伯语的,感觉文章质量很低。
5. Method(Model)
5.1. Overview
图1 古吉拉特手写体生成框架
学习阶段分析古吉拉特语文字,为每个字符设计规则,以基于笔划的方式连接笔划,确保生成的字形的视觉一致性。
生成阶段需要用户在纸上写好一小部分字符(约占8%),手写字符样本导入系统进行字符分割,对每个分割的字符进行笔画提取和标注,系统根据提取的笔划和学习的规则自动生成剩余的字形。
最后使用FontForge工具将生成的字形转换为开放式字体(open-type)。
5.2. LEARNING PHASE
图2 用于生成目标字符的带有类标签的笔画
为输入字符和目标字符集所有必要的信息进行标注,如大小、位置、断开组件之间的距离、高度、宽度、连接点和端点数量。图2展示了用到的笔画,每个笔画具有两个关键参考点,标记为A和B,它们用于确定所需的笔画。
表1 用于确定规则集的特征及其描述
特征 | 类型 | 简称 | 描述 |
---|---|---|---|
位置 | 标准 | POS | 字符中笔画的位置 |
出现次数 | 标准 | OCC. | 字符中笔画出现的次数 |
大小 | 标准 | S | 笔画大小:相同或需要改进 |
连接点 | 标准 | JP. | 两笔相交的点 |
两笔间距离 | 可变 | DS. | 两笔间的距离 |
笔画呈现 | 可变 | AP. | 笔画的呈现方式:相同或需要翻转或旋转 |
ruleset preparation 规则集用于生成相应字符的字形。在构建规则集时,我们为所有目标字符固定了一些标准特征,同时也根据字符需求考虑了一些可变特征。标准特征包括笔画的位置、笔画的出现次数、笔画的大小以及连接点。可变特征则涉及笔画间的距离和笔画的呈现方式。详细特征描述见表1。
作者似乎想通过组合笔画的方式来构建字形,这么看古吉拉特语有点韩语的那种组装的感觉,为此对于输入字符和目标字符都需要一个规则集。每个规则集记录了其中每个字形的构建规则。作者举例 ક, ટ, ડ 这种字符它们的笔画连接点就是笔画的端点,很好识别;而 ય, વ, ઘ, ધ 等字符的连接点则必须通过统计分析得到,例如 ય 由两个笔画: 'ta-shape' (ટ) 和 'line' (ા ) 构成,连接点需要根据各个 'ય' 样本抽取的结果来决定。
研究发现,大多数字符只需要一条规则,但对于字符 ઝ, ચ, ઠ, ઢ, સ 需要两条规则。
5.3. GENERATION PHASE
5.3.1. selecting input character set
关键问题在于确定用户要书写的字符数量。研究中使用 ક, ખ, ગ 构成的字符集,用到6个基础笔画。
5.3.2. stroke extraction
图3 在少量字符上笔画分割形式的结果
通过识别端点和交点,从细瘦(thinned,估计是关键,后面要用于形态学操作)二值化图像中提取字符笔画。交点发生在一个像素连接超过两个邻居时,据此作者用hit-or-miss操作搭配4个T-连接、7个Y-连接和7个十字连接(3x3结构模板, +, x)来找出端点。将找出的端点从图像里去掉,得到不相连的图像。再使用连通组件方法从这些不相连的图像中提取笔画,直到每个笔画只有两个端点。提取的笔画如图3所示,展示了笔画提取过程的结果。
5.3.3. stroke preprocessing
图4 用于细化过程的12种不同方向的3x3模板
每个分割的笔画被调整为 28x28 大小,然后进行二值化、灰度处理、腐蚀和膨胀。使用Otsu阈值法进行二值化。使用Zhang Suen算法进行细化,生成一像素宽的细化图像。最后,图像在每个方向上填充一像素,得到 30x30 的图像。
但也提到Zhang Suen算法并不能保证细化结果是一像素的图像,为此提出了个 adaptive thinning,依然是利用3x3的模板进行处理,如图4所示。
5.3.4. feature extraction and feature vector generation
图5 1)检测端点的模板及其特征代码;2)线性元素的 模板及其特征代码:a)水平线,b)垂直线,c)右斜线,d)左斜线;3)曲线元素的模板及其特征代码。
考虑九种特征,包括端点、4种线性元素(垂直、水平、正斜线和负斜线 (vertical, horizontal, slant line with positive and negative slope))以及4种曲线元素(左平、左深、右平、右深 (left flat, left deep, right flat, right flat))。大概讲用模板继续匹配笔画图片,根据匹配结果为每个像素分配一个独特的特征码(feature code, fcode),如图5所示。然后将特征码矩阵按6x6分成25块(30x30的图片怎么tm能分成25块的6x6?),每块进行归一化,然后分配一个数字(跟其中的特征码取值有关),这25个值就是笔画特征。
5.3.5. strokes classification
表2 使用不同分类器的笔画分类测试和验证准确率
表3 不同分类器在各类别上的平均准确率
图6 不同分类器上的笔画分类准确率
作者实施了多种分类器,如决策树(Decision Tree)、支持向量机(Support Vector Machine)、K近邻(KNN)、梯度提升(Gradient Boost)、逻辑回归(LogisticRegression)、朴素贝叶斯(Naive Bayes)和随机森林(Random Forest),来评估特征向量的性能。
使用了一个包含600个不同样本的数据集。每个样本包含一个大小为26的特征向量,包含25个特征数据值和1个类别标签(在分类上下文中,特征向量数据由矩阵的前25列表示,而类别标签由最后一列表示)。为了确保公正的评估,我们为每个类别将数据集划分为训练和测试样本。
根据实验,选择的特征成功捕捉了笔画模式的独特特征,从而实现了准确的分类结果。作者似乎想通过这个实验证明特征选择的有效性。
5.3.6. character generation
图7 根据用户手写提取的笔画生成古吉拉特语文字
图8 从字符 ક, ખ, ગ 抽取的笔画生成的古吉拉特语字符
字符生成过程首先根据给定字符选择合适的笔画,再根据预设规则进行放置和对齐。每个笔画的位置由其在字符中的特定角色及其与其他笔画的关系决定。一旦笔画定位好,就将它们连接起来形成完整的字符。图7展示了这一阶段的笔画连接和字符生成概念。
作者简化了古吉拉特语字符的生成流程,用户仅需书写三个字符: ક, ખ, ગ ,从这三个字符中,提取六条笔画。按照预设规则组合这些笔画,可以生成另外23个辅音,如图8所示。生成算法从预设的规则集中收集所需笔画的详细信息,如高度、宽度、连接点、位置、大小、外观和频率,并通过拼接组合生成所需字符的字形。
5.3.7. font generation
图9 生成的用户手写古吉拉特字体的示例
将字符生成为图像后,下一步是将图像转换为轮廓图像(outline image),实质上是创建计算机字体。这一转换通过FontForge工具[56]自动化完成,它是一款开源程序,能够以多种标准格式创建和修改字体。利用特定用户生成的样本,成功使用FontForge工具生成了30种不同的字体文件,如图9所示。
6. Experiment
6.1. Dataset
TDIL的标准手写古吉拉特语数据集[25],规则集基于笔画连接点、方向、大小和出现频率等特征设计。
6.2. Results
图10 HGFG系统字符级生成准确性的视觉表示
图11 HGFG系统生成字符的识别率
图12 HGFG模型评价比较:识别系统与用户参与
手写古吉拉特语字体生成(handwritten gujarati font generation, HGFG)框架采用了两种不同的评估方法:主观评估和客观评估。
主观评估通过用户研究进行,参与者对合成的图像和字体的品质和视觉吸引力提供了反馈。他们的意见有助于评估生成内容的整体性能和用户对生成内容的感知。对应图10(大概)
客观评估则量化了生成字体的特定方面,如笔画精确度、曲线度和与原始手写字符的整体相似性。大概就是用OCR方法去识别生成结果然后展示识别准确率,对应图11(大概)
7. Conclusion
本研究旨在通过HGFG方法创建手写古吉拉特语字体,该方法分为学习和生成两个关键阶段。在学习阶段,分析古吉拉特语辅音字符的视觉特性,并制定了基于笔画的生成规则集,包含六个基本笔画。生成阶段包括预处理、分割、分类、字符和字体生成以及验证。
未来研究应聚焦于优化和进一步发展该框架,解决字符中出现的额外噪声、组件连接错误以及不平滑的尖锐曲线等问题。此外,将研究范围扩展到生成完整的古吉拉特语字体,包括元音、数字、变音符号和特殊符号,将是未来研究的有价值方向。
8. Critique
非常粗糙的论文,里面还拼命引自己之前的一篇工作,观感很差。图片分辨率太低,表格做得一坨。内容排版也是一坨,字母数字罗马数字混着用,双栏却都很窄,什么印度NIPS。
实际性能没有与其他方法比较,总体来看应该算是非机器学习方法吧,只用到了传统视觉的形态学操作处理图片,但核心的规则和所需特征的统计好像是纯手工啊?