快速屏幕字体OCR技术还是API?

时间:2011-06-30 03:26:21

标签: api fonts ocr

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

以下是理所当然的:

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

所以我认为它并不像“真正的”OCR那样复杂:找到基线并“切割”每个角色很容易做到(我已经完成了)。

有没有人知道特定的技术或论文,甚至API都可以做到这样的壮举?

请注意:关于屏幕抓取,这个问题。有关破解CAPTCHA的问题。关于常规OCR,这个问题(如OCR扫描文本)。关于GUI自动化的问题(尽管有些人可能会这样使用)。

2 个答案:

答案 0 :(得分:1)

我对不变的时刻有很好的经验(例如胡的时刻,但它们可能也不多 onvariant为您的目的,因为您有预定义的方向)与特征提取配对 聚类分析(我用Mahalanobis距离得到了很好的结果) 如果您对纯Java解决方案感兴趣,请参阅我们的SF项目:

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

这也适用于Android手机。

(欢迎帮助)

答案 1 :(得分:0)

您可以尝试实施LAMSTAR,如Daniel Graupe"人工神经网络原理" (1997年),第13章。

基本上涉及:

  • 划分您的"输入"进入"子词" (他采用了像素序列细分图像的例子,每列一个子字和每行一个子字)
  • 每个子词都被输入动态KSOM(Kohonen自组织映射),它将归一化的子词分类为不同数量的类别
  • 每个KSOM都是Winner-Take-All分类器,其中一个输出为1,其他输出为0
  • 然后,输出与"链接权重线性组合到输出层",具有非线性激活函数(例如逻辑函数),输出神经元的激励为您提供了一个序列这代表了公认的角色。

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

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