tesseract可以训练非字体符号吗?

Tia*_*ago 8 ocr macos tesseract image

我很好奇我如何能够更可靠地识别扑克牌图像的价值和套装.这是两个例子:

在此输入图像描述 在此输入图像描述

图像中可能存在一些噪点,但我有一个大的图像数据集,我可以用于训练(大约10k png,包括所有值和套装).

如果我使用散列方法进行已知的精确匹配,我可以可靠地识别我手动分类的图像.但是由于我根据内容对图像进行哈希处理,因此最轻微的噪声会改变哈希值,导致图像被视为未知.这就是我希望通过进一步自动化可靠地解决的问题.

我一直在审查关于培训tesseract的3.05文档:https: //github.com/tesseract-ocr/tesseract/wiki/Training-Tesseract#automated-method

tesseract只能训练使用字体中的图像吗?或者我可以用它来识别这些卡的套装吗?

我希望我可以说这个文件夹中的所有图像都对应于4c(例如上面的示例图像),并且tesseract将在该图像的任何未来实例(无论噪声)中看到相似性,并且还将其读作4c.这可能吗?这里有人有这方面的经验吗?

Tia*_*ago 1

这是我的非超立方体解决方案,直到有人证明有更好的方法。我已经设置:

让这些运行起来是最困难的部分。接下来,我使用我的数据集来训练一个新的 caffe 网络。我将数据集准备到单个深度文件夹结构中:

./card
./card/2c
./card/2d
./card/2h
./card/2s
./card/3c
./card/3d
./card/3h
./card/3s
./card/4c
./card/4d
./card/4h
./card/4s
./card/5c
./card/5d
./card/5h
./card/5s
./card/6c
./card/6d
./card/6h
./card/6s
./card/7c
./card/7d
./card/7h
./card/7s
./card/8c
./card/8d
./card/8h
./card/8s
./card/9c
./card/9d
./card/9h
./card/9s
./card/_noise
./card/_table
./card/Ac
./card/Ad
./card/Ah
./card/As
./card/Jc
./card/Jd
./card/Jh
./card/Js
./card/Kc
./card/Kd
./card/Kh
./card/Ks
./card/Qc
./card/Qd
./card/Qh
./card/Qs
./card/Tc
./card/Td
./card/Th
./card/Ts
Run Code Online (Sandbox Code Playgroud)

在数字中,我选择了:

  1. 数据集选项卡
  2. 新数据集图像
  3. 分类
  4. 我将其指向我的卡文件夹,例如:/path/to/card
  5. 根据此处的讨论,我将验证%设置为13.0%:/sf/answers/952904501/
  6. 创建数据集后,我打开模型选项卡
  7. 选择我的新数据集。
  8. 选择Standard Networks下的GoogLeNet,然后让它进行训练。

我这样做了好几次,每次数据集中都有新图像。每个学习课程需要 6-10 个小时,但在这个阶段,我可以使用我的 caffemodel 以编程方式估计每个图像的预期内容,使用以下逻辑: https: //github.com/BVLC/caffe/blob/master/examples /cpp_classification/classification.cpp

结果是一张卡片(2c、7h 等)、噪音或表格。任何准确度超过 90% 的估计都很可能是正确的。最新运行正确识别了 400 张图像中的 300 张,只有 3 个错误。我正在向数据集添加新图像并重新训练现有模型,进一步调整结果准确性。希望这对其他人有价值!

虽然我想要这里的高级步骤,但这一切都是在 David Humphrey 和他的 github 帖子的大力支持下完成的,如果您有兴趣了解更多信息,我强烈建议您阅读并尝试一下:https ://github.com/ humphd/机器学习的乐趣