目录
1. OCR 是什么?
2. PaddlePaddle 是什么?
3. PaddleOCR 是什么?
4. PaddleServing 服务化部署框架是什么?
5. PaddleOCR 的服务化部署(模型推理部署)
5.1. 服务器配置
5.2. 安装 Docker
5.3. 安装 PaddlePaddle2.2(基于Docker)
5.4. 安装 PaddleOCR
5.5. 安装 PaddleServing
5.6. 安装推理模型(检测、识别)
5.7. 启动 Paddle Serving pipeline 服务
5.8. 测试
1. OCR 是什么?
OCR(Optical Character Recognition,光学字符识别)目前是文字识别的统称,已不限于文档或书本文字识别,更包括识别自然场景下的文字,又可以称为STR(Scene Text Recognition)。
OCR文字识别一般包括两个部分:文本检测和文本识别。
2. PaddlePaddle 是什么?
飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,是中国首个自主研发、功能完备、 开源开放的产业级深度学习平台,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体。
3. PaddleOCR 是什么?
PP-OCR是一个实用的超轻量OCR系统。主要由DB文本检测、检测框矫正和CRNN文本识别三部分组成。
4. PaddleServing 服务化部署框架是什么?
Paddle Serving依托深度学习框架PaddlePaddle旨在帮助深度学习开发者和企业提供高性能、灵活易用的工业级在线推理服务。Paddle Serving支持RESTful、gRPC、bRPC等多种协议,提供多种异构硬件和多种操作系统环境下推理解决方案,和多种经典预训练模型示例。
5. PaddleOCR 的服务化部署(模型推理部署)
5.1. 服务器配置
5.2. 安装 Docker
戳下图,看如何在 CentOS8 中安装 Docker。
5.3. 安装 PaddlePaddle2.2(基于Docker)
拉取预安装 PaddlePaddle 的镜像:
docker pull registry.baidubce.com/paddlepaddle/paddle:2.2.2
docker run --name ppocr \
-v $PWD:/paddle \
--network=host \
-it registry.baidubce.com/paddlepaddle/paddle:2.2.2 /bin/bash
后续操作
在PaddlePaddle2.2.2容器中完成
5.4. 安装 PaddleOCR
git clone https://gitee.com/paddlepaddle/PaddleOCR
cd PaddleOCR
pip3 install -r requirements.txt
5.5. 安装 PaddleServing
安装serving,用于启动服务:
pip3 install paddle-serving-server==0.7.0
安装client,用于向服务发送请求:
pip3 install paddle-serving-client==0.7.0
安装app:
pip3 install paddle-serving-app==0.7.0
5.6. 安装推理模型(检测、识别)
下载PPOCR的inference模型:
# 切换到 OCR 的 pdserving 目录
cd PaddleOCR/deploy/pdserving
# 下载并解压 OCR 文本检测模型
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar -O ch_ppocr_server_v2.0_det_infer.tar &&
tar -xf ch_ppocr_server_v2.0_det_infer.tar
# 下载并解压 OCR 文本识别模型
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar -O ch_ppocr_server_v2.0_rec_infer.tar &&\
tar -xf ch_ppocr_server_v2.0_rec_infer.tar
推理模型转换:用安装的paddle_serving_client把下载的inference模型转换成易于server部署的模型格式。
# 转换检测模型
python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_det_infer/ \
--model_filename inference.pdmodel \
--params_filename inference.pdiparams \
--serving_server ./ppocrv2_det_serving/ \
--serving_client ./ppocrv2_det_client/
# 转换识别模型
python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_rec_infer/ \
--model_filename inference.pdmodel \
--params_filename inference.pdiparams \
--serving_server ./ppocrv2_rec_serving/ \
--serving_client ./ppocrv2_rec_client/
5.7. 启动 Paddle Serving pipeline 服务
# 进入到工作目录
cd PaddleOCR/deploy/pdserving/
# 启动服务,运行日志保存在log.txt
python3 web_service.py &>log.txt &
成功启动服务后,log.txt中会打印类似如下日志
5.8. 测试
python3 pipeline_http_client.py
成功运行后,模型预测的结果会打印在cmd窗口中,结果示例为:
参考:
PaddlePaddle: https://github.com/PaddlePaddle/Paddle PaddlePaddle 使用指南: https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/index_cn.html PaddleOCR: https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.4/README_ch.md