OCR-paddleocr

news2025/7/22 16:22:04
PaddleOCR 分为 Detection(文本检测)、Direction classifier(方向分类器)和  Recognition(文本识别)三部分,因此 需要三个模型

一、介绍

  • PaddleOCR是一款超轻量、中英文识别模型
  • 目标是打造丰富、领先、实用的文本识别模型/工具库
  • 3.5M实用超轻量OCR系统,支持在服务器,移动,嵌入式和IoT设备之间进行培训和部署
  • 同时支持中英文识别;支持倾斜、竖排等多种方向文字识别
  • 支持GPU、CPU预测
  • 可运行于Linux、Windows、MacOS等多种系统
  • 用户既可以通过PaddleHub很便捷的直接使用该超轻量模型,也可以使用PaddleOCR开源套件训练自己的超轻量模型
体积小、运行快、简单方便、性能好、中英文

二、安装

1、如果机器上装了 CUDA 9 或 CUDA 10(参考windows10安装CUDA),请运行:python3 -m pip install -i Simple Index paddlepaddle-gpu;
   没有可用的GPU,则安装CPU版本:python3 -m pip install -i Simple Index paddlepaddle
2、pip3 install -i Simple Index "paddleocr>=2.0.1"
windows上安装会报错:提示需要安装 Microsoft Visual C++ 14.0
解决:下载python_Levenshtein的whl文件,pip安装
linux模型保存在: /root/.paddleocr/whl/,分别对应检测、识别、分类

三、paddleocr使用

3.1、参数

Parameter
Description
Default value
use_gpu
是否启用GPU
TRUE
gpu_mem
GPU memory size used for initialization
8000M
image_dir
The images path or folder path for predicting when used by the command line
det_algorithm
选择的检测算法类型
DB
det_model_dir
文本检测推理模型文件夹。 参数传递有两种方式:
  1. None:自动将内置模型下载到 /root/.paddleocr/det ; 
  2. 自己转换的推理模型的路径,模型和params文件必须包含在模型路径中
None
det_max_side_len
图像长边的最大尺寸。 当长边超过这个值时,长边会调整到这个大小,短边会按比例缩放
960
det_db_thresh
Binarization threshold value of DB output map
0.3
det_db_box_thresh
The threshold value of the DB output box. Boxes score lower than this value will be discarded
0.5
det_db_unclip_ratio
The expanded ratio of DB output box
2
det_east_score_thresh
Binarization threshold value of EAST output map
0.8
det_east_cover_thresh
The threshold value of the EAST output box. Boxes score lower than this value will be discarded
0.1
det_east_nms_thresh
The NMS threshold value of EAST model output box
0.2
rec_algorithm
选择的识别算法类型
CRNN(卷积循环神经网络)
rec_model_dir
文本识别推理模型文件夹。 参数传递有两种方式:
  1. None:自动将内置模型下载到 /root/.paddleocr/rec ; 
  2. 自己转换的推理模型的路径,模型和params文件必须包含在模型路径中
None
rec_image_shape
图像形状识别算法
"3,32,320"
rec_batch_num
When performing recognition, the batchsize of forward images
30
max_text_length
识别算法可以识别的最大文本长度
25
rec_char_dict_path
the alphabet path which needs to be modified to your own path when  rec_model_Name  use mode 2
./ppocr/utils/ppocr_keys_v1.txt
use_space_char
是否识别空格
TRUE
drop_score
按分数过滤输出(来自识别模型),低于此分数的将不返回
0.5
use_angle_cls
是否加载分类模型
FALSE
cls_model_dir
分类推理模型文件夹。 参数传递有两种方式:
  1. None:自动下载内置模型到 /root/.paddleocr/cls ; 
  2. 自己转换的推理模型的路径,模型和params文件必须包含在模型路径中
None
cls_image_shape
图像形状分类算法
"3,48,192"
label_list
label list of classification algorithm
['0','180']
cls_batch_num
When performing classification, the batchsize of forward images
30
enable_mkldnn
是否启用 mkldnn
FALSE
use_zero_copy_run
Whether to forward by zero_copy_run
FALSE
lang
支持语言,目前只支持中文(ch)、English(en)、French(french)、German(german)、Korean(korean)、Japanese(japan)
ch
det
ppocr.ocr 函数执行时启用检测
TRUE
rec
ppocr.ocr func exec 时启用识别
TRUE
cls
Enable classification when  ppocr.ocr  func exec((Use use_angle_cls in command line mode to control whether to start classification in the forward direction)
FALSE
show_log
Whether to print log
FALSE
type
Perform ocr or table structuring, 取值在 ['ocr','structure']
ocr
ocr_version
OCR型号版本号,目前模型支持列表如下:
  • PP-OCRv3支持中英文检测、识别、多语言识别、方向分类器模型;
  • PP-OCRv2支持中文检测识别模型;
  • PP-OCR支持中文检测、识别 和方向分类器、多语言识别模型
PP-OCRv3

3.2、基本使用

测试数据集: PaddleOCR provides a series of test images, click  here  to download,包含测试图片、测试图表、字体
1、文本检测、方向分类、文本识别:设置参数--use_gpu false禁用gpu设备,--use_angle_cls true 加载分类模型
paddleocr --image_dir ./imgs_en/img_12.jpg --use_angle_cls true --lang en --use_gpu false
输出将是一个列表,每个项目包含边界框、文本和识别置信度
2、仅文本检测:将 --rec 设置为 false
paddleocr --image_dir ./imgs_en/img_12.jpg --use_angle_cls true --lang en --use_gpu false --rec false
输出将是一个列表,每个项目仅包含边界框
3、仅文本识别:将 --det 设置为 false
paddleocr --image_dir ./imgs_en/img_10.jpg --use_angle_cls true --lang en --use_gpu false --det false
输出将是一个列表,每个项目都包含文本和识别置信度:

四、代码使用

检测、角度分类和识别
from paddleocr import PaddleOCR, draw_ocr
# Paddleocr supports Chinese, English, French, German, Korean and Japanese.
# You can set the parameter `lang` as `ch`, `en`, `fr`, `german`, `korean`, `japan` to switch the language model in order.
ocr = PaddleOCR(
    use_angle_cls=True,
    lang='en',
    use_gpu=False,
    det_model_dir="/root/.paddleocr/whl/det/en/en_PP-OCRv3_det_infer/", # 检测模型
    cls_model_dir="/root/.paddleocr/whl/cls/ch_ppocr_mobile_v2.0_cls_infer/", # 分类模型
    rec_model_dir="/root/.paddleocr/whl/rec/en/en_PP-OCRv3_rec_infer/" # 识别模型
)  # need to run only once to download and load model into memory

img_path = '/ppocr_img/imgs_en/img_12.jpg'
result = ocr.ocr(img_path, cls=True)
for line in result:
    print(line)

# draw result
from PIL import Image
image = Image.open(img_path).convert('RGB')
boxes = [line[0] for line in result]
txts = [line[1][0] for line in result]
scores = [line[1][1] for line in result]
im_show = draw_ocr(image, boxes, txts, scores, font_path='./fonts/simfang.ttf') # 字体需要准备
im_show = Image.fromarray(im_show)
im_show.save('result.jpg')
输出:

五、easyocr VS paddleocr

easyocr识别结果:
paddleocr识别结果:
paddleocr更准确

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【软件测试】测试人填坑?测试工作中的坑成长经历,填着填着就成了神......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 小刘: 之…

深度强化学习DRL现存问题和训练指南(D3QN(Dueling Double DQN))

目录 强化学习 问题 好用的算法标准 表现好 减小学习曲线的波动 On-Policy和off-Policy区别 学习方式 采样数据利用 学习本质 优缺点 DQN 创新点 优点 缺点 MDP和POMDP 结果图 DQN DDQN Dueling DQN 参数 iteration episode epoch Batch_Size Experime…

全新电商版本答案——全民拼购,越拼越得,白嫖产品不是梦

根据国家市场监督管理总局自2020年12月1日起发布的《规范促销暂行规定》第十二条的规定,为了推广自己的平台商城或商品,获取流量,采用新购买模式运营的平台通过附带给未被选中的参与者一定的奖金或者其他利益,属于有奖销售。 在此…

RS编码译码误码率性能matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 纠错编码技术在卫星通信、移动通信及数字存储等领域已获得了广泛的应用。RS码作为其中最重要的码类之一,具有优良的纠随机错误和突发错误的能力,被空间数据系统咨询委员会(CCSDS)作为一种…

记录安装Cytoscape的过程

一、安装前的准备工作 1、先java 看了大佬们的安装教程: 看到说先要安装对应的Java才能下载相应的cytoscape,因cytoscape是基于java的软件。 cytoscape安装教程1 cytoscape安装教程2 然后,自查了自己电脑上的Java版本,应该为jdk 11&#x…

【js】【爬虫】fetch + json-server 快速搭建爬虫服务器环境及数据后续处理(突破session缓存大小限制)

文章目录导读需求开发环境json-server使用安装json-server创建数据文件db.json运行服务器修改默认端口json-server提供的线上服务(不推荐)fetch上传数据到json-server服务器通过fetch新增数据报错Error: Insert failed, duplicate id数据后续处理打开导入…

ShellBrowser Delphi,Delphi组件功能和工具

ShellBrowser Delphi,Delphi组件功能和工具 ShellBrowser基本上被描述为集合的一部分,它能够为用户和开发人员提供Delphi的程序员,以便轻松灵活地访问windows shell性能。ShellBrowserComponents Delphi的使用基本上是能够模拟windows资源管理器的变体。…

阅读源码时:idea中如何使用todo标记、活动模板 (史上最全)

接下来, 尼恩要带大家 完成一个 超级牛逼的 大厂offer 收割机项目—— 100Wqps 三级组件 实操, 实操中,用到 caffeine 并且,尼恩要带大家 穿透式 、起底式的 学习 caffeine 的源码和架构, caffeine 的源码 特别复杂…

Linux之service服务-实现程序脚本开机自启

一、什么是.service文件? Linux中.service文件是某项服务对应的配置文件,可用于systemd管理和控制的服务的设置。 .service 文件通常包含3个模块: [Unit] 控制单元,表示启动顺序和依赖关系。[Service] 服务,表示…

LeetCode HOT 100 —— 23.合并K个升序链表

题目 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 思路 在做本题之前,先考虑一下,如何合并两个有序链表,见 21.合并两个有序链表 最直接的思路就是&am…

聊跨境:一年增长60%!人人都说跨境电商难做,但红利仍在(Starday)

随着经济全球化的发展,互联网的普及和跨境运输网络的日益发达,世界各国之间的贸易往来越来越频繁,跨境电商已然成为时代的主题。 近年来国家出口跨境电商利好政策的连续出台,加上《电商法》的保驾护航以及跨境电商从业者的积极推…

逻辑回归(logistic regression)

逻辑回归 一、假设函数 hθ(x)g(θTX)11e−θTX(Sigmoid函数)h_\theta(x) g(\theta^TX)\frac{1}{1e^{-\theta^TX}} \qquad \qquad \qquad (Sigmoid函数) hθ​(x)g(θTX)1e−θTX1​(Sigmoid函数) X取值范围是(−∞,∞)(-\infty, \infty)(−∞,∞) Y的取值范围是(0, 1) {θT…

基于FPGA的高速数据采集系统实现

欢迎订阅《FPGA学习入门100例教程》、《MATLAB学习入门100例教程》 目录 一、理论基础 二、核心程序 2.1锁存器模块 2.2双口地址计数器模块 2.3双口RAM模块 2.4时钟分频模块 三、测试结果 一、理论基础 高速数据采集在军用民用领域都有着广泛的应用。高速数据采集系统在…

了解计算机里非门组成的部分

计算机中有一块硬件不是完全由NAND门构成的。这并不是把电脑变成电脑的必要条件,但大多数电脑都有一些。它们被用来从模拟的东西变成数字的东西,或者从数字变成模拟的东西。 人类的眼睛和耳朵会对类似的事物做出反应。我们听到的东西可以是响亮的&#x…

LeetCode 513找树左下角的值 112路径总和113路径总和ii 106从中序与后序遍历序列构造二叉树

文章目录513找树左下角的值c 代码实现python 代码实现112路径总和c 代码实现python 代码实现113路径总和iic代码实现python 代码实现106从中序与后序遍历序列构造二叉树c代码实现python 代码实现513找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 …

Java 基础(继承、接口、抽象)

面试题继承继承的特点super关键字继承中变量访问特点继承中构造访问特点为什么子类中所有构造方法默认都会访问父类无参构造方法。如果父类中没有无参构造继承中成员方法访问特点重写概述应用注意事项方法重写和重载有什么区别?静态代码块、构造代码块,构…

安泰测试-安捷伦N5182A射频矢量信号发生器

产品简介: 安捷伦N5182A信号源技术支持Agilent N5182A MXG 射频矢量信号发生器 N5182A主要特性与技术指标 信号表征 100 kHz ~ 3 或 6 GH 使用高度可靠、快速切换的电子衰减器,在 3 GHz 时 >23 dBm W-CDMA 动态范围:≤-73…

指纹浏览器功能对比:AdsPower VS Multilogin

近期,Conversion Club 发起了“最佳指纹浏览器”提名评选活动,AdsPower、Dolphin 和Multilogin 并列入选,成为国际认可的专业指纹浏览器。上期,龙哥出了一篇有关AdsPower与Dolphin 的对比文章,后台收到私信问能不能也出…

7位世界著名的制图师及其相关的地图介绍

制图是地图制作的艺术和科学,而作为制图师需要注意很多的细节,包括可视化数据以及地理的全面知识等。地图在每个人的生活中都发挥着一定的影响力,尤其是对于一些著名的制图师。本文将介绍7位世界著名的制图师及其相关的地图,让我们…

鸽群优化算法(Pigeon-inspired Optimization algorithm, PIO)附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …