-
安裝
- Docker 安裝
- PaddleOCR 安裝
- 準(zhǔn)備PaddleServing的運行環(huán)境,
- 模型轉(zhuǎn)換
- Paddle Serving pipeline部署
- 重啟
- 測試
百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統(tǒng) 預(yù)測部署簡介與總覽
百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統(tǒng) Paddle Inference 模型推理(離線部署)
百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統(tǒng) 基于 Paddle Serving快速使用(服務(wù)化部署 - CentOS)
百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統(tǒng) 基于 Paddle Serving快速使用(服務(wù)化部署 - Docker)推薦
查看版本 沒找到本文安裝的版本,可以跳過此步驟
https://hub.docker.com/r/paddlepaddle/paddle/tags/?page=1&name=cpu
安裝
虛機配置:CentOS 7 、 內(nèi)存:12G、CPU:4核
鏡像中集成好了 Python 3.7.12 比較方便
Docker 安裝
# 切換進 opt/ppocr 目錄,后面 $PWD 掛載時會用到當(dāng)前的路徑
[root@localhost ~]# cd /opt/ppocr/
[root@localhost ppocr]# pwd
/opt/ppocr
[root@localhost ppocr]#
# 獲取鏡像 -- 沒有GPU環(huán)境,使用CPU跑了玩玩
[root@localhost ppocr]# docker pull registry.baidubce.com/paddlepaddle/paddle:2.2.2
# 創(chuàng)建一個名字為ppocr的docker容器,并將當(dāng)前目錄映射到容器的/paddle目錄下
[root@localhost ppocr]# docker run --name ppocr -v $PWD:/paddle --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.2.2 /bin/bash
# --name ppocr:設(shè)定 Docker 的名稱,ppocr 是自己設(shè)置的名稱;
# -it:參數(shù)說明容器已和本機交互式運行;
# -v $PWD:/paddle:指定將當(dāng)前路徑(PWD 變量會展開為當(dāng)前路徑的絕對路徑--Linux宿主機的路徑,所以執(zhí)行命令的路徑要選好)掛載到容器內(nèi)部的 /paddle 目錄;(相當(dāng)于 /opt/ppocr 掛載到容器內(nèi))
# registry.baidubce.com/paddlepaddle/paddle:2.2.2:指定需要使用的 image 名稱,您可以通過docker images命令查看;/bin/bash 是在 Docker 中要執(zhí)行的命令
# ctrl+P+Q可退出docker 容器,重新進入docker 容器使用如下命令
[root@localhost ppocr]# docker exec -it ppocr /bin/bash
λ localhost /home
[root@localhost
開頭的都是在Linux 服務(wù)器上執(zhí)行
以下命令都是在容器中執(zhí)行,防止混淆,下面命令省掉了 λ localhost /home
PaddleOCR 安裝
# 升級 pip
pip install -U pip
# 容器中已經(jīng)包含了 paddlepaddle 2.2.2
pip list
# 拉取 PaddleOCR 代碼
git clone https://gitee.com/paddlepaddle/PaddleOCR.git
# 切換進入 PaddleOCR 目錄
cd PaddleOCR
# 安裝運行所需要的whl包
pip install -r requirements.txt -i https://mirror.baidu.com/pypi/simple
準(zhǔn)備PaddleServing的運行環(huán)境,
# 安裝serving,用于啟動服務(wù)
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,用于向服務(wù)發(fā)送請求
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
模型轉(zhuǎn)換
首先,下載PP-OCR的inference模型
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模型轉(zhuǎn)換成易于server部署的模型格式。
# 轉(zhuǎn)換檢測模型
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/
# 轉(zhuǎn)換識別模型
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/
# 查看文件夾
ll ppocr_det_v3_client ppocr_det_v3_serving ppocr_rec_v3_serving ppocr_rec_v3_client
Paddle Serving pipeline部署
啟動服務(wù),測試時使用,窗口關(guān)閉服務(wù)停止
python web_service.py --config=config.yml
# 啟動服務(wù)(后臺運行),運行日志保存在log.txt
nohup python web_service.py --config=config.yml &>log.txt &
tail -f ./log.txt
重啟
# 如果容器停止,重啟容器
[root@localhost ppocr]# docker restart ppocr
# 進入容器
[root@localhost ppocr]# docker exec -it ppocr /bin/bash
# 切換目錄
cd PaddleOCR/deploy/pdserving/
# 啟動服務(wù)
python web_service.py --config=config.yml
# nohup python web_service.py --config=config.yml &>log.txt &
測試
Python 讀取圖片 轉(zhuǎn) base64 并生成 JSON
import json
import base64
img_path = r'D:\OpenSource\PaddleOCR-release-2.6\doc\imgs\00006737.jpg';
with open(img_path, 'rb') as file:
image_data1 = file.read()
image = base64.b64encode(image_data1).decode('utf8')
data = {"key": ["image"], "value": [image]}
# 轉(zhuǎn)成 json 字符串
json_str = json.dumps(data)
print(json_str)
格式如下:
{"key": ["image"], "value": ["image base64"]}
將生成的 json - 圖片base64,復(fù)制到 Postman 中執(zhí)行如下文章來源:http://www.zghlxwxcb.cn/news/detail-467063.html
參考 :
https://www.paddlepaddle.org.cn/documentation/docs/zh/install/docker/linux-docker.html
https://www.paddlepaddle.org.cn/tutorials/projectdetail/3946013
https://gitee.com/paddlepaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/installation.md
https://gitee.com/paddlepaddle/PaddleOCR/blob/release/2.6/deploy/pdserving/README_CN.md文章來源地址http://www.zghlxwxcb.cn/news/detail-467063.html
到了這里,關(guān)于百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統(tǒng) 基于 Paddle Serving快速使用(服務(wù)化部署 - Docker)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!