Deep Photometric Stereo Network
摘要
本文提出了一种基于深度学习的光度立体方法。光度立体的主要困难之一是设计合适的反射模型,该模型既可以表示真实的反射率,又可以在导出表面法线方面在计算上易于处理。与以前的依赖于简化的参数化图像形成模型(例如Lambert模型)的光度学立体方法不同,本文提出的方法旨在通过使用深度神经网络在复杂的反射率观测值与表面法线之间建立灵活的映射。结果,我们提出了一种深光度立体网络(DPSN),该网络在变化的光方向下观察反射率并推断每个像素对应的表面法线。为了使DPSN适用于现实世界的对象,已使用测量的双向反射率分布函数的数据库(MERL BRDF数据库)来训练网络。使用模拟和现实世界场景进行的评估显示了该方法相对于先前技术的有效性。
1.简介
光度立体根据在不同光照条件下观察到的一组图像测量值来估计对象的表面法线。 Woodham [25]和Silver [22]基于朗伯反射率假设[13]在1980年代引入了光度学立体的基本思想。为了使光度学立体图像适用于现实世界的对象,人们感兴趣的是使用更灵活的反射率函数,该函数通常以双向反射率分布函数(BRDF)表示。
尽管具有BRDF表示的图像形成模型具有更大的灵活性和表示能力,但是众所周知,在光度立体背景下,直接使用一般的非参数BRDF很难。为了缓解该问题,已经进行了研究以使用参数表示来近似BRDF。但是,到目前为止,已知的参数模型仅对有限种类的材料才是准确的,并且求解方法存在不稳定的优化问题,这妨碍了获得准确的估计值。因此,需要开发一种光度学立体方法,该方法在计算上易于处理并且能够处理各种BRDF。
为了实现此目标,我们提出了使用深度神经网络(DNN)进行光度学立体声的端到端学习方法。所提出的方法,我们称为深度光度立体网络(DPSN),它使用DNN建立从反射率观测值到表面法线的灵活映射。为了使DPSN适用于各种现实世界的资料,已使用测量的BRDF的数据库(MERL BRDF数据库[14])来训练网络。此外,我们提出了一个阴影层,该阴影层使用了丢弃策略来解决全局阴影效应。
在我们的方法中,我们假设光线方向是预先定义的,并且在训练和预测阶段之间保持相同,这在许多光度学立体设备中就是这种情况。通过在变化的光照条件下对表面点(对应于某个像素)进行反射观察,DPSN以每个像素的方式运行,并推断该点的表面法线。结果显示了我们的方法的有效性,该方法已通过仿真和真实世界图像验证。
2.相关工作
常规的光度立体[25,22]基于朗伯的反射率模型。由于Lambert模型是理想的反射率模型,可能无法很好地反映真实的反射率,因此,将光度学立体声扩展到可用于非Lambertian表面的方法已引起了人们的实际兴趣。现有关于非朗伯光度学立体的研究可分为三类。
第一类是基于稳健估计的方法,其中非朗伯反射率被视为离群值。他们假设大多数反射率观测值都遵循或接近朗伯模型,因此非朗伯反射率(例如镜面反射)可以视为异常。 Wu等。 [26]将鲁棒估计问题表述为秩最小化。他们利用了朗伯观测值形成低秩子空间的事实[2],并将非朗伯反射率视为稀疏离群值。 Mukaigawa等。 [16]使用随机样本共识(RANSAC)方案来丢弃离群值,该值实质上近似于零残差最小化。其他鲁棒的估计方法,例如期望最大化[27],采用中位数[15],1残差最小化和稀疏贝叶斯学习[10],也显示了对稀疏离群值的有效处理。由于鲁棒的估计方法是建立在统计异常值剔除的基础上的,因此它们通常需要大量输入图像,例如[26]中的40个图像,这些图像是在不同的光方向上记录的。
第二类是基于比Lambertian模型更复杂的反射模型的方法,以便更好地近似非Lambertian反射观察结果。Georghiades[4]使用Torrance-Sparrow模型[24],Ruiters等人。 [18]在光度立体中使用Cook Torrance模型[3]。最近,Shi等人。 [20]提出了一个双多项式BRDF模型,该模型能够表示低频非朗伯反射率,并且在表面法线估计中显示出更高的准确性。 Holroyd等。 [8]提出了另一种方法,该方法基于跨正切线和法向双法线平面的中途矢量的反射对称性来概括反射率属性,该方法不需要估计表面反射率模型,并且在各向异性反射率表面上表现良好。
第三类是基于示例的方法,该方法确定参考对象的表面法线。 Hertzmann和Seitz [6]提出了一种使用与参考物体具有相同反射率的参考球的基于示例的方法。根据目标对象和参考对象之间一致的观察结果,他们的方法通过简单地映射参考对象中的对应对象来确定目标对象的表面法线。基于示例的方法自然可以避免解决复杂的优化问题,但是它需要一个参考对象,该对象的形状已知并且反射率与目标对象相同。
我们的方法介于第二和第三类之间。与第二类方法一样,我们的方法能够处理各种BRDF。我们的方法不是使用先前的方法来估计BRDF参数和表面法线,而是使用深度学习框架直接建立从反射率观测值到表面法线的映射。我们的DPSN是使用各种材料的BRDF实测数据库(MERL BRDF数据库[14])进行培训的;因此,它具有第三类中基于示例的方法的精神,而DPSN不需要将参考对象与目标对象放在一起。
3.初步工作
当用反射光l∈R3照亮具有albedo-scaled的表面法线n∈R3(在整个本文中,我们假设 ,并且输入图像已通过其相应的光强度进行了归一化。)的朗伯表面时,测量值m∈R +可描述为
。
对于在f个不同的光方向上观察到的m∈Rf +的测量向量,可以用光矩阵 作为
来写上等式。
常规的光度立体方法[25,22]使用上述通过 的图像形成模型确定表面法线n。
当f = 3且rank(L)= 3时,或者具有三个以上不同的观察值时,可以通过将L的伪逆作为 来获得最小二乘近似解n *。
不幸的是,在现实世界中很少有纯朗伯表面。因此,在非朗伯表面上进行光度立体测量是其实际应用的主要兴趣之一。利用BRDF函数ρ,可以更灵活地描述局部照明模型下的表面外观。从固定观察方向v在变化的远距离光方向L上观察到的表面外观可以记为 。
其中b∈Rf +是从BRDF函数ρ采样的反射率的矢量,b =ρ(L,n,v),算子◦表示逐元素相乘, 表示在相应光下表面点的反射光。
上面的方程式假设没有阴影的世界,而在现实世界中,背离光照方向的表面斑块处于attached shadow中,并且光路被遮挡会导致cast阴影。这样的阴影过程可以写为 。
其中 是一个布尔向量,其中0表示投射阴影中的观测值,否则为1。attached shadow的影响由逐元素Max解决。
4.提出的方法
提出的DPSN是一个可微的多层神经网络,它学习了从在f个不同的光方向上获得的测量向量m∈Rf到表面法线n∈R3的映射。它以像素为单位进行操作,以进行训练和预测。如介绍所述,我们假设光方向L = [l1,…,lf]∈R3×f是已知的,并且在训练和预测阶段之间是一致的。我们的方法使用由MERL BRDF数据库[14]绘制的各种表面法线生成的模拟观测值,该数据库存储了100种不同的现实世界材料的BRDF。在下文中,我们解释了提出网络的结构以及训练和预测程序。
图1.拟议网络概述。 它由两个组件组成:阴影层和全连接层。 在阴影层中,将一些测量矢量元素随机丢弃以模拟投射阴影效果。 在此图中,将m1和m4删除,并将输入向量的相应值设置为0。tips:也就是把每个像素对应的测量值向量里的一些值随机丢弃,模拟阴影的情况,即在被丢弃光情况下模拟该像素是处于阴影中,没有观测值。
4.1。网络架构
提出的DPSN使用全连接的深度神经网络学习从像素的测量向量m到该像素处对应的表面法线n的映射。 DPSN将测量向量 作为输入,其中每个元素对应于在特定光方向上的观察,并输出表面法线n∈R3的预测。将测量向量m线性归一化,使得|| m || 2 = 1.0后再馈入网络。尽管MERL BRDF数据集包含三个颜色通道,但我们独立对待每个颜色通道。
光度立体的主要挑战之一是投射阴影。与附着的阴影不同,投射阴影是由于全局照明效果而导致的,无论BRDF模型的表示能力如何,都无法通过局部照明模型对其进行建模。为了在训练阶段模拟投射阴影效果,我们引入了基于dropout方案的变体的阴影层[23]。dropout是一项技术,可以在训练过程中从网络中随机删除单元(或也可以用于测试),以防止学习的权重过拟合。我们的阴影层将dropout应用于输入节点,并随机删除一部分输入测量向量,即将它们设置为0,以便将删除的节点视为阴影观察。通过用阴影层训练网络,提出的DPSN可以有效地学习从观测到表面法线的映射,并考虑了各种BRDF和投射阴影。
在传统的dropout中,dropout层的输出以丢失率r∈[0.0,1.0)按1 /(1-r)进行缩放以避免输出幅度的缩小,我们的阴影层不应用缩放,而只是将测量向量的选定元素设置为0以模仿阴影效果。dropout参数r对应于我们上下文中阴影观察的比率。显然,参数r取决于物体的形状和光分布,这通常是不可访问的。因此,我们使用变化的r值进行训练。具体来说,我们通过从二项分布 进行采样来使dropout率波动,其中每个观测值被阴影遮盖的概率p设置为p = 0.05。
表1总结了DPSN结构。DPSN由7层组成,即阴影层和6个密集层。训练期间,每个密集层包括ReLU和Dropout。使用以下损失函数
训练DPSN。
其中n是法线矢量的GroundTruth,nˆ是网络预测的法线矢量。使用Adam [12]和建议的默认设置将L最小化。
表1. DPSN结构。 括号中的数字表示每一层中的节点数。 阴影层用于训练,但不用于预测。 训练密集层的dropout 率设置为全部0.5。 在我们的设置中,阴影层的输入和输出尺寸为96(= f)。
4.2。训练
DPSN的训练集由一对观察向量和相应的表面法线组成,即{(m,n)}。我们使用MERL BRDF数据集[14]生成了观察矢量{m},而不是收集现实世界的观察值,该向量是在预定义的光向L下观察到的各种表面法线{n}的。MERLBRDF数据集由100种不同材料的BRDF,我们从表面法线{n}和光方向L的集合在等式1中形成反射向量{b}。生成训练集时我们忽略了投射阴影,这意味着等式1中的阴影蒙版s设为1。
尽管可以使用表面法线的任何分布来生成表面法线集{n},但在这项工作中,我们使用了由各种形状组成的Blobby形状数据集[11]。使用MERL BRDF在光方向L上渲染形状,并且在每个颜色通道的渲染图像的每个像素位置上的观察值形成测量向量m。图2显示了在特定光方向下生成的训练数据的样本图像。如图所示,渲染的图像包含不遵循简单参数模型的复杂反射率分量。
图2.用于训练的渲染图像示例。 blob01到blob03是Blobby形状数据集[11]中形状的一部分,“白漆”,“银金属漆”和“红色塑料”是MERL BRDF数据库[14]中的材料名称。这里有100种不同的材料中的三个作为展示。 如图所示,渲染的图像包含镜面反射和attached阴影。
4.3。预测
在预测阶段,给定一组在光方向L下的观察结果,DPSN以每个像素的方式估计表面法线。以类似于训练阶段的方式,独立处理色彩通道。对于RGB图像,DPSN估计每个像素三个表面法线并将其合并以获得最终估计值。也就是说,假设nr,ng和nb是来自RGB颜色通道的表面法线估计值,这些估计值是独立估计的,我们通过以下过程将它们合并。我们通过将归一化表面法线估计的均值向量作为来使它们趋于一致。
最后,将合并的表面法线n进一步归一化以获得最终的表面法线估计值 作为
。
5.实验
使用模拟和真实数据集评估了该方法的实验结果。在显示结果之前,我们将解释两个实验的训练数据和实施细节。
训练数据和实施细节
对于实验,Blobby形状数据集中十分之八的形状用于生成训练数据,我们保留其余两个形状进行测试。在来自MERL数据集中的100个BRDF中的每一个的预定义光方向下渲染形状。预先定义的光方向与DiLiGenT数据集[21]中定义的96个光方向相同。结果,我们为每个物体和材料生成了96张图像;因此,我们总共渲染了8×100×96 = 76800张图像。每个图像的分辨率为256×192,训练集{(m,n)}的总数约为3.9×10七次方。
DPSN是使用TensorFlow2实施的,训练了5000步,批次大小为1000。使用测试数据达到最高准确性的模型进行评估。
评估程序
我们将提出的DPSN与基于传统l2残差最小化(L2)[25]和具有l1残差最小化(L1)[10]的Lambertian光度学立体声进行比较。对于这些方法,每个像素的表面法线n由 和
分别根据观测值m和已知的照明方向L来计算。对于现实世界的场景,我们还使用DiLiGenT基准评估了我们方法的性能,该基准涵盖了非朗伯光度学立体声的最新方法。为了查看阴影层的效果,我们将不带阴影层(表示为“proposed”)和带阴影层(“proposed的W / SL”)的DPSN进行了比较。
综合数据集的实验结果
为了生成测试的BRDF的场景,我们通过对从MERL BRDF数据库采样的线性组合的BRDF进行非线性变换来合成新的BRDF。具体来说,生成新的BRDFρ〜(L,n,v)如下:
其中ρ1和ρ2是从MERL BRDF数据库采样的BRDF,而α和γ是常数参数。在该实验中,从数据库中随机选择ρ1和ρ2,并将参数设置为α= 0.5和γ= 0.8。对于目标形状,我们使用了三个对象,即球体,blob02和blob08,这些对象尚未用于训练。我们使用与训练相同的光方向来生成输入数据。
评估结果汇总在图3中。用于ρ1和ρ2的两种材料名称显示在图的顶部。 “朗伯”是朗伯反射率,反射率函数ρ为常数。由于合成场景的生成忽略了投射阴影的渲染,因此在大多数场景中,没有阴影层(“proposed”)的方法显示的性能优于带有阴影层(“proposed的W / SL”)的方法。
图3.综合场景的实验结果。 在每一行中,法线图显示在误差图的顶部。 数字表示度数的平均角度误差(MAE)。 在第一行中,GT表示Groundtruth情况,法线贴图下方的图像是观察图像的示例。 在顶部,显示用于合成数据的材料和形状名称。
使用实际数据集进行预测
然后,我们使用DiLiGenT数据集评估方法的性能。DiLiGenT基准测试包括以下8种方法的评估:WG10 [17],IW12 [10],GC10 [5],AZ08 [1],ST12 [19], HM10 [7],ST14 [20]和IA14 [9]。除了这8种方法外,我们还添加了结果,如图4和表2所示。
图4示出了针对“proposed的”,“proposed的W / SL”,“ L2”和“ L1”的估计的法线图和相应的误差图。在这里,我们显示了DiLiGenT数据集中10个对象中的6个对象(佛,牛,酒杯,收获,pot2和阅读)。佛,pot2和读数是由陶器材料制成的,除了一些镜面异常值外,它们的反射大部分是朗伯型的。因此,基于方法的“ L2”,尤其是“ L1”效果很好。对于像牛和酒杯这样的物体,它们是由金属材料制成的,并在很宽的区域内表现出强烈的镜面反射,对于基于Lambertian的方法(例如“ L2”和“ L1”),估计误差会变得很大,而所提出的方法可以产生很高的估算准确性。对于收获而言,由于物体形状的复杂性,在所有方法中估算准确性均较差。对于形状复杂的物体,除了投射阴影外还会发生各种反射现象,例如相互反射。我们将在以下部分中进一步讨论此问题。
图4. DiLiGenT [21]对真实场景的估计结果。在每一行中,法线图显示在错误图的顶部。 数字表示度数的平均角度误差(MAE)。 GT表示“Groundtruth”,下面的数字是观察图像之一。 调整观察图像的对比度以便于观看。
阴影层的效果
图5示出了“提议的”和“提议的W / SL”之间的误差图的差异图。在这里,我们以4个对象(球,pot2,高脚杯和收获)为例。对于所有这些对象,通常会在经常出现阴影的边界区域中提高精度。与高脚杯和收获球相比,球和pot2的更大区域的精度有所提高。如图6所示,对于杯状和收获状等具有强反射性的金属物体,阴影的测量值大于0,如图6所示。阴影层假定阴影部分的测量值变为0,因此当阴影强度较大时,其性能会降低。存在相互反射。
图5.阴影层的改进。 我们显示了“建议的”和“建议的W / SL”之间的误差图的差异图。 阴影层可改善正常估算精度的像素以蓝色显示,否则以红色显示。
图6.我们用伽玛校正调整红框区域的左半部分。 由于强烈的相互反射,框中的阴影部分显示的值大于0。
关于遮盖可能性的讨论
p在上一节中,我们使用了阴影概率p = 0.05的结果,但是,最佳p取决于对象的形状。在本节中,我们讨论阴影概率p的影响。我们在图7中显示了球上p = 0.05和p = 0.9的结果。比较(a)和(b),我们可以看到,尽管(b)在球体的外围部分(阴影部分)比(b)改进的更多。 b),它在中央部分效果很差。
对于阴影层,该模型针对阴影进行了优化,并认为在不存在阴影的区域中精度会下降。在p = 0.05的情况下,由于dropout率r以Sec4.1的方式采样可以为0,在没有阴影的区域中估计精度不会降低。另一方面,在p = 0.9的情况下,将对所有输入应用dropout,因此在不存在阴影的区域中,精度会降低。基于这种观察,我们在评估中使用p = 0.05。
图7.“球”上的比较阴影概率p。 (a)为p = 0.05(“建议的W / SL”),而(b)为p = 0.9。 两者都是带有“建议”的误差图的差异图。 阴影层可改善正常估算精度的像素以蓝色显示,否则以红色显示。
基准比较
在本节中,我们将建议的方法(“建议的”和“建议的W / SL”)与[21]中所示的基准结果进行比较。表2显示了每种方法对每个对象的平均角度误差(MAE)及其平均值。绿色代表好结果,红色代表差的结果。对于每个对象,最好的结果以粗体突出显示。对于大多数对象,最好的结果是通过现有方法获得的,但是“建议的W / SL”可大大提高收获的准确性,并获得所有对象的平均值的最佳结果。 。该结果表明,DPSN通常可以对由各种材料(真实BRDF)组成的对象(在合成过程中看不到)实现高精度。高精度的部分原因是DPSN有效地处理了投射阴影,大多数现有方法都无法解决这一问题。
6.讨论
本文提出了一种基于深度学习的光度立体方法。所提出的方法使用深度神经网络来建立从阴影观察到表面法线的灵活映射。受到基于示例的方法成功处理挑战性反射的启发,我们使用了现代的神经网络结构,并通过MERL BRDF数据库[14]提供的模拟观测值对它进行了端到端训练,以取代参考对象的功能。此外,我们提出了一个阴影层,该阴影层使用dropout策略模拟了非局部阴影效果。与以前的技术相比,使用真实场景进行的评估显示出对表面法线的更准确的估计。
局限性
我们方法的局限性之一是假设光线方向是预先定义的,并且在训练和测试阶段之间保持相同。我们的方法需要针对每种光照条件训练模型,因为我们的训练需要在特定光照条件下进行模拟观察。如果光度立体数据捕获使用具有固定光源和摄像头的设备,则我们的方法特别有用,因此我们只需要对该设备执行训练。处理未预定义的照明条件是我们的未来工作,例如使用随机波动的光源捕获数据。