我很好奇我如何才能更可靠地识别扑克牌图片的价值和适合度。以下是两个例子:
图像中可能存在一些噪点,但我有一个大型图像数据集,我可用于训练(大约10k png,包括所有值和套装)。
如果我使用散列方法进行已知的精确匹配,我可以可靠地识别我手动分类的图像。但是,由于我根据其内容对图像进行散列,因此最轻微的噪声会改变散列并导致图像被视为未知。这就是我希望通过进一步自动化可靠地解决的问题。
我一直在审核有关培训tesseract的3.05文档: https://github.com/tesseract-ocr/tesseract/wiki/Training-Tesseract#automated-method
仅仅可以使用字体中的图像训练tesseract吗?或者我可以用它来识别这些卡片的套装吗?
我希望我可以说这个文件夹中的所有图像都对应于4c(例如上面的示例图像),并且tesseract会在该图像的任何未来实例中看到相似性(无论噪声如何),并且还读取该图像作为4c。这可能吗?这里有没有人有这方面的经验?
答案 0 :(得分:0)
这是我对此无法解决的问题,直到有人证明有更好的方法。我已经设置好了:
让这些运行是最困难的部分。接下来,我使用我的数据集来训练一个新的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
在Digits中,我选择了:
每次我在数据集中都有新图像时,我都这样做过几次。每个学习课程花了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/have-fun-with-machine-learning