文档中心 > JSSDK文档

单图人脸识别

更新时间:2019/05/07 访问次数:2142

一、介绍

1、五官106点位获取

从输入的图像中识别、提取人脸在图像中的位置信息,同时也会提取出五官的具体特征在图像中的位置信息。输入的图像可以是一张图片,也可以是相机视频流。总计会提取106个五官特征,每个特征对应五官的特定五官细节,具体可以看下图。如果是视频流,iOS默认尺寸是720*1280,Android将根据机型而定。

【特别说明】:我们预计将在今年五月更换该方法,如果有项目在4~6月份上线,请特别留意。我们会提前一个月通知变更情况。
如有疑问请咨询: @明越

2、头部姿态3个方向获取

从输入的图像中判断头部姿态,分别是:pitch-俯仰角,roll-旋转角,yaw-水平转角,如下图所示

二、相关API

1、单图人脸识别

FacePlugin.imgDetect

入参

参数名 必传 类型 示例 描述
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
        }
    ]
}

2、启动相机流识别

Tida.FaceReco.startCameraDetect

入参

参数名 必传 类型 示例 描述
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));
})

3、停止相机流识别

Tida.FaceReco.stopCameraDetect

入参

返回结果

属性名 类型 示例 描述
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));
})

4、监听相机流识别广播

Tida.FaceReco.captureDetectResult

广播报文

属性名 类型 示例 描述
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
        }
    ]
}

5、采集相机帧图像数据

Tida.FaceReco.takeCameraFrame

入参

返回结果
返回结果中不会携带相机帧数据,调用后会在下一帧的识别结果广播中带上相机帧数据

属性名 类型 示例 描述
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));
})

FAQ

关于此文档暂时还没有FAQ
返回
顶部