文章目錄一、分析與選擇PaddleOCR 提供 2 種服務(wù)部署方式: 一種是 PaddleServing 的部署方式, 僅使用 CPU 推理預(yù)測在 Windows 和 Linux都能進(jìn)行部署. 若要使用 GPU 進(jìn)行推理預(yù)測, 在 Windows 上只能使用 Docker 進(jìn)行部署 (這步?jīng)]有進(jìn)行嘗試). 在 Linux 上可以手動部署, 也可以使用 Docker 部署 (這步?jīng)]有進(jìn)行嘗試). 另一種是 PaddleHub 的部署方式, 由于在 Windows 上設(shè)置 CUDA_VISIBLE_DEVICES=0 出現(xiàn)錯誤, 所以 PaddleHub 依舊部署到 Linux 上. 在 Linux 上使用 PaddleServing 手動部署的過程中, 程序出現(xiàn)意外的錯誤, 出現(xiàn)只能預(yù)測一部分圖片的結(jié)果. 經(jīng)過排除發(fā)現(xiàn), 是 PaddleServing 的部署方式占滿所有顯存. 以下表格為各種系統(tǒng)各種配置下不同的部署方式實(shí)現(xiàn)情況.
其中 Success 表示成功部署, No 表示未嘗試 在顯存足夠的情況下選擇 PaddleServing 部署方式可以提高并發(fā)量, 這里僅測試就選擇相對簡單的 PaddleHub 進(jìn)行部署. 二、PaddleHub 部署基于 Github PaddleOCR/PaddleHub 部署文檔 編寫. 1. GPU 環(huán)境描述GPU : 1050Ti Mobile 4G CUDA : 11.2 (Driver API Version: 11.4, Runtime API Version: 11.2) cuDNN : 8.6 2. 快速啟動服務(wù)以下操作默認(rèn)下載了 PaddleOCR 項(xiàng)目并安裝了 PaddleOCR 的 GPU 運(yùn)行環(huán)境. 安裝教程 https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.6/doc/doc_ch/quickstart.md 注意在 PaddlePaddle 官網(wǎng) 去查找需要的 paddlepaddle-gpu 版本. 2.1 準(zhǔn)備環(huán)境
2.2 下載推理模型安裝服務(wù)模塊前, 需要準(zhǔn)備推理模型并放到正確路徑. 默認(rèn)使用的是PP-OCRv3模型, 默認(rèn)模型路徑為
需要注意! 此步的當(dāng)前路徑是在 PaddleOCR/ 下. 模型路徑可在 params.py 中查看和修改. 更多模型可以從 PaddleOCR 提供的模型庫 PP-OCR 下載, 也可以替換成自己訓(xùn)練轉(zhuǎn)換好的模型. 需要注意! params.py 的路徑是 PaddleOCR/deploy/hubserving/xxx/params.py . 2.3 安裝服務(wù)模塊! 執(zhí)行命令的當(dāng)前路徑實(shí)在 PaddleOCR/ 下
這里我們可以只選擇
2.4 啟動服務(wù)啟動命令:
3. 發(fā)送預(yù)測請求配置好服務(wù)端, 可使用以下命令發(fā)送預(yù)測請求, 獲取預(yù)測結(jié)果: python tools/test_hubserving.py --server_url=server_url --image_dir=image_path 需要給腳本傳遞2個參數(shù):
訪問示例:
4. 自定義修改服務(wù)模塊如果需要修改服務(wù)邏輯, 你一般需要操作以下步驟 (以修改
強(qiáng)烈建議修改后先直接運(yùn)行
三、PaddleHub 運(yùn)行結(jié)果服務(wù)端測試 客戶端測試 四、對接工作通過觀察代碼可以了解到這樣一個接口, 使用其他編程語言發(fā)送這樣的一個請求即可. 其中的 headers 為 圖片傳輸需轉(zhuǎn)編碼后發(fā)送 |
|