人像属性检测

本接口用于证件照制作前检测人像是否符合制作标准


接口鉴权

见:开放API对接文档

接口地址

【POST】https://open-api.gaoding.com/api/call/portraitdetection


请求头(request header)

字段

类型

是否必填

字段描述

app_id

string

应用ID,获取方式:应用列表 -> 应用详情 -> APP ID


请求体(request body)

字段

类型

是否必填

字段描述

url

string

二个必填一个

原图url,支持JPG、PNG格式

仅保留1个月,请及时转储

(无文件大小限制)

file_base64

string

原图的base64码

(最大支持3M文件)

请求体示例(url):

{
   "url":"https://matting-batch.dancf.com/cloths/20220825_173220_gaoding_imagematting_humanhead.jpg"
}

请求体示例(base64):

{
   "file_base64":"图片的base64编码"
}


响应体(response body)

字段

类型

是否必存在

字段描述

图例

attribute

object

人像的属性参数

attribute.face_point

string

提供68个人脸关键点信息

68个人脸关键点顺序拼装,拼装规则是“x y,”,x与y通过空格分隔,点以逗号分隔

attribute.wear_glasses

int

检测人物是否存在佩戴眼镜问题

0-否, 1-是

attribute.wear_hat

int

检测人物是否存在佩戴帽子问题

0-否, 1-是

attribute.wear_jewelry

int

检测人物是否存在佩戴首饰问题

0-否, 1-是

attribute.face_count

int

检测人脸个数

attribute.direction

int

检测人脸主方向

返回值:逆时针,0/90/180/270度

attribute.face_rect

str

检测脸部大小使用

脸部框' x1 y1 x2 y2,' 返回的是绝对值

比如:

'127 123 456 655,' 左上角坐标点为x:127, y123,右下角坐标 x:456, y:655

返回值之间以空格隔开,最后存在逗号

attribute.face_ratio

int

检测脸部是否存在占整个图片过小或过大问题

0 正常,1-过小,2-过大

attribute.integrated_head

int

检测人物头部是否存在不完整问题

0 完整,1 不完整

attribute.integrated_face

int

检测人物是否存在人脸不完整问题

0 完整,1 不完整

attribute.is_gray

int

检测照片是否存在黑白照问题

0 否,1 是

attribute.definition

int

检测人脸是否存在模糊问题

0 清晰,1 模糊,-1 异常

attribute.face_yinyang

int

检测人脸是否存在阴阳脸问题

0 否,1 是,-1 异常

attribute.face_bright

int

检测脸部亮度值是否正常

0 正常,1 过亮,2 过暗,-1 异常

attribute.face_contrast

int

检测脸部对比度是否正常

0 正常,1 过高,2 过低,-1 异常

attribute.skew_angle

int

检测脸部是否存在歪斜问题

0 正常,1 右斜,2 左斜,-1 异常

attribute.side_face

int

检测脸部是否存在左右转头问题

0 正常,1 右转,2 左转,-1 异常

attribute.up_down_face

int

检测脸部抬头低头问题

0 正常,1 上转,2 下转,-1 异常

attribute.brow_occulation

int

检测眉毛是否存在被遮挡问题

0 无遮挡,1 有遮挡,-1 异常

attribute.eye_occulation

int

检测眼睛是否存在被遮挡问题

0 无遮挡,1 有遮挡,-1 异常

attribute.mouth_occulation

int

检测嘴巴是否存在被遮挡问题

0 无遮挡,1 有遮挡,-1 异常

attribute.cheek_occulation

int

检测脸颊是否存在被遮挡问题

0 无遮挡,1 有遮挡,-1 异常

attribute.ear_visible

int

检测双耳朵是否同时可见

0 可见,1-不可见,-1 异常

attribute.eye_closed

int

检测眼睛是否被存在闭眼问题

0-闭眼,1-睁眼,-1 异常

attribute.mouth_closed

int

检测嘴巴状态

0-闭嘴巴,1-开嘴巴,-1 异常

attribute.top_margin

float

检测人物头顶到上边界距离占整体照片高度的百分比

比如:百分比=0.12

则:

height:整张图片高度

距离=0.12 * height

-1 异常

attribute.bottom_margin

float

检测人物下巴到下边界距离占整体照片高度的绝对值

比如:128

-1 异常

attribute.left_margin

float

检测人物右脸颊到左边界距离占整体照片高度的百分比

比如:128

-1 异常

attribute.right_margin

float

检测人物右脸颊到左边界距离占整体照片高度的百分比

比如:128

-1 异常

attribute.upper_part_of_body

int

检测人物上半身是否完整

0 完整,1 不完整,-1 异常

attribute.integrated_shoulder

int

检测肩膀是否完整

0 完整,1 不完整,-1 异常

attribute.parallel_shoulder

int

检测肩膀是否存在肩膀不齐平问题

0正常,1高低肩,-1 异常

attribute.forehead_occulation

int

检测额头是否存在被遮挡问题

0未遮挡,1遮挡,-1异常

attribute.hand_over_shoulder

int

检测手部是否存在超过肩膀问题

0:否,1:是,-1:异常

需要肩膀可见,否则为-1

attribute.cloth_color_depth

int

判断衣服颜色深浅

-1:没有衣服,0:浅色,1:深色

attribute.watermark

int

判断图片是否存在水印问题

目前仅支持重复次数超过4次水印进行检测

0:否,1:是,-1:异常

attribute.bare_shouldered

int

光膀检测

0:光膀,1:非光膀,-1:异常

attribute.face_mask

int

佩戴口罩检测

0:未佩戴,1:佩戴,-1:异常




响应示例1(模拟正常请求):

http_status:200

response body:

{
  "uuid": "fcd9184d-9bf6-4459-b1d0-fa60a7970c70",
  "code": 0,
  "message": "success",
  "attribute": {
    "face_count": 1,
    "face_point": "332 415,334 474,342 525,349 575,367 624,396 665,432 705,474 731,517 741,567 736,613 706,650 670,680 627,699 579,708 526,716 470,718 417,362 377,389 358,418 353,451 359,486 375,551 374,585 358,623 352,654 357,679 378,517 416,518 450,517 486,516 521,481 543,498 553,518 558,536 552,556 548,402 415,421 401,446 404,469 422,444 429,421 426,573 423,594 404,618 405,641 418,621 429,595 427,446 612,471 600,499 593,519 598,535 594,563 598,593 611,564 633,536 645,518 643,495 644,470 634,458 613,497 612,517 614,536 614,577 613,538 616,517 616,498 617,",
    "direction": 0,
    "integrated_head": 0,
    "integrated_face": 0,
    "definition": 0,
    "face_ratio": 0,
    "skew_angle": 0,
    "side_face": 0,
    "up_down_face": 0,
    "is_gray": 0,
    "brow_occulation": 0,
    "eye_occulation": 0,
    "mouth_occulation": 0,
    "cheek_occulation": 0,
    "forehead_occulation": 0,
    "ear_visible": 0,
    "face_rect": "337 262 712 733,",
    "face_bright": 0,
    "face_contrast": 1,
    "eye_closed": 1,
    "mouth_closed": 0,
    "top_margin": 69,
    "bottom_margin": 470,
    "left_margin": 337,
    "right_margin": 355,
    "upper_part_of_body": 1,
    "parallel_shoulder": 0,
    "integrated_shoulder": 0,
    "face_yinyang": 0,
    "wear_hat": 0,
    "wear_glasses": 0,
    "wear_jewelry": 0,
    "hand_over_shoulder": 0,
    "cloth_color_depth": 1,
    "watermark": 0
  }
}


响应示例2(模拟参数非法请求):

http_status:400

response body:

{
    "code": -10003,
    "message": "InvalidArgsError"
}



错误码

HTTP状态码

业务错误码

含义

400

-10003

参数非法

400

-10024

通过指定的upload_address 上传的的时候失败

400

-10001

下载失败,可能是用户传的url非法,或者网络异常等原因导致下载失败

400

-10002

解码图片失败,可能是某些格式比较特殊的图片暂时还不支持,或者图片url下载下来根本不是图像数据

400

-10007

图片数据过大,无法处理

500

服务器错误

422

接口入参错误