前言

生活中遇到难忘美好的瞬间,小编总是忍不住用拍照的方式来留住它,相信大家也和我一样。但我们大多数人都不是专业的摄影师或者模特,光线没选好、角度不对等等原因,导致对照片的自己不满意,该怎么办呢?这时如果手机里有个图片处理app,轻轻一点就能自动检测到照片中的人脸,然后放大眼睛加瘦脸,轻松帮我们实现美颜的效果,让美美的自己出现在保存美好记忆的照片中,是不是很棒?于是小编上网搜索解决办法,发现华为HMS ML Kit提供了人脸检测服务,集成这个服务后各种安卓机型都可以方便地实现照片美化,还原你的美丽!

应用场景

华为HMS ML Kit人脸检测服务对人脸多达855个关键点进行检测,返回人脸轮廓、眉毛、眼睛、鼻子、嘴巴、耳朵等部位的坐标以及人脸偏转角度等信息。集成人脸检测服务后开发者可以根据这些信息快速构建人脸美化的应用,或者在脸上加一些有趣的元素,增加图片的趣味性。
除了这个强大的功能外,人脸检测服务还可以识别人脸中包括眼睛是否睁开、是否戴眼镜或帽子、性别、年龄、是否有胡子等特征,集成这个功能后,可以实现比如parent control的应用,防止小朋友眼睛距离屏幕过近或看屏幕时间过长。
此外,人脸检测服务可以识别人脸多达七种表情,包括微笑、无表情、愤怒、厌恶、惊恐、悲伤和惊讶,这个功能就可以实现比如微笑抓拍这样有趣的应用。

上面这么多的能力,开发者可以按需集成。并且人脸检测服务支持图像和视频流检测,人脸跨帧跟踪,以及同时检测多张人脸,可以说是把小编能想到的能力全都具备了,真强大!下面就跟着小编一起来看看怎么集成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 文件头增加配置

集成SDK后,在文件头添加配置

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

1.3 应用级gradle里配置SDK依赖

dependencies{ // 引入基础SDKimplementation 'com.huawei.hms:ml-computer-vision-face:2.0.1.300'// 引入人脸轮廓+关键点检测模型包implementation 'com.huawei.hms:ml-computer-vision-face-shape-point-model:2.0.1.300'// 引入表情检测模型包implementation 'com.huawei.hms:ml-computer-vision-face-emotion-model:2.0.1.300'// 引入特征检测模型包implementation 'com.huawei.hms:ml-computer-vision-face-feature-model:2.0.1.300'
}

1.4 将以下语句添加到AndroidManifest.xml文件中,用于自动更新机器学习模型

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

1.5 申请摄像头权限

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

2. 代码开发

2.1 使用默认参数配置,创建人脸分析器

analyzer =   MLAnalyzerFactory.getInstance().getFaceAnalyzer();

2.2 通过android.graphics.Bitmap创建MLFrame对象用于分析器检测图片

MLFrame frame = MLFrame.fromBitmap(bitmap);

2.3 调用“asyncAnalyseFrame”方法进行人脸检测

Task<List<MLFace>> task = analyzer.asyncAnalyseFrame(frame);
task.addOnSuccessListener(new OnSuccessListener<List<MLFace>>() {@Overridepublic void onSuccess(List<MLFace> faces) {// 检测成功,获取脸部关键点信息。}}).addOnFailureListener(new OnFailureListener() {@Overridepublic void onFailure(Exception e) {// 检测失败。}});

2.4 通过进度条进行不同程度的大眼瘦脸处理。分别调用magnifyEye方法和smallFaceMesh方法实现大眼算法和瘦脸算法

private SeekBar.OnSeekBarChangeListener onSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {switch (seekBar.getId()) {case R.id.seekbareye: // 当大眼进度条变化时,…case R.id.seekbarface: // 当瘦脸进度条变化时,…}}
}

2.5 检测完成,释放分析器

try {if (analyzer != null) {analyzer.stop();}
} catch (IOException e) {Log.e(TAG, "e=" + e.getMessage());
}

Demo效果

下面这个demo展示了大眼瘦脸的效果,怎么样,是不是很方便?

Github地址

您可以在Github上获取更详细的源码:https://github.com/HMS-Core/hms-ml-demo/tree/master/BeautyCamera

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

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

美颜神器——快速集成华为HMS ML Kit人脸检测实现大眼瘦脸相关推荐

  1. 【转载】超简单集成HMS ML Kit 人脸检测实现可爱2D贴纸

    文章目录 前言 场景 开发前准备 在项目级gradle里添加华为maven仓 在应用级的build.gradle里面加上SDK依赖 在AndroidManifest.xml文件里面申请相机.访问网络和 ...

  2. android 贴纸 源码,超简单集成HMS ML Kit 人脸检测实现可爱贴纸

    前言 在这个美即真理.全民娱乐的时代,可爱有趣的人脸贴纸在各大美颜软件中得到了广泛的应用,现在已经不仅局限于相机美颜类软件中,在社交.娱乐类的app中对人脸贴纸.AR贴纸的需求也非常广泛.本文详细介绍 ...

  3. 修图神器—超简单实现华为HMS ML Kit图像超分辨率

    前言 不知道大家有没有遇到这样的情况,图片压缩接收下载后清晰度骤降,画质模糊,更不用说放大浏览了.最近小编就遇到了啊,收到朋友发送的旅游合照压缩包,打开后,OMG,这昏暗的场景.黑黑的人像.模糊的画面 ...

  4. 用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍

    用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍 你有没有过这种体验,拍照时对着镜头,脑子一片空白.表情僵硬.手和脚无处安放,最后拍出来的照片很是奇怪.拍照软件中的固 ...

  5. java人体识别_用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍...

    items = results.getAnalyseList(); // 开发者根据需要处理识别结果,例如,在此方法中进行相似度计算,从而在检测到特定姿势后进行拍照等操作. // 需要注意,这里只对检 ...

  6. 超简单集成HMS ML Kit二代身份证识别,一键实名认证

    前言 就在近期华为HMS ML Kit 发布了1.0.3.30版本,ML Kit在原有通用OCR功能的基础上,又新增了银行卡识别(BCR)和二代身份证识别(ICR).今天小编就给大家介绍一下其中的IC ...

  7. 在WebRTC上实现ML Kit笑容检测

    本文来自Houseparty的WebRTC视频专家Gustavo Garcia Bernardo和TokBox的WebRTC移动端专家Roberto Perez,他们通过Google的ML Kit在W ...

  8. android自带抓拍算法,Android | 超简单集成HMS ML Kit实现最大脸微笑抓拍

    前言 如果大家对HMS ML Kit 人脸检测功能有所了解,相信已经动手调用我们提供的接口编写自己的APP啦.目前就有小伙伴在调用接口的过程中反馈,不太清楚HMS ML Kit 文档中的MLMaxSi ...

  9. 超简单集成华为HMS Core MLKit 机器学习服务银行卡识别SDK,一键实现银行卡绑定

    前言 小编前面几期文章分别给大家介绍了使用HMS ML Kit SDK实现微笑抓拍.证件照DIY.拍照翻译的功能开发(链接见文章末尾),本次小编给大家带来的是使用HMS 机器学习服务(ML Kit)银 ...

最新文章

  1. TypeScript学习笔记(七) - 命名空间
  2. android危险权限分组,Android 6.0权限请求相关及权限分组方法
  3. 【Python】青少年蓝桥杯_每日一题_8.19_数字组合
  4. [转载] 希腊字母读音表
  5. AngularJS 国际化 支持记录语言刷新后语言不变
  6. protopype 和 __proto__的区别
  7. 在Xen的DomU中安装MySQL
  8. 入侵排查篇---勒索病毒自救指南
  9. 教你如何在github上提交代码(Window10示例,内含2021年github提交机制的更新变动)
  10. comsol操作技巧
  11. ARM linux解析之压缩内核zImage的启动过程
  12. 传奇登陆器 link.html 网页无法显示,打开登陆器后无法显示游戏各区列表的问题...
  13. C++ Primer Plus P60 程序清单4.1(马铃薯的分析程序 ,理解数组的一些属性)——中职
  14. 小红书运营模式是怎样的?弄清楚小红书底层逻辑
  15. 轻微课靠谱吗?轻微课学员的真实评价!!!
  16. CSAPP: Architecture Lab
  17. 算法[第四版]-图灵程序设计丛书-笔记
  18. 电功率与力功率的学习
  19. c语言发送短信,c语言短信.doc
  20. Function 函数式接口及应用

热门文章

  1. Oracle获取上一年的时间
  2. 一起来电磁流量计的“世界”看看!
  3. HIST:微软最新发布的基于图的可以挖掘面向概念分类的共享信息的股票趋势预测框架...
  4. 富士康代工变弱?苹果倒戈和硕
  5. 大数据角度给大家解释一下为什么大数据AI分析足彩是扯淡
  6. 写在2021新年到来前
  7. 51单片机系列--直流电机
  8. Python黑马头条推荐系统第四天 TensorFlow框架介绍和深度学习
  9. Java工程师必备书单
  10. 面试官都爱问的java模式之装饰模式!!!