字体识别来自免费手绘

Din*_*nan 11 fonts android opencv machine-learning pattern-matching

我一直致力于一个涉及基于Android Canvas中用户免费手绘字符的字体识别的应用程序.

在此应用程序中,要求用户以预定义的顺序输入一些预定义的字符(A,a,B,c).基于此,有没有办法显示与用户手写相匹配的非常相似的字体.

我研究过这个主题发现了一些论文和文章,但大多数都是从捕获的图像识别字体.在这种情况下,他们通过分段,单个字母等来解决很多问题.但在我的场景中,我知道用户正在绘制什么字母.

我对OpenCV和机器学习有一定的了解.需要有关如何解决此问题的帮助.

sau*_*hts -1

我建议使用 OCR 库tesseract。非常发达和成熟。它还支持使用其他语言进行训练,您可以使用它们来训练一组字体。

方法

训练:-

  1. 获取 n 种字体的所有 26 个(每个字母表)图像。训练 tessaract 超过 26 个 A,然后是 26 个 B,等等。

测试:-

  1. 取一个句子并将所有字符分开。
  2. 对于每个角色,从 Tesseract 中找到确定性分数(库中支持)。请注意,对于字符“a”,请对不同字体的所有“a”使用经过训练的模型。
  3. 对于所有字符,使用某种指标(平均值、中位数等)找到最佳字体。例如:您可以将收到的所有字符的每种字体的确定性得分相加,并使用获得最大结果的字体。