【问题标题】:Fast screen fonts OCR techniques or API? [closed]快速屏幕字体 OCR 技术或 API? [关闭]
【发布时间】:2011-06-30 03:26:20
【问题描述】:

我想知道是否有任何技术/API 可用于进行快速屏幕字体 OCR?

以下是理所当然的:

  • OCR 的文本应来自屏幕截图并应使用屏幕字体呈现
  • OCR 的文本可能会或可能不会消除锯齿
  • 抗锯齿可能使用也可能不使用 RGB 抽取(又名子像素 AA 又名 ClearType 等)
  • 屏幕截图可能是 RGB 或 RBG 顺序
  • 基线很容易找到(只需查看所有屏幕字体:基线显示非常清晰,很容易通过算法找到)
  • 允许出现很多错误(字符识别根本不需要 100% 正确)
  • 字体基本上是事先知道的,但字体具体如何渲染却不知道(大小不知道,颜色不知道,抗锯齿的类型不知道)。基本上已知的是,它将是非常常见的字体

所以我想它并不像“真正的”OCR 那样复杂:找到基线并“剪切”每个字符很容易做到(我已经做到了)。

有没有人知道具体的技术或论文,甚至是 API 允许做这样的壮举?

请注意:这个问题不是关于屏幕抓取的。这个问题不是关于破解验证码的。这个问题不是关于常规 OCR(如对扫描文本进行 OCR)。这个问题不是关于 GUI 自动化(尽管有些人可能会这样使用它)。

【问题讨论】:

标签: api fonts ocr


【解决方案1】:

我在不变矩方面有很好的经验(例如 Hu 矩,但它们可能也很少 onvariant 用于您的目的,因为您有预定义的方向)用于特征提取配对 聚类分析(我用马氏距离得到了非常好的结果)。
如果您对纯 java 解决方案感兴趣,这里是我们的 SF 项目:

http://sourceforge.net/projects/javaocr/

这也适用于安卓手机。

(欢迎帮助)

【讨论】:

  • 尺度不变性来自于不变矩,马氏距离与它无关,它来自于聚类分析域。我引用的 SF 项目包含 everzthing 的实现以及正在运行的 android 演示。
【解决方案2】:

您可以尝试按照 Daniel Graupe 的“人工神经网络原理”(1997 年)第 13 章中的描述实现 LAMSTAR。

主要涉及:

  • 将“输入”划分为“子字”(他以像素序列细分图像为例,每列一个子字,每行一个子字)
  • 每个子词都被输入到动态 KSOM(Kohonen 自组织图)中,该图将归一化的子词分为不同数量的类别
  • 每个 KSOM 都是赢家通吃的分类器,其中一个输出为 1,所有其他输出为 0
  • 然后,输出与“到输出层的链接权重”进行线性组合,具有非线性激活函数(例如逻辑函数),输出神经元的激发会为您提供代表识别字符的位序列.

LAMSTAR 的优势在于一切都可追溯:

  • 您可以通过考虑您提供的输入来了解 NN 看到的内容,
  • 您可以通过观察 KSOM 的分类结果来了解 NN 认为它看到了什么。
  • 您可以通过考虑特定 K-SOM 的权重向量来了解 NN 想要看到的内容
  • 您可以通过比较链接权重来了解 NN 真正认为重要的是什么(以及它忽略了图像的哪些部分)。

【讨论】:

    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多