请求URL:https://www.shiliuai.com/api/id_photo/v1/qualify
请求方式:POST
请求参数-请求头(Header):
参数 | 类型 | 说明 |
---|---|---|
Content-Type | string | application/json |
APIKEY | string | 您的API KEY |
请求参数-请求内容(Body):
分类 | 参数 | 类型 | 说明 |
---|---|---|---|
图片 | |||
base64 | string, required | base64编码的图片文件(小于15M),需要传入base64或者id | |
id | string, required | 图片id,对于已经请求过的图片,如果需要改变水印,尺寸,颜色等参数,使用id而无需再上传base64 | |
人脸尺寸 | |||
faceWidth | int, optional | 人脸宽度(像素) | |
minFaceWidth | int, optional | 最小人脸宽度(像素) | |
maxFaceWidth | int, optional | 最大人脸宽度(像素) | |
faceHeight | int, optional | 人脸长度(像素) | |
minFaceHeight | int, optional | 最小人脸长度(像素) | |
maxFaceHeight | int, optional | 最大人脸长度(像素) | |
headTop | int, optional | 头顶与上边距离(像素) | |
minHeadTop | int, optional | 头顶与上边最小距离(像素) | |
maxHeadTop | int, optional | 头顶与上边最大距离(像素) | |
eyesTop | int, optional | 眼睛与上边距离(像素) | |
minEyesTop | int, optional | 眼睛与上边最小距离(像素) | |
maxEyesTop | int, optional | 眼睛与上边最大距离(像素) | |
合规检测 | |||
qualify | int, optional | 0或1,是否返回普通合规信息,默认为1 | |
advancedQualify | int, optional | 0或1,是否返回高级合规信息,默认为1 |
参数 | 说明 |
---|---|
code | 错误码 |
msg | 错误信息(英文) |
msg_cn | 错误信息(中文) |
id | 图片id,用于同一张图片的多次请求,id的有效时间为6小时,(当code==0时会有该返回值) |
info | 普通合规信息,(当code==0且请求参数qualify==1时会有该返回值) |
advanced_info | 高级合规信息,(当code==0且请求参数advancedQualify==1时会有该返回值) |
错误码说明:
错误码 | 说明 |
---|---|
0 | 成功 |
1 | 图片错误 |
3 | 服务器繁忙 |
4 | 参数错误,具体错误看msg或msg_cn |
6 | 未知错误 |
7 | 图片id无效,可能已过期 |
101 | API-KEY不正确 |
102 | 未知用户 |
103 | 积分已用完 |
104 | 扣除积分失败 |
普通合规信息:
参数 | 类型 | 说明 |
---|---|---|
qualified | bool | 是否合规(由face_width, face_height, head_top, eyes_top, eyes_angle决定) |
msg | string | 合规消息(英文) |
msg_cn | string | 合规消息(中文) |
has_face | bool | 是否检测到人脸 |
rotation | int | 图片旋转角度(0度,90度,180度,或者270度) |
face_width_qualified | bool | 人脸宽度是否合规 |
face_height_qualified | bool | 人脸长度是否合规 |
head_top_qualified | bool | 头顶至上边距离是否合规 |
eyes_top_qualified | bool | 眼睛至上边距离是否合规 |
eyes_angle_qualified | bool | 双眼连线角度是否合规 |
face_width | int | 生成证件照中人脸宽度 |
face_height | int | 人脸长度 |
head_top | int | 头顶至上边距离 |
eyes_top | int | 眼睛至上边距离 |
eyes_angle | float | 双眼连线角度 |
pupil_distance | int | 瞳距 |
eyes_center_from_left | int | 双眼中心与左边距离 |
eyes_center_from_bottom | int | 双眼中心与下边距离 |
高级合规信息:
参数 | 类型 | 说明 |
---|---|---|
qualified | bool | 是否合规,如果无人脸,戴帽子,墨镜,耳机,手机,口罩,模糊,过曝或欠曝,眉毛遮挡,嘴巴张开,则不合规。 注意:其他项目不计入判断。 |
msg | string | 合规消息(英文) |
msg_cn | string | 合规消息(中文) |
has_face | bool | 是否检测到人脸 |
face_count | int | 原图人脸个数 |
hat | int | 0或1,是否戴帽子 |
glasses | int | 0或1,是否戴眼镜 |
sunglasses | int | 0或1,是否戴墨镜 |
headphone | int | 0或1,是否戴耳机 |
earphone | int | 0或1,是否戴耳塞 |
cellphone | int | 0或1,是否用手机 |
earring | int | 0或1,是否戴耳饰 |
mask | int | 0或1,是否戴口罩 |
necklace | int | 0或1,是否戴项链 |
face_blur_score | float | [0, 1],脸部模糊程度,决定face_blur,默认阈值为0.6 |
face_blur | bool | 是否脸部模糊 |
face_overexposed_score | float | [0, 1],脸部过曝程度,决定face_overexposed,默认阈值为0.5 |
face_overexposed | bool | 是否脸部过曝 |
face_underexposed_score | float | [0, 1],脸部欠曝程度,决定face_underexposed,默认阈值为0.5 |
face_underexposed | bool | 是否脸部欠曝 |
eyebrow_occlusion_score | float | [0, 1],眉毛遮挡程度,决定eyebrow_occlusion,默认阈值为0.3 |
eyebrow_occlusion | bool | 是否眉毛遮挡 |
ear_occlusion_score | float | [0, 1],耳朵遮挡程度,决定ear_occlusion,默认阈值为0.8 |
ear_occlusion | bool | 是否耳朵遮挡 |
mouth_open_score | float | [0, 1],嘴巴张开程度,决定mouth_open,默认阈值为0.1 |
mouth_open | bool | 是否嘴巴张开 |
left_eye_occlusion_score | float | [0, 1],左眼遮挡程度,决定left_eye_occlusion,默认阈值为0.2 |
left_eye_occlusion | bool | 是否左眼遮挡 |
right_eye_occlusion_score | float | [0, 1],右眼遮挡程度,决定right_eye_occlusion,默认阈值为0.2 |
right_eye_occlusion | bool | 是否右眼遮挡 |
mouth_occlusion_score | float | [0, 1],嘴巴遮挡程度,决定mouth_occlusion,默认阈值为0.2 |
mouth_occlusion | bool | 是否嘴巴遮挡 |
nose_occlusion_score | float | [0, 1],鼻子遮挡程度,决定nose_occlusion,默认阈值为0.2 |
nose_occlusion | bool | 是否鼻子遮挡 |
left_cheek_occlusion_score | float | [0, 1],左脸遮挡程度,决定left_cheek_occlusion,默认阈值为0.3 |
left_cheek_occlusion | bool | 是否左脸遮挡 |
right_cheek_occlusion_score | float | [0, 1],右脸遮挡程度,决定right_cheek_occlusion,默认阈值为0.3 |
right_cheek_occlusion | bool | 是否右脸遮挡 |
yaw | float | [-90, 90],原图人脸偏航角 |
pitch | float | [-90, 90],原图人脸俯仰角 |
roll | float | [-90, 90],原图人脸翻滚角 |
hair_incomplete_score | float | [0, 1],头发不完整程度,决定hair_incomplete,默认阈值为0.1 |
hair_incomplete | bool | 是否头发不完整 |
shoulder_incomplete_score | float | [0, 1],肩膀不完整程度,决定shoulder_incomplete,默认阈值为0.5 |
shoulder_incomplete | bool | 是否肩膀不完整 |
clothes_color_light_score | float | [0, 1],衣服浅色程度,决定clothes_color_light,默认阈值为0.75 |
clothes_color_light | bool | 是否浅色衣服 |
eye_close_score | float | [0, 1],闭眼程度,决定eye_close,默认阈值为0.5 |
eye_close | bool | 是否闭眼 |
gaze_horizontal_score | float | [0, 1],视线水平偏移程度,决定gaze_horizontal,默认阈值为0.15 |
gaze_horizontal | bool | 是否视线水平偏移 |
gaze_vertical_score | float | [0, 1],视线竖直偏移程度,决定gaze_vertical,默认阈值为0.1 |
gaze_vertical | bool | 是否视线竖直偏移 |
gaze_straight | bool | 是否目光平视前方,当视线没有水平和竖直偏移时,为True |
Python 代码示例:
import requests import base64 import cv2 import json import numpy as np api_key = '******' # 你的API KEY file_path = '...' # 图片路径 with open(file_path, 'rb') as fp: photo_base64 = base64.b64encode(fp.read()).decode('utf8') url = 'https://www.shiliuai.com/api/id_photo/v1/qualify' headers = {'APIKEY': api_key, "Content-type": "application/json"} data = { "base64": photo_base64, "qualify": 1, "advancedQualify": 1 } response = requests.post(url=url, headers=headers, json=data) response = json.loads(response.content) """ 成功:{'code': 0, 'msg': 'OK', 'msg_cn': '成功', 'id': id, 'info': info, 'advanced_info': advanced_info} or 失败:{'code': error_code, 'msg': error_msg, 'msg_cn': 错误信息} """
PHP 代码示例:
$url = "https://www.shiliuai.com/api/id_photo/v1/qualify"; $method = "POST"; $apikey = "******"; $header = array(); array_push($header, "APIKEY:" . $apikey); array_push($header, "Content-Type:application/json"); $file_path = "..."; $handle = fopen($file_path, "r"); $photo = fread($handle, filesize($file_path)); fclose($handle); $photo_base64 = base64_encode($photo); $data = array( "base64"=> $photo_base64, "qualify"=> 1, "advancedQualify"=> 1 ); $post_data = json_encode($data); $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); $response = curl_exec($curl); var_dump($response);