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

2023-11-21 15:30

本文主要是介绍Android 超简单集成活体检测技术 快速识别“假脸”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

前言

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

应用场景

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

或者是在办理金融业务时,活体检测技术可以用于实名认证过程中,先判断当前是真实人脸,再比对当前人脸和身份证上照片信息,确认办理业务的是身份证上的本人,有效防止他人冒充自己造成财产损失。
在这里插入图片描述

并且,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() {@Overridepublic void onSuccess(MLLivenessCaptureResult result) {//检测成功的处理逻辑,检测结果可能是活体或者非活体。}@Overridepublic void onFailure(int errorCode) {//检测未完成,如相机异常CAMERA_ERROR,添加失败的处理逻辑。}};

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

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

Demo效果

下面这个demo展示了镜头前分别是真实人脸和人脸面具时活体检测技术的检测结果,效果是不是很棒?
在这里插入图片描述

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
作者:留下落叶

这篇关于Android 超简单集成活体检测技术 快速识别“假脸”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/403254

相关文章

Debezium 与 Apache Kafka 的集成方式步骤详解

《Debezium与ApacheKafka的集成方式步骤详解》本文详细介绍了如何将Debezium与ApacheKafka集成,包括集成概述、步骤、注意事项等,通过KafkaConnect,D... 目录一、集成概述二、集成步骤1. 准备 Kafka 环境2. 配置 Kafka Connect3. 安装 D

Spring AI集成DeepSeek的详细步骤

《SpringAI集成DeepSeek的详细步骤》DeepSeek作为一款卓越的国产AI模型,越来越多的公司考虑在自己的应用中集成,对于Java应用来说,我们可以借助SpringAI集成DeepSe... 目录DeepSeek 介绍Spring AI 是什么?1、环境准备2、构建项目2.1、pom依赖2.2

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav