PaddleOCR入门到实战教程

一、PaddleOCR简介

PaddleOCR 是基于百度飞桨(PaddlePaddle)深度学习框架开发的开源 OCR 工具库。它有以下特点:

1、超轻量级:PP-OCR 系列模型非常小(几 MB 大小),但在 CPU 和移动端上速度飞快。

2、通用性强:支持中、英、法、德、韩、日等 80 多种语言的识别。

3、功能丰富:不仅支持文字检测和识别,还支持版面分析、表格识别等复杂任务。

二、环境搭建

这里建议新建一个虚拟环境来安装PaddleOCR,避免与其他python库冲突。

示例代码:

复制代码
conda create -n paddleocr python=3.9

参考以下说明文档:

doc/doc_ch/quickstart.md · PaddlePaddle/PaddleOCR - Gitee.com

发现需要安装两个包:paddlepaddle,paddleocr

2.1 paddleocr(飞桨)安装

2.1.1 有NVIDIA显卡

如果机器安装的是CUDA9或CUDA10,请运行以下命令安装

python 复制代码
python3 -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple

其他CUDA版本的安装方式参考以下链接:

开始使用_飞桨-源于产业实践的开源深度学习平台

2.1.2 只有CPU/通用版本

请运行以下命令:

python 复制代码
python3 -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

2.2 PaddleOCR的安装

python 复制代码
pip install "paddleocr>=2.0.1" # 推荐使用2.0.1+版本

三、快速上手------命令行

这里以古诗图片为例,代码:

python 复制代码
paddleocr --image_dir ./shi.jpg --use_angle_cls true --lang ch

参数介绍:

--image_dir: 图片路径。

--use_angle_cls: 是否加载方向分类器(如果是倒着的文字能自动纠正)

--lang: 语言,ch 代表中文,en 代表英文。

结果: 终端会输出识别到的文字列表,包含:[[文字位置坐标], (识别结果, 置信度)]

四、实战------识别唐诗案例

唐诗图片如下:

代码如下:

python 复制代码
from paddleocr import PaddleOCR
# 参数含义参考:
'''
https://blog.csdn.net/qq_41273999/article/details/135868038?ops_request_misc=%257B%2522request%255Fid%2522%253A%252299FC8A
'''
ocr = PaddleOCR(use_angle_cls=True, use_gpu=False, show_log=False, lang='ch')    # 'ch' 就是识别中文

# 如果报路径错误,使用一下代码,指定模型下载路径
# ocr = PaddleOCR(use_angle_cls=True, use_gpu=True,
#                 det_model_dir='ch_PP-OCRv3_det_infer', # 文本检测
#                 rec_model_dir='ch_PP-OCRv3_rec_infer', # 文本识别
#                 cls_model_dir='ch_ppocr_mobile_v2.0_cls_slim_infer', # 旋转文本(通用)
#                 lang="ch")

# ocr = PaddleOCR(use_angle_cls=True, use_gpu=False, show_log=False, # 关闭日志
#                 det_model_dir='en_PP-OCRv3_det_infer', # 文本检测
#                 rec_model_dir='en_PP-OCRv3_rec_infer', # 文本识别
#                 cls_model_dir='ch_ppocr_mobile_v2.0_cls_slim_infer', # 旋转文本(通用)
#                 lang="en")

img_path = r'tangshi2.png'
result = ocr.ocr(img_path, cls=True)
print(result)
for line in result[0]:
    print(line[1][0])

关于代码需要注意:

1、代码中 ocr = PaddleOCR(use_angle_cls=True, use_gpu=False, show_log=False, lang='ch') 的可选参数有很多,具体参数详解请参考:链接

2、模型自动下载 :第一次运行代码时,PaddleOCR 会自动下载轻量级模型(PP-OCRv4)到 ~/.paddleocr/ 目录下,无需手动下载

3、数据结构result 的返回值比较复杂,是一个嵌套列表。最核心的数据是 (text, score),分别代表识别出的文本内容和置信度(0-1之间,越大越准)。

4、字体问题draw_ocr 函数如果需要绘制中文结果,必须指定 font_path,否则中文会显示为乱码。你可以从 Windows 的 C:\Windows\Fonts 下复制一个 simhei.ttfsimfang.ttf 到项目目录。

相关推荐
molihuan4 天前
最新 Paddle-Lite Android平台编译
android·ocr·paddle·推理·端侧·paddle lite
donoot4 天前
双层 PDF 体积暴涨(18MB 原图 → 200MB PDF)完整原因剖析 + 针对性优化方案
python·pymupdf·paddleocr·双层pdf
donoot5 天前
PaddleOCR + PyMuPDF 生成【全兼容双层 PDF】完整实操指南
人工智能·算法·pymupdf·paddleocr·双层pdf
满怀冰雪6 天前
08-Paddle 神经网络层入门:Linear、激活函数与 Sequential
神经网络·机器学习·paddle
蓝创工坊Blue Foundry7 天前
PaddleOCR 本地部署教程:小模型 OCR 如何完成字段提取到 Excel
pdf·自动化·ocr·excel·paddlepaddle·paddle
满怀冰雪7 天前
09-使用 paddle.nn 构建第一个多层感知机
python·深度学习·神经网络·paddle
蓝创工坊Blue Foundry8 天前
个人藏书太多怎么整理?用 OCR 字段提取汇总成电子书目
pdf·ocr·excel·文心一言·paddlepaddle·paddle
求真学习10 天前
最新百度PaddleOCR开源HPD-Parsing,提出层级并行文档解析,1B模型解码步数最高压缩18倍,文档解析效率提升3倍!
百度·ocr·pdf解析·paddleocr·文档解析
山石满棠10 天前
基于python313环境构建paddle-ocr镜像
ocr·paddle
蓝创工坊Blue Foundry12 天前
PDF 批量提取指定内容到 Excel:按字段整理多个 PDF 的方法
pdf·ocr·excel·文心一言·paddlepaddle·paddle