如何更顺滑的添加水印?
谷歌的这项新技术,让文本简直就像贴在地面上,哪怕是在沙尘横飞的场景里。
方法也很简单。
只需输入一段视频,和指定对象的粗略蒙版。
那这个对象的所有相关场景元素,都能解锁!
比如人和狗的影子。
还有黑天鹅缓缓拂过的涟漪~
以及上述那个赛车疾驰过后激起的沙尘。
不管是任意对象和主体,不论怎么移动,所有元素都能抠出来。
这就是谷歌最新的视频分层技术 ——omnimatte,入选 CVPR 2021 Oral。
目前这项技术已开源。
计算机视觉在分割图像或视频中的对象方面越来越有效,然而与对象相关的场景效果。
比如阴影、反射、产生的烟雾等场景效果常常被忽略。
而识别这些场景效果,对提高 AI 的视觉理解很重要,那谷歌这项新技术又是如何实现的呢?
简单来说,用分层神经网络渲染方法自监督训练 CNN,来将主体与背景图像分割开来。
由于 CNN 的特有结构,会有倾向性地学习图像效果之间的相关性,且相关性却强,CNN 越容易学习。
输入一段有移动物体的视频,以及一个或者多个标记主体的粗略分割蒙版。
首先,使用现成的分割网络比如 Mask RCNN,来讲这些主体分成多个遮罩层和背景噪声图层,并按照某种规则进行排序。
比如,在一个骑手、一辆自行车以及几个路人的场景中,就会把骑手和自行车归入一个层,把人群归入第二层。
omnimatte 模型是一个二维 UNet,逐帧处理视频。每一帧都用现成的技术来计算物体掩码,来标记运动中的主体,并寻找和关联蒙版中未捕捉到的效果,比如阴影、反射或者烟雾,重建输入帧。
为了保证其他静止的背景元素不被捕获,研究人员引入了稀疏损失。
此外,还计算了视频中每一帧和连续帧之间的密集光流场,为网络提供与该层对象相关的流信息。
最终生成 Alpha 图像(不透明度图)和 RGBA 彩色图像,尤其 RGBA 图像,简直可以说是视频/图像剪辑法宝!
目前这一技术已经开源,配置环境如下:
Linux
Python 3.6+
英伟达 GPU + CUDA CuDNN
技术效果如此,那有什么样的用途呢?
首先就可以复制或者删除图像。
还有顺滑地切换背景。
还可以实现这一经典操作,让原本依次掉水的小孩一起入水~
最后再来说一下背后的团队。
这项研究由谷歌研究院、牛津大学以及魏茨曼科学研究所共同完成。
其中,论文一作是牛津大学四年级博士生 Erika Lu,曾是谷歌实习生,在麻省理工学院获得了计算机科学与工程学士学位。
论文链接:
https://arxiv.org/pdf/2105.06993.pdf