Android 超简单集成活体检测技术 快速识别“假脸”

Stella981
• 阅读 1041

Android 超简单集成活体检测技术 快速识别“假脸”

前言

你有没有过这样的顾虑,刷脸解锁真的安全吗?如果有人用我的照片或者视频冒充我,那么手机可不可以发现镜头前不是我本人呢?当然可以啦。华为HMS ML Kit活体检测技术可以准确地分辨真实人脸和“假脸”。不管是人脸翻拍照片、人脸视频重放,还是人脸面具,活体检测技术都可以马上揭穿这些“假脸”,让“假脸”无所遁形! Android 超简单集成活体检测技术 快速识别“假脸”

应用场景

活体检测技术通常用在人脸比对技术前,先确认镜头前是真实的人而不是有人拿照片或面具作假,然后再比对当前人脸和已录入的人脸是否是同一个人。活体检测技术在生活中有广泛的应用场景。比如在手机解锁时,活体检测技术可以防止有人假冒自己解锁手机,造成个人信息泄露。 Android 超简单集成活体检测技术 快速识别“假脸”

或者是在办理金融业务时,活体检测技术可以用于实名认证过程中,先判断当前是真实人脸,再比对当前人脸和身份证上照片信息,确认办理业务的是身份证上的本人,有效防止他人冒充自己造成财产损失。 Android 超简单集成活体检测技术 快速识别“假脸”

并且,HMS ML Kit活体检测技术支持静默式活体检测,不需要用户配合做动作就可以判断是不是真实人脸,怎么样,是不是很方便呢。下面小编给大家介绍如何快速集成活体检测技术。

开发实战

1. 开发准备

详细的准备步骤可以参考华为开发者联盟: https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/ml-process-4 这里列举关键的开发步骤。

1.1 项目级gradle里配置Maven仓地址

buildscript {
    repositories {
             ...
        maven {url 'https://developer.huawei.com/repo/'}
    }
}
 dependencies {
                 ...
        classpath 'com.huawei.agconnect:agcp:1.3.1.300'
    }
allprojects {
    repositories {
             ...
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

1.2 应用级gradle里配置SDK依赖

 dependencies{
        // 引入活体检测集合包。
        implementation 'com.huawei.hms:ml-computer-vision-livenessdetection:2.0.2.300'
}

1.3 在文件头添加配置

apply plugin: 'com.android.application'
apply plugin: 'com.huawei.agconnect'

1.4 添加如下语句到AndroidManifest.xml文件中,自动更新机器学习模型到设备

<meta-data 
  android:name="com.huawei.hms.ml.DEPENDENCY" 
  android:value= "livenessdetection"/>

1.5 申请相机权限

相机权限申请的具体操作步骤可参考:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/add-permissions-0000001050040051

2.代码开发

2.1创建活体检测结果回调,用于获取检测结果。

  private MLLivenessCapture.Callback callback = new MLLivenessCapture.Callback() {
     @Override
     public void onSuccess(MLLivenessCaptureResult result) {
       //检测成功的处理逻辑,检测结果可能是活体或者非活体。
     }
     
     @Override
      public void onFailure(int errorCode) {
       //检测未完成,如相机异常CAMERA_ERROR,添加失败的处理逻辑。
    }
 };

2.2 创建活体检测实例,启动检测。

MLLivenessCapture capture = MLLivenessCapture.getInstance();
capture.startDetect(activity, callback);

Demo效果

下面这个demo展示了镜头前分别是真实人脸和人脸面具时活体检测技术的检测结果,效果是不是很棒? Android 超简单集成活体检测技术 快速识别“假脸”

Github源码

https://github.com/HMS-Core/hms-ml-demo/blob/master/MLKit-Sample/module-body/src/main/java/com/mlkit/sample/activity/HumanLivenessDetectionActivity.java

更详细的开发指南参考华为开发者联盟官网

https://developer.huawei.com/consumer/cn/hms/huawei-mlkit


原文链接:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0203345286567820416&fid=18 作者:留下落叶

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
不是海碗 不是海碗
1年前
人脸识别之人脸检测的重要性
在整个人脸识别的整个工程当中,必然是少不了人脸检测的,它承担着很重要的职责。首先摄像头在捕捉到的图像中,需要用人脸检测技术,检测这张图片当中是否有人脸,检测到人脸以及人脸的位置之后,才进行后续的特征提取、特征对比等步骤,最后才形成一个完整的人脸识别过程。
不是海碗 不是海碗
1年前
景区如何限流?竟然可以用人脸检测做到
我们可以通过人脸检测去进行景区限流。在景区门口放置摄像头,摄像头捕捉到游客的人脸图像,然后使用人脸检测技术,识别出图像中是否含有人脸,含有几张人脸,检测一张人脸,就在计数器上1。这样景区就可以通过客流量的统计,当达到最大客流量的时候,就停止进入,实现景区限流。
不是海碗 不是海碗
1年前
APISpace的 人脸检测API 它来啦~
人脸检测是指通过计算机视觉技术,从图像中识别、检测出人脸,并确定人脸的位置及大小。它是一种计算机图像处理技术,是计算机视觉领域的关键技术,可用于实现自动识别和跟踪人脸。
不是海碗 不是海碗
1年前
人脸检测之身份识别你需要的那些事
人脸检测是进行身份识别的一个重要环节,因为它可以准确地识别出图像中的人脸,这样才能保证身份识别的准确性。
不是海碗 不是海碗
1年前
人脸检测:在公共交通场所监控中起什么样的作用?
在公共交通场所的监控系统中,人脸检测起着至关重要的作用。它被用来识别人脸,并检测未识别的人脸是否是真实的人脸。
Stella981 Stella981
3年前
HAAR与DLib的实时人脸检测之对比
人脸检测方法有许多,比如opencv自带的人脸Haar特征分类器和dlib人脸检测方法等。对于opencv的人脸检测方法,优点是简单,快速;存在的问题是人脸检测效果不好。正面/垂直/光线较好的人脸,该方法可以检测出来,而侧面/歪斜/光线不好的人脸,无法检测。因此,该方法不适合现场应用。而对于dlib人脸检测方法采用64个特征点检测,效果会好于opencv
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我