从零开始使用最新版Paddle【PaddleOCR系列】——文本检测和识别模型的环境安装与基础使用

目录

一、环境安装配置

        1.基本环境配置:torch与paddlepaddle安装

        2.专精任务配置:PaddleX与PaddleOCR插件安装

        3.测试数据配置:测试数据集下载与验证

二、模型基础使用

        1.使用OCR模型预测

        2.使用Detect检测模型

        3.使用Recognition识别模型


一、环境安装配置

        1.基本环境配置:torch与paddlepaddle安装

        参考官方文档地址:https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/installation/paddlepaddle_install.md

        如果无法访问,只需复制地址,将其中github改为国内gitee即可,下述同理。

        国内gitee访问:https://gitee.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/installation/paddlepaddle_install.md

        首先创建基本的虚拟环境,安装必要的torch计算平台和paddlepaddle库gpu版本。

# 虚拟环境
conda create -n paddledet python=3.9

conda activate paddle

# 安装pytorch基于CUDA11.8
pip install torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 --index-url https://download.pytorch.org/whl/cu118

# 安装paddlepaddle基于CUDA11.8
pip install paddlepaddle-gpu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/

        2.专精任务配置:PaddleX与PaddleOCR插件安装

        参考官方文档地址:https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/installation/installation.md

        百度开源的paddle项目包含多个领域的深度学习应用,而本文主要是记录其中负责OCR任务的模型和模块。

        要使用Paddle中强大的模型库以及训练都基于一个集成的平台PaddleX。

        PaddleX平台Github地址:https://github.com/PaddlePaddle/PaddleX

        推荐直接使用Git Clone指令从Github上克隆PaddleX项目源码并安装。pip install -e 代表当前项目的PaddleX源码修改会同时作用在conda安装的env虚拟环境包内,这样方便调试修改。注意一定要在虚拟环境激活的情况下,安装PaddleX。

# 克隆并安装PaddleX命令行指令

# 首先要cd到自己项目地址
cd xxx

## 国外github地址:慢
git clone https://github.com/PaddlePaddle/PaddleX.git
## 国内gitee地址:快
git clone https://gitee.com/PaddlePaddle/PaddleX.git

cd PaddleX
pip install -e .

        还需要补充安装一下ujson包,不过不装影响也不大,只是在装插件时会有警告。

# 补充安装依赖包——为后续插件安装准备
pip install ujson

        安装好PaddleX工具平台以后,就可以安装特定任务的模型了,官方文档给出了安装指令和不同任务对应的插件模型名称。

# 安装特定插件模型指令
paddlex --install PaddleXXX

# example:文本检测识别任务
paddlex --install PaddleOCR

        3.测试数据配置:测试数据集下载与验证

        参考官方文档地址:https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/module_usage/tutorials/ocr_modules/text_detection.md

        下载官方提供的数据集测试环境安装是否成功。

# web下载官方数据集压缩包到项目路径下dataset目录
wget https://paddle-model-ecology.bj.bcebos.com/paddlex/data/ocr_det_dataset_examples.tar -P ./dataset

# 解压
tar -xf ./dataset/ocr_det_dataset_examples.tar -C ./dataset/

        paddlex提供了验证数据集是否构建正确的工具,只需命令行指令就可以运行,这对后续微调训练提供了便利。下面使用官方数据集测试是否能成功运行。

        命令行参数:其中 -c 后对应数据集对应训练模型配置文件地址,第一个 -o 对应模式是检验数据集(check_dataset),第二个 -o 对应数据集地址。

python main.py -c paddlex/configs/text_detection/PP-OCRv4_mobile_det.yaml -o Global.mode=check_dataset -o Global.dataset_dir=./dataset/ocr_det_dataset_examples

         如果数据集没有问题会报绿字,并生成数据集统计结果。

二、模型基础使用

         PaddleX提供了非常强大的命令行和 python 脚本接口使用方法。下述使用方法只需修改图片路径即可直接检测部署到自己的数据上。OCR实际存在两个阶段的任务:首先是定位到文本框的检测模型 Det,再将检测小图框识别为文字的识别模型 Rec。下面先记录完整ocr直接使用,再记录单独使用(单独使用是为了后续提升精度的微调训练准备)。

        1.使用OCR模型预测

        参考官方文档地址:https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/pipeline_usage/tutorials/ocr_pipelines/OCR.md

        直接使用命令行或者Python脚本的效果是一样的。只需替换 xxx 为实际需要预测图片的地址即可复用。

# 命令行使用
paddlex --pipeline OCR --input xxx --device gpu:0 --save_path ./output/
## 官方数据集测试 xxx = ./dataset/ocr_det_dataset_examples/images
paddlex --pipeline OCR --input ./dataset/ocr_det_dataset_examples/imagess --device gpu:0


# Python脚本
from paddlex import create_pipeline

pipeline = create_pipeline(pipeline="ocr")
output = pipeline.predict("xxx")
for res in output:
    res.print()
    res.save_to_img("./output/")

        第一次使用会自动下载官方模型到本地,要记住下载地址,后续可以将模型地址修改到其他盘以释放C盘压力,或者使用自己训练的模型地址。

        PaddleOCR是基于像素级的检测算法,支持斜方框的检测结果。

         2.使用Detect检测模型

        参考官方文档地址:https://github.com/PaddlePaddle/PaddleX/blob/release/3.0-beta1/docs/module_usage/tutorials/ocr_modules/text_detection.md

        PaddleX也支持单独使用其中模型的操作,这方便了实际部署中的调整,比如如果使用官方模型出现漏字就单独微调训练检测模型即可,如果出现字识别成别的字则训练识别模型。

        使用 python 脚本就可以直接调用官方模型,如果想要自己训练的模型,只需修改create_model 中传入的模型地址即可,默认官方模型第一次使用会下载保存到C盘(如使用OCR模型所示,所有下载的官方模型都保存在此处)。我们可以将其剪贴到当前项目目录,那么传入python脚本的改为加上路径的模型地址。

# 官方模型下载本地保存地址
C:\Users\Administrator\.paddlex\official_models
# 本地部署测试代码
from paddlex import create_model

model = create_model("./official_models/PP-OCRv4_server_det")
output = model.predict("./PaddleX/dataset/ocr_det_dataset_examples/images/train_img_7.jpg", batch_size=1)
for res in output:
    res.print(json_format=False)
    res.save_to_img("./output/")
    res.save_to_json("./output/res.json")

         3.使用Recognition识别模型

        参考官方文档地址:https://github.com/paddlepaddle/PaddleX/blob/release/3.0-beta1/docs/module_usage/tutorials/ocr_modules/text_recognition.md

        下载参考测试的图片到本地,下载地址:https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_rec_001.png

        其使用方法和检测模型没有什么区别,沿用检测模型那一套得到结果即可。代码如下。

from paddlex import create_model

model = create_model("./official_models/PP-OCRv4_server_rec")
output = model.predict("./PaddleX/dataset/ocr_det_dataset_examples/images/general_ocr_rec_001.png", batch_size=1)
for res in output:
    res.print(json_format=False)
    #res.save_to_img("./output/")  #文本识别不支持生成图片
    res.save_to_json("./output/res.json")

        PaddleOCR的安装和基本使用到此大致完成,下一篇文章集中精力记录Paddle微调训练部分,包括构建Paddle要求的训练数据格式,以及如何简单使用命令行训练自己的模型参数。

上一篇:【unity框架开发起步】一些框架开发思维和工具类封装


下一篇:React学习笔记