【问题标题】:Best algorithm for character recognition字符识别的最佳算法
【发布时间】:2017-05-10 04:22:35
【问题描述】:

我正在尝试从视频中创建硬编码的字幕翻录器。

到目前为止,我已经做了一些预处理。

  1. 获取字幕框
  2. 裁剪字幕行
  3. 单独的字幕行
  4. 单独的字符。

字符识别的主要部分还没有完成。我尝试使用 tesseract,但准确率约为 60%。我也尝试训练角色图像,然后比较它们。但是当我在不同分辨率的视频上运行时,它失败了。

以下是目前的结果。 (原图、阈值、文本增强、分隔字符)

我确实使用了 K 均值并使用 Structural Similarity 比较图像。但在我的情况下没有任何效果。如上图所示,文字非常清晰。

已编辑:

问题:我想将准确率提高到 95% 或以上,因为所有视频中的文本都相似,我能够获得如上所示的明文或字符。在我的情况下,我可以尝试哪些最佳方法?

P.S: 语言是克罗地亚语

【问题讨论】:

  • 看起来你得到了不错的结果!不过你实际上并没有问过问题——你在问什么?
  • @ChristopherShroba:已编辑问题。
  • 你试过tesseract吗?
  • @Miki:是的,正如问题所提到的,tesseract 并不适合我的情况。
  • 哦,我错过了……但是,通过适当的预处理和正确的字典,应该比 60% 更好地工作

标签: python opencv ocr


【解决方案1】:

我建议两件事:

  1. 通过图像清理发挥更多作用
  2. 获得更好的 OCR。 Tesseract 是免费的,但不是最好的。如果您的预算允许,您可以考虑一些商业的。例如:OCRSDK.com 这个有一些免费的识别功能,至少可以玩一下,看看它是否适合你。

我在demo page 上尝试了您的最新照片(所有清洁后的照片),它几乎被完全正确识别 - 见下文。比 60% 的错误要好得多。我相信,通过更好的图像预处理,您可以进一步提高准确性。

免责声明:我为 ABBYY 工作。

【讨论】:

  • 我正在开发一个开源应用程序。它能够从视频中提取硬字幕并生成 srt 文件,然后将其翻译成目标语言。这就是为什么付费 sdk 不是一种选择的原因。我也需要准确性,否则翻译会混乱。
  • 这就是为什么我的观点是......有没有像 K-Mean 或 SVM 这样的算法可以用于二进制文本图像? (如上面的明文)如果是,那么在二进制文本图像上实施的任何指导方针?这样我就可以在所有语言上使用 ML 实现 OCR
  • 顺便说一句,+1 推荐 ABBYY。我尝试了多个二进制图像...准确性非常好。
  • 很抱歉,但好东西你必须付钱。如果高度准确的 OCR 像您想象的那样简单,那么它已经可用了。 ABBYY 已投入数百人年的工程设计来达到现在的准确性。 Tesseract 曾经也是惠普的商业产品,后来他们决定开源它。我假设数十位非常聪明的工程师已经投入了大量时间来完善它,但它还远未达到完美。你认为你可以做得更好吗?独自的?好的,祝你好运。
猜你喜欢
  • 2017-10-07
  • 1970-01-01
  • 2017-03-15
  • 2011-05-11
  • 1970-01-01
  • 2018-07-15
  • 2011-12-14
  • 2013-02-17
  • 2015-09-27
相关资源
最近更新 更多