接口帮助文档
一 、检测接口帮助文档
接口说明
数据源
风云卫星遥感数据,可以从国家卫星气象中心网站下载,然后解析成jpg格式的图片。
接口地址
http://192.168.137.21:8501/v1/models/detect:predict
请求数据
数据需要进行一定的预处理,以python语言为例:
1、确保图像有三个通道(红、绿、蓝)而不是单一通道
if (len(url_image.getbands()) == 1):
url_image = url_image.convert('RGB')
2、使用 resize 方法将图像对象 url_image 的大小调整为 (640, 640)
resize_image = url_image.resize((640, 640))
3、归一化处理
inputimgs = np.expand_dims(np.array(resize_image).astype(np.float32) / 255.0, 0).tolist()
4、转换为json格式
detect_request = json.dumps({'instances': inputimgs})
detect_response = requests.post(detecturl, data=detect_request)
请求参数说明
参数名 | 说明 | 值 |
---|---|---|
instances | 检测接口 | 图像归一化之后的列表,维度为(batch_size, height, width, channels),channel为3,因为是彩色图像(RGB),batch_size为1 |
请求参数样例
返回数据
从模型服务收到的响应是一个包含检测结果的JSON对象。检测结果是一个包含台风目标检测框的位置信息的数组。
返回结果字段说明
字段名称 | 说明 | 类型 |
---|---|---|
output_0 | 表示检测到的台风在图像中的位置,即矩形框的左上角和右下角坐标 | 浮点数 |
output_1 | 置信度 | 浮点数 |
output_2 | 识别的类别 | 浮点数 |
返回结果样例
{
"predictions": [
{
"output_1": [
0.967681944,
-1.0,
-1.0
],
"output_3": 1,
"output_0": [
[
0.614780843,
0.513963401,
0.8659,
0.763989151
],
[
0.0,
0.0,
0.0,
0.0
],
[
0.0,
0.0,
0.0,
0.0
]
],
"output_2": [
0.0,
-1.0,
-1.0
]
}
]
}
二 、定位接口帮助文档
接口说明
数据源
风云卫星遥感数据,可以从国家卫星气象中心网站下载,我们需要对数据作进一步的处理才可作为定位接口的请求数据。
接口地址
http://192.168.137.21:8501/v1/models/location:predict
请求数据
从检测接口返回的数据我们需要处理之后才能作为请求数据给定位接口。
以python语言为例进行解释,处理方式如下:
1、detect_response 是从检测接口得到的响应对象。.json() 方法将响应的内容解析为 JSON 格式。我们的后续处理只需要关注键 'predictions’对应的数据的第一个元素即[‘predictions’][0]。
detect_results = detect_response.json()['predictions'][0]
2、detect_results[‘output_0’]对应的是检测到的台风位置的目标框,我们分别对这些目标框进行遍历,然后进行台风风眼定位。
for item in detect_results['output_0']:
3、获得目标框的左上角和右下角坐标
lst = [i * 640 for i in item]
[left, top, right, bottom] = map(int, lst) # 左上角,右下角坐标,屏幕百分比坐标
4、检测结果裁剪后传入定位模型,进步提高定位精度
crop_detected_img = resize_image.crop((left, top, right, bottom))
5、resize定位模型inputs成224*224,归一化
unlocated_img = dataPreProcess(crop_detected_img).tolist()
6、unlocated_img 变量将包含经过预处理的图像数据,并以 Python 列表的形式存储
location_request = json.dumps({'instances': unlocated_img})
location_response = requests.post(locationurl, data=location_request)
请求参数说明
参数名 | 说明 | 值 |
---|---|---|
instances | 定位接口 | 经过上述预处理后的图像数据,其形状为 (1, C, H, W),其中:1 表示批处理大小为1,即一张图像。C 表示通道数,通常为3,因为是彩色图像(RGB)。H 表示图像的高度。W 表示图像的宽度。 |
请求参数样例
返回数据
从模型服务收到的响应是一个包含检测结果的JSON对象。定位结果是一个包含台风风眼的在图片上的百分比坐标。
返回结果字段说明
字段名称 | 说明 | 类型 |
---|---|---|
predictions | 台风风眼的百分比坐标 | 浮点数 |
返回结果样例
{
"predictions": [
[
0.21233812,
0.288544327
]
]
}