暂未开源
概览
任务:室内场景语义重建
输入:室内场景点云
输出:每个实例的mesh和语义标签
方法:2 stage
stage 1: get instance
输入:场景点云
输出:(point-wise) semantic labels, instance center offsets, rotation angles
方法:略
stage 2: mesh reconstruction
输出:(proposal wise) residual bounding boxes, confidence scores, latent distributions of complet meshes
方法:sparse 3D CNN
inference:
只有在inference的时候才生成mesh,training的时候只求latent distribution
stage1: learning point-wise features
- 每个点都predict一个one hot 分类标签 li (交叉熵loss)
- 每个点都predicte一个offset ( o i = ( Δ x i , Δ y i , Δ z i ) o_i = (\Delta x_i,\Delta y_i,\Delta z_i) oi=(Δxi,Δyi,Δzi)), 表示的是从这个额点到instance center的offset。 (L1 loss)
- 对每个instance,求一个沿z轴的旋转角度, r i ∈ [ − π , π ) r_i \in [ -\pi , \pi) ri∈[−π,π) (参考46和34,分解成了cls和reg loss)
stage 2: learning proposal-wise features
- 用一个clustering algorithm把整个场景的点云给分出L个instance。
- 每个proposal 都给transform to its canonical coordinate system
- 平移到几何中心(每个点预测的几何中心的均值)
- 旋转ri,使其正面朝前
- 每个轴都通过除以max-min来缩放到0-1之间。
- voxelize,用一个sparse 3D U-Net来提特征,每个proposal得到一个Dprop维的特征向量
- 用一个MLP 加 sigmoid给每个proposal求了一个confidence value(监督用的GT是和GT的point IoU) (following [36].)(weighted smooth L1 loss)
- 用一个MLP来求residual bounding box(由于扫描缺失和遮挡,之前segmentation求的BBox可能不对),新的bbox就是之前求的加上现在这个residual . (weighted smooth L1 loss)
- 用一个MLP来求高斯分布的mean和standard deviation。GT请看Section3.3.用到了reparameterization trick (37).(weighted smooth L1 loss)
reconstruct mesh
原来的方法效果不好原因有二:
- detection的时候有很多false positive proposals
- 直接用patially scanned point cloud 生成mesh,会有ambiguity问题。
本文方法:
- 先pre_train一个生成mesh的VAE
- 从GT 的mesh采样点云,voxelize them 作为encoder的输入,encoder 输出一个latent distribution N(μ,σ)
- 从这个distribution 中sample一个latent code z,作为decoder的输入,decoder输出一系列planes来构成mesh。
- 用的是BSP net,在其loss基础上加上了权重为0.1的KL loss。
- 然后train一个encoder,输入stage2的特征,输出 N(μ,σ),用VAE的N监督。
- inference的时候,有不同的选项:
- Mesh_generation: 可以默认用期望来作为latent code,即z=μ。
- Mesh_retrieve 也可以做CAD retrieval,直接search 和latent code最接近的模板即可。
- Mesh_projection: 不求最接近的,而是求最接近的k个,把k个投影到latent space作为最终的结果。
evaluation metrics
主要包括两种:
Completion quality: 生成的mesh和GT模板的相似程度
Mapping quality:生成的mesh和输入点云的相似程度
- completion quality:
- Intersection over Union (IoU) :mesh之间的交并比
- Chamfer Distance (CD): 从mesh 采样一些点,每个点到另一个mesh的点的最短距离
- Light Field Distance (LFD) :旋绕到multi-view 2D images,然后计算。
- mapping quality:坐着提出PCR
- 每一个输入点到生成的mesh的最短距离,小于阈值就认为是这个点是在这个mesh上。PCR就是小于阈值的点的数量除以点总数。
Implementation
batch size:8
GPU: 一片 Nvidia Telsa V100
结果