视频实时自然美颜, 无惧素颜上镜

news2024/11/26 23:44:48

华为HMS Core 视频编辑服务依托自身AI技术的核心优势,在最新版本HMS Core 6.8.0中上线了全新的视频美颜功能,能对指定图片或视频中的人脸实现磨皮、美白、大眼、瘦脸的美颜效果,适用于直播、相机、视频剪辑、图片处理等场景中,打造独特自然的美颜效果。

HMS Core视频美颜功能在技术上使用CPU+NPU+GPU异构并行框架,支持实时美颜处理,算法跑得更快但系统功耗降低,50fps+端到端高效处理,能在10ms内完成视频中最多2个人脸(面积占比较大的2个人)的处理(数据源于华为内部测试)。使用855点稠密五官定位,精准识别人脸,避免人脸移动过快或角度过大时,美颜效果变形。针对美颜效果,采用面部精细分区,结合中性灰自然磨皮,更加自然真实。

另外,为满足用户的更多个性化需求,华为开放磨皮、美白、大眼、瘦脸美颜效果的多级调节功能,用户可根据需求自行调节效果,助力开发者以较低成本开发优秀的视频美颜效果。

美颜效果

下面我们就一起来实操一下如何接入华为视频编辑服务,实现视频美颜功能。

开发步骤

1. 开发准备

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

2. 集成准备

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

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

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

获取Access Token可参见基于OAuth 2.0开放鉴权客户端模式。

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

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

当您在AppGallery Connect上注册您的应用时,会给您的应用分配api_key,可参见添加当前应用的AppGallery Connect配置文件。

注意:请勿将api_key硬编码在代码中,同时不要将api_key存储在应用的配置文件中。建议您将api_key存储在云侧,运行时获取。

3. 美颜功能集成

// 创建美颜算法类实例
HVEAIBeauty hveaiBeauty = new HVEAIBeauty();

// 初始化美颜AI算法引擎
hveaiBeauty.initEngine(new HVEAIInitialCallback() {
    @Override
    public void onProgress(int progress) {
        // 初始化美颜AI算法引擎进度
    }
    @Override
    public void onSuccess() {
        // 初始化美颜AI算法引擎成功
    }
    @Override
    public void onError(int errorCode, String errorMessage) {
        // 初始化美颜AI算法引擎失败
    }
});

// 初始化美颜算法opengl运行环境,需在opengl渲染线程里调用
hveaiBeauty.prepare();

// 设置需美颜处理的纹理的宽高(textureWidth:纹理的宽;textureHeight:纹理的高),初始化或纹理有变化后调用,需在opengl渲染线程里调用
// resize参数为需要处理的纹理宽高,取值需要大于0
hveaiBeauty.resize(textureWidth, textureHeight);

// 美颜参数配置,磨皮,美白,瘦脸,大眼,亮眼, 美颜程度范围:[0, 1]
HVEAIBeautyOptions options = new HVEAIBeautyOptions.Builder().setBigEye(1)
    .setBlurDegree(1)
    .setBrightEye(1)
    .setThinFace(1)
    .setWhiteDegree(1)
    .build();

// 更新美颜参数,初始化或有修改后更新
hveaiBeauty.updateOptions(options);

// 进行美颜处理,在opengl渲染线程里每帧调用,(inputTextureId:输入的纹理ID;outputTextureId:输出的纹理ID)
// 请确保输入正向朝上的人脸的纹理。
int outputTextureId = hveaiBeauty.process(inputTextureId);

// 释放美颜AI算法引擎
hveaiBeauty.releaseEngine();

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

了解更多详情>>

访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153663.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cubeIDE开发, stm32的GPIO原理、cubeMX配置及底层源码实现分析

一、GPIO介绍 1.1 GPIO 简述 GPIO(General purpose input/output,通用型输入输出),一个引脚可以用于输入、输出或其他特殊功能,PIN脚依现实需要可作为通用输入(GPI)或通用输出(GPO)或通用输入与…

鑫磊股份开启申购:资产负债率较高,实控人控制企业借款高企

1月10日,鑫磊压缩机股份有限公司(下称“鑫磊股份”,SZ:301317)开启申购,发行价格20.67元/股,市盈率58.65倍。据贝多财经了解,鑫磊股份将在深圳证券交易所创业板上市。 本次上市,鑫磊…

LinuxC—进程

进程 1 进程标识符pid 基本概念 类型pid_t,是一个有符号16位整数,进程号是顺次向下使用(fd是优先使用当前可用最小的) shell中的ps命令能够查看当前系统的进程信息快照 相关函数 getpid(2)获取当前进程的进程号 /* Get the process ID of the calling…

中断处理程序

文章目录前言前置知识中断概念中断分类实验操作实验一实验二实验三前言 博客记录《操作系统真象还原》第七章实验的操作~ 实验环境:ubuntu18.04VMware , Bochs下载安装 实验内容: 编写中断处理程序( 操作 8259A 打开中断&…

2023年浙江食品安全管理员考试真题题库及答案

百分百题库提供食品安全管理员考试试题、食品安全管理员考试预测题、食品安全管理员考试真题、食品安全管理员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 一、多选题 1.餐具清洗消毒水池与以下哪些水池应分开&#xff…

机器学习— —导入数据

DAY1集成开发环境原始数据展示主要函数介绍data.iloc()函数dataset.iloc[0]dataset.iloc[:,:-1]dataset.iloc[:,3]dataset.iloc[1:3,1]可执行代码导入结果展示我的写在最后集成开发环境 Spyder (前身是 Pydee) 是一个强大的交互式 Python 语言开发环境,提供高级的代…

如何搭建Python环境和安装Pycharm

1、 搭建Python的基础环境 Anaconda简介 Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些…

【Kotlin】标准库函数 ② ( run 标准库函数 | run 函数传入 Lambda 表达式作为参数 | run 函数传入函数引用作为参数 )

文章目录一、run 标准库函数1、run 函数传入 Lambda 表达式作为参数2、run 函数传入函数引用作为参数Kotlin 语言中 , 在 Standard.kt 源码中 , 为所有类型定义了一批标准库函数 , 所有的 Kotlin 类型都可以调用这些函数 ; 一、run 标准库函数 1、run 函数传入 Lambda 表达式作…

Odoo丨5步轻松实现在Odoo中打开企微会话框

文章目录一、前言二、实现方案三、接口调用步骤一、前言 企业微信作为一个很好的企业级应用发布平台,尤其是提供的数据和接口,极大地为很多企业级应用提供便利,在日常中应用广泛! 最近在项目中就遇到一个与企业微信相关的场景开…

商标异议解读

商标异议解读《商标法》第三十五条规定,对初步审定公告的商标提出异议的,商标局应当听取异议人和被异议人陈述事实和理由,经调查核实后,自公告期满之日起十二个月内做出是否准予注册的决定,并书面通知异议人和被异议人…

Python初次实现MapReduce——WordCount

前言 Hadoop 本身是用 Java 开发的,所以之前的MapReduce代码小练都是由Java代码编写,但是通过Hadoop Streaming,我们可以使用任意语言来编写程序,让Hadoop 运行。 本文用Python语言实现了词频统计功能,最后通过Hadoo…

Redis从青铜到王者,从环境搭建到熟练使用

一、常见的非关系型数据库NOSQL分类NOSQL类型主要数据库产品类型特色K-V键值对存储类型Redis、Memcached使用key可以快速的查询到value,Memcached可以支持String类型的值value,Redis支持的值的数据类型很多如:String\set\hash\sortset\list等…

1月重磅福利——Softing在线培训课程上线

尽管有标准化和界面友好的工具,但车辆诊断的复杂性仍需要或多或少的专业知识支持,其具体取决于应用领域和要求。无论是初学者还是高级工程师,我们都很乐意为您日常遇到的问题提供相关支持,并就车辆诊断、ODX和OTX标准以及工具的使…

LeetCode 179. 最大数

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 179. 最大数,做好准备了么,那么开始吧。 🌲🌲🐴🐴 一、题目名称 LeetCode 179. …

01Hashmap并发问题-ConcurrentHashMap-线程安全集合类-并发编程(Java)

1 概述 线程安全类可以分为3个大类: 遗留的的线程安全集合Hashtable,Vector使用Collections装饰的线程安全集合,如: Collections.syncronizedCollectionCollections.syncronizedListCollections.syncronizedMapCollections.sync…

Linux系列文章 —— vim的基本操作(误入vim退出请先按「ESC」再按:q不保存退出,相关操作请阅读本文)

系列文章目录 文章目录系列文章目录前言一、vim的基本概念二、vim的基本操作1.退出vim编辑器2.进入vim编辑器3.模式功能及切换三、vim命令模式命令集1.光标移动2.查找字符3.复制粘贴删除4.撤销、重做与重复做5.插入模式6.保存与退出7.环境修改四、总结1.vim的三种基本模式2.vim…

springboot之webmvc和webflux浅析

webmvc和webflux作为spring framework的两个重要模块,代表了两个IO模型,阻塞式和非阻塞式。 1、webmvc webmvc是基于servlet的阻塞式模型,一个请求到达服务器后会单独分配一个线程去处理请求,如果请求包含IO操作,线程…

车载以太网 - DoIP时间参数 - 06

时间参数在所有的协议定义中都无法被忽略的一块重要部分,之前的CAN&CANFD诊断协议总,ISO 16765就有相关的诊断时间参数的定义;在DoIP中,也有同样的时间参数定义,不过他是放在ISO 13400 - 2中,今天我们一起来看下这一块的内容。 ISO 13400原文文档 中文释义 时间参数定…

北大硕士LeetCode算法专题课-基础算法之排序

接连上篇:北大硕士LeetCode算法专题课---算法复杂度介绍_骨灰级收藏家的博客-CSDN博客 冒泡排序 冒泡排序(Bubble Sort)是一种很原始的排序方法,就是通过不断地交换“大数”的位置达到排序的目的。 因为不断出现“大数”类似于水…

HTML实现狗屁不通文章生成器

演示 实现 css html, body {background: radial-gradient(#181818, #000000);margin: 0;padding: 0;border: 0;-ms-overflow-style: none;}.btn {display: inline-block;color: #fff;cursor: pointer;font-size: 1em;font-weight: 400;max-weight: 20%;position: relative;tex…