当前位置: 首页 > 知识库问答 >
问题:

从免费手绘字体识别

娄利
2023-03-14

我一直在开发一个应用程序,它涉及基于用户在Android画布上徒手绘制字符的字体识别。

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

我研究过这个话题,发现了一些论文

我有一些OpenCV和机器学习方面的知识。需要关于如何处理此问题的帮助。

共有3个答案

司徒俊雄
2023-03-14

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

方法

培训:-

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

测试:-

  1. 用一个句子把所有的字符分开
  2. 对于每个字符,从Tesseract中查找确定性分数(库中支持)。注意,对于字符“a”,使用不同字体的所有“a”上的训练模型
  3. 对于所有字符,使用一些度量(平均值、中值等)找到最佳字体。例如:您可以对所有字符接收到的每种字体的确定性分数求和,并使用得到最大结果的字体
魏泰
2023-03-14

你可能会发现这篇文章非常有趣:https://erikbern.com/2016/01/21/analyzing-50k-fonts-using-deep-neural-networks/

似乎是一个非常简单的深度学习指导学习问题。

为每种目标字体类型的字母生成大量随机变形的样本,并在该集合上训练一个convnet?

理想的情况是拥有一组巨大的标签、手写字体数据,但这似乎不太可能。

您还可以使用生成的渐进式字体代码获取一组手写样本,并将它们转换为更像您选择的字体的数据集。

这是一个很好的起点:https://github.com/fchollet/keras/blob/master/examples/mnist_cnn.py使用ConvNet进行数字字母识别。

如果你以前没有用过这些东西,这是相当多的工作。

淳于凯
2023-03-14

我不太清楚你想用你的应用程序实现什么,但我假设你正试图从一个字体数据库中输出一种字体,该数据库中的字体与用户的笔迹最匹配。

在机器学习中,这将是一个分类问题。类的数量将等于数据库中不同字体的数量。

你可以借助卷积神经网络来解决这个问题,卷积神经网络广泛用于图像和视频识别相关任务。如果您以前从未实现过CNN,我建议您查阅这些资源,了解火炬,这是一个易于使用的工具包来实现CNN(当然还有更多框架,例如:张量流咖啡千层面,…)

  • 火炬主页
  • 火炬深度学习:60分钟闪电战
  • 火炬小抄

你将面临的主要障碍是神经网络需要成千上万的图像(

我建议你读一下所谓的迁移学习,它可以给你一个初始的提升,因为你不需要完全自己建立一个有线电视新闻网模型。此外,人们有一个预先训练好的相关任务的这样一个模型,这样你就可以保证额外的时间,因为你不需要在图形处理器上训练它很多小时。(见CUDA)

一个很好的资源是这篇论文:深度神经网络中的特征有多可转移?,这可能有助于说明原因。

要获取大量培训和测试数据,您可以查找以下开放数据集,这些数据集提供了对您的任务有用的所有类型的字符:

  • 人工字符数据集
  • UJI钢笔字符数据集
  • Chars74K数据集
  • 手写-数据集
  • 手写字符识别的新基准数据集

要访问很多字体,甚至可能自己创建更多数据集,你可以看看谷歌字体。

 类似资料:
  • 了解如何使用 Creative Cloud 桌面应用程序添加数千种字体,以便您能够在桌面程序应用和网站上使用。 注意:  Typekit 现已更名为 Adobe Fonts,包含在 Creative Cloud 和其他订阅中。了解详情。 您的 Creative Cloud 订阅包括 Adobe Fonts 服务,它提供了数百家字体公司的数千种字体。您可以激活所需的字体,并在桌面应用程序和网站上使用

  • 本文向大家介绍Bootstrap免费字体和图标网站(值得收藏),包括了Bootstrap免费字体和图标网站(值得收藏)的使用技巧和注意事项,需要的朋友参考一下 如果你正在寻找Bootstrap图标,那今天的推荐对你而言绝对非常重要!在这篇内容中,我们把这套框架上的免费字体图标做了个整合(当然,以后还会不断的更新)。正如你所知,图标字体在一个web网页设计拥有很多优势:它们使用方便,不仅仅是图像,更

  • parameter.size=30; parameter.characters=“abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789.'()>?:”; font=generator.generateFont(参数); gdx.gl20.glclear(GL20.gl_color_buffer_bit); Begin(); f

  • 我们发现,再次使用GridUnload和grid load时,工具栏搜索将被完全删除: 此行已删除完成。

  • 如何在静态box2d主体上绘制文本(字体)? 背景:我能够正确地在身体顶部绘制精灵。我这样做是通过有一个,它被投影在box 2dCamera上,就像box 2dSpriteBatch.set投影矩阵(box 2dCamera.combined);然后简单地使用身体的在正确的位置渲染精灵。 但是如果我尝试用同样的方法来处理字体,不幸的是,它的缩放非常大,如果我尝试缩放字体,它就不会出现。所以我假设我

  • 需要找一些能下载到字体的平台,比如 Roboto, 思源黑体...或者其他一些免费(开源)字体,有没有什么网站能推荐的? 下载到的文件格式是 OTF