当前位置:网站首页>AI目标分割能力,无需绿幕即可实现快速视频抠图
AI目标分割能力,无需绿幕即可实现快速视频抠图
2022-08-02 08:17:00 【nginx】
华为视频编辑服务近期上线目标分割能力,可通过AI智能抠图精细化分割视频中的目标物体,并且不局限于特定的物体类别,在主体明确、背景相对简单的视频中进行主体和背景的分割,可以取得不错的处理效果。
应用场景
目标分割能力多应用于视频直播、在线教育、论坛会议等场景。比如,在卖货直播的场景中,可以将直播背景替换成商品详情页的轮播画面,便于用户及时了解商品;在线上论坛或者视频会议中,将背景替换成PPT内容或者办公场景,营造学习办公的严肃氛围。同样,目标分割能力也可满足用户日常趣味剪辑,用户可以通过目标分割能力剪辑人像视频,然后将背景切换各国名景,足不出户便能实现“周游世界”。
除了更换视频背景,目标分割能力还可应用于影视播放,通过目标抠图,避免弹幕遮挡剧情主体,优化用户观看体验。结合其他技术能力,还可以将分割后的目标物体进行复制和删除,甚至调整目标物体的动作时间,打造更具创意的视频作品。
实现原理
那么,目标分割能力是怎么实现的呢?
首先,用户需要选择目标物体,然后再进行AI目标分割。通过给定视频第一帧图像需要分割目标物体的对应掩码,AI模型会自动在后续每一帧的视频帧中匹配这个物体并尝试分割出来。并且,模型将会保存中间帧分割效果好的结果掩码与第一帧的掩码信息相结合,在后续视频帧中进行匹配,可以精准勾勒目标物体的边缘细节,进一步提升目标分割的准确度。
DEMO演示

集成方式
1. 开发准备
详细准备步骤可参考华为开发者联盟官网
2.编辑工程集成
2.1 设置应用的鉴权信息
可以通过api_key或者Access Token来设置应用鉴权信息。
通过setAccessToken方法设置Access Token,在应用启动时初始化设置一次即可,无需多次设置。
通过setApiKey方法设置api_key,在应用启动时初始化设置一次即可,无需多次设置。
MediaApplication.getInstance().setAccessToken("your access token");
2.2设置唯一标识ID,即License ID。
MediaApplication.getInstance().setApiKey("your ApiKey");
License ID是进行管控的有效凭证,您要保证设置License ID的唯一性。
2.2.1初始化Editor运行环境
MediaApplication.getInstance().setLicenseId("License ID");
创建编辑工程,需要首先创建Editor对象并初始化其运行环境。当离开编辑工程时,应释放Editor实例。
(1)创建Editor对象
(2)指定预览窗口的布局位置
HuaweiVideoEditor editor = HuaweiVideoEditor.create(getApplicationContext());
预览窗口负责视频图像画面的渲染,由视频编辑原子能力SDK内部创建SurfaceView来实现。在创建窗口之前,需要在您的App中指定预览窗口的布局位置。
(3)初始化运行环境,如果License鉴权失败,会抛出LicenseException。
<LinearLayoutandroid: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);
当Editor对象创建之后,此时还没有占用实际的系统资源,需要手动选择其环境初始化的时机,此时视频编辑原子能力SDK内部会创建必须的线程和定时器等。
3. “目标分割”能力集成
try {editor.initEnvironment();} catch (LicenseException error) {SmartLog.e(TAG, "initEnvironment failed: " + error.getErrorMsg());finish();return;}
了解更多详情>>
// 初始化目标分割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 最新技术资讯~
边栏推荐
- Figure robot software digital twin station oil and gas pipelines, oil and gas transportation control platform
- 如何做好项目管理
- 【特别提醒】订阅此专栏的用户请先阅读本文再决定是否需要购买此专栏
- Flink 程序剖析
- C语言_指针
- Analysis of software testing technology How far is Turing test from us
- PyQt5 (a) PyQt5 installation and configuration, read from the folder and display images, simulation to generate the sketch image
- JSP页面中page指令contentPage/pageEncoding具有什么功能呢?
- prometheus监控mysql_galera集群
- C语言_条件编译
猜你喜欢

Biotin-C6-amine|N-biotinyl-1,6-hexanediamine|CAS: 65953-56-2

Application and case analysis of CASA model and CENTURY model

EPSANet: An Efficient Pyramid Split Attention Block on Convolutional Neural Network

商业智能平台BI 商业智能分析平台 如何选择合适的商业智能平台BI

ip地址那点事(二)

Pycharm (1) the basic use of tutorial

Business Intelligence Platform BI Business Intelligence Analysis Platform How to Choose the Right Business Intelligence Platform BI

PyCharm usage tutorial (detailed version - graphic and text combination)

Biotinyl Cystamine | CAS: 128915-82-2 | biotin cysteamine

C语言基础_共用体
随机推荐
CASA模型、CENTURY模型应用与案例分析
QT web 开发 - 笔记 - 3
在 QT Creator 上配置 opencv 环境的一些认识和注意点
R语言plotly可视化:使用plotly可视化模型预测真阳性率(True positive)TPR和假阳性率(False positive)FPR在不同阈值(threshold)下的曲线
Application and case analysis of CASA model and CENTURY model
PyCharm使用教程(较详细,图+文)
Analysis of software testing technology How far is Turing test from us
优炫数据库的逻辑复制怎么样?
UVM之sequence机制
PyCharm usage tutorial (more detailed, picture + text)
Database triggers and transactions
[OC学习笔记]weak的实现原理
R language plotly visualization: plotly visualizes the scatter plot of the actual value of the regression model and the predicted value of the regression, analyzes the prediction performance of the re
如何建立私域流量?私域流量对企业有什么好处?
C语言基础_结构体
商业智能平台BI 商业智能分析平台 如何选择合适的商业智能平台BI
查看变量的数据格式
etcd implements large-scale service governance application combat
PyCharm usage tutorial (detailed version - graphic and text combination)
UVM信息服务机制