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

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

了解更多详情>>

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

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

AI目标分割能力,无需绿幕即可实现快速视频抠图相关推荐

  1. java绿幕抠图_无需绿幕的全自动视频抠图工具|unscreen

    早前我有分享过用AI算法去除图片背景的方法(AI抠图),最近看到群里有人分享了一个视频抠图的网站.同大家一起分享下. ​ 抠图是一个相关行业的必备技能,但是大部分小白只有看大声炫技的份.此时多么希望能 ...

  2. python 抠图白幕_巧用Python,视频抠图无需绿幕

    最近参加超越杯发生了一段小插曲,主办方要求提交白底的团队介绍VCR,然而之前没有注意到这点,就找了个风景优美的地方拍摄,直到截止前才发现大事不妙. 此时自然而然地就想到抠图了!然而这次的视频背景花里胡 ...

  3. modnet是一个无需绿幕,扣人像,笔记本上跑到10-20帧

    我们提出了一个新颖的多任务学习系统,它结合了外观和运动线索,以更好地对环境进行语义推理.我们引入了一个用于联合车辆检测和运动分割的统一架构.在这个架构中,两个任务之间共享一个双流编码器.为了在自动驾驶 ...

  4. 利用RVM与FastDeploy实现高效视频绿幕抠像:挽救视频剪辑师的工作效率

    目录 引言 RVM: Robust Video Matting FastDeploy: 快速部署 1.安装FastDeploy环境 2.运行官方RVM抠像测试代码

  5. 没有绿幕,AI也能完美视频抠图,发丝毕现,毫无违和感 | CVPR

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在阳台上给小姐姐拍个视频: 再把她P到喷泉广场: 需要几步? 现在,无需绿幕,AI 就能搞定这件事. 就像这样,随便用手机给小姐姐拍张照片, ...

  6. UE4 实时AI抠像 -- 不需绿幕

    近期,有个活是要用到NVIDIA MAXINE-VFX-SDK的AI实时抠像.以下记录一下使用过程. 具体的效果见: [UE5 AI实时抠像插件] https://www.bilibili.com/v ...

  7. opencv 图像 抠图 算法_人工智能 | 不用绿幕也能实时抠图,商汤等提出只需单张图像、单个模型的新方法MODNet...

    openEA开源周刊 openEA开源社区的官方运营载体 这里每天给大家呈现有价值的开源资讯,欢迎您的来稿与推荐,点击上方蓝色字,加入我们吧! 摘要:近日,香港城市大学和商汤提出一种新型人像抠图方法 ...

  8. 人像抠图 人体抠图SDK、AI人像分割SDK、AI智能抠像、视频人体抠像换背景

    人体抠图SDK.AI人像分割(智能抠像) 是通过领先的AI技术,可以迅速精准地分离出视频.图片中的人像.实景抠像,无需绿幕.AE.PR等繁琐复杂工具,简单几秒即可获取抠像画面. 随时随地抠像,背景任意 ...

  9. 编程去除背景绿幕抠图,基于.NET+OpenCVSharp

    摘要:本文介绍了一种使用OpenCVSharp对摄像头中的绿幕视频进行实时"抠人像.替换背景"的方式,对于项目中的算法进行了分析.本文中给出了简化OpenCVSharp中Mat.M ...

最新文章

  1. 2022-2028年中国文化旅游业投资分析及前景预测报告(上中下卷)
  2. C++11的for循环使用auto的新用法
  3. java 语义_Java文件合并变得语义化
  4. 开源代码的使用 二次开发
  5. C++中使用try{}catch()的优/缺点
  6. 我为什么不无偿加班,你也不应该
  7. 【Java 数据结构】二叉树的遍历和基本操作
  8. Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)...
  9. 读书和不读书有什么区别呢?
  10. VMware桥接模式下虚拟机ping主机不通
  11. IEEE754标准转换
  12. 侍魂服务器维护,侍魂手游8月5日停机维护更新公告
  13. 强推win10损害用户利益?这锅微软不背
  14. IMX8开发板Ubuntu20系统下外设界面功能测试-迅为i.MX8MM
  15. 没想到吧!玩游戏还能学习编程,这15款编程游戏你一定要看看
  16. 利用java查看本机的cpu、内存情况
  17. nvidia nx平台GStreamer pipeline异常问题调试记录2
  18. ubuntu 16.04无法locate boot-repair的解决方法
  19. 一直不懂scope.$index, scope.row是什么意思,现在知道了
  20. 三极管放大电路的原理与识图技巧

热门文章

  1. Qt之开源绘图控件QCustomPlot
  2. ArcGIS教程:删除重复的要素之---线
  3. 嵌入式培训经验分享——C++入门基础知识
  4. oracle存储过程语法和用法,oracle存储过程 语法 函数 总结
  5. Go后端博客项目实战_持续更新ing
  6. 【andriod】 设备APP连接云端平台的各种细节部署和操作
  7. tpfancontrol v062 for Thinkpad T410i 配置文件
  8. c#中的interface abstract与virtual的介绍与使用
  9. Docker架构和原理
  10. 2022.12 青少年机器人技术等级考试理论综合试卷(一级)