资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

图像分割API调用文档

本文档主要说明定制化模型发布后获得的API如何使用,如有疑问可以通过以下方式联系我们:

接口描述

基于自定义训练出的图像分割模型,实现定制图像识别。

接口鉴权

1、在EasyDL控制台创建应用

2、应用详情页获取AK SK

请求说明

请求示例

HTTP 方法:POST

请求URL: 请首先进行自定义模型训练,完成训练后申请上线,上线成功后可在服务列表中查看并获取url。

URL参数:

参数
input_type 当取值为 url 时,需在请求参数中传入图片的URL string
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/json

注意:如果出现336001的错误码很可能是因为请求方式错误,与其他图像识别服务不同的是定制化图像识别服务以json方式请求。

Body请求示例:

{
    "image": "<base64数据>"
}

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,通用算法训练的模型发布API支持jpg/png/bmp格式。肺炎CT影像识别专用算法训练发布的API在此基础上支持dicom格式,限制4M以内。 注意请去掉头部
threshold number - 默认值为推荐阈值,请在我的模型列表-模型效果查看推荐阈值
url string - 如果在请求URL参数中增加“input_type=url”,则该参数必传,否则“image”参数必传。参数内容为URL string,用户需确保该string是有效的图片URL,否则会下载失败

请求代码示例

"""
EasyDL 物体检测 调用模型公有云API Python3实现
"""

import json
import base64
import requests
"""
使用 requests 库发送请求
使用 pip(或者 pip3)检查我的 python3 环境是否安装了该库,执行命令
  pip freeze | grep requests
若返回值为空,则安装该库
  pip install requests
"""


# 目标图片的 本地文件路径,支持jpg/png/bmp格式
IMAGE_FILEPATH = "【您的测试图片地址,例如:./example.jpg】"

# 可选的请求参数
# threshold: 默认值为建议阈值,请在 我的模型-模型效果-完整评估结果-详细评估 查看建议阈值
PARAMS = {"threshold": 0.3}

# 服务详情 中的 接口地址
MODEL_API_URL = "【您的API地址】"

# 调用 API 需要 ACCESS_TOKEN。若已有 ACCESS_TOKEN 则于下方填入该字符串
# 否则,留空 ACCESS_TOKEN,于下方填入 该模型部署的 API_KEY 以及 SECRET_KEY,会自动申请并显示新 ACCESS_TOKEN
ACCESS_TOKEN = "【您的ACESS_TOKEN】"
API_KEY = "【您的API_KEY】"
SECRET_KEY = "【您的SECRET_KEY】"


print("1. 读取目标图片 '{}'".format(IMAGE_FILEPATH))
with open(IMAGE_FILEPATH, 'rb') as f:
    base64_data = base64.b64encode(f.read())
    base64_str = base64_data.decode('UTF8')
print("将 BASE64 编码后图片的字符串填入 PARAMS 的 'image' 字段")
PARAMS["image"] = base64_str


if not ACCESS_TOKEN:
    print("2. ACCESS_TOKEN 为空,调用鉴权接口获取TOKEN")
    auth_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials"\
               "&client_id={}&client_secret={}".format(API_KEY, SECRET_KEY)
    auth_resp = requests.get(auth_url)
    auth_resp_json = auth_resp.json()
    ACCESS_TOKEN = auth_resp_json["access_token"]
    print("新 ACCESS_TOKEN: {}".format(ACCESS_TOKEN))
else:
    print("2. 使用已有 ACCESS_TOKEN")


print("3. 向模型接口 'MODEL_API_URL' 发送请求")
request_url = "{}?access_token={}".format(MODEL_API_URL, ACCESS_TOKEN)
response = requests.post(url=request_url, json=PARAMS)
response_json = response.json()
response_str = json.dumps(response_json, indent=4, ensure_ascii=False)
print("结果:\n{}".format(response_str))

返回说明

实例分割返回参数

字段 类型 说明
log_id number 唯一的log id,用于问题定位
results array(object) 识别结果数组
+name string 分类名称
+score number 置信度
+location
++left number 检测到的目标主体区域到图片左边界的距离
++top number 检测到的目标主体区域到图片上边界的距离
++width number 检测到的目标主体区域的宽度
++height number 检测到的目标主体区域的高度
+mask string 基于游程编码的字符串,编码内容为和原图宽高相同的布尔数组:若数组值为0,代表原图此位置像素点不属于检测目标,若为1,代表原图此位置像素点属于检测目标。下载解码SDK

语义分割返回参数

字段 类型 说明
log_id number 唯一的log id,用于问题定位
results array(object) 识别结果数组
+name string 分类名称
+mask string 基于游程编码的字符串,编码内容为和原图宽高相同的布尔数组:若数组值为0,代表原图此位置像素点不属于检测目标,若为1,代表原图此位置像素点属于检测目标。下载解码SDK

在线调试

EasyDL零基础开发平台提供了 示例代码中心(API调试平台)-示例代码 ,用于帮助开发者在线调试接口,查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,简单易用。

错误码

若请求错误,服务器将返回的JSON文本包含以下参数:

  • error_code:错误码。
  • error_msg:错误描述信息,帮助理解和解决发生的错误。

例如Access Token失效返回:

{
  "error_code": 110,
  "error_msg": "Access token invalid or no longer valid"
}

需要重新获取新的Access Token再次请求即可。

错误码 错误信息 描述
1 Unknown error 服务器内部错误,请再次请求, 如果持续出现此类错误,请在百度云控制台内提交工单反馈。
2 Service temporarily unavailable 服务暂不可用,请再次请求, 如果持续出现此类错误,请在百度云控制台内提交工单反馈。
3 Unsupported openapi method 调用的API不存在,请检查后重新尝试
4 Open api request limit reached 集群超限额
6 No permission to access data 无权限访问该用户数据
13 Get service token failed 获取token失败
14 IAM Certification failed IAM鉴权失败
15 app not exists or create failed 应用不存在或者创建失败
17 Open api daily request limit reached 每天请求量超限额,已上线计费的接口,请直接在控制台开通计费,调用量不受限制,按调用量阶梯计费;未上线计费的接口,请在百度云控制台内提交工单反馈
18 Open api qps request limit reached QPS超限额,已上线计费的接口,请直接在控制台开通计费,调用量不受限制,按调用量阶梯计费;未上线计费的接口,请在百度云控制台内提交工单反馈
19 Open api total request limit reached 请求总量超限额,已上线计费的接口,请直接在控制台开通计费,调用量不受限制,按调用量阶梯计费;未上线计费的接口,请在百度云控制台内提交工单反馈
100 Invalid parameter 无效的access_token参数,请检查后重新尝试
110 Access token invalid or no longer valid access_token无效
111 Access token expired access token过期
336000 Internal error 服务器内部错误,请再次请求, 如果持续出现此类错误,请在百度云控制台内提交工单反馈
336001 Invalid Argument 入参格式有误,比如缺少必要参数、图片base64编码错误等等,可检查下图片编码、代码格式是否有误。有疑问请在百度云控制台内提交工单反馈
336002 JSON不合法 入参格式或调用方式有误,比如缺少必要参数或代码格式有误。有疑问请在百度云控制台内提交工单反馈
336003 Base64解码失败 图片/音频/文本格式有误或base64编码有误,请根据接口文档检查格式,base64编码请求时注意要去掉头部。有疑问请在百度云控制台内提交工单反馈
336004 输入文件大小不合法 图片超出大小限制,图片限4M以内,请根据接口文档检查入参格式,有疑问请在百度云控制台内提交工单反馈
336005 图片解码失败 图片编码错误(非jpg,bmp,png等常见图片格式),请检查并修改图片格式
336006 缺失必要参数 image字段缺失(未上传图片)
336100 model temporarily unavailable 遇到该错误码请等待1分钟后再次请求,可恢复正常,若反复重试依然报错或有疑问请在百度云控制台内提交工单反馈
上一篇
如何发布API
下一篇
本地服务器部署