目錄
- 1.環境搭建
- 1.1 創建conda環境
- 1.2 安裝paddlepaddle和paddlehub
- 1.3 安裝依賴
- 2. 移動端模型部署
- 2.1 安裝移動端模型
- 2.2 測試
- 3. 服務部署
- 3.1 啟動PaddleHub Serving
- 3.2 發送預測請求
1.環境搭建
1.1 創建conda環境
conda create --name paddlehub python=3.8
conda activate paddlehub
1.2 安裝paddlepaddle和paddlehub
pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple
1.3 安裝依賴
pip install shapely pyclipper
2. 移動端模型部署
2.1 安裝移動端模型
hub install chinese_ocr_db_crnn_mobile
報錯1:
增加download函數
vim /home/yinsuan/miniconda3/envs/paddlehub/lib/python3.8/site-packages/aistudio_sdk/hub.py
def download(url, target_path):os.makedirs(os.path.dirname(target_path), exist_ok=True)response = requests.get(url, stream=True)with open(target_path, 'wb') as f:for chunk in response.iter_content(chunk_size=1024):if chunk:f.write(chunk)print(f"Downloaded {url} to {target_path}")
報錯2:
export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python
安裝成功
2.2 測試
將其中的np.int 修改為int即可
vim /home/yinsuan/.paddlehub/modules/chinese_ocr_db_crnn_mobile/module.py
hub run chinese_ocr_db_crnn_mobile --input_path "/PATH/TO/IMAGE"
測試成功
3. 服務部署
3.1 啟動PaddleHub Serving
hub serving start -m chinese_ocr_db_crnn_mobile
3.2 發送預測請求
import requests
import json
import cv2
import base64def cv2_to_base64(image):data = cv2.imencode('.jpg', image)[1]return base64.b64encode(data.tostring()).decode('utf8')# 發送HTTP請求
data = {'images':[cv2_to_base64(cv2.imread("/PATH/TO/IMAGE"))]}
headers = {"Content-type": "application/json"}
url = "http://127.0.0.1:8866/predict/chinese_ocr_db_crnn_mobile"
r = requests.post(url=url, headers=headers, data=json.dumps(data))# 打印預測結果
print(r.json()["results"])
參考:https://www.paddlepaddle.org.cn/hubdetail?name=chinese_ocr_db_crnn_mobile&en_category=TextRecognition