关于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来兼容了。
最新文章
- C语言 指针例解
- SQL Server编程(02)自定义函数
- AngularJS 之 Factory、Service、Provider
- Nosql学习笔记
- iOS打开百度地图、高德地图导航
- MVC学习地址
- matlab绘制三维图形
- Android 利用Service实现下载网络图片至sdk卡
- HW7.15
- Extjs关于FormPanel布局
- WPF ICommand 用法
- Android菜鸟的成长笔记(15)—— Android中的状态保存探究(下)
- Sql Sever语句 (续2)
- Lucene中的合并因子mergeFactor
- hset和hget
- JSP内置对象值out对象及其它的一些常见方法
- CRC32明文攻击
- 在 CentOS 7 中安装 MySQL 8
- android studio 模拟器无法联网的解决方法
- 微信小程序信息展示列表
热门文章
- Raft一致性共识算法论文学习
- python基础23 之初识面向对象
- elasticsearch实现简单的脚本排序(script sort)
- GreenPlum批量授权(PG未测试)
- MySQL 字符串长度 char_length、length
- 使用JS实现复制粘贴功能
- Grafana 系列文章(二):使用 Grafana Agent 和 Grafana Tempo 进行 Tracing
- C#Autofac依赖注入批量注入 (目前版本.netcore3.0)
- springboot多模块controller访问的问题
- 关于AD获取成员隶属于哪些组InvokeGet(";memberOf";)的问题