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来兼容了。

最新文章

  1. C语言 指针例解
  2. SQL Server编程(02)自定义函数
  3. AngularJS 之 Factory、Service、Provider
  4. Nosql学习笔记
  5. iOS打开百度地图、高德地图导航
  6. MVC学习地址
  7. matlab绘制三维图形
  8. Android 利用Service实现下载网络图片至sdk卡
  9. HW7.15
  10. Extjs关于FormPanel布局
  11. WPF ICommand 用法
  12. Android菜鸟的成长笔记(15)—— Android中的状态保存探究(下)
  13. Sql Sever语句 (续2)
  14. Lucene中的合并因子mergeFactor
  15. hset和hget
  16. JSP内置对象值out对象及其它的一些常见方法
  17. CRC32明文攻击
  18. 在 CentOS 7 中安装 MySQL 8
  19. android studio 模拟器无法联网的解决方法
  20. 微信小程序信息展示列表

热门文章

  1. Raft一致性共识算法论文学习
  2. python基础23 之初识面向对象
  3. elasticsearch实现简单的脚本排序(script sort)
  4. GreenPlum批量授权(PG未测试)
  5. MySQL 字符串长度 char_length、length
  6. 使用JS实现复制粘贴功能
  7. Grafana 系列文章(二):使用 Grafana Agent 和 Grafana Tempo 进行 Tracing
  8. C#Autofac依赖注入批量注入 (目前版本.netcore3.0)
  9. springboot多模块controller访问的问题
  10. 关于AD获取成员隶属于哪些组InvokeGet("memberOf")的问题