PaddlePaddle / Serving

A flexible, high-performance carrier for machine learning models(『飞桨』服务化部署框架)
Apache License 2.0
887 stars 247 forks source link

paddleServing部署电表检测模型,不确定预期输出 #1974

Open gubinjie opened 9 months ago

gubinjie commented 9 months ago

1、前期模型训练按照下面的项目方式进行:

https://aistudio.baidu.com/projectdetail/3429765?channelType=0&channel=0

2、通过PaddleOCR导出模型

python tools/export_model.py -c ./configs/det/ch_PP-OCRv3/ch_PP-OCRv3_det_student.yml -o Global.pretrained_model=./output/dianbiao_ch_PP-OCR_V3_det/best_accuracy Global.save_inference_dir=./inference/det_db

3、模型转换成serving可以识别的

python -m paddle_serving_client.convert --dirname ./det_db/ --model_filename inference.pdmodel --params_filename inference.pdiparams --serving_server ./ppocr_det_v3_serving/ --serving_client ./ppocr_det_v3_client/

4、启动模型Serving服务

python3 -m paddle_serving_server.serve --model /opt/ammeter_identify_mode/ppocr_det_v3_serving/ --port 9812

5、配置文件serving_client_conf.prototxt

` feed_var {

name: "x" alias_name: "x" is_lod_tensor: false feed_type: 1 shape: 3 } fetch_var { name: "sigmoid_0.tmp_0" alias_name: "sigmoid_0.tmp_0" is_lod_tensor: false fetch_type: 1 shape: 1 }`

6、客户端调用代码:

` from paddle_serving_app.reader import *

from paddle_serving_client import Client import cv2, json, datetime, os,numpy as np import numpy as np

parent_directory = os.path.dirname(os.path.abspath(file))

client = Client()

client.load_client_config(os.path.join(parent_directory, 'serving_client_conf.prototxt'))

client.load_client_config('./serving_det_client_conf.prototxt') client.connect(['****:9812'])

preprocess = Sequential([ File2Image(), BGR2RGB(), Resize( (960, 960), interpolation=cv2.INTER_LANCZOS4), Div(255.0),Transpose((2, 0, 1)) ])

im = preprocess('./P23030907100210.jpg')

fetch_map = client.predict( feed={ "x": im, }, fetch=["sigmoid_0.tmp_0"], batch=False)

detections = fetch_map["sigmoid_0.tmp_0"]`

输出:

print(fetch_map) {'sigmoid_0.tmp_0': array([[[[6.7720975e-08, 1.3140065e-07, 1.9094442e-08, ..., 2.3576363e-09, 7.7910184e-10, 4.4165565e-09], [6.3383972e-08, 1.4166790e-07, 3.6551061e-08, ..., 4.6193835e-09, 1.3099265e-09, 4.5741602e-09], [2.5273311e-08, 1.4597879e-07, 3.7196685e-08, ..., 6.0767689e-09, 7.5343232e-10, 1.7367194e-08], ..., [4.4501288e-08, 3.6136807e-08, 7.8183229e-09, ..., 5.6374336e-08, 1.7245652e-08, 2.9781738e-08], [1.5184209e-08, 7.0195000e-08, 1.4452498e-08, ..., 5.4933416e-08, 9.6213251e-09, 1.3786045e-07], [7.2296395e-08, 3.9937358e-08, 2.8997006e-08, ..., 1.5954635e-07, 4.4072682e-08, 2.0925140e-07]]]], dtype=float32)}

我疑问的是这个结果是否正确?这个检测模型为什么没有告诉我检测的四点坐标?

github-actions[bot] commented 9 months ago

Message that will be displayed on users' first issue

heavengate commented 5 months ago

你fetch的不是最终的输出,看着是这个输出还没有解码成最后的四点坐标格式,确认一下你的模型是完整导出的么