使用Detection导出的模型在Serving 预测的效果差异较大
Created by: niiikolai
差异比较大 使用的模型:cascade_rcnn_dcn_r101_vd_fpn_1x Detection预处理如下: sample_transforms:
- !DecodeImage to_rgb: true with_mixup: false
- !NormalizeImage is_channel_first: false is_scale: true mean: [0.485,0.456,0.406] std: [0.229, 0.224,0.225]
- !ResizeImage interp: 1 max_size: 1333 target_size: 800 use_cv2: true
- !Permute channel_first: true to_bgr: false batch_transforms:
- !PadBatch pad_to_stride: 32 use_padded_im_info: true
使用命令进行预测: python test_client.py serving_server/serving_client_conf.prototxt infer_cfg.yml input/1.jpg
test_client.py文件如下: from paddle_serving_client import Client from paddle_serving_app.reader import * import sys import numpy as np
preprocess = Sequential([ File2Image(), BGR2RGB(), Div(255.0), Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225], False), Resize(640, 640), Transpose((2, 0, 1)),PadStride(32) ])
postprocess = RCNNPostprocess("labels.txt", "output") client = Client()
client.load_client_config(sys.argv[1]) client.connect(['127.0.0.1:9494'])
im = preprocess(sys.argv[3]) fetch_map = client.predict( feed={ "image": im, "im_info": np.array(list(im.shape[1:]) + [1.0]), "im_shape": np.array(list(im.shape[1:]) + [1.0]) }, fetch=["multiclass_nms_0.tmp_0"]) fetch_map["image"] = sys.argv[3] postprocess(fetch_map)
请问这样预测出来的结果差异较大是test_client.py 预处理不一样导致的吗? 应该怎么修改呢?有没有文档介绍preprocess 部分该怎么填写呢?