关于paddleocr2.6 布局分析的踩坑总结(一)
8月24日paddleocr发布了2.6.0,之前使用过2.5版本的布局分析,整体比较好用。近期就尝试了一下paddleocr的新版本,记录一下尝鲜经历。2.6版本的公告中指出,布局分析模型缩小了95%,同时速度提升了11倍,在cpu上平均耗时41ms。
打开ppstructure/layout的readme,发现2.6的调用方法与2.5差别还是挺大的,由于之前程序是以2.5版本为基础写的,更倾向于再原有的代码上改造。所以本文主要以改造踩坑为主。
2.5版本是使用了使用了layoutparser库集成的调用,创建了PaddleDetectionLayoutModel对象,调用配置好的模型,使用cv2读取图片后,进行识别,过程很简单。但2.6发布的新模型并没有集成到layoutparser的配置中,从调用方式上看是只需要修改了相关配置就ok的。
通过查看PaddleDetectionLayoutModel的源码,在catalog的MODEL_CATALOG添加模型的url。PubLayNet中未注释的部分为真实地址,但是你添加了这个地址后程序是不会自动下载的,因为在PaddleModelURLHandler中不支持网址https://paddleocr.bj.bcebos.com 。
解决办法有两种,一种相对比较彻底的就是给PaddleModelURLHandler支持的网址中加上模型的网址,这样在配置中可以保留模型真实的地址。另一种隐患较大,修改真实网址如上图中注释代码。但是不管如何修改配置,在尝试过程中都没有成功下载,难道是网络问题?
在确认网络没有异常之后(浏览器可以直接下载),找到了download代码,上边的显示下载进度,下边的直接下载。换成注释内容后顺利下载,建议没事不要动源码,出发用不了。其实也可以跳过代码中下载步骤,通过浏览器下载后将模型放到本地缓存解压即可。代码中tmp的地址就是本地缓存位置。
终于将模型从配置链接到缓存本地都弄好了,启动后依然报错。错误信息是找不到模型文件,查看本地缓存后发现下载的模型文件名默认是model.后缀名,程序调用的模型文件是inference.后缀名。改名之后加载模型过程中没有再报错。
启动后在detect 图片的过程中会报错。同时运行2.5和2.6预测同一张图片时,predictor的input_names不一样,继而返回的tensor的形状也不同,最终报错。原因暂无结论。
接下来会尝试使用2.6文档中的调用方法,尽管这也说明使用无法再使用layoutparser来兼容了。
关于paddleocr2.6 布局分析的踩坑总结(一)的更多相关文章
- Spring5.x源码分析 | 从踩坑到放弃之环境搭建
Spring5.x源码分析--从踩坑到放弃之环境搭建 前言 自从Spring发行4.x后,很久没去好好看过Spring源码了,加上最近半年工作都是偏管理和参与设计为主,在技术细节上或多或少有点疏忽,最 ...
- flex布局应用于踩坑
一.预告 本文不是一篇入门的文章所有请符合以下条件的战斗人员绕道: 1.初学前端,对前端的传统布局还不是很熟悉的人 2.后端人员对前端不打算深入学习的同学 二.开篇 flex布局原本是好几个月前就一直 ...
- flex布局应用与踩坑
一.预告 本文不是一篇入门的文章所有请符合以下条件的战斗人员绕道: 1.初学前端,对前端的传统布局还不是很熟悉的人 2.后端人员对前端不打算深入学习的同学 二.开篇 flex布局原本是好几个月前就一直 ...
- cookie猜数字游戏(上)---------------思路分析(踩坑)
说明:用户第一次请求页面的时候,同时会产生一个随机数,用户点提交表单的时候,会将输入的数字与第一次请求产生的数字进行一个对比. 问题一:如何保存用户每次提交的数据 我们常见的在服务器中保存数据的方式是 ...
- 【分析笔记】Linux I2C-Tools 使用踩坑笔记
一.踩坑缘由 在调试 I2C 器件时,我一般习惯于使用 i2cdetect 工具来确认芯片是否有应答,通常有应答之后,就会开始着手移植或者编写对应的驱动程序,但是在调试 sgp41 传感器时却不灵了. ...
- ViewPager实现无限轮播踩坑记
最近笔者想通过ViewPager来实现一个广告Banner,并实现无限轮播的效果,但是在这个过程中踩了不少的坑,听我慢慢道来.如果大家有遇到和我一样的情况,可以参考我的解决方法,没有那就更好,如果针对 ...
- TiDB 深度实践之旅--真实“踩坑”经历
美团点评 TiDB 深度实践之旅(9000 字长文 / 真实“踩坑”经历) 4 PingCAP · 154 天前 · 3956 次点击 这是一个创建于 154 天前的主题,其中的信息可能已经有所发 ...
- 微信小程序踩坑集合
1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教程:https://mp.weixin.qq.com/debu ...
- 你真的了解字典(Dictionary)吗? C# Memory Cache 踩坑记录 .net 泛型 结构化CSS设计思维 WinForm POST上传与后台接收 高效实用的.NET开源项目 .net 笔试面试总结(3) .net 笔试面试总结(2) 依赖注入 C# RSA 加密 C#与Java AES 加密解密
你真的了解字典(Dictionary)吗? 从一道亲身经历的面试题说起 半年前,我参加我现在所在公司的面试,面试官给了一道题,说有一个Y形的链表,知道起始节点,找出交叉节点.为了便于描述,我把上面 ...
- C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式
C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...
随机推荐
- linux基础:1、linux简介、虚拟化软件的安装与配置、Xshell的安装与配置
Linux 目录 Linux 一.linux简介 二.linux发展史 三.虚拟化技术 1.简介 2.虚拟化软件下载 3.重要名词解释 4.远程链接工具 一.linux简介 常见岗位 1.自动化运维 ...
- [Leetcode]设计循环队列
题目 代码 class MyCircularQueue { public: /** Initialize your data structure here. Set the size of the ...
- P5687 [CSP-S2019 江西] 网格图
题面 给定一个 \(n\times m\) 的网格图,行从 \(1\sim n\) 编号,列从 \(1\sim m\) 编号,每个点可用它所在的行编号 \(r\) 与所在的列编号 \(c\) 表示为 ...
- AtCoder Beginner Conest 284 解题报告
AtCoder Beginner Conest 284 解题报告 \(\text{By DaiRuiChen007}\) \(\text{Contest Link}\) A. Sequence of ...
- 以交互的方式升级ESXi主机
以交互的方式升级ESXi主机 环境说明: 需求:要将 ESXi 6.0 主机和 ESXi 6.5 主机升级到 ESXi 6.7,可从 CD.DVD 或 USB 闪存驱动器引导 ESXi 安装程序. 注 ...
- 浅谈Python中的if,可能有你不知道的
Python中的if,没那么简单,虽然也不难 https://docs.python.org/zh-cn/3.9/reference/compound_stmts.html#if python语言参考 ...
- spring security登录认证流程解析
转 https://blog.csdn.net/qq_37142346/article/details/80032336 1.说明 用户认证流程 认证结果如何在多个请求之间共享 获取认证用户信息.用户 ...
- 上午小博(java小知识)
使用super来引用父类的成分,使用this来引用当前对象 一个类从另一个类继承,new这个子类的实例的时候,使用super来引用父类对象,this是指当前对象的引用. 当new一个对象出来的时候,这 ...
- j-link "the connected j-link is defective"问题的解决
出现这个原因是 J-link和J-link的驱动不匹配,比如J-link的固件太老,J-link驱动太新.因此要解决的话,要不就是换不同版本的J-link驱动,要不就是换J-Link或升级J-link ...
- Osx10.14升级watchman踩坑记
背景 使用 watchman 检测文件变化通知非常的好用, 但有些时候会出现 watchman 占用内存和 CPU 特别疯狂, 通过 watch-del 也无济与事, 由于 watchman 的版本 ...