SPPR阅读笔记:单张图片的3D平面重建

目的

  • 输入一张图片,得到图片上为平面的部分,并给出平面的三维信息(单位法向)。

大致过程

这是一个二阶段的学习。第一阶段为从单张图片中得到不同平面的分割,第二阶段为对不同的分割估计平面方程。但两个阶段是一起训练的,因此也是end-to-end manner。训练时,需要包含每张图片每个像素所属平面区域和像素单位法向信息。

分割

  1. 统一encode到embedding的特征。
  2. 判断每一像素是否为平面。采用了segmentation decoder(第一个decoder)模型,对每个像素估计一个概率,判断它是不是平面。
  3. 对同一平面像素进行聚类。采用了embedding decoder(第二个decoder)模型,对同一平面点的embedding feature进行吸引,对不同平面点的embedding feature进行排斥。
  4. 综合上述两步,对通过第一个decoder像素的embedding feature进行聚类(由于像素点非常多,因此使用了Efficient Mean Shift Clustering的算法,得到图片到不同平面的分割。

估计

  1. 对每一像素上的法向和Ground Truth进行拟合。采用了parameter decoder(第三个decoder)模型,对每个像素估计概率,然后计算和Ground Truth之间的L1损失。
  2. 由于是平面,因此我们也需要每个像素上的法向尽可能朝向一致。对第三个decoder的法向,我们加权(权重来自聚类)求和,得到平面法向,然后计算平面法向和每个像素上法向的点积与1的差作为损失。
  3. 因此,总损失为四个损失(分割两个,估计两个)相加。

疑问

  • 两阶段在训练时不分开有什么好处吗?感觉许多分两阶段的在训练时仍然放一起训练,难道不更难收敛吗?而且如果一起训练效果更好,那不是说明了分两阶段的解释其实没有那么强?

相关的思考

  • 这篇paper其实并不是很相关,但它体现了我们可以如何人为地添加一些条件(比如平面)来帮助神经网络认识世界。但它的方法仅适用于平面,无法很好地拓展到其他情况,比如球体、圆柱体,乃至旋转性、对称性等等。另一些paper,用于人造机械的识别,因为机械会有大量的轴对称、旋转对称,因此会有专门的结构来识别或重建它们,但要形成一个统一的约束条件感觉很难。
  • 有一些结果还是挺神奇的,比如光照下的,一个平面被分成了有阴影和没有阴影的两块,这时它们的样子看起来还是差别挺大的,而且有明显的分界线,但有些结果仍能将它们识别为同一平面。还有一些墙上挂着画,它也能将画看做是墙的一部分。但如果有时是一个凸出的平面,则又能分开,有一点意思。

参考文献

Yu, Zehao, et al. “Single-Image Piece-wise Planar 3D Reconstruction via Associative Embedding.” arXiv preprint arXiv:1902.09777 (2019).

你可能感兴趣的:(3D+ML论文阅读,SPPR,平面重建,深度学习)