Android 超简单集成活体检测技术 快速识别“假脸”
<h3 id="android-超简单集成活体检测技术-快速识别假脸">Android 超简单集成活体检测技术 快速识别“假脸”</h3><h1 id="前言">前言</h1>
<p>你有没有过这样的顾虑,刷脸解锁真的安全吗?如果有人用我的照片或者视频冒充我,那么手机可不可以发现镜头前不是我本人呢?当然可以啦。华为HMS ML Kit活体检测技术可以准确地分辨真实人脸和“假脸”。不管是人脸翻拍照片、人脸视频重放,还是人脸面具,活体检测技术都可以马上揭穿这些“假脸”,让“假脸”无所遁形!<br>
<img src="https://img-blog.csdnimg.cn/20200922150252733.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDcwODI0MA==,size_16,color_FFFFFF,t_70#pic_center"></p>
<h1 id="应用场景">应用场景</h1>
<p>活体检测技术通常用在人脸比对技术前,先确认镜头前是真实的人而不是有人拿照片或面具作假,然后再比对当前人脸和已录入的人脸是否是同一个人。活体检测技术在生活中有广泛的应用场景。比如在手机解锁时,活体检测技术可以防止有人假冒自己解锁手机,造成个人信息泄露。<br>
<img src="https://img-blog.csdnimg.cn/20200922150301230.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDcwODI0MA==,size_16,color_FFFFFF,t_70#pic_center"></p>
<p>或者是在办理金融业务时,活体检测技术可以用于实名认证过程中,先判断当前是真实人脸,再比对当前人脸和身份证上照片信息,确认办理业务的是身份证上的本人,有效防止他人冒充自己造成财产损失。<br>
<img src="https://img-blog.csdnimg.cn/20200922150308981.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDcwODI0MA==,size_16,color_FFFFFF,t_70#pic_center"></p>
<p>并且,HMS ML Kit活体检测技术支持静默式活体检测,不需要用户配合做动作就可以判断是不是真实人脸,怎么样,是不是很方便呢。下面小编给大家介绍如何快速集成活体检测技术。</p>
<h1 id="开发实战">开发实战</h1>
<h2 id="1--开发准备">1.开发准备</h2>
<p>详细的准备步骤可以参考华为开发者联盟:<br>
https://developer.huawei.com/consumer/cn/doc/development/HMS-Guides/ml-process-4<br>
这里列举关键的开发步骤。</p>
<h3 id="11-项目级gradle里配置maven仓地址">1.1 项目级gradle里配置Maven仓地址</h3>
<pre><code class="language-java">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/'}
}
}
</code></pre>
<h3 id="12-应用级gradle里配置sdk依赖">1.2 应用级gradle里配置SDK依赖</h3>
<pre><code class="language-java"> dependencies{
// 引入活体检测集合包。
implementation 'com.huawei.hms:ml-computer-vision-livenessdetection:2.0.2.300'
}
</code></pre>
<h3 id="13-在文件头添加配置">1.3 在文件头添加配置</h3>
<pre><code class="language-java">apply plugin: 'com.android.application'
apply plugin: 'com.huawei.agconnect'
</code></pre>
<h3 id="14-添加如下语句到androidmanifestxml文件中自动更新机器学习模型到设备">1.4 添加如下语句到AndroidManifest.xml文件中,自动更新机器学习模型到设备</h3>
<pre><code class="language-java"><meta-data
android:name="com.huawei.hms.ml.DEPENDENCY"
android:value= "livenessdetection"/>
</code></pre>
<h3 id="15-申请相机权限">1.5 申请相机权限</h3>
<p>相机权限申请的具体操作步骤可参考:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-Guides/add-permissions-0000001050040051</p>
<h2 id="2代码开发">2.代码开发</h2>
<h3 id="21创建活体检测结果回调用于获取检测结果">2.1创建活体检测结果回调,用于获取检测结果。</h3>
<pre><code class="language-java">private MLLivenessCapture.Callback callback = new MLLivenessCapture.Callback() {
@Override
public void onSuccess(MLLivenessCaptureResult result) {
//检测成功的处理逻辑,检测结果可能是活体或者非活体。
}
@Override
public void onFailure(int errorCode) {
//检测未完成,如相机异常CAMERA_ERROR,添加失败的处理逻辑。
}
};
</code></pre>
<h3 id="22-创建活体检测实例启动检测">2.2 创建活体检测实例,启动检测。</h3>
<pre><code class="language-java">MLLivenessCapture capture = MLLivenessCapture.getInstance();
capture.startDetect(activity, callback);
</code></pre>
<h1 id="demo效果">Demo效果</h1>
<p>下面这个demo展示了镜头前分别是真实人脸和人脸面具时活体检测技术的检测结果,效果是不是很棒?<br>
<img src="https://img-blog.csdnimg.cn/20200922150353524.gif#pic_center"></p>
<h1 id="github源码">Github源码</h1>
<p>https://github.com/HMS-Core/hms-ml-demo/blob/master/MLKit-Sample/module-body/src/main/java/com/mlkit/sample/activity/HumanLivenessDetectionActivity.java</p>
<h1 id="更详细的开发指南参考华为开发者联盟官网">更详细的开发指南参考华为开发者联盟官网</h1>
<p>https://developer.huawei.com/consumer/cn/hms/huawei-mlkit</p>
<hr>
<p>原文链接:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0203345286567820416&fid=18<br>
作者:留下落叶</p><br><br>
来源:https://www.cnblogs.com/developer-huawei/p/13712705.html
頁:
[1]