最近一键“露齿笑”席卷全网,无论是短视频用户还是社交App用户都在使用这项黑科技。当三两好友聚会拍集体照留念时,为了处理个别人的表情“瑕疵”,让大家都尽量保持微笑,总要进行表情微调,但如果需要进行复杂的换头换脸等P图操作,对用户来说门槛太高。有些用户“镜头恐惧”,拍照时不会微笑、表情尴尬;有些用户对自己牙齿不自信,不敢拍照露齿笑。而现在,华为HMS Core视频编辑服务“一键微笑”功能可以很好解决用户的需求,能够自动检测照片中的人像,对表情进行修改,从而提升开心程度;可将检测到的人像由不笑到抿嘴微笑,也可张嘴露齿微笑,微笑自然且不会改变原本人脸的合理结构。

处理前

处理后

功能介绍

输入一张包含一个或多个人脸(最多支持3人)的图片,检测人脸并对其进行微笑处理,基于原人脸信息实现一键微笑,生成微笑图片。

Demo演示

下面我们就一起来实操一下如何接入华为视频编辑服务,实现“一键微笑”功能:

1. 开发准备

详细准备步骤可参考华为开发者联盟官网

2. 编辑工程集成

2.1 设置应用的鉴权信息

可以通过api_key或者Access Token来设置应用鉴权信息。

通过setAccessToken方法设置Access Token,在应用启动时初始化设置一次即可,无需多次设置。

MediaApplication.getInstance().setAccessToken("your access token");

通过setApiKey方法设置api_key,在应用启动时初始化设置一次即可,无需多次设置。

MediaApplication.getInstance().setApiKey("your ApiKey");

2.2设置唯一标识ID,即License ID。

License ID是进行管控的有效凭证,您要保证设置License ID的唯一性。

MediaApplication.getInstance().setLicenseId("License ID");

2.2.1初始化Editor运行环境

创建编辑工程,需要首先创建Editor对象并初始化其运行环境。当离开编辑工程时,应释放Editor实例。

(1) 创建Editor对象

HuaweiVideoEditor editor = HuaweiVideoEditor.create(getApplicationContext());

(2) 指定预览窗口的布局位置

预览窗口负责视频图像画面的渲染,由视频编辑原子能力SDK内部创建SurfaceView来实现。在创建窗口之前,需要在您的App中指定预览窗口的布局位置。

<LinearLayout
android:id="@+id/video_content_layout"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/video_edit_main_bg_color"
android:gravity="center"
android:orientation="vertical" />
// 指定预览窗口
LinearLayout mSdkPreviewContainer = view.findViewById(R.id.video_content_layout); // 设置预览窗口承载的布局
editor.setDisplay(mSdkPreviewContainer);

(3) 初始化运行环境,如果License鉴权失败,会抛出LicenseException。

当Editor对象创建之后,此时还没有占用实际的系统资源,需要手动选择其环境初始化的时机,此时视频编辑原子能力SDK内部会创建必须的线程和定时器等。

try {
editor.initEnvironment();
} catch (LicenseException error) {
SmartLog.e(TAG, "initEnvironment failed: " + error.getErrorMsg());
finish();
return;
}

3 “一键动效”能力集成

// 添加一键微笑AI特效,只支持图片资源
imageAsset.addFaceSmileAIEffect(new HVEAIProcessCallback() {
@Override
public void onProgress(int progress) {
// 一键微笑AI特效处理进度
}
@Override
public void onSuccess() {
// 一键微笑AI特效处理成功
}
@Override
public void onError(int errorCode, String errorMessage) {
// 一键微笑AI特效处理失败
}
});
// 中断一键微笑AI特效处理
imageAsset.interruptFaceSmile();
// 移除一键微笑AI特效
imageAsset.removeFaceSmileAIEffect();

HMS Core视频编辑服务除了支持一键微笑,还提供基础视频编辑、AI着色、专属滤镜、精彩片段、一键染发、人物追踪、人脸隐藏等视频创作能力,开发者可依据应用场景,在App中轻松完成视频功能的集成。

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

华为移动服务开源仓库地址:GitHubGitee

关注我们,第一时间了解 HMS Core 最新技术资讯~

如何让照片中的人物笑起来?HMS Core视频编辑服务一键微笑功能,让人物笑容更自然的更多相关文章

  1. 镜头随人物而动,视频编辑服务让用户稳站C位

    现如今,视频是用户记录生活最热门的方式,各种App在发布视频界面都提供了视频简单剪辑的功能.除了增加音乐.滤镜.贴纸这些基础功能以外,用户越来越追求镜头感,这往往需要通过专业的视频剪辑软件手动打上关键 ...

  2. 【FAQ】接入HMS Core推送服务过程中一些常见问题总结

    HMS Core 推送服务(Push Kit)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道.开发者通过集成推送服务,可以向客户端应用实时推送消息,构筑良好的用户关系,提升用户的感知度和活 ...

  3. Android中Xposed框架篇-微信实现本地视频发布到朋友圈功能

    微信非常庞大,还好有一些强大的工具,下面就来总结收获的知识. 一.使用adb shell dumpsys activity top命令快速定位页面 二.使用Jadx进行方法跟踪时候如果发现没有结果,可 ...

  4. Swift开发小技巧--识别选中照片中的二维码

    识别选中照片中的二维码 点击相册按钮,打开用户相册 @IBAction func photoBtnClick(sender: AnyObject) { // 打开相册 // 1.判断是否能够打开相册 ...

  5. iOS9中将图片保存到照片中的某个相册的方法说明

    iOS9中将图片保存到照片中的某个相册的方法说明 在App中很经常遇到的就是用户点击某张图片后将图片保存到本地,下面介绍下iOS中保存图片的一些东西 1.首先,在iOS中把图片保存到系统照片是比较简单 ...

  6. 使用 python 提取照片中的手机信息

    使用 python 提取照片中的手机信息 最近在做一个项目,有一个很重要的点是需要获取使用用户的手机信息,这里我选择从照片中获取信息.有人会问为什么不从手机里面直接获取设备信息.由于现在android ...

  7. VS编程中找不到Microsoft.Office.Core、Microsoft.Office.Interop.Word和VBIDE

    在使用vs2005. vs2008. vs2010 制作包含 word等office的应用程序时,有时找不到对Microsoft.Office.Core. Microsoft.Office.Inter ...

  8. 1.java.io包中定义了多个流类型来实现输入和输出功能,

    1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(C),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(G)   A.输入流和输出流 B ...

  9. 在drawRect:方法中绘制图片,文字以及Core Graphics 框架的了解

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...

随机推荐

  1. java高级用法之:绑定CPU的线程Thread-Affinity

    目录 简介 Java Thread Affinity简介 AffinityLock的使用 使用API直接分配CPU 总结 简介 在现代计算机系统中,可以有多个CPU,每个CPU又可以有多核.为了充分利 ...

  2. JavaScript 任务池

    JavaScript 任务池 本文写于 2022 年 5 月 13 日 线程池 在多线程语言中,我们通常不会随意的在需要启动线程的时候去启动,而是会选择创建一个线程池. 所谓线程池,本意其实就是(不止 ...

  3. Redis设计与实现2.2:数据持久化

    数据持久化 这是<Redis设计与实现>系列的文章,系列导航:Redis设计与实现笔记 RDB持久化 RDB 持久化功能所生成的 RDB 文件是一个经过压缩的二进制文件,通过该文件可以还原 ...

  4. 136_Power BI 自定义矩阵热力图

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 在前几天在pbirs自定义登录后,发现一个问题就是非Power BI原生的视觉无法显示,改回AD登录又可以了.目 ...

  5. Hive参数与性能企业级调优

    Hive作为大数据平台举足轻重的框架,以其稳定性和简单易用性也成为当前构建企业级数据仓库时使用最多的框架之一. 但是如果我们只局限于会使用Hive,而不考虑性能问题,就难搭建出一个完美的数仓,所以Hi ...

  6. anaconda遇到:Solving environment: failed with initial frozen solve. Retrying with flexible solve.问题

    Solving environment: failed with initial frozen solve. Retrying with flexible solve. 遇到上述问题: 解决方案: # ...

  7. easy-captcha生成验证码

    通常一些网页登陆时,都需要通过验证码去登录: 生成验证码的方法有很多,这次分享一个验证码即能是汉字的 又能是算术的. 首先maven坐标: <dependency> <groupId ...

  8. ”只用 1 分钟“ - 超简极速 Apk 签名 & 多渠道打包神器

    众所周知,渠道包作为当下国内 Android 应用市场常见的分发方式,当 APP 和后台交互或进行数据上报时,会带上各自的 channel 渠道信息,以此方便企业 & 开发者统计 APP 在各 ...

  9. element ui FORM表单

    form表单 Form-Item Slot [label] 旧版语法 <el-form-item label="活动名称" prop="name"> ...

  10. 打字练习-编程语言关键字系列-java

    小编整理的java关键字,内容如下:abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, ...