From bb2a0273dde438f5705007908fb0852cab26933a Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Mon, 22 Mar 2021 16:15:02 +0800 Subject: [PATCH 01/11] add pdserver demo to dygraph --- deploy/README_CN.md | 132 ++++++++++ deploy/__init__.py | 13 + deploy/config.yml | 71 ++++++ deploy/imgs/results.png | Bin 0 -> 122294 bytes deploy/imgs/start_server.png | Bin 0 -> 199244 bytes deploy/ocr_reader.py | 438 +++++++++++++++++++++++++++++++++ deploy/pipeline_http_client.py | 40 +++ deploy/web_service.py | 127 ++++++++++ 8 files changed, 821 insertions(+) create mode 100644 deploy/README_CN.md create mode 100644 deploy/__init__.py create mode 100644 deploy/config.yml create mode 100644 deploy/imgs/results.png create mode 100644 deploy/imgs/start_server.png create mode 100644 deploy/ocr_reader.py create mode 100644 deploy/pipeline_http_client.py create mode 100644 deploy/web_service.py diff --git a/deploy/README_CN.md b/deploy/README_CN.md new file mode 100644 index 00000000..9f503310 --- /dev/null +++ b/deploy/README_CN.md @@ -0,0 +1,132 @@ +# PPOCR 服务化部署 + +([English](./README.md)|简体中文) + +本文档将介绍如何使用[PaddleServing](https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md)工具部署PPOCR +动态图模型的pipeline在线服务。 + +**note**: Paddle Serving服务化部署框架介绍和使用教程参考[文档](https://aistudio.baidu.com/aistudio/projectdetail/1550674)。 + +## 目录 +- 环境准备 +- 模型转换 +- Paddle Serving pipeline部署 +- FAQ + + +## 环境准备 + +需要准备PaddleOCR的运行环境和Paddle Serving的运行环境。 + +1. 准备PaddleOCR的运行环境参考[链接](../../doc/doc_ch/installation.md) + +2. 准备PaddleServing的运行环境,步骤如下 + +安装serving,用于启动服务 +``` +pip3 install paddle-serving-server==0.5.0 # for CPU +pip3 install paddle-serving-server-gpu==0.5.0 # for GPU +# 其他GPU环境需要确认环境再选择执行如下命令 +pip3 install paddle-serving-server-gpu==0.5.0.post9 # GPU with CUDA9.0 +pip3 install paddle-serving-server-gpu==0.5.0.post10 # GPU with CUDA10.0 +pip3 install paddle-serving-server-gpu==0.5.0.post101 # GPU with CUDA10.1 + TensorRT6 +pip3 install paddle-serving-server-gpu==0.5.0.post11 # GPU with CUDA10.1 + TensorRT7 +``` + +2. 安装client,用于向服务发送请求 +``` +pip3 install paddle-serving-client==0.5.0 # for CPU + +pip3 install paddle-serving-client-gpu==0.5.0 # for GPU +``` + +3. 安装serving-app +``` +pip3 install paddle-serving-app==0.3.0 +``` + +**note:** 如果要安装最新版本的PaddleServing参考[链接](https://github.com/PaddlePaddle/Serving/blob/develop/doc/LATEST_PACKAGES.md)。 + +## 模型转换 +使用PaddleServing做服务化部署时,需要将保存的inference模型转换为serving易于部署的模型。 + +首先,下载PPOCR的[inference模型](https://github.com/PaddlePaddle/PaddleOCR#pp-ocr-20-series-model-listupdate-on-dec-15) +``` +# 下载并解压 OCR 文本检测模型 +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar && tar xf ch_ppocr_server_v2.0_det_infer.tar +# 下载并解压 OCR 文本识别模型 +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar && tar xf ch_ppocr_server_v2.0_rec_infer.tar + +# 转换检测模型 +python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_det_infer/ \ + --model_filename inference.pdmodel \ + --params_filename inference.pdiparams \ + --serving_server ./ppocr_det_server_2.0_serving/ \ + --serving_client ./ppocr_det_server_2.0_client/ + +# 转换识别模型 +python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_rec_infer/ \ + --model_filename inference.pdmodel \ + --params_filename inference.pdiparams \ + --serving_server ./ppocr_rec_server_2.0_serving/ \ + --serving_client ./ppocr_rec_server_2.0_client/ +``` + +检测模型转换完成后,会在当前文件夹多出`ppocr_det_server_2.0_serving` 和`ppocr_det_server_2.0_client`的文件夹,具备如下格式: +``` +|- ppocr_det_server_2.0_serving/ + |- __model__ + |- __params__ + |- serving_server_conf.prototxt + |- serving_server_conf.stream.prototxt + +|- ppocr_det_server_2.0_client + |- serving_client_conf.prototxt + |- serving_client_conf.stream.prototxt + +``` +识别模型同理。 + +## Paddle Serving pipeline部署 + +``` +# 下载PaddleOCR代码,若已下载可跳过此步骤 +git clone https://github.com/PaddlePaddle/PaddleOCR + +# 进入到工作目录 +cd PaddleOCR/deploy/pdserver/ +``` +pdserver目录包含启动pipeline服务和发送预测请求的代码,包括: +``` +__init__.py +config.yml # 启动服务的配置文件 +ocr_reader.py # OCR模型预处理和后处理的代码实现 +pipeline_http_client.py # 发送pipeline预测请求的脚本 +web_service.py # 启动pipeline服务端的脚本 +``` + +启动服务可运行如下命令 +``` +# 启动服务,运行日志保存在log.txt +python3 web_service.py &>log.txt & +``` +成功启动服务后,log.txt中会打印类似如下日志 +![](./imgs/start_server.png) + + +发送服务请求 +``` +python3 pipeline_http_client.py +``` +成功运行后,模型预测的结果会打印在cmd窗口中,结果示例为: +![](./imgs/results.png) + + + +## FAQ +** Q1**: 发送请求后得不到结果 +** A1**: 启动服务和发送请求时不要设置代理,可以在启动服务前和发送请求前关闭代理,关闭代理的命令是: +``` +unset https_proxy +unset http_proxy +``` diff --git a/deploy/__init__.py b/deploy/__init__.py new file mode 100644 index 00000000..185a92b8 --- /dev/null +++ b/deploy/__init__.py @@ -0,0 +1,13 @@ +# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. diff --git a/deploy/config.yml b/deploy/config.yml new file mode 100644 index 00000000..aef735db --- /dev/null +++ b/deploy/config.yml @@ -0,0 +1,71 @@ +#rpc端口, rpc_port和http_port不允许同时为空。当rpc_port为空且http_port不为空时,会自动将rpc_port设置为http_port+1 +rpc_port: 18090 + +#http端口, rpc_port和http_port不允许同时为空。当rpc_port可用且http_port为空时,不自动生成http_port +http_port: 9999 + +#worker_num, 最大并发数。当build_dag_each_worker=True时, 框架会创建worker_num个进程,每个进程内构建grpcSever和DAG +##当build_dag_each_worker=False时,框架会设置主线程grpc线程池的max_workers=worker_num +worker_num: 20 + +#build_dag_each_worker, False,框架在进程内创建一条DAG;True,框架会每个进程内创建多个独立的DAG +build_dag_each_worker: false + +dag: + #op资源类型, True, 为线程模型;False,为进程模型 + is_thread_op: False + + #重试次数 + retry: 1 + + #使用性能分析, True,生成Timeline性能数据,对性能有一定影响;False为不使用 + use_profile: False + + tracer: + interval_s: 10 +op: + det: + #并发数,is_thread_op=True时,为线程并发;否则为进程并发 + concurrency: 4 + + #当op配置没有server_endpoints时,从local_service_conf读取本地服务配置 + local_service_conf: + #client类型,包括brpc, grpc和local_predictor.local_predictor不启动Serving服务,进程内预测 + client_type: local_predictor + + #det模型路径 + model_config: /paddle/serving/models/det_serving_server/ #ocr_det_model + + #Fetch结果列表,以client_config中fetch_var的alias_name为准 + fetch_list: ["save_infer_model/scale_0.tmp_1"] + + #计算硬件ID,当devices为""或不写时为CPU预测;当devices为"0", "0,1,2"时为GPU预测,表示使用的GPU卡 + devices: "2" + + ir_optim: True + rec: + #并发数,is_thread_op=True时,为线程并发;否则为进程并发 + concurrency: 1 + + #超时时间, 单位ms + timeout: -1 + + #Serving交互重试次数,默认不重试 + retry: 1 + + #当op配置没有server_endpoints时,从local_service_conf读取本地服务配置 + local_service_conf: + + #client类型,包括brpc, grpc和local_predictor。local_predictor不启动Serving服务,进程内预测 + client_type: local_predictor + + #rec模型路径 + model_config: /paddle/serving/models/rec_serving_server/ #ocr_rec_model + + #Fetch结果列表,以client_config中fetch_var的alias_name为准 + fetch_list: ["save_infer_model/scale_0.tmp_1"] #["ctc_greedy_decoder_0.tmp_0", "softmax_0.tmp_0"] + + #计算硬件ID,当devices为""或不写时为CPU预测;当devices为"0", "0,1,2"时为GPU预测,表示使用的GPU卡 + devices: "2" + + ir_optim: True diff --git a/deploy/imgs/results.png b/deploy/imgs/results.png new file mode 100644 index 0000000000000000000000000000000000000000..35322bf9462c859bb2d158dd1d50ab52f35bad41 GIT binary patch literal 122294 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≪HlhSqnXjwHo)6Q- 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⁢Rva)KOdxmF&O9+?1ar@|`}z+IF6!H`H&dcvI4@ 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 Pa6Up>v^D^Ie#pewM9x@1 z&@+-Eg8tg4i{UQkdD(qI@Si*G{fRKb@)`-h{!X{IC6~0Bt8kXI7xE57u=hyApi}${lcCNxNY8j28y`WE_ONt18z!1yJSExNc|?)5!af ztD4Xj;09%`jpmYk4syu{um^C1M_Q{+C!FLZ$Sn|ls_UW_Y`{AwsdpBD4)^PdWRDRJ zz+`V+E?#^Q1xP?Mj(?(|u1nGDFfy7vmj%R&^}~QVk$gbD(3Dd=iJC!1XQNC*hy8`86b2q6UYp#3f$C(WNeTUJVP82 zw}o(PTjZ3AkRq{RAPRBNQx$30?g`zt?gwDNC{-YV>;T&h1aXiT!M6Z+<;G3oNjr%2 zvH+B_bpdUR*FQXiWM6gvjV0Us

)=tDAT}zxU4n)|s-@ECsRpRqy5J=8(NOh>bvW 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≻(FlA)r0mKPSxJ| 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 T*uDD;@N?P3%DB?VHR68&7b|-~ literal 0 HcmV?d00001 diff --git a/deploy/ocr_reader.py b/deploy/ocr_reader.py new file mode 100644 index 00000000..95110706 --- /dev/null +++ b/deploy/ocr_reader.py @@ -0,0 +1,438 @@ +# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import cv2 +import copy +import numpy as np +import math +import re +import sys +import argparse +import string +from copy import deepcopy +import paddle + + +class DetResizeForTest(object): + def __init__(self, **kwargs): + super(DetResizeForTest, self).__init__() + self.resize_type = 0 + if 'image_shape' in kwargs: + self.image_shape = kwargs['image_shape'] + self.resize_type = 1 + elif 'limit_side_len' in kwargs: + self.limit_side_len = kwargs['limit_side_len'] + self.limit_type = kwargs.get('limit_type', 'min') + elif 'resize_long' in kwargs: + self.resize_type = 2 + self.resize_long = kwargs.get('resize_long', 960) + else: + self.limit_side_len = 736 + self.limit_type = 'min' + + def __call__(self, data): + img = deepcopy(data) + src_h, src_w, _ = img.shape + + if self.resize_type == 0: + img, [ratio_h, ratio_w] = self.resize_image_type0(img) + elif self.resize_type == 2: + img, [ratio_h, ratio_w] = self.resize_image_type2(img) + else: + img, [ratio_h, ratio_w] = self.resize_image_type1(img) + + return img + + def resize_image_type1(self, img): + resize_h, resize_w = self.image_shape + ori_h, ori_w = img.shape[:2] # (h, w, c) + ratio_h = float(resize_h) / ori_h + ratio_w = float(resize_w) / ori_w + img = cv2.resize(img, (int(resize_w), int(resize_h))) + return img, [ratio_h, ratio_w] + + def resize_image_type0(self, img): + """ + resize image to a size multiple of 32 which is required by the network + args: + img(array): array with shape [h, w, c] + return(tuple): + img, (ratio_h, ratio_w) + """ + limit_side_len = self.limit_side_len + h, w, _ = img.shape + + # limit the max side + if self.limit_type == 'max': + if max(h, w) > limit_side_len: + if h > w: + ratio = float(limit_side_len) / h + else: + ratio = float(limit_side_len) / w + else: + ratio = 1. + else: + if min(h, w) < limit_side_len: + if h < w: + ratio = float(limit_side_len) / h + else: + ratio = float(limit_side_len) / w + else: + ratio = 1. + resize_h = int(h * ratio) + resize_w = int(w * ratio) + + resize_h = int(round(resize_h / 32) * 32) + resize_w = int(round(resize_w / 32) * 32) + + try: + if int(resize_w) <= 0 or int(resize_h) <= 0: + return None, (None, None) + img = cv2.resize(img, (int(resize_w), int(resize_h))) + except: + print(img.shape, resize_w, resize_h) + sys.exit(0) + ratio_h = resize_h / float(h) + ratio_w = resize_w / float(w) + # return img, np.array([h, w]) + return img, [ratio_h, ratio_w] + + def resize_image_type2(self, img): + h, w, _ = img.shape + + resize_w = w + resize_h = h + + # Fix the longer side + if resize_h > resize_w: + ratio = float(self.resize_long) / resize_h + else: + ratio = float(self.resize_long) / resize_w + + resize_h = int(resize_h * ratio) + resize_w = int(resize_w * ratio) + + max_stride = 128 + resize_h = (resize_h + max_stride - 1) // max_stride * max_stride + resize_w = (resize_w + max_stride - 1) // max_stride * max_stride + img = cv2.resize(img, (int(resize_w), int(resize_h))) + ratio_h = resize_h / float(h) + ratio_w = resize_w / float(w) + + return img, [ratio_h, ratio_w] + + +class BaseRecLabelDecode(object): + """ Convert between text-label and text-index """ + + def __init__(self, config): + support_character_type = [ + 'ch', 'en', 'EN_symbol', 'french', 'german', 'japan', 'korean', + 'it', 'xi', 'pu', 'ru', 'ar', 'ta', 'ug', 'fa', 'ur', 'rs', 'oc', + 'rsc', 'bg', 'uk', 'be', 'te', 'ka', 'chinese_cht', 'hi', 'mr', + 'ne', 'EN' + ] + character_type = config['character_type'] + character_dict_path = config['character_dict_path'] + use_space_char = True + assert character_type in support_character_type, "Only {} are supported now but get {}".format( + support_character_type, character_type) + + self.beg_str = "sos" + self.end_str = "eos" + + if character_type == "en": + self.character_str = "0123456789abcdefghijklmnopqrstuvwxyz" + dict_character = list(self.character_str) + elif character_type == "EN_symbol": + # same with ASTER setting (use 94 char). + self.character_str = string.printable[:-6] + dict_character = list(self.character_str) + elif character_type in support_character_type: + self.character_str = "" + assert character_dict_path is not None, "character_dict_path should not be None when character_type is {}".format( + character_type) + with open(character_dict_path, "rb") as fin: + lines = fin.readlines() + for line in lines: + line = line.decode('utf-8').strip("\n").strip("\r\n") + self.character_str += line + if use_space_char: + self.character_str += " " + dict_character = list(self.character_str) + + else: + raise NotImplementedError + self.character_type = character_type + dict_character = self.add_special_char(dict_character) + self.dict = {} + for i, char in enumerate(dict_character): + self.dict[char] = i + self.character = dict_character + + def add_special_char(self, dict_character): + return dict_character + + def decode(self, text_index, text_prob=None, is_remove_duplicate=False): + """ convert text-index into text-label. """ + result_list = [] + ignored_tokens = self.get_ignored_tokens() + batch_size = len(text_index) + for batch_idx in range(batch_size): + char_list = [] + conf_list = [] + for idx in range(len(text_index[batch_idx])): + if text_index[batch_idx][idx] in ignored_tokens: + continue + if is_remove_duplicate: + # only for predict + if idx > 0 and text_index[batch_idx][idx - 1] == text_index[ + batch_idx][idx]: + continue + char_list.append(self.character[int(text_index[batch_idx][ + idx])]) + if text_prob is not None: + conf_list.append(text_prob[batch_idx][idx]) + else: + conf_list.append(1) + text = ''.join(char_list) + result_list.append((text, np.mean(conf_list))) + return result_list + + def get_ignored_tokens(self): + return [0] # for ctc blank + + +class CTCLabelDecode(BaseRecLabelDecode): + """ Convert between text-label and text-index """ + + def __init__( + self, + config, + #character_dict_path=None, + #character_type='ch', + #use_space_char=False, + **kwargs): + super(CTCLabelDecode, self).__init__(config) + + def __call__(self, preds, label=None, *args, **kwargs): + if isinstance(preds, paddle.Tensor): + preds = preds.numpy() + preds_idx = preds.argmax(axis=2) + preds_prob = preds.max(axis=2) + text = self.decode(preds_idx, preds_prob, is_remove_duplicate=True) + if label is None: + return text + label = self.decode(label) + return text, label + + def add_special_char(self, dict_character): + dict_character = ['blank'] + dict_character + return dict_character + + +class CharacterOps(object): + """ Convert between text-label and text-index """ + + def __init__(self, config): + self.character_type = config['character_type'] + self.loss_type = config['loss_type'] + if self.character_type == "en": + self.character_str = "0123456789abcdefghijklmnopqrstuvwxyz" + dict_character = list(self.character_str) + elif self.character_type == "ch": + character_dict_path = config['character_dict_path'] + self.character_str = "" + with open(character_dict_path, "rb") as fin: + lines = fin.readlines() + for line in lines: + line = line.decode('utf-8').strip("\n").strip("\r\n") + self.character_str += line + dict_character = list(self.character_str) + elif self.character_type == "en_sensitive": + # same with ASTER setting (use 94 char). + self.character_str = string.printable[:-6] + dict_character = list(self.character_str) + else: + self.character_str = None + assert self.character_str is not None, \ + "Nonsupport type of the character: {}".format(self.character_str) + self.beg_str = "sos" + self.end_str = "eos" + if self.loss_type == "attention": + dict_character = [self.beg_str, self.end_str] + dict_character + self.dict = {} + for i, char in enumerate(dict_character): + self.dict[char] = i + self.character = dict_character + + def encode(self, text): + """convert text-label into text-index. + input: + text: text labels of each image. [batch_size] + + output: + text: concatenated text index for CTCLoss. + [sum(text_lengths)] = [text_index_0 + text_index_1 + ... + text_index_(n - 1)] + length: length of each text. [batch_size] + """ + if self.character_type == "en": + text = text.lower() + + text_list = [] + for char in text: + if char not in self.dict: + continue + text_list.append(self.dict[char]) + text = np.array(text_list) + return text + + def decode(self, text_index, is_remove_duplicate=False): + """ convert text-index into text-label. """ + char_list = [] + char_num = self.get_char_num() + + if self.loss_type == "attention": + beg_idx = self.get_beg_end_flag_idx("beg") + end_idx = self.get_beg_end_flag_idx("end") + ignored_tokens = [beg_idx, end_idx] + else: + ignored_tokens = [char_num] + + for idx in range(len(text_index)): + if text_index[idx] in ignored_tokens: + continue + if is_remove_duplicate: + if idx > 0 and text_index[idx - 1] == text_index[idx]: + continue + char_list.append(self.character[text_index[idx]]) + text = ''.join(char_list) + return text + + def get_char_num(self): + return len(self.character) + + def get_beg_end_flag_idx(self, beg_or_end): + if self.loss_type == "attention": + if beg_or_end == "beg": + idx = np.array(self.dict[self.beg_str]) + elif beg_or_end == "end": + idx = np.array(self.dict[self.end_str]) + else: + assert False, "Unsupport type %s in get_beg_end_flag_idx"\ + % beg_or_end + return idx + else: + err = "error in get_beg_end_flag_idx when using the loss %s"\ + % (self.loss_type) + assert False, err + + +class OCRReader(object): + def __init__(self, + algorithm="CRNN", + image_shape=[3, 32, 320], + char_type="ch", + batch_num=1, + char_dict_path="./ppocr_keys_v1.txt"): + self.rec_image_shape = image_shape + self.character_type = char_type + self.rec_batch_num = batch_num + char_ops_params = {} + char_ops_params["character_type"] = char_type + char_ops_params["character_dict_path"] = char_dict_path + char_ops_params['loss_type'] = 'ctc' + self.char_ops = CharacterOps(char_ops_params) + self.label_ops = CTCLabelDecode(char_ops_params) + + def resize_norm_img(self, img, max_wh_ratio): + imgC, imgH, imgW = self.rec_image_shape + if self.character_type == "ch": + imgW = int(32 * max_wh_ratio) + h = img.shape[0] + w = img.shape[1] + ratio = w / float(h) + if math.ceil(imgH * ratio) > imgW: + resized_w = imgW + else: + resized_w = int(math.ceil(imgH * ratio)) + resized_image = cv2.resize(img, (resized_w, imgH)) + resized_image = resized_image.astype('float32') + resized_image = resized_image.transpose((2, 0, 1)) / 255 + resized_image -= 0.5 + resized_image /= 0.5 + padding_im = np.zeros((imgC, imgH, imgW), dtype=np.float32) + + padding_im[:, :, 0:resized_w] = resized_image + return padding_im + + def preprocess(self, img_list): + img_num = len(img_list) + norm_img_batch = [] + max_wh_ratio = 0 + for ino in range(img_num): + h, w = img_list[ino].shape[0:2] + wh_ratio = w * 1.0 / h + max_wh_ratio = max(max_wh_ratio, wh_ratio) + + for ino in range(img_num): + norm_img = self.resize_norm_img(img_list[ino], max_wh_ratio) + norm_img = norm_img[np.newaxis, :] + norm_img_batch.append(norm_img) + norm_img_batch = np.concatenate(norm_img_batch) + norm_img_batch = norm_img_batch.copy() + + return norm_img_batch[0] + + def postprocess_old(self, outputs, with_score=False): + rec_res = [] + rec_idx_lod = outputs["ctc_greedy_decoder_0.tmp_0.lod"] + rec_idx_batch = outputs["ctc_greedy_decoder_0.tmp_0"] + if with_score: + predict_lod = outputs["softmax_0.tmp_0.lod"] + for rno in range(len(rec_idx_lod) - 1): + beg = rec_idx_lod[rno] + end = rec_idx_lod[rno + 1] + if isinstance(rec_idx_batch, list): + rec_idx_tmp = [x[0] for x in rec_idx_batch[beg:end]] + else: #nd array + rec_idx_tmp = rec_idx_batch[beg:end, 0] + preds_text = self.char_ops.decode(rec_idx_tmp) + if with_score: + beg = predict_lod[rno] + end = predict_lod[rno + 1] + if isinstance(outputs["softmax_0.tmp_0"], list): + outputs["softmax_0.tmp_0"] = np.array(outputs[ + "softmax_0.tmp_0"]).astype(np.float32) + probs = outputs["softmax_0.tmp_0"][beg:end, :] + ind = np.argmax(probs, axis=1) + blank = probs.shape[1] + valid_ind = np.where(ind != (blank - 1))[0] + score = np.mean(probs[valid_ind, ind[valid_ind]]) + rec_res.append([preds_text, score]) + else: + rec_res.append([preds_text]) + return rec_res + + def postprocess(self, outputs, with_score=False): + preds = outputs["save_infer_model/scale_0.tmp_1"] + try: + preds = preds.numpy() + except: + pass + preds_idx = preds.argmax(axis=2) + preds_prob = preds.max(axis=2) + text = self.label_ops.decode( + preds_idx, preds_prob, is_remove_duplicate=True) + return text diff --git a/deploy/pipeline_http_client.py b/deploy/pipeline_http_client.py new file mode 100644 index 00000000..88c4a81e --- /dev/null +++ b/deploy/pipeline_http_client.py @@ -0,0 +1,40 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import numpy as np +import requests +import json +import base64 +import os + + +def cv2_to_base64(image): + return base64.b64encode(image).decode('utf8') + + +url = "http://127.0.0.1:9999/ocr/prediction" +test_img_dir = "../doc/imgs/" +for idx, img_file in enumerate(os.listdir(test_img_dir)): + with open(os.path.join(test_img_dir, img_file), 'rb') as file: + image_data1 = file.read() + + image = cv2_to_base64(image_data1) + + for i in range(1): + data = {"key": ["image"], "value": [image]} + r = requests.post(url=url, data=json.dumps(data)) + print(r.json()) + +test_img_dir = "../doc/imgs/" +print("==> total number of test imgs: ", len(os.listdir(test_img_dir))) diff --git a/deploy/web_service.py b/deploy/web_service.py new file mode 100644 index 00000000..b47ef65d --- /dev/null +++ b/deploy/web_service.py @@ -0,0 +1,127 @@ +# Copyright (c) 2021 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +try: + from paddle_serving_server_gpu.web_service import WebService, Op +except ImportError: + from paddle_serving_server.web_service import WebService, Op + +import logging +import numpy as np +import cv2 +import base64 +# from paddle_serving_app.reader import OCRReader +from ocr_reader import OCRReader, DetResizeForTest +from paddle_serving_app.reader import Sequential, ResizeByFactor +from paddle_serving_app.reader import Div, Normalize, Transpose +from paddle_serving_app.reader import DBPostProcess, FilterBoxes, GetRotateCropImage, SortedBoxes + +_LOGGER = logging.getLogger() + + +class DetOp(Op): + def init_op(self): + self.det_preprocess = Sequential([ + DetResizeForTest(), Div(255), + Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]), Transpose( + (2, 0, 1)) + ]) + self.filter_func = FilterBoxes(10, 10) + self.post_func = DBPostProcess({ + "thresh": 0.3, + "box_thresh": 0.5, + "max_candidates": 1000, + "unclip_ratio": 1.5, + "min_size": 3 + }) + + def preprocess(self, input_dicts, data_id, log_id): + (_, input_dict), = input_dicts.items() + data = base64.b64decode(input_dict["image"].encode('utf8')) + data = np.fromstring(data, np.uint8) + # Note: class variables(self.var) can only be used in process op mode + im = cv2.imdecode(data, cv2.IMREAD_COLOR) + self.im = im + self.ori_h, self.ori_w, _ = im.shape + + det_img = self.det_preprocess(self.im) + _, self.new_h, self.new_w = det_img.shape + print("det image shape", det_img.shape) + return {"x": det_img[np.newaxis, :].copy()}, False, None, "" + + def postprocess(self, input_dicts, fetch_dict, log_id): + print("input_dicts: ", input_dicts) + det_out = fetch_dict["save_infer_model/scale_0.tmp_1"] + ratio_list = [ + float(self.new_h) / self.ori_h, float(self.new_w) / self.ori_w + ] + dt_boxes_list = self.post_func(det_out, [ratio_list]) + dt_boxes = self.filter_func(dt_boxes_list[0], [self.ori_h, self.ori_w]) + out_dict = {"dt_boxes": dt_boxes, "image": self.im} + + print("out dict", out_dict["dt_boxes"]) + return out_dict, None, "" + + +class RecOp(Op): + def init_op(self): + self.ocr_reader = OCRReader( + char_dict_path="../../ppocr/utils/ppocr_keys_v1.txt") + + self.get_rotate_crop_image = GetRotateCropImage() + self.sorted_boxes = SortedBoxes() + + def preprocess(self, input_dicts, data_id, log_id): + (_, input_dict), = input_dicts.items() + im = input_dict["image"] + dt_boxes = input_dict["dt_boxes"] + dt_boxes = self.sorted_boxes(dt_boxes) + feed_list = [] + img_list = [] + max_wh_ratio = 0 + for i, dtbox in enumerate(dt_boxes): + boximg = self.get_rotate_crop_image(im, dt_boxes[i]) + img_list.append(boximg) + h, w = boximg.shape[0:2] + wh_ratio = w * 1.0 / h + max_wh_ratio = max(max_wh_ratio, wh_ratio) + _, w, h = self.ocr_reader.resize_norm_img(img_list[0], + max_wh_ratio).shape + + imgs = np.zeros((len(img_list), 3, w, h)).astype('float32') + for id, img in enumerate(img_list): + norm_img = self.ocr_reader.resize_norm_img(img, max_wh_ratio) + imgs[id] = norm_img + print("rec image shape", imgs.shape) + feed = {"x": imgs.copy()} + return feed, False, None, "" + + def postprocess(self, input_dicts, fetch_dict, log_id): + rec_res = self.ocr_reader.postprocess(fetch_dict, with_score=True) + res_lst = [] + for res in rec_res: + res_lst.append(res[0]) + res = {"res": str(res_lst)} + return res, None, "" + + +class OcrService(WebService): + def get_pipeline_response(self, read_op): + det_op = DetOp(name="det", input_ops=[read_op]) + rec_op = RecOp(name="rec", input_ops=[det_op]) + return rec_op + + +uci_service = OcrService(name="ocr") +uci_service.prepare_pipeline_config("config.yml") +uci_service.run_service() From 4cdc823761725c46e6aa682634615552914c2b42 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Tue, 23 Mar 2021 15:04:55 +0800 Subject: [PATCH 02/11] add en readme --- deploy/pdserver/README.md | 133 ++++++++++++++++++ deploy/{ => pdserver}/README_CN.md | 0 deploy/{ => pdserver}/__init__.py | 0 deploy/{ => pdserver}/config.yml | 0 .../{ => pdserver}/imgs/cpp_infer_pred_12.png | Bin deploy/{ => pdserver}/imgs/demo.png | Bin deploy/{ => pdserver}/imgs/results.png | Bin deploy/{ => pdserver}/imgs/start_server.png | Bin deploy/{ => pdserver}/ocr_reader.py | 0 deploy/{ => pdserver}/pipeline_http_client.py | 0 deploy/pdserver/pipeline_rpc_client.py | 42 ++++++ deploy/{ => pdserver}/web_service.py | 0 12 files changed, 175 insertions(+) create mode 100644 deploy/pdserver/README.md rename deploy/{ => pdserver}/README_CN.md (100%) rename deploy/{ => pdserver}/__init__.py (100%) rename deploy/{ => pdserver}/config.yml (100%) rename deploy/{ => pdserver}/imgs/cpp_infer_pred_12.png (100%) rename deploy/{ => pdserver}/imgs/demo.png (100%) rename deploy/{ => pdserver}/imgs/results.png (100%) rename deploy/{ => pdserver}/imgs/start_server.png (100%) rename deploy/{ => pdserver}/ocr_reader.py (100%) rename deploy/{ => pdserver}/pipeline_http_client.py (100%) create mode 100644 deploy/pdserver/pipeline_rpc_client.py rename deploy/{ => pdserver}/web_service.py (100%) diff --git a/deploy/pdserver/README.md b/deploy/pdserver/README.md new file mode 100644 index 00000000..80a14fc1 --- /dev/null +++ b/deploy/pdserver/README.md @@ -0,0 +1,133 @@ +# OCR Pipeline WebService + +(English|[简体中文](./README_CN.md)) + +This document will introduce how to use the [PaddleServing](https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md) to deploy the PPOCR dynamic graph model as a pipeline online service. + +**note**: Paddle Serving service deployment framework introduction and tutorial reference [document](https://aistudio.baidu.com/aistudio/projectdetail/1550674). + + +## Contents +- Environmental preparation +- Model conversion +- Paddle Serving pipeline deployment +- FAQ + +## Environmental preparation + +Need to prepare PaddleOCR operating environment and Paddle Serving operating environment. + +1. Prepare PaddleOCR operating environment reference [link](../../doc/doc_ch/installation.md) + +2. Prepare the operating environment of PaddleServing, the steps are as follows + +Install serving, used to start the service +``` +pip3 install paddle-serving-server==0.5.0 # for CPU +pip3 install paddle-serving-server-gpu==0.5.0 # for GPU +# Other GPU environments need to confirm the environment and then choose to execute the following commands +pip3 install paddle-serving-server-gpu==0.5.0.post9 # GPU with CUDA9.0 +pip3 install paddle-serving-server-gpu==0.5.0.post10 # GPU with CUDA10.0 +pip3 install paddle-serving-server-gpu==0.5.0.post101 # GPU with CUDA10.1 + TensorRT6 +pip3 install paddle-serving-server-gpu==0.5.0.post11 # GPU with CUDA10.1 + TensorRT7 +``` + +2. Install the client to send requests to the service +``` +pip3 install paddle-serving-client==0.5.0 # for CPU + +pip3 install paddle-serving-client-gpu==0.5.0 # for GPU +``` + +3. Install serving-app +``` +pip3 install paddle-serving-app==0.3.0 +``` + +**note:** If you want to install the latest version of PaddleServing, refer to [link](https://github.com/PaddlePaddle/Serving/blob/develop/doc/LATEST_PACKAGES.md). + + +## Model conversion +When using PaddleServing for service deployment, you need to convert the saved inference model into a serving model that is easy to deploy. + +First, download the [inference model] of PPOCR(https://github.com/PaddlePaddle/PaddleOCR#pp-ocr-20-series-model-listupdate-on-dec-15) +``` +# Download and unzip the OCR text detection model +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar && tar xf ch_ppocr_server_v2.0_det_infer.tar +# Download and unzip the OCR text recognition model +wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar && tar xf ch_ppocr_server_v2.0_rec_infer.tar + +# Conversion detection model +python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_det_infer/ \ + --model_filename inference.pdmodel \ + --params_filename inference.pdiparams \ + --serving_server ./ppocr_det_server_2.0_serving/ \ + --serving_client ./ppocr_det_server_2.0_client/ + +# Conversion recognition model +python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_rec_infer/ \ + --model_filename inference.pdmodel \ + --params_filename inference.pdiparams \ + --serving_server ./ppocr_rec_server_2.0_serving/ \ + --serving_client ./ppocr_rec_server_2.0_client/ + +``` + +After the detection model is converted, there will be additional folders of `ppocr_det_server_2.0_serving` and `ppocr_det_server_2.0_client` in the current folder, with the following format: +``` +|- ppocr_det_server_2.0_serving/ + |- __model__ + |- __params__ + |- serving_server_conf.prototxt + |- serving_server_conf.stream.prototxt + +|- ppocr_det_server_2.0_client + |- serving_client_conf.prototxt + |- serving_client_conf.stream.prototxt + +``` +The recognition model is the same. + +## Paddle Serving pipeline deployment + +1. Download the PaddleOCR code, if you have already downloaded it, you can skip this step. +``` +git clone https://github.com/PaddlePaddle/PaddleOCR + +# Enter the working directory +cd PaddleOCR/deploy/pdserver/ +``` + +The pdserver directory contains the code to start the pipeline service and send prediction requests, including: +``` +__init__.py +config.yml # Start the service configuration file +ocr_reader.py # OCR model pre-processing and post-processing code implementation +pipeline_http_client.py # Script to send pipeline prediction request +web_service.py # Start the script of the pipeline server +``` + +2. Run the following command to start the service. +``` +# Start the service and save the running log in log.txt +python3 web_service.py &>log.txt & +``` +After the service is successfully started, a log similar to the following will be printed in log.txt +![](./imgs/start_server.png) + + +3. Send service request +``` +python3 pipeline_http_client.py +``` +After successfully running, the predicted result of the model will be printed in the cmd window. An example of the result is: +![](./imgs/results.png) + + +## FAQ +** Q1**: No result return after sending the request +** A1**: Do not set the proxy when starting the service and sending the request. You can close the proxy before starting the service and before sending the request. The command to close the proxy is: +``` +unset https_proxy +unset http_proxy +``` diff --git a/deploy/README_CN.md b/deploy/pdserver/README_CN.md similarity index 100% rename from deploy/README_CN.md rename to deploy/pdserver/README_CN.md diff --git a/deploy/__init__.py b/deploy/pdserver/__init__.py similarity index 100% rename from deploy/__init__.py rename to deploy/pdserver/__init__.py diff --git a/deploy/config.yml b/deploy/pdserver/config.yml similarity index 100% rename from deploy/config.yml rename to deploy/pdserver/config.yml diff --git a/deploy/imgs/cpp_infer_pred_12.png b/deploy/pdserver/imgs/cpp_infer_pred_12.png similarity index 100% rename from deploy/imgs/cpp_infer_pred_12.png rename to deploy/pdserver/imgs/cpp_infer_pred_12.png diff --git a/deploy/imgs/demo.png b/deploy/pdserver/imgs/demo.png similarity index 100% rename from deploy/imgs/demo.png rename to deploy/pdserver/imgs/demo.png diff --git a/deploy/imgs/results.png b/deploy/pdserver/imgs/results.png similarity index 100% rename from deploy/imgs/results.png rename to deploy/pdserver/imgs/results.png diff --git a/deploy/imgs/start_server.png b/deploy/pdserver/imgs/start_server.png similarity index 100% rename from deploy/imgs/start_server.png rename to deploy/pdserver/imgs/start_server.png diff --git a/deploy/ocr_reader.py b/deploy/pdserver/ocr_reader.py similarity index 100% rename from deploy/ocr_reader.py rename to deploy/pdserver/ocr_reader.py diff --git a/deploy/pipeline_http_client.py b/deploy/pdserver/pipeline_http_client.py similarity index 100% rename from deploy/pipeline_http_client.py rename to deploy/pdserver/pipeline_http_client.py diff --git a/deploy/pdserver/pipeline_rpc_client.py b/deploy/pdserver/pipeline_rpc_client.py new file mode 100644 index 00000000..7471f7ed --- /dev/null +++ b/deploy/pdserver/pipeline_rpc_client.py @@ -0,0 +1,42 @@ +# Copyright (c) 2020 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +try: + from paddle_serving_server_gpu.pipeline import PipelineClient +except ImportError: + from paddle_serving_server.pipeline import PipelineClient +import numpy as np +import requests +import json +import cv2 +import base64 +import os + +client = PipelineClient() +client.connect(['127.0.0.1:18090']) + + +def cv2_to_base64(image): + return base64.b64encode(image).decode('utf8') + + +test_img_dir = "imgs/" +for img_file in os.listdir(test_img_dir): + with open(os.path.join(test_img_dir, img_file), 'rb') as file: + image_data = file.read() + image = cv2_to_base64(image_data) + +for i in range(1): + ret = client.predict(feed_dict={"image": image}, fetch=["res"]) + print(ret) + #print(ret) diff --git a/deploy/web_service.py b/deploy/pdserver/web_service.py similarity index 100% rename from deploy/web_service.py rename to deploy/pdserver/web_service.py From 271a88a69ef28ceb669870af703e88e2afb3889b Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Tue, 23 Mar 2021 15:27:19 +0800 Subject: [PATCH 03/11] fix readme --- deploy/hubserving/readme.md | 2 +- deploy/hubserving/readme_en.md | 2 +- deploy/{pdserver => pdserving}/README.md | 12 +++++++++++- deploy/{pdserver => pdserving}/README_CN.md | 12 +++++++++++- deploy/{pdserver => pdserving}/__init__.py | 0 deploy/{pdserver => pdserving}/config.yml | 0 .../imgs/cpp_infer_pred_12.png | Bin deploy/{pdserver => pdserving}/imgs/demo.png | Bin deploy/{pdserver => pdserving}/imgs/results.png | Bin .../{pdserver => pdserving}/imgs/start_server.png | Bin deploy/{pdserver => pdserving}/ocr_reader.py | 0 .../{pdserver => pdserving}/pipeline_http_client.py | 0 .../{pdserver => pdserving}/pipeline_rpc_client.py | 0 deploy/{pdserver => pdserving}/web_service.py | 0 14 files changed, 24 insertions(+), 4 deletions(-) rename deploy/{pdserver => pdserving}/README.md (87%) rename deploy/{pdserver => pdserving}/README_CN.md (84%) rename deploy/{pdserver => pdserving}/__init__.py (100%) rename deploy/{pdserver => pdserving}/config.yml (100%) rename deploy/{pdserver => pdserving}/imgs/cpp_infer_pred_12.png (100%) rename deploy/{pdserver => pdserving}/imgs/demo.png (100%) rename deploy/{pdserver => pdserving}/imgs/results.png (100%) rename deploy/{pdserver => pdserving}/imgs/start_server.png (100%) rename deploy/{pdserver => pdserving}/ocr_reader.py (100%) rename deploy/{pdserver => pdserving}/pipeline_http_client.py (100%) rename deploy/{pdserver => pdserving}/pipeline_rpc_client.py (100%) rename deploy/{pdserver => pdserving}/web_service.py (100%) diff --git a/deploy/hubserving/readme.md b/deploy/hubserving/readme.md index ce55b0f0..88f33581 100755 --- a/deploy/hubserving/readme.md +++ b/deploy/hubserving/readme.md @@ -2,7 +2,7 @@ PaddleOCR提供2种服务部署方式: - 基于PaddleHub Serving的部署:代码路径为"`./deploy/hubserving`",按照本教程使用; -- (coming soon)基于PaddleServing的部署:代码路径为"`./deploy/pdserving`",使用方法参考[文档](../../deploy/pdserving/readme.md)。 +- 基于PaddleServing的部署:代码路径为"`./deploy/pdserving`",使用方法参考[文档](../../deploy/pdserving/README_CN.md)。 # 基于PaddleHub Serving的服务部署 diff --git a/deploy/hubserving/readme_en.md b/deploy/hubserving/readme_en.md index 95223ffd..c948fed1 100755 --- a/deploy/hubserving/readme_en.md +++ b/deploy/hubserving/readme_en.md @@ -2,7 +2,7 @@ English | [简体中文](readme.md) PaddleOCR provides 2 service deployment methods: - Based on **PaddleHub Serving**: Code path is "`./deploy/hubserving`". Please follow this tutorial. -- (coming soon)Based on **PaddleServing**: Code path is "`./deploy/pdserving`". Please refer to the [tutorial](../../deploy/pdserving/readme.md) for usage. +- Based on **PaddleServing**: Code path is "`./deploy/pdserving`". Please refer to the [tutorial](../../deploy/pdserving/README.md) for usage. # Service deployment based on PaddleHub Serving diff --git a/deploy/pdserver/README.md b/deploy/pdserving/README.md similarity index 87% rename from deploy/pdserver/README.md rename to deploy/pdserving/README.md index 80a14fc1..9dcc7123 100644 --- a/deploy/pdserver/README.md +++ b/deploy/pdserving/README.md @@ -4,7 +4,8 @@ This document will introduce how to use the [PaddleServing](https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md) to deploy the PPOCR dynamic graph model as a pipeline online service. -**note**: Paddle Serving service deployment framework introduction and tutorial reference [document](https://aistudio.baidu.com/aistudio/projectdetail/1550674). +Compared with hubserving deployment, PaddleServing supports high concurrency and efficient communication between the client and the server. +The introduction and tutorial of Paddle Serving service deployment framework reference [document](https://aistudio.baidu.com/aistudio/projectdetail/1550674). ## Contents @@ -42,8 +43,17 @@ pip3 install paddle-serving-client-gpu==0.5.0 # for GPU 3. Install serving-app ``` pip3 install paddle-serving-app==0.3.0 +# fix local_predict to support load dynamic model +# find the install directoory of paddle_serving_app +vim /usr/local/lib/python3.7/site-packages/paddle_serving_app/local_predict.py +# replace line 85 of local_predict.py config = AnalysisConfig(model_path) with: +if os.path.exists(os.path.join(model_path, "__params__")): + config = AnalysisConfig(os.path.join(model_path, "__model__"), os.path.join(model_path, "__params__")) +else: + config = AnalysisConfig(model_path) ``` + **note:** If you want to install the latest version of PaddleServing, refer to [link](https://github.com/PaddlePaddle/Serving/blob/develop/doc/LATEST_PACKAGES.md). diff --git a/deploy/pdserver/README_CN.md b/deploy/pdserving/README_CN.md similarity index 84% rename from deploy/pdserver/README_CN.md rename to deploy/pdserving/README_CN.md index 9f503310..d8f6095c 100644 --- a/deploy/pdserver/README_CN.md +++ b/deploy/pdserving/README_CN.md @@ -5,7 +5,7 @@ 本文档将介绍如何使用[PaddleServing](https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md)工具部署PPOCR 动态图模型的pipeline在线服务。 -**note**: Paddle Serving服务化部署框架介绍和使用教程参考[文档](https://aistudio.baidu.com/aistudio/projectdetail/1550674)。 +相比较于hubserving部署,PaddleServing支持客户端和服务端之间 高并发和高效通信,更多有关Paddle Serving服务化部署框架介绍和使用教程参考[文档](https://aistudio.baidu.com/aistudio/projectdetail/1550674)。 ## 目录 - 环境准备 @@ -44,6 +44,16 @@ pip3 install paddle-serving-client-gpu==0.5.0 # for GPU ``` pip3 install paddle-serving-app==0.3.0 ``` +**note:** 安装0.3.0版本的serving-app后,为了能加载动态图模型,需要修改serving_app的源码,具体为: +``` +# 找到paddle_serving_app的安装目录,找到并编辑local_predict.py文件 +vim /usr/local/lib/python3.7/site-packages/paddle_serving_app/local_predict.py +# 将local_predict.py 的第85行 config = AnalysisConfig(model_path) 替换为: +if os.path.exists(os.path.join(model_path, "__params__")): + config = AnalysisConfig(os.path.join(model_path, "__model__"), os.path.join(model_path, "__params__")) +else: + config = AnalysisConfig(model_path) +``` **note:** 如果要安装最新版本的PaddleServing参考[链接](https://github.com/PaddlePaddle/Serving/blob/develop/doc/LATEST_PACKAGES.md)。 diff --git a/deploy/pdserver/__init__.py b/deploy/pdserving/__init__.py similarity index 100% rename from deploy/pdserver/__init__.py rename to deploy/pdserving/__init__.py diff --git a/deploy/pdserver/config.yml b/deploy/pdserving/config.yml similarity index 100% rename from deploy/pdserver/config.yml rename to deploy/pdserving/config.yml diff --git a/deploy/pdserver/imgs/cpp_infer_pred_12.png b/deploy/pdserving/imgs/cpp_infer_pred_12.png similarity index 100% rename from deploy/pdserver/imgs/cpp_infer_pred_12.png rename to deploy/pdserving/imgs/cpp_infer_pred_12.png diff --git a/deploy/pdserver/imgs/demo.png b/deploy/pdserving/imgs/demo.png similarity index 100% rename from deploy/pdserver/imgs/demo.png rename to deploy/pdserving/imgs/demo.png diff --git a/deploy/pdserver/imgs/results.png b/deploy/pdserving/imgs/results.png similarity index 100% rename from deploy/pdserver/imgs/results.png rename to deploy/pdserving/imgs/results.png diff --git a/deploy/pdserver/imgs/start_server.png b/deploy/pdserving/imgs/start_server.png similarity index 100% rename from deploy/pdserver/imgs/start_server.png rename to deploy/pdserving/imgs/start_server.png diff --git a/deploy/pdserver/ocr_reader.py b/deploy/pdserving/ocr_reader.py similarity index 100% rename from deploy/pdserver/ocr_reader.py rename to deploy/pdserving/ocr_reader.py diff --git a/deploy/pdserver/pipeline_http_client.py b/deploy/pdserving/pipeline_http_client.py similarity index 100% rename from deploy/pdserver/pipeline_http_client.py rename to deploy/pdserving/pipeline_http_client.py diff --git a/deploy/pdserver/pipeline_rpc_client.py b/deploy/pdserving/pipeline_rpc_client.py similarity index 100% rename from deploy/pdserver/pipeline_rpc_client.py rename to deploy/pdserving/pipeline_rpc_client.py diff --git a/deploy/pdserver/web_service.py b/deploy/pdserving/web_service.py similarity index 100% rename from deploy/pdserver/web_service.py rename to deploy/pdserving/web_service.py From fdacfe147491fd1648a4864ffbd72eb082434fd3 Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Tue, 23 Mar 2021 21:30:27 +0800 Subject: [PATCH 04/11] fix readme --- README.md | 2 +- README_ch.md | 2 +- deploy/pdserving/README.md | 141 +++++++++++++++++--------------- deploy/pdserving/README_CN.md | 148 +++++++++++++++++++--------------- 4 files changed, 160 insertions(+), 133 deletions(-) diff --git a/README.md b/README.md index 1ce6fabb..c8e033db 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ For a new language request, please refer to [Guideline for new language_requests - [Quick Inference Based on PIP](./doc/doc_en/whl_en.md) - [Python Inference](./doc/doc_en/inference_en.md) - [C++ Inference](./deploy/cpp_infer/readme_en.md) - - [Serving](./deploy/hubserving/readme_en.md) + - [Serving](./deploy/pdserving/readme_en.md) - [Mobile](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/deploy/lite/readme_en.md) - [Benchmark](./doc/doc_en/benchmark_en.md) - Data Annotation and Synthesis diff --git a/README_ch.md b/README_ch.md index 9fe853f9..bea567a8 100755 --- a/README_ch.md +++ b/README_ch.md @@ -88,7 +88,7 @@ PaddleOCR同时支持动态图与静态图两种编程范式 - [基于pip安装whl包快速推理](./doc/doc_ch/whl.md) - [基于Python脚本预测引擎推理](./doc/doc_ch/inference.md) - [基于C++预测引擎推理](./deploy/cpp_infer/readme.md) - - [服务化部署](./deploy/hubserving/readme.md) + - [服务化部署](./deploy/pdserving/readme.md) - [端侧部署](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/deploy/lite/readme.md) - [Benchmark](./doc/doc_ch/benchmark.md) - 数据集 diff --git a/deploy/pdserving/README.md b/deploy/pdserving/README.md index 9dcc7123..13295a28 100644 --- a/deploy/pdserving/README.md +++ b/deploy/pdserving/README.md @@ -2,65 +2,77 @@ (English|[简体中文](./README_CN.md)) -This document will introduce how to use the [PaddleServing](https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md) to deploy the PPOCR dynamic graph model as a pipeline online service. +PaddleOCR provides 2 service deployment methods: +- Based on **PaddleHub Serving**: Code path is "`./deploy/hubserving`". Please refer to the [tutorial](../../deploy/hubserving/readme_en.md) +- Based on **PaddleServing**: Code path is "`./deploy/pdserving`". Please follow this tutorial. -Compared with hubserving deployment, PaddleServing supports high concurrency and efficient communication between the client and the server. -The introduction and tutorial of Paddle Serving service deployment framework reference [document](https://aistudio.baidu.com/aistudio/projectdetail/1550674). +# Service deployment based on PaddleServing + +This document will introduce how to use the [PaddleServing](https://github.com/PaddlePaddle/Serving/blob/develop/README.md) to deploy the PPOCR dynamic graph model as a pipeline online service. + +Some Key Features of Paddle Serving: +- Integrate with Paddle training pipeline seamlessly, most paddle models can be deployed with one line command. +- Industrial serving features supported, such as models management, online loading, online A/B testing etc. +- Highly concurrent and efficient communication between clients and servers supported. + +The introduction and tutorial of Paddle Serving service deployment framework reference [document](https://github.com/PaddlePaddle/Serving/blob/develop/README.md). ## Contents -- Environmental preparation -- Model conversion -- Paddle Serving pipeline deployment -- FAQ +- [Environmental preparation](#environmental-preparation) +- [Model conversion](#model-conversion) +- [Paddle Serving pipeline deployment](#paddle-serving-pipeline-deployment) +- [FAQ](#faq) + ## Environmental preparation Need to prepare PaddleOCR operating environment and Paddle Serving operating environment. -1. Prepare PaddleOCR operating environment reference [link](../../doc/doc_ch/installation.md) +1. Prepare PaddleOCR operating environment reference [link](../../doc/doc_ch/installation.md). 2. Prepare the operating environment of PaddleServing, the steps are as follows -Install serving, used to start the service -``` -pip3 install paddle-serving-server==0.5.0 # for CPU -pip3 install paddle-serving-server-gpu==0.5.0 # for GPU -# Other GPU environments need to confirm the environment and then choose to execute the following commands -pip3 install paddle-serving-server-gpu==0.5.0.post9 # GPU with CUDA9.0 -pip3 install paddle-serving-server-gpu==0.5.0.post10 # GPU with CUDA10.0 -pip3 install paddle-serving-server-gpu==0.5.0.post101 # GPU with CUDA10.1 + TensorRT6 -pip3 install paddle-serving-server-gpu==0.5.0.post11 # GPU with CUDA10.1 + TensorRT7 -``` + Install serving which used to start the service + ``` + pip3 install paddle-serving-server==0.5.0 # for CPU + pip3 install paddle-serving-server-gpu==0.5.0 # for GPU + # Other GPU environments need to confirm the environment and then choose to execute the following commands + pip3 install paddle-serving-server-gpu==0.5.0.post9 # GPU with CUDA9.0 + pip3 install paddle-serving-server-gpu==0.5.0.post10 # GPU with CUDA10.0 + pip3 install paddle-serving-server-gpu==0.5.0.post101 # GPU with CUDA10.1 + TensorRT6 + pip3 install paddle-serving-server-gpu==0.5.0.post11 # GPU with CUDA10.1 + TensorRT7 + ``` -2. Install the client to send requests to the service -``` -pip3 install paddle-serving-client==0.5.0 # for CPU +3. Install the client to send requests to the service + ``` + pip3 install paddle-serving-client==0.5.0 # for CPU -pip3 install paddle-serving-client-gpu==0.5.0 # for GPU -``` + pip3 install paddle-serving-client-gpu==0.5.0 # for GPU + ``` -3. Install serving-app -``` -pip3 install paddle-serving-app==0.3.0 -# fix local_predict to support load dynamic model -# find the install directoory of paddle_serving_app -vim /usr/local/lib/python3.7/site-packages/paddle_serving_app/local_predict.py -# replace line 85 of local_predict.py config = AnalysisConfig(model_path) with: -if os.path.exists(os.path.join(model_path, "__params__")): - config = AnalysisConfig(os.path.join(model_path, "__model__"), os.path.join(model_path, "__params__")) -else: - config = AnalysisConfig(model_path) -``` +4. Install serving-app + ``` + pip3 install paddle-serving-app==0.3.0 + # fix local_predict to support load dynamic model + # find the install directoory of paddle_serving_app + vim /usr/local/lib/python3.7/site-packages/paddle_serving_app/local_predict.py + # replace line 85 of local_predict.py config = AnalysisConfig(model_path) with: + if os.path.exists(os.path.join(model_path, "__params__")): + config = AnalysisConfig(os.path.join(model_path, "__model__"), os.path.join(model_path, "__params__")) + else: + config = AnalysisConfig(model_path) + ``` -**note:** If you want to install the latest version of PaddleServing, refer to [link](https://github.com/PaddlePaddle/Serving/blob/develop/doc/LATEST_PACKAGES.md). + **note:** If you want to install the latest version of PaddleServing, refer to [link](https://github.com/PaddlePaddle/Serving/blob/develop/doc/LATEST_PACKAGES.md). + ## Model conversion When using PaddleServing for service deployment, you need to convert the saved inference model into a serving model that is easy to deploy. -First, download the [inference model] of PPOCR(https://github.com/PaddlePaddle/PaddleOCR#pp-ocr-20-series-model-listupdate-on-dec-15) +Firstly, download the [inference model](https://github.com/PaddlePaddle/PaddleOCR#pp-ocr-20-series-model-listupdate-on-dec-15) of PPOCR ``` # Download and unzip the OCR text detection model wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar && tar xf ch_ppocr_server_v2.0_det_infer.tar @@ -98,44 +110,45 @@ After the detection model is converted, there will be additional folders of `ppo ``` The recognition model is the same. + ## Paddle Serving pipeline deployment 1. Download the PaddleOCR code, if you have already downloaded it, you can skip this step. -``` -git clone https://github.com/PaddlePaddle/PaddleOCR + ``` + git clone https://github.com/PaddlePaddle/PaddleOCR -# Enter the working directory -cd PaddleOCR/deploy/pdserver/ -``` + # Enter the working directory + cd PaddleOCR/deploy/pdserver/ + ``` -The pdserver directory contains the code to start the pipeline service and send prediction requests, including: -``` -__init__.py -config.yml # Start the service configuration file -ocr_reader.py # OCR model pre-processing and post-processing code implementation -pipeline_http_client.py # Script to send pipeline prediction request -web_service.py # Start the script of the pipeline server -``` + The pdserver directory contains the code to start the pipeline service and send prediction requests, including: + ``` + __init__.py + config.yml # Start the service configuration file + ocr_reader.py # OCR model pre-processing and post-processing code implementation + pipeline_http_client.py # Script to send pipeline prediction request + web_service.py # Start the script of the pipeline server + ``` 2. Run the following command to start the service. -``` -# Start the service and save the running log in log.txt -python3 web_service.py &>log.txt & -``` -After the service is successfully started, a log similar to the following will be printed in log.txt -![](./imgs/start_server.png) - + ``` + # Start the service and save the running log in log.txt + python3 web_service.py &>log.txt & + ``` + After the service is successfully started, a log similar to the following will be printed in log.txt + ![](./imgs/start_server.png) 3. Send service request -``` -python3 pipeline_http_client.py -``` -After successfully running, the predicted result of the model will be printed in the cmd window. An example of the result is: -![](./imgs/results.png) - + ``` + python3 pipeline_http_client.py + ``` + After successfully running, the predicted result of the model will be printed in the cmd window. An example of the result is: + ![](./imgs/results.png) + ## FAQ -** Q1**: No result return after sending the request +** Q1**: No result return after sending the request. + ** A1**: Do not set the proxy when starting the service and sending the request. You can close the proxy before starting the service and before sending the request. The command to close the proxy is: ``` unset https_proxy diff --git a/deploy/pdserving/README_CN.md b/deploy/pdserving/README_CN.md index d8f6095c..cfd75b67 100644 --- a/deploy/pdserving/README_CN.md +++ b/deploy/pdserving/README_CN.md @@ -2,62 +2,75 @@ ([English](./README.md)|简体中文) +PaddleOCR提供2种服务部署方式: +- 基于PaddleHub Serving的部署:代码路径为"`./deploy/hubserving`",使用方法参考[文档](../../deploy/hubserving/readme.md); +- 基于PaddleServing的部署:代码路径为"`./deploy/pdserving`",按照本教程使用。 + +# 基于PaddleServing的服务部署 + 本文档将介绍如何使用[PaddleServing](https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md)工具部署PPOCR 动态图模型的pipeline在线服务。 -相比较于hubserving部署,PaddleServing支持客户端和服务端之间 高并发和高效通信,更多有关Paddle Serving服务化部署框架介绍和使用教程参考[文档](https://aistudio.baidu.com/aistudio/projectdetail/1550674)。 +相比较于hubserving部署,PaddleServing具备以下优点: +- 支持客户端和服务端之间高并发和高效通信 +- 支持 工业级的服务能力 例如模型管理,在线加载,在线A/B测试等 +- 支持 多种编程语言 开发客户端,例如C++, Python和Java + +更多有关PaddleServing服务化部署框架介绍和使用教程参考[文档](https://github.com/PaddlePaddle/Serving/blob/develop/README_CN.md)。 ## 目录 -- 环境准备 -- 模型转换 -- Paddle Serving pipeline部署 -- FAQ - +- [环境准备](#环境准备) +- [模型转换](#模型转换) +- [Paddle Serving pipeline部署](#部署) +- [FAQ](#FAQ) + ## 环境准备 需要准备PaddleOCR的运行环境和Paddle Serving的运行环境。 -1. 准备PaddleOCR的运行环境参考[链接](../../doc/doc_ch/installation.md) +- 准备PaddleOCR的运行环境参考[链接](../../doc/doc_ch/installation.md) -2. 准备PaddleServing的运行环境,步骤如下 +- 准备PaddleServing的运行环境,步骤如下 -安装serving,用于启动服务 -``` -pip3 install paddle-serving-server==0.5.0 # for CPU -pip3 install paddle-serving-server-gpu==0.5.0 # for GPU -# 其他GPU环境需要确认环境再选择执行如下命令 -pip3 install paddle-serving-server-gpu==0.5.0.post9 # GPU with CUDA9.0 -pip3 install paddle-serving-server-gpu==0.5.0.post10 # GPU with CUDA10.0 -pip3 install paddle-serving-server-gpu==0.5.0.post101 # GPU with CUDA10.1 + TensorRT6 -pip3 install paddle-serving-server-gpu==0.5.0.post11 # GPU with CUDA10.1 + TensorRT7 -``` +1. 安装serving,用于启动服务 + ``` + pip3 install paddle-serving-server==0.5.0 # for CPU + pip3 install paddle-serving-server-gpu==0.5.0 # for GPU + # 其他GPU环境需要确认环境再选择执行如下命令 + pip3 install paddle-serving-server-gpu==0.5.0.post9 # GPU with CUDA9.0 + pip3 install paddle-serving-server-gpu==0.5.0.post10 # GPU with CUDA10.0 + pip3 install paddle-serving-server-gpu==0.5.0.post101 # GPU with CUDA10.1 + TensorRT6 + pip3 install paddle-serving-server-gpu==0.5.0.post11 # GPU with CUDA10.1 + TensorRT7 + ``` 2. 安装client,用于向服务发送请求 -``` -pip3 install paddle-serving-client==0.5.0 # for CPU + ``` + pip3 install paddle-serving-client==0.5.0 # for CPU -pip3 install paddle-serving-client-gpu==0.5.0 # for GPU -``` + pip3 install paddle-serving-client-gpu==0.5.0 # for GPU + ``` 3. 安装serving-app -``` -pip3 install paddle-serving-app==0.3.0 -``` -**note:** 安装0.3.0版本的serving-app后,为了能加载动态图模型,需要修改serving_app的源码,具体为: -``` -# 找到paddle_serving_app的安装目录,找到并编辑local_predict.py文件 -vim /usr/local/lib/python3.7/site-packages/paddle_serving_app/local_predict.py -# 将local_predict.py 的第85行 config = AnalysisConfig(model_path) 替换为: -if os.path.exists(os.path.join(model_path, "__params__")): - config = AnalysisConfig(os.path.join(model_path, "__model__"), os.path.join(model_path, "__params__")) -else: - config = AnalysisConfig(model_path) -``` + ``` + pip3 install paddle-serving-app==0.3.0 + ``` + **note:** 安装0.3.0版本的serving-app后,为了能加载动态图模型,需要修改serving_app的源码,具体为: + ``` + # 找到paddle_serving_app的安装目录,找到并编辑local_predict.py文件 + vim /usr/local/lib/python3.7/site-packages/paddle_serving_app/local_predict.py + # 将local_predict.py 的第85行 config = AnalysisConfig(model_path) 替换为: + if os.path.exists(os.path.join(model_path, "__params__")): + config = AnalysisConfig(os.path.join(model_path, "__model__"), os.path.join(model_path, "__params__")) + else: + config = AnalysisConfig(model_path) + ``` -**note:** 如果要安装最新版本的PaddleServing参考[链接](https://github.com/PaddlePaddle/Serving/blob/develop/doc/LATEST_PACKAGES.md)。 + **Note:** 如果要安装最新版本的PaddleServing参考[链接](https://github.com/PaddlePaddle/Serving/blob/develop/doc/LATEST_PACKAGES.md)。 + ## 模型转换 + 使用PaddleServing做服务化部署时,需要将保存的inference模型转换为serving易于部署的模型。 首先,下载PPOCR的[inference模型](https://github.com/PaddlePaddle/PaddleOCR#pp-ocr-20-series-model-listupdate-on-dec-15) @@ -97,44 +110,45 @@ python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_rec_in ``` 识别模型同理。 + ## Paddle Serving pipeline部署 -``` -# 下载PaddleOCR代码,若已下载可跳过此步骤 -git clone https://github.com/PaddlePaddle/PaddleOCR +1. 下载PaddleOCR代码,若已下载可跳过此步骤 + ``` + git clone https://github.com/PaddlePaddle/PaddleOCR -# 进入到工作目录 -cd PaddleOCR/deploy/pdserver/ -``` -pdserver目录包含启动pipeline服务和发送预测请求的代码,包括: -``` -__init__.py -config.yml # 启动服务的配置文件 -ocr_reader.py # OCR模型预处理和后处理的代码实现 -pipeline_http_client.py # 发送pipeline预测请求的脚本 -web_service.py # 启动pipeline服务端的脚本 -``` - -启动服务可运行如下命令 -``` -# 启动服务,运行日志保存在log.txt -python3 web_service.py &>log.txt & -``` -成功启动服务后,log.txt中会打印类似如下日志 -![](./imgs/start_server.png) - - -发送服务请求 -``` -python3 pipeline_http_client.py -``` -成功运行后,模型预测的结果会打印在cmd窗口中,结果示例为: -![](./imgs/results.png) + # 进入到工作目录 + cd PaddleOCR/deploy/pdserver/ + ``` + pdserver目录包含启动pipeline服务和发送预测请求的代码,包括: + ``` + __init__.py + config.yml # 启动服务的配置文件 + ocr_reader.py # OCR模型预处理和后处理的代码实现 + pipeline_http_client.py # 发送pipeline预测请求的脚本 + web_service.py # 启动pipeline服务端的脚本 + ``` +2. 启动服务可运行如下命令: + ``` + # 启动服务,运行日志保存在log.txt + python3 web_service.py &>log.txt & + ``` + 成功启动服务后,log.txt中会打印类似如下日志 + ![](./imgs/start_server.png) + +3. 发送服务请求: + ``` + python3 pipeline_http_client.py + ``` + 成功运行后,模型预测的结果会打印在cmd窗口中,结果示例为: + ![](./imgs/results.png) + ## FAQ -** Q1**: 发送请求后得不到结果 +** Q1**: 发送请求后没有结果返回或者提示输出解码报错 + ** A1**: 启动服务和发送请求时不要设置代理,可以在启动服务前和发送请求前关闭代理,关闭代理的命令是: ``` unset https_proxy From 90c3304c0bb068eae8d74074b9de08ffd31cc11c Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Tue, 23 Mar 2021 21:32:57 +0800 Subject: [PATCH 05/11] fix readme --- deploy/pdserving/README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/deploy/pdserving/README.md b/deploy/pdserving/README.md index 13295a28..946b9644 100644 --- a/deploy/pdserving/README.md +++ b/deploy/pdserving/README.md @@ -64,7 +64,6 @@ Need to prepare PaddleOCR operating environment and Paddle Serving operating env config = AnalysisConfig(model_path) ``` - **note:** If you want to install the latest version of PaddleServing, refer to [link](https://github.com/PaddlePaddle/Serving/blob/develop/doc/LATEST_PACKAGES.md). @@ -79,14 +78,14 @@ wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_in # Download and unzip the OCR text recognition model wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar && tar xf ch_ppocr_server_v2.0_rec_infer.tar -# Conversion detection model +# Detection model conversion python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_det_infer/ \ --model_filename inference.pdmodel \ --params_filename inference.pdiparams \ --serving_server ./ppocr_det_server_2.0_serving/ \ --serving_client ./ppocr_det_server_2.0_client/ -# Conversion recognition model +# Recognition model conversion python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_rec_infer/ \ --model_filename inference.pdmodel \ --params_filename inference.pdiparams \ From 7ec717544c40d0e81293b4a95f5ccf8e0cdeecef Mon Sep 17 00:00:00 2001 From: LDOUBLEV Date: Wed, 24 Mar 2021 10:10:43 +0800 Subject: [PATCH 06/11] refine server readme --- deploy/pdserving/README.md | 11 +++++++---- deploy/pdserving/README_CN.md | 4 ++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/deploy/pdserving/README.md b/deploy/pdserving/README.md index 946b9644..6675d5df 100644 --- a/deploy/pdserving/README.md +++ b/deploy/pdserving/README.md @@ -2,7 +2,7 @@ (English|[简体中文](./README_CN.md)) -PaddleOCR provides 2 service deployment methods: +PaddleOCR provides two service deployment methods: - Based on **PaddleHub Serving**: Code path is "`./deploy/hubserving`". Please refer to the [tutorial](../../deploy/hubserving/readme_en.md) - Based on **PaddleServing**: Code path is "`./deploy/pdserving`". Please follow this tutorial. @@ -27,11 +27,11 @@ The introduction and tutorial of Paddle Serving service deployment framework ref ## Environmental preparation -Need to prepare PaddleOCR operating environment and Paddle Serving operating environment. +PaddleOCR operating environment and Paddle Serving operating environment are needed. -1. Prepare PaddleOCR operating environment reference [link](../../doc/doc_ch/installation.md). +1. Please prepare PaddleOCR operating environment reference [link](../../doc/doc_ch/installation.md). -2. Prepare the operating environment of PaddleServing, the steps are as follows +2. The steps of PaddleServing operating environment prepare are as follows: Install serving which used to start the service ``` @@ -78,6 +78,9 @@ wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_in # Download and unzip the OCR text recognition model wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar && tar xf ch_ppocr_server_v2.0_rec_infer.tar +``` +Then, you can use installed paddle_serving_client tool to convert inference model to server model. +``` # Detection model conversion python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_det_infer/ \ --model_filename inference.pdmodel \ diff --git a/deploy/pdserving/README_CN.md b/deploy/pdserving/README_CN.md index cfd75b67..5c4d6156 100644 --- a/deploy/pdserving/README_CN.md +++ b/deploy/pdserving/README_CN.md @@ -79,7 +79,11 @@ PaddleOCR提供2种服务部署方式: wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_det_infer.tar && tar xf ch_ppocr_server_v2.0_det_infer.tar # 下载并解压 OCR 文本识别模型 wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar && tar xf ch_ppocr_server_v2.0_rec_infer.tar +``` +接下来,用安装的paddle_serving_client把下载的inference模型转换成易于server部署的模型格式。 + +``` # 转换检测模型 python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_det_infer/ \ --model_filename inference.pdmodel \ From c59a58e55c2bb6e846c9e85a2232a69c1e2e9d2a Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Wed, 24 Mar 2021 13:20:06 +0800 Subject: [PATCH 07/11] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c8e033db..a5c52bdb 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ For a new language request, please refer to [Guideline for new language_requests - [Quick Inference Based on PIP](./doc/doc_en/whl_en.md) - [Python Inference](./doc/doc_en/inference_en.md) - [C++ Inference](./deploy/cpp_infer/readme_en.md) - - [Serving](./deploy/pdserving/readme_en.md) + - [Serving](./deploy/pdserving/README.md) - [Mobile](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/deploy/lite/readme_en.md) - [Benchmark](./doc/doc_en/benchmark_en.md) - Data Annotation and Synthesis From 27f5df35835ff9d904b8ac1075ff98118613a58f Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Wed, 24 Mar 2021 13:20:44 +0800 Subject: [PATCH 08/11] Update README.md --- deploy/pdserving/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/pdserving/README.md b/deploy/pdserving/README.md index 6675d5df..88426ba9 100644 --- a/deploy/pdserving/README.md +++ b/deploy/pdserving/README.md @@ -149,9 +149,9 @@ The recognition model is the same. ## FAQ -** Q1**: No result return after sending the request. +**Q1**: No result return after sending the request. -** A1**: Do not set the proxy when starting the service and sending the request. You can close the proxy before starting the service and before sending the request. The command to close the proxy is: +**A1**: Do not set the proxy when starting the service and sending the request. You can close the proxy before starting the service and before sending the request. The command to close the proxy is: ``` unset https_proxy unset http_proxy From 5f1802e768df19dd8e1fa6ef14ba80bb7990b6a4 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Wed, 24 Mar 2021 13:22:21 +0800 Subject: [PATCH 09/11] Update README_CN.md --- deploy/pdserving/README_CN.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/pdserving/README_CN.md b/deploy/pdserving/README_CN.md index 5c4d6156..3e3f1bde 100644 --- a/deploy/pdserving/README_CN.md +++ b/deploy/pdserving/README_CN.md @@ -151,9 +151,9 @@ python3 -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_rec_in ## FAQ -** Q1**: 发送请求后没有结果返回或者提示输出解码报错 +**Q1**: 发送请求后没有结果返回或者提示输出解码报错 -** A1**: 启动服务和发送请求时不要设置代理,可以在启动服务前和发送请求前关闭代理,关闭代理的命令是: +**A1**: 启动服务和发送请求时不要设置代理,可以在启动服务前和发送请求前关闭代理,关闭代理的命令是: ``` unset https_proxy unset http_proxy From 311d1a10cd812d2f079c3ce1d292ff575b95c2f4 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Wed, 24 Mar 2021 13:23:42 +0800 Subject: [PATCH 10/11] Update README_ch.md --- README_ch.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_ch.md b/README_ch.md index bea567a8..a6d456a5 100755 --- a/README_ch.md +++ b/README_ch.md @@ -88,7 +88,7 @@ PaddleOCR同时支持动态图与静态图两种编程范式 - [基于pip安装whl包快速推理](./doc/doc_ch/whl.md) - [基于Python脚本预测引擎推理](./doc/doc_ch/inference.md) - [基于C++预测引擎推理](./deploy/cpp_infer/readme.md) - - [服务化部署](./deploy/pdserving/readme.md) + - [服务化部署](./deploy/pdserving/README_CN.md) - [端侧部署](https://github.com/PaddlePaddle/PaddleOCR/blob/develop/deploy/lite/readme.md) - [Benchmark](./doc/doc_ch/benchmark.md) - 数据集 From 9e7dc2b88e76c761860b8d70b2896437607f576b Mon Sep 17 00:00:00 2001 From: littletomatodonkey Date: Wed, 24 Mar 2021 06:32:38 +0000 Subject: [PATCH 11/11] fix logger info for empty log --- tools/program.py | 5 +++-- tools/train.py | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/program.py b/tools/program.py index ae649176..cff43102 100755 --- a/tools/program.py +++ b/tools/program.py @@ -237,8 +237,9 @@ def train(config, vdl_writer.add_scalar('TRAIN/{}'.format(k), v, global_step) vdl_writer.add_scalar('TRAIN/lr', lr, global_step) - if dist.get_rank( - ) == 0 and global_step > 0 and global_step % print_batch_step == 0: + if dist.get_rank() == 0 and ( + (global_step > 0 and global_step % print_batch_step == 0) or + (idx >= len(train_dataloader) - 1)): logs = train_stats.log() strs = 'epoch: [{}/{}], iter: {}, {}, reader_cost: {:.5f} s, batch_cost: {:.5f} s, samples: {}, ips: {:.5f}'.format( epoch, epoch_num, global_step, logs, train_reader_cost / diff --git a/tools/train.py b/tools/train.py index c12cf005..47358ca4 100755 --- a/tools/train.py +++ b/tools/train.py @@ -52,7 +52,10 @@ def main(config, device, logger, vdl_writer): train_dataloader = build_dataloader(config, 'Train', device, logger) if len(train_dataloader) == 0: logger.error( - 'No Images in train dataset, please check annotation file and path in the configuration file' + "No Images in train dataset, please ensure\n" + + "\t1. The images num in the train label_file_list should be larger than or equal with batch size.\n" + + + "\t2. The annotation file and path in the configuration file are provided normally." ) return