Self-calibrating Deep Photometric Stereo Networks

在这篇论文中,假设相机是具有线性辐射响应的正交相机,照明是只来自上半球方向的白色照明,观察方向定义为指向观察者。比较常见的照明形式是之前提到的基于二次球面谐波的自然光照明、点光源照明和平行光照明。文章中的照明假设的是最简单的平行光,因此光源只具有两个性质,那就是两自由度的方向和一自由度的亮度。对于非朗伯体表面,它的反射属性通常使用各向同性的BRDFs 函数ρ来描述,对于给定法向方向 n ∈ R 3 n \in \mathbb{R}^{3} nR3
的表面点,第j个照明光的方向记为   l j ∈ R 3 \ l_{j} \in \mathbb{R}^{3}  ljR3,强度记为 e j ∈ R 0 e_{j} \in \mathbb{R}_{0} ejR0。那么图像生成模型可以表示为
m j = e j ρ ( n , l j ) max ⁡ ( n T l j , 0 ) + ϵ j m_{j}=e_{j} \rho\left(n, l_{j}\right) \max \left(n^{T} l_{j}, 0\right)+\epsilon_{j} mj=ejρ(n,lj)max(nTlj,0)+ϵj
m j m_{j} mj为第j幅图像中该点对应的亮度值,ma操作是为了应对法向方向背离光照方向,即自阴影的情况,否则亮度值会出现负值,最后的ϵ 综合了投射阴影、自反射以及噪声的影响。

SDPS-Net

为了解决uncalibrated photometric stereo问题,文中提出了一个名为 Self-calibrating Deep Photometric Stereo Networks(SDPS-Net)的两阶段模型。在SDPS-Net的第一阶段是 Lighting Calibration Network (LCNet),将任意数量的图像作为输入并估计其相应的照明方向和强度。SDPS-Net的第二阶段是 Normal Estimation Network (NENet),基于由LCNet估计的照明情况和输入图像来估计物体的表面法线图。这种两阶段而不是端到端的设计有其自身的意义,首先照明信息在整个photometric stereo问题中十分重要,因为它是阴影等线索信息的主要来源,同时,从图像中先估计出三自由度的光照信息比联合估计法向和照明来得简单。另外,通过明确地学习估计照明的方向和强度,该模型可以利用中间监督,从而产生更加可解释的行为。同时LCNet或者NENet能够与现有的其他方法进行无缝集成。
Self-calibrating Deep Photometric Stereo Networks_第1张图片

3.1 Lighting Calibration Network

为了从图像中估计出光照方向和亮度,一个直接的方法是直接回归出照明参数。但是作者在尝试后发现在这里将照明估计的问题转变为一个分类问题能够更好的处理,因为将照明参数分类到一个确定的类别中比回归出精确值的学习难度要下降不少,并且将离散值作为输入可以使后面的NENet更好地容忍照明估计上的小误差。
Self-calibrating Deep Photometric Stereo Networks_第2张图片
正如之前所述,论文中方法只考虑来自上半球方向上的照明。而上半球的光照方向可以用方位角 ϕ ∈ [ 0 ∘ , 18 0 ∘ ] \phi \in\left[0^{\circ}, 180^{\circ}\right] ϕ[0,180]和仰角 θ ∈ [ − 9 0 ∘ , 9 0 ∘ ] \theta \in\left[-90^{\circ}, 90^{\circ}\right] θ[90,90]来表示,因此可以通过将方位角和仰角均匀地分成Kd个区域来离散化照明方向,最终将照明方向离散为 K d 2 K_{d}^{2} Kd2个值。但是解决这个 K d 2 K_{d}^{2} Kd2类的分类问题有时候也会有困难,比如 K d = 36 K_{d}=36 Kd=36 K d 2 = 1296 K_{d}^{2}=1296 Kd2=1296,类数太多,softmax概率向量维度太高。因此作者在这里将分类问题化为两步,先后估计方位角和仰角,将一个 K d 2 K_{d}^{2} Kd2类的分类问题变成两个Kd类的分类问题。同样,对于照明强度,也在[0.2,2.0]的范围内均匀地划分为Ke份。
估计每个图像的照明的简单方法是简单地将单个图像作为输入,使用CNN将其编码成特征图,并将特征图传送到照明预测层。这种简单的解决方案的结果肯定不尽人意,由于图像是由物体形状,光照,反射属性决定的,想从单张图像中唯一的分解出光照是不现实的。因此作者在这里将局部特征融合成全局特征以从多个观察中提取更加全面的信息。具体来说,每个图像及其物体蒙版分别输入到共享权重的特征提取器提取出局部特征。然后通过max pooling操作将输入图像的所有局部特征聚合成全局特征,在全局特征中隐式地包含了物体的形状以及反射属性的信息,从而可以帮助解决光照的多义性。之后将每个局部特征与全局特征连接起来,传输到共享权重的照明估计子网络中预测每个图像中单独的照明。通过这种局部-全局特征融合方法,相比单独使用局部特征能产生更加可靠的结果。
最终构建出的网络如图1中所示,是一个多输入多输出网络,由共享权重的特征提取器,聚合层(max pooling )和共享权重的照明估计子网络组成。输入是每幅原始图像以及物体蒙版,输出是三个照明参数的softmax概率向量。之后通过简单地选取具有最高概率的范围的中间值最为光照的估计结果(这里还可以通过计算数学期望或者其他方法来确定最终的取值,但经过实验发现这些操作并没有带来性能上的提升)。最后的loss就是方位角、仰角和强度三个值的多类交叉熵损失。

3.2 Normal Estimation Network

NENet的网络架构和作者的另一篇工作中的PS-FCN类似,是一个多输入单输出网络,由共享权重的特征提取器,聚合层和法向回归子网络组成。

这里需要注意的是,在将图像输入NENet前,需要使用LCNet预测的光照强度来对输入的图像进行归一化,然后将LCNet预测的照明方向与图像连接作为输入。对于给定的h×w大小的图像,NENet的损失函数是预测的法向方向与GT的法向方向之间的差异
L normal = 1 h w ∑ i h w ( 1 − n i T n ~ i ) L_{\text {normal}}=\frac{1}{h w} \sum_{i}^{h w}\left(1-n_{i}^{T} \tilde{n}_{i}\right) Lnormal=hw1ihw(1niTn~i)
n i 和 n i n_{i} 和{n}_{i} nini分别表示像素i处的预测法向量和GT法向量。

实验

Self-calibrating Deep Photometric Stereo Networks_第3张图片
作者使用4种不同的BRDF渲染BUNNY模型,光源分布分两种,一种均匀分布,另一种整体有一定的偏向性。可以看到传统方法PF14对于漫射或近漫射表面的法向和照明方向估计良好,但在处理非朗伯表面时快速退化。而SDPS-Net在不同类型的BRDF上表现良好,即使是在表面上呈现镜面高光时。处理有偏差的光照分布时,两种方法的照明方向和法向估计的性能都呈下降趋势,而光照强度估计的性能略有提高。

你可能感兴趣的:(Self-calibrating Deep Photometric Stereo Networks)