关于paddleocr2.6 布局分析的踩坑总结(一)

  824paddleocr发布了2.6.0,之前使用过2.5版本的布局分析,整体比较好用。近期就尝试了一下paddleocr的新版本,记录一下尝鲜经历。2.6版本的公告中指出,布局分析模型缩小了95%,同时速度提升了11倍,在cpu上平均耗时41ms

 

 

  打开ppstructure/layoutreadme,发现2.6的调用方法与2.5差别还是挺大的,由于之前程序是以2.5版本为基础写的,更倾向于再原有的代码上改造。所以本文主要以改造踩坑为主。

  2.5版本是使用了使用了layoutparser库集成的调用,创建了PaddleDetectionLayoutModel对象,调用配置好的模型,使用cv2读取图片后,进行识别,过程很简单。但2.6发布的新模型并没有集成到layoutparser的配置中,从调用方式上看是只需要修改了相关配置就ok的。

 

 

 

  通过查看PaddleDetectionLayoutModel的源码,在catalogMODEL_CATALOG添加模型的urlPubLayNet中未注释的部分为真实地址,但是你添加了这个地址后程序是不会自动下载的,因为在PaddleModelURLHandler中不支持网址https://paddleocr.bj.bcebos.com

  解决办法有两种,一种相对比较彻底的就是给PaddleModelURLHandler支持的网址中加上模型的网址,这样在配置中可以保留模型真实的地址。另一种隐患较大,修改真实网址如上图中注释代码。但是不管如何修改配置,在尝试过程中都没有成功下载,难道是网络问题?

 

 

  在确认网络没有异常之后(浏览器可以直接下载),找到了download代码,上边的显示下载进度,下边的直接下载。换成注释内容后顺利下载,建议没事不要动源码,出发用不了。其实也可以跳过代码中下载步骤,通过浏览器下载后将模型放到本地缓存解压即可。代码中tmp的地址就是本地缓存位置。

 

 

  终于将模型从配置链接到缓存本地都弄好了,启动后依然报错。错误信息是找不到模型文件,查看本地缓存后发现下载的模型文件名默认是model.后缀名,程序调用的模型文件是inference.后缀名。改名之后加载模型过程中没有再报错。

 

  启动后在detect 图片的过程中会报错。同时运行2.52.6预测同一张图片时,predictorinput_names不一样,继而返回的tensor的形状也不同,最终报错。原因暂无结论。

 

 

  接下来会尝试使用2.6文档中的调用方法,尽管这也说明使用无法再使用layoutparser来兼容了。

 

posted @ 2022-11-02 17:26  单亚林  阅读(871)  评论(0编辑  收藏  举报