Open gubinjie opened 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('./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)}
我疑问的是这个结果是否正确?这个检测模型为什么没有告诉我检测的四点坐标?
Message that will be displayed on users' first issue
你fetch的不是最终的输出,看着是这个输出还没有解码成最后的四点坐标格式,确认一下你的模型是完整导出的么
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可以识别的
4、启动模型Serving服务
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"]`
输出:
我疑问的是这个结果是否正确?这个检测模型为什么没有告诉我检测的四点坐标?