用华为HMS MLKit SDK 三十分钟在安卓上开发一个微笑抓拍神器

本文介绍了如何使用华为HMS MLKit SDK,在30分钟内快速开发一个能够在安卓设备上检测微笑并进行抓拍的应用。详细步骤包括添加依赖、申请权限、创建人脸分析器及视觉引擎,并提供了实际开发中的代码示例。此外,文章还探讨了基于人脸检测能力可拓展的其他功能,如特效添加、美颜、护眼提示等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引子

前段时间Richard Yu在发布会上给大家介绍了华为HMS Core4.0,回顾发布会信息请戳:
华为面向全球发布HMS Core 4.0意味着什么?

其中有一个重点被介绍的服务,机器学习服务(Machine Learning Kit 简称 MLKit)。
那机器学习服务能干什么呢?能帮助开发者解决应用开发过程中的哪些问题?
今天就抛砖引玉一下,以人脸检测为例,给大家出一个实战小样例,让大家感受下机器学习服务所提供的强大功能以及给开发者提供的便捷性。

机器学习服务人脸检测所提供的能力

先给大家看一下华为机器学习服务人脸检测能力的展示:
在这里插入图片描述

从这个动图里面可以看到,人脸识别可以支持识别人脸的朝向,支持检测人脸的表情(高兴、厌恶、惊讶、伤心、愤怒、生气),支持检测人脸属性(性别、年龄、穿戴),支持检测是否睁眼闭眼,支持人脸以及鼻子、眼睛、嘴唇、眉毛等特征的坐标检测,另外还支持多人脸同时检测,是不是很强大!

核心提示:此功能免费,安卓全机型覆盖!

多人脸微笑拍照功能开发实战

今天就用机器学习服务的多人脸识别+表情检测能力写一个微笑抓拍的小demo,做一次实战演练。
Github demo源码下载请戳这里:(工程目录为:Smile-Camera)

1 开发准备

华为HMS的kit开发前准备工作都差不多,无非就是添加maven依赖,引入SDK

1.1 在项目级gradle里添加华为maven仓

增量添加如下maven地址:

buildscript {
   
    repositories {
           
        maven {
   url 'http://developer.huawei.com/repo/'}
    }    
}
allprojects {
   
    repositories {
          
        maven {
    url 'http://developer.huawei.com/repo/'}
    }
}

1.2 在应用级的build.gradle里面加上SDK依赖

把人脸识别的SDK和基础SDK引入

dependencies{
    
  // 引入基础SDK 
  implementation 'com.huawei.hms:ml-computer-vision:1.0.2.300' 
  // 引入人脸检测能力包 
  implementation 'com.huawei.hms:ml-computer-vision-face-recognition-model:1.0.2.300'   
 }

1.3 在AndroidManifest.xml文件里面增量添加模型自动下载

这个主要是用来模型更新的,后面算法有了优化,可以自动下载到手机里面更新

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

1.4 在AndroidManifest.xml文件里面申请相机和存储权限

<!--相机权限-->
<uses-permission android:name="android.permission.CAMERA" />
<!--使用存储权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2 代码开发

2.1 创建人脸分析器,检测到微笑后进行拍照

检测后拍照:
1)进行分析器参数配置
2)把分析器参数配置传给分析器
3)在analyzer.setTransacto内通过重写transactResult处理人脸识别后的内容,人脸识别后会返回一个微笑的置信度(简单可以理解为是微笑的概率),只要设置大于一定置信度进行拍照就可以了。

private MLFaceAnalyzer analyzer;
private void createFaceAnalyzer() 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值