Update 2020.04.21: 发布 cnocr V1.1.0

更轻量的 cnocr-V1.1.0 :最小模型只有 6.8M。具体说明见:

BreezeDeus:更轻量的 cnocr-V1.1.0 :最小模型只有 6.8M​zhuanlan.zhihu.com


Update 2019.07.25: 发布 cnocr V1.0.0

cnocr发布了预测效率更高的新版本v1.0.0。具体说明见

https://github.com/breezedeus/cnocr/blob/master/README_cn.md​github.com

主要更新如下:

  • crnn模型支持可变长预测,提升预测效率
  • 支持利用特定数据对现有模型进行精调(继续训练)
  • 修复bugs,如训练时accuracy一直为0等

虽然现在的对话机器人主要理解的还是用户的文本信息,但对图片(尤其是表情)、视频和语音的理解,也逐渐地会成为机器人的标配能力。

理解图片的一种最简单的方式,就是识别图片中的文字,做这个事的技术主要有两种:OCR(Optical Character Recognition,光学字符识别),或者STR(Scene Text Recognition,场景文字识别)

OCR主要针对文字比较规范,没什么底色或底色单一的图片,类文字扫描后获得的图片,如:

STR针对的图片是更一般的复杂场景,比如随手拍的照片中广告牌上的文字,店铺名称等,如:

显然STR比OCR难得多,所以使用的方法也会更复杂更耗资源。很多应用场景使用OCR技术就足够了。

因为项目需要,我之前找了下已有可用的开源中文OCR工具,发现居然没有特别好用的。 所以就自己封装了一个中文OCR Python包,称之为 cnocr(Chinese OCR的简称),项目地址为:

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

cnocr主打使用简单,功能极简。

以下是使用说明,欢迎大家试用,帮忙提issue。

cnocr

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

目前使用的识别模型是crnn,识别准确度约为 98.7%

本项目起源于我们自己 (爱因互动 Ein+) 内部的项目需求,所以非常感谢公司的支持。

特色

本项目的大部分代码都fork自 crnn-mxnet-chinese-text-recognition,感谢作者。 但源项目使用起来不够方便,所以我在此基础上做了一些封装和重构。主要变化如下:

  • 不再使用需要额外安装的MXNet WarpCTC Loss,改用原生的 MXNet CTC Loss。所以安装极简!
  • 自带训练好的中文OCR识别模型。不再需要额外训练!
  • 增加了预测(或推断)接口。所以使用方便!

安装

pip install cnocr

注意:请使用Python3 (3.4, 3.5, 3.6以及之后版本应该都行),没测过Python2下是否ok。

使用方法

以如下图片文件为例,文件内容如下:

预测

代码引用

from cnocr import CnOcr
ocr = CnOcr()
res = ocr.ocr_for_single_line('examples/rand_cn1.png')
print("Predicted Chars:", res)

首次使用cnocr时,系统会自动从Dropbox下载zip格式的模型压缩文件,并存于 ~/.cnocr目录。 下载后的zip文件代码会自动对其解压,然后把解压后的模型相关文件放于~/.cnocr/models目录。 如果系统不能自动从Dropbox成功下载zip文件,则需要手动下载此zip文件并把它放于 ~/.cnocr目录。 另一个下载地址是百度云盘(提取码为pg26)。 放置好zip文件后,后面的事代码就会自动执行了。

上面预测代码段的返回结果如下:

Predicted Chars: ['笠', '淡', '嘿', '骅', '谧', '鼎', '皋', '姚', '歼', '蠢', '驼', '耳', '胬', '挝', '涯', '狗', '蒽', '子', '犷']

脚本引用

也可以使用脚本模式预测:

python scripts/cnocr_predict.py --file examples/rand_cn1.png

返回结果和前面相同:

Predicted Chars: ['笠', '淡', '嘿', '骅', '谧', '鼎', '皋', '姚', '歼', '蠢', '驼', '耳', '胬', '挝', '涯', '狗', '蒽', '子', '犷']

训练自己的模型

cnocr安装后即可直接使用,但如果你非要训练自己的模型,请参考下面命令:

python scripts/cnocr_train.py --cpu 2 --num_proc 4 --loss ctc --dataset cn_ocr

未来工作

  • 支持空格识别
  • 修bugs(目前代码还比较凌乱。。)
  • 完善测试用例
  • 考虑使用MxNet的命令式编程重写代码,提升灵活性
  • 尝试新模型,如 DenseNet、ResNet,进一步提升识别准确率

studioone精调效果包_cnocr: 极简的中文OCR Python包相关推荐

  1. cnocr训练_cnocr: 极简的中文OCR Python包

    Update 2020.04.21: 发布 cnocr V1.1.0 更轻量的 cnocr-V1.1.0 :最小模型只有 6.8M.具体说明见: BreezeDeus:更轻量的 cnocr-V1.1. ...

  2. python极简应用_30个Python常用极简代码,拿走就用

    学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则.本文是 30 个极简任务,初学者可以尝试着自己实现:本文同样也是 30 段代码,Python 开发者也可以看看是不是 ...

  3. python包离线安装教程_离线安装python包(附示例:featuretools)

    一.基本方法: 1.逐个包安装 2.批量安装 二.基本步骤:(示例:featuretools) step1: · 下载包: msgpack-0.6.1-cp27-cp27mu-manylinux1_x ...

  4. python 关联分析算法的包_Python 极简关联分析(购物篮分析)

    关联分析,也称购物篮分析,本文目的: 基于订单表,用最少的python代码完成数据整合及关联分析 文中所用数据下载地址: 使用Python Anaconda集成数据分析环境,下载mlxtend机器学习 ...

  5. Swagger 多包扫描 全包扫描 极简配置

    我看网上各种自定义分隔符,又是重写方法的,说实在的太麻烦了. 个人有代码洁癖,接受不了引几个不认识的jar包就为了实现这么个小功能 网上的大神们真的是喜欢把简单的问题复杂化啊 @Beanpublic ...

  6. python极简主义_XData: 为 Python 之禅写的极简主义数据验证工具

    XData 一款非常实用的数据验证工具, 通常用于请求数据的验证. Features 验证数据一步到位 容易扩展,容易自定义数据类型以及验证方式 无第三方依赖 Required python > ...

  7. python关于包的题怎么做_关于python包管理的那些事

    python的import, 是一个巨尼玛头疼的事. 网上有大量的解析, 非常详尽, 唯一的缺点是看完之后还是报错. 我写mollab的时候最绝望的事就是自己写得代码之间相互引用的问题, 每次都是求着 ...

  8. 包管理工具conda极简教程

    包管理工具conda极简教程 conda的作用 Anaconda是目前非常流行的一个python包管理器,自带很多流行的python库,包括numpy,pandas等,当然还有conda.而Conda ...

  9. python数据分析入门书籍-Python极简讲义:一本书入门数据分析与机器学习

    "1.轻松入门:文笔流畅,通俗易懂,从Python基础.NumPy.Pandas.Matplotlib,到机器学习算法,循序渐进,帮助零基础读者快速入门.2.图文并茂:一图胜千言,书中配有精 ...

最新文章

  1. 想用Python学机器学习?Google大神替你写好了所有的编程示范代码
  2. python代码案例详解-Python运算符重载详解及实例代码
  3. 怎样才能让一段代码每隔一段时间执行一次?
  4. etcdctl命令查询etcd信息
  5. 1215 - Cannot add foreign key constraint
  6. C语言之理解(*(void (*)())0)()和signal函数
  7. 校友会2019中国大学计算机,校友会2019中国大学一流专业排名800强出炉,北大清华复旦前三...
  8. ip层和4层的接口实现分析
  9. linux系统环境与文件权限
  10. matlab循环输出图像,运用matlab实现循环语句中的多幅图像显示
  11. 12满秩分解与奇异值分解(2)
  12. timesten java_java直接访问Timesten的数据库
  13. KindEditor实现上传图片与回显
  14. vant中修改用户的头像
  15. RFC2544性能测试64字节实际报告显示为66字节
  16. 控制台出现 Page “xxx“ has not been registered yet 和 uniapp的报错Uncaught Error: Module build fail xxx
  17. ArcCatalog中连接SDE数据库
  18. 京东商城禁止一淘网蜘蛛抓取内容
  19. 作业提交试题下载网站
  20. 前端实现3D旋转木马相册

热门文章

  1. wfs方式获取最短路径
  2. Web前端开发学习资料分享
  3. 利用CentOS快速构建自己的发行版(3)
  4. [pytorch ] (a) must be greater or equal to the number of dimensions (b)
  5. 推荐一个 React 技术揭秘的项目,自顶向下的 React 源码分析
  6. linux fedora35 kvm自定义存储路径
  7. git初始化及关联远程仓库命令
  8. Linkis EngineConnPlugin引擎插件安装文档
  9. K8S滚动更新示例演示
  10. 【收藏】deepin环境安装nodejs