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

人像分割-证件照版(邀测)

接口描述

针对自拍类单人图片,先基于人脸检测、人体关键点定位,裁剪出符合证件照场景的人像图片(头肩上半身),对裁剪后的图片进行发丝级精细化分割;接口返回裁剪后的原图、分割结果灰度图、合成的黑底效果图,并输出人脸框坐标、关键点坐标、人像姿态(正脸/侧脸/正肩/侧肩等)等辅助信息,便于筛选结果、二次开发。

注:邀测的接口,暂未封装服务端SDK,只能通过API调用。

分割效果示意图:

infoflow_2020-5-14_21-6-34.jpg


请求说明

请求示例

HTTP 方法:POST

请求URL: https://aip.baidubce.com/rest/2.0/image-classify/v1/body_seg_photo

URL参数:

参数
access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

Header如下:

参数
Content-Type application/x-www-form-urlencoded

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

请求参数

参数 是否必选 类型 说明
image string 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M。图片的base64编码不包含图片头,如(data:image/jpg;base64,),支持图片格式:jpg、bmp、png,最短边至少50px,最长边最大4096px。
异常情况:当图片中的人体数目>=2时,或人像处于倒立状态,会报错

返回说明

返回参数

字段 是否必选 类型 说明
log_id unit64 请求唯一的log id,用于问题定位
seg_info object 人像精细化分割结果
+scoremap string 分割后人像前景灰度图,归一到0-255,不用进行二次处理,直接解码保存图片即可。Base64编码后的灰度图文件
+demo string 合成的证件照效果图(黑底)
+cut string 按照证件照头肩比例裁剪后的原图
face_location object 人脸框位置信息
+height int32 人脸框的高度
+left int32 人脸框离左边界的距离
+top int32 人脸框离上边界的距离
+width int32 人脸框的宽度
+score float 人脸框的置信度分数,取值0-1
pose_info object 人体姿态信息,关键点的坐标
+facepose int32 人脸姿态,一共5种类别,1:水平正脸,2:倾斜正脸,3:水平侧脸,4:倾斜侧脸, -1:未知姿态
+bodypose int32 肩膀姿态,一共7种类别,1:水平正肩,2:水平微侧肩,3:水平侧肩,4:倾斜正肩,5:倾斜微侧肩,6:倾斜侧肩, -1:未知姿态
+body_parts object[] 人体关键点坐标信息,包含头肩部位的9个关键点
++left_ear object 左耳
+++x int32 x坐标
+++y int32 y坐标
+++score float 关键点置信度分数,取值0-1
++right_ear object 右耳
+++x int32 x坐标
+++y int32 y坐标
+++score float 关键点置信度分数,取值0-1
++left_eye object 左眼
+++x int32 x坐标
+++y int32 y坐标
+++score float 关键点置信度分数,取值0-1
++right_eye object 右眼
+++x int32 x坐标
+++y int32 y坐标
+++score float 关键点置信度分数,取值0-1
++++nose_tip object 鼻尖
+++x int32 x坐标
+++y int32 y坐标
+++score float 关键点置信度分数,取值0-1
++left_mouth object 左嘴角
+++x int32 x坐标
+++y int32 y坐标
+++score float 关键点置信度分数,取值0-1
++right_mouth object 右嘴角
+++x int32 x坐标
+++y int32 y坐标
+++score float 关键点置信度分数,取值0-1
++left_shoulder object 左肩
+++x int32 x坐标
+++y int32 y坐标
+++score float 关键点置信度分数,取值0-1
++right_shoulder object 右肩
+++x int32 x坐标
+++y int32 y坐标
+++score float 关键点置信度分数,取值0-1
++neck object 脖子
+++x int32 x坐标
+++y int32 y坐标
+++score float 关键点置信度分数,取值0-1

返回示例

{
    log_id:	123,
    seg_info:{
        cut:"xxxx"	
        scoremap:"xxxx"	
        demo:"xxxx"	
    },
    face_location:{
        score:0.9999945,
        top:116,
        left:80,
        width:173,
        height:226
    },	
    pose_info:{
        body_parts:[
        {	
            left_ear:{
                score:0.8760631,
                x:80,
                y:202
            }	
        },
        {
            right_ear:{
                score:0.64241165,
                x:252,
                y:206
            }
         },
         {
            left_eye:{
                score:0.95858794,
                x:125,
                y:214
            }
         },
         {	
            right_eye:{
                score:0.9648065,
                x:199,
                y:216
            }
         },
         {
            nose_tip:{
                score:0.88654065,
                x:160,
                y:265
            }
         },
         {
            left_mouth:{
                score:0.92905945,
                x:135,
                y:300
            }
         },
         {
            right_mouth:{
                score:0.96665746,
                x:189,
                y:301
            }
         },
         {
            right_shoulder:{
                score:	0.25711855,
                x:344,
                y:432
            }
         },
         {
            left_shoulder:{
                score:0.4777191,
                x:10,
                y:431
            }
         },
         {
            neck:{
                score:0.7303297,
                x:173,
                y:369
            }
         }
         ],
     facepose:1,
     bodypose:2
    }	
}		
上一篇
Java SDK文档