当前位置: 首页 > article >正文

PPOCR -训练模型转推理模型遇到的问题

前言

使用PPOCR命令行训练验证码单字位置检测+识别模型的情况下,这两个checkpoint训练模型测试图片均没出现问题,但转为inference推理模型的时候,问题来了。

问题1:文字检测的训练模型转为推理模型结果全为空

官方文档中确实有提到该问题,一开始不清楚如何解决,后来进入PaddleOCR的项目代码中查看对应的代码文件后发现问题。
在这里插入图片描述
根据文档的描述是:训练模型的预处理和inference模型的预处理函数是否一致。在训练时可能将图像resize到某个大小,而inference模型预测是用一套默认的参数,也就是你需要到inference模型的预处理函数中将默认参数改为与你实际项目训练时的参数一致。预处理函数在PaddleOCR项目下的./ppocr/data/imaug/operators.py。

解决的过程

  1. 首先,根据文档提示检查两个预处理参数。检查配置文件的DetResizeForTest发现默认是注释掉的。
    在这里插入图片描述

  2. 检查./ppocr/data/imaug/operators.py的DetResizeForTest,那么既然是没有参数,那么resize_type默认=0,limit_side_len=736,limit_type='min',走的是resize_image_type0()方法。
    在这里插入图片描述

  3. 检查./tools/infer/predict_det.py的TextDetector,发现他是默认配置了limit_side_len=960和limit_type='max'的,虽然也是走的resize_image_type0(),但参数跟我们训练时的参数不一致。
    所以直接将这两个参数注释掉,保持与配置文件的没有参数一致。那么预处理就走的同样的方法,且参数一致了。
    在这里插入图片描述

  4. 做到这边再进行推理就有结果了。解决了第一个问题。

问题2:串联检测+识别推理模型,识别效果极差

检测的问题解决了,单独使用检测推理时,结果基本跟模型测试时一致。单独使用识别模型推理时,结果也很好,基本在可接受范围内。但是串联两个模型推理时,识别效果极差,甚至连检测效果都变差了。

解决的过程

  1. 检查./tools/infer/predict_system.py,经过卡卡一顿看代码,夸夸一顿分析,最后发现在对单个字符进行crop时,当crop后的图片高大于宽时,会自动旋转90度。所以才导致出现2识别成N的类似情况。
    最后根据项目的实际情况,这一步是没必要的,所以我直接将他注释掉。crop出来的单个字符图片就正常了,再进行推理也没问题了。
    在这里插入图片描述
    最后进行验证:结果终于能正确显示出来了。
    在这里插入图片描述
    *以上就是刚入门模型训练遇到的所有问题和解决过程,这两个问题差点劝退我,所以做个记录和分享,万一正好有人入门也遇到这个问题呢?

http://www.kler.cn/a/13956.html

相关文章:

  • 打造卓越游戏 | 2023 Google 游戏开发者峰会
  • 科大讯飞的2022:夯实“根据地”业务,以技术创新点燃大模型产业落地的“星星之火”...
  • Windows上使用gcc
  • 关系数据库(查询优化)
  • 软件测试工程师需要达到什么水平才能顺利拿到 20k 无压力?
  • ChatGPT实战100例 - (05) ChatGPT 结合 Mermaid 的 Gantt 图表示
  • 如何在Java中创建临时文件?
  • MySQL数据库——MySQL使用DISTINCT过滤重复数据
  • 【SCI电气】考虑不同充电需求的电动汽车有序充电调度方法(Matlab代码实现)
  • 机器学习 探索性数据分析
  • vue3 Pinia快速入门
  • 指纹浏览器科普:管理上百个社媒账号?窗口同步?RPA自动化?
  • MySQL基础练习——创建数据库、数据表,并进行修改
  • 【Chano的SFM教程】3dmax 面部表情.VTA基本制作教程
  • 匿名管道与命名管道
  • springboot集成webservice
  • 【AutoGPT】你自己运行,我先睡了—— ChatGPT过时了吗?
  • JUC多并发编程 LockSupport和线程中断
  • 最佳实践:Android应用中的网络请求和数据缓存
  • 利用校正板对无人机影像辐射校正