实时警报通知:微信告警通知的重要性解析
784
2023-02-05
机器视觉技术有一大进步谷歌实现了对移动镜头下移动人物的深度预测
人类的视觉神经是一套神奇的系统。
对于试图超越人类视觉能力的计算机视觉技术来说,重建三维空间时的深度预测这一技能却是一个绕不开的难题。毕竟,机器的输入只是一个二维平面上的像素分布数据,而利用两个观测点进行三角测量却需要多相机阵列或对象保持静止。面对“人机皆动”的动态场景,当下的计算机视觉算法就无能为力了。
图 |输入镜头和人物都在自由移动的普通视频(左)得到深度图(右),此深度图中越亮表示离相机越近。(来源:Tali Dekel,et al./Google AI)
我们的世界并不是二维平面,虽然人类视觉系统可以轻易地将看到的 2D 图像转化为 3D,但机器该如何知晓深度呢?目前的主流方法是利用三角测量(Triangulation),三角测量理论是通过两点观测来确定对象的位置,即两个观测点和对象处于同一平面,通过两个观测点的距离和两个夹角来计算对象的位置。完成三角测量需要有多个相机组成阵列,如 Google’sJump,若一个镜头的话,就要在镜头移动的时候对象保持静止。
而在镜头和场景里的对象都在自由移动的情况下,不确定的位置使三角测量算法感到迷惑迷茫甚至绝望,于是大多现存的深度预测方法就会开始“瞎算”,要么过滤掉移动对象,将他们视为噪音,直接标记为 0,要么假装目标没有移动,计算出不正确的深度值。
图 | 传统立体测量场景是利用同时的两点观测数据,即目标物静止(左);镜头和对象在同时移动的测量场景,三角测量理论无法适用(右)。(来源:Tali Dekel,et al./Google AI)
面对这种不科学的做法,GoogleAI 的研究人员创造了首个针对于镜头和人体同时移动情况的深度学习模型,并不是传统针对静止对象的深度预测模型,无需 3D 三角测量,仅利用镜头和人物都在移动的普通视频数据,完美输出深度图(一种三维场景的信息表达方式,图的像素值反映场景中物体到相机的距离)。这与现实世界大多数物体都在运动的情况契合,并且模型表现优于现有最佳深度预测模型,能真实还原移动人物的位置,如此,一些视频里动态人物的扣除、遮挡镜头的还原,一些 3D 效果渲染,都不在话下。
训练数据的收集
此深度预测模型利用有监督的方式进行训练,即需要自然场景下的有移动镜头的视频,并且有精准的深度数据。那么如何得到有标注的训练数据集呢?这就要从 2016 年 11 月开始风靡互联网的 YouTube 人体模特挑战(Mannequin Challenge)说起了。
在这个挑战中,人静止于各种姿势,如同模特,镜头移动过整个场景拍成视频,素材里整个场景静止,只有相机在移动,所以基于三角测量的一些 3D 重建方法,如 multi-view-stereo (MVS),可以精准地计算出整个场景包括人物的深度,从而得到深度标注。整个数据集约有 2000 个视频,涵盖各种真实场景下的各种造型各种姿势的人类。
故,风靡一时的 Mannequin Challenge 视频,在此将做出卓越的贡献。
图|YouTube 上人体模特挑战的视频,视频中人物以各种姿势造型静止,镜头划过整个静止场景,传统 3D 重建算法 MVS 计算出所有视频中的深度值作为训练数据集的标注(来源:Tali Dekel,et al./Google AI)
预测移动人物的深度
但新的问题产生了,人体模特挑战视频里人物是静止的,想要处理移动镜头下的移动人物,如何解决?
一个可能的解决方案:从视频的每一帧来单独推断深度值,即仅将单个帧输入模型。这种方案所训练的模型的确优于现有的最佳单图像深度预测方法,但考虑多帧图像提供的信息,模型是否会进一步提升呢?
这就是运动视差。由于透视,从不同位置观察静止画面时,近处物体比远处物体有更大视差,这种视差信息可以判断深度信息。因此,研究者引入了每两帧画面之间的 2D 光流图,即两帧图像间像素位移信息,来辅助深度预测。光流(opticalflow)是指空间运动物体在观察成像平面上的像素的瞬时速度,利用图像序列中像素在时间上的变化以及相邻帧之间相关性,根据视差原理可以计算出相邻帧物体的运动信息。
光流一般是由于目标本身的移动、相机的移动或两者共同运动产生,所以场景深度、相机的相对位置自然会影响光流图,相机位置是已知的(利用视觉惯性测距得到),故可以得到静态场景的初始深度值,但人物同时也在运动,所以在得到初始深度图时,人物会产生噪音,利用人体切割模型,将人物区域掩去,剩下的就是静态的场景深度信息。故模型输入为 RGB 图像、人物掩蔽图,和利用 SfM 对光流图计算出的掩蔽人物后的深度图。
图|深度预测网络模型的输入输出,模型的输入包括:一张 RGB 图像(Framet),一张掩去人物的图像,和一张计算得到的无人物初始深度图;模型的输出是 Framet 图像的深度图。训练集的深度图标注是 MVA 方法计算的深度值。(来源:Tali Dekel,et al./Google AI)
最终模型
研究人员最终采用了沙漏模型(hourglass network)的一个变种作为模型结构,将最近邻上采样层变为双线性上采样层。沙漏模型一般结构如下,相同颜色的方块为相同结构的网络,H是卷积核 3x3 的卷积网络,所有其他网络结构是 Inception Module,Inception Module 是一种区别于传统将卷积层串联,而将 1x1、3x3以及5x5的卷积层进行并联的结构。
图 |沙漏模型(hourgalss network)具体结构。(来源:WeifengChen,et al./University of Michigan)
这个模型可以预测有移动人类场景的深度,细化其他地方的深度,实现移动人物的去除。由于人体有着大概一致的形状和物理维度,所以可以通过训练数据来先验地学习到这些信息。因此,这个深度预估模型可以实现对任意移动人类和任意移动相机情况下的深度预测。
和一些业界现有最佳深度预测模型相比,此模型效果优越,输出的深度图十分完美。
图 |深度预测网络模型表现对比:上层的 DORN 和 Chen 等人设计的模型都为单图深度预估方法,下层的 DeMoN 为基于立体视觉的方法(来源:Tali Dekel,et al./Google AI)
该深度预测模型可以在一些视频中形成3D感知的效果,比如合成散焦。下图是利用模型将普通视频合成散焦。
图 |产生散景视频特效,视频由Wind Walk Travel Videos提供。(来源:Tali Dekel,et al./Google AI)
图 | 填充被遮挡的视频。(来源:Tali Dekel, et al./Google AI)
这么强大的模型,这么优秀的思路,在增强现实、3D 渲染等一些计算机视觉领域自然有其用武之地。
发表评论
暂时没有评论,来抢沙发吧~