文档

图像实例分割、人体分割

更新时间:

人物实例分割

说明

支持的领域 / 任务:aigc /人物实例分割

人物实例分割运用了检测和分割技术,不仅能够在图像中识别出不同的对象,而且还能准确地画出每一个对象边界的像素级掩码(mask)。

推荐配合使用图像擦除补全API详情接口来进行AI人体消除,选择完整人体mask区域来消除一个或多个人物。

输入内容&效果示意

示例输入

示例输出1:人物分割掩码图像

画面上同一值表示同一人物id

示例输出2:人物分割可视化结果

画面上同一颜色表示同一人物id

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

应用场景

  • 人像主体抠图:人体分割通过将摄影主体人物从背景中分割出来,将背景虚化,以达到大光圈浅景深效果,突出人物主体。

  • 证件照制作:上传或拍摄一张多人生活照,可将人物精细地分割出来,再搭配擦除补全处理能力,最终制作出单人证件照。

  • 营销广告制作:在广告制作中,需要将产品图片与特定场景或人物分割,分离原始图片中可能包含不需要的前景或背景元素。

特色优势

  • 适应复杂背景:即使人物处于复杂背景环境,依然可以将人体准确地从背景中分割出来。

  • 企业级平台服务提供在高并发、大流量下的稳定写真图片生成响应,可直接调用的简单推理API接口。

模型概览

模型名

模型简介

image-instance-segmentation

人物实例分割运用了检测和分割技术,不仅能够在图像中识别出不同的对象,而且还能准确地画出每一个对象边界的像素级掩码(mask)。

输入限制

图像输入限制:

  • 图片分辨率:可支持输入分辨率范围:单边不小于512且不超过4096。

  • 图片格式:JPEG,PNG,JPG,BMP,WEBP。

  • 图片大小:不超过10M。

  • URL地址中不能包含中文字符。

HTTP调用接口

功能描述

本模型需要相对较长的算法调用时间,所以在接口层面采用了异步调用的方式进行任务提交,在通过任务接口提交作业之后,系统会返回对应的作业ID,随后可以通过对应的异步作业查询接口获取任务的状态并且在作业到达最终完成态后取回对应的作业结果。

前提条件

说明

接口限制:对单账户(含主账号与RAM子账号)任务下发接口限制QPS为2,并发任务数量限制为1。

作业提交接口调用

POST https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis

入参描述

传参方式

字段

类型

必选

描述

示例值

Header

Content-Type

String

请求类型:application/json

application/json

Authorization

String

API-Key,例如:Bearer d1**2a

Bearer d1**2a

X-DashScope-Async

String

固定使用 enable,表明使用异步方式提交作业。

enable

Body

model

String

指明需要调用的模型。

image-instance-segmentation

input.image_url

String

输入图像url地址,图片格式JPG/JPEG、PNG、HEIF、WEBP,

输入图像分辨率不低于512*512且不超过4096*4096,单边范围为512-4096。

例如:http://xxx/image.png

出参描述

字段

类型

描述

示例值

output.task_id

String

本次请求的异步任务的作业 id,实际作业结果需要通过异步任务查询接口获取。

13b1848b-5493-4c0e-8c44-68d038b492af

output.task_status

String

提交异步任务后的作业状态。

PENDING

request_id

String

本次请求的系统唯一码

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

请求示例

以下示例展示通过CURL命令来调用本模型的脚本。

说明

需要使用您的API-KEY替换示例中的 YOUR-DASHSCOPE-API-KEY,代码才能正常运行。

curl --location --request POST 'https://dashscope.aliyuncs.com/api/v1/services/aigc/image2image/image-synthesis' \
--header 'X-DashScope-Async: enable' \
--header 'Authorization: Bearer YOUR-DASHSCOPE-API-KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
    "model": "image-instance-segmentation",
    "input": {
            "image_url": "http://xxx/image.png"
        },
    "parameters":{
    }
}'

响应示例

{
    "output": {
        "task_status": "PENDING",
        "task_id": "53950fb7-281a-4e60-b543-818c4100ac9e"
    },
    "request_id": "1027557e-8c3f-9db5-8cd2-cfa42ee161dc"
}

异常响应示例

在提交作业请求出错的情况下,输出的结果中会通过 code 和 message 指明出错原因

{
    "code":"InvalidApiKey",
    "message":"Invalid API-key provided.",
    "request_id":"fb53c4ec-1c12-4fc4-a580-cdb7c3261fc1"
}

作业任务状态查询和结果获取接口

GET https://dashscope.aliyuncs.com/api/v1/tasks/task_id

入参描述

传参方式

字段

类型

必选

描述

示例值

Url Path

task_id

String

需要查询作业的 task_id

13b1848b-5493-4c0e-8c44-68d038b492af

Header

Authorization

String

API-Key,例如:Bearer d1**2a

Bearer d1**2a

出参描述

字段

类型

描述

示例值

status_code

Int

200(HTTPStatus.OK)表示请求成功,否则表示请求失败,可以通过code获取错误码,通过message字段获取错误详细信息。

200

request_id

string

系统对一次API调用赋予的唯一标识。当排查问题的时候,开发者可以将 request_id 进行反馈以定位某次调用。

e5d70b02-ebd3-98ce-9fe8-759d7d7b107d

code

string

如果失败表示错误码,参考错误码表。

Invalid Image Url

message

string

如果失败,内容为失败详细信息。

image download error

usage.image_count

Int

生成图像的数量

1

output.output_image_url

String

分割后图像url地址,限制输出图像长宽比范围为1:10-10:1。

http://xxx/result-1000006-419114.jpg

output.output_vis_image_url

String

分割后可视化图像url地址,限制输出图像长宽比范围为1:10-10:1。

http://xxx/result-1000006-419224.jpg

output.task_status

String

任务执行是否成功,SUCCEEDED或者FAILED

SUCCEEDED

请求示例

以下示例展示通过CURL命令来调用本模型的脚本

说明

需要使用您的API-KEY替换示例中的YOUR-DASHSCOPE-API-KEY,代码才能正常运行。

curl -X GET \
--header 'Authorization: Bearer <YOUR-DASHSCOPE-API-KEY>' \
https://dashscope.aliyuncs.com/api/v1/tasks/86ecf553-d340-4e21-af6e-a0c6a421c010

响应示例(作业执行中)

作业提交后将处于排队状态,在得到调度之后将转为运行状态,此时作业的状态为RUNNING,task_metrics将给出具体batch状态;

{
    "request_id":"7574ee8f-38a3-4b1e-9280-11c33ab46e51",
    "output":{
        "task_id":"86ecf553-d340-4e21-af6e-a0c6a421c010",
        "task_status":"RUNNING",
        "task_metrics":{
            "TOTAL":1,
            "SUCCEEDED":1,
            "FAILED":0
        }
    }
}

响应示例(作业成功执行完毕)

如果作业执行完成并成功之后,再次查询作业状态,接口将在告知作业状态的同时,一并将作业的结果返回。对于本模型,作业在结束之后的状态会持续保留24小时以备客户随时查询,24小时之后,作业将从系统中清除,相关的结果也将一并清除;对应的,作业生成的结果为图像的URL地址,出于安全考虑,该URL的下载有效期也是24小时,需要用户在获取作业结果后根据需要及时使用或者转存。

{
    "request_id": "b67df059-ca6a-9d51-afcd-9b3c4456b1e2",
    "output": {
        "task_id": "d76ec1e8-ea27-4038-8913-235c88ef0f70",
        "task_status": "SUCCEEDED",
        "submit_time": "2024-05-16 13:50:01.247",
        "scheduled_time": "2024-05-16 13:50:01.354",
        "end_time": "2024-05-16 13:50:27.795",
        "output_image_url": "http://xxx/result1.png",
        "output_vis_image_url":"http://xxx/result2.png"
    },
    "usage": {
        "image_count": 1
    }
}

响应示例(作业成功执行失败)

{
    "request_id": "dccfdf23-b38e-97a6-a07b-f35118c1ada6",
    "output": {
        "task_id": "4cbabbdf-2c1f-43f4-b983-c2cc47f4c115",
        "task_status": "FAILED",
        "submit_time": "2024-05-16 14:15:14.103",
        "scheduled_time": "2024-05-16 14:15:14.154",
        "end_time": "2024-05-16 14:15:14.694",
        "code": "InvalidParameter.FileDownload",
        "message": "download for input_image error"
    }
}

响应示例(作业失败)

如果因为某种原因作业失败,则作业状态会设置为FAILED,并且通过code和message字段指明错误原因。

{
    "request_id": "7574ee8f-38a3-4b1e-9280-11c33ab46e51"
  	"output": {
      "task_id": "a8532587-fa8c-4ef8-82be-0c46b17950d1", 
    	"task_status": "Failed",
    	"code": "xxx", 
    	"message": "xxxxxx", 
    }  
}

状态码说明

DashScope灵积模型服务通用状态码请查阅:返回状态码说明

同时本模型还有如下特定错误码:

http 返回码

错误码(code)

错误信息(message)

含义说明

400

InvalidParameter.JsonPhrase

input json error

输入json错误

400

InvalidParameter.FileDownload

oss download error

输入图像下载失败

400

InvalidParameter.ImageFormat

read image error

读取图像失败

400

InvalidParameter.ImageContent

The image content does not comply with green network verification.

图像内容不合规

400

InvalidParameter

the parameters must conform to the specification: xxx

输入参数超出范围

500

InternalError.Algo

algorithm process error

算法错误

500

InternalError.FileUpload

oss upload error

文件上传失败