6款开源中文OCR使用介绍(亲测效果)

文章目录

  • 前言
  • 开源ocr项目
    • 1. Paddle OCR(推荐指数:★★★★★)
      • 1.1 简介
      • 1.2 使用
      • 1.3 优缺点
    • 2. CnOCR(推荐指数:★★★★★)
      • 2.1 简介
      • 2.2 使用
      • 2.3 优缺点
    • 3. chinese_lite OCR(推荐指数:★★★)
      • 3.1简介
      • 3.2 使用
      • 3.3 优缺点
    • 4. EasyOCR(推荐指数:★★)
      • 4.1 简介
      • 4.2 使用
      • 4.3 优缺点
    • 5. Tesseract OCR(推荐指数:★)
      • 5.1 简介
      • 5.2 使用
      • 5.3 优缺点
    • 6. chineseocr(推荐指数:★★)
      • 6.1 简介
      • 6.2 使用
      • 6.3 优缺点
  • 总结

前言

光学字符识别(Optical Character Recognition, OCR)是指对文本材料的图像文件进行分析识别处理,以获取文字和版本信息的过程。也就是说将图象中的文字进行识别,并返回文本形式的内容。
ocr主要流程:
在这里插入图片描述
随着ocr技术的日渐成熟,目前github中有很多开源项目可供选择,下面将介绍几种常用的开源ocr项目。

开源ocr项目

1. Paddle OCR(推荐指数:★★★★★)

1.1 简介

飞桨首次开源文字识别模型套件PaddleOCR,目标是打造丰富、领先、实用的文本识别模型/工具库。最新开源的超轻量PP-OCRv3模型大小仅为16.2M。同时支持中英文识别;支持倾斜、竖排等多种方向文字识别;支持GPU、CPU预测;用户既可以通过PaddleHub很便捷的直接使用该超轻量模型,也可以使用PaddleOCR开源套件训练自己的超轻量模型。

1.2 使用

安装使用说明

1.3 优缺点

  • 优点
    • 轻量模型,执行速度快
    • 支持pip直接安装
    • ocr识别效果好,效果基本可以比肩大厂收费ocr(非高精版)
    • 支持表格和方向识别
    • 支持补充训练且很方便
  • 缺点
    • 部分符号识别效果一般,如 '|‘识别为’1’
    • 对于部分加粗字体可能出现误识别,需要自己补充训练
    • 偶尔会出现部分内容丢失的情况

2. CnOCR(推荐指数:★★★★★)

2.1 简介

CnOCR 是 Python 3 下的文字识别(Optical Character Recognition,简称OCR)工具包,支持简体中文、繁体中文(部分模型)、英文和数字的常见字符识别,支持竖排文字的识别。自带了20+个训练好的识别模型,适用于不同应用场景,安装后即可直接使用。同时,CnOCR也提供简单的训练命令供使用者训练自己的模型。

2.2 使用

安装使用说明

2.3 优缺点

  • 优点
    • 轻量模型,执行速度快,速度略快于paddle ocr
    • 支持pip直接安装
    • ocr识别效果好,识别效果比肩paddle ocr
    • 支持训练自己的模型
  • 缺点
    • 部分符号识别效果差
    • 部分场景下会出现空格丢失情况
    • 模型补充训练没有paddle ocr方便

3. chinese_lite OCR(推荐指数:★★★)

3.1简介

超轻量级中文 ocr,支持竖排文字识别, 支持 ncnn、mnn、tnn 推理, 模型大小仅4.7M。

3.2 使用

安装使用说明

3.3 优缺点

  • 优点
    • 轻量模型,执行速度快,速度优于CnOCR和Paddle OCR
    • ocr识别效果尚可,优于一般开源模型,但比不上CnOCR和Paddle OCR
    • 作者提供了多种语言下的Demo
  • 缺点
    • 不支持pip安装
    • 文本位置识别略差
    • 不支持补充训练
    • 部分场景下会出现误识别竖版文字的情况
      例如:
    姓     名: 张三
    性     别: 男
    年     龄: 19
    户     籍: 北京
    
    误识别为 '姓性年户'
    

4. EasyOCR(推荐指数:★★)

4.1 简介

EasyOCR是一个用于从图像中提取文本的python模块。它是一种通用的OCR,可以读取自然场景文本和文档中的密集文本。我们目前正在支持80多种语言并不断扩展。

4.2 使用

官方文档

4.3 优缺点

  • 优点
    • 支持pip安装,但需要自己手动下载模型
    • ocr识别效果尚可,优于一般开源模型
  • 缺点
    • 速度很慢,900 * 1200像素图片平均需要30s左右
    • 不支持补充训练

5. Tesseract OCR(推荐指数:★)

5.1 简介

Tesserat OCR 是一款可在各种操作系统运行的 OCR 引擎,这是一款开源软件,在Apache 许可下发布。最初由惠普在20世纪80年代作为专有软件开发,在2005年以开源的形式发布,从2006年开始由谷歌赞助,开发语言为 C++。

5.2 使用

官方文档

5.3 优缺点

  • 优点
    • 支持补充训练
  • 缺点
    • 安装使用困难,不支持pip安装
    • 中文识别效果差

6. chineseocr(推荐指数:★★)

6.1 简介

基于yolo3 与crnn 实现中文自然场景文字检测及识别

  • 文字方向检测 0、90、180、270度检测(支持dnn/tensorflow)
  • 支持(darknet/opencv dnn /keras)文字检测,支持darknet/keras训练
  • 不定长OCR训练(英文、中英文) crnn\dense ocr 识别及训练 ,新增pytorch转keras模型代码(tools/pytorch_to_keras.py)
  • 支持darknet 转keras, keras转darknet, pytorch 转keras模型
  • 身份证/火车票结构化数据识别
  • 新增CNN+ctc模型,支持DNN模块调用OCR,单行图像平均时间为0.02秒以下
    CPU版本加速
  • 支持基于用户字典OCR识别
  • 新增语言模型修正OCR识别结果
  • 支持树莓派实时识别方案

6.2 使用

官方文档

6.3 优缺点

  • 优点
    • 支持补充训练
    • 有多版本优化模型
  • 缺点
    • 项目较老,使用的三方库较老,部分三方库已废弃,环境配置困难
    • 中文ocr识别效果一般
    • 不支持pip安装

总结

上述6个开源模型是常见的国内ocr模型,每个我都部署测试过,整体来看推荐使用paddle ocr和cnocr,某些场景下,如小图片且对速度要求较高可以尝试使用chinese_lite ocr.



有其他开源中文ocr推荐,欢迎补充!

你可能感兴趣的:(图像识别,开源,ocr)