Python ocr自动标注数据集,Python ocr哪个速度最快-程序员宅基地

技术标签: 人工智能  

大家好,小编来为大家解答以下问题,Python ocr自动标注数据集,Python ocr哪个速度最快,现在让我们一起来看看吧!

1.pytesseract

1.1简介

Tesseract是一款开源的OCR(Optical Character Recognition,光学字符识别)引擎,最初由HP实验室开发,在2005年后由Google接手并进一步开发和完善。Tesseract支持多种语言文字的检测和识别,包括中文、英语、德语、法语、意大利语等多种主要语言,同时也支持针对特定场景或应用的领域OCR开发pythonturtle画扇形

Tesseract基于机器学习技术,使用了多层神经网络以及支持向量机(SVM)等算法进行文字特征提取和识别。同时,Tesseract通过图像预处理、二值化、斑点去除和边框检测等多个环节优化页面处理流程,并且提供了多种字体、大小、旋转角度和噪声等挑战场景下的训练数据集,使得识别精度可以获得不错的性能表现。

除了提供C++ API之外,Tesseract还为多种编程语言提供了API的封装,如Python、Java、C#等,方便用户快速上手开发应用,可以广泛应用于扫描文档、电子书库入库、自动化办公、图片文字识别搜索等各个领域。

1.2安装部署

pytesseract需要配合安装在本地的tesseract-ocr.exe文件一起使用。具体步骤如下:

  1. python终端利用pip安装pytesseract:
   pip install pytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple/

由于pip默认从国外的源下载包库,速度会非常缓慢,因此可以采用国内的镜像站下载会更加快捷,此处使用的是清华的镜像站,还可以换成其他几个镜像站:

清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
  1. 下载tesseract-ocr.exe。可以从github上下载最新版本:
    github传送门
    github下载可能速度较慢,这里博主已经提前下载好了:可从百度云获取~
    百度云传送门(提取码:qgh2)
    安装步骤:
  • 选择安装语言:直接默认英语-OK
    在这里插入图片描述
  • Next
    在这里插入图片描述
  • Agree
    在这里插入图片描述
  • 由于默认的识别语言是英语,这里我们要在Additional data中勾选中文包,才可以OCR识别中文。(注:这里的vertical指的是识别竖向文本)
    在这里插入图片描述
    安装完成之后就可以在python当中进行实践啦~

1.3应用举例

下面是python应用Tesseract进行文字识别的代码实例:

import pytesseract
from PIL import Image
#英文识别:将路径改为自己要识别的图片路径即可
text1 = pytesseract.image_to_string(Image.open(r"C:\Users\1.png"), lang='eng')
print("英文模式识别结果:",text1)
print("-------------")
#简体中文识别:
text2 = pytesseract.image_to_string(Image.open(r"C:\Users\1.png"), lang='chi_sim')
print("中文模式识别结果:",text2)
print("-------------")
#简体中文与英文混合:
text3 = pytesseract.image_to_string(Image.open(r"C:\Users\1.png"), lang='chi_sim+eng')
print("中英文混合模式识别结果:",text3)

2.PaddleOCR

2.1简介

PaddleOCR是飞桨(PaddlePaddle)推出的一个端到端的光学字符识别开源工具集,支持中文、英文、数字以及特殊符号等各种类型的文字检测、识别和词语整体识别。该工具集使用PaddlePaddle深度学习框架技术,提供了多种OCR模型和算法,包括基于CNN+CTC、DenseNet+CTC等模型,能够针对不同场景和应用提供最优的OCR解决方案。同时,PaddleOCR还集成了OCR精度评估工具,可以快速地评估OCR模型的准确率和鲁棒性。除此之外,PaddleOCR还提供了丰富的API接口和命令行工具,使得用户可以轻松地进行OCR应用的开发和部署。

PaddleOCR除了支持通用文字识别外,还具备大量针对特定领域或行业的OCR功能,例如身份证/银行卡实现、表格识别、汽车VIN码识别、发票识别、名片识别等。相比其他OCR工具,PaddleOCR在识别精度、效率和扩展性等方面都有着较好的表现和广泛的适用性,是目前业内较为流行和优秀的OCR工具之一。

2.2安装部署

PaddleOCR的安装较为简单,直接在终端用pip安装即可,共三部分:

pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install paddleocr -i https://pypi.tuna.tsinghua.edu.cn/simple/

2.3应用举例

from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang="ch")
#要识别图片的路径:
img_path = r"C:\\Users\\3.png"
#识别结果:
result = ocr.ocr(img_path, cls=True)
#结果输出展示:
for line in result[0]:
    print(line)

paddle识别输出结果包含三部分内容:识别文字在图中的位置boxes、识别出来的文本txts、识别结果置信度scores。
这三分存放在result列表中。其结构是这样的:

[[
[第一行的位置,(第一行的内容,得分)],
[第二行的位置,(第二行的内容,得分)],
[第三行的位置,(第三行的内容,得分)] 
  ]]

tips:识别结果为什么在一个总的列表外面又嵌套了一层列表呢?这是由于示例中待识别图片只有一个文字区域,因此我们用result[0]来获取结果,如果图片中有多个文字区域,则会有多个结果列表,所以外面会套一层大的列表来包含各个文字区域的识别结果。通常情况下直接用result[0]即可。
由于boxes、txts、scores混合在列表中不方面使用,这里我们在识别结果的基础上把三项内容提取出来:

boxes = []
txts = []
scores = []
for line in result[0]:
    boxes.append(line[0])
    txts.append(line[1][0])
    scores.append(line[1][1])
print("scores:")
for i in range(len(scores)):
    print (scores[i])
print("txts:")
for i in range(len(txts)):
	#原格式文本输出
    print (txts[i])
    #输出不换行
    #print (txts[i],end = "")
print("boxes:")
for i in range(len(boxes)):
    print (boxes[i])

3.easyocr

3.1简介

EasyOCR是一款基于Python的开源OCR工具,针对中英文、韩语、日语、法语、德语、意大利语、西班牙语和葡萄牙语等多种语言提供快速有效的文字检测和识别功能。EasyOCR采用深度学习技术,使用卷积神经网络(CNN)和循环神经网络(RNN)等模型进行文字检测与识别,并且集成了多种预处理技术、数据增强等方法来优化文字识别效果。

EasyOCR在训练过程中使用了公开数据集和自己构建的实验室数据集相结合的方式,使得训练样本大大增加,从而提高了模型的泛化能力和准确率。除了通用文字识别功能之外,EasyOCR还支持多种特定领域的OCR需求,如身份证、驾驶证、名片、银行卡、车牌号码等,也可以兼容用户自定义训练数据集,满足个性化的OCR需求。

EasyOCR具有易于安装、使用方便、模型轻量化、可扩展性强等特点,在表现和使用体验上超越了Tesseract和其他一些OCR工具。同时,EasyOCR提供的API接口也非常简单易懂,因此受到了广大机器学习开发者和数据科学家的青睐,被应用于各种OCR场景与对出现较好的表现。

3.2安装部署

  1. 通过python终端安装easyocr库
pip install easyocr  -i https://pypi.tuna.tsinghua.edu.cn/simple/
  1. EasyOCR首次运行还需要安装识别模型,运行时会自动安装,但是速度极慢!!!还经常会下载失败,因此这里博主给大家准备好了。
    百度云传送门(提取码:67aj)
    模型下载完成后,需要将model中的文件放到C:\Users\dragon.EasyOCR\model中,这时启动程序就不需要加载模型了

3.3应用举例

import easyocr

#设为中英文混合识别:ch_sim en
reader = easyocr.Reader(['ch_sim','en'], gpu = False) 
#路径改为用户需要识别的图片的路径
result = reader.readtext(r"C:\\Users3.png", detail = 0)
for i in result:
    print(i, end = '')

4.muggle_ocr

4.1简介

Muggle OCR是一款基于Python的开源OCR库,能够支持多种语言文字的检测和识别,包括中文、英文、日文、韩文等多种主要语言。Muggle OCR依托于深度学习技术,采用了卷积神经网络(CNN)和循环神经网络(RNN)等模型进行文字特征提取和识别。

与其他OCR工具不同的是,Muggle OCR使用Tensorflow 2.0框架搭建,并使用Keras API进行模型构建和训练,代码风格简洁清晰易读,其中包含的API也非常直观易用。同时,Muggle OCR还使用Lecun的LeNet-5作为基础卷积神经网络模型,能够有效地降低模型复杂度,减少参数量,提高模型效率和推理速度。此外,Muggle OCR还对图片进行透视变换、二值化、字符分割等预处理方法,提高了文字识别的精度和鲁棒性。

Muggle OCR具备轻量级、快速、易扩展等特点,其被广泛应用于证件识别、汽车VIN码识别、手写数字识别、自然场景文字识别等各种OCR应用场景。由于其开源且易学,越来越多的开发者加入到Muggle OCR的贡献者行列中,这也促进了Muggle OCR全球用户社区的不断壮大。

4.2安装部署

python官网和国内各镜像站点已经将myggle_ocr的库删除了,无法通过pip install安装。博主给大家准备好啦~~
百度云传送门(提取码:deqz)
手动下载后,用vscode或其他IDE打开压缩包所在文件夹:

pip install muggle-ocr-1.0.3.tar.gz -i https://pypi.douban.com/simple --user

tips:如果是直接在cmd里面安装,则压缩包前面要指明其所在路径

4.3应用举例

import muggle_ocr
# 初始化sdk;model_type共两种模式
#1. /ModelType.Captcha 验证码识别模式
sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.Captcha)
#2.ModelType.OCR常规图片识别
#sdk = muggle_ocr.SDK(model_type=muggle_ocr.ModelType.OCR)
#请把路径改为用户下需要识别的图片
with open("C:\\Users\\dragon\\Desktop\\pictures\\6.png",'rb') as f:
    img = f.read()
text = sdk.predict(image_bytes=img)
print(text)

tips:经过实测,muggle_ocr识别验证码的效果要好一些,要识别文本还是建议用前几种方式

5.dddd_ocr

5.1简介

dddd_ocr(懂得都懂_ocr),是一个开源的图像识别库,它主要用于识别和提取图像中的文本信息。该库支持多种图像格式,包括JPEG、PNG、BMP、GIF等,并且可以在多种操作系统上运行。

dddd_ocr的特点包括:

高准确性:dddd_ocr在识别和提取图像中的文本信息方面具有较高的准确率,尤其是对于中文和英文文本的识别效果更佳。
多种功能:dddd_ocr不仅可以识别文本,还可以提取图像中的二维码、车牌号码、条形码等多种信息,同时支持多种语言和文件格式。
易于使用:dddd_ocr的使用非常简单,只需要导入相应的库文件并调用相应的函数即可进行图像识别。
高效性:dddd_ocr采用了分布式计算的方式,可以将识别任务分配到多个节点上进行处理,从而提高了识别速度和效率。
总的来说,dddd_ocr是一个功能强大、易于使用、高效性高的图像识别库,可以广泛应用于文本识别、数据提取、图像处理等领域。

5.2安装部署

直接在python终端用pip命令安装就可以啦~~

pip install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simple/

5.3应用举例

import ddddocr
ocr = ddddocr.DdddOcr()
#请将下面路径改为用户需要识别图片的路径
with open("C:\\Users\\dragon\\Desktop\\pictures\\1.png",'rb') as f:
    img_bytes = f.read()
res = ocr.classification(img_bytes)
print(res)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a17348/article/details/135031473

智能推荐

使用nginx解决浏览器跨域问题_nginx不停的xhr-程序员宅基地

文章浏览阅读1k次。通过使用ajax方法跨域请求是浏览器所不允许的,浏览器出于安全考虑是禁止的。警告信息如下:不过jQuery对跨域问题也有解决方案,使用jsonp的方式解决,方法如下:$.ajax({ async:false, url: 'http://www.mysite.com/demo.do', // 跨域URL ty..._nginx不停的xhr

在 Oracle 中配置 extproc 以访问 ST_Geometry-程序员宅基地

文章浏览阅读2k次。关于在 Oracle 中配置 extproc 以访问 ST_Geometry,也就是我们所说的 使用空间SQL 的方法,官方文档链接如下。http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/gdbs-in-oracle/configure-oracle-extproc.htm其实简单总结一下,主要就分为以下几个步骤。..._extproc

Linux C++ gbk转为utf-8_linux c++ gbk->utf8-程序员宅基地

文章浏览阅读1.5w次。linux下没有上面的两个函数,需要使用函数 mbstowcs和wcstombsmbstowcs将多字节编码转换为宽字节编码wcstombs将宽字节编码转换为多字节编码这两个函数,转换过程中受到系统编码类型的影响,需要通过设置来设定转换前和转换后的编码类型。通过函数setlocale进行系统编码的设置。linux下输入命名locale -a查看系统支持的编码_linux c++ gbk->utf8

IMP-00009: 导出文件异常结束-程序员宅基地

文章浏览阅读750次。今天准备从生产库向测试库进行数据导入,结果在imp导入的时候遇到“ IMP-00009:导出文件异常结束” 错误,google一下,发现可能有如下原因导致imp的数据太大,没有写buffer和commit两个数据库字符集不同从低版本exp的dmp文件,向高版本imp导出的dmp文件出错传输dmp文件时,文件损坏解决办法:imp时指定..._imp-00009导出文件异常结束

python程序员需要深入掌握的技能_Python用数据说明程序员需要掌握的技能-程序员宅基地

文章浏览阅读143次。当下是一个大数据的时代,各个行业都离不开数据的支持。因此,网络爬虫就应运而生。网络爬虫当下最为火热的是Python,Python开发爬虫相对简单,而且功能库相当完善,力压众多开发语言。本次教程我们爬取前程无忧的招聘信息来分析Python程序员需要掌握那些编程技术。首先在谷歌浏览器打开前程无忧的首页,按F12打开浏览器的开发者工具。浏览器开发者工具是用于捕捉网站的请求信息,通过分析请求信息可以了解请..._初级python程序员能力要求

Spring @Service生成bean名称的规则(当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致)_@service beanname-程序员宅基地

文章浏览阅读7.6k次,点赞2次,收藏6次。@Service标注的bean,类名:ABDemoService查看源码后发现,原来是经过一个特殊处理:当类的名字是以两个或以上的大写字母开头的话,bean的名字会与类名保持一致public class AnnotationBeanNameGenerator implements BeanNameGenerator { private static final String C..._@service beanname

随便推点

二叉树的各种创建方法_二叉树的建立-程序员宅基地

文章浏览阅读6.9w次,点赞73次,收藏463次。1.前序创建#include<stdio.h>#include<string.h>#include<stdlib.h>#include<malloc.h>#include<iostream>#include<stack>#include<queue>using namespace std;typed_二叉树的建立

解决asp.net导出excel时中文文件名乱码_asp.net utf8 导出中文字符乱码-程序员宅基地

文章浏览阅读7.1k次。在Asp.net上使用Excel导出功能,如果文件名出现中文,便会以乱码视之。 解决方法: fileName = HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8);_asp.net utf8 导出中文字符乱码

笔记-编译原理-实验一-词法分析器设计_对pl/0作以下修改扩充。增加单词-程序员宅基地

文章浏览阅读2.1k次,点赞4次,收藏23次。第一次实验 词法分析实验报告设计思想词法分析的主要任务是根据文法的词汇表以及对应约定的编码进行一定的识别,找出文件中所有的合法的单词,并给出一定的信息作为最后的结果,用于后续语法分析程序的使用;本实验针对 PL/0 语言 的文法、词汇表编写一个词法分析程序,对于每个单词根据词汇表输出: (单词种类, 单词的值) 二元对。词汇表:种别编码单词符号助记符0beginb..._对pl/0作以下修改扩充。增加单词

android adb shell 权限,android adb shell权限被拒绝-程序员宅基地

文章浏览阅读773次。我在使用adb.exe时遇到了麻烦.我想使用与bash相同的adb.exe shell提示符,所以我决定更改默认的bash二进制文件(当然二进制文件是交叉编译的,一切都很完美)更改bash二进制文件遵循以下顺序> adb remount> adb push bash / system / bin /> adb shell> cd / system / bin> chm..._adb shell mv 权限

投影仪-相机标定_相机-投影仪标定-程序员宅基地

文章浏览阅读6.8k次,点赞12次,收藏125次。1. 单目相机标定引言相机标定已经研究多年,标定的算法可以分为基于摄影测量的标定和自标定。其中,应用最为广泛的还是张正友标定法。这是一种简单灵活、高鲁棒性、低成本的相机标定算法。仅需要一台相机和一块平面标定板构建相机标定系统,在标定过程中,相机拍摄多个角度下(至少两个角度,推荐10~20个角度)的标定板图像(相机和标定板都可以移动),即可对相机的内外参数进行标定。下面介绍张氏标定法(以下也这么称呼)的原理。原理相机模型和单应矩阵相机标定,就是对相机的内外参数进行计算的过程,从而得到物体到图像的投影_相机-投影仪标定

Wayland架构、渲染、硬件支持-程序员宅基地

文章浏览阅读2.2k次。文章目录Wayland 架构Wayland 渲染Wayland的 硬件支持简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为Wayland Architecture .Wayland 架构若是想要更好的理解 Wayland 架构及其与 X (X11 or X Window System) 结构;一种很好的方法是将事件从输入设备就开始跟踪, 查看期间所有的屏幕上出现的变化。这就是我们现在对 X 的理解。 内核是从一个输入设备中获取一个事件,并通过 evdev 输入_wayland

推荐文章

热门文章

相关标签