【计算摄影】先拍照后对焦,浅析基于深度估计的景深编辑与背景虚化
大家好,这是专栏《计算摄影》的第四篇文章,这一个专栏来自于计算机科学与摄影艺术的交叉学科。今天我们讨论的问题是关于深度估计和景深编辑。
作者&编辑 | 言有三
1 景深与背景虚化基础
1.1 什么是景深与虚化
动植物摄影,人像摄影中常使用浅景深来虚化背景,突出目标主体,可以大幅提升作品的艺术美感。
当被摄物体位于镜头前方(焦点的前、后)一定长度的空间内时,其在底片上的成像位于同一个弥散圆之间,呈现给人眼的感觉就是成像清晰,这段空间的长度即为景深,也称DOF (Depth of Field),当超过景深范围时,呈现渐渐模糊,景深范围示意图如下。
如果景深范围比较窄,很容易拍摄出主体成像清晰,背景成像模糊,即我们常说的背景虚化效果,下图展示的就是一些典型代表。
1.2 景深编辑
目前要想对拍摄后的照片进行精确的景深编辑,需要使用到光场相机,它在拍照整个过程中记录了物体在空间中传播时的信息流数据,从而可以后期进行焦点的调节。而普通的数码相机则没有保留相关信息,聚焦后聚焦区域中央部分是清晰的,边缘部分是模糊的。
那么如何对普通相机拍摄的照片进行后期的景深编辑呢?就需要重新对图片中的目标进行深度估计,以Focos应用为例,它可以实现先拍照后对焦,实现景深的任意编辑,连续两年获得AppStore精选推荐。
它在最初的时候利用iPhone的多镜头设计,在拍摄时得到3D模型,后期进行编辑合成景深效果,还可以添加模拟光源照明。升级后的版本支持对任意的照片进行景深模拟,不限定于iPhone拍摄好的照片,如下图展示了使用Focos处理一张照片的效果。
从左到右第一张图为原图,第二张图为景深估计的效果,第三张图为将光圈调至最大,即编辑景深的效果,实际上就是根据深度信息得到前景目标后,对背景进行虚化,所以其中关键问题就是深度估计。
2 基于深度学习的深度估计
从上一节我们可以看出,要想做后期的景深编辑,就必须要先完成深度估计这个问题,深度估计在非深度学习时代,通常是通过多目立体视觉的方法来获取,如今则多采用深度学习模型,下面我们从三个方面来说说这个问题。
2.1 绝对深度估计模型与数据集
带有绝对深度信息的数据集非常多,其中最具有代表性的有2个,分别是NYUv2数据集[1],KITTI数据集[2]。
NYUv2数据集是室内深度预测数据集,使用Kinect深度相机采集,包含3个城市,464个场景,1449幅对齐的RGB图像和深度图,其中深度的范围是0~10m,另外还数据集还提供语义和实例标签,下图是案例图。
NYUv2数据集的主要问题是场景有限且内容比较杂乱,没有明显的人等目标主体。
KITTI深度预测数据集是室外行车道路数据集,使用激光雷达采集,包含93000对RGB图和深度图,其深度范围是 0~70m。KITTIes数据集的主要问题是场景全部为室外道路,比较单一,只适合研究自动驾驶等相关问题。
深度估计模型的输入是彩色图,输出是单通道的灰度图,这与分割问题类似,可以直接使用编解码模型来进行预测。
早期研究者[3]使用CNN模型进行深度估计时都会使用跳层连接等方法融合多尺度的特征,如下图所示。
使用了两个尺度的特征,上面的通道为全局尺度,下面的通道为局部尺度。全局尺度估计出粗粒度深度预测结果图Coarse,与局部尺度融合后再估计最终的细粒度深度预测结果图Fine。
对于这样的模型的改进,可以有许多方向,包括:
(1) 使用具有更强表达能力的特征提取模型,比如使用VGG模型代替AlexNet模型。
(2) 使用更多的尺度进行融合。
(3) 使用多任务联合训练,将深度预测,表面方向预测,图像分割等任务同时进行学习,由于图像分割任务具有高层语义的感知能力,所以可以提升深度预测结果对于语义目标信息保持的能力。
(4) 后处理。比如使用在语义分割领域中常被使用的条件随机场模型(CRF)与CNN模型结合来提升精度。
2.2 相对深度估计模型与数据集
真实的深度数据集采集具有较高的难度,如NYUv2数据集和KITTI数据集等场景很有限,基于它们训练的模型泛化能力较差,如果想采集到类似于ImageNet等具有足够丰富场景的深度数据集需要极其昂贵的代价。考虑到图片中的点与点之间具有相对远近关系,有研究者构建了相对深度数据库DIW(Depth in the Wild)[4],它使用随机的关键词从flickr网站中爬取图片,不需要使用深度摄像头采集设备来对每一幅图采集深度。
相对深度的标注方法为通过对图像点进行采样,每一张图都采样一对点,这一对点采用随机选择或以随机水平线作为约束来进行选择,最终的数据集中随机选择和约束选择各占一半,从而满足自然场景的随机性。两个采集的点之间具有相对远近关系,将其标注为这一对点的相对深度,最终得到了包括495000个训练样本的大型数据集,下图分别展示了标注案例和结果。
相对深度估计模型[4]依旧可以是编解码模型,其不同之处在于损失函数。
假如图片为I,进行K次采样,每一次采样为{ik,jk,rk},其中ik是第一个点的位置,jk是第2个点的位置,rk是它们之间的深度关系,rk取值范围是{+1,-1,0},z是深度预测图,zik,zjk是点ik和jk的深度,损失定义如下:
这实际上就是一个排序损失,它鼓励隔的近的点之间的差值小,反之则大。
2.3 深度估计模型的展望
基于绝对深度数据与相对深度数据的监督模型相对简单,而实际上由于大规模深度数据集的缺乏,无监督[5],半监督[6]的单目图像深度估计方法是更有学术价值的研究方向。
另外,真实的摄影图像中因为浅景深常常包含离焦模糊,导致深度预测模型泛化到真实摄影图像时效果不好。由于深度信息与成像的模糊情况是有关的,因此有许多方法尝试从对焦模糊信息中恢复深度,这些我们以后会专题介绍。
[1] Silberman N, Hoiem D, Kohli P, et al. Indoor segmentation and support inference from rgbd images[C]//European conference on computer vision. Springer, Berlin, Heidelberg, 2012: 746-760.
[2] Uhrig J, Schneider N, Schneider L, et al. Sparsity invariant cnns[C]//2017 International Conference on 3D Vision (3DV). IEEE, 2017: 11-20.
[3] Eigen D, Puhrsch C, Fergus R. Depth map prediction from a single image using a multi-scale deep network[C]//Advances in neural information processing systems. 2014: 2366-2374.
[4] Chen W, Fu Z, Yang D, et al. Single-image depth perception in the wild[C]//Advances in neural information processing systems. 2016: 730-738.
[5] Garg R, BG V K, Carneiro G, et al. Unsupervised cnn for single view depth estimation: Geometry to the rescue[C]//European Conference on Computer Vision. Springer, Cham, 2016: 740-756.
[6] Kuznietsov Y, Stuckler J, Leibe B. Semi-supervised deep learning for monocular depth map prediction[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 6647-6655.
总结
深度估计和景深编辑涉及多个领域的知识,在摄影美学作品的创作和编辑中有重要意义,这是一个非常值得关注的有意思的应用领域,更多计算摄影内容学习可以参考有三AI秋季划-图像质量组。
有三AI秋季划-图像质量组
图像质量小组需要掌握与图像质量相关的内容,学习的东西包括8大方向:图像质量评价,图像构图分析,图像降噪,图像对比度增强,图像去模糊与超分辨,图像风格化,图像编辑,图像修复。了解详细请阅读以下文章和视频:
转载文章请后台联系
侵权必究