论文精读:A Learned Compact and Editable Light Field Representation

本文提出了一种使用自编码器对光场数据进行压缩和编辑的方法。通过将光场表示为深度图和中央视觉图,支持对中央视觉图编辑并保持光场重建的一致性。网络结构包括编码器、解码器,其中解码器由特征分离、视差恢复和融合网络组成。损失函数包括扭曲一致性、视差正则和重建损失。实验表明,该方法能有效处理光场的压缩和编辑任务。
摘要由CSDN通过智能技术生成

基于学习的压缩和可编辑光场表示

 
P.S. 本文为自己重述,不完全忠实于原paper,难免出现错误

 

  该论文完成了光场数据的压缩表示,使用自编码器的方法将光场数据压缩为一个深度图和一个中央视觉图,并且支持编辑之后的中央视觉图和原深度图进行光场重建。

 

1. 简介

  所谓光场,即记录光线位置和方向的数据结构,这种数据表示方式经历了很大的变化历程,相关的介绍中 这个介绍最为清晰和全面。

  具体到本文,本文使用的光场获取方式为相机矩阵的方式,也是当前学术界较常用的方式,分析时本文采用横截面的表示方式。IO和分析的表示类似于

  本文对于这种数据结构进行了自编码器的学习,综合考虑解码后与原图的结构差异,编码的中间层中央视觉图部分的RGB相似度,编辑后的中央视觉图的重建程度,完成了一种支持编辑的光场重建。这项工作的压缩部分解决了光场数据结构较大的问题,可编辑重建部分解决了二维图像处理到三维图像处理的迁移问题,总体来说意义重大。目前本文发布于 arxiv,也许在不久之后会登上SIGGRAPH。

2. 相关工作

3. 本文的工作

     ~~~~     总体来说,本文能够对一个给定的4D光场,将其表示为一个元通道在没有限制元通道的视觉形态的情况下,为什么它长得这么像一个灰度图?和一个RGB图(视觉通道),这实现了4D光场数据的压缩,另一方面,针对视觉通道的编辑可以通过和元通道的结合重建光场,并一致性地传播到新的光场之中。
本文设计的网络结构:

  • 问题描述
         ~~~~     输入的4D光场视图即为 M ∗ N M*N MN张RGB图像,我们描述为 L = { I i } i = 1 M ∗ N L = \{I_i\}_{i=1}^{M*N} L={Ii}i=1MN,对于这个光场 L L L, L ( L( L(u,v ) ) )也就表示了某一个像素,其中u表示图片,v表示像素,也就是说 I i I_i Ii即为 L ( L( L(u i ) _i) i)
         ~~~~     在整个自编码器的设计过程之中,我们记编码器为 E E E,解码器为 D D D
         ~~~~     一方面,对于输入的光场 L L L,我们通过编码器生成一个元通道 Z Z Z,即 Z = E ( L ) Z = E(L) Z=E(L),有 s i z e o f ( Z ) = s i z e o f ( I i ) sizeof(Z) = sizeof(I_i) sizeof(Z)=sizeof(Ii)。另一方面,对于传入的光场数据,我们获取中央视图 I c I_c Ic Ic具体是如何得到的呢?是L(x,0)么?。对 I c I_c Ic进行编辑之后我们获得 I ~ c \widetilde{I}_c I c,接着我们把两者结合,通过解码网络获得编辑后光场 L ~ \widetilde L L ,即 L ~ = D ( Z , I ~ c ) \widetilde L = D(Z, \widetilde I _c) L =D(Z,I c)
  • 表示方式的选取
         ~~~~     本节实际上主要阐述了为什么要选取元通道和视觉通道。
         ~~~~     中心视图 I c I_c Ic 捕获了光场的参考视觉内容,因此自编码器只需要学习表示元通道即可。元通道作为视觉通道互补的部分,意味着包括深度、视差、纹理、遮挡等等信息被隐式地编码到元通道之中。事实上本文做了消融实验,使用深度图代替了元通道,取得了较差的结果。
    中央视觉图、元通道、深度图:
         ~~~~     关于元通道的个数和是否必须存在的问题,本文解释道,当图片数目(角度分辨率)和图片大小(空间分辨率)增加的时候,单个元通道可能无法编码全部信息,这时候我们可以增加元通道的数目。至于和视觉图分离的原因,主要是考虑到光场的重建过程中对于编辑的视觉通道,我们需要原光场的结构,如果将元通道编码到视觉通道之中形成 I z I^z Iz,那么编辑的过程就会破坏结构,光场不再能够重建。
         ~~~~     事实上,如果我们不考虑光场的重建问题,我们是可以将视觉通道和元通道合二为一的,此时我们只考虑数据压缩和光场生成的任务,该方法仍旧是一个很好的想法。这也将作为我的毕业设计的主要思想。
  • 编辑敏感的光场重建(解码器网络实现)
         ~~~~     本文将解码器的解释信息的方式分为两类:视图间视差图,以及其他信息(遮挡图和非朗博效应
    本文设计的解码器网络:
         ~~~~     在图中我们可以看到,解码器由三个不同的网络共同构成。 S e p N e t , D i s p N e t , F u s i o n N e t SepNet, DispNet, FusionNet SepNet,DispNet,FusionNet 三个网络各自有着对应的任务。同时也有着一些方法,如 w a r p i n g warping warping,以及涉及到 O c c l u s i o n _ m a p , D i s p a r i t y _ m a p , F e a t u r e _ m a p Occlusion\_map, Disparity\_map,Feature\_map Occlusion_map,Disparity_map,Feature_map遮挡图是通过特征图得到的么?是的话为什么可以直接得到,是物理方法么?等的获取,接下来我们将一一介绍。

     S e p N e t ~~~~ SepNet     SepNet:该网络的作用是特征分离,具体地说,这个模块将元通道 Z Z Z 分解为一系列特征映射 { F i } i = 1 M ∗ N \{F_i\}_{i=1}^{M*N} {Fi}i=1MN,其中每个 F i F_i Fi 包含视图 i i i 的特征信息,和视觉通道独立,可以和视觉通道结合重建视图 i i i

     D i s p N e t ~~~~ DispNet     DispNet:该网络的作用是视差恢复。具体来说,从特征图 F i F_i Fi 中提取出 I i I_i Ii 视差图 D ( D( D(u i ) _i) i)。接着我们如果给出某一个光场视图 L ( L( L(u j ) _j) j),我们可以得到合成视图(即warped方法) L ˉ ( u i ) \bar{L}(u_i) Lˉ(ui)

L ˉ ( u i , x ) = L ( u j , x + ( u j − u i ) ∗ D ( u i , x ) ) \bar{L}(u_i,x)=L(u_j, x+(u_j-u_i)*D(u_i,x)) Lˉ(ui,x)=L(uj,x+(ujui)D(ui,x))

     ~~~~     因此,我们可以明确认识到,对于任何一个视差图 D ( u i ) D(u_i) D(ui),我们将其与 I c I_c Ic进行合成得到 L ˉ ( u i ) \bar L(u_i) Lˉ(ui)。此时我们得到的图理论上和 L ^ ( u i ) \widehat L(u_i) L (ui)一致(其中 L ^ = L \widehat L=L L =L,作为重建光场的目标),但实际上由于遮挡和非朗博效应总会出现不同。为了解决这个问题,我们需要另一个网络修复他,但是网络的执行时间可以由 D ( u i ) D(u_i) D(ui) 的遮挡情况自适应地确定,为了度量遮挡程度,我们记 O ( u i , x ) = ∣ ∣ D ( u i , x ) − D ( u c , x + ( u c − u i ) ∗ D ( u i , x ) ) ∣ ∣ 1 O(u_i, x) = ||D(u_i,x)-D(u_c,x+(u_c-u_i)*D(u_i,x))||_1 O(ui,x)=D(ui,x)D(uc,x+(ucui)D(ui,x))1,其中 D ( u c ) D(u_c) D(uc) 表示 I c I_c Ic 的视差图。并且有 O ( u i , x ) O(u_i,x) O(ui,x)越大,接下来的网络需要的时间就越长。

     F u s i o n N e t ~~~~ FusionNet     FusionNet:该网络的目的是重建遮挡细节和非朗博效应,这个网络通过大规模的训练达到将视觉图和遮挡图变回光场图像的目的。大规模的训练遇到的关键问题是数据问题,为了解决这个问题,本文提出了一个算子 G G G,算子 G G G 通过平均采样的方式更改光场,对于原本的IO组 { I ~ c , L ^ } \{\widetilde I_c,\widehat L\} {I c,L },我们更改为 { G ( I c ) , G ( L ) } \{G( I_c),G(L)\} {G(Ic),G(L)},从而得到大规模数据。

  • 损失函数
         ~~~~     网络通过最小化损失函数联合训练编码和解码子网络,本文的损失函数分为三个部分,扭曲一致性损失(也就是 w a r p e d warped warped模块) ζ W \zeta_W ζW,视差正则损失 ζ D \zeta_D ζD ,重建损失 ζ R \zeta_R ζR。故而总损失为:
    ζ = ω 1 ζ W + ω 2 ζ D + ω 3 ζ R \zeta = \omega_1\zeta_W + \omega_2\zeta_D + \omega_3\zeta_R ζ=ω1ζW+ω2ζD+ω3ζR
         ~~~~     在这里,我们设定 ω 1 = 0.5 , ω 2 = 0.01 , ω 3 = 1.0 \omega_1 = 0.5,\omega_2 = 0.01, \omega_3 = 1.0 ω1=0.5,ω2=0.01,ω3=1.0。接下来我们将逐一介绍三个损失。
         ζ W ~~~~\zeta_W     ζW:扭曲一致性损失。该损失用来度量 w a r p e d warped warped之后的光场 L ˉ \bar L Lˉ 和中央视觉通道 I c I_c Ic之间的差别,使得视差能够更好地被还原。公式写作:
    ζ W = E L i ∈ S { ∣ ∣ L ˉ i − L i ∣ ∣ 1 } \zeta_W = \Epsilon_{L_i \in S}\{||\bar L_i - L_i||_1\} ζW=ELiS{LˉiLi1}          ~~~~~~~~         warp是一个物理方法,这个方法由于不考虑遮挡理论上本身就和预期结果不同,如果使用这种损失有没有可能会让视差的生成网络过拟合呢?(也就是视差的生成网络不去生成视差,而是某种能和中央通道直接合成光场的图片【这并不是值得开心的,因为之后还要和遮挡图进行进一步的融合】)
         ~~~~     其中, S S S 即为光场构成的数据集,这个损失即为所有光场的中央视觉通道与对应的 L ˉ i \bar L_i Lˉi的一阶范数。该损失限制了从 D i s p N e t DispNet DispNet中生成的视差图,使其更加接近于真实视差。
         ~~~~     但是仅仅由这个损失进行限制仍然是不够的,由于这个损失并不能度量到没有纹理的区域的扭曲视图是否相近,这种失误将会造成遮挡部分无法进行一致性地传播,将会加大 F u s i o n N e t FusionNet FusionNet 的训练量。为了解决这个问题,我们引入正则损失 ζ D \zeta_D ζD,加强相邻视图的视差一致性。
    ζ D = E L i ∈ S { ∣ ∣ D ( u i , x ) − D ( u i − 1 , x + D ( u i , x ) ) ∣ ∣ 1 } \zeta_D = \Epsilon_{L_i \in S}\{||D(u_i,x)-D(u_i-1,x+D(u_i,x))||_1\} ζD=ELiS{D(ui,x)D(ui1,x+D(ui,x))1}      ~~~~     这个损失函数实际上限制了在预测后的光场中,相邻视图需要尽可能地一致,保证相邻视图之间的视差一致性。每个视图在某种程度上都会受到其他视图的影响和制约。
         ~~~~     在最后,我们通过重建的光场和原本的光场相一致的限制构造重建损耗 ζ R \zeta_R ζR
    ζ R = E L i ∈ S { α ∣ ∣ L ~ i − L ^ i ∣ ∣ 1 + β ∣ ∣ S S I M ( L ~ i , L ^ i ) ∣ ∣ 1 } \zeta_R = \Epsilon_{L_i\in S}\{\alpha||\widetilde L_i-\widehat L_i||_1+\beta||SSIM(\widetilde L_i, \widehat L_i)||_1\} ζR=ELiS{αL iL i1+βSSIM(L i,L i)1}      ~~~~     实验中, S S I M ( L 1 , L 2 ) SSIM(L_1,L_2) SSIM(L1,L2)表示两个光场的所有视角的平均 S S I M SSIM SSIM值,计算见此。并且预设 α = 1.0 , β = 0.02 \alpha=1.0,\beta=0.02 α=1.0,β=0.02。选取 S S I M SSIM SSIM度量将在模糊区域获得更精确的细节。

4. 实现的细节

  • 数据集
         ~~~~     本文的数据集来自两个公开数据集,斯坦福和MIT的相机光场数据,总共收集了406个光场,每个光场有14*14个角度和376*541个像素。在训练的过程中,随机选取326个作为训练集,剩余80个作为测试集,对每个光场裁取7*7个角度以及每个角度128*128个像素组成的照片。对训练集进行了数据增强,即水平翻转或者旋转。通过数据增强,最终得到14447个光场样本进行训练。
  • 训练
         ~~~~     训练时编码子网和解码子网是联合训练的,但是这种训练方式较慢,本文提出将这个训练分为两个部分。首先是进行除了 F u s i o n N e t FusionNet FusionNet 之外的网络进行训练,这个阶段迭代10000次,这个训练的目的是加速以及预热 D i s p N e t DispNet DispNet 。在第二阶段,包括 F u s i o n N e t FusionNet FusionNet 在内 的所有网络进行 50000 次训练。训练中使用Adam优化器,第一阶段学习率为0.0002,第二阶段学习率下降为第一阶段学习率的1%。
         ~~~~     另外,本文采用pytorch实现了方法,这个实验在两台NVDIA GeForce GTX 1080 Ti 上运行了48个小时。完成的模型对于7*7的光场输入编码元通道约需要0.04秒,重建光场约需要2秒。
         ~~~~     源代码和数据尚未开源,等待本文正式发布将会开源代码和数据。

5. 实验的结果

     ~~~~     我们可以看到,无论是颜色编辑、颜色转换、阴影去除、风格转换、对比增强等针对2D图片的编辑方法,在本模型的支持下均完成了对于重建光场的一致性传播。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值