NeRD
Paper: NeRD: Neural 3D Reflection Symmetry Detector
Author: Yichao Zhou, Shichen Liu, Yi Ma
PDF: https://arxiv.org/pdf/2105.03211.pdf
Code: https://github.com/zhou13/nerd
Overview
输入 | 输出 |
---|---|
单视角图片 | 一个主导的镜面对称 |
总体方法:
- 使用coarse-to-fine的策略对symmetry进行遍历
- 通过构造3D的代价体来找到最好的symmetry
Introduction
使用监督学习从单张RGB图片中获取信息很容易 \(\rightarrow\) 假设CAD模型已知,一些工作聚焦在instance-level 3D pose estimation \(\rightarrow\) 现实世界中这个假设很难成立(一个物体的CAD模型很难获取)\(\rightarrow\) 之前的一些single-view category-level 3D pose estimation的工作通过在训练数据中进行插值来构建图像和3D模型之间的集合约束进而预测姿态 \(\rightarrow\) 但是这种formulation是ill-posed \(\rightarrow\) 引入镜面对称(reflection symmetry)作为图片和3D模型的位姿之间的桥梁。
观察:大部分物体的canonical space是将其对称平面与Y-Z平面进行对齐。
Contributiion:
- 图像内的像素对应可以用来得到准确的对称平面法向估计
- 使用single-view dense feature matching来预测对称平面,性能超越之前的工作
- 对称性对很多下游任务都有助益,比如single-view姿态估计和深度估计
Methods
检验对称性
对于三维空间中的两个对称点 \(\mathrm{X}\) 和 \(\mathrm{X}^{'}\) 来说,其在成像平面上的投影为 \(\mathrm{x}\) 和 \(\mathrm{x}^{'}\),则:
\[\mathrm{x}^{'} \propto \mathrm{KR_t M R_t^{-1}K^{-1}x = Cx}\]其中 \(\mathrm{C = KR_t M R_t^{-1}K^{-1}}\)。
将镜面对称参数化为 \(\mathrm{w} \in \mathbb{R}^3\)(代表对称平面的法向),那么:
\[\mathrm{ C(w) = K(I - \frac{2}{\Vert w \Vert_2^2} \begin{bmatrix} \mathrm{w} \\ 0 \end{bmatrix} \begin{bmatrix} \mathrm{w}^T & 1 \end{bmatrix} )K^{-1} }\]也就是说 \(\mathrm{C}\) 是 \(\mathrm{w}\) 的函数,并且相应地给出一种检验其是否合法的方法。
预测
使用神经网络去遍历所有可能的对称平面法向,然后检验是否是合法的对称性。
Pipeline
对于输入的图片,首先计算2D特征图,然后生成一堆候选的对称平面法向,对于每个候选的法向 \(\mathrm{w}\),把2D特征图warp过去,构建一个3D的代价体进行photo-consistency的匹配,最后,cost volume网络将代价体转换为置信值,将具有最大置信度的 \(\mathrm{w}\) 作为最终的预测对称平面。
那么,如何去生成候选的对称平面法向呢?因为 \(\mathrm{w}\) 的定义域 \(\mathbb{R}^3\) 是连续的,如果使用暴力采样,将会使得复杂度极高。所以该文采用了coarse-to-fine的策略,先均匀采样,然后校验得到置信度最大的 \(\mathrm{w}^\star\),之后将采样范围缩小到 \(\mathrm{w}^\star\) 附近,再次迭代,直到能够达到the desired accuracy。
特征提取器选择ResNet的变种,对于采样得到的 \(\mathrm{w}_i\) 来说,得到其transformation矩阵 \(\mathrm{C}(\mathrm{w}_i)\)。对于图像中的每一个像素点 \((x, y)\) 通过对称得到其对称点 \((x^{'}, y^{'})\),将这两个像素点的特征concat在一起作为feature warping,得到代价体,之后代价体送入cost volume network(也就是一系列的3D convolution + max-pool + sigmoid)得到 \(\mathrm{w}_i\) 对应的置信度 \(\hat{l}_i\)。
训练
在coarse-to-fine的每一level而言,分别在ground truth: \(\mathrm{w}\) 周边进行采样,对采样得到的 \(\hat{\mathrm{w}}\),其标签为:
\[l_i = 1[\mathrm{arccos}(\vert <\mathrm{w}, \hat{\mathrm{w}}> \vert) \lt \triangle_i]\]损失函数为:
\[L_{\mathrm{cls}} = \sum_i \mathrm{BCE}(\hat{l_i}, l_i)\]Applications
Pose Recovery
不太明白这里的2 DoFs
Depth Estimation
Enjoy Reading This Article?
Here are some more articles you might like to read next: