笔墨辨认(OCR)先容与开源方案对比

打印 上一主题 下一主题

主题 912|帖子 912|积分 2736

目录

笔墨辨认(OCR)先容与开源方案对比
一、OCR是什么
二、OCR基本原理说明
三、OCR基本实现流程
四、OCR开源项目调研
1、tesseract
2、PaddleOC
3、EasyOCR
4、chineseocr
5、chineseocr_lite
6、cnocr
7、商业付费OCR
1)腾讯OCR(付费) - AI 底子产物模块
2)阿里OCR(付费) - 阿里灵杰AI开放服务
3) 百度OCR (付费) - 百度AI开放能力
五、重要开源项目对比和结论
1、项目优缺点对比
2、综合对比


一、OCR是什么

OCR (Optical Character Recognition,光学字符辨认)技能是一种将印刷体或手写笔墨转化为可编辑文本的技能。亦即将图像中的笔墨举行辨认,并以文本的形式返回。
从图像化的文本信息中提取到笔墨符号做表征的语义信息,其重要性不言而喻,在现实应用场景中也比较容易想到跟NLP技能结合来完成比较优质的人机交互等任务。


 

二、OCR基本原理说明

为了辨认一张图片中的笔墨,通常包含两个步调:
1)、文本检测:检测出图片中笔墨所在的位置;
2)、笔墨辨认:辨认包含笔墨的图片局部,推测具体的笔墨。

三、OCR基本实现流程

OCR(光学字符辨认)的简单实现流程通常包括以下步调:
1、图像预处理:首先,对输入的图像举行预处理,包括灰度化、二值化、去噪等操作。这些操作有助于提高字符辨认的准确性和稳固性。
2、文本区域检测:利用图像处理技能(如边缘检测、轮廓分析等),找到图像中大概包含文本的区域。这些区域通常是字符或文本行的界限。
3、字符分割:对于文本行,须要将其分割为单个字符。这可以通过字符之间的间距、连通性等特性举行分割。
4、特性提取:对于每个字符,提取其特性表示。常见的特性包括外形、角度、纹理等。特性提取有助于将字符转化为可供分类器处理的数值表示。
5、字符分类:利用分类器(如呆板学习算法或深度学习模子)对提取的字符特性举行分类,将其辨认为相应的字符类别。分类器可以是预训练模子,也可以是自定义训练的模子。
6、后处理:对辨认的字符举行后处理,如纠正错误、校正倾斜、去除冗余等。这可以提高最终结果的准确性和可读性。
7、输出结果:将辨认的字符组合成最终的文本输出,可以是单个字符、单词或完整的文本。

四、OCR开源项目调研

1、tesseract

https://github.com/tesseract-ocr/tesseract

Tesseract是一个开源的OCR(光学字符辨认)引擎,由Google开发和维护。它可以或许将图像中的文本转换为可编辑的文本,并且支持多种语言的文本辨认。Tesseract已经成为广泛利用的OCR工具之一,具有较高的准确率和可扩展性。
以下是Tesseract的重要特点和功能:
1、多语言支持:Tesseract支持多种语言的文本辨认,包括英语、中文、日语、韩语、法语、德语、西班牙语等。它具有训练和辨认多种语言的能力,并且用户可以根据须要添加自定义语言模子。
2、高准确率:Tesseract利用了一系列的图像处理和呆板学习算法,以实现高准确率的文本辨认。它颠末大规模数据集的训练和优化,可以或许在各种图像条件下准确地辨认出字符信息。
3、可扩展性:Tesseract具有良好的可扩展性,用户可以利用自定义训练数据来训练和优化OCR模子,以提高辨认的准确性和顺应性。此外,Tesseract还提供了API和接口,方便用户举行二次开发和集成。
4、平台兼容性:Tesseract支持多种操作系统,包括Windows、Mac和Linux等。它可以在各种平台上运行,并且提供了与不同编程语言(如Python、Java、C++等)的接口,方便开发者举行集成和利用。
5、开源和社区支持:Tesseract是一个开源项目,具有活跃的社区支持。用户可以自由检察和修改源代码,并参与社区讨论和贡献。这使得Tesseract成为一个不断发展和改进的OCR工具。
2、PaddleOC

https://github.com/PaddlePaddle/PaddleOCR

PaddleOCR是一个基于飞桨(PaddlePaddle)深度学习平台的开源OCR(光学字符辨认)工具,旨在提供高性能和准确率的文本辨认功能。它可以辨认和提取多语言文本中的字符信息,并具有广泛的应用场景,包括文档处理、图像笔墨提取、主动化数据录入等。
以下是PaddleOCR的重要特点和功能:
1、多语言支持:PaddleOCR支持多种语言的文本辨认,包括英语、中文、日语、韩语、法语、德语、西班牙语等。它可以处理不同语言的文本,并满足跨国应用的需求。
2、多种模子选择:PaddleOCR提供了多种预训练的OCR模子供选择,包括文本检测模子和文本辨认模子。文本检测模子用于检测文本区域,而文本辨认模子用于辨认文本内容。用户可以根据自己的需求选择恰当的模子。
3、高准确率和性能:PaddleOCR接纳了深度学习技能,利用预训练的神经网络模子实现高准确率的文本辨认。它在大规模数据集上举行了训练和优化,可以或许在各种图像条件下辨认出准确的字符信息,并具有较高的性能和服从。
4、强盛的功能扩展性:PaddleOCR提供了丰富的功能扩展接口和工具,利用户可以自定义和定制OCR模子。用户可以根据自己的数据集和应用场景举行模子训练、微调和优化,以进一步提高辨认的准确性和顺应性。
5、开源和社区支持:PaddleOCR是一个开源项目,具有活跃的社区支持。用户可以自由检察和修改源代码,也可以参与社区讨论和贡献。这为用户提供了一个共享和互助的平台,以促进OCR技能的发展和应用。
3、EasyOCR

https://github.com/JaidedAI/EasyOCR

EasyOCR是一种简单易用的开源OCR(光学字符辨认)工具,旨在辨认和提取多语言文本中的字符信息。它提供了一种快速而准确的方式来将印刷体字符转换为可编辑的文本,可以应用于多种场景,包括文档扫描、图像笔墨提取、主动化数据录入等。EasyOCR 是由 Jaided AI 公司创建的。全语种的(包括80+门外语辨认),不但单针对中文,所以它的官方文档是英文。
以下是EasyOCR的重要特点和功能:
1、多语言支持:EasyOCR支持多种语言的文本辨认,包括英语、中文、日语、韩语、法语、德语、西班牙语等。这使得它可以或许处理不同语言的文本,并满足跨国应用的需求。
2、高准确率:EasyOCR接纳了基于深度学习的方法,利用深度神经网络模子来实现高准确率的文本辨认。这些模子颠末大规模数据的训练和优化,可以或许在各种图像条件下辨认出准确的字符信息。
3、简单易用:EasyOCR注意用户友好性,提供了简单易用的API和下令行界面,利用户可以或许轻松集成和利用该工具。无需复杂的设置和调优,即可举行快速的文本辨认。
4、支持多种图像格式:EasyOCR可以或许处理多种常见的图像格式,包括JPEG、PNG、BMP等。这使得用户可以利用各种图像来源,如扫描仪、手机拍摄等,举行文本辨认。
5、高性能:EasyOCR针对服从举行了优化,可以或许在较短的时间内处理大量的图像并举行文本辨认。这对于须要处理大批量图像或实时应用的场景非常有效。
官方demo:
https://www.jaided.ai/easyocr/
4、chineseocr

https://github.com/chineseocr/chineseocr

它基于 YOLO V3 与 CRNN 实现中文自然场景笔墨检测及辨认
如果要做个性化的话,Chineseocr框架相对来说非常方便,只须要修改对应模块的函数就可以,因为本身这些模块其实就是可扩展的,好比后续pull request到项目里的lstm推理和ncnn核扩展。
5、chineseocr_lite

https://github.com/DayBreak-u/chineseocr_lite

ChineseOCR Lite是一种基于深度学习的开源OCR(光学字符辨认)引擎,旨在辨认和提取中文文本中的字符信息。它利用深度神经网络来实现高准确率的文本辨认功能,并且具有较小的模子体积和较快的辨认速率。
以下是一些ChineseOCR Lite的重要特点和功能:
1、中文文本辨认:ChineseOCR Lite专注于中文文本的辨认和提取。它可以处理印刷体中笔墨符,并可以或许在各种图像中准确辨认和提取文本信息。
2、深度学习模子:该引擎接纳深度神经网络模子,通常利用卷积神经网络(CNN)和循环神经网络(RNN)的组合。这种模子可以或许学习和明白字符的特性,并可以或许对复杂的文本举行准确的辨认。
3、开源和可定制:ChineseOCR Lite是一个开源项目,这意味着用户可以自由地检察和修改源代码,以满足自己的需求。用户可以根据自己的数据集和应用场景举行训练和微调,以提高辨认的准确性和性能。
4、小模子体积:ChineseOCR Lite偏重于计划轻量级的模子,以减小模子的体积和内存占用。这使得它可以或许在嵌入式装备或资源受限的环境中运行,提供实时的文本辨认能力。
5、高速辨认:由于模子的小尺寸和优化,ChineseOCR Lite可以或许快速处理图像并举行实时的文本辨认。这对于须要快速处理大量图像或实时应用的场景非常有效。
超轻量级中文ocr,支持竖排笔墨辨认, 支持ncnn推理 , psenet(8.5M) + crnn(6.3M) + anglenet(1.5M) 总模子仅17M。
相比 chineseocr,chineseocr_lite 接纳了轻量级的主干网络 PSENet,轻量级的 CRNN 模子和行文本方向分类网络 AngleNet。只管要实现多种能力,但 chineseocr_lite 总体模子只有 17M。目前 chineseocr_lite 支持任意方向笔墨检测,在辨认时会主动判定文本方向。
6、cnocr

https://github.com/breezedeus/CnOCR

cnocr是一个基于深度学习的中文OCR(光学字符辨认)工具,专门用于辨认和提取中文文本中的字符信息。它接纳了深度神经网络模子,具有高准确率和较快的辨认速率。
以下是cnocr的重要特点和功能:
1、中文文本辨认:cnocr专注于中文文本的辨认和提取。它可以或许处理印刷体中笔墨符,并可以或许在各种图像中准确辨认和提取中文文本信息。
2、基于深度学习:cnocr利用深度神经网络模子举行文本辨认。这种模子可以或许学习和明白字符的特性,并可以或许对复杂的中文文本举行准确的辨认。
3、简单易用:cnocr提供了简单易用的API和下令行界面,利用户可以或许轻松集成和利用该工具。无需复杂的设置和调优,即可举行快速的中文文本辨认。
4、高准确率:由于接纳了深度学习模子,cnocr具有较高的准确率,可以或许辨认出复杂字形和字体的中笔墨符。
5、快速辨认:cnocr颠末优化,可以或许在较短的时间内处理图像并举行实时的中文文本辨认。这对于须要快速处理大量图像或实时应用的场景非常有效。
7、商业付费OCR

1)腾讯OCR(付费) - AI 底子产物模块

AI 底子产物
https://cloud.tencent.com/document/product/866/17624

2)阿里OCR(付费) - 阿里灵杰AI开放服务

阿里灵杰AI开放服务
https://help.aliyun.com/document_detail/442328.html?spm=a2c4g.295341.0.0.5bc4525aeKeSzs

3) 百度OCR (付费) - 百度AI开放能力

百度AI开放能力
https://ai.baidu.com/tech/ocr

五、重要开源项目对比和结论

1、项目优缺点对比

项目
优点
缺点
tesseract
1、github上面star非常多,项目非常活跃
2、多语言支持:Tesseract支持多种语言的文本辨认,可以处理多种语言的文本
3、后面做背书的公司非常强(google)
4、Tesseract提供了扩展接口和工具,可以自定义训练和优化OCR模子
1、不是专门针对中文场景
2、相干文档重要是英文,对于阅读和明白起来有一定困难
3、学习成本比较高
4、对于复杂字形和字体的辨认准确性较低
5、与其他OCR相比,Tesseract的准确率大概相对较低
PaddleOCR
1、github上面star非常多,项目非常活跃
2、模子只针对中文举行训练
3、百度后面做背书,公司非常强
4、提供了多种预训练模子和接口,支持用户举行自定义训练和优化
5、辨认的精确度比较高
1、安装和设置相对复杂一些,须要一定的技能知识和履历
2、对于一些较小的笔墨或低分辨率的图像,PaddleOCR的性能大概受到影响
3、利用的训练模子是基于百度公司自己的PaddlePaddle框架,对于小公司来说并不主流(对比于ts大概pytorch),所利用深度学习框架为后续其他深度学习无法做很好的铺垫
4、项目整体比较复杂,学习成本较高
EasyOCR
1、github上面的star也是比较多
2、支持的语言也黑白常多的,多达80多种
3、辨认的精确度尚可
1、从官方的页面体验来说辨认的速率较慢
2、辨认的笔墨种类多,学习难度较高
3、相干的官方文档是基于英文的,学习难度较高,对于新手不太友好
4、由于模子较大,EasyOCR的内存占用较高
chineseocr
1、github上面的star也是比较多
2、专门针对中文举行学习和训练的模子
3、具有一定的准确性和可扩展性
1、须要一定的技能知识和履历来举行安装和设置。
2、文档和社区支持相对较少
chineseocr_lite
1、github上面的star也是比较多
2、专门针对中文举行学习和训练的模子
3、比较轻量级,具有较小的模子和内存占用
4、由于模子较小,chineseocr_lite具有较快的文本辨认速率
1、因为没有大厂和公司的背书, 所以存在一些bug
2、对于复杂场景下的结果不佳
3、准确率相对较低
4、功能和扩展性相对有限
CNOCR
1、高准确率:cnocr利用深度学习模子实现高准确率的中文文本辨认。
2、简单易用:cnocr提供了简单易用的API和下令行界面,方便用户集成和利用。
3、快速辨认:cnocr颠末优化,可以或许快速处理图像并举行实时的中文文本辨认。
1、依赖深度学习框架:cnocr依赖于深度学习框架,因此在利用之前须要安装相应的框架和依赖库。
2、仅支持中文文本:cnocr重要用于中文文本辨认,对于其他语言的文本辨认支持有限。




2、综合对比

Tesseract: Tesseract是一个成熟且广泛利用的OCR引擎,具有强盛的社区支持和多语言的辨认能力。它是开源的,可扩展性强,但准确度相对其他工具大概略低一些。对于简单的文本辨认任务,Tesseract大概是一个简单易用的选择。
PaddleOCR: PaddleOCR是基于飞桨深度学习平台的OCR工具,具有多语言支持和较高的准确率。它提供了多种预训练模子和自定义训练的功能,适用于复杂的文本辨认任务。然而,PaddleOCR的安装和设置大概相对复杂一些。
EasyOCR: EasyOCR是一个简单易用的OCR工具,支持多语言和多种字体的文本辨认。它具有较高的准确率,并提供简单的API和界面,便于集成和利用。对于快速摆设和简单的文本辨认需求,EasyOCR大概是一个不错的选择。
chineseocr: chineseocr是一个开源的中文OCR工具,具有一定的准确性和可扩展性。然而,它的文档和社区支持相对较少,大概须要一定的技能知识和履历举行安装和设置。
chineseocr_lite: chineseocr_lite是一个轻量级的中文OCR工具,具有较小的模子和快速辨认速率。然而,它的准确率相对较低,适用于一些简单的文本辨认场景。
cnocr: cnocr是一个专门用于中文文本辨认的OCR工具,基于深度学习模子,具有较高的准确率和较快的辨认速率。它适用于中文文本的辨认和提取任务,但对于其他语言的支持大概有限。
对于简单易用性和准确度高的要求,EasyOCR和cnocr大概是较好的选择。EasyOCR提供了简单易用的API和界面,适用于快速摆设和简单的文本辨认任务。而cnocr则专注于中文文本辨认,具有较高的准确率和较快的辨认速率。根据具体的需求和现实环境,可以选择恰当自己的OCR工具。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

尚未崩坏

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表