字体ID算法如何工作?

时间:2014-04-13 04:53:33

标签: algorithm fonts

我想知道自动字体识别服务(如WhatTheFont,而不是基于问题的服务,如Identifont)是如何工作的。最基本的变体是允许您上传包含文本的图像的服务,该服务返回所用字体的名称。这是如何完成的,如何以实际的速度完成?我对这种事情还很陌生,但到目前为止我的理解是这样的:

  • 也许有些预处理可以减少噪音。我对这部分不是特别感兴趣。
  • 首先,图像通过OCR运行以提取文本 - 足够简单。
  • 然后,您浏览数据库中数十/数十万的每种字体,并在每个字体中渲染您提取的文本,看它是否接近原始文本。调整大小,对齐,字距调整,不同重量或斜体等。这可能如何快速实用?

这是对的吗?

请提供一些有关如何完成此操作以及如何有效完成的信息。

1 个答案:

答案 0 :(得分:3)

让我们假设您在光栅表示中进行匹配(而不是在矢量化轮廓上)。

实际上,应首先识别文本以减少与参考字体中的字符进行比较的次数;在这个阶段,重要的是避免任何可疑的承认,因为这会造成严重破坏。

然后需要一个标准化阶段:您可以将字符位置,大小(以及可能的斜体角度?)转换为标准边界框,以便逐像素比较成为可能。然后计算量将与字符的面积乘以参考字体的数量成比例。

请注意,大小的标准化并不完全准确,因为大字符缩小与一些细节和笔触粗细中相同字体中的较小字符不同。考虑每种字体有两种或三种代表性尺寸可能很有用。