如何OCR刻文?

时间:2012-11-29 16:22:14

标签: c# image-processing artificial-intelligence ocr pattern-recognition

我有这个图片

Image with Engraved Text

如何OCR呢? 我知道这很有挑战性,但我真的很感激任何帮助。

4 个答案:

答案 0 :(得分:2)

我建议2个图书馆让你前进:

  1. Tesseract
  2. Emgu CV - 附带大量示例,寻找车牌检测作为开始的好地方。

答案 1 :(得分:2)

如果你有时间自己开发检测,我会大致这样做:

  1. 获得1000张左右的照片,或者自己进行OCR,或者让亚马逊机械土耳其人为你做这件事,它几乎不需要任何费用。现在,您可以根据自己的需要调整算法并衡量自己的表现。
  2. 像Ryan写的那样,用手动或类似http://www.roborealm.com/的方式玩标准图像滤镜,对比度,颜色,高斯等。看看你是否找不到使文本真正脱颖而出的组合。
  3. 再次尝试库
  4. 如果libs仍然不起作用,请尝试使用您对图片的了解将其拆分为单独的数字。你应该知道应该有多少个数字,以及每个应该采取多少像素。使用边缘检测或某些东西(可能是标准的OCR特征提取,以及聚类会将每个数字作为一个簇?)来找到数字并将它们分开。
  5. 对每个数字进行标准OCR功能提取(不要过于创造性 - 使用现有的库或至少阅读最常见和最简单的内容)并提供这些功能,以及您获得的答案1)进入神经网络或SVM。
  6. 改进您的功能集,直到机器学习工作。
  7. 由于你只有十个数字,这些数字在图像之间相当一致,所以这应该有效。

答案 2 :(得分:1)

尝试使用图像上的对比度和灰度系数。您需要的只是大多数库的字符的实线轮廓。根据您的性能SLA,您可以运行各种对比度/伽玛场景,并让OCR软件对其进行几次拍摄。综合考虑结果,看看是否存在任何一致性。这可以为您提供长期相当准确的结果。

答案 3 :(得分:0)

ML(中性网络)数字通常是准确的,只需要很少的培训并且易于使用。可以通过使用"移动窗口进行OCR来处理订购"或者像你一样裁剪宽度的一小部分。输出可能是??? 1160060060 ?? 1 ???对于第一个字符,在迭代图像宽度时选择最常出现的(0)。也许教你的中性网也能识别人物和你的好之间的空间。否则,清除十分区需要首先自动裁剪。但总而言之,非常类似于您在大学AI初学者课程中所获得的任务。