【论文阅读笔记】Scalable, Detailed and Mask-Free Universal Photometric Stereo

【论文阅读笔记】Scalable, Detailed and Mask-Free Universal Photometric Stereo

  • 前言
  • 摘要
  • 引言
    • Task
  • 相关工作
  • 方法
    • SDM-UniPS
      • 预处理
      • 尺度不变的空间光特征编码器
      • 像素采样变压器的非局部交互
    • PS-Mix数据集
  • 实验结果
      • 训练细节
      • 评估和时间:
    • 消融实验
    • 定向照明下的评估
      • 没有对象掩码的评估
    • 空间变化的照明下的评估
  • 结论
  • 附录
    • 失败案例和更好的成像
      • 关于图像采集的基础
      • 失败案例和可能的解决方案
      • 光源的更好选择
      • 当掩码是必要的并且当它不是必需的时
      • 摄影上要注意的其他要点
    • 网络架构
    • BRDF参数恢复
      • 实施细节
      • 反射表示
      • 定向照明下的结果
      • 空间变化的照明下的结果


前言

Conference: CVPR2023
Code: https://github.com/satoshi-ikehata/SDM-UniPS-CVPR2023
paper: https://arxiv.org/abs/2303.15724
独立作者: Satoshi Ikehata
机构: National Institute of Informatics (NII)

给定未知空间变化的光照下的多个图像,可以直接恢复出非凸的、非朗伯曲面的详细表面法线。


在这里插入图片描述

摘要

  1. SDM-UniPS,一个开创性的可扩展、详细、无掩码和通用光度立体网络。可以恢复惊人的复杂表面法线贴图,与3D扫描仪的质量相媲美,即使图像是在不受控制的环境中未知的、空间变化的照明条件下捕获的。我们已经扩展了以前的通用光度立体网络来提取空间光特征,利用高分辨率输入图像中的所有可用信息并考虑表面点之间的非局部交互
  2. 提出了一个新的合成训练数据集,它包含了现实场景中发现的各种形状、材料和照明场景
  3. 了我们的方法不仅在公共基准上超过了校准、特定于照明的技术,而且即使在没有对象掩码的情况下也表现出色

引言

Task

光度立体[59]旨在通过分析从不同光照条件下从固定视角捕获的图像来推断场景的表面法线图。现有光度立体方法都假定了它们特定的照明条件,这导致了它们的适用性的限制。例如,假设定向光照条件(如[25,29,30])的方法不适合自然照明,反之亦然(如[18,44])。

为了克服这一限制,引入了“通用”光度立体方法(UniPS)[27],旨在在未知和任意照明条件下运行。与之前假设特定基于物理的照明模型的未校准光度立体方法 [10, 12, 32] 相比,该方法对每个像素处的非物理特征进行编码,以表示空间变化的照明,这是校准光度立体网络 [26] 中物理照明参数的替代品。这种方法迈出了处理现有方法无法处理的未知、空间变化的照明的第一步。然而,UniPS恢复的表面法线图虽然不完全不准确,但看起来很模糊,缺乏精细细节(见图1右上角)。

调查后,我们确定了导致次优重建性能的三个基本因素。首先,提取照明来自下采样图像的特征(即全局照明上下文)导致较高输入分辨率的信息丢失,并产生模糊伪影。其次,UniPS采用像素级标定光度立体网络利用光照特征预测表面法线,导致整体形状恢复不精确。尽管像素化方法 [25,26,30] 在捕获更精细的细节方面提供了优势 [11, 34, 56],但它们存在无法合并全局信息的问题。

最后,第三个问题在于训练数据中存在的形状、材料和光照条件的多样性有限,这阻碍了其适应各种现实世界情况的能力。这种限制主要源于当前数据集(即 PS-Wild [27])不包括专注于特定入射角的高频分量的光源下的渲染,例如点源或方向源。因此,当暴露于像DiLiGenT[53]这样的定向照明设置时,该方法表现出相当大的性能下降,这将在本文后面演示。

在本文中,我们提出了一种开创性的光度立体网络,可扩展、详细和无掩模的通用光度立体网络(SDM-UniPS),该网络从极端不受控制的照明条件下捕获的图像中恢复出具有显著精度的法线贴图。如图1所示,SDM-UniPS是可扩展的,能够从比训练数据(例如512x512)具有更高的分辨率(例如2048x2048)的图像生成法线贴图;详细地说,在DiLiGenT[53]上提供比大多数现有的正交光度立体技术(包括校准方法)更少的输入图像更准确的法线贴图,在某些情况下,详细超过了3D扫描仪;而且它是无掩码的,即使在没有掩码的情况下,也允许应用,与许多传统方法不同。

我们的技术创新包括:

  1. 开发一种尺度不变的空间光特征编码器,可以有效地提取照明特征,同时利用所有输入数据并保持与输入图像大小的可扩展性。我们的编码器基于“split-and-merge”策略,在不牺牲性能的情况下适应训练和测试期间不同的输入图像大小。
  2. 利用我们的novel像素采样变压器开发表面法线解码器。通过随机采样固定大小的像素,我们使用 Transformers [58] 通过采样像素之间的非局部交互同时预测表面法线,有效地考虑了全局信息。
  3. 创建一个新的合成训练数据集,包括场景中具有不同纹理的多个对象,在包含低频和高频照明的明显不同的照明条件下渲染。(貌似没开源这个 dataset)

我们认为,与现有的需要细致照明控制的光度立体算法相比,最显著的贡献是从数据采集到法线地图恢复的非凡时间节省,即使在未校准的设置中也是如此。这一进展允许光度立体在家中执行,字面上是“在野外”设置。

相关工作

在本节中,我们将简要概述专注于单个正交相机假设的光度立体文献。替代设置(例如,透视、多视角相机)超出了这项工作的范围。

  1. 基于优化的方法:大多数光度立体方法假设Woodham[59]之后校准的方向照明,并通过反向求解基于物理的图像形成模型来优化参数

    • 这种方法可以进一步分类为稳健的方法,其中非朗伯分量被视为异常值 [29, 45, 60, 67];
    • 基于模型的方法,它明确地考虑了非朗伯反射率 [16,28,52];
    • 以及基于实例的方法 [22, 24, 54],这些方法利用在相同条件下捕获的已知对象的观察作为目标场景。
    • 未校准的任务类似于校准的任务,但照明参数未知。
    • 直到最近,大多数未校准的光度立体算法都假设朗伯可积表面,旨在解决一般 Bas-Relief 模糊性 [6, 14, 15, 19, 42,48,51,62]。
    • 与这些工作相比,还探索了自然光下的光度立体,其中自然照明是使用球谐函数 [7,18]、主要太阳照明 [5,23] 或等效定向照明 [17, 44] 来近似的。
    • 尽管大多数基于优化的方法不需要外部训练数据,但它们在处理预定义的逐点图像形成模型无法描述的全局照明现象(例如相互反射)方面从根本上受到限制
  2. 基于学习的方法:基于学习的方法可以有效地解决在简单的图像形成模型中难以表示的复杂现象。

    • 然而,第一个光度立体网络[50]在训练和测试过程中都需要一致的照明条件。为了解决这个限制,已经研究了各种策略,例如观察图 [25, 41]、集合池化 [11, 31]、图卷积 [66] 和 selfattention [26, 36]。
    • 此外,研究人员还探索了未校准的深度光度立体网络[10,12,32,57],其中照明参数和表面法线按顺序恢复。自监督神经逆渲染方法已经开发出来,而不需要外部数据监督
    • Taniai 和 Maehara [56] 使用神经网络而不是参数物理模型,图像和照明作为输入。这项工作由 Li 和 Li [34, 35] 扩展,他们结合了最近的基于神经的坐标表示 [43]。然而,尽管它们做出了巨大的努力,但这些方法旨在仅使用单方向光源工作,并且泛化能力有限,无法推广到更复杂的照明环境
  3. 通用光度立体网络(UniPS)[27]是第一个通过利用称为全局照明上下文的非物理照明表示来消除先验照明模型假设的方法

    • 通过使用 Transformers [58] 沿光轴分层特征图的像素通信为每个光照条件恢复这些全局照明上下文。在表面法线预测过程中,单独选择一个位置,网络聚合所有全局照明上下文(从规范分辨率双线性插值)和不同光照条件下位置的原始观测,以像素级预测表面法线。
    • 该方法引入了两种策略来处理高分辨率图像:将图像下采样到规范分辨率,以恢复全局照明上下文,并使用像素级表面法线预测。尽管这两个概念有助于图像大小的可扩展性,但由于输入信息的丢失和非局部视角的缺失,它们会导致性能下降,如前所述。
  4. 我们的工作从[27]中获得灵感,并且共享一些基本理念,特别是使用Transformers[58]来沿光轴进行特征通信和聚合。然而,我们的方法通过以非局部方式充分利用输入信息而与[27]有所不同,这带来了重建质量的显著提升。

方法

针对最近在[27]中引入的具有挑战性的通用光度立体任务。与之前的校准和未校准任务不同,通用任务对表面几何形状、材料属性或最重要的是照明条件没有假设
该任务的目标是从图像 I k ∈ R H × W × 3 I_k∈R^{H×W×3} IkRH×W×3中恢复法线映射 N ∈ R H × W × 3 N∈R^{H×W×3} NRH×W×3 k ∈ 1 , . . . , K k∈1, ..., K k1,...,K 在 K个未 照明条件下使用正交相机捕获。可选地,可以提供对象掩码 M ∈ R H × W M ∈ R^{H×W} MRH×W

在这里插入图片描述

我们的方法(SDM-UniPS)如图2所示。给定预处理图像和可选的对象掩码,通过沿空间和光轴(即尺度不变的空间光特征编码器)的相互作用提取每个光照条件的特征图

然后,我们从输入图像的坐标系中随机采样位置,并在这些位置双线性插值特征

每个位置的特征和原始观察按像素聚合,并在它们之间的非局部空间交互(即像素采样 Transformer)后从聚合特征中恢复表面法线。与[27]一致,为了清楚起见,我们专注于描述高级概念,而不是提供详细的解释。有关网络架构的全面描述,请参阅附录。

SDM-UniPS

预处理

与[27]一样,我们将输入图像的大小调整为可被32整除的分辨率®,这是大多数分层视觉骨干接受的。为了确保图像值在相似的范围内,每个图像由其最大值和平均值之间的随机值归一化。

尺度不变的空间光特征编码器

经过预处理后,我们通过沿空间和光轴的相互作用从图像中提取特征图和可选的对象掩码。遵循[27]中的基本框架,将每个图像和对象掩码连接起来形成一个张量 O k ∈ R R × R × 4 O_k∈R^{R×R×4} OkRR×R×4,然后将其输入到公共视觉主干[37-39]以提取分层特征映射 B k s ∈ R R S s × R S s × C s {B^s_k}∈R ^{ \frac{R}{S_s}×\frac{R}{ S_s}×C_s} BksRSsR×SsR×Cs s ∈ 1 、 2 、 3 、 4 s∈1、2、3、4 s1234。这里, S s ∈ 4 、 8 、 16 、 32 S_s∈4、8、16、32 Ss481632表示第 s s s个特征映射的比例,Cs是该尺度下的特征的维度。对于每个特征尺度,来自同一像素的不同张量的特征使用naïve Transformer[58]沿光轴相互作用。

最后,利用特征金字塔网络[63]将分层特征映射融合为 F k ∈ R R 4 × R 4 × C F F_k∈R^{\frac{R}{4} × \frac{R}{4} ×C_F} FkR4R×4R×CF,其中 C F C_F CF为输出特征维数。请注意,与 [27] 不同,我们在每个层次结构尺度上使用了不同数量的 Transformer 块(即块的数量从 [1,1,1,1] 变为 [0,1,2,4]),以便更深的特征比浅层特征交互更多

在UniPS[27]中,图像和掩码在输入到骨干网之前被下采样到规范分辨率。这种分辨率必须是恒定的和足够小(例如256x256),以防止特征提取过程中过多的内存消耗,特别是在处理高分辨率输入图像时。此外,使用恒定分辨率确保相同形状的张量被馈送到主干,这有助于避免由于训练和测试之间输入张量形状的巨大差异而导致的显着性能下降。因此,下采样导致输入图像中的大部分信息丢失,导致法线图恢复模糊。

为了解决这个问题,我们提出了一种尺度不变的空间光特征编码器,旨在保持骨干网络的一致、小的输入分辨率,同时保留输入图像的信息。具体来说,我们建议将输入张量拆分为具有恒定、小分辨率的非重叠子张量。

更详细地说,我们将 O O O 分解为大小为 G × G G × G G×G P 2 P^2 P2 个子张量(在我们的实现中 G = 256 , P ≜ R / G G = 256,P ≜ R/G G=256PR/G),方法是从每个 P × P P ×P P×P 像素中获取一个样本并将它们堆叠为子张量,如图 2 所示。

每个子张量都包含原始张量的整个部分,但略有偏移。所有子张量都通过相同的空间光特征编码器独立处理,然后合并回大小为 ( R 4 × R 4 × C F \frac{R}{4} × \frac{R}{4} × C_F 4R×4R×CF ) 的张量。子张量的组合特征图保留了所有输入信息,因为没有发生下采样

然而,不同子张量之间没有交互会导致显着的块伪影,特别是当 P 很大时。为了缓解这种情况,将从幼稚缩小的图像编码的另一个特征图add(concat对结果没影响,但会导致内存消耗)到合并的特征图中,促进子张量之间的交互。可选地,当 P 大于 4 时,我们将深度高斯滤波(即内核大小为 P - 1)应用于特征图以进一步增强交互。最后,我们得到了每个光照条件的尺度不变空间光特征图 F k ∈ R R 4 × R 4 × C F \mathcal{F}_k∈R^{\frac{R}{4} × \frac{R}{4} × C_F} FkR4R×4R×CF

像素采样变压器的非局部交互

给定尺度不变的空间光特征图 F k F_k Fk和图像 I k I_k Ik,在沿光轴的像素级特征聚合后恢复表面法线(即光通道从K缩小到1)
在不同光照条件下的特征聚合是光度立体网络的基础步骤,研究人员已经探索了多种策略,如观察图[25, 41]、最大池化[11, 12]、图卷积[66]和自注意力[26, 27]。

我们和UniPS[27]一样,在编码器中使用了带有自注意力[58]的Transformer模型。UniPS遵循其他逐像素方法[25, 26, 30],直接从逐像素聚合的特征向量预测表面法线,而没有考虑非局部交互。然而,聚合后的特征会丢失特定光照信息,自然地获得比聚合前更多与表面属性相关的光照不变表示

在传统的基于物理的视觉任务中,常见的约束条件包括各向同性[6]、互反对称性[55]、反射率单调性[9]、稀疏反射基[16]和表面可积性[47],这些约束大多在整个表面上共享,而不仅限于单个表面点。因此,在基于物理的任务中,考虑多个表面点聚合特征的非局部交互至关重要。

聚合特征图上应用像 CNN 这样的图像神经网络需要大量的计算成本,用于大输出分辨率(例如,2048 × 2048),以及损害输出法线图细节的风险。为了解决这些问题,我们从最近关于 3D 点 [61, 70] 的 Transformer 中汲取灵感,并在输入坐标系中的随机位置(例如 m = 2048)的像素样本(例如 m = 2048)的固定数量 (m) 上应用 Transformer。我们将此称为像素采样 Transformer。与基于图像的方法不同,像素采样 Transformer 的内存消耗每个样本集是恒定的,缩放到任意图像尺寸。此外,通过将 Transformer 应用于随机采样的位置集,几乎完全消除了可能导致特征图过度平滑的局部交互(例如,在 CNN 中)。

具体来说,从输入坐标系统的掩码区域中随机选取m个像素 x i = 1 , . . . , m x_i=1,...,m xi=1,...,m,我们在这些像素位置插值得到特征 F 1 , . . . , K ( S ( x i ) ) F_1,... ,K(S(x_i)) F1,...,K(S(xi)),其中S是双线性插值算子。然后,与[27]类似,将插值得到的特征与对应的原始观测值 I 1 , . . . , K ( x i ) I_1,...,K(x_i) I1,...,K(xi)连接,并通过多头注意力池化(PMA)[33]聚合为 A ( x i ) A(x_i) A(xi)

对于同一样本集中不同像素位置的聚合特征,我们应用另一个基础Transformer[58]来执行非局部交互。由于此过程的目标是基于物理属性考虑表面级别的交互,像素坐标信息并非必需。因此,与大多数现有的视觉Transformer模型(例如[13,38])不同,我们不对样本应用位置嵌入,使样本能够在没有位置信息的情况下传播其聚合特征。在非局部交互之后,我们使用两层MLP来预测采样位置的表面法线
最后,将每个集合的表面法线合并,得到输入图像分辨率下的最终表面法线图。这种像素采样Transformer方法在保持计算效率和保留输出法线图细节的同时实现了非局部交互,使其适用于高分辨率图像的基于物理的任务。

PS-Mix数据集

为了训练它们的通用光度立体网络 [27] 提出了 PS-Wild 训练数据集,该数据集使用商业 AdobeStock 3-D 资产渲染了 10,000 多个场景 [1]。PS-Wild 中的一个问题是每个场景仅由统一材料的单个对象组成。此外,[27] 中用于渲染场景的环境照明很少具有高频照明(例如,单点光源);因此,渲染图像偏向于低频照明条件。

在本文中,我们创建了一个新的训练数据集来解决 PS-Wild 训练数据集中的问题。我们没有在每个场景中放置一个统一的材料对象,而是将多个在同一场景中相互重叠的对象放在一起,并给出它们不同的材料。为了确保材料类别在一个场景中是不同的,我们手动将AdobeStock材料资产中的897个纹理图分为421个漫反射、219个镜面和257个金属纹理。

对于每个场景,我们从 410 个 AdobeStock 3-D 模型中随机选择四个对象,并从所有三个材料类别中分配三个纹理,并为每个对象随机选择一个纹理。此外,为了使光照条件更加多样化,我们没有使用环境照明来渲染图像,而是使用五种光源配置并将它们混合以渲染一个场景; (a) 环境照明,(b) 单向照明,© 单点照明,(d) (a)+(b) 和 (e) (a)+©。光源的方向和位置随机分布在参数的有效范围内3。
我们遵循PS-Wild[27]进行其他渲染技术(如自动曝光、对象比例调整)。我们的数据集由 34,921 个场景组成,每个场景都被渲染为输出 10 个 16 位、512×512 图像。在图3中,我们展示了同一场景的每个光照条件下的样本图像。

在这里插入图片描述

实验结果

训练细节

我们的网络使用 AdamW 优化器从头开始训练 PS-Mix 数据集和阶跃衰减学习率计划(每十个 epoch ×0.8)在第一个 epoch 中学习率预热。批量大小为 8,初始学习率为 0.0001,权重衰减为 0.05。每批4从输入训练图像的数量从3中随机选择到6。
在我们的工作中,我们选择ConvNeXt-T[39]作为我们的骨干,因为它的简单性和效率,这比最近的基于vitc的架构[13,37,38]更好,性能相当。训练损失是 MSE 损失,它计算表面法线向量的预测和地面实况之间的 ℓ 2 ℓ2 2 误差。附录中提供了附加信息,例如网络架构和特征维度。

评估和时间:

准确度是根据预测和真实表面法线图之间的平均角度误差 (MAE) 进行评估的,以度衡量。训练在四个 NVIDIA A100 卡上进行大约 3 天。我们方法的推理时间取决于输入图像的数量和分辨率。在分辨率为 512 × 512 的 16 个输入图像的情况下,在 GPU 上不包括 I/O 需要几秒钟。虽然计算成本会随着图像数量几乎呈线性变化,但这比最近的基于神经逆渲染的方法更有效[34,35,46,69]。

消融实验

首先,我们进行消融研究,以评估我们的尺度不变空间光特征编码器和基于像素采样transformer的非局部交互在不同采样规模下的各自贡献。
在这里插入图片描述

为了定量比较在不同光照条件下的性能,我们使用PS-Wild-Test数据集[27],该数据集包含50个在三种不同光照设置(定向光照、环境光照以及两者混合)下渲染的合成场景。在表1和图4中,我们将我们方法的不同配置与[27]进行了比较。需要注意的是,在没有尺度不变编码器和非局部交互的情况下(即基线方法),我们的方法与[27]几乎等同,只是存在一些细微差异(例如骨干网络架构、编码器中Transformer块的数量)。我们观察到,在我们的PX-Mix数据集上训练的基线方法改善了定向光照场景下的性能,这表明[27]在定向光照下效果不佳的主要原因之一是PS-Wild数据集的偏差。

考虑到聚合特征的非局部交互提高了重建精度,即使只有少量样本(例如 m=32),如图 4(顶部)所示。尽管随着样本数量的增加,准确性有所提高,但正如预期的那样,性能提升停滞不前(即 m=2048)。还证实了尺度不变的空间光特征编码器的有效性。在图4-(下)中,我们观察到训练和测试之间输入到主干的输入分辨率存在显着差异导致性能大幅下降,这进一步验证了我们的方法保持恒定输入张量形状的优势。

定向照明下的评估

DiLiGenT 评估:我们首先在 DiLiGenT 基准上评估我们的方法 [53]。每个数据集提供 96 612x512 16 位 HDR 图像,这些图像是在已知的单方向照明下捕获的。对象掩码和真实表面法线图可用。除了UniPS[27],我们还将我们的方法与专门为单方向照明设计的校准[12,25,28,30,34,41,59]和未校准[10,12,32,35,57]光度立体算法进行了比较。校准方法包括像素[25,28,30,41,59]和图像[12,34]方法。所有未校准的方法都是按图像的。我们认为 [32,34,35] 作为监督学习和无监督学习的组合,因为预训练模型被用作照明预测的起点。为了评估输入图像的有效数量,我们将我们的方法与不同数量的输入图像进行比较(结果平均超过 10 次随机试验)。

结果如表2所示。令人印象深刻的是,我们的方法不假设特定的照明模型,优于最先进的校准方法,设计用于定向灯(LB21[41],LL22a[34])。此外,与传统的光度立体方法不同,即使输入图像的数量减少,所提出的方法也不会经历显着的性能下降;即使只有 8 张图像,它也能保持最先进的结果。所提出的方法 (K = 2) 也优于专门用于两个输入图像的 TR22 [57]。在这里插入图片描述
覆盖HARVEST和READING的法线图如图5所示。由于物体高度非凸的几何形状,这些物体在基准测试中被认为是最具挑战性的。正如预期的那样,最先进的像素校准方法(LB21[41])可以恢复更精细的表面细节,而最先进的图像校准方法(LL22a[34])可以恢复更全局一致的结果。然而,它们都难以准确恢复物体的非凸部分。
在这里插入图片描述

没有对象掩码的评估

为了证明我们的方法不需要对象掩码,我们将其应用于来自深度重照明工作 [65] 的两个真实场景,每个场景包含 530 个 8 位整数图像,分辨率为 512x512,在未知单方向照明下使用 ganry 的采集系统捕获。对象掩码和真实表面法线图不可用。我们将我们的方法与最先进的未校准方法 (CW20 [12] 和 LL22b [35]) 进行了比较,并在图 6(顶部)中显示了结果。与难以恢复精确照明方向的未校准方法不同,我们提出的方法成功地捕获了没有掩码的对象边界,即使在具有显着全局照明效果的复杂场景中,并且始终恢复整个图像的法线。我们在没有掩码的 DiLiGenT 场景中进一步评估了我们的方法,如图 6(底部)所示。虽然现有的假设对象掩码的方法产生了高度不准确的表面法线图,但我们提出的方法恢复了更可信的法线,图像更少(即K=16 vs K=96)。

在这里插入图片描述

空间变化的照明下的评估

在这里插入图片描述

我们的方法在具有空间变化的光照条件的挑战性场景中进行了评估,并将其与第一个通用网络(UniPS)[27]和最先进的方法进行了比较[27] 提供的数据集上的未校准光度立体方法 (GM21) [17]。我们测试了三个对象(Apple、Grape 和 Owl)。虽然GM21[17]失败,I22[27]丢失细节,但我们的方法,使用尺度不变的空间光特征编码器和非局部交互,产生了准确的结果。

在这里插入图片描述

在图 8 中,我们使用四个对象与来自 3D 扫描仪获得的法线贴图进行主观比较。**我们使用MeshLab的互信息配准滤波器[3]将扫描后的法线映射与图像对齐,如[53]所示。我们的方法恢复了比 3D 扫描仪 (EinScan-SE) 更高的定义表面法线图,并且无论表面材料如何都表现良好。**光度立体性能随着数码相机分辨率的增加而增加,这表明 3D 扫描仪可能难以跟上。

在这里插入图片描述

最后,我们在图9中展示了在具有挑战性的光照条件下没有掩模的复杂非凸场景的表面法线预测。我们将我们的方法应用到三个极具挑战性的数据集:School Desk、Coins和Keyboard和Swets。学校Desk是一个复杂场景,具有简单的物体、非均匀照明和投射阴影,使得表面法线地图恢复变得困难。Coins 和 Keyboard 对各种材料的多个平面对象进行了表征。Sweets 是一个具有挑战性的场景,具有丰富的相互反射和投射阴影。如图所示,该方法成功地恢复了均匀的表面法线,很大程度上不受阴影的影响,有效地重建了表面微形状,证明了其可扩展性和细节保存。

结论

在本文中,我们提出了一种可扩展的、详细的和无掩模的通用光度立体方法。我们演示了-3D扫描仪Ours (SDM-UniPS) I22 (UniPS)输入(K=10)图8。与3D扫描的定性比较。学校Desk (K=10)Coins和Keyboard (K=12)Swets (K=13)SDM-UniPS (Ours) UniPS (I22) 输入 (w/o object mask) 图 9. 无对象掩码的空间变化的光照条件下图像表面法线恢复。结果表明,该方法在 DiLiGenT 基准测试中优于大多数校准和未校准的方法。

此外,与唯一现有方法 [27] 对通用任务的比较显示出显着的改进。然而,仍然存在一些挑战。首先,虽然我们观察到所提出的方法适用于多功能照明条件,但我们发现当光照变化最小时,我们的方法不是很有效。其次,通过替换损失和数据,所提出的方法可以很容易地扩展到法线地图恢复之外。实际上,我们尝试输出材料的 BRDF 参数。然而,由于基本的歧义,很难评估恢复的 BRDF 参数。有关这些限制和各种额外结果的进一步讨论,请参阅附录,以更好地理解这项研究。

附录

失败案例和更好的成像

在这里插入图片描述
虽然主要文本仅讨论问题的理论方面,但本节通过更详细地讨论输入获取的局限性以及如何为我们的方法捕获更好的图像来讨论我们方法的实际方面。

关于图像采集的基础

我们的图像采集过程很简单。准备一个场景,并在不同的照明条件下拍摄照片,而不需要移动相机。只要发生足够的光照变化,光源理论上可以是主动的(例如,使用手持光)或被动的(例如,在同一板上安装相机和物体并周围移动它们)。实际上,最可能的情况可能涉及静态环境中动态活动灯的组合。我们的方法对场景的大小没有限制。另一方面,由于所提出的方法假设正交相机,因此不考虑极端投影失真。然而,作为一种常见的做法,透视投影相机的视图方向在中心视场周围变得更加平行,因此在实际应用中,仅使用足够高分辨率图像的中心区域并不存在问题。在整篇论文中(即主要和补充),我们使用基于对象大小的 45mm 或 200mm 焦距相机来捕获 4000x4000 图像,其中中心 2048x2048 区域用于预处理,如主要论文所述。

失败案例和可能的解决方案

在我们的实验中,我们观察到两个主要的失败案例,如图10所示。首先,如果未屏蔽区域包含不存在或很少光照变化的区域,性能会急剧下降,因为我们的训练数据(PS-Mix)不包含光源条件不改变或从图像到图像在图像的任何区域都非常弱的情况。例如,当聚光灯亮灯是光(区域或点光更好)数码相机(智能手机也可用)图11。

在这里插入图片描述

在物体上照明,如果图像包含许多不包含在光直径中的区域,表面法线恢复可能会失败。另一个常见的情况是,动态光源的强度与静态光源的强度非常弱,因此图像之间的光照变化很少。当该方法在白天应用或尝试恢复大深度范围场景时,往往会发生这种情况。有多种可能的方法可以改进这一点,例如通过包括此类情况(例如,点光渲染)或添加机制来识别和忽略光源变化不会发生的区域来改进训练数据,但进一步讨论将超出补充中允许的内容,因此我们将这些问题留给未来的工作。

光源的更好选择

基于上述讨论,可以同时照亮宽区域的点光源或表面光源似乎更合适,而不是倾向于产生没有明显照明的区域的焦点。一般来说,当打开自动曝光控制时,当非常黑暗和明亮区域混合在一起时,音调分辨率会降级以增加动态范围。另一方面,当整个图像明亮时,可以在狭窄的动态范围内表示足够的信息,导致图像噪声较少。

因此,为了提高捕获图像的质量,必须使辐照度在图像中均匀。根据经验,我们发现使用环形光进行自拍或智能手机/平板电脑屏幕作为光源是我们满足上述条件的两个最有效的方法。其中,本文的许多实验中使用了提供足够光且易于处理的自拍光。这项工作中使用的工具如图11所示。由于不需要校准光源或相机,因此所需要的只是单个光源、单个相机和目标对象。

当掩码是必要的并且当它不是必需的时

基本上,所提出的方法不需要掩码。由于从论文的结果中可以注意到,我们的方法能够将没有掩码的对象的深度不连续保留到任何现有方法都无法实现的级别。有三个主要因素可以做到这一点。

  1. 首先,与现有的数据集(即 PS-Wild)不同,我们的 PS-Mix 由多个重叠的对象组成,学习是在没有明确提供其边界的情况下进行的
  2. 其次,我们的方法比现有的所有针对深度边界发生的相互反射和投射阴影的方法更健壮。
  3. 第三,在聚合特征的全局交互过程中,与现有方法不执行局部交互,因此不会发生过度平滑。

但是,在某些情况下,对象掩码是有帮助的。第一种情况是,当人们希望只恢复场景中特定对象的形状时。第二种情况是,当我们想要明确“隐藏”光线变化很小的区域时。在网络训练中,总是同时给出ground truth掩码,损失函数仅从掩码中的像素计算。因此,在训练期间不考虑掩码之外的信息。换句话说,掩码可以用来有意地将区域隐藏在光照变化较弱的网络中。为此,掩码不需要遵循对象的轮廓;类似边界框的规范就足够了

摄影上要注意的其他要点

我们发现还有其他例外情况,我们的方法效果不佳。如果图像校正太强,它将失败。例如,最近的智能手机应用各种图像过滤器来提高拍摄后图像的外观。因此,物理正确的阴影变化被破坏。此外,虽然所提出的方法基本上不需要 HDR(高动态范围)图像,但对于太多过度曝光和曝光不足,它不如稳健。幸运的是,最近数码相机和智能手机提供的自动曝光控制对于避免这种情况非常有效。与其他光度立体方法类似,我们的方法在图像模糊和图像的意外错位方面也无济于事。上述问题可以通过仔细调整相机轻松解决,因此它们在实践中并不重要。

总结在本节中,在拍照时应牢记以下几点。

  • 为了假设一个正交相机,物体应该放置在焦距足够大的相机的中心区域。
  • 确保照明在整个图像中发生变化。为此,可以照亮宽区域的光源,如点光或表面光,优于聚光灯。或者,掩码可以用来隐藏光照变化较弱的区域。
  • 关闭软件图像校正,增加字段的深度以防止模糊,并确保相机在拍照时不会移动。
  • 图像的数量可以很小。如果您需要更多,请添加更多。它只需要几秒钟。

网络架构

整个框架由六个子网络组成。
尺度不变的空间光编码器包括 (a) 用于图像特征提取的骨干网络,(b) 用于沿光轴的像素级交互的 Transformer 网络,以及 © 用于融合分层特征图的特征金字塔网络。在像素采样 Transformer 中,有 (d) 用于沿光轴的特征聚合的 Transformer 网络,以及 (e) 用于沿空间轴的特征交互的 Transformer 网络。最后,我们有 (f) 用于表面法线预测的 MLP。

在本节中,我们将详细介绍每个网络架构。

  • 主干:在我们的尺度不变的空间光编码器中,每个子张量(即子图像和子掩码的串联)独立地输入到 ConvNeXt [40],这是一个现代化的 ResNet [20],就像从最近的 Vision Transformer [13, 38] 中汲取灵感的架构一样。ConvNeXt 的变体在通道数 C 和每个阶段的 ConvNeXt 块 B 的数量上有所不同。我们在这里选择了以下配置:
    C o n v N e X t − T : C = ( 96 , 192 , 384 , 768 ) , B = ( 3 , 3 , 9 , 3 ) ConvNeXt-T: C = (96, 192, 384, 768), B = (3, 3, 9, 3) ConvNeXtT:C=(96,192,384,768),B=(3,3,9,3)
    ConvNeXt 块包括 7x7 深度卷积、1x1 卷积与倒置瓶颈设计(4x 隐藏维度)和 1x1 卷积以消除隐藏维度。在卷积之间,放置层归一化[64]和GeLU[21]激活。ConvNeXt的输出是(B x 96 x R/4 x R/4)的特征映射堆栈,(B x 192 x R/8 x R/8), (B x 384 x R/16 x R/16)和(B x 768 x R/32 x R/32),其中B为批大小,R为主论文中定义的输入子张量大小。

  • Transformer(沿光轴交互):给定骨干网的分层特征映射,我们对沿光轴的各个尺度的特征进行像素级应用Transformer[58],如[27]所示。我们选择隐藏层 C 中的通道数,Transformer 块 B 的数量如下。
    T r a n s f o r m e r : C = ( 96 , 192 , 384 , 768 ) , B = ( 0 , 1 , 2 , 4 ) Transformer: C = (96, 192, 384, 768), B = (0, 1, 2, 4) Transformer:C=(96,192,384,768),B=(0,1,2,4)
    Transformer 块将输入特征投影到与输入维度相同的查询、键和值向量。然后将它们传递给多头自注意力(头部数量为 8),具有 soft-max 和前馈网络,具有两个线性层,其输入和输出层的维度相同,但内层之一是输入的两倍。两个子层中的每一个周围的残差连接,然后是层归一化 [64] 和 dropout (p = 0.1)。

  • 特征金字塔网络:在使用 Transformer 逐像素交互的分层特征图之后,每个输入图像对应的不同尺度的特征图与最初为语义分割任务提出的特征金字塔网络(即 UPerNet [63])融合。我们只是在 MMSegmentation [4] 上使用实现,无需任何修改。输出特征大小为 (B x R/4 x R/4 x 256)。

  • Transformer(沿光轴聚合):给定输入坐标系中的 mpixel 位置,我们将每对原始观察和来自特征金字塔网络输出的双线性插值特征向量连接到维度为 259 的向量(即 256+3)。特征聚合网络以与输入位置相同的 K 组 259 维特征向量,并执行 C=256 的两个 Transformer 块(QKV 投影从 259 到 256 的块)。输出特征与原始观察进一步连接,每个 259 维特征向量再次馈送到 C=256 的其他三个 Transformer 块。然后,输出 K 个特征向量被传递到 PMA [33],其中集合中的元素数量使用 C=384 的另一个 Transformer 块从 K 缩小到一个。

  • Transformer(沿空间轴交互):在像素采样 Transformer 模块的最后一步,我们执行两个 Transformer 块 (C=384) 来传达 m 个位置之间的特征。Näive self-attention 需要 O(m2) 内存消耗,但是 m(即像素样本的数量)远大于 K(即输入图像的数量),这使得增加样本量变得困难。因此,我们改为使用 [49] 的自注意力的 O(m) 实现来解决这个问题(请注意,计算成本不会改变)。

  • 法线预测网络:表面法线预测器是具有一个隐藏层的 MLP,其特征维度shrank 为 384 → 192 → 3,输出向量的范数归一化为该位置的单位表面法向量。

BRDF参数恢复

正如主要论文的结论所强调的那样,所提出的框架超越了表面法线恢复,并且可以通过仅替换训练数据和损失函数轻松应用于表面反射率恢复。这种多功能性使所提出的方法能够在新的照明环境下渲染目标场景,或者换句话说,实现了新的重新照明。然而,由于光照和反射率的无数种可能组合,例如白光下的红色表面或红光下的白色表面,在未校准设置中从图像中恢复表面反射率会带来根本的模糊性。这种复杂性使得客观评估几乎无法实现。鉴于评估的挑战,我们选择不表征主要论文中反射率恢复的结果。相反,我们在这里展示它们以证明我们的方法不限于表面法线恢复。我们的 PS-Mix 数据集已经结合了来自 AdobeStock [1] 的基本颜色、粗糙度和金属度图,用于渲染图像。我们简单地利用这些地图作为训练数据,并使用预测和提供的基本颜色、粗糙度和金属度图之间的均方误差 (MSE) 损失来训练我们的网络。一旦恢复表面反射率参数和表面法线,我们就可以使用任何基于物理的渲染器(如Blender[2])在新的照明条件下渲染场景的图像。

实施细节

我们分别实现了两个独立的网络用于表面法线图恢复和基本颜色、粗糙度和金属度图恢复。我们观察到,为这两个任务训练单个网络会略微降低性能。网络架构和训练方法与主要论文中描述的相同,唯一的区别是训练数据和损失函数。

反射表示

PSWild [27] 和我们的 PS-Mix 中的图像都是使用二色双向反射分布函数 (BRDF) [8] 渲染的,该函数通常在基于物理的材料渲染中假设。这种BRDF是漫反射、镜面和金属BRDF的组合,由三个参数控制:基本颜色∈R3、粗糙度∈R和金属度∈R(所有参数都在0到1的范围内)。漫反射BRDF包括一个Schlick菲涅耳因子和一个漫反射反反射项,其颜色由基本颜色参数决定。镜面BRDF是Cook-Torrance微面BRDF,它使用各向同性GGX(也称为广义TrowbridgeReitz-2)和Smith掩蔽阴影函数。粗糙度参数控制叶的形状,粗糙度值越小,镜面叶越陡峭,即镜面高光越突出。金属BRDF使用相同的镜面BRDF,但反射光用基本颜色参数着色。金属参数平衡了介电(漫反射+镜面)和金属BRDFs之间的重量。根据这个定义,表面的金属度主要由其镜面反射的颜色决定。换句话说,如果预测的表面基色和镜面反射的颜色相似,则表面被归类为金属,并分配了相应的金属值。

一些黑色表面被归类为金属,但它并没有在新的重照明中提出一个问题,因为黑色表面总是由相同的BRDF表示,而不管它们的金属度值如何。

定向照明下的结果

在图12中,我们给出了随机32张图像反射率恢复的结果DiLiGenT[53]中的五个对象。对于每个对象,我们展示了输入图像和恢复表面法线 (N)、基本颜色 (Bc)、粗糙度 (Ro) 和金属度 (Mt) 映射之一。我们观察到所提出的方法可以对相同的材料进行聚类,即使我们没有根据先验知识对反射率属性施加任何基于物理的约束,例如基材料的平滑度或稀疏性

我们还观察到表面颜色和阴影效果之间的成功分离。此外,DiLiGenT 中的几个对象具有金属绘画(例如,Harvest 和 Cow),我们的方法正确地恢复了这些区域的金属度值。据我们所知,我们的方法是第一个在未知光照条件下恢复非凸场景的物理上合理的金属参数的方法。在这里插入图片描述
使用恢复的BRDF参数,我们使用基于物理的渲染器[2]在三个不同的照明条件下渲染场景:与相机位置、室外环境照明和室内环境照明搭配的点光。虽然问题设置不可避免的歧义使得定量评估不可能,但我们为每个光照条件获得了非常合理的渲染结果。请注意,所有结果都基于表面法线图,而不是表面网格,因此我们不能渲染全局照明效果,例如投射阴影和相互反射。

在这里插入图片描述

我们对结果的分析揭示了一个有趣的观察结果:非局部交互在恢复表面反射率方面比表面法线更为关键。如图 14 所示,我们发现材料属性的恢复需要大量的观察,包括从低频(扩散)到高频(镜面)组件。可靠的低频信息几乎足以用于表面法线预测,但它不足以恢复材料属性,并且关注特定像素是不够的

聚合特征的非局部相互作用被证明有助于看到相同材料的不同表面点来恢复表面反射率,从而产生我们出色的结果。

空间变化的照明下的结果

在图13中,我们展示了在空间变化的光照下从图像中恢复反射率和新的重新照明的结果。结果表明,所提出的方法实现了物理上合理的性能,克服了每个场景的挑战性条件。

例如,在Figures数据集中,同一场景中存在金属漆面的非平面物体和非金属的平面物体,但网络成功重建了法线图,而无需区分这些物体。此外,如重光照结果所示,金属漆面区域的金属度参数也被成功恢复。Cable对象包含复杂缠绕的细长电缆,这类几何形状在现有方法处理时往往会产生模糊的深度不连续性。提出的方法不仅准确重建了这些几何形状,还恢复了均匀的基础颜色,且不受非凸几何形状造成的投射阴影或内部反射的影响。对于其他物体,如Toast、Keychain和Alligator,提出的方法成功恢复了详细的表面法线图,准确保留了深度不连续性,并生成了在视觉上合理的表面反射率图,这些图不受阴影和全局光照效果的影响。新视角重光照结果表明,我们的结果在捕捉表面属性方面达到了实用质量。

在这里插入图片描述

这些结果表明,提出的方法不仅在表面法线恢复方面非常有效,在表面反射率恢复和场景新视角重光照方面也表现出色。然而,我们再次强调,我们意识到这个实验的结果并不客观,对表面反射率恢复的进一步定量评估将留待未来工作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/65006.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】7.0 入门学习(七)——MySQL基本指令:帮助、清除输入、查询等

1.0 help ? 帮助指令,查询某个指令的解释、用法、说明等。详情参考博文: 【数据库】6.0 MySQL入门学习(六)——MySQL启动与停止、官方手册、文档查询 https://www.cnblogs.com/xiaofu007/p/10301005.html 2.0 在cmd命…

低代码开源项目Joget的研究——基本概念和应用

大纲 1. 基本概念1.1 Form1.1.1 Form1.1.1.1 概述1.1.1.2 主要特点和用途1.1.1.3 创建和使用 Form1.1.1.4 示例 1.1.2 Section1.1.2.1 概述1.1.2.2 主要特点和用途1.1.2.3 示例 1.1.3 Column1.1.4 Field1.1.5 示例 1.2 Datalist1.2.1 Datalist1.2.1.1 主要特点和用途1.2.1.2 创…

单机游戏《野狗子》游戏运行时提示dbghelp.dll缺失是什么原因?dbghelp.dll缺失要怎么解决?

《野狗子》游戏运行时提示dbghelp.dll缺失:原因与解决方案 在畅游《野狗子》这款引人入胜的游戏世界时,突然遭遇“dbghelp.dll缺失”的错误提示,无疑会给玩家的探险之旅蒙上一层阴影。作为一名深耕软件开发领域的从业者,我深知此…

Marscode AI辅助编程

直接使用Marscode的云服务来开发,也是很方便的,不用担心配置环境的问题,很适合初步学习,在任何设备都能开发。 番茄钟 请你基于html、tailwind css和javascript,帮我设计一个“番茄时钟”。要求UI简洁美观大方&#x…

使用Vue的props进行组件传递校验时出现 Extraneous non-props attributes的解决方案

作者:CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境:WebStorm 目录 出现错误的情况 报错: 代码: 报错截图 原因分析 解决方案 方法一 方法二 出现错误的情况 以下是我遇到该错误时遇到的报错和代码&…

ffmpeg之显示一个yuv照片

显示YUV图片的步骤 1.初始化SDL库 目的:确保SDL库正确初始化,以便可以使用其窗口、渲染和事件处理功能。操作:调用 SDL_Init(SDL_INIT_VIDEO) 来初始化SDL的视频子系统。 2.创建窗口用于显示YUV图像: 目的:创建一个…

iDP3复现代码模型训练全流程(一)——train_policy.sh

iDP3 核心脚本包括三个:deploy_policy.sh、vis_dataset.sh、train_policy.sh,分别代表了部署、预处理和训练,分别作为对应 py 脚本的参数设置前置环节 训练环节仅需运行指令: # 3d policy bash scripts/train_policy.sh idp3 gr1…

链原生 Web3 AI 网络 Chainbase 推出 AVS 主网, 拓展 EigenLayer AVS 应用场景

Chainbase AVS 主网的正式上线,正在将 Chainbase 不同的层进行深入的串联,为 Chainbase 数据网络带来了验证和处理方面的应用与拓展的能力,并成为数据体系全面启动的新契机。 在 12 月 4 日,链原生的 Web3 AI 数据网络 Chainbase …

Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 【AI辅助开发系列】

🎀🎀🎀【AI辅助编程系列】🎀🎀🎀 Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码Visual Studio 安装和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 扩展Visual Studio 使用 GitHu…

Jenkins 任意文件读取(CVE-2024-23897)修复及复现

Jenkins任意文件读取漏洞CVE-2024-23897修复及复现 漏洞详情影响范围漏洞复现修复建议 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行…

智慧农业云平台与水肥一体化:道品科技引领农业现代化新潮流

在当今科技飞速发展的时代,农业也正经历着一场深刻的变革。智慧农业云平台和水肥一体化技术的出现,为农业生产带来了前所未有的机遇和挑战。 一、智慧农业云平台:农业生产的 “智慧大脑” 智慧农业云平台就像是农业生产的 “智慧大脑”&…

C++--------内存结构

C内存结构 程序内存分区: 栈区(Stack):由编译器自动分配和释放,用于存放函数的参数值、局部变量等。其操作方式类似于数据结构中的栈,先进后出。例如,在函数调用时,函数内部的局部变…

f(f(x))=x^2 -11x+36, 求f(6)的值,

偶然看到的一个题目,一时兴起,做了一下。题目如下 简单粗暴的思路是待定系数法,盲猜f(x)是个2次函数,令f(x)ax^2bxc ,带入原式,发现矛盾(计算略)就想放弃了。 忽然看到如果带入6 的话&#xf…

用Python PySide6 复刻了两软件UI 做下练习

图样 1 代码 1: # -*- coding: utf-8 -*-import sys from PySide6.QtCore import (QCoreApplication, QMetaObject, QRect, QDate) from PySide6.QtGui import QIcon, QPixmap, QColor from PySide6.QtWidgets import (QApplication, QDialog, QLineEdit, QPushBut…

活动图的理解和实践

在软件开发和系统设计中,理解系统的工作流程和并发行为是至关重要的。活动图作为一种重要的建模工具,为我们提供了一种直观且有效的方法来描述这些复杂的过程。本文将详细探讨活动图的理解与实践,包括其基本概念、用途、构建方法以及实际应用…

Redis缓存数据库

1、介绍 redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库 redis的官网:redis.io 注:域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地 1、redis的特点: 1.丰富的数…

flink sink kafka

接上文:一文说清flink从编码到部署上线 之前写了kafka source,现在补充kafka sink。完善kafka相关操作。 环境说明:MySQL:5.7;flink:1.14.0;hadoop:3.0.0;操作系统&#…

WebRTC搭建与应用(五)-Coturn踩坑记

WebRTC搭建与应用(五)-Coturn踩坑记 近期由于项目需要在研究前端WebGL渲染转为云渲染,借此机会对WebRTC等有了初步了解,在此记录一下,以防遗忘。 第五章 WebRTC搭建与应用(五)-Coturn踩坑记 文章目录 WebRTC搭建与应用(五)-Coturn踩坑记前…

@vue/cli启动异常:ENOENT: no such file or directory, scandir

参考:https://blog.csdn.net/qq_44355188/article/details/122239566 首先异常报错是:ENOENT: no such file or directory, scandir ‘D:\Data\Project\VueProject\hello\node_modulesvue\cli-plugin-eslint\locales’;我的vue/cli版本是 4.5.15 重点是…

Git进阶:本地或远程仓库如何回滚到之前的某个commit

在Git的使用过程中,我们经常会遇到需要回滚到之前某个commit的情况。无论是为了修复错误、撤销更改,还是为了重新组织代码,回滚到特定commit都是一个非常有用的技能。本文将介绍几种常用的回滚方法,帮助读者更好地掌握Git版本控制…