这里共有三个模块安装部署与训练。版面区域检测、文本检测、文本识别。

一、版面区域检测模块训练

	说明:训练这里只需要用到paddlepaddle、paddlex。所以ocr这里不安装。
以下为CPU安装方式运行,GPU请参考下面的链接。数据集需要自己下载或自己准备,采用COCO类型数据集。 1、下载paddlex项目后,进入该目录并创建虚拟环境3.10。
参考链接:[https://paddlepaddle.github.io/PaddleX/latest/installation/paddlepaddle_install.html#docker](https://paddlepaddle.github.io/PaddleX/latest/installation/paddlepaddle_install.html#docker) 2、先用用 pip 在当前环境中安装飞桨 PaddlePaddle。
`python -m pip install paddlepaddle==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cpu/` 测试输出结果:
`python -c "import paddle; print(paddle.__version__)"` 3、安装paddlex
`pip install -e .` 4、安装插件,比如PaddleDetection、
```

paddlex --install PaddleXXX # 例如PaddleOCR、PaddleDetection

paddlex --install #安装所有插件,不建议,中间出过多次错误。

	paddlex --install --platform gitee.com   # gitee源,安装所有插件。


	5、执行数据集验证:
```
python main.py -c paddlex/configs/modules/layout_detection/PP-DocLayout-L.yaml -o Global.mode=check_dataset -o Global.dataset_dir=./study/train/dataset/det_layout_examples “Check dataset passed !”为验证成功
执行训练命令:
```

python main.py -c paddlex/configs/modules/layout_detection/PP-DocLayout-L.yaml -o Global.mode=train -o Global.dataset_dir=./study/train/dataset/det_layout_examples


会报错,因为这个`PP-DocLayout-L.yaml`配置文件默认是采用GPU运行的,所以配置文件需要修改。
```
mode: train #原本为check_dataset
device: cpu # 关键修改:从gpu:0,1,2,3改为cpu
	log查看异常,并处理
```

pip install numba==0.56.4

pip install scikit-learn



二、文本检测模块训练
(一)、这里基于PaddleOCR的文件检测模块训练。
这里需要安装OCR。参考链接:[https://paddlepaddle.github.io/PaddleOCR/main/version3.x/installation.html](https://paddlepaddle.github.io/PaddleOCR/main/version3.x/installation.html) 1、安装OCR
```
python -m pip install paddleocr git clone https://gitee.com/paddlepaddle/PaddleOCR.git
# 切换分支
git checkout release/3.0
# 安装依赖
python -m pip install -r requirements.txt 中间报错,numpy切换版本:
pip install numpy==1.26.4
	2、文本检测 命令测试demo:
`paddleocr text_detection -i https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/general_ocr_001.png` 3、下载训练数据集与预训练模型
```

https://paddle-model-ecology.bj.bcebos.com/paddlex/data/ocr_det_dataset_examples.tar

# 下载 PP-OCRv5_server_det 预训练模型

wget https://paddle-model-ecology.bj.bcebos.com/paddlex/official_pretrained_model/PP-OCRv5_server_det_pretrained.pdparams



		3.1、这里需要修改配置文件。`configs/det/PP-OCRv5/PP-OCRv5_server_det.yml`,CPU训练的里面几个参数可进行改动
```
use_gpu: false #启用CPU
epoch_num: &epoch_num 2 #训练轮次
distributed: false # 禁用分布式
	3、解压后进行训练
# 单卡训练,多卡训练参考官网
```

python tools/train.py -c configs/det/PP-OCRv5/PP-OCRv5_server_det.yml -o Global.pretrained_model=./study/train/dataset/PP-OCRv5_server_det_pretrained.pdparams Train.dataset.data_dir=./study/train/dataset/ocr_det_dataset_examples Train.dataset.label_file_list='[./study/train/dataset/ocr_det_dataset_examples/train.txt]' Eval.dataset.data_dir=./ocr_det_dataset_examples Eval.dataset.label_file_list='[./study/train/dataset/ocr_det_dataset_examples/val.txt]'

# https://paddlepaddle.github.io/PaddleOCR/main/version3.x/module_usage/text_detection.html#_42



		4、训练完成后,命令进行验证。
```
python tools/eval.py -c configs/det/PP-OCRv5/PP-OCRv5_server_det.yml -o Global.pretrained_model=./output/PP-OCRv5_server_det_pretrained.pdparams Eval.dataset.data_dir=./study/train/dataset/ocr_det_dataset_examples Eval.dataset.label_file_list='[./study/train/dataset/ocr_det_dataset_examples/val.txt]'
(二)、这里是基于paddlex的文本检测模块的数据集验证、训练与评估、导出等方法。
1、验证数据集
```

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


能正常运行OK,不能看问题是否是报错【AttributeError: 'FigureCanvasAgg' object has no attribute 'tostring_rgb'】
我这边报错,修改【PaddleX\paddlex\modules\text_detection\dataset_checker\dataset_src\analyse_dataset.py】这个代码后ok了,
内容如下(屏蔽掉的为原代码):
```
# canvas.draw()
# width, height = fig.get_size_inches() * fig.get_dpi()
# bar_array = np.frombuffer(canvas.tostring_rgb(), dtype="uint8").reshape(
# int(height), int(width), 3
# )
canvas.draw()
width, height = fig.get_size_inches() * fig.get_dpi()
rgba_array = np.asarray(canvas.buffer_rgba(), dtype="uint8").reshape(int(height), int(width), 4)
bar_array = cv2.cvtColor(rgba_array, cv2.COLOR_RGBA2BGR)
```
第二段代码:
```
# canvas.draw()
# width, height = fig.get_size_inches() * fig.get_dpi()
# pie_array = np.frombuffer(canvas.tostring_rgb(), dtype="uint8").reshape(
# int(height), int(width), 3
# )
canvas.draw()
width, height = fig.get_size_inches() * fig.get_dpi()
rgba_array = np.asarray(canvas.buffer_rgba(), dtype="uint8").reshape(int(height), int(width), 4)
pie_array = cv2.cvtColor(rgba_array, cv2.COLOR_RGBA2BGR)
		2、训练
`python main.py -c paddlex/configs/modules/text_detection/PP-OCRv5_mobile_det.yaml -o Global.mode=train -o Global.dataset_dir=./study/train/dataset/ocr_det_dataset_examples` 3、评估
`python main.py -c paddlex/configs/modules/text_detection/PP-OCRv5_mobile_det.yaml -o Global.mode=evaluate -o Global.dataset_dir=./study/train/dataset/ocr_det_dataset_examples` 如果安装报错,说缺少目录,则新建这个目录
`### D:\developSoft\anaconda3\envs\ocr310\Lib\site-packages\paddlex\repo_manager\repos` ```

参考链接

https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/pipeline_usage/PP-ChatOCRv4.html#1-pp-chatocrv4

https://paddlepaddle.github.io/PaddleOCR/latest/version3.x/module_usage/text_detection.html#43



三、文本识别模块训练

	(一)、PaddleOCR版文本识别模块的训练

		1、文本识别模块跟文本检测模式都是依赖于PaddleOCR,所以上面下载好PaddleOCR源码后,进入源码目录。
自己下载好模型与数据集
`https://paddlepaddle.github.io/PaddleOCR/main/version3.x/module_usage/text_recognition.html#411` 2、修改配置文件`configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml`以下内容:
```
use_gpu: false
epoch_num: 2
character_dict_path: ./study/train/dataset/ocr_rec_dataset_examples/dict.txt
... ... Train:
dataset:
data_dir: ./study/train/dataset/ocr_rec_dataset_examples/
label_file_list:
- ./study/train/dataset/ocr_rec_dataset_examples/train.txt
Eval:
dataset:
data_dir: ./study/train/dataset/ocr_rec_dataset_examples/
label_file_list:
- ./study/train/dataset/ocr_rec_dataset_examples/val.txt ``` 3、Python训练命令如下:
`python tools/train.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml -o Global.pretrained_model=./study/train/dataset/PP-OCRv5_server_rec_pretrained.pdparams` 4、模型评估:
`python tools/eval.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml -o Global.pretrained_model=output/PP-OCRv5_server_rec/latest.pdparams` 5、模型导出指令:
`python tools/export_model.py -c configs/rec/PP-OCRv5/PP-OCRv5_server_rec.yml -o Global.pretrained_model=output/PP-OCRv5_server_rec/latest.pdparams Global.save_inference_dir=".out/tt/PP-OCRv5_server_rec_infer/"` (二)、PaddleX版文本识别模块的训练
1、数据下载链接: 2、数据集验证:
`python main.py -c paddlex/configs/modules/text_recognition/PP-OCRv4_mobile_rec.yaml -o Global.mode=check_dataset -o Global.dataset_dir=./study/train/dataset/ocr_rec_dataset_examples` 能正常运行OK,不能看问题是否是报错【AttributeError: 'FigureCanvasAgg' object has no attribute 'tostring_rgb'】
我这边报错,修改【`PaddleX\paddlex\modules\text_recognition\dataset_checker\dataset_src\analyse_dataset.py`】这个代码后ok了,
内容如下(屏蔽掉的为原代码):
```
# canvas.draw()
# width, height = fig.get_size_inches() * fig.get_dpi()
# pie_array = np.frombuffer(canvas.tostring_rgb(), dtype="uint8").reshape(
# int(height), int(width), 3
# )
canvas.draw()
width, height = fig.get_size_inches() * fig.get_dpi()
rgba_array = np.asarray(canvas.buffer_rgba(), dtype="uint8").reshape(int(height), int(width), 4)
pie_array = cv2.cvtColor(rgba_array, cv2.COLOR_RGBA2BGR)
	3、训练指令:
`python main.py -c paddlex/configs/modules/text_recognition/PP-OCRv4_mobile_rec.yaml -o Global.mode=train -o Global.dataset_dir=./study/train/dataset/ocr_rec_dataset_examples` 4、训练完成后,评估模型:
`python main.py -c paddlex/configs/modules/text_recognition/PP-OCRv4_mobile_rec.yaml -o Global.mode=evaluate -o Global.dataset_dir=./study/train/dataset/ocr_rec_dataset_examples` 5、推理模型:
`python main.py -c paddlex/configs/modules/text_recognition/PP-OCRv4_mobile_rec.yaml -o Global.mode=predict -o Predict.model_dir="./output/ocr_rec_dataset_examples/best_accuracy/inference" -o Predict.input="general_ocr_rec_001.png"`

paddle训练安装的更多相关文章

  1. 使用 paddle来进行文本生成

    paddle 简单介绍 paddle 是百度在2016年9月份开源的深度学习框架. 就我最近体验的感受来说的它具有几大优点: 1. 本身内嵌了许多和实际业务非常贴近的模型比如个性化推荐,情感分析,词向 ...

  2. 服务化部署框架Paddle Serving

    服务化部署框架Paddle Serving 概述 常见的深度学习模型开发流程需要经过问题定义.数据准备.特征提取.建模.训练过程,以及最后一个环--将训练出来的模型部署应用到实际业务中.如图1所示,当 ...

  3. Paddle Inference原生推理库

    Paddle Inference原生推理库 深度学习一般分为训练和推理两个部分,训练是神经网络"学习"的过程,主要关注如何搜索和求解模型参数,发现训练数据中的规律,生成模型.有了训 ...

  4. Linux Ubuntu安装Nvidia多GPU通信库NCCL

    0. 前言 在使用Python版本的PaddleDetection进行一些实验时,想同时利用多个GPU提高效率,遇到了一点问题 You may need to install 'nccl2' from ...

  5. 零样本文本分类应用:基于UTC的医疗意图多分类,打通数据标注-模型训练-模型调优-预测部署全流程。

    零样本文本分类应用:基于UTC的医疗意图多分类,打通数据标注-模型训练-模型调优-预测部署全流程. 1.通用文本分类技术UTC介绍 本项目提供基于通用文本分类 UTC(Universal Text C ...

  6. 【深度学习系列】关于PaddlePaddle的一些避“坑”技巧

    最近除了工作以外,业余在参加Paddle的AI比赛,在用Paddle训练的过程中遇到了一些问题,并找到了解决方法,跟大家分享一下: PaddlePaddle的Anaconda的兼容问题 之前我是在服务 ...

  7. paddlespeech asr 使用教程

    目录 安装 paddle框架安装 软件源安装 源码安装 快速使用 下载测试使用的音频 非流式命令行接口(CLI) 非流式Server服务 流式Server服务 指令详解 打印paddlespeech_ ...

  8. Pytorch及Yolov5环境配置及踩坑

    Pytorch及Yolov5环境配置及踩坑 1.何为Yolov5 yolo是计算机视觉方面用来进行目标检测的一个十分出名的开源框架,我搜不到官方的对此概括性的定义,但实际上也没什么必要,更重要的是会使 ...

  9. ML平台_Paddle参考

    PaddlePaddle源自于 2013 年百度深度学习实验室创建的 “Paddle”.当时的深度学习框架大多只支持单 GPU 运算,对于百度这样需要对大规模数据进行处理的机构,这显然远远不够,极大拖 ...

  10. ROS-I工业机器人培训课程资料 2017-06-30

    美国ROS工业联盟于2017年6月6日至8日在德克萨斯州圣安东尼奥市的SwRI举办了ROS工业开发人员培训班.12位与会者代表了一系列不同的组织,包括Bastian Solutions,EWI,Joh ...

随机推荐

  1. [.net core] 创建和发布NuGet包 (dotnet CLI)

    [原文] :https://docs.microsoft.com/zh-cn/nuget/quickstart/create-and-publish-a-package-using-the-dotne ...

  2. Python科学计算系列10—数论

    1.常用操作 代码如下: # coding=utf-8 from sympy import * from sympy.ntheory.modular import solve_congruence, ...

  3. Python科学计算系列9—逻辑代数

    1.基本定理的验证 代码如下: from sympy import * A, B, C = symbols('A B C') # 重叠律 # A·A=A A+A=A print(to_cnf(A | ...

  4. web自动化的元素定位

    一.基础元素定位 1.id定位:根据元素的id定位 By.id("id") webDriver.findElement(By.id("tab-account") ...

  5. JAVA安全之JDK8u141版本绕过研究

    基本介绍 从JDK8u141开始JEP290中针对RegistryImpl_Skel#dispatch中bind.unbind.rebind操作增加了checkAccess检查,此项检查只允许来源为本 ...

  6. spring boot迁移计划 第Ⅰ章 --chapter 1. rust hyper 结合rust nacos-client开发nacos网关 part ④ nacos-client

    1. toml依赖 nacos_rust_client = "0.3" local_ipaddress = "0.1" ahash = "0.8&qu ...

  7. vue3 基础-non-props 特性

    本篇探讨当父组件通过属性给子组件传数据时, 子组件如果不通过 props 属性进行接收, 那数据会挂载到哪里, 以及子组件如何能使用这些数据. 正常的父子组件传值 <!DOCTYPE html& ...

  8. NOIP 模拟赛(10.10):植物收集,美丽子区间,字符序列

    植物收集 题面: Dr. Wang是一位植物领域的专家.他要给他的学生们上一节课.课堂上需要展示一种植物.众所周知,植物的生长是有阶段的,本着严谨科学的态度,Dr. Wang 希望可以在课堂上给学生们 ...

  9. C# Environment.CurrentDirectory和AppDomain.CurrentDomain.BaseDirectory的区别

    Environment.CurrentDirectory 和 AppDomain.CurrentDomain.BaseDirectory 都是C#中用于获取当前应用程序的目录路径的方法,但是它们的用途 ...

  10. 【语义分割专栏】:FCN实战篇(附上完整可运行的代码pytorch)

    目录 前言 FCN全流程代码 模型搭建(model) 数据处理(dataloader) 评价指标(metric) 训练流程(train) 模型测试(test) 效果图 结语 前言 FCN原理篇讲解:[ ...