前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【OCR】:PaddleOCR 的服务化部署

【OCR】:PaddleOCR 的服务化部署

作者头像
WEBJ2EE
发布2022-03-30 21:04:02
7.1K2
发布2022-03-30 21:04:02
举报
文章被收录于专栏:WebJ2EE
代码语言:javascript
复制
目录
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文字识别一般包括两个部分:文本检测和文本识别。

  • 文本检测就是要定位图像中的文字区域,然后通常以边界框的形式将单词或文本行标记出来。传统的文字检测算法多是通过手工提取特征的方式,特点是速度快,简单场景效果好,但是面对自然场景,效果会大打折扣。当前多是采用深度学习方法来做。
  • 然后检测到的文本行用识别算法去识别到具体文字。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. 服务器配置

  • CPU 服务器
    • 8C
    • 16G
    • 180G
  • CentOS8

5.2. 安装 Docker

戳下图,看如何在 CentOS8 中安装 Docker。

5.3. 安装 PaddlePaddle2.2(基于Docker)

拉取预安装 PaddlePaddle 的镜像:

代码语言:javascript
复制
docker pull registry.baidubce.com/paddlepaddle/paddle:2.2.2

启动并进入docker容器:

代码语言:javascript
复制
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

  • 克隆 PaddleOCR 的 repo 代码(Github我连不上...):
代码语言:javascript
复制
git clone https://gitee.com/paddlepaddle/PaddleOCR
  • 安装 PaddleOCR 的 python 依赖
代码语言:javascript
复制
cd PaddleOCR
pip3 install -r requirements.txt

5.5. 安装 PaddleServing

安装serving,用于启动服务:

代码语言:javascript
复制
pip3 install paddle-serving-server==0.7.0

安装client,用于向服务发送请求:

代码语言:javascript
复制
pip3 install paddle-serving-client==0.7.0

安装app:

代码语言:javascript
复制
pip3 install paddle-serving-app==0.7.0

5.6. 安装推理模型(检测、识别)

下载PPOCR的inference模型:

代码语言:javascript
复制
# 切换到 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部署的模型格式。

代码语言:javascript
复制
# 转换检测模型
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 服务

代码语言:javascript
复制
# 进入到工作目录
cd PaddleOCR/deploy/pdserving/

# 启动服务,运行日志保存在log.txt
python3 web_service.py &>log.txt &

成功启动服务后,log.txt中会打印类似如下日志

5.8. 测试

代码语言:javascript
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WebJ2EE 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 启动并进入docker容器:
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档