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 到项目目录。

相关推荐
我会好好吃饭歌4 天前
医疗单据隐私脱敏开源项目:OCR + Vision LLM + 四点定位打码,适配弯曲、旋转、复杂拍摄场景
图像处理·python·开源项目·paddleocr·医疗ai·隐私脱敏
AI数据皮皮侠5 天前
基于XGBoost+LSTM+SARIMA模型的非线性时间序列预测(Paddle)
人工智能·lstm·paddle
开开心心_Every9 天前
文字转语音无字数限,对接微软接口比付费爽
运维·服务器·人工智能·edge·pdf·paddle·segmentfault
xuedeyumu12 天前
Paddle ocr基本识别
ocr·paddle
Pyeako13 天前
PyQt5 + PaddleOCR实战:打造桌面级实时文字识别工具
开发语言·人工智能·python·qt·paddleocr·pyqt5
:mnong14 天前
全图纸语义理解升级分析
python·openvino·paddleocr·qt6.3·paddleocr-vl
skywalk816323 天前
训推一体化的AI飞桨套件:paddlex初探,还是不太顺利
开发语言·paddle
房开民1 个月前
paddle 文本检测识别模型转为onnx
开发语言·r语言·paddle
房开民1 个月前
基于paddle模型 文本识别
paddle