从输入的图像中识别、提取人脸在图像中的位置信息,同时也会提取出五官的具体特征在图像中的位置信息。输入的图像可以是一张图片,也可以是相机视频流。总计会提取106个五官特征,每个特征对应五官的特定五官细节,具体可以看下图。如果是视频流,iOS默认尺寸是720*1280,Android将根据机型而定。
【特别说明】:我们预计将在今年五月更换该方法,如果有项目在4~6月份上线,请特别留意。我们会提前一个月通知变更情况。
如有疑问请咨询: @明越
从输入的图像中判断头部姿态,分别是:pitch-俯仰角,roll-旋转角,yaw-水平转角,如下图所示
入参
参数名 | 必传 | 类型 | 示例 | 描述 |
---|---|---|---|---|
data | 否 | string | “UEAA…AA” | 识别图片base64后数据 |
url | 否 | string | “http://xxxx.png” | 识别图的下载地址 |
返回结果
属性名 | 类型 | 示例 | 描述 |
---|---|---|---|
ret | string | “HY_FAILED” | 调用结果,HY_SUCCESS 成功,HY_FAILED 失败 |
errorCode | string | “IMG_IS_INVALIDATE” | 错误码,在ret为HY_FAILED时存在 |
errorMessage | string | “无效的图片” | 错误信息,在ret为HY_FAILED时存在 |
faces | object[] | 下面===都是该数组中每个对象的内置key | 识别的人脸信息数组,在ret为HY_SUCCESS时存在 |
=== face_rectangle | int[4] | 脸部在图片中的位置,单位px | |
=== landmark | float[136] | 脸部106个特征的点位信息,排列形式为x,y,x1,y1,x2,y2…,单位px | |
=== yaw | float | -1.224584045412 | 水平转角 |
=== roll | float | 0.788981811522 | 旋转角 |
=== pitch | float | 4.289899414026 | 俯仰角 |
调用样例
Tida.FaceReco.imgDetect({ url: 'http://dtmall-tel.alicdn.com/minsk/online/fileware/201707/1a1295cb-36bb-459e-87ba-901c4f0620a7' }, function (e) { $("#imageDectRes").html(JSON.stringify(e)) });
返回结果
{ "ret": "HY_SUCCESS", "faces": [ { "face_rectangle": [ 208, 623, 512, 714 ], "landmark": [ 223.40269470214844, 909.6727905273438, 216.42198181152344, 971.5718994140625, 217.4015350341797, 1034.74951171875, ... 400.4584045410156, 1180.2794189453125 ], "yaw": -1.224584045412, "roll": 0.788981811522, "pitch": 4.289899414026 } ] }
入参
参数名 | 必传 | 类型 | 示例 | 描述 |
---|---|---|---|---|
cameraType | 否 | string | “{”cameraType“:”back“}” | “front” 前置摄像头;“back” 后置摄像头 |
previewMode | 否 | string | “{”previewMode“:”speed“}” | “speed” 速度优先(低分辨率);“quality” 质量优先(高分辨率) |
返回结果
属性名 | 类型 | 示例 | 描述 |
---|---|---|---|
ret | string | “HY_SUCCESS” | 调用结果,HY_SUCCESS 成功,HY_FAILED 失败 |
errorCode | string | 错误码,在ret为HY_FAILED时存在 | |
errorMessage | string | 错误信息,在ret为HY_FAILED时存在 |
demo
Tida.FaceReco.startCameraDetect(option, function (e) { console.log("e", e) alert(JSON.stringify(e)); })
入参
无
返回结果
属性名 | 类型 | 示例 | 描述 |
---|---|---|---|
ret | string | “HY_SUCCESS” | 调用结果,HY_SUCCESS 成功,HY_FAILED 失败 |
errorCode | string | 错误码,在ret为HY_FAILED时存在,取值参考枚举定义章节 | |
errorMessage | string | 错误信息,在ret为HY_FAILED时存在,取值参考枚举定义章节 |
demo
Tida.FaceReco.stopCameraDetect({}, function (e) { console.log("e", e) alert(JSON.stringify(e)); })
广播报文
属性名 | 类型 | 示例 | 描述 |
---|---|---|---|
faces | object[] | 下面===都是该数组中每个对象的内置key | 识别的人脸信息数组,在ret为HY_SUCCESS时存在 |
=== face_rectangle | int[4] | 脸部在图片中的位置,单位px | |
=== landmark | float[136] | 脸部106个特征的点位信息,排列形式为x,y,x1,y1,x2,y2…,单位px | |
frame | object | 下面===都是该对象内置key | 该结果对应的相机帧图像信息,只有再调用了“takeCameraFrame”接口后的,下一帧识别结果中会携带 |
=== base64 | string | “0xAADWww” | 相机帧图像JPG的Base64数据 |
=== width | int | 400 | 相机帧图像的宽 |
=== height | int | 600 | 相机帧图像的高 |
demo
document.addEventListener('FacePlugin.captureDetectResult', facePluginUpdate, false); function facePluginUpdate(e) { if (e.param.faces.length > 0) { // 识别到 } else { // 未识别到 } }
response
{ "faces": [ { "face_rectangle": [ 208, 623, 512, 714 ], "landmark": [ 223.40269470214844, 909.6727905273438, 216.42198181152344, 971.5718994140625, 217.4015350341797, 1034.74951171875, ... 400.4584045410156, 1180.2794189453125 ], "yaw": -1.224584045412, "roll": 0.788981811522, "pitch": 4.289899414026 } ] }
入参
无
返回结果
返回结果中不会携带相机帧数据,调用后会在下一帧的识别结果广播中带上相机帧数据
属性名 | 类型 | 示例 | 描述 |
---|---|---|---|
ret | string | “HY_SUCCESS” | 调用结果,HY_SUCCESS 成功,HY_FAILED 失败 |
errorCode | string | 错误码,在ret为HY_FAILED时存在,取值参考枚举定义章节 | |
errorMessage | string | 错误信息,在ret为HY_FAILED时存在,取值参考枚举定义章节 |
demo
Tida.FaceReco.takeCameraFrame({}, function (e) { console.log("e", e) alert(JSON.stringify(e)); })