交互式全图分割

本文介绍创新专区(aigen)类目下的全图分割InteractiveFullSegmentation的语法及示例。

功能描述

交互式全图分割能力支持以单张图片作为输入,无需任何其他提示,即可返回图片中所有元素的分割结果。用户可以通过点击操作选择其中所需的元素,实现图片中分割元素的自由选择。

关于该接口功能的示例图如下:

  • 输入原图
  • 全图分割
  • 点选操作后的mask
  • 分割结果
说明
  • 您可以进入在线咨询获取在线人工帮助。
  • 当前能力可在视觉智能开放平台有完整的免费产品体验,您可以单击立即试用对该能力进行更直观试用以及在线购买。
  • 阿里云视觉智能开放平台视觉AI能力API接入、接口使用或问题咨询等,请通过钉钉群(23109592)加入阿里云视觉智能开放平台咨询群联系我们。

应用场景

图片编辑:可对图像中的任意涂抹元素进行选择并智能分离,实现图像后续的二次编辑。

特色优势

  • 图片元素识别:根据涂抹区域的位置和大小,自动对涂抹目标进行识别和分割。
  • 自由开放选择:允许用户通过鼠标涂抹操作自由选择和排除所需的分割对象。
  • 适用多种场景:适用于人、动物、食物、物品、家居等各种抠图场景,使用范围广。

接入指引

1. 注册阿里云账号:打开阿里云官网,在阿里云官网右上角,单击立即注册,按照操作提示完成账号注册。

2. 开通能力:请确保您已开通创新专区服务,若未开通服务请立即开通

3. 创建AccessKey:请确保您已创建AccessKey,如果您使用的是子账号AccessKey,您需要给子账号赋予AliyunVIAPIFullAccess权限,具体操作,请参见RAM授权

4. 在线调试(可选):您可以通过OpenAPI Explorer在线调试能力,查看完整的调用示例代码及SDK依赖信息,也可以下载完整的工程。

5. 开发接入步骤:

  • SDK总览中选择您要接入使用的SDK语言。
  • 在对应语言的SDK文档中找到AI类目为创新专区(aigen)的SDK包进行安装。
  • 参考文档中提供的示例代码进行适当修改后调用。

6. 示例代码:该能力常用语言的示例代码,请参见交互式全图分割示例代码,常用语言查询异步任务结果的示例代码,请参见查询异步任务结果示例代码

7. 客户端直接调用:该能力常用的客户端调用方式包括以下几种。

输入限制

  • 图像格式:JPG、JPEG、PNG、BMP、WEBP。
  • 图像大小:不超过10 MB。
  • 输入图像:大于等于32x32像素,小于等于4096x4096像素。
  • URL地址中不能包含中文字符。

调用步骤

该能力为异步能力,需分两步进行调用。

第一步调用InteractiveFullSegmentation接口提交任务,请求成功后,得到一个任务ID。

第二步调用GetAsyncJobResult接口查询结果,根据任务ID查询任务执行状态和结果。如果任务还在处理中,可稍等一段时间后再进行查询。

计费说明

交互式全图分割能力目前处于公测期,可免费调用。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求参数

名称

类型

是否必选

示例值

描述

Action String InteractiveFullSegmentation

系统规定参数。取值:InteractiveFullSegmentation

ImageUrl String http://viapi-test.oss-cn-shanghai.aliyuncs.com/viapi-3.0domepic/aigen/xxx01.png

输入的图像URL。推荐使用上海地域的OSS链接,对于文件在本地或者非上海地域OSS链接的情况,请参见文件URL处理。输入限制如下:

  • 图像格式:JPG、JPEG、PNG、BMP、WEBP。
  • 图像大小:不超过10 MB。
  • 输入图像:大于等于32x32像素,小于等于4096x4096像素。
  • URL地址中不能包含中文字符。
ReturnFormat String PNG

输出图像格式。支持JPG、PNG,默认为PNG。

返回数据

名称

类型

示例值

描述

RequestId String 7574ee8f-38a3-4b1e-9280-11c33ab46e51

请求ID。

Data Object

返回的结果数据内容。该数据需要在异步任务执行成功后,通过调用GetAsyncJobResult接口,对其Result字段进行JSON反序列化之后得到。

ResultUrl String https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/viapi-video/interactive_seg_wanx/2024-02-21/6013dba4-2ce3-4f00-a2e7-14b8d22e81a5/20240221_120038993181_wcmohvxj9a.txt?Expires=1708574441&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4****&Signature=GZuvrbw8F3GOv0ykq9al%2FFBdg8****

存放结果的txt文件的地址,包含如下信息:

  • output.region_index:索引图像,取值范围0~255。
  • output.region_info:由所有分割结果组成的列表,每个分割结果中的region值就是对应的分割图像,有效分割区域可视化为白色(像素值255),其他区域可视化为黑色(像素值0),index值为该分割结果的对应的索引值。
说明 该URL地址为临时地址,有效期为30分钟,过期后将无法访问。若需要长时间或者永久保存文件,请在30分钟内访问URL地址,下载文件转存到自己的OSS或者其他存储空间。
Message String 该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。

提交异步任务后的提示信息。

结果文件格式

分割的结果会以JSON字符串的形式存储在输出的文本文件中,对应的图像会以Base64的结构存储在对应的Base64字段中。

名称

类型

示例值

描述

output.region_info

List

[{"region": "data:image/png;base64,/9j/4AAQ........GBlPjwh//2Q==", "area": 178579,"index": 1}, ...]

所有输出mask的信息。region为mask的Base64编码,area为mask的面积, index为该mask的索引,index从1开始,0表示没有结果。

output.region_index

String

"data:image/png;base64,/9j/4AAQSkZJR........GBlPjwh//2Q=="

所有mask index的整合,值为0~255,输出为Base64编码。

bbox

Array of Integer

[303,0,21,14]

包含mask的bounding box的坐标,按照XYWH的顺序。

crop_box

Array of Integer

[0,0,585,390]

预测mask时用到的image切片的坐标,按照XYWH的顺序。

point_coords

Array of Integer

[310.78125,12.1875]

生成mask对应的预测点坐标。

predicted_iou

Float

0.9326171875

预测的置信度。

stability_score

Float

0.9660193920135498

mask质量的评估。

area

Long

204

mask所占的像素数,可以理解为面积。

结果文件示例

{ "output":{ "region_index":"<BASE64_CODE>", "region_info":[ { "area":204, "bbox":[303,0,21,14], "crop_box":[0,0,585,390], "index":1, "point_coords":[ [310.78125,12.1875] ], "predicted_iou":0.9326171875, "region":"<BASE64_CODE>", "stability_score":0.9660193920135498 }, ... ... ... ... { "area":1353, "bbox":Array[4], "crop_box":Array[4], "index":10, "point_coords":Array[1], "predicted_iou":0.94873046875, "region":"<BASE64_CODE>", "stability_score":0.9708878993988037 }, ] } }

返回值的可视化效果示例图如下:

  • 第一列为output.region_index的可视化结果,取值0~255,尺寸与原图一致,该返回值起索引作用,实际渲染时不会用到。
  • 第二列为output.region_info的部分mask的可视化结果示意,每个mask取值为0和255,尺寸与原图一致。output.region_info是由所有分割结果组成的列表,通过output.region_index与原图建立映射。

查询结果

该接口为异步接口,当前并未返回真实的请求结果,您需要通过返回的RequestId调用GetAsyncJobResult接口来获取该接口的真实请求结果。详情请参见GetAsyncJobResult

SDK参考

阿里云视觉AI创新专区类目下的交互式全图分割能力推荐使用SDK调用,支持多种编程语言,调用时请选择AI类目为创新专区(aigen)的SDK包,文件参数通过SDK调用可支持本地文件及任意URL,具体可参见SDK总览

示例代码

该能力常用语言的示例代码,请参见交互式全图分割示例代码

示例

请求示例

http(s)://aigen.cn-shanghai.aliyuncs.com/?Action=InteractiveFullSegmentation      //更多关于访问域名(Endpoint)信息,请参见:https://help.aliyun.com/document_detail/143103.html
&ImageUrl=http://viapi-test.oss-cn-shanghai.aliyuncs.com/viapi-3.0domepic/aigen/xxx01.png
&ReturnFormat=PNG
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<InteractiveFullSegmentationResponse>
    <RequestId>7574ee8f-38a3-4b1e-9280-11c33ab46e51</RequestId>
    <Message>该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。</Message>
</InteractiveFullSegmentationResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "RequestId" : "7574ee8f-38a3-4b1e-9280-11c33ab46e51",
  "Message" : "该调用为异步调用,任务已提交成功,请以requestId的值作为jobId参数调用同类目下GetAsyncJobResult接口查询任务执行状态和结果。"
}

返回示例补充说明

//查询结果:请求示例
http(s)://aigen.cn-shanghai.aliyuncs.com/?Action=GetAsyncJobResult
&JobId=7574ee8f-38a3-4b1e-9280-11c33ab46e51
&<公共请求参数>

//查询结果:返回示例
{
  "RequestId" : "43A0AEB6-45F4-4138-8E89-E1A5D63200E3",
  "Data" : {
    "Status" : "PROCESS_SUCCESS",
    "JobId" : "186AC396-0EEC-46F1-AAA1-BF3585227427",
    "Result" : "{\"ResultUrl\" : \"https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/viapi-video/interactive_seg_wanx/2024-02-21/6013dba4-2ce3-4f00-a2e7-14b8d22e81a5/20240221_120038993181_wcmohvxj9a.txt?Expires=1708574441&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4****&Signature=GZuvrbw8F3GOv0ykq9al%2FFBdg8****\"}"
  }
}

//Result反序列化
{
    "ResultUrl" : "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/viapi-video/interactive_seg_wanx/2024-02-21/6013dba4-2ce3-4f00-a2e7-14b8d22e81a5/20240221_120038993181_wcmohvxj9a.txt?Expires=1708574441&OSSAccessKeyId=LTAI5tQZd8AEcZX6KZV4****&Signature=GZuvrbw8F3GOv0ykq9al%2FFBdg8****"
}

错误码

关于交互式全图分割的错误码,具体请参见常见错误码

安全声明

  • 请确保上传的图片或文件来源符合相应的法律法规。
  • 通过体验调试上传的临时文件有效期为1小时,在24小时后会被系统自动清理删除。