百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統 預測部署簡介與總覽
百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統 Paddle Inference 模型推理(離線部署)
百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統 基於 Paddle Serving快速使用(服務化部署 - CentOS)
百度飛槳(PaddlePaddle) - PP-OCRv3 文字檢測識別系統 基於 Paddle Serving快速使用(服務化部署 - Docker)
查看版本
https://hub.docker.com/r/paddlepaddle/paddle/tags/?page=1&name=cpu
安裝
Docker 安裝
# 切換進 opt/ppocr 目錄
[root@localhost ~]# cd /opt/ppocr/
[root@localhost ppocr]# pwd
/opt/ppocr
[root@localhost ppocr]#
# 獲取鏡像
[root@localhost ppocr]# docker pull registry.baidubce.com/paddlepaddle/paddle:2.2.2
# 創建一個名字爲ppocr的docker容器,並將當前目錄映射到容器的/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:設定 Docker 的名稱,ppocr 是自己設置的名稱;
# -it:參數說明容器已和本機交互式運行;
# -v $PWD:/paddle:指定將當前路徑(PWD 變量會展開爲當前路徑的絕對路徑)掛載到容器內部的 /paddle 目錄;(相當於 /opt/ppocr 掛載到容器內)
# registry.baidubce.com/paddlepaddle/paddle:2.2.2:指定需要使用的 image 名稱,您可以通過docker images命令查看;/bin/bash 是在 Docker 中要執行的命令
# ctrl+P+Q可退出docker 容器,重新進入docker 容器使用如下命令
[root@localhost ppocr]# docker exec -it ppocr /bin/bash
λ localhost /home
PaddleOCR 安裝
# 升級 pip
pip install -U pip
# 容器中已經包含了 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
準備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
模型轉換
首先,下載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模型轉換成易於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/
# 查看文件夾
ll ppocr_det_v3_client ppocr_det_v3_serving ppocr_rec_v3_serving ppocr_rec_v3_client
Paddle Serving pipeline部署
啓動服務,測試時使用,窗口關閉服務停止
python web_service.py --config=config.yml
# 啓動服務(後臺運行),運行日誌保存在log.txt
nohup python web_service.py --config=config.yml &>log.txt &
tail -f ./log.txt
重啓
# 如果容器停止,重啓容器
docker restart ppocr
# 進入容器
docker exec -it ppocr /bin/bash
# 切換目錄
cd PaddleOCR/deploy/pdserving/
# 啓動服務
python web_service.py --config=config.yml
測試
參考 :
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