首页 > 其他分享 >搭建自己的OCR服务,第一步:选择合适的开源OCR项目

搭建自己的OCR服务,第一步:选择合适的开源OCR项目

时间:2023-06-22 21:23:24浏览次数:40  
标签:OCR ocr 开源 github 文档 识别 搭建

一、OCR是什么?

光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。

亦即将图像中的文字进行识别,并以文本的形式返回。

 

二、OCR的基本流程

1. 图像输入、预处理:

  不同的图像格式有不同的存储、压缩方式,目前有OpenCV、CxImage等。

2. 二值化:

  如今数码摄像头拍摄的图片大多是彩色图像,彩色图像所含信息量巨大,不适用于OCR技术。为了让计算机更快的、更好地进行OCR相关计算,

  我们需要先对彩色图进行处理,使图片只剩下前景信息与背景信息。二值化也可以简单地将其理解为“黑白化”。

3. 图像降噪:

  对于不同的图像根据噪点的特征进行去噪的过程称为降噪。

4. 倾斜校正:

  由于一般用户,在拍照文档时,难以拍摄得完全符合水平平齐与竖直平齐(我本人就经常拍的歪歪扭扭),

  因此拍照出来的图片不可避免的产生倾斜,这就需要图像处理软件进行校正。 

5. 版面分析:

  将文档图片分段落,分行的过程称为版面分析。 

6. 字符切割:

  由于拍照、书写条件的限制,经常造成字符粘连、断笔,直接使用此类图像进行OCR分析将会极大限制OCR性能。

  因此需要进行字符切割,即:将不同字符之间分割开。 

7. 字符识别:

  早期以模板匹配为主,后期以结合深度网络的特征提取为主。版面还原:将识别后的文字像原始文档图片那样排列,

  段落、位置、顺序不变地输出到Word文档、PDF文档等,这一过程称为版面还原。

8. 后期处理:根据特定的语言上下文的关系,对识别结果进行校正。

9. 输出:将识别出的字符以某一格式的文本输出。

 

三、OCR的使用现状

ocr的发展已经有了非常多的积累,一般人或者企业使用, 都是直接使用第三方的服务,目前提供第三方服务的大企业也非常多,百度,阿里云,腾讯等等,都提供了非常方便的api接口,可以进行调用,识别的速度、精确度和效果也都是非常不错的。唯一的缺点就是api的调用是需要收费的,对于调用频次不高的个人和企业,这个费用还是非常低的。

 

1,为什么企业要使用开源的而不是直接使用api服务?

目前因为公司的现状,使用开源的有几个目的

  1. 每天调用的频次比较高 , 以后可能越来越高, 所以基于费用的考虑是最主要的。
  2. 目前ocr的算法研究基本趋于成熟,并且目前对识别的精度要求不是太高,目前开源项目基本能够满足。
  3. 对于cv和深度学习进行一定程度的积累和了解,为后续工作做一些铺垫。
  4. 学习开源ocr的模型构建,方便后续对于模型的更新。

 

2,目前常用的几个OCR开源的项目

目前针对ocr的相关开源项目还是很多的,做了一些简单的调研和试用,在这里进行记录。对于调研不准确的希望大家指出。

第一名:PaddleOCR

PaddleOCR 是百度开源的中文识别的ocr开源软件,PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力开发者训练出更好的模型,并应用落地。

支持多种OCR相关前沿算法,在此基础上打造产业级特色模型PP-OCR和PP-Structure,并打通数据生产、模型训练、压缩、预测部署全流程。

  

开源地址: https://github.com/PaddlePaddle/PaddleOCR.git

官网地址: https://www.paddlepaddle.org.cn/

 

优势

  1. github上面star非常多,项目非常活跃
  2. 模型只针对中文进行训练
  3. 后面做背书的公司非常强(baidu)
  4. 相关的中文文档非常齐全
  5. 识别的精确度比较高
  6. 安装和教程详细
  7. 支持前沿算法和标注工具

劣势

  1. 目前使用的训练模型是基于百度公司自己的PaddlePaddle框架,对于小公司来说并不主流(对比于ts或者pytorch),所使用深度学习框架为后续其他深度学习无法做很好的铺垫
  2. 项目整体比较复杂,学习成本较高
所以根据自己实际情况,我最终选择了这个百度飞浆OCR开源项目学习。

 

第二名:Tesseract

Tesseract 一款由HP实验室开发由Google维护的开源OCR引擎,支持多语言,多平台,使用python开发。

开源地址: https://github.com/tesseract-ocr/tesseract.git

优势

  1. github上面star非常多,项目非常活跃
  2. 识别的语言和文字非常多
  3. 后面做背书的公司非常强(google)

劣势

  1. 不是专门针对中文场景
  2. 相关文档主要是英文,对于阅读和理解起来有一定困难
  3. 学习成本比较高
  4. 源码较多,并且部分源码是c++,学习起来难度比较大
所以根据自己实际情况放弃了这个项目的学习。  

第三名:EasyOCR

EasyOCR是用Python编写基于Tesseract的OCR识别库,用于图像识别输出文本,目前支持80多种语言。

开源地址: https://github.com/JaidedAI/EasyOCR.git

优势

  1. github上面的star也是比较多,但是最近不是特别活跃
  2. 支持的语言也是非常多的,多达80多种
  3. 识别的精确度尚可

劣势

  1. 从官方的页面体验来说识别的速度较慢
  2. 识别的文字种类多,学习难度较高
  3. 相关的官方文档是基于英文的,学习难度较高,对于新手不太友好

所以根据自己实际情况放弃了这个项目的学习。






标签:OCR,ocr,开源,github,文档,识别,搭建
From: https://www.cnblogs.com/xh2023/p/17498364.html

相关文章

  • window搭建Jenkins环境
    一、Jenkins介绍Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成Jenkins功能包括:持续的软件版本发布/测试项目。监控外部调用执行的工作。二、Jenkins下载前置条件:安装JD......
  • 如何使用开源拉新插件拉新
    当使用开源拉新插件时,通常需要在小程序代码中添加插件代码和相关配置。以下是一个使用Weirank开源拉新插件的示例代码分析:分析前我们来吟诗一首方便联系:【名】扬天下志在成,【字】里行间传真情,【拼】搏奋斗路漫漫,【音】乐轻扬心更静,【就】算跌倒也不怕,【是】非得失忠于心,【微】笑面......
  • 如何使用开源拉新插件拉新
    当使用开源拉新插件时,通常需要在小程序代码中添加插件代码和相关配置。以下是一个使用Weirank开源拉新插件的示例代码分析:分析前我们来吟诗一首方便联系:【名】扬天下志在成,【字】里行间传真情,【拼】搏奋斗路漫漫,【音】乐轻扬心更静,【就】算跌倒也不怕,【是】非得失忠于心,【微】笑面......
  • 搭建Eclipse、Resin Web开发环境
    搭建Eclipse、ResinWeb开发环境一、当然是安装java开发环境参看:Java环境的搭建二、选择并下载一个合适的Eclipse。推荐选择:EclipseIDEforJavaEEDevelopers,这个集成版包含的功能比较全,省的还需要下载一些插件。一定要确保安装了WTP(WebToolsPlatform),它是一个开......
  • win 7 下Maven环境的搭建
    ApacheMaven,是一个软件(特别是Java软件)项目管理及自动构建工具。Maven是什么?比较正式的定义:Maven是一个项目管理工具,它包含了:一个项目对象模型(ProjectObjectModel),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(DependencyManagementSys......
  • elasticsearch-head 的搭建
    elasticsearch-head全部是js和html5写的,elasticsearch全部都是http的接口,这样,只需要简单地本地配置一个虚拟站点,就可以搭建 elasticsearch-head. 下面是简单地搭建步骤.Github工具确保有个Github客户端工具下载Github的代码,我使用的是:http://windows.github.com/ Clone......
  • MacBook 搭建python开发环境
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]专题目录MacBook搭建python开发环境一、需要安装的软件安装Python安装pip安装Virtualenv安装VSCodeVSCode安装Python扩展插件安装PyCharm二、IDE搭配VSCode+Python+pip+Virtuale......
  • MacBook 搭建python开发环境
    转载请注明来源:http://www.eword.name/Author:ewordEmail:[email protected]搭建python开发环境一、需要安装的软件安装Python安装pip安装Virtualenv安装VSCodeVSCode安装Python扩展插件安装PyCharm二、IDE搭配VSCode+Python+pip+Virtualenv或【推荐】......
  • 如何为开源项目编写Readme?——转载
     UU5Xin关注IP属地:上海2022.05.3113:33:31字数1,084阅读1,504什么是Readme?README(顾名思义:“readme“)是启动新项目时应该阅读的第一个文件。它既包含了一系列关于项目的有用信息又是一个项目的手册。它是别人在Github或任何Git托管网站点,打开你仓库时看到的第......
  • 一站式数据可观测性平台 Datavines 正式开源啦
    Datavines是一站式开源数据可观测性平台,提供元数据管理、数据概览报告、数据质量管理,数据分布查询、数据趋势洞察等核心能力,致力于帮助用户全面地了解和掌管数据,让您做到心中有数,目前作为Datavane开源组织的重点推荐项目,正式开源,欢迎大家使用。核心特性数据目录定时获取数......