百度机器视觉Ocr本地化-基于Docker

        本次搭建采用CPU的方式; 因为办公室机器没有GPU,所以下面就默认都是CPU的配置及选项了;

1、安装操作系统:Ubuntu 16.04 Server;系统安装就略过了;没有特别需要注意的;

2、更新系统apt源为阿里镜像;也可以换成其他镜像;主要为了方便; 

3、更新apt源

sudo apt-get update

4、安装Docker

sudo apt-get install docker
sudo apt-get install docker.io
sudo apt-get install docker-registry

5、获取官方镜像(https://hub.docker.com/r/paddlepaddle/paddle/tags/?page=1&name=cpu),并拉取镜像

docker pull paddlepaddle/paddle:2.5.0rc0-cpu

6、进入系统挂载路径

cd /opt/
sudo mkdir ppcor
cd ppocr
pwd

7、创建一个名字为ppocr的docker容器,并将当前目录映射到容器的/paddle目录下

docker run --name ppocr -v $PWD:/paddle --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.5.0rc0-cpu /bin/bash

8、进入Docker容器

docker exec -it ppocr /bin/bash

以下操作在容器中执行

1、升级PIP

pip install -U pip
pip list

2、拉取 PaddleOCR 代码,并获取相关的whl包

git clone https://gitee.com/paddlepaddle/PaddleOCR.git
cd PaddleOCR
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple

3、准备PaddleServing的运行环境

# 安装serving,用于启动服务 
wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_server-0.8.3-py3-none-any.whl 
pip install paddle_serving_server-0.8.3-py3-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple 
# 安装client,用于向服务发送请求
wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_client-0.8.3-cp37-none-any.whl 
pip install paddle_serving_client-0.8.3-cp37-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple 
# 安装serving-app 
wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_app-0.8.3-py3-none-any.whl 
pip install paddle_serving_app-0.8.3-py3-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

4、模型准备和转换

cd deploy/pdserving/ 
# 下载并解压 OCR 文本检测模型
 wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_det_infer.tar -O ch_PP-OCRv3_det_infer.tar && tar -xf ch_PP-OCRv3_det_infer.tar 
# 下载并解压 OCR 文本识别模型 
wget https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar -O ch_PP-OCRv3_rec_infer.tar && tar -xf ch_PP-OCRv3_rec_infer.tar 
# 用安装的paddle_serving_client把下载的inference模型转换成易于server部署的模型格式。 
# 转换检测模型 
python -m paddle_serving_client.convert --dirname ./ch_PP-OCRv3_det_infer/ \ 
                                         --model_filename inference.pdmodel \ 
                                         --params_filename inference.pdiparams \ 
                                         --serving_server ./ppocr_det_v3_serving/  \ 
 --serving_client ./ppocr_det_v3_client/ 
# 转换识别模型 
python -m paddle_serving_client.convert --dirname ./ch_PP-OCRv3_rec_infer/ \ 
                                         --model_filename inference.pdmodel \ 
                                         --params_filename inference.pdiparams \ 
                                         --serving_server ./ppocr_rec_v3_serving/ \ 
                                         --serving_client ./ppocr_rec_v3_client/

5、Paddle Serving pipeline部署,注意Config.yml文件;rpc、http、并发等设置在此文件;

#启动服务,测试时使用,窗口关闭服务停止 
python web_service.py --config=config.yml 
# 启动服务(后台运行),运行日志保存在log.txt 
nohup python web_service.py --config=config.yml &>log.txt & 
tail -f ./log.txt

至此基本部署完成;后续是常用命令

#退出docker镜像
exit
#回到宿主机,重启容器
docker restart ppocr
#进入到docker镜像
docker exec -it ppocr /bin/bash
#切换到工作Docker目录
cd PaddleOCR/deploy/pdserving/ 

部署完成;HTTP远程调用

/**
* HTTP请求:
* 请求方式:POST
* 请求地址:http://ip:prod/ocr/prediction
* Header设置:Content-Type:application/json
* 包体内容格式:{"key": ["image"], "value": ["图片Base64值,不要图片信息前缀,只取图片内容"]
* 响应格式:
**/
{
    "err_no": 0,
    "err_msg": "",
    "key": [
        "result"
    ],
    "value": [ 识别结果-字符串,需要手动再次处理 ;包含识别结果及点位],
    "tensors": []
}

实验样例图片

PostMan请求响应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值