3.16前言
这是继上一次在我的台式机上部署PaddleOCR两个月之后的又一次实战。
毕设上线在即,恰好得到一个月云服务器使用权限。用来测试配置PaddleOCR及Web环境以便在正式环境部署(测试环境:Ubuntu 18.04)。
安装宝塔面板
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
安装集成开发环境

安装PaddlePaddle
python3 -m pip3 install paddlepaddle==2.2.2 -i https://mirror.baidu.com/pypi/simple若出现下述报错,更新pip即可:

# pip3执行 |
|---|
pip3 install --upgrade pip |
# pip执行 |
pip install --upgrade pip |
# 如果上面升级失败,可以试试 |
python -m pip install --upgrade --force pip |
正常情况如下图所示:

验证是否安装成功:
import paddle
paddle.utils.run_check()出现下图界面则安装成功:

创建OCR环境
# 创建目录
sudo mkdir /ocr
# 转移所有者
sudo chown -R ubuntu:ubuntu /ocr/上传Clone下来的项目
用WinSCP或宝塔把项目压缩包上传到服务器并解压:
ubuntu@VM-4-11-ubuntu:~$ cd /ocr
ubuntu@VM-4-11-ubuntu:/ocr$ ls
PaddleOCR-release-2.4.zip
ubuntu@VM-4-11-ubuntu:/ocr$ unzip PaddleOCR-release-2.4.zip
Archive: PaddleOCR-release-2.4.zip
bca7070ae9a4064ea9cab8a213fcfee8c832ec6e
creating: PaddleOCR-release-2.4/
inflating: PaddleOCR-release-2.4/.clang_format.hook
creating: PaddleOCR-release-2.4/.github/
creating: PaddleOCR-release-2.4/.github/ISSUE_TEMPLATE/
inflating: PaddleOCR-release-2.4/.github/ISSUE_TEMPLATE/custom.md
inflating: PaddleOCR-release-2.4/.gitignore
inflating: PaddleOCR-release-2.4/.pre-commit-config.yaml
inflating: PaddleOCR-release-2.4/.style.yapf
inflating: PaddleOCR-release-2.4/LICENSE
inflating: PaddleOCR-release-2.4/MANIFEST.in
creating: PaddleOCR-release-2.4/PPOCRLabel/
inflating: PaddleOCR-release-2.4/PPOCRLabel/Makefile
inflating: PaddleOCR-release-2.4/PPOCRLabel/PPOCRLabel.py
inflating: PaddleOCR-release-2.4/PPOCRLabel/README.md
inflating: PaddleOCR-release-2.4/PPOCRLabel/README_ch.md
extracting: PaddleOCR-release-2.4/PPOCRLabel/__init__.py
inflating: PaddleOCR-release-2.4/PPOCRLabel/combobox.py
...............此时的目录结构:

安装所需Python依赖
ubuntu@VM-4-11-ubuntu:/ocr$ cd PaddleOCR-release-2.4/
ubuntu@VM-4-11-ubuntu:/ocr/PaddleOCR-release-2.4$ pip3 install -r requirements.txt遇到如下报错:

更新pip并重新执行安装命令:
pip3 install --upgrade pip
pip3 install -r requirements.txt如果访问github受阻可以使用国内源:
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple安装完成:

验证是否安装成功:

此时若出现No module named paddle说明paddlepaddle没有装上,参考如下命令安装即可:
python3 -m pip install paddlepaddle-gpu==2.0.0 -i https://mirror.baidu.com/pypi/simple # gpu机器
python3 -m pip install paddlepaddle==2.0.0 -i https://mirror.baidu.com/pypi/simple # cpu机器
pip install "paddleocr>=2.0.1"完成后再次验证即可。
部署推理模型
在PaddleOCR解压后的目录下创建推理模型目录:
mkdir inference将推理模型上传到该目录下并解压:
ubuntu@VM-4-11-ubuntu:/ocr/PaddleOCR-release-2.4/inference$ tar -xvf ch_PP-OCRv2_det_infer.tar
._ch_PP-OCRv2_det_infer
ch_PP-OCRv2_det_infer/
ch_PP-OCRv2_det_infer/inference.pdiparams.info
ch_PP-OCRv2_det_infer/inference.pdmodel
ch_PP-OCRv2_det_infer/inference.pdiparams
ubuntu@VM-4-11-ubuntu:/ocr/PaddleOCR-release-2.4/inference$ tar -xvf ch_PP-OCRv2_rec_infer.tar
._ch_PP-OCRv2_rec_infer
ch_PP-OCRv2_rec_infer/
ch_PP-OCRv2_rec_infer/inference.pdiparams.info
ch_PP-OCRv2_rec_infer/inference.pdmodel
ch_PP-OCRv2_rec_infer/inference.pdiparams
ubuntu@VM-4-11-ubuntu:/ocr/PaddleOCR-release-2.4/inference$ tar -xvf ch_ppocr_mobile_v2.0_cls_infer.tar
ch_ppocr_mobile_v2.0_cls_infer/
ch_ppocr_mobile_v2.0_cls_infer/inference.pdiparams
ch_ppocr_mobile_v2.0_cls_infer/inference.pdiparams.info
ch_ppocr_mobile_v2.0_cls_infer/inference.pdmodel安装PaddleOCR
pip3 install "paddleocr>=2.0.1"安装成功:

测试运行
# 切到工作目录
cd /ocr/PaddleOCR-release-2.4
# 执行识别
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/ch_PP-OCRv2_det_infer/" --rec_model_dir="./inference/ch_PP-OCRv2_rec_infer/" --cls_model_dir="./inference/ch_ppocr_mobile_v2.0_cls_infer/" --use_angle_cls=True --use_space_char=True --use_gpu=False
# 优化后以选择小模型为例
python3 tools/infer/predict_system.py --image_dir="./doc/imgs/11.jpg" --det_model_dir="./inference/small/ch_PP-OCRv2_det_infer" --rec_model_dir="./inference/small/ch_PP-OCRv2_rec_infer" --cls_model_dir="./inference/small/ch_ppocr_mobile_v2.0_cls_infer" --use_angle_cls=True --use_space_char=True --use_gpu=False
项目部署记录(虚拟环境)
在PaddleOCR项目根目录下的inference中上传big和small文件夹(本地测试好的预训练模型);
在PaddleOCR项目根目录上传flaskOcrSmall.py和flaskOcrBig.py,静默运行:
nohup python3 flaskOcrSmall.py &关闭后台进程:
ps -fe|grep python找到对应进程并sudo kill即可:

设置开机自启:
sudo vim /etc/rc.local底部加上一句(注意此处不能添加nohup):
python3 /ocr/PaddleOCR-release-2.4/flaskOcrSmall.py &重启系统看效果:
reboot
搞定!
4.15凌晨更新
在使用git克隆或拉取代码时,使用sudo权限或root用户操作,不要修改Web目录权限为777或设置所有者为其他用户!
一来不安全,二来进行上传文件等操作时会因无权限遇到各种各样的报错!
参考资料:
https://blog.csdn.net/xiaojun1288/article/details/121357721
https://blog.csdn.net/cym_anhui/article/details/81286451
https://baijiahao.baidu.com/s?id=1650170269926650594
https://blog.csdn.net/GungnirsPledge/article/details/108566415
https://blog.csdn.net/jim_LoveQ/article/details/105825938
http://www.blogjava.net/fingki/archive/2009/08/11/290693.html
https://zhuanlan.zhihu.com/p/109939711
https://www.bt.cn/bbs/thread-17053-1-1.html
版权属于:soarli
本文链接:https://blog.soarli.top/archives/646.html
转载时须注明出处及本声明。