基于ModelArts实现"魔法换天"视频操作【玩转华为云】

举报
运气男孩 发表于 2022/06/29 15:09:51 2022/06/29
【摘要】 前言无论是拍人拍景或是其他,“天空”都可以说是摄像中的关键元素。比如,一张平平无奇的景色图加上落日余晖的天空色调,是不是有内味了?(随手就可以变换出各种天空效果:晴天、彩虹、晚霞、暮光、夕阳等等)。当然,自然的天空还不是最酷炫的,今天给大家介绍一款基于原生视频的AI处理方法,不仅可以一键切置换天空背景,还可以打造任意“天空之城”。比如,《星际迷航》等科幻电影中经常出现的浩瀚星空、宇宙飞船,也...

    前言

    无论是拍人拍景或是其他,“天空”都可以说是摄像中的关键元素。比如,一张平平无奇的景色图加上落日余晖的天空色调,是不是有内味了?(随手就可以变换出各种天空效果:晴天、彩虹、晚霞、暮光、夕阳等等)。

    当然,自然的天空还不是最酷炫的,今天给大家介绍一款基于原生视频的AI处理方法,不仅可以一键切置换天空背景,还可以打造任意“天空之城”。比如,《星际迷航》等科幻电影中经常出现的浩瀚星空、宇宙飞船,也可以利用这项技术融入随手拍的视频中,路人拍摄的公路片也能秒变科幻片,画面毫无违和感。好像只要脑洞够大,利用这项AI技术,可以创作无限种玩法,下面就简单介绍一下华为云的ModelArts 平台,本次ai换天是基于它来实现。

    ModelArts 是面向开发者的一站式 AI 开发平台,为机器学习与深度学习提供海量数据预处理及交互式智能标注、大规模分布式训练、自动化模型生成,及端-边-云模型按需部署能力,帮助用户快速创建和部署模型,管理全周期 AI 工作流。

    基础环境准备

    在使用 ModelArts 进行 AI 开发前,需先完成以下基础操作哦(如有已完成部分,请忽略),主要分为4步(注册–>实名认证–>服务授权–>领代金券):

    1. 使用手机号注册华为云账号:点击注册

    2. 点此去完成实名认证,账号类型选"个人",个人认证类型推荐使用"扫码认证"。 

      image.png

    3. 点此进入 ModelArts 控制台数据管理页面,上方会提示访问授权,点击【服务授权】按钮,按下图顺序操作: 

      image.png

    4. 进入 ModelArts 控制台首页,如下图,点击页面上的"彩蛋",领取新手福利代金券!后续步骤可能会产生资源消耗费用,请务必领取。 

    以上操作,也提供了详细的视频教程,点此查看:ModelArts环境配置

    image.png

    算法流程

    大致可以分为三个步骤:

    (1) 天空抠图

    这一步主要是通过对蒙版数据集进行训练,将图片中的天空和其它物体进行像素级的划分,将天空部分从图片中分离。

    (2) 运动估计

    对图片中物体的位移情况进行分析,预估相机的移动方向,使替换后的天空和之前的天空位移一致。

    (3) 图像混合

    将去掉天空的原视频和要替换后的天空视频进行融合,同时对非天空的部分采用色彩叠加,是天空和其它物体的视觉效果相近,是视频效果更加逼真。

    最后,算法使用数据增强的方法模拟出同一张图片在不同光照和天气的情况下的图片,使算法具有更强的适应性。


    基于ModelArts实现"魔法换天"视频操作具体步骤


    1.点击进入 【AI魔法换天】的案例页面,并完成基础配置。

    本次实践使用的是AI框架:PyTorch-1.4,在CPU和GPU下面均可运行,CPU环境运行预计花费9分钟,GPU环境运行预计花费2分钟;

    点击 Run in ModelArts,进入 JupyterLab 页面:

    稍等30s左右,等待项目初始化完毕......

    由于在GPU下运行的更快一些,所以我们需要进行规格切换,并选择 [限时免费]GPU: 1*V100|CPU: 8核 64GB ,点击切换规格。

    稍等一会就切换完成,如下所示:

    切换AI框架:PyTorch-1.4

    2.安装和导入依赖包

    3.设定算法参数

    SkyAR算法提供了以下五个参数来调整换天的效果:

    skybox_center_crop: 天空体中心偏移

    auto_light_matching: 是否自动亮度匹配

    relighting_factor: 补光

    recoloring_factor: 重新着色

    halo_effect: 是否开启光环效应

    且提供了 datadir  skybox 两个参数来指定待处理的原视频和要替换的天空图片,通过路径进行指定即可,如下所示:

    4.预览一下原视频

    5.预览一下要替换的天空图片

    6.定义SkyFilter类

    类中实现模型结构定义、模型加载、处理视频等函数

    7.开始处理视频

    替换后输出的视频为out.avi,前后对比的视频为compare.avi

    8.对比原视频和处理后的视频

    9.生成你自己的换天视频

    三个步骤实现自定义视频的换天效果:

    (1)在自己本地电脑上准备好一个待处理的mp4视频文件和一张天空图片;

    (2)参考此文档,将视频文件和图片文件分别上传到ModelArts JupyterLab的SkyAR/test_videos目录和SkyAR/skybox目录下;

    (3)修改步骤3 “设定算法参数” 中datadir  skybox 两个参数的路径为你刚上传的视频和图片路径;

    (4)重新运行步骤3~8。

    最后效果是这样

    也可以是这样:超级大月亮很有感觉有木有

    总结

    通过本次实践,我基本了解

    1. 了解图像分割的基本应用;

    2. 了解运动估计的基本应用;

    3. 了解图像混合的基本应用。

    同样感受到了AI的有趣,后面会体验更多的ai案例。

    感恩能与大家在华为云遇见!希望能与大家一起在华为云社区共同成长。

    【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
    • 点赞
    • 收藏
    • 关注作者

    评论(0

    0/1000
    抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。