利用光场合成与弥散圆渲染的单幅图像重聚焦 下载: 1651次
1 引言
光场相机通过在相机镜头和图像传感器之间放置微透镜阵列来捕捉4维(4D)光场,以记录场景中所有光线的辐射和方向。依据光场信息可以实现重聚焦、视点变换、深度估计等多项应用[1]。在光场的典型应用中,需要从原始4D光场中计算出聚焦于不同平面的多个视角全聚焦图像,称为聚焦堆栈[2]。相机阵列[3]获取光场的方式不同,通过相机在空间的一定排布来同时抓取一系列视角略有差别的图像,从而重构出光场数据,获得比全光相机更高的分辨率,但需要复杂的软硬件设计。
光场图像经过数字重聚焦后的结果类似数字单反相机的浅景深视图效果。然而不管是光场相机还是数字单反相机都需要高质量的镜头与高分辨率的探测器,体积大、成本高,为解决此问题,多种方法已应用于模拟光场相机的重聚焦效果。McGraw[4]使用2D卷积,将输入图像与它的深度图传输至低秩线性滤波器中,以达到近似散焦的效果,但是没有真实的浅景深图像作为参考,缺乏视觉效果;Zhang等[5]使用边界模型渲染方法,仅能在前景和背景两个深度中进行重聚焦模拟;Liu等[6]从相机阵列中获取多视角子图进行立体匹配,渲染了模糊效果,但仍需输入多个子图。
基于图像的渲染(IBR)是一种从给定的视图中渲染不同物体和场景的基本计算机图形学问题[7]。获得多视角视图(聚焦堆栈)是光场研究中基本的IBR问题,除了全光相机和相机阵列的采样方法,还可以归结为两个方向,即基于几何结构的视图合成和基于深度学习的视图合成。基于几何结构的方法有:Cayon等[8]通过计算每幅输入图片的几何结构,将相邻图片重新投影混叠出新的视图,从而避免繁杂的网格估计;光流反馈算法[9]根据不同帧光流估计相机相对位置,以构建稀疏点云。基于深度学习的方法如Kalantari等[10]输入四个角的图片,以光场真实视角图作为样本,使用深度网络单独预测每个视角的深度,以恢复出整个光场。这些方法都需要多幅图像,并且需精心的场景布置,计算成本很高。
本文提出一种基于深度学习的单幅图像模拟光场重聚焦的方法,将光场合成与弥散圆渲染相结合,搭建网络,构建虚拟相机结构,实现单幅图像动态变焦。本文方法仅需合成3×3的聚焦堆栈,无需恢复整个光场,同时将深度估计转换为视差,避免了视差估计所需的立体视角匹配计算,因此大大降低了计算成本。本文方法将真实光场重聚焦视图作为训练样本,提升了峰值信噪比(PSNR)和结构相似度(SSIM)。
2 算法概述
单幅图像动态重聚焦的整体框架如
1) 光场图像的预处理。计算子图像堆栈L(x,u),如
2) 基于聚焦堆栈的弥散圆渲染,即
3) 基于视差的弥散圆渲染,即
3 基本原理
3.1 光场数字重聚焦
Ng等[2]提出了数字重聚焦方法,定义4D光场LF(x',y',u,v),其中(u,v)表示主镜平面,(x',y')表示传感器成像平面,(x,y)表示合成的重聚焦平面,t表示像距,f'表示重聚焦平面与主镜平面的距离,如
重聚焦结果如
图 2. 光场数字重聚焦。(a)传感器图像;(b)子孔径图像;(c)重聚焦图像
Fig. 2. Light field digital refocusing. (a) Sensor image; (b) sub-aperture image; (c) refocused image
3.2 弥散圆渲染
将模糊渲染的方法引入到光场的重聚焦模拟中,与以往的滤波核估计方法相比,模糊渲染方法有很大优势,可以对单幅图像在深度维度上进行模糊渲染。弥散圆(CoC)渲染的过程为:根据深度图或者光场聚焦堆栈表示的物面相对关系,在不同的深度处计算CoC直径,渲染模糊效果,模拟出景深视图。在薄透镜系统中,CoC直径表示为[11]
式中:rc为CoC半径;h为物距;f为系统焦距,满足薄透镜方程1/h+1/t=1/f;D为有效孔径,可以用F数(光圈数)计算得出,即D=f/F;hq为渲染平面与薄透镜中心距离,此时的CoC为圆盘形。
在4D光场模型LF(x',y',u,v)中,定义γ为深度,对于x平面,γ=f',视差为d,参考背景长度为B,深度与视差的关系可以描述为[12]d=fB/γ。(2)式中,令h=γf,hq=γp,γf、γp分别为主镜平面和聚焦平面的深度,代入视差d,可以得到
式中:df、dp分别为主镜平面和聚焦平面的视差,B、df、D都为常数,K=D/2(B-df)为可调参数。
最后,使用聚集法进行CoC渲染,如
式中:I(p)、I(qi)为像素值;αc(qi)=4/
需要说明的是,不同相机系统在相同离焦量下的弥散圆尺寸是不同的,本文采用的深度是一个相对量,而实际弥散圆尺寸取决于具体的系统和成像距离(深度的绝对量),不同的绝对量模糊效果是完全不同的。在具体的、复杂的成像系统与拍摄场景中,需要对本文的建模方法进行改进,完善渲染方法,从而符合实际成像模型或者观察者的直观理解。
3.3 单目深度估计和3×3聚焦堆栈合成
针对单幅图像的动态重聚焦,本文从两个角度进行研究。采用先进的对抗生成网络的方法,设计两种如
图 4. 深度网络架构。(a)基于聚焦堆栈的方法;(b)基于视差的方法
Fig. 4. Deep network architecture. (a) Focused stack based method; (b) parallax based method
本文方法将总损失函数Ltotal结合对抗损失LGAN与内容损失Lcont,最终的优化目标为
DN的作用是在生成图像(采样于分布Pz)与真实图像(采样于数据分布pdata)对抗之间判别,两个网络架构中的pdata分别为真实聚焦堆栈和真实重聚焦图像的分布,对抗损失LGAN为
式中:LD(I)为DN输出;LG(z)为GN输出;V(LG,LD)为GN与DN的距离;DN使V(LG,LD)最大化,从而增大对抗损失;GN使V(LG,LD)最小化,从而减小对抗损失。
将生成的图像内容Ss与原始数据内容Sdata的L1范数作为内容损失,即
式中:对于基于聚焦堆栈的方法,Sdata为原始聚焦堆栈,Ss为合成的聚焦堆栈;对于基于视差的方法,Sdata为原始重聚焦图像,Ss为重聚焦渲染图像。
4 实验
4.1 实验平台和数据集
实验平台硬件配置为3.41 GHz CPU (Intel Core i7-6700),24 GB RAM,GPU采用NVIDIA GeForce GTX-1070ti,环境配置为Python3.6.8,TensorFlow1.9,CUDA9.2。
选取4个公开光场数据集,即Stanford[14]、UCSD[10]、Flower[13]、EPFL[15],如
表 1. 光场数据集参数
Table 1. Parameters for light field datasets
|
4.2 深度估计
采用最先进的生成对抗网络无监督单目深度估计方法,该方法将真实光场子孔径图像或者真实重聚焦的景深图作为样本,进行监督学习,能获取丰富的立体角度信息,可以学习到基于光场的深度估计函数表达。将本文方法与多种单目深度估计方法进行对比,如
图 5. 单目深度估计方法结果比较。(a)中心图像;(b)视差方法;(c)聚焦堆栈方法;(d) Godard等[16]的方法;(e) Cheng等[17]的归一化方法(SSIM:0.756);(f)归一化的视差方法(SSIM:0.823);(g)归一化的聚焦堆栈方法(SSIM:0.895);(h) Jeon等[18]的方法
Fig. 5. Comparison of monocular depth estimation results. (a) Center image; (b) disparity method; (c) focal stack method; (d) method proposed by Godard et al.[16]; (e) normalized method proposed by Cheng et al.[17](SSIM:0.756); (f) normalized disparity method (SSIM:0.823); (g) normalized focal stack method (SSIM: 0.895); (h) method proposed by Jeon et al.[18]
4.3 聚焦堆栈合成
本文聚焦堆栈合成方法结合了生成对抗网络的细节优化特点和在频域处理高维运动信息的优点,可以很好地学习到像素偏移信息,进行细节修复。从
图 6. 光场合成方法结果定性与定量对比。(a) Kalantari等[10]的方法;(b) Srinivasan等[13]的方法;(c)本文方法;(d)真实中心图像;(e)(f)(g) Kalantari等[10]的方法、Srinivasan等[13]的方法和本文方法渲染的中心图像
Fig. 6. Quantitative and qualitative comparison of light field synthesis methods. (a) Method proposed by Kalantari et al.[10]; (b) method proposed by Srinivasan et al.[13]; (c) our method; (d) ground truth center image; (e)(f)(g) rendered center images obtained by methods proposed by Kalantari et al.[10] and Srinivasan et al.[
4.4 弥散圆渲染
首先在Flower数据集上进行实验。使用重聚焦方法计算20个深度的重聚焦图像作为ground truth,用于计算渲染结果的SSIM和PSNR。基于聚焦堆栈的方法深度估计精度更高,可进一步提高视差精度,其渲染结果优于直接的视差方法,但是需要大量的插值计算。基于视差渲染的方法实现简单,效果接近聚焦堆栈方法。为得到更好的结果,在网络架构上进行改进,便于开发端到端的应用。
将本文两个方法与Zhang等[5]的边界模型渲染方法和Wang等[19]的相机阵列方法进行对比,如
图 7. 渲染方法定性与定量对比。(a)中心图像;(b1)~(b4)重聚焦图像;(c)聚焦堆栈方法深度估计;(d1)~(d4)聚焦堆栈方法的渲染结果;(e)视差方法深度估计;(f1)~(f4)视差方法的渲染结果;(g)(h)(i) Zhang等[5]的方法,分别为遮挡物检测、前景聚焦、背景聚焦;(j)(k) Wang等[19]的方法,分别为深度为3、SSIM为0.902、PSNR为32.80和深度为3、SSIM为916、PSNR为33.28
Fig. 7. Quantitative and qualitative comparison of rendering methods. (a) Center image; (b1)--(b4) refocused images; (c) depth estimation using focal stack method; (d1)--(d4) rendering results using focal stack method; (e) depth estimation using disparity method; (f1)--(f4) rendering results using disparity method; (g)(h)(i) results of occlusion detection, focus on foreground, and focus on background obtained by method proposed by Zhang et al.[5]; (j)(k)
然后在其他数据集上进行实验,使用基于视差的渲染方法,渲染效果如
图 8. 不同数据集渲染结果的对比。(a)真实中心图像;(b)深度估计;(c)重聚焦于较近位置;(d)重聚焦于较远位置
Fig. 8. Comparison of rendering results on different datasets. (a) Ground truth center image; (b) depth estimation; (c) refocusing on close positions; (d) refocusing on far positions
表 2. 光场数据集渲染效果定量分析
Table 2. Quantitative analysis on rendering effects on light field datasets
|
最后,在真实拍摄的场景中进行实验,对比了Canon 6D f/1.2大光圈数字单反相机和iPhone双摄像头相机的效果,如
图 9. 真实场景下的渲染效果与不同相机获取的图像对比。(a)原图;(b)~(e)本文方法渲染的四个不同深度的重聚焦图像;(f)深度图;(g)(h)双摄像头聚焦于两个位置的成像; (i)(j) Cannon相机聚焦于两个位置的成像
Fig. 9. Comparison of rendering effects of real scenes with images captured by different cameras. (a) Original image; (b)--(e) refocused images at four depths rendered by our method;(f) depth map; (g)(h) images shot by dual cameras focused on two positions; (i)(j) images shot by Cannon focused on two positions
5 结论
提出一种基于光场合成与弥散圆渲染的单幅图像重聚焦的方法,该方法可以从传统相机的单幅图片中模拟光场重聚焦效果,不需要深度传感器或立体视觉设备的4D RGBD数据。使用光场相机数据集进行监督训练,两种神经网络结构在可接受的计算成本上可实现较好的视觉效果,综合评价指标优于其他景深渲染方法。基于聚焦堆栈的方法更注重高性能与视觉效果,基于视差的方法在计算成本与网络设计上具有优势,易于开发端到端的应用。本方法需要在计算成本与网络架构上进一步优化,使基于薄透镜的渲染泛化到其他精密光学元件中。
[1] 张旭, 李晨. 微透镜阵列式光场成像模型及其标定方法[J]. 光学学报, 2014, 34(12): 1211005.
[2] NgR, LevoyM, BrédifM, et al. Light field photography with a hand-held plenoptic camera[R]. USA: Stanford Tech Report CTSR, 2005.
[3] Wilburn B, Joshi N, Vaish V, et al. High performance imaging using large camera arrays[J]. ACM Transactions on Graphics (TOG), 2005, 24(3): 765-776.
[4] McGraw T. Fast bokeh effects using low-rank linear filters[J]. The Visual Computer, 2015, 31(5): 601-611.
[5] ZhangW, Cham WK. Single image focus editing[C]∥2009 IEEE 12th International Conference on Computer Vision Workshops, ICCV Workshops, September 27-October 4, 2009, Kyoto, Japan. New York: IEEE, 2009: 1947- 1954.
[6] Liu D W, Nicolescu R, Klette R. Stereo-based bokeh effects for photography[J]. Machine Vision and Applications, 2016, 27(8): 1325-1337.
[7] MildenhallB, Srinivasan PP, Ortiz-CayonR, et al. ( 2019-05-02)[2019-09-01]. https:∥arxiv.xilesou.top/abs/1905. 00889.
[8] Cayon RO, DjelouahA, DrettakisG. A Bayesian approach for selective image-based rendering using superpixels[C]∥2015 International Conference on 3D Vision, October 19-22, 2015, Lyon, France. New York: IEEE, 2015: 469- 477.
[9] 李秀智, 杨爱林, 秦宝岭, 等. 基于光流反馈的单目视觉三维重建[J]. 光学学报, 2015, 35(5): 0515001.
[10] Kalantari N K, Wang T C, Ramamoorthi R. Learning-based view synthesis for light field cameras[J]. ACM Transactions on Graphics, 2016, 35(6): 193.
[11] 祝世平, 强锡富. 用于摄像机定位的单目视觉方法研究[J]. 光学学报, 2001, 21(3): 339-343.
[12] Wang Y Q, Yang J G, Mo Y, et al. Disparity estimation for camera arrays using reliability guided disparity propagation[J]. IEEE Access, 2018, 6: 21840-21849.
[13] Srinivasan PP, Wang TZ, SreelalA, et al. Learning to synthesize a 4D RGBD light field from a single image[C]∥2017 IEEE International Conference on Computer Vision (ICCV), October 22-29, 2017, Venice, Italy. New York: IEEE, 2017: 2262- 2270.
[14] Dansereau DG, GirodB, WetzsteinG. LiFF: light field features in scale and depth[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 16-20, 2019, Long Beach, CA, USA. New York: IEEE, 2019: 8042- 8051.
[15] RerabekM, EbrahimiT. New light field image dataset[C]∥8th International Conference on Quality of Multimedia Experience (QoMEX), June 6-8, 2016, Lisbon, Portugal. Switzerland: EPFL, 2016.
[16] GodardC, Mac AodhaO, FirmanM, et al. ( 2019-08-17)[2019-09-01]. https:∥arxiv.xilesou.top/abs/1806. 01260.
[17] Cheng XJ, WangP, Yang RG. Depth estimation via affinity learned with convolutional spatial propagation network[M] ∥Ferrari V, Hebert M, Sminchisescu C, et al. Computer vision-ECCV 2018. Lecture notes in computer science. Cham: Springer, 2018, 11220: 108- 125.
[18] Jeon HG, ParkJ, ChoeG, et al. Accurate depth map estimation from a lenslet light field camera[C]∥Proceedings of the IEEE conference on computer vision and pattern recognition (CVPR), June 7-12, 2015, Boston, USA. New York: IEEE, 2015: 1547- 1555.
[19] Wang Y Q, Yang J G, Guo Y L, et al. Selective light field refocusing for camera arrays using bokeh rendering and superresolution[J]. IEEE Signal Processing Letters, 2019, 26(1): 204-208.
Article Outline
王奇, 傅雨田. 利用光场合成与弥散圆渲染的单幅图像重聚焦[J]. 光学学报, 2020, 40(1): 0111021. Qi Wang, Yutian Fu. Single-Image Refocusing Using Light Field Synthesis and Circle of Confusion Rendering[J]. Acta Optica Sinica, 2020, 40(1): 0111021.