首页 > 其他分享 >paddleOcr 训练自定义数据

paddleOcr 训练自定义数据

时间:2023-06-02 12:05:31浏览次数:54  
标签:ch 定义数据 训练 python paddleOcr paddlepaddle v2.0 https


paddleOcr 训练自定义数据



文章目录

  • paddleOcr 训练自定义数据
  • 前言
  • 一、创建环境
  • 二、安装环境
  • 三、使用ppocrlabel标注图片
  • 1.打开图片目录
  • 2.导出标记结果、导出识别结果
  • 四、训练
  • 1.切分数据
  • 2.修改训练的模型 yml
  • 3.开始训练
  • 五、已经训练的模型,有了新数据需要继续训练
  • 1.使用恢复训练
  • 2.使用迁移学习
  • 总结



前言

环境

python: 3.7.5

paddlepaddle-gpu: 2.2.2

paddleocr: 2.4.0.1

#paddlepaddle
https://www.paddlepaddle.org.cn/
#paddleocr
https://github.com/PaddlePaddle/PaddleOCR
https://gitee.com/paddlepaddle/PaddleOCR

paddleocr 有三种模型 det 检测 cls 方向 rec 识别


一、创建环境

  1. 安装miniconda
  1. 创建环境
#linux 需要先 source
conda create -n paddle_ocr python=3.9.7  --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  1. 安装完以后进入环境
conda activate paddle_ocr

二、安装环境

  1. paddlepaddle
#去官网找到适合自己环境的版本  windows
python -m pip install paddlepaddle-gpu==2.2.2.post112 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
#linux
python -m pip install paddlepaddle-gpu==2.2.2.post112 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html
  1. paddleocr
#安装paddleocr
python -m pip install paddleocr
cd <paddleocr_path>/
#下载源代码
git clone https://gitee.com/paddlepaddle/PaddleOCR.git
cd PaddleOCR/
#安装依赖
python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
#需要用到 PPOCRLabel 标注
cd PPOCRLabel/
python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
  1. 测试一下
paddleocr --image_dir ./doc/imgs/11.jpg --use_angle_cls true

paddleOcr 训练自定义数据_python

  1. 选择模型
    https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/doc/doc_ch/models_list.md我使用的模型是
ch_ppocr_server_v2.0
det: ch_det_res18_db_v2.0.yml
rec:  rec_chinese_common_train_v2.0.yml
cls:  ch_ppocr_mobile_v2.0_cls

三、使用ppocrlabel标注图片

cd 到 ppocrlabel 目录下,python PPOCRLabel.py --lang ch

1.打开图片目录
2.导出标记结果、导出识别结果

paddleOcr 训练自定义数据_paddlepaddle_02

文件名

说明

Label.txt

检测标签,可直接用于PPOCR检测模型训练。用户每确认5张检测结果后,程序会进行自动写入。当用户关闭应用程序或切换文件路径后同样会进行写入。

fileState.txt

图片状态标记文件,保存当前文件夹下已经被用户手动确认过的图片名称。

Cache.cach

缓存文件,保存模型自动识别的结果。

rec_gt.txt

识别标签。可直接用于PPOCR识别模型训练。需用户手动点击菜单栏“文件” - "导出识别结果"后产生。

crop_img

识别数据。按照检测框切割后的图片。与rec_gt.txt同时产生。

四、训练

1.切分数据

首先cd 到 PPOCRLabel 目录下

python gen_ocr_train_val_test.py --trainValTestRatio 6:2:2 --datasetRootPath <数据地址>

执行完后,会在上一级目录,也就是 PPocr目录下生成 train_data

2.修改训练的模型 yml
3.开始训练
python tools/train.py -c configs/rec/ch_ppocr_v2.0/rec_chinese_common_train_v2.0.yml

五、已经训练的模型,有了新数据需要继续训练

1.使用恢复训练

修改配置文件中的 epoch_num

指定恢复训练的节点

python tools/train.py -c configs/det/ch_ppocr_v2.0/ch_det_res18_db_v2.0.yml -o Global.checkpoints=output/ch_db_res18/best_accuracy
2.使用迁移学习

训练的时候指定 pretrained_model 为 上一次训练的输出


总结


标签:ch,定义数据,训练,python,paddleOcr,paddlepaddle,v2.0,https
From: https://blog.51cto.com/u_16015778/6401421

相关文章

  • Pytorch 分布式训练
    PytorchDDP分布式训练介绍近期一直在用torch的分布式训练,本文调研了目前Pytorch的分布式并行训练常使用DDP模式(DistributedDataParallell ),从基本概念,初始化启动,以及第三方的分布式训练框架展开介绍。最后以一个Bert情感分类给出完整的代码例子:torch-ddp-examples。基本......
  • 代码随想录算法训练营第二十三天|669. 修剪二叉搜索树
    [参考链接]669.修剪二叉搜索树 [代码]1#Definitionforabinarytreenode.2#classTreeNode(object):3#def__init__(self,val=0,left=None,right=None):4#self.val=val5#self.left=left6#self.right=right......
  • OCR -- 文本检测 - 训练DB文字检测模型
    百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统预测部署简介与总览百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统PaddleInference模型推理(离线部署)百度飞桨(PaddlePaddle)-PP-OCRv3文字检测识别系统基于PaddleServing快速使用(服务化部署-CentOS)百度飞......
  • 蓝桥杯----图论训练
    STL当想要维护一个数组,其中的元素要求有序,同时可能随时对这个数组中的元素进行增减有没有一个STL可以快速维护一个这样的数组?multiset(平衡二叉树) 默认从小到大排序注意离散化中清除重复元素的原理:unique()函数     vector......
  • Mysql训练营笔记
    Mysql架构与内部模块演示环境:MySQL5.7存储引擎:InnoDB一、一条查询SQL是如何执行的?  程序或者工具要操作数据库,第一步跟数据库建立连接。1、通信协议首先,MySQL必须要运行一个服务,监听默认的端口(3306)。通信协议MySQL支持多种通信协议。第一个就是TCP/IP协议,编......
  • 代码随想录算法训练营第二十二天|235. 二叉搜索树的最近公共祖先,701. 二叉搜索树中的
    [参考链接]235.二叉搜索树的最近公共祖先[注意]1.因为是有序树,所以如果中间节点是q和p的公共祖先,那么中间节点的数组一定是在[p,q]区间的。即中节点>p&&中节点<q或者中节点>q&&中节点<p。2.那么只要从上到下去遍历,遇到cur节点是数值在[p,q]区间中则一......
  • Spark技术在京东智能供应链预测的应用——按照业务进行划分,然后利用scikit learn进行
    3.3Spark在预测核心层的应用我们使用SparkSQL和SparkRDD相结合的方式来编写程序,对于一般的数据处理,我们使用Spark的方式与其他无异,但是对于模型训练、预测这些需要调用算法接口的逻辑就需要考虑一下并行化的问题了。我们平均一个训练任务在一天处理的数据量大约在500G左右,虽然数......
  • word2vec (一) 简介与训练过程概要
    词的向量化与word2vec简介word2vec最初是TomasMikolov发表的一篇文章[1],同时开源了相应的代码,作用是将所有词语投影到K维的向量空间,每个词语都可以用一个K维向量表示。为什么要将词用向量来表示呢?这样可以给词语一个数学上的表示,使之可以适用于某些算法或数学模型。通常将词语表示......
  • docker部署PaddleOCR流程
    先安装docker,输入docker-v后即可开始部署paddleocr1.容器环境使用ubuntu16.04dockerpullubuntu:16.042.启动容器使用-itd可以在后台运行正常-it就可以dockerrun-itd--name="paddleocr"ubuntu:16.04bash3.修改apt源(这里设置为清华源还不错)sed-i's/archive.ubun......
  • Python进行多输出(多因变量)回归:集成学习梯度提升决策树GRADIENT BOOSTING,GBR回归训练
    原文链接: http://tecdat.cn/?p=25939最近我们被客户要求撰写关于多输出(多因变量)回归的研究报告,包括一些图形和统计输出。在之前的文章中,我们研究了许多使用多输出回归分析的方法。在本教程中,我们将学习如何使用梯度提升决策树GRADIENTBOOSTINGREGRESSOR拟合和预测多输出回归......