PaddleOCR安装并用GPU训练自己的数据

@[二汪] PaddleOCR安装并使用GPU训练自己的数据

PaddleOCR + windows10 安装并使用GPU训练自己的数据

1.安装Anconda

安装参考链接:https://blog.csdn.net/fan18317517352/article/details/123035625

2.安装paddlepaddle

打开百度飞桨官网

点击查看全部安装步骤进行环境安装。

Anconda安装好后,打开Anconda Prompt

2.1新建虚拟环境:

环境名称:paddle_env

Python版本:3.8

新建环境之前,在ANCONDA界面输入

python -V   # 注意V是大写

看好自己的python版本再选择对应的python版本号

conda create -n paddle_env python=3.8   # 建立一个环境名为paddle_env的虚拟环境

进入新的虚拟环境

activate paddle_env

下载paddlepaddle-gpu版本的框架
选择下载框架时需要查看自己的CUDA版本,我的是11.6,因此选择此版本。查看自己的CUDA版本

conda install paddlepaddle-gpu==2.3.2 cudatoolkit=11.6 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge
# 利用清华源下载GPU版本的paddlepaddle框架

3.下载paddleocr程序

下载paddleocr源码
下载后,进入源码所在目录,下载需求库。

pip install -r requirements.txt

准备工作完成

4.使用paddlelabel训练自己的数据

进入 /PaddleOCR/PPOCRLabel/PPOCRLabel.py # 注程序116行self.ocr中需添加自己训练出的模型的路径
我是在PPOCRLabel.py中,添加了自己的图片路径,点击运行程序,才出现标注界面。

在这里插入图片描述

不过我看网上直接运行此程序就能打开标注界面。

python PPOCRLabel.py   # 运行此程序出现标注工具界面

自动标注软件的一些操作步骤:

步骤 具体操作
打开文件夹 在菜单栏点击 “文件” - “打开目录” 选择待标记图片的文件夹
自动标注 点击 “自动标注”使用 padlelabel 自带的模型对图片自动标注
手动标注 点击 “矩形标注”(快捷键 “W” ), 可对当前图片中模型未检出的部分进行手动绘制标记框。双击左键表示标注完成。
标记框绘制完成后 用户点击 “确认”,检测框会先被预分配一个 “待识别” 标签。
重新识别 将图片中的所有检测画绘制/调整完成后,点击 “重新识别”,PPOCR模型会对当前图片中的所有检测框重新识别。
内容更改 双击识别结果,对不准确的识别结果进行手动更改
确认标记 点击 “确认”,图片状态切换为 “√”,跳转至下一张。
删除 点击 “删除图像”,图片将会被删除至回收站。
导出结果 用户可以通过菜单中“文件-导出标记结果”手动导出,同时也可以点击“文件 - 自动导出标记结果”

很离谱的是,工具自动识别数据集后,需要一个一个确认,并且我还一一修改了标识有误的地方。我总共有1081张图片,全部确认之后很崩溃。

自动标注软件开启自动导出。手动确认过的标记将会被存放在所打开图片文件夹下的 Label.txt
在菜单栏点击 “文件” - "导出识别结果"后,会将此类图片的识别训练数据保存在 crop_img 文件夹
识别标签保存在 rec_gt.txt

5.修改数据格式

1.半自动标注工具生成 crop_img 和 rec_gt.txt
2.按照000001的命名修改图片名和txt的名字
3.tools/Mytools/split_train_val.py # 拆分为train和val

最终train_data结构:三个文件夹 + 三个文本文件

crop_img/
train/
val/
train.txt
val.txt
rec_gt.txt

我的train_data结构图示如下:
PaddleOCR安装并用GPU训练自己的数据_第1张图片

6 训练

6.1 使用 split_train_val.py 将所有的数据分成train文件夹 train.txt val文件夹 val.txt

# split_train_val.py 中添加train_data路径

if __name__ == '__main__':

    data_root = 'C:/Users/Administration/Desktop/raw_video/train_data/'  # 添加自己的train_data路径

    gt_path = data_root + "rec_gt.txt"
    img_path = data_root + "crop_img/"
    train_path = data_root + "train/"
    val_path = data_root + "val/"
    if not osp.exists(train_path):
        os.makedirs(train_path)
    if not osp.exists(val_path):
        os.makedirs(val_path)
    test_flag = True
    proportion_num = [6, 2, 2]
    main()

6.2 tools/program.py

修改43行

config:/media/glc/jack/PaddleOCR-release-2.5/configs/rec/PP-OCRv3/ch_PP-OCRv3_rec.yml 

6.3 configs/rec/PP-OCRv3/ch_PP-OCRv3_rec.yml 识别参数设置

6.3.1 修改 rec.yml 文件中一些路径

修改16行

/media/glc/jack/PaddleOCR-release-2.5/ppocr/utils/ppocr_keys_v1.txt

修改79行

/media/glc/jack/PaddleOCR-release-2.5/PPOCRLabel/train_data/  # 添加train_data路径

修改82行

/media/glc/jack/PaddleOCR-release-2.5/PPOCRLabel/train_data/train.txt  # 添加train_data/train.txt路径

修改110行

/media/glc/jack/PaddleOCR-release-2.5/PPOCRLabel/train_data/  # 添加train_data路径

修改112行

/media/glc/jack/PaddleOCR-release-2.5/PPOCRLabel/train_data/val.txt  # 添加train_data/val.txt路径

6.3.2 如果后续训练显示显存不足,设置这两个参数,验证和训练部分的都要修改

batch_size_per_card: 32  # batch_size 初始为128,带不动,设置为32
num_workers: 1   # 初始为4,运行不起来,设置为1 

6.4 运行 tools/train.py 进行训练

训练自己的数据集效果如下:
准确度有0.99

你可能感兴趣的:(python,深度学习,paddlepaddle,windows)