当前位置: 首页 > news >正文

从零开始使用最新版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.9conda 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.gitcd 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_pipelinepipeline = 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_modelmodel = 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_modelmodel = 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要求的训练数据格式,以及如何简单使用命令行训练自己的模型参数。

        快速链接:https://blog.csdn.net/qq_58718853/article/details/142951746


http://www.mrgr.cn/news/50656.html

相关文章:

  • HT878T 可任意限幅、内置自适应升压的2x8.0W立体声音频功放
  • MySQL【知识改变命运】06
  • 25.3 使用relabel中的drop将对应的无用指标丢弃
  • 【Vercel】Vercel静态部署踩坑
  • 【干货】老师用什么小程序发布期中考试成绩?
  • 第k个排列
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——14.哈希(1)
  • 【PMP】拿到证书之后对自身有什么帮助?
  • docker镜像制作和管理详解
  • 为AI开发者而生,Agent开发专用的IDE
  • 插件集成有哪些痛点和挑战?
  • P11177 [ROIR 2018 Day1] 平方与立方 题解
  • 高精度SAR ADC研究与设计——雷鹏(二)
  • Mac的键盘屏幕需要常清理,你不可缺少的好帮手
  • 10.仓库管理系统(springbootvue3)
  • 从零开始的LeetCode刷题日记:二叉树的迭代遍历
  • 高标准农田信息化与物联网技术的融合
  • 2024年看项目管理软件与工程项目管理的奇妙融合
  • C++学习,标准库 <iterator>
  • vlan的基础知识