@[二汪] PaddleOCR安装并使用GPU训练自己的数据
安装参考链接:https://blog.csdn.net/fan18317517352/article/details/123035625
打开百度飞桨官网
点击查看全部安装步骤进行环境安装。
Anconda安装好后,打开Anconda Prompt
环境名称: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框架
下载paddleocr源码
下载后,进入源码所在目录,下载需求库。
pip install -r requirements.txt
准备工作完成
进入 /PaddleOCR/PPOCRLabel/PPOCRLabel.py # 注程序116行self.ocr中需添加自己训练出的模型的路径
我是在PPOCRLabel.py中,添加了自己的图片路径,点击运行程序,才出现标注界面。
不过我看网上直接运行此程序就能打开标注界面。
python PPOCRLabel.py # 运行此程序出现标注工具界面
自动标注软件的一些操作步骤:
步骤 | 具体操作 |
---|---|
打开文件夹 | 在菜单栏点击 “文件” - “打开目录” 选择待标记图片的文件夹 |
自动标注 | 点击 “自动标注”使用 padlelabel 自带的模型对图片自动标注 |
手动标注 | 点击 “矩形标注”(快捷键 “W” ), 可对当前图片中模型未检出的部分进行手动绘制标记框。双击左键表示标注完成。 |
标记框绘制完成后 | 用户点击 “确认”,检测框会先被预分配一个 “待识别” 标签。 |
重新识别 | 将图片中的所有检测画绘制/调整完成后,点击 “重新识别”,PPOCR模型会对当前图片中的所有检测框重新识别。 |
内容更改 | 双击识别结果,对不准确的识别结果进行手动更改 |
确认标记 | 点击 “确认”,图片状态切换为 “√”,跳转至下一张。 |
删除 | 点击 “删除图像”,图片将会被删除至回收站。 |
导出结果 | 用户可以通过菜单中“文件-导出标记结果”手动导出,同时也可以点击“文件 - 自动导出标记结果” |
很离谱的是,工具自动识别数据集后,需要一个一个确认,并且我还一一修改了标识有误的地方。我总共有1081张图片,全部确认之后很崩溃。
1.半自动标注工具生成 crop_img 和 rec_gt.txt
2.按照000001的命名修改图片名和txt的名字
3.tools/Mytools/split_train_val.py # 拆分为train和val
crop_img/
train/
val/
train.txt
val.txt
rec_gt.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()
修改43行
config:/media/glc/jack/PaddleOCR-release-2.5/configs/rec/PP-OCRv3/ch_PP-OCRv3_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路径
batch_size_per_card: 32 # batch_size 初始为128,带不动,设置为32
num_workers: 1 # 初始为4,运行不起来,设置为1
训练自己的数据集效果如下:
准确度有0.99