头像抠图

产品简介

利用人工智能技术全自动分割出照片中的头像,分割精度高,准确率高,速度快。 发丝级抠图,对脸部、头发进行细粒度分析,实现发丝级的精细化分割效果。不论发型是披肩发,还是丸子头,都可以完整分割。非常适合在图像合成的场景中应用,比如:照片换头,POD个性化定制、大头照、手机壳卡通头像、制作专属表情包等。 识别图像中的人体轮廓,与背景进行分离,返回分割后的Alpha图、前景人像图,适应多个人体,复杂背景,人体位置重叠、遮挡、背面、侧面等各类人体姿态,各种服装、发饰、帽子、眼镜、鞋包等衣着配饰。

快速入门

获取API Key

点击获取,您的专属API Key

简单调用示例

使用http协议Post传图片方式,调用人物抠图API

注意:Content-Type为"multipart/form-data"

curl -H 'APIKEY: INSERT_YOUR_API_KEY_HERE' \
     -F 'file=@/home/roy/images/1.jpg'     \
     -f http://www.picup.shop/api/v1/matting?mattingType=3 \
     -o out.png

场景方案

POD(Print on demand)个性化定制

获取人物头像,可以做大头照、摇头晃脑GIF、卡通身体、情侣抠图

电商模特换头

模特换头像,电商拍摄图片后可以根据不同的售卖对象和区域,换不同的人物头像,免除重复拍摄的成本

产品定价

您可以通过在线充值付费方式,购买API调用次数。

查看价格列表

注意:API每次成功调用,消耗1点。部分高级API,消耗2点或更多,文档会有额外的说明

API说明文档

头像抠图API

接口描述

用户向服务请求获取某张图中的人物头像,服务器返回人物头像的PNG图片。

请求说明

  • 请求URL:http://www.picup.shop/api/v1/matting?mattingType=3
  • 请求方式:POST
  • 返回类型:PNG图像
  • 输入参数:

1) 请求参数(Header)

参数
Content-Type multipart/form-data
APIKEY 您的专属API Key

2) 请求参数(Body)

参数 必填
file 图片文件
crop 是否裁剪至最小非透明区域,url参数,加在url后面,false不裁剪,true裁剪,不填写不裁剪

示例代码

更多语言示例

shell
curl -H 'APIKEY: INSERT_YOUR_API_KEY_HERE' \
     -F 'file=@/path/to/file.jpg'     \
     -f http://www.picup.shop/api/v1/matting?mattingType=3&crop=true \ 
     -o out.png
python
import requests
response = requests.post(
    'http://www.picup.shop/api/v1/matting?mattingType=3', 
    files={'file': open('/path/to/file.jpg', 'rb')},
    headers={'APIKEY': 'INSERT_YOUR_API_KEY_HERE'},
)
with open('out.png', 'wb') as out:
    out.write(response.content)
PHP
$client = new GuzzleHttp\Client();
$res = $client->post('http://www.picup.shop/api/v1/matting?mattingType=3, [
    'multipart' => [
        [
            'name'     => 'file',
            'contents' => fopen('/path/to/file.jpg', 'r')
        ]
    ],
    'headers' => [
        'APIKEY' => 'INSERT_YOUR_API_KEY_HERE'
    ]
]);

$fp = fopen("out.png", "wb");
fwrite($fp, $res->getBody());
fclose($fp);
Java (springboot)
@Autowired
private RestTemplate restTemplate;
        FileSystemResource resource = new FileSystemResource(new File("/path/to/file.jpg"));
        MultipartBodyBuilder builder = new MultipartBodyBuilder();
        builder.part("file",resource,MediaType.IMAGE_JPEG);
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.MULTIPART_FORM_DATA);
        headers.add("APIKEY","INSERT_YOUR_API_KEY_HERE");
        HttpEntity<MultiValueMap> request= new HttpEntity(builder.build(),headers);
        Resource entity = restTemplate.postForObject("http://www.picup.shop/api/v1/matting?mattingType=3", request, Resource.class);
        FileCopyUtils.copy(entity.getInputStream(), new FileOutputStream("/path/to/saveresult.png"));
//todo: your logic to deal with entity

返回说明

  • 正常返回

直接返回content-type为image/png,图片处理后的二进制文件。

  • 错误返回application/json格式的字符串 返回示例

点击查看错误码列表

{
  "code": 1001, //
  "data": null
  "msg": '余额不足',
  "time": 1590462453264
}

请求限制

当前api QPS限制为 1次/秒

头像抠图返回base64 API

接口描述

用户向服务请求获取某张图中的人物头像,服务器返回用base64编码过的人物头像图片。

请求说明

  • 请求URL:http://www.picup.shop/api/v1/matting2?mattingType=3
  • 请求方式:POST
  • 返回类型:PNG图像
  • 输入参数:

1) 请求参数(Header)

参数
Content-Type multipart/form-data
APIKEY 您的专属API Key

2) 请求参数(Body)

参数 必填
file 图片文件
crop 是否裁剪至最小非透明区域,url参数,加在url后面,false不裁剪,true裁剪,不填写不裁剪

示例代码

更多语言示例

shell
curl -H 'APIKEY: INSERT_YOUR_API_KEY_HERE' \
     -F 'file=@/path/to/file.jpg'     \
     -f http://www.picup.shop/api/v1/matting2?mattingType=3&crop=true
python
import requests
response = requests.post(
    'http://www.picup.shop/api/v1/matting2?mattingType=3', 
    files={'file': open('/path/to/file.jpg', 'rb')},
    headers={'APIKEY': 'INSERT_YOUR_API_KEY_HERE'},
)
PHP
$client = new GuzzleHttp\Client();
$res = $client->post('http://www.picup.shop/api/v1/matting2?mattingType=3, [
    'multipart' => [
        [
            'name'     => 'file',
            'contents' => fopen('/path/to/file.jpg', 'r')
        ]
    ],
    'headers' => [
        'APIKEY' => 'INSERT_YOUR_API_KEY_HERE'
    ]
]);
Java (springboot)
@Autowired
private RestTemplate restTemplate;
        FileSystemResource resource = new FileSystemResource(new File("/path/to/file.jpg"));
        MultipartBodyBuilder builder = new MultipartBodyBuilder();
        builder.part("file",resource,MediaType.IMAGE_JPEG);
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.MULTIPART_FORM_DATA);
        headers.add("APIKEY","INSERT_YOUR_API_KEY_HERE");
        HttpEntity<MultiValueMap> request= new HttpEntity(builder.build(),headers);
        Resource entity = restTemplate.postForObject("http://www.picup.shop/api/v1/matting2?mattingType=3", request, Resource.class);
//todo: your logic to deal with entity

返回说明

  • 返回参数
参数
file base64的图片
  • 正常返回示例

    {
    "code": 0,
    "data": {
      "imageBase64": "iVBORw0KGgo..." //返回图像的base64编码
    },
    "msg": null,
    "time": 1590462453264
    }
    
  • 失败返回示例

    {
    "code": 1001,
    "data": null
    "msg": '余额不足',
    "time": 1590462453264
    }
    

点击查看错误码列表

请求限制

当前api QPS限制为 1次/秒

头像抠图API通过图片url返回base64结果

接口描述

用户向服务请求获取某张图中的人物,服务器返回人物通过base64编码后的结果。

请求说明

  • 请求URL:http://www.picup.shop/api/v1/mattingByUrl
  • 请求方式:GET
  • 返回类型:application/json
  • 输入参数:

1) 请求参数(Header)

参数 参数类型 描述
APIKEY string 您的专属API Key

2) URL参数

参数 必填
mattingType 抠图类型,1:人像,2:物体,3:头像,4:一键美化,6:通用抠图
crop 是否裁剪至最小非透明区域,url参数,加在url后面,false不裁剪,true裁剪,不填写不裁剪
url 图片的url地址
shell
curl -X GET --header 'Accept: application/json' --header 'APIKEY: INSERT_YOUR_API_KEY_HERE' 'http://www.picup.shop/api/v1/mattingByUrl?url=http%3A%2F%2Fdeeplor.oss-cn-hangzhou.aliyuncs.com%2Fupload%2Fimage%2F20200721%2F6ed6a205f75d4f4c88fb403700712191.jpg&mattingType=3'

返回说明

  • 正常返回示例

    {
    "code": 0,
    "data": {
      "imageBase64": "iVBORw0KGgo..." //返回图像的base64编码
    },
    "msg": null,
    "time": 1590462453264
    }
    
  • 失败返回示例

    {
    "code": 1001,
    "data": null
    "msg": '余额不足',
    "time": 1590462453264
    }
    

点击查看错误码列表

头像抠图带人脸关键点检测API

接口描述

用户向服务请求获取某张图中的人物头像,服务器返回人物头像的PNG图片。

注意事项: 头像抠图带人脸关键点检测API,每次成功调用,消耗2点

请求说明

  • 请求URL:http://www.picup.shop/api/v1/mattingAndAnalysis?mattingType=3
  • 请求方式:POST
  • 返回类型:PNG图像
  • 输入参数:

1) 请求参数(Header)

参数
Content-Type multipart/form-data
APIKEY 您的专属API Key

2) 请求参数(Body)

参数
file 图片文件

示例代码

更多语言示例

shell
curl -H 'APIKEY: INSERT_YOUR_API_KEY_HERE' \
     -F 'file=@/path/to/file.jpg'     \
     -f http://www.picup.shop/api/v1/mattingAndAnalysis?mattingType=3
python
import requests
response = requests.post(
    'http://www.picup.shop/api/v1/mattingAndAnalysis?mattingType=3', 
    files={'file': open('/path/to/file.jpg', 'rb')},
    headers={'APIKEY': 'INSERT_YOUR_API_KEY_HERE'},
)
PHP
$client = new GuzzleHttp\Client();
$res = $client->post('http://www.picup.shop/api/v1/mattingAndAnalysis?mattingType=3, [
    'multipart' => [
        [
            'name'     => 'file',
            'contents' => fopen('/path/to/file.jpg', 'r')
        ]
    ],
    'headers' => [
        'APIKEY' => 'INSERT_YOUR_API_KEY_HERE'
    ]
]);
Java (springboot)
@Autowired
private RestTemplate restTemplate;
        FileSystemResource resource = new FileSystemResource(new File("/path/to/file.jpg"));
        MultipartBodyBuilder builder = new MultipartBodyBuilder();
        builder.part("file",resource,MediaType.IMAGE_JPEG);
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.MULTIPART_FORM_DATA);
        headers.add("APIKEY","INSERT_YOUR_API_KEY_HERE");
        HttpEntity<MultiValueMap> request= new HttpEntity(builder.build(),headers);
        Resource entity = restTemplate.postForObject("http://www.picup.shop/api/v1/mattingAndAnalysis?mattingType=3", request, Resource.class);
//todo: your logic to deal with entity

返回说明

  • 返回参数
参数
file base64的图片
  • 正常返回示例

    {
    "code": 0,
    "data": {
      "bodyAnalysis": {
        "person_num": 1,
        "person_info": [
          {
            "body_parts": {
              "nose": {
                "score": 0.8660686612129211,
                "x": 412.3896484375,
                "y": 561.4482421875
              },
              "right_knee": {
                "score": 0.01442314125597477,
                "x": 17.32133102416992,
                "y": 886.2821655273438
              },
              "left_hip": {
                "score": 0.009665120393037796,
                "x": 614.3134765625,
                "y": 938.9579467773438
              },
              "right_ankle": {
                "score": 0.03026463463902473,
                "x": 236.8037261962891,
                "y": 219.0556945800781
              },
              "right_wrist": {
                "score": 0.01779431663453579,
                "x": 508.9619140625,
                "y": 886.2821655273438
              },
              "left_eye": {
                "score": 0.9130444526672363,
                "x": 482.6240234375,
                "y": 473.6552734375
              },
              "left_mouth_corner": {
                "score": 0.9254156351089478,
                "x": 465.0654296875,
                "y": 640.4619140625
              },
              "right_elbow": {
                "score": 0.01819564774632454,
                "x": 87.55570220947266,
                "y": 982.8544311523438
              },
              "left_knee": {
                "score": 0.01042814832180738,
                "x": 456.2861328125,
                "y": 851.1649780273438
              },
              "top_head": {
                "score": 0.7447214722633362,
                "x": 412.3896484375,
                "y": 210.2763977050781
              },
              "neck": {
                "score": 0.6731900572776794,
                "x": 412.3896484375,
                "y": 780.9306640625
              },
              "right_ear": {
                "score": 0.7654330730438232,
                "x": 236.8037261962891,
                "y": 508.7724609375
              },
              "left_ear": {
                "score": 0.8558862209320068,
                "x": 587.9755859375,
                "y": 508.7724609375
              },
              "left_elbow": {
                "score": 0.01618397794663906,
                "x": 710.8856811523438,
                "y": 974.0751342773438
              },
              "right_shoulder": {
                "score": 0.6207593679428101,
                "x": 87.55570220947266,
                "y": 938.9579467773438
              },
              "right_mouth_corner": {
                "score": 0.8675473928451538,
                "x": 359.7138671875,
                "y": 640.4619140625
              },
              "right_eye": {
                "score": 0.8876979947090149,
                "x": 333.3759765625,
                "y": 473.6552734375
              },
              "left_ankle": {
                "score": 0.03122206591069698,
                "x": 473.8447265625,
                "y": 175.1592254638672
              },
              "right_hip": {
                "score": 0.02740604802966118,
                "x": 228.0244293212891,
                "y": 938.9579467773438
              },
              "left_wrist": {
                "score": 0.1582540422677994,
                "x": 596.7548828125,
                "y": 921.3993530273438
              },
              "left_shoulder": {
                "score": 0.6076900362968445,
                "x": 728.4442749023438,
                "y": 956.5165405273438
              }
            },
            "location": {
              "score": 0.9639571309089661,
              "top": 90.00729370117188,
              "left": 28.97457695007324,
              "width": 759.0764770507812,
              "height": 898.99267578125
            }
          }
        ]
      },
      "imageBase64": "iVBORw0KGgo..." //返回图像的base64编码
    },
    "msg": null,
    "time": 1590462453264
    }
    
  • 失败返回示例

    {
    "code": 1001,
    "data": null
    "msg": '余额不足',
    "time": 1590462453264
    }
    

点击查看错误码列表

请求限制

当前api QPS限制为 1次/秒

常见问题

  • Q:输入的图片格式有什么要求?
  • A:支持PNG、JPG、JPEG、BMP、GIF

  • Q:支持图片大小有限制吗?

  • A:目前上传的分辨率最高4096x4096像素,图片文件大小15MB以下

  • Q:支持批量抠图吗?

  • A:登录后,就可以批量上传。帮你节省更多时间。别忘了,在缩略图下方,还有批量打包下载的按钮哦。

results matching ""

    No results matching ""