基础环境
查看服务器默认安装
ls -l /usr/bin | grep python
paddle基础环境要求
python>=3.7.0
pip>20.0.0
推荐anaconde安装python,会携带一些基础库
【OCR文字识别】Linux下基于PaddleHub Serving部署-php黑洞网 (phpheidong.com)
手动安装
./configure --prefix=/usr/local/python3.7.1
如果后续openssl有问题就重新编译
./configure --with-openssl=/usr/local/openssl1.1.1/ --prefix=/usr/local/python3.7.1/
建立软链接
ln -s /usr/local/python3.7.1/bin/pip3 /usr/bin/pip
ln -s /usr/local/python3.7.1/bin/python3 /usr/bin/python
如果存在就删除原文件夹
手动安装后 pip install失败
mv /usr/bin/lsb_release /usr/bin/lsb_release_back
pip版本不足 升级使用外部源
pip install --upgrade pip -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
PaddleOCR
从git上拉取paddleOCR源码
目录大致如下
在PaddleOCR(刚解压的目录下)里mkdir inference
从PaddleOCR提供的模型库下载以下三个模型压缩包
检测模型:ch_PP-OCRv3_det_infer.tar
识别模型:ch_PP-OCRv3_rec_infer.tar
方向分类器:ch_ppocr_mobile_v2.0_cls_infer.tar
把压缩包上传到Paddle/inference目录里,解压
修改模型位置
因为这里安装部署用模块ocr_sysyem,路径PaddleOCR/deploy/hubserving/ocr_system/params.py
Hub Serving安装
pip install paddlehub -i https://mirror.baidu.com/pypi/simple
或加源拉取
pip install paddlehub==2.1.0 --upgrade -i https://mirror.baidu.com/pypi/simple
pip install paddlepaddle --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple
无法拉取升级openssl python3.7有对应openssl版本
下载完的文件在/usr/local/python3.7.1/lib/python3.7/site-packages
下载时出现Running pip as the ‘root‘ user can result in broken permissions and conflicting
创建一个虚拟环境
python -m venv tutorial-env
进入虚拟环境
source tutorial-env/bin/activate
再次检查一下pip版本号,版本号变回低版本重新更新pip 及重拉paddlehub
在解压完paddleOCR位置目录下执行
安装检测模块
hub install deploy/hubserving/ocr_det/
或,安装识别模块
hub install deploy/hubserving/ocr_rec
或,安装检测+识别串联模块 推荐
hub install deploy/hubserving/ocr_system/
如下是成功安装
特别报错注意点
报错ModuleNotFoundError: No module named '_lzma'
按报错文件位置找到文件处理
https://blog.csdn.net/yujinlong2002/article/details/128210188
报错ImportError: cannot import name 'RNNCell' from 'paddle.fluid.layers' (/usr/local/tutorial-env/lib/python3.7/site-packages/paddle/fluid/layers/__init__.py)
paddle新版本没有fluid
降版本会出现其他一些问题
https://zhuanlan.zhihu.com/p/652867620?utm_id=0
python手动安装一些模块,大部分模块缺少可以直接pip install 模块名称
以下是特别情况
报错ModuleNotFoundError: No module named 'skimage'
pip install scikit-image
报错ModuleNotFoundError: No module named 'Polygon'
先执行卸载pip uninstall Polygon或 pip uninstall Polygon3
pip install Polygon3 -i https://pypi.tuna.tsinghua.edu.cn/simple
报错ModuleNotFoundError:No module named 'lanms'
pip install lanms-neo或 pip install lanms-neo==1.0.2
报错ModuleNotFoundError:No module named 'lmdb'
pip install lmdb -i https://pypi.tuna.tsinghua.edu.cn/simple
报错ModuleNotFoundError:No module named 'cv2'
pip install opencv_python
服务启停
启动服务 端口默认为8866
hub serving start -m ocr_system
后台启动 命令行启动(仅支持CPU)
nohup hub serving start -m ocr_system &
nohup hub serving start -m ocr_system --use_multiprocess --workers=3 &
–use_multiprocess 代表启动多线程 –workers 代表线程数 一般为2*cpu-1
指定路径启动,需要切换到hubserving目录下通过命令
hub serving start -c deploy\hubserving\ocr_system\config.json
关闭服务
hub serving stop -p 8866
接口测试
使用自带图片测试接口是否可用
python tools/test_hubserving.py --server_url=http://127.0.0.1:8866/predict/ocr_system --image_dir=/home/PaddleOCR/doc/imgs/12.jpg
接口调用
http://127.0.0.1:8868/predict/ocr_system
string param = "{\"images\":[\"" + base64Date + "\"]}";
参考文章:
PaddleOCR服务部署-并通过Java进行调用 (xjx100.cn)
paddleOCR服务端安装部署二:paddleOCR hubserving 服务安装配置_paddleocr进行服务部署_J_caicaicai的博客-CSDN博客
https://blog.csdn.net/m0_62317155/article/details/132168164