AI技术实践 | 人脸核身在未成年人保护领域的实践应用

未成年人保护工作需要多方协同,注重未成年人健康网络习惯的培养。在技术向善的理念下,人工智能技术又该如何落到实处呢?

接下来,本文将详细讲述如何接入腾讯云慧眼·智能身份认证能力助力未成年人保护。

1、准备工作

1.1、了解腾讯云 AI 人脸核身

在腾讯云官网了解到 腾讯云AI 人脸核身 产品,可以在验证姓名和身份证信息的情况下,对当前用户身份信息进行审核,包括身份信息核验、人脸核身,即通过拍摄当前用户脸部视频的方式跟用户的身份信息进行比对,完成对身份信息的综合认证。

1.2、申请免费试用

点击申请免费使用之后,填写腾讯云人脸核身试用申请,因为这里对于防沉迷场景需要进行对当前用户检测是否为活体真人以及进一步与公安权威库比对,确认当前用户身份信息,所以这里需要使用活体人脸核身的功能。

 

申请成功后开启慧眼人脸核身服务

2、接入准备

2.1、申请 license

在腾讯云控制台页面的账号中心拿到对应账号的 APPID。

暂时可以联系客服⼈员进⾏ license 申请,需要准备腾讯云的 appid、客户名称、APP 名称、IOS 包名和 Android 包名。

会得到对应的 lincese 文件

3、终端流程

3.1、接入流程

  1. 将 SDK (huiyansdk_android_1.0.9.3_release.aar、huiyanmodels_1.0.0_release.aar 以及 公共库 tencent-ai-sdk-aicamera-1.0.21-release.aar、tencent-ai-sdk-common-1.1.33-release.aar、tencent-ai-sdk-youtu-base-1.0.1.32-release.aar) 添加到您工程的libs目录下
  2. 在您工程的build.gradle中进行如下配置:

    // 设置ndk so架构过滤(以armeabi-v7a为例)
    ndk {
        abiFilters 'armeabi-v7a'
    }
    
    // 过滤重复定义so的问题(以armeabi-v7a为例)
    packagingOptions{
        pickFirst 'lib/armeabi-v7a/libc++_shared.so'
        // 避免so被AS优化
        doNotStrip "**/*.so"
    }
    
    dependencies {
        // 引入慧眼SDK
        implementation files("libs/huiyansdk_android_1.0.9.3_release.aar")
        // 慧眼使用的模型库
        implementation files("libs/huiyanmodels_1.0.0_release.aar")
        // 必须引入公共库
        implementation files("libs/tencent-ai-sdk-aicamera-1.0.21-release.aar")
        implementation files("libs/tencent-ai-sdk-common-1.1.33-release.aar")
        implementation files("libs/tencent-ai-sdk-youtu-base-1.0.1.32-release.aar")
        // 慧眼SDK需要依赖的第三方库(gson)
        implementation 'com.google.code.gson:gson:2.8.5'
    }

  3. 在AndroidManifest.xml文件中进行必要的权限声明( Android 6.0以上版本,权限除了在AndroidManifest.xml文件中声明权以外,还需使用代码动态申请权限)

    <!-- 摄像头权限 -->
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature
        android:name="android.hardware.camera"
        android:required="true" />
    <uses-feature android:name="android.hardware.camera.autofocus" />
    <!-- SDK需要的权限 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- SDK可选的权限 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

3.2、SDK接口使用说明

  1. 初始化SDK

    // 在您APP初始化的时候调用,推荐在Application中onCreate内调用
    @Override
    public void onCreate() {
        super.onCreate();
        instance = this;
        HuiYanAuth.init(getApp());
    }

  2. 设置获取FaceIdToken的方法

    在您使用慧眼SDK进行活体核身检测的时候,为了增加请求的安全性,需要您设置获取FaceIdToken的回调方法,慧眼SDK在请求认证阶段会主动调用您传入的回调类获取FaceIdToken。(getCustomerFaceIdToken方法的调用默认在子线程执行)

    HuiYanAuth.setFaceIdTokenCreateFunction(new CreateFaceIdToken() {
        @Override
        public String getCustomerFaceIdToken() {
            return currentToken;
        }
    });	

  3. 启动核身

    当您需要启动活体核身检测的时候,只需要调用HuiYanAuth.startHuiYanAuth()函数,同时传入此次核身需要的配置信息以及监听结果的回调即可。

    // 启动活体核身的配置信息
    AuthConfig authConfig = new AuthConfig();
    // 活体检测的界面风格,目前支持PageColorStyle.Light与PageColorStyle.Dark两种默认配置
    authConfig.setPageColorStyle(PageColorStyle.Light);
    // 此license文件存放在assets下,需要客户提前申请
    authConfig.setAuthLicense("YTFaceSDK.license");
    HuiYanAuth.startHuiYanAuth(authConfig, new HuiYanAuthResultListener() {
      @Override
      public void onSuccess(String faceIdToken) {
        String showText = "认证成功 faceIdToken: " + faceIdToken;
        Log.e(TAG, showText);
        Toast.makeText(App.getApp(), showText, Toast.LENGTH_SHORT).show();
      }
      
      @Override
      public void onFail(int errorCode, String errorMsg, String faceIdToken) {
        String showText = "认证失败 code: " + errorCode + " msg: " + errorMsg + " faceIdToken: "  + faceIdToken;
        Log.e(TAG, showText);
        Toast.makeText(App.getApp(), showText, Toast.LENGTH_SHORT).show();
      }
    });

    注意:当前的 "YTFaceSDK.license"文件是需要您主动申请的,暂时您可以联系客服人员进行license申请,将申请的license文件放到assets文件下。

  4. SDK资源释放

    // Application中onDestroy中调用
    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 主动资源释放
        HuiYanAuth.release();
    }

  5. 混淆规则(如果您的应用开启了混淆功能,为确保SDK的正常使用,请把以下部分添加到您的混淆文件中)

#慧眼SDK的混淆包含
-keep class com.tencent.could.huiyansdk.** {*;}
-keep class com.tencent.could.aicamare.** {*;}
-keep class com.tencent.could.component.** {*;}
-keep class com.tencent.youtu.** {*;}
-keep class com.tencent.turingcam.** {*;}
-keep class com.tencent.turingfd.** {*;}
-keep class com.tenpay.utils.**{*;}

3.3、慧眼SDK交互流程

3.4、人脸核身未成年人游戏流程

4、效果展示

可以看到,当用户持续在线时间过长时,进行防沉迷识别验证,根据用户输入的身份证号和姓名确定是否成年,并且为了防止绕过注册的方式,进行人脸核身功能,通过 APP 调用手机摄像头,将用户人脸和身份证号等信息进行核对,确保当前用户身份。如果,确认当前用户是未成年,或身份信息与人脸不匹配,就退出应用。

将AI技术应用到未成年人保护领域,利用AI判断实际游戏用户是否为未成年人,并通过人脸识别、人脸核身等AI技术进行二次核验,减少了未成年人冒用成年人身份注册账号进行游戏的情况,从企业层面最大限度的阻止了未成年人超时游戏的行为;在游戏外,利用AI技术还可以对未成年人观看内容进行审核,加强对不雅、暴力等内容的过滤,保护未成年人网络环境的健康。

猜你喜欢

转载自blog.csdn.net/tencentAI/article/details/128452943
今日推荐