记录PaddleOCR的使用

记录PaddleOCR的使用

  • 背景
  • windows下安装
    • 1、环境
    • 2、使用
  • linux下部署
    • 1、环境
      • 环境1号坑--paddlepaddle的avx问题
      • 环境2号坑--gcc版本
      • 环境3号坑--No module named ‘_lzma’
      • 环境4号坑--其他小坑
      • 总结
    • 2、部署

背景

无非就是工作需要罢了
首先在windows下直接用依赖的方法很容易就安装下来了并且可以正确执行demo,但是需要花差不多3秒钟来分析图片,对比百度云服务的接口(0.x秒级别)肯定是差距很大的,我就想会不会是模型每次需要加载的原因,所以后面在linux环境下用编译的方式部署,这里主要记录一下linux环境遇到的问题

windows下安装

首先找到了这个开源的PaddleOCR版本,打算先在自己电脑上运行起来试一下。
在windows环境下安装的很顺利,这里完全按照官方文档来操作即可
链接: PaddleOCR 快速开始.

1、环境

python 3.7

由于使用GPU版本的需要安装很多东西,比较麻烦,而且只是先试运行,就直接安装的cpu版本

python3 -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

安装PaddleOCR whl包,这里也使用的百度镜像源,如果有个别包下不下来,根据报错用清华源即可

pip install "paddleocr>=2.0.1" # 推荐使用2.0.1+版本

还有一句官方提示,但是我没有遇到这个问题:

对于Windows环境用户:直接通过pip安装的shapely库可能出现[winRrror 126] 找不到指定模块的问题。建议从 这里下载shapely安装包完成安装。

2、使用

这里上面的文档提供了demo和图片等详细指令,就不再多做说明,这个文档主要是想记录一下我遇到的问题

linux下部署

1、环境

这里环境我真是吃了大亏,官方文档太分散了,并没有很集中的说明。
1、首先打算用快速安装的方法,我最先看到他有docker方式和CPU环境使用方式,就没有在意,后面捣鼓了两天发现最前面有一个GPU!!!
2、后面决定用PaddleHub Serving的服务部署方法,从这里开始坑就大了起来。

环境1号坑–paddlepaddle的avx问题

因为官方一直建议的python3.7,然后我也一直用的python3.7的环境,但是一直会有各种莫名其妙的报错,能完整的安装完依赖包但是运行的时候也会报错,后面仔细看才发现了一句重要提示,但是这一句每次都只是警告,并不是明显报错,报错的都是其他提示信息,所以导致我一直忽略“No module named ‘paddle.fluid.core_noavx‘”,说我的机器根本不支持avx要安装noavx版本的paddlepaddle,然后就去 官网找。
记录PaddleOCR的使用_第1张图片
结果恐怖的来了,python3.7版本根本就没有noavx版本的whl,于是重新安装python3.8

环境2号坑–gcc版本

由于这些教程文档,一直都没有说需要指定gcc的版本,所以我也根本就没有管这个(正常人谁想的到),然后运行的时候也就是各种报错咯,最后的最后,偶然情况下,在官网看到了需要gcc5.4/8.2版本,当时内心真是一万只xx马崩腾啊,因为前面已经折腾了好几天了。没办法只能升级gcc,然后重新安装编译python
记录PaddleOCR的使用_第2张图片
这里备注说明一下,gcc的安装网上一搜一大把,但是最后的make操作非常耗时间,我是晚上起一个进程挂着跑完的。

环境3号坑–No module named ‘_lzma’

import librosa
import lzma
上面两个操作都会引起这个错误:
ModuleNotFoundError: No module named ‘_lzma’
安装lzma包没什么用
pip3 install backports.lzma (可能需要sudo)
然后根据你报错的文件路径 修改原本就存在的lmza.py文件
比如我是把 /usr/local/lib/python3.8/lzma.py
修改如下:

try:
    from _lzma import *
    from _lzma import _encode_filter_properties, _decode_filter_properties
except ImportError:
    from backports.lzma import *
    from backports.lzma import _encode_filter_properties, _decode_filter_properties

环境4号坑–其他小坑

再其他报错就是见招拆招了,没有遇到特别难忘的错误了

总结

python 3.8
gcc 8.2

结合两个文档Linux下从源码编译和快速启动服务

2、部署

这里不做过多描述了,完全就是按照官方文档来操作,但是这里还是记录一个文档,获得了一些帮助
百度飞浆 PaddleOCR HubServing的部署 (CentOS 7)
然后就是模型的下载
因为linux编译部署需要下载模型解压到对应文件夹,其中文本方向分类模型用wget下载的解压不了,只能在windows环境解压了然后上传上去
附上下载地址
PP-OCR系列模型列表

文章到这里就结束了,主要记录一下问题,后续也会继续研究学习,欢迎讨论交流~

你可能感兴趣的:(python,linux,python,paddlepaddle)