简单Python OCR
一个使用opencv和numpy的简单Python化OCR引擎。
最初灵感来自这个Stack Overflow问题
基本概念
分割
为了对图像进行OCR,需要对源图像执行几个步骤。分割是识别图像中代表字符的区域的过程。
本项目使用矩形来模拟分割。
监督学习与分类问题
分类问题是指确定一个观察结果属于哪个类别(即:某个分割包含哪个特定字符)。
监督学习是一种"教导"机器的方法。基本上,通过示例来训练算法(即:这个特定的分割包含字符f
)。训练后,机器应该能够将其获得的知识应用于新数据。
本项目使用的k-NN算法是最简单的分类算法之一。
标注
创建一个已分类字符的示例图像,用于训练目的。 参见基准事实。
如何理解这个项目
不幸的是,目前文档有点稀少(我欣然接受贡献)。 该项目结构良好,大多数类和函数都有文档字符串,所以这可能是一个好的开始方式。
如果您需要任何帮助,请随时与我联系。您可以在我的GitHub个人资料中找到我的电子邮件。
如何使用
请查看example.py
以了解使用现有预标注图像的基本用法。
您可以通过将自己的图像放在data
目录中来使用它们。
可以通过使用grounding.UserGrounder
来交互式地标注图像。
更多详情请查看example_grounding.py
版权和声明
本项目可在GNU AGPLv3许可证下使用, 许可证副本应该在LICENSE文件中。如果没有,请查看链接以了解更多信息。
版权所有 (C) 2012-2017 simple-ocr-opencv作者
所有作者都是其各自贡献的版权所有者
本程序是自由软件:您可以根据GNU AGPLv3许可证的条款重新分发和/或修改它,
如LICENSE中所示。
本程序的分发是希望它能有用,
但没有任何保证;甚至没有对适销性或特定用途适用性的暗示保证。
有关更多详细信息,请参阅GNU通用公共许可证。
您应该已经收到了GNU Affero通用公共许可证的副本
与本程序一起。如果没有,请参阅<http://www.gnu.org/licenses/>。