1.cnocr

cnocr是用来做中文OCR的Python 3包。cnocr自带了训练好的识别模型,安装后即可直接使用。

cnocr主要针对的是排版简单的印刷体文字图片,如截图图片,扫描件等。cnocr目前内置的文字检测和分行模块无法处理复杂的文字排版定位。如果要用于场景文字图片的识别,需要结合其他的场景文字检测引擎使用。

cnocr 是Python3下的中英文OCR包,通过pip命令安装后即可直接使用。

pip install cnocr==1.1.0

V1.1.0 对代码做了很大改动,重写了大部分训练的代码,也生成了更多更难的训练和测试数据。训练好的模型相较于之前版本的模型精度有显著提升,尤其是针对英文单词的识别。

以下列出了主要的变更:

  • 更新了训练代码,使用mxnet的recordio首先把数据转换成二进制格式,提升后续的训练效率。训练时支持对图片做实时数据增强。也加入了更多可传入的参数。
  • 允许训练集中的文字数量不同,目前是中文10个字,英文20个字母。
  • 提供了更多的模型选择,允许大家按需训练多种不同大小的识别模型。
  • 内置了各种训练好的模型,最小的模型只有之前模型的1/5大小。所有模型都可免费使用。
  • 相较于之前版本的模型,新的模型精度有显著提升,尤其是针对英文单词的识别。新模型已经可以识别英文单词间的空格。
  • 支持文字识别只在给定字符集中进行。 对于一些纯数字或者纯英文字母的应用场景可以带来识别率提升。
  • 优化了对黑底白字多行文字图片的支持。
  • mxnet依赖升级到更新的版本了。很多人反馈mxnet 1.4.1经常找不到没法装,现在升级到>=1.5.0,<1.7.0。

示例

两款开源的中文OCR工具,简直碉堡了

 

自带可直接使用的模型

cnocr的ocr模型可以分为两阶段:第一阶段是获得ocr图片的局部编码向量,第二部分是对局部编码向量进行序列学习,获得序列编码向量。目前两个阶段分别包含以下的模型:

  1. 局部编码模型(emb model)
  • conv:多层的卷积网络;
  • conv-lite:更小的多层卷积网络;
  • densenet:一个小型的densenet网络;
  • densenet-lite:一个更小的densenet网络。

2. 序列编码模型(seq model)

    • lstm:两层的LSTM网络;
    • gru:两层的GRU网络;
    • fc:两层的全连接网络。

cnocr目前包含以下可直接使用的模型,训练好的模型都放在 cnocr-models 项目中,可免费下载使用:

两款开源的中文OCR工具,简直碉堡了

 

github: https://github.com/breezedeus/cnocr

2.中文 OCR 开源项目是 chineseocr_lite

目前比较常用的中文 OCR 开源项目是 chineseocr,它基于 YOLO V3 与 CRNN 实现中文自然场景文字检测及识别,目前该项目已经有 2.5K 的 Star 量。而本文介绍的是另一个新 开源的中文 OCR 项目,它基于 chineseocr 做出改进,是一个超轻量级的中文字符识别项目。

项目地址:https://github.com/ouyanghuiyu/chineseocr_lite

该 chineseocr_lite 项目表示,相比 chineseocr,它采用了轻量级的主干网络 PSENet,轻量级的 CRNN 模型和行文本方向分类网络 AngleNet。支持竖排文字识别,支持 ncnn 推理,psenet (8.5M) + crnn (6.3M) + anglenet (1.5M) 总模型仅 17M .

目前 chineseocr_lite 支持任意方向文字检测,在识别时会自动判断行文本方向。我们可以先看看项目作者给出的效果示例:

两款开源的中文OCR工具,简直碉堡了

 

两款开源的中文OCR工具,简直碉堡了

 

可以看到,chineseocr_lite 在横排文字和竖排文字的识别上都有不错的效果,而且它提供的交互式网页端能直接在页面插入图像与调用识别模型。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐