从基于矢量的字体重建字符

Posted

技术标签:

【中文标题】从基于矢量的字体重建字符【英文标题】:reconstructing characters from vector-based fonts 【发布时间】:2012-04-16 23:55:53 【问题描述】:

我有一系列 ex-PDF 文档(科学/技术),其中字符编码为矢量图形而不是字体系列。如何使用开源解决方案将矢量流转换为字符?

我很高兴看到任何成功的解决方案。这些可能包括:

机器学习发现原始字体系列 将流写入画布并使用 OCR 基于笔画重构的启发式算法

这些字符可能相当“简单”(很多是无衬线的),我很乐意重构为 ANSI(字符 32-127)

更新:[供读者参考;不影响赏金]。 我一直在从一个示例中提取向量,这些向量由一个勾勒出字形的笔划组成,因此即使是简单的字形(例如“I”)也是“空心的”。我怀疑这通常适用于所有矢量字体。我已经验证了同一字符的多个实例具有相同的内部坐标,这可用于查找和区分字体(微小的差异将显示在小数位)。如果字体精确缩放,并且我们有字体的坐标(版权允许),那么查找它们的内部坐标是一种强大的方法。如果有人尝试过,我会很感兴趣。

【问题讨论】:

【参考方案1】:

您的问题指出了在未知格式和字体系列的上下文中将矢量编码转换为字符的最成功和最知名的解决方案。事实上,您所缺少的以及您所要求的只是一种重新编码流以获得任意(但希望是高)质量水平的解决方案。

让我们依次探索每种候选方法及其可能性:

    机器学习发现原始字体系列

    This paper 更详细地讨论了该主题。最常见的技术(reference)是构造一个简单的support vector machine 或执行Bayesian inference 来确定每个字符的分类。

    在spam detection 中,您发现这些技术最常见的应用领域是对电子邮件的完整正文进行目视检查,例如是否存在 ASCII 艺术或编码为图像内容的垃圾邮件。文档阅读的矢量化分类,在最初的通过之后就没有那么多了。

    将流写入画布并使用 OCR

    这是支持它的软件最常用的技术,因为最常见的用例是通过扫描的物理文档进行目视检查。这无法保留用于分类的矢量路径,而是依赖于页面上字形的字符识别。

    这里有几个免费的解决方案,包括OCR 4 Linux 和现在免费的tesseract-ocr。如需更完整的列表,包括功能比较,请参阅here。

    基于笔画重构的启发式算法

    在大多数情况下,这些都源自机器学习技术,并被编码到 OCR 或手写识别软件中。因为任意字符流的字符识别分类问题是inductive in scope,所以这些通常仅限于用于支持启发式的特定语言。

    这项技术certainly exists。它是currently in use 由Evernote 之类的工具提供的,它允许您免费(最多)上传您的文档并为您执行矢量分析。

由于在已知语言和可能已知的一组字体系列的上下文中第一种方法会耗费时间,我建议将 (2) 和 (3) 作为您的第一个停靠点。 最简单的方法是获取free Evernote account 并上传文档,纯粹是为了看看捕获了什么。

祝你好运。如果当前的技术水平不够,您可能有一个有用的极端案例值得为该领域做出贡献。 :)

【讨论】:

非常有用的概述和参考。我的实现可能会受到集成 OCR 的难易程度的影响(如果可能的话,我希望它使用 Java)。 @peter.murray.rust 很高兴为您提供帮助。您可能已经在探索它,但根据this thread 的说法,Java OCR 似乎是正确的起点。祝你好运! :) 我没有遇到过 JavaOCR - 这看起来像是我的工具包中很棒的一部分【参考方案2】:

将文档上传到 Google 文档。出现提示时,确保选中“上传设置”对话框选项“将文本从 PDF 和图像文件转换为 Google 文档”。 Google Docs Upload or download files 帮助显示 OCR 已针对 .jpg、.gif、.png、.pdf 文件类型完成。如果它不喜欢您的 PDF 格式,请在上传之前尝试将其转换为 .png 或 .gif。

注意:Google 的About Optical Character Recognition 页面提到“对于 PDF 文件,我们在搜索要提取的文本时只查看前 10 页。”

【讨论】:

抱歉 - 我要求开源解决方案,但 Google 不可接受

以上是关于从基于矢量的字体重建字符的主要内容,如果未能解决你的问题,请参考以下文章

图像重建基于matlab SIDER算法图像压缩重建含Matlab源码 2170期

图像重建基于matlab SIDER算法图像压缩重建含Matlab源码 2170期

图像重建基于matlab BP神经网络双基地SAR成像图像重建含Matlab源码 1950期

图像重建基于matlab卷积神经网络的图像超分辨率重建含Matlab源码 1816期

从 RTP 数据包重建图像

图像重建基于matlab主成分分析图像压缩重建含Matlab源码 1173期