docker部署PaddleOCR流程

发布时间 2023-06-01 10:51:12作者: xqy-2021

先安装docker,输入docker -v后即可开始部署paddleocr

1.容器环境使用ubuntu16.04

docker pull ubuntu:16.04

2.启动容器 使用 -itd 可以在后台运行 正常-it就可以

docker run -itd --name="paddleocr" ubuntu:16.04 bash

3.修改apt源(这里设置为清华源还不错)

sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

4.修改完成之后 更新apt

apt update

5.下列步骤为安装python3.7

cd /usr/local

mkdir -p /usr/local/python

chmod -R 777 ./python

apt-get install libffi-dev uuid-dev lzma-dev liblzma-dev libncurses5-dev libgdbm-dev sqlite3 libsqlite3-dev openssl tcl8.6-dev tk8.6-dev libreadline-dev zlib1g-dev build-essential bzip2 libbz2-1.0 libbz2-dev libc6-dev libdb-dev libexpat1 libexpat1-dev libgdbm3 libncursesw5-dev libpcap-dev libreadline5 libreadline6 libreadline6-dev libsqlite0 libsqlite0-dev libsqlite3-0 libssl-dev libssl1.0.0 libxml2-dev libxslt1-dev sqlite tcl tk tk-dev xz-utils zlib1g zlib1g-dev make gedit nano net-tools wget

cd ~
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

cd /usr/local/python
mkdir ./python3.7

cd ~
tar -xf ~/Python-3.7.3.tgz

cd ~/Python-3.7.3
./configure prefix=/usr/local/python/python3.7 --enable-optimizations

cd ~/Python-3.7.3
make -j 2

cd ~/Python-3.7.3
make altinstall >&1|tee make.log

nano ~/.bashrc

export PATH=$PATH:/usr/local/python/python3.7/bin

source ~/.bashrc

可更新python3.7自带的pip的版本,也可不更新,一般原版的更配,只是新版的进度条更好看,也没有版本更新警告。
python3.7 -m pip install --upgrade pip
如果想切换回原版的
python3.7 -m pip install --upgrade pip==20.1.1

对于python3.7,安装后使用pip请以python3.7 -m pip install xxx的形式使用

删除安装文件

cd ~
rm -r ./Python-3.7.9
rm -r ./Python-3.7.9.tgz

到此 python就安装完毕了  可以输入python -V查看版本

cd /usr/local

6.安装paddlepaddle

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

7.安装hubserving

python3.7 -m pip install paddlehub==2.1.0 --upgrade -i https://mirror.baidu.com/pypi/simple

8.下载paddleocr,直接从GitHub - PaddlePaddle/PaddleOCR: Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)下载压缩包,在根目录新建目录inference,从上面目录下载最新的v3模型以此点击三个inference model

 最终效果如下

 然后去修改目录下的params.py

 如果按照下述路径配置就按照我这个修改

 

将文件拷贝到 /usr/local 目录下 提供一条命令在宿主机执行 docker cp 宿主机绝对路径 容器id:容器路径

9.安装需要的依赖

cd /usr/local/PaddleOCR

python3.7 -m pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple

10.安装ocr_system服务

hub install deploy/hubserving/ocr_system/

这里可能会报错 GLIBCXX 什么的 能看到缺少什么版本,比如我是缺少21

给出解决方案

首先查看版本 strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX  这个命令看到的系统内有的只到20

cd ~

mkdir Download

cd /Download

下载文件 wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip

解压,得到文件 libstdc++.so.6.0.26,比如解压到了 ~/Download/ 下;
移动到文件夹下 /usr/lib/x86_64-linux-gnu/
cd /usr/lib/x86_64-linux-gnu/
sudo rm libstdc++.so.6 # 移除掉原来的软连接文件
ln libstdc++.so.6.0.26 libstdc++.so.6

操作完成后回到/usr/local/Paddle目录下,再执行 hub install deploy/hubserving/ocr_system/ 这里可能还会报一个版本冲突的错误 urllib3有关 只需要降低urllib3版本 

python3 -m pip install urllib3==1.26.6

再执行 hub install deploy/hubserving/ocr_system/ 不出意外应该会成功 

运行程序 hub serving start -m ocr_system

查看效果 python tools/test_hubserving.py --server_url=http://127.0.0.1:8866/predict/ocr_system --image_dir=doc/imgs/11.jpg
有任何问题 可以联系我 vx: Palpitate_1033