程序地带

PaddlePaddle飞桨OCR文本检测——检测模型训练(二)


上一篇安装https://blog.csdn.net/weixin_42845306/article/details/112688405 飞桨的OCR模型分为检测、识别和分类,先看检测。 检测就是将(可能的)文本标定好坐标,简单说就是给图中的文本画框。


数据集制作及图片标注

首先制作训练集,找很多带文字的图片,放在一个文件夹里(这里叫img_50),注意图片的名字。 虽说可以任意,但最好还是得有规律。 然后是标定标签,方法有很多,这里用自带的PPOCRLabel,用法这里有详细介绍: https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/PPOCRLabel/README_ch.md 大概用法就是安装pyqt(一个python中的可视化库),打开软件,载入放图片的文件夹,先半自动标注,然后手动调整,保存标记结果可以保存出一个label.txt里面密密麻麻放着坐标,保存识别结果可以把图片里面所有的文字全抠出来单独放进一个文件夹crop_img,作为识别训练集,还有对应的识别标签rec_gt.txt(识别这步下次再讲)。 在这里插入图片描述 测试集的制作方法一模一样。


数据集安置

在PaddleOCR-dygraph根目录下建立一个文件夹"train_data",再新建一个文件夹"img_50"作为自定义数据集的位置,在img_50里放入训练集和测试集的label.txt和对应的两个文件夹的图片(只放图片)。 我偷了个懒,不弄测试集了,直接把训练集当测试集 在这里插入图片描述


预训练模型安置

从网上下载预训练模型,比如https://paddle-imagenet-models-name.bj.bcebos.com/MobileNetV3_large_x0_5_pretrained.tar


解压一定要用这个命令:


tar -xf ./pretrain_models/MobileNetV3_large_x0_5_pretrained.tar


这样解压出来的才是很多个权值文件,右键解压会直接解压出一个大文件,无法使用。 将解压后的MobileNetV3_large_x0_5_pretrained模型文件夹放在PaddleOCR-dygraph下新建的pretrain_models文件夹中: 在这里插入图片描述


调参

在这里插入图片描述 找到det_mv3_db.yml,这是检测模型MobileNetV3的参数训练设置,记事本打开。 里面的参数看着改,主要是这几点: pretrained_model: ./pretrain_models/MobileNetV3_large_x0_5_pretrained/ data_dir: ./train_data/img_50/ label_file_list: - ./train_data/img_50/Label.txt 注意测试集和训练集的路径都要调整。


训练开始

在PaddleOCR-dygraph根目录打开cmd,输入以下其中之一命令即可测试


# 单机单卡训练 mv3_db 模型
python tools/train.py -c configs/det/det_mv3_db.yml
-o Global.pretrain_weights=./pretrain_models/MobileNetV3_large_x0_5_pretrained/
# 单机多卡训练,通过 --gpus 参数设置使用的GPU ID;如果使用的paddle版本小于2.0rc1,请使用'--select_gpus'参数选择要使用的GPU
python -m paddle.distributed.launch --gpus '0,1,2,3' tools/train.py -c configs/det/det_mv3_db.yml
-o Global.pretrain_weights=./pretrain_models/MobileNetV3_large_x0_5_pretrained/

其实调整了.yml文件后,-o参数可以不写


训练进行中: 在这里插入图片描述


站在巨人的肩膀上

其实我们可以在别人已经训练好的模型上接着我们的训练对吧? 也可以训练一段时候后,断点续……训。 我们训练的模型,默认会保存在./output文件夹下,三个主要文件: latest.pdopt latest.pdparams latest.states 不管后缀名的话,这个训练的模型称之为latest


如果要接着训练的话,在刚刚设置参数的.yml文件中找到checkpoints参数,写入路径 在这里插入图片描述 注意后面要写上模型的名字。 然后再调用命令训练,可以看到resume from 在这里插入图片描述 如果使用飞桨已经训练好的模型,可以在GitHub上找到,也可以在上一篇博客中找到网盘链接,这里放上各个模型对应的类型: 在这里插入图片描述


一切都可以从手册学到https://github.com/PaddlePaddle/PaddleOCR/blob/dygraph/doc/doc_ch/detection.md


下一篇识别模型训练:https://blog.csdn.net/weixin_42845306/article/details/112726615


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42845306/article/details/112689152

随机推荐

设计模式:行为型-观察者模式

设计模式:行为型-观察者模式

目录第一章观察者模式介绍第二章观察者模式实现2.1、抽象主题类2.2、具体主题类2.3、抽象观察者2.4、具体观察者2.5、最终测试类第三章观察者模式应用3.1、具体主题类3.2、具体观察者3.3、最...

轻松的小希 阅读(269)

2021江苏省云计算技术与应用比赛

2021江苏省云计算技术与应用比赛

2021江苏省云计算技术与应用比赛前言由于没有原题,单纯靠记忆力记下来的,可能没有看起来那么正规,比的时候太紧张了,也没有可能有些题目没有记全&...

啥也学不会的鸣 阅读(775)

有趣python小程序系列之一

有趣python小程序系列之一

文章目录前言一、飘落的银杏二、代码部分1.导入所需的库2.生成斐波契那数列3.定义生成叶子的方法4.定义生成树的方法5.主函数部分三、结果展示前言关于学python的初衷,如图ÿ...

w^s^w 阅读(500)

canvas旋转跟随鼠标线条 html+css+js

canvas旋转跟随鼠标线条 html+css+js

先看效果(完整代码在底部):实现过程(可一步一步实现):1.定义标签与基本css样式:<canv...

北极光之夜。 阅读(544)

数据库原理笔记(一)

数据库原理笔记(一)

文章目录1.SQL语言基础1.1SQL语言的组成1.2数据语言定义1.2.1数据库简介1.2.2数据库创建1.2.2.1SQL语言创建数据库1.2.3数据库表的操作1.2.3.1数据表的创建1.2.3...

打工自由人 阅读(902)

C++string容器详解

C++string容器详解

文章目录1.概述:2.string的构造函数3.string的赋值操作4.string的拼接操作5.string的子串获取操作6.string的插入与删除7.string的替换与查找字符...

TZC⑥ 阅读(265)

【C语言学习笔记——3】

【C语言学习笔记——3】

声明:由于作者水平有限,本文难免有错误和不准确之处,本人也很想知道这些错误,恳望读者批评指正。【联系方式】1583598623@qq.c...

林慢慢。 阅读(276)