跳到内容 跳到主导航 跳到页脚

人脸识别

唤醒及预唤醒检测

组件名称: WakeupAndPreWakeupStartCheckComponent

组件描述: 人脸识别组件,可支持普通人脸识别(预唤醒)及精确人脸识别(满足唤醒条件),普通人脸识别只能识别出人脸,但无法进行后续的追踪,精确人脸识别可根据人脸特征生成一个id,后续可根据id进行持续追踪(可参考人脸追踪组件),如果被识别人注册过详细信息(注册方式可参考人脸注册组件),该组件可以返回包含姓名等在内的详细信息。

备注:需要使用底盘的功能组件,都是互斥的。比如底盘行走、导航、回冲、焦点跟随等。请不要同时使用他们,会造成错误

使用示例:

public onStatusUpdate = (event?: ComponentEvent): boolean => {
    //TODO: 状态处理
    return true;
};

public onFinish = (result?: ComponentEvent): boolean => {
    //TODO: 结果处理
    return true;
};

public render() {
    let wakeupParam = new WakeupAndPreWakeupStartCheckParam(true, 3, 1.3, 45, true, undefined, true, 5 * 1000, undefined);
    return (
        <>
            <WakeupAndPreWakeupStartCheckComponent
                param={wakeupParam}
                onStatusUpdate={this.onStatusUpdate}
                onFinish={this.onFinish}
            />
        </>
    );
}

属性:

  • param:组件参数,类型为WakeupAndPreWakeupStartCheckParam
  • onStatusUpdate:组件状态回调
  • onFinish:组件执行结束回调

参数说明:

  • isNeedPreWakeup:是否需要预唤醒,如果设置为false,不会有预唤醒状态回调,默认为true
  • maxDistance:人脸识别的最大距离,超过该距离的人脸数据自动忽略,默认3米
  • wakeupFaceDistance:唤醒的最大距离,人距离超过该距离不会触发唤醒回调,默认1.3米
  • wakeupFaceAngleX:唤醒的最大角度,人脸角度大于该值,不会触发唤醒回调,默认45度
  • isNeedInCompleteFace:是否包含不完成人脸检测,默认true
  • incompleteFaceCacheTimeout:不完成人脸检测缓存时间,默认3000毫秒
  • isPreWakeupNeedBody:检测到人体时是否触发预唤醒回调,默认true
  • preWakeupIntervalTime:两次预唤醒之间的间隔时间,低于该值不会再次触发预唤醒,默认20000毫秒
  • recognizeTimeout:人脸识别超时时间,默认2000毫秒
  • isWakeupNeedRecognize:唤醒是否获取注册的详细信息(该参数仅在豹大屏有效)

状态说明:

通过ComponentEvent.status获取到状态码:

  • 32710001:已满足预唤醒条件,满足预唤醒后组件不会停止,会继续进行更详细的识别,常量定义 ComponentStatusConst.STATUS_PRE_WAKEUP

结果说明

通过ComponentEvent.status获取到结果码:

  • 32610001:满足唤醒条件,ComponentEvent.data为人脸数据,常量定义 ComponentResultConst.RESULT_SUCCESS
  • -32600004:获取人脸数据失败,常量定义 ComponentErrorConst.ERROR_OPEN_PERSON_DETECT_FAILED

注意:开发中请使用常量定义进行结果及状态判断,以上出现的返回码在后续版本中有可能会发生变更

人脸数据:

通过ComponentEvent.data可获取到返回的人脸数据,该值为json字符串:

  • id:人脸标识,进行人脸追踪时需要id作为参数,需要注意的是同一个人多次识别可能获取的id不同,不能作为同一个人的唯一标识。
  • name:注册名称,被识别人未进行过注册,该值为空
  • angle:人脸角度
  • distance:距离
  • facewidth:人脸宽度
  • faceheight:人脸高度
  • faceX:人脸x坐标
  • faceY:人脸y坐标

最低版本: 1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

根据条件找人

组件名称: PersonAppearComponent

组件描述: 用于判断是否有满足条件的人出现,当有满足条件的人出现后,该组件会自动回调结果并结束运行(结束运行表示,该组件在回调结果后,就不会继续根据条件找人。如果需要在回调后依旧保持使用,可通过动态插入该组件)。

使用示例:

public onFinish = (result?: ComponentEvent): boolean => {
    //TODO: 结果处理
    return true;
};public personAppearOnUpdate = (event: any): boolean => {     //如果检测到人脸,可从event.data中获取到切好图的人脸照片}

public render() {
    let personAppearParam = new PersonAppearParam();
    return (
        <>
            <PersonAppearComponent
                param={personAppearParam}
                onFinish={this.onFinish}                onStatusUpdate={this.personAppearOnUpdate}
            />
        </>
    );
}

属性:

  • param:组件参数,类型为PersonAppearParam
  • onFinish:组件执行结束回调
  • onStatusUpdate:组件状态发生变化时的回调

参数说明:

  • personId:根据id查找,用于检测特定id的人脸,默认-1
  • personName:用于检测特定名字的人脸,默认为空
  • maxDistance:检测的最大距离,默认3米,超过该距离的人脸数据自动忽略
  • maxFaceAngleX:检测的最大人脸角度,默认60度
  • isNeedInCompleteFace:是否包含不完成人脸检测,默认false
  • incompleteFaceCacheTimeout:不完成人脸检测缓存时间,默认3000毫秒
  • isNeedBody:是否检测人体,默认false
  • isNeedRecognize:是否需要识别详细信息,默认true
  • recognizeTimeout:人脸识别超时时间,默认2000毫秒
  • appearTimeout:检测超时时间,默认7000毫秒

结果说明

通过ComponentEvent.status获取到结果码:

  • 32610001:检测成功,ComponentEvent.data为人脸数据,常量定义 ComponentResultConst.RESULT_SUCCESS
  • 32610003:超时未检测到符合条件的人,常量定义ComponentResultConst.RESULT_TIMEOUT
  • -32600004:获取人脸数据失败,常量定义 ComponentErrorConst.ERROR_OPEN_PERSON_DETECT_FAILED

注意:开发中请使用常量定义进行结果及状态判断,以上出现的返回码在后续版本中有可能会发生变更

人脸数据:

通过ComponentEvent.data可获取到返回的人脸数据,该值为json字符串:

  • id:人脸标识,进行人脸追踪时需要id作为参数,需要注意的是同一个人多次识别可能获取的id不同,不能作为同一个人的唯一标识。
  • name:注册名称,被识别人未进行过注册,该值为空
  • angle:人脸角度
  • distance:距离
  • facewidth:人脸宽度
  • faceheight:人脸高度
  • faceX:人脸x坐标
  • faceY:人脸y坐标

最低版本: 1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

检测人是否丢失

组件名称: PersonDisappearComponent

组件描述: 用于检测符合条件的人是否丢失,当符合条件的人持续一段时间不出现时会触发结果回调。

使用示例:

public onFinish = (result?: ComponentEvent): boolean => {
    //TODO: 结果处理
    return true;
};

public render() {
    let personDisappearParam = new PersonDisappearParam();
    return (
        <>
            <PersonDisappearComponent
                param={personDisappearParam}
                onFinish={this.onFinish}
            />
        </>
    );
}

属性:

  • param:组件参数,类型为PersonDisappearParam
  • onFinish:组件执行结束回调

参数说明:

  • personId:需要检查的人脸id,默认-1
  • personName:需要检测的人的名称,默认空
  • maxDistance:检测的最大距离,默认3米,超过该距离的人脸数据自动忽略
  • maxFaceAngleX:检测的最大人脸角度,默认60度
  • isNeedInCompleteFace:是否包含不完成人脸检测,默认false
  • isNeedBody:是否检测人体,默认false
  • disappearTimeout:人丢失后组件会持续进行人脸识别,直到超过该时间没有找到符合条件的数据,会主动退出
  • lostTimeout:持续多久无满足条件的人脸数据则认为人丢失,会上报人丢失状态,但组件不会退出,必须比disappearTimeout小

状态说明:

通过ComponentEvent.status获取到状态码:

  • 32710014:人已丢失,常量定义 ComponentStatusConst.STATUS_PERSON_LOST_TIMEOUT

结果说明

通过ComponentEvent.status获取到结果码:

  • 32610003:超时未检测到符合条件的人,常量定义ComponentResultConst.RESULT_TIMEOUT
  • -32600004:获取人脸数据失败,常量定义 ComponentErrorConst.ERROR_OPEN_PERSON_DETECT_FAILED

注意:开发中请使用常量定义进行结果及状态判断,以上出现的返回码在后续版本中有可能会发生变更

最低版本: 1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

人脸注册(默认不可用,需申请签协议)

组件名称: RegisterComponent

组件描述: 注册个人信息,注册的信息可在人脸识别时获取。如果已经注册,再次调用,可修改注册信息。

使用示例:

public onFinish = (result?: ComponentEvent): boolean => {
    //TODO: 结果处理
    return true;
};

public render() {
    let registerParam = new RegisterParam(name);
    return (
        <>
            <RegisterComponent
                param={registerParam}
                onFinish={this.onFinish}
            />
        </>
    );
}

属性:

  • param:组件参数,类型为RegisterParam
  • onFinish:组件执行结束回调

参数说明:

  • personName:注册人姓名,必填项
  • photoPath:图片路径,路径为空会自动识别获取人脸照片
  • personAppearTimeout:人脸检测超时时间,持续未检测到人脸,失败退出,默认2000毫秒
  • recognizeTimeOut:识别超时时间,持续未能获取人脸照片,失败退出,默认800毫秒

结果说明

通过ComponentEvent.status获取到结果码:

  • 32610010:注册成功,常量定义 ComponentResultConst.RESULT_REGISTER_SUCCESS
  • 32610011:修改名成功,常量定义 ComponentResultConst.RESULT_MODIFY_NAME_SUCCESS
  • 32610003:注册失败,常量定义 ComponentResultConst.RESULT_TIMEOUT
  • -32640013:图片无效,常量定义 ComponentErrorConst.ERROR_REGISTER_PICTURE_INVALID
  • -32640011:修改名称识别,常量定义 ComponentErrorConst.ERROR_MODIFY_NAME_FAILED

注意:开发中请使用常量定义进行结果及状态判断,以上出现的返回码在后续版本中有可能会发生变更

最低版本: 1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

查询注册信息

组件名称: RecognizeComponent

组件描述: 根据人脸id查询注册信息,唤醒组件、人脸查找组件内部已包含对该组件的调用。

使用示例:

public onFinish = (result?: ComponentEvent): boolean => {
    //TODO: 结果处理
    return true;
};

public render() {
    let recognizeParam = new RecognizeParam(personId);
    return (
        <>
            <RecognizeComponent
                param={registerParam}
                onFinish={this.onFinish}
            />
        </>
    );
}

属性:

  • param:组件参数,类型为RecognizeParam
  • onFinish:组件执行结束回调

参数说明:

  • personId:人脸id,必填项
  • recognizeTimeout:人脸识别超时时间,默认2000毫秒

结果说明

通过ComponentEvent.status获取到结果码:

  • 32610001:识别成功,常量定义 ComponentResultConst.RESULT_SUCCESS
  • -32630003:获取图片失败,常量定义 ComponentResultConst.ERROR_GET_PICTURE_FAILED
  • -32610007:人脸id无效,常量定义 ComponentResultConst.ERROR_PARAMS_PERSON_ID_INVALID
  • -32640002:图片不合格,无法识别,常量定义 ComponentErrorConst.ERROR_REMOTE_DETECT_FAILED
  • -32600003:识别超时,无法识别,常量定义 ComponentErrorConst.ERROR_RECOGNIZE_TIMEOUT

注意:开发中请使用常量定义进行结果及状态判断,以上出现的返回码在后续版本中有可能会发生变更

最低版本: 1.0.0

适用平台:

豹小秘mini招财豹豹小递max豹小秘DP

人脸注册预览组件

组件名称: ReceptionRegisterCameraView

组件描述: 人脸检测预览图组件,用于展示当前机器人摄像头拍照的内容。可以和PersonAppearComponent组件一起使用。

使用示例:

public onPreviewStatusUpdate = (state: any): void => {     //TODO: 结果处理
    console.log(TAG, 'ReceptionRegisterCameraView', state);    if (state !== 'RESULT_SUCCESS') {    }
};   public onCamareViewCapture = (state: string,    originalImageFile: string,
    compressedFile: string): void => {    console.log(TAG, 'onCamareViewCapture', state, originalImageFile, compressedFile)}
public render() {
    return (
        <>
            <ReceptionRegisterCameraView                onPreviewState={this.onPreviewStatusUpdate}                onCaptureState={this.onCamareViewCapture}/>
        </>
    );
}

属性:

  • onPreviewState:预览组件发生错误的时候会回调这个函数通知。
  • onCaptureState:预览拍照时触发,可在回调中拿到图片信息。

主要方法:

  • takePicture:拍照
豹小秘mini招财豹豹小递max豹小秘DP

下载示例代码

这篇文章是否有帮助?

0