paddleocr的加速和部署
一.代碼準(zhǔn)備
下載2.0版本以上的paddleocr:paddleocr
2.0以上的在訓(xùn)練自己模型的時(shí)候有參數(shù):
load_static_weights: True #是否將預(yù)訓(xùn)練模型保存在靜態(tài)圖形模式所以,只要安裝好了tensorrt一般都可以直接使用,Serving也需要2.0版本以上的
二.tensorrt的安裝
可以參照以下方法安裝tensorrt:
https://blog.csdn.net/zong596568821xp/article/details/86077553?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165087078916781483722867%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165087078916781483722867&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-86077553.142^v9^control,157^v4^new_style&utm_term=tensorrt%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187 https://blog.csdn.net/introsend/article/details/105103487?ops_request_misc=&request_id=&biz_id=102&utm_term=tensorrt%E5%AE%89%E8%A3%85&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-8-105103487.nonecase&spm=1018.2226.3001.4187 https://blog.csdn.net/m0_37605642/article/details/120095114?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165087078916781483783014%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165087078916781483783014&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-9-120095114.142^v9^control,157^v4^new_style&utm_term=tensorrt%E5%AE%89%E8%A3%85&spm=1018.2226.3001.4187三.paddleocr環(huán)境配置
下載對應(yīng)的使用tensorrt的GPU環(huán)境:對應(yīng)GPU環(huán)境
其余的環(huán)境都和平時(shí)使用的一模一樣
使用GPU下載的環(huán)境一定要和自己的cuda、cudnn對應(yīng)
四.設(shè)置參數(shù)
use_tensorrt=True
每次加載模型的時(shí)候設(shè)置參數(shù):use_tensorrt=True
五.Serving環(huán)境準(zhǔn)備
在虛擬環(huán)境中安裝-可以使用0.7,0.8版本的:其它版本的環(huán)境安裝
pip install paddle-serving-server==0.6.1 # for CPU pip install paddle-serving-server-gpu==0.6.1 # for GPU # 其他GPU環(huán)境需要確認(rèn)環(huán)境再選擇執(zhí)行如下命令 pip install paddle-serving-server-gpu==0.6.1.post101 # GPU with CUDA10.1 + TensorRT6 pip install paddle-serving-server-gpu==0.6.1.post11 # GPU with CUDA11 + TensorRT7安裝client
wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_client-0.6.1-cp37-none-any.whl pip install paddle_serving_client-0.6.1-cp37-none-any.whl安裝serving-app
wget https://paddle-serving.bj.bcebos.com/test-dev/whl/paddle_serving_app-0.6.1-py3-none-any.whl pip install paddle_serving_app-0.6.1-py3-none-any.whl這幾個(gè)的版本一定要對應(yīng),否則會(huì)報(bào)錯(cuò)
六.模型轉(zhuǎn)換
如果沒有模型,可以下載:PP-OCR
# 轉(zhuǎn)換檢測模型 python3 -m paddle_serving_client.convert --dirname ./ch_PP-OCRv2_det_infer/ \ # 使用自己訓(xùn)練好的模型路徑--model_filename inference.pdmodel \--params_filename inference.pdiparams \--serving_server ./ppocrv2_det_serving/ \ # 保存位置可以更改為指定位置--serving_client ./ppocrv2_det_client/ # 保存位置可以更改為指定位置# 轉(zhuǎn)換識(shí)別模型 同上 python3 -m paddle_serving_client.convert --dirname ./ch_PP-OCRv2_rec_infer/ \--model_filename inference.pdmodel \--params_filename inference.pdiparams \--serving_server ./ppocrv2_rec_serving/ \--serving_client ./ppocrv2_rec_client/轉(zhuǎn)換好如圖:
七.部署
進(jìn)入到工作目錄PaddleOCR/deploy/pdserving,運(yùn)行web_service.py文件,一般不會(huì)出錯(cuò),生成這樣的日志文件,說明運(yùn)行成功
根據(jù)請求不同,運(yùn)行不同的py文件:
pipeline_http_client.py
pipeline_rpc_client.py
在web_service.py可以修改:
class RecOp(Op):def init_op(self):self.det_box = [] def preprocess(self, input_dicts, data_id, log_id):self.det_box = []for i in dt_boxes:b = []for j in i:x, y = jb.append([int(x), int(y)])# print("bb:", b)self.det_box.append(b) def postprocess(self, input_dicts, fetch_data, data_id, log_id):box = str(self.det_box)如上代碼修改,可以獲得坐標(biāo)信息
總結(jié)
以上是生活随笔為你收集整理的paddleocr的加速和部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv经过canny生成的视频无法
- 下一篇: 什么是大数据?大数据用来干嘛?