绿幕抠图是影视制作过程中常见的技术手段,常用于视频中抠除并替换背景,通过后期加工实现视频剪辑制作的更多可能性。然而,绿幕抠图技术制作成本费时费力,无法应用于日常生活。

华为视频编辑服务近期上线目标分割能力,可通过AI智能抠图精细化分割视频中的目标物体,并且不局限于特定的物体类别,在主体明确、背景相对简单的视频中进行主体和背景的分割,可以取得不错的处理效果。

应用场景

目标分割能力多应用于视频直播、在线教育、论坛会议等场景。比如,在卖货直播的场景中,可以将直播背景替换成商品详情页的轮播画面,便于用户及时了解商品;在线上论坛或者视频会议中,将背景替换成PPT内容或者办公场景,营造学习办公的严肃氛围。同样,目标分割能力也可满足用户日常趣味剪辑,用户可以通过目标分割能力剪辑人像视频,然后将背景切换各国名景,足不出户便能实现“周游世界”。

除了更换视频背景,目标分割能力还可应用于影视播放,通过目标抠图,避免弹幕遮挡剧情主体,优化用户观看体验。结合其他技术能力,还可以将分割后的目标物体进行复制和删除,甚至调整目标物体的动作时间,打造更具创意的视频作品。

实现原理

那么,目标分割能力是怎么实现的呢?

首先,用户需要选择目标物体,然后再进行AI目标分割。通过给定视频第一帧图像需要分割目标物体的对应掩码,AI模型会自动在后续每一帧的视频帧中匹配这个物体并尝试分割出来。并且,模型将会保存中间帧分割效果好的结果掩码与第一帧的掩码信息相结合,在后续视频帧中进行匹配,可以精准勾勒目标物体的边缘细节,进一步提升目标分割的准确度。

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引擎
videoAsset.initSegmentationEngine(new HVEAIInitialCallback() {
@Override
public void onProgress(int progress) {
// 初始化进度
} @Override
public void onSuccess() {
// 初始化成功
} @Override
public void onError(int errorCode, String errorMessage) {
// 初始化失败
}
}); // 初始化成功后,选择需要分割的目标进行分割,返回选择分割目标的的处理结果
// bitmap包含需要分割的目标的视频帧图片;timeStamp为视频帧图片在时间线上的时间戳;points为基于视频帧图片的坐标点集合,左上角为原点坐标,坐标点应位于需要分割的目标内,且个数建议大于等于2,需根据坐标点轨迹来确定选择的目标
int result = videoAsset.selectSegmentationObject(bitmap, timeStamp, points); // 目标分割的处理结果成功后,添加目标分割AI特效
videoAsset.addSegmentationEffect(new HVEAIProcessCallback() {
@Override
public void onProgress(int progress) {
// 目标分割AI特效处理进度
} @Override
public void onSuccess() {
// 目标分割AI特效处理成功
} @Override
public void onError(int errorCode, String errorMessage) {
// 目标分割AI特效处理失败
}
}); // 中断目标分割AI特效处理
videoAsset.interruptSegmentation(); // 移除目标分割AI特效
videoAsset.removeSegmentationEffect(); // 释放目标分割AI引擎
videoAsset.releaseSegmentationEngine();

了解更多详情>>

访问华为开发者联盟官网

获取开发指导文档

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

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

AI目标分割能力,无需绿幕即可实现快速视频抠图的更多相关文章

  1. Camtasia绿幕素材的视频合成

    随着科技和互联网的快速发展,让越来越多的人喜欢上了视频的各项制作,那么怎么让两个视频进行合成并一起播放呢?操作很简单,下面来讲解具体的操作步骤.小编选用的是Camtasia2019版本的视频编辑软件进 ...

  2. 一款非常好用的万能本地离线激活工具,支持Office2016、Office2015、Win7、Win8/8.1/10、Win2008/2012/R2系统,全自动安装且无需联网状态即可全部激活,它由国外网友heldigard制作,小巧、简单,只需运行而不用去管它自动激活,能自动激活为180天无限循环,欢迎大家下载使用

    office2016激活工具(KMS)是一款非常好用的万能本地离线激活工具,支持Office2016.Office2015.Win7.Win8/8.1/10.Win2008/2012/R2系统,全自动 ...

  3. 在Android用vulkan完成蓝绿幕扣像

    效果图(1080P处理) 因为摄像头开启自动曝光,画面变动时,亮度变化导致扣像在转动时如上. 源码地址vulkan_extratest 这个demo主要测试二点,一是测试ndk camera集成效果, ...

  4. Selective Search for Object Recognition 论文笔记【图片目标分割】

    这篇笔记,仅仅是对选择性算法介绍一下原理性知识,不对公式进行推倒. 前言: 这篇论文介绍的是,如果快速的找到的可能是物体目标的区域,不像使用传统的滑动窗口来暴力进行区域识别.这里是使用算法从多个维度对 ...

  5. Linux--如何实现虚拟机与主机之间的文件传输无需第三方,即可轻松设置共享文件夹(适合所有人群)

    无需第三方插件,设置共享文件夹 第一步:虚拟机->设置 第二步:选项->共享文件夹->总是启用->添加 第三步:点击下一步 第四步:浏览(选择主机路径)->下一步 第五步 ...

  6. 基于MATLAB静态目标分割的药板胶囊检测

    一.目标 1 将药板从黑色背景中分离(药板部分显示为白色,背景显示为黑色): 2 根据分割结果将药板旋转至水平: 3 提取药板中的药丸的位置信息: 二.方法描述 处理图像如下: (1)首先将图像转为灰 ...

  7. Genymotion的安装与使用(附百度云盘下载地址,全套都有,无需注册Genymotion即可使用)

    http://blog.csdn.net/scythe666/article/details/70216144 附百度云盘下载地址 :http://pan.baidu.com/s/1jHPG7h8 1 ...

  8. java非web应用修改 properties/xml配置文件后,无需重启应用即可生效---自动加载

    实现时主要使用Commons-Configuration.jar包,还需要commons-lang,disgestor,beanutils,collections等, package propFile ...

  9. Python 3 行代码 5 秒抠图的 AI 神器,根本无需 PS

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 苏克1900 PS:如有需要Python学习资料的小伙伴可以加点击下 ...

随机推荐

  1. docker+nginx+redis部署前后端分离项目!!!

    介绍本文用的经典的前后端分离开源项目.项目的拉取这些在另一篇博客!!! 其中所需要的前后端打包本篇就不做操作了!!不明白的去看另一篇博客!!! 地址:http://www.cnblogs.com/ps ...

  2. 2021夏季学期华清大学EE数算OJ1:算数问题

    第一次写博客,有点紧张... 也许格式也没有特别丑吧 先看原题( 此题做法众多,这里仅仅介绍蒟蒻的一种很复杂的思路(但最后还是喜提0ms的好成绩) 读完这道题,不难发现,此题不过是一个质因数分解+一堆 ...

  3. Golang:将日志以Json格式输出到Kafka

    在上一篇文章中我实现了一个支持Debug.Info.Error等多个级别的日志库,并将日志写到了磁盘文件中,代码比较简单,适合练手.有兴趣的可以通过这个链接前往:https://github.com/ ...

  4. CA证书介绍与格式转换

    CA证书介绍与格式转换 概念 PKCS 公钥加密标准(Public Key Cryptography Standards, PKCS),此一标准的设计与发布皆由RSA资讯安全公司(英语:RSA Sec ...

  5. 龙芯发布 .NET 6 SDK 6.0.105-ea1 LoongArch64 版本

    龙芯平台.NET,是龙芯公司基于开源社区.NET独立研发适配的龙芯版本,我们会长期进行安全更新和错误修复,并持续进行性能优化.社区.NET7版本开始已经原生支持LoongArch64架构源码.具备如下 ...

  6. 分享一个网上搜不到的「Redis」实现「聊天回合制」的方案

    前言 为什么说网上搜不到,因为关于聊天回合制的方案作者本人快把百度搜秃噜了也没找到,好在最终是公司一个关系不错的大佬帮提供了点思路,最终作者将其完整实现了出来. 分享出来大家可以收藏,万一你哪天也碰到 ...

  7. 二、shell 脚本条件测试

    目录 一.条件测试 test 格式 文件测试 文件测试常见选项 整数值比较 字符串比较 浮点数的运算 逻辑测试 二.if语句 1单分支 2双分支结构 3多分支结构 三元运算符 三.case 一.条件测 ...

  8. idea运行Tomcat出现 Address localhost:8080 is already in useAddress localhost:8080 is already in use

    使用IDEA运行 tomcat时出现 Address localhost:8080 is already in use,就很奇怪,我明明只有这一个程序呀,怎么还会被占用.后来想想可能就是被其他进程占用 ...

  9. ShardingSphere-proxy-5.0.0容量范围分片的实现(五)

    一.修改配置文件config-sharding.yaml,并重启服务 # # Licensed to the Apache Software Foundation (ASF) under one or ...

  10. UiPath文本操作Get OCR Text的介绍和使用

    一.Get OCR Text操作的介绍 使用OCR屏幕抓取方法从指示的UI元素或图像中提取字符串及其信息.执行屏幕抓取操作时,还可以自动生成此活动以及容器.默认情况下,使用Google OCR引擎. ...