paddleocr icdar2015数据集训练dbnet检测模型

参考:https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/detection.md

原理

DBNET论文 Real-time Scene Text Detection with Differentiable Binarization
参考:https://blog.csdn.net/qq_35756383/article/details/118679258
在这里插入图片描述
Real-Time Scene Text Detection with Differentiable Binarization and Adaptive Scale Fusion
在这里插入图片描述
在这里插入图片描述

配置文件

训练参数参考:https://blog.csdn.net/qq_52852432/article/details/131817619

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模型

下载检测模型:https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/models_list.md

在这里插入图片描述
选择原始的MobileNetV3_large_x0_5_pretrained

数据

参考:https://aistudio.baidu.com/projectdetail/4483048
https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/dataset/ocr_datasets.md

ICDAR 2015
来源:ICDAR 2015
下载地址:https://rrc.cvc.uab.es/?ch=4&com=downloads
特点:
这是一个基于ICDAR 2015的数据集,主要用于文本检测和识别任务。
数据集包含了多种文本样本,包括不同语言、字体、大小和背景的文本图片。

ctw1500
来源:CTW1500
下载地址:https://paddleocr.bj.bcebos.com/dataset/ctw1500.zip
特点:
这是一个大规模的文本检测数据集,包含1500张图片。
数据集涵盖了多种文本样本,包括复杂的背景、多行文本、不同字体和大小的文本。

Total Text
来源:Total-Text
下载地址:https://paddleocr.bj.bcebos.com/dataset/total_text.tar
特点:
这是一个用于文本检测的数据集,包含1500张图片。
数据集包含了多种复杂的文本样本,包括多行文本、曲线文本、不同字体和大小的文本。

TD TR
来源:TD-TR
下载地址:https://paddleocr.bj.bcebos.com/dataset/TD_TR.tar
特点:
这是一个用于文本检测的数据集,包含多种复杂的文本样本。
数据集涵盖了多种文本样本,包括多行文本、曲线文本、不同字体和大小的文本。
这些数据集都可以用于文本检测和识别任务,适用于不同的模型训练和评估。

在这里插入图片描述

在这里插入图片描述
下载icdar2015.tar
在这里插入图片描述
格式
在这里插入图片描述
在这里插入图片描述

推理命令

python tools/infer_det.py -c configs/det/det_mv3_db.yml  -o Global.checkpoints=./output/db_mv3/latest  Global.infer_img=./doc/imgs_en/img_12.jpg 

训练过程

python tools/train.py -c configs/det/det_mv3_db.yml

50epoch

在这里插入图片描述
在这里插入图片描述

90epoch

在这里插入图片描述

135epoch

在这里插入图片描述

165epoch

在这里插入图片描述

200epoch

在这里插入图片描述

在这里插入图片描述

800epoch

在这里插入图片描述

1150epoch

在这里插入图片描述

1200epoch

在这里插入图片描述

lastest最后一轮

在这里插入图片描述
best效果最好的一轮
在这里插入图片描述

总结:训练过程中检测效果并不稳定

时间:使用4090 24G显存训练了大概一天
在这里插入图片描述

验证命令

训练过程中,默认保存两种模型,一种是latest命名的最新训练的模型,一种是best_accuracy命名的精度最高的模型。

使用保存的模型参数评估在测试集上的precision、recall和hmean:

python tools/eval.py -c configs/det/det_mv3_db.yml -o Global.checkpoints=./output/db_mv3/best_accuracy
[2024/07/16 15:08:03] ppocr INFO: hmean:0.6728133565910789
[2024/07/16 15:08:03] ppocr INFO: is_float16:False
[2024/07/16 15:08:03] ppocr INFO: precision:0.6965944272445821
[2024/07/16 15:08:03] ppocr INFO: recall:0.6506024096385542
[2024/07/16 15:08:03] ppocr INFO: fps:27.85333465651546
[2024/07/16 15:08:03] ppocr INFO: best_epoch:1114
[2024/07/16 15:08:03] ppocr INFO: start_epoch:1115
eval model:: 100%|██████████████████████████████████████████████████████████████████████████████████████████▊| 499/500 [00:20<00:00, 24.57it/s] 
[2024/07/16 15:08:23] ppocr INFO: metric eval ***************
[2024/07/16 15:08:23] ppocr INFO: precision:0.6965944272445821
[2024/07/16 15:08:23] ppocr INFO: recall:0.6506024096385542
[2024/07/16 15:08:23] ppocr INFO: hmean:0.6728133565910789
[2024/07/16 15:08:23] ppocr INFO: fps:47.020003697873406

检测模型转inference 模型方式

# 加载配置文件`det_mv3_db.yml`,从`output/det_db`目录下加载`best_accuracy`模型,inference模型保存在`./output/det_db_inference`目录下
python tools/export_model.py -c configs/det/det_mv3_db.yml -o Global.pretrained_model="./output/det_db/best_accuracy" Global.save_inference_dir="./output/det_db_inference/"
DB检测模型inference 模型预测:
python tools/infer_det.py -c configs/det/det_mv3_db.yml  -o Global.checkpoints=./output/db_mv3/best_accuracy  Global.infer_img=./doc/imgs_en/img_10.jpg  PostProcess.box_thresh=0.6 PostProcess.unclip_ratio=1.5

在这里插入图片描述

在这里插入图片描述

 python tools/infer/predict_det.py --det_algorithm="DB" --det_model_dir="./output/det_db_inference/" --image_dir="./doc/imgs_en/img_12.jpg" --use_gpu=True

在这里插入图片描述
在这里插入图片描述

# 如果是其他检测,比如EAST模型,det_algorithm参数需要修改为EAST,默认为DB算法:python3 tools/infer/predict_det.py --det_algorithm="EAST" --det_model_dir="./output/det_db_inference/" --image_dir="./doc/imgs/" --use_gpu=True

训练模型转inference 模型之后预测效果不一致?
在这里插入图片描述

PP-OCRv4

同样的数据集,配置文件选择ch_PP-OCRv4_det_cml.yml
在这里插入图片描述

没有预训练模型

参数讲解

在这里插入图片描述

训练过程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
130轮精度最高,于是停止训练

常见问题

PP-OCRv4检测模型是用了哪些数据集训练的

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47527.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【STC89C51单片机】定时器/计数器的理解

目录 定时器/计数器1. 定时器怎么定时简单理解&#xff08;加1经过了多少时间&#xff09;什么是时钟周期什么是机器周期 2.如何设置定时基本结构相关寄存器1. TMOD寄存器2. TCON寄存器 代码示例 定时器/计数器 STC89C51单片机的定时器和计数器&#xff08;Timers and Counter…

【BUG】已解决:NameError: name ‘XXX‘ is not defined

已解决&#xff1a;NameError: name ‘XXX‘ is not defined 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者社…

Harmony 状态管理 @Local 和 @Param

Harmony 状态管理 Local 和 Param Local 背景 Local 是harmony应用开发中的v2版本中 对标**State**的状态管理修饰器&#xff0c;它解决了 State 对状态变量更改的检测混乱的问题&#xff1a; State 修饰的状态变量 可以是组件内部自己定义的State 修饰的状态 也可以由外部父…

路径规划 | 基于DQN深度强化学习算法的路径规划(Matlab)

目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 DQN路径规划算法 基于深度强化学习算法的路径规划 matlab2023b 栅格环境&#xff0c;走迷宫&#xff0c;可以通过窗口界面方便观察交互过程&#xff0c;代码注释详尽。 程序设计 完整源码和数据私信博主回复基于DQN深…

Vue学习---vue cli 项目创建

使用的编辑工具webStorm 创建例子: hello vue create hello 选择 vue3 进行创建 运行 npm run serve 测试访问&#xff1a;http://localhost:8080 改动内容重新编译&#xff1a; npm run build dist 目录就是编译后的可运行内容

1分钟带你了解苹果手机删除照片恢复全过程

在日常使用苹果手机时&#xff0c;我们可能会不小心删除掉一些重要的照片&#xff0c;这让人非常烦恼。那么苹果手机怎么恢复删除的照片&#xff1f;下面小编将会向大家介绍苹果手机恢复删除的照片的方法&#xff0c;帮助大家轻松找回你丢失的照片。 一、利用“最近删除”文件夹…

甲骨文面试题【动态规划】力扣377.组合总和IV

给你一个由 不同 整数组成的数组 nums &#xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3], target 4 输出&#xff1a;7 解释&#x…

【Linux】详解加锁实现线程互斥

一、多线程不加线程互斥可能会引发的问题 下面是一个抢标逻辑。抢票为什么会抢到负数&#xff1a;假设当票数为1时&#xff0c;此时四个进程的判断条件tickets都大于0&#xff0c;都会进入抢票操作&#xff0c;第一个进程抢完票以后tickets0并写回内存&#xff0c;第二个进程再…

Xcode进行真机测试时总是断连,如何解决?

嗨。大家好&#xff0c;我是兰若姐姐。最近我在用真机进行app自动化测试的时候&#xff0c;经常会遇到xcode和手机断连&#xff0c;每次断连之后需要重新连接&#xff0c;每次断开都会出现以下截图的报错 当这种情况出现时&#xff0c;之前执行的用例就相当于白执行了&#xff…

Adobe XD中文设置指南:专业设计师的现场解答

Adobe XD是世界领先的在线合作UI设计工具。它摆脱了Sketch、Figma等传统设计软件对设备的依赖&#xff0c;使设计师可以随时随地使用任何设备打开网页浏览器&#xff0c;轻松实现跨平台、跨时空的设计合作。然后&#xff0c;为了提高国内设计师的使用体验&#xff0c;Adobe XD如…

爬虫(二)——爬虫的伪装

前言 本文是爬虫系列的第二篇文章&#xff0c;主要讲解关于爬虫的简单伪装&#xff0c;以及如何爬取B站的视频。建议先看完上一篇文章&#xff0c;再来看这一篇文章。要注意的是&#xff0c;本文介绍的方法只能爬取免费视频&#xff0c;会员视频是无法爬取的哦。 爬虫的伪装 …

C++类与对象(补)

感谢大佬的光临各位&#xff0c;希望和大家一起进步&#xff0c;望得到你的三连&#xff0c;互三支持&#xff0c;一起进步 个人主页&#xff1a;LaNzikinh-CSDN博客 文章目录 前言一.默认成员函数二.static三.友元四.匿名对象总结 前言 类的默认成员函数&#xff0c;默认成员…

linux centos limits.conf 修改错误,无法登陆问题修复 centos7.9

一、问题描述 由于修改/etc/security/limits.conf这个文件中的值不当&#xff0c;重启后会导致其账户无法远程登录&#xff0c;本机登录。 如改成这样《错误示范》&#xff1a; 会出现&#xff1a; 二、解决 现在知道是由于修改limits.conf文件不当造成的&#xff0c;那么就…

Android-- 集成谷歌地图

引言 项目需求需要在谷歌地图&#xff1a; 地图展示&#xff0c;设备点聚合&#xff0c;设备站点&#xff0c;绘制点和区域等功能。 我只针对我涉及到的技术做一下总结&#xff0c;希望能帮到开始接触谷歌地图的伙伴们。 集成步骤 1、在项目的modle的build.gradle中添加依赖如…

p19 C语言操作符详解

算术操作符 1.除了%操作符之外&#xff0c;其他的几个操作符可以作用于整数和浮点数。 2.对于/操作符如果两个操作数都为整数&#xff0c;执行整数除法。而只要有浮点数值型的就是浮点除法。 3.%操作符的两个操作数必须为 整数。返回的是整除之后的余数。 #include<std…

计算机毕业设计-基于Springboot的养老院管理系统-源码程序文档

项目源码&#xff0c;请关注❥点赞收藏并私信博主&#xff0c;谢谢~ 本系统开发采用技术为JSP、Bootstrap、Ajax、SSM、Java、Tomcat、Maven 此文章为本人亲自指导加编写&#xff0c;禁止任何人抄袭以及各类盈利性传播&#xff0c; 相关的代码部署论文ppt代码讲解答辩指导文件…

SpringBoot以及swagger的基本使用

1、SpringBoot是什么&#xff1f; 一种快速开发、启动Spring的框架、脚手架 遵循“约定优于配置”的思想&#xff0c;使得能够快速创建和配置Spring应用 2、SpringBoot的核心特性 自动配置&#xff0c;一些依赖、默认配置都预设好了&#xff0c;减少了配置量起步依赖&#x…

表格竖向展示

最近在做手机端web页面&#xff0c;页面中需要有个表格来显示数据&#xff0c;但是由于数据太多页面太窄&#xff0c;table展示横向滑动的话感觉很丑。所以让表格竖向显示了 具体页面如下: 实现代码&#xff1a;当然代码里面绑定的数据啊什么的你都可以修改为自己的内容&#…

【文献阅读】Social Bot Detection Based on Window Strategy

Abstract 机器人发帖的目的是在不同时期宣传不同的内容&#xff0c;其发帖经常会出现异常的兴趣变化、而人类发帖的目的是表达兴趣爱好和日常生活&#xff0c;其兴趣变化相对稳定。提出了一种基于窗口策略&#xff08;BotWindow Strategy&#xff09;的社交机器人检测模型基于…

【fastadmin】selectpickers多选提交后数据库只保存了一个选择值

问题描述 在 fastadmin 框架开发项目中&#xff0c;用到了selectpickers多选组件。 例如&#xff1a;选择了两位员工&#xff0c;但是提交后数据库只保存了一个选择值。 <div class"form-group"><label class"control-label col-xs-12 col-sm-2"…