【点云处理之论文狂读前沿版10】—— MVTN: Multi-View Transformation Network for 3D Shape Recognition

摘要

  • 问题: 在众多的点云处理方法中,Multi-view projection 方法的视角往往是启发式地设置或者是对所有形状都是相同的设置。
  • 方法: 提出了一种方法,学习如何更好地设置这些视角。
  • 细节: 引入了 Multi-View Transformation Network (MVTN),用于寻找用于3D形状识别的最优视角,整个网络的设计都是可导的。MVTN可以通过端到端的形式进行训练,并搭配任意的多视角网络用于3D形状识别。本文将MVTN和一个新的适应性多视角网络进行整合,该网络不仅可以处理3D mesh,还可以处理点云。
  • 代码: https://github.com/ajhamdi/MVTN Pytorch版本

相关工作

  • MVTN学习输入数据的空间变换,学习的过程中不使用额外的监督,也不调整学习过程。

方法

Overview of Multi-View 3D Recognition

多视角网络的训练可以表示为:
arg ⁡ min ⁡ θ C ∑ n N L ( C ( X n ) , y n ) = arg ⁡ min ⁡ θ C ∑ n N L ( C ( R ( S n , u 0 ) ) , y n ) \begin{aligned} & \underset{\boldsymbol{\theta}_{\mathbf{C}}}{\arg \min } \sum_{n}^{N} L\left(\mathbf{C}\left(\mathbf{X}_{n}\right), y_{n}\right) \\ =& \underset{\boldsymbol{\theta}_{\mathbf{C}}}{\arg \min } \sum_{n}^{N} L\left(\mathbf{C}\left(\mathbf{R}\left(\mathbf{S}_{n}, \mathbf{u}_{0}\right)\right), y_{n}\right) \end{aligned} =θCargminnNL(C(Xn),yn)θCargminnNL(C(R(Sn,u0)),yn)
其中 L L L 是具体任务的损失函数, N N N是数据集中3D形状的数量, y n y_{n} yn是第 n n n个3D形状 S n \mathbf{S}_{n} Sn的label。 u 0 ∈ R τ \mathbf{u}_{0} \in \mathbb{R}^{\tau} u0Rτ是整个数据集的 τ \tau τ个场景参数集合,这些参数表示了影响渲染图片的性质,包括视点、光线、颜色和背景。 R \mathbf{R} R是渲染器,以形状 S n \mathbf{S}_{n} Sn和参数 u 0 \mathbf{u}_{0} u0作为输入,得到每个形状的 M M M个多视角图像 X n \mathbf{X}_{n} Xn。在MVCNN中, C = MLP ⁡ ( max ⁡ i f ( x i ) ) \mathbf{C}=\operatorname{MLP}\left(\max _{i} \mathbf{f}\left(\mathbf{x}_{i}\right)\right) C=MLP(maxif(xi)) f : R h × w × c → R d \mathbf{f}: \mathbb{R}^{h \times w \times c} \rightarrow \mathbb{R}^{d} f:Rh×w×cRd是一个2D CNN backbone;在ViewGCN中, C = MLP ⁡ ( c a t G C N ( f ( x i ) ) ) \mathbf{C}=\operatorname{MLP}\left(\right. cat \left._{\mathrm{GCN}}\left(\mathbf{f}\left(\mathbf{x}_{i}\right)\right)\right) C=MLP(catGCN(f(xi))) c a t G C N cat _{\mathrm{GCN}} catGCN是从图卷积网络中学习到的视图特征聚合。 θ C \boldsymbol{\theta}_{\mathbf{C}} θC是多视图网络 C \mathbf{C} C的参数。在实验部分,场景参数 u \mathbf{u} u表示成指向目标中心的相机视角的方位角(azimuth) 和仰角 (elevation) angles,因此 τ = 2 M \tau=2M τ=2M

Multi-View Transformation Network (MVTN)

之前的多视图方法都是以图像 X \mathbf{X} X作为3D形状的唯一表示,其中 X \mathbf{X} X是使用固定的场景参数 u 0 \mathbf{u}_0 u0得到的。相反,本文考虑一个更通用的情况,将 u \mathbf{u} u设置成边界为 ± u bound  \pm \mathbf{u}_{\text {bound }} ±ubound 内的变量,其中 u bound  \mathbf{u}_{\text {bound }} ubound 是正数,定义了场景参数的允许范围。将每个方位角和仰角的 u bound  \mathbf{u}_{\text {bound }} ubound 分别设置为 18 0 ∘ 180^{\circ} 180 9 0 ∘ 90^{\circ} 90

Differentiable Renderer

渲染器 R \mathbf{R} R以3D形状 S \mathbf{S} S(mesh or point cloud)和场景参数 u \mathbf{u} u作为输入,输出是对应的 M M M个图像 { x i } i = 1 M \left\{\mathbf{x}_{i}\right\}_{i=1}^{M} {xi}i=1M。由于 R \mathbf{R} R可导,梯度 ∂ x i ∂ u \frac{\partial \mathbf{x}_{i}}{\partial \mathbf{u}} uxi可以从每个图像反向传播到整个场景参数,因此能够构造一个端到端的学习框架。

S \mathbf{S} S表示为3D mesh时, R \mathbf{R} R有两个分量:rasterizer 和 shader。首先,在给定相机视角和将face分配给像素后,rasterizer将mesh从世界坐标系变换到视图坐标系中。然后shader根据face的分配对每个像素创建多个值,并将这些值进行融合。

S \mathbf{S} S表示为点云时, R \mathbf{R} R可以使用alpha-blending mechanism

View-Points Conditioned on 3D Shape

通过学习Multi-View Transformation Network (MVTN) G ∈ R P × 3 → R τ \mathbf{G} \in \mathbb{R}^{P \times 3} \rightarrow \mathbb{R}^{\tau} GRP×3Rτ和参数 θ G \boldsymbol{\theta}_{\mathbf{G}} θG,将 u \mathbf{u} u设计成3D形状的函数,其中 P P P是从形状 S \mathbf{S} S采样得到点的数量。MVTN的训练可以表示为:
arg ⁡ min ⁡ θ C , θ G ∑ n N L ( C ( R ( S n , u n ) ) , y n )  s. t.  u n = u bound  ⋅ tanh ⁡ ( G ( S n ) ) \begin{aligned} \underset{\boldsymbol{\theta}_{\mathbf{C}}, \boldsymbol{\theta}_{\mathrm{G}}}{\arg \min } & \sum_{n}^{N} L\left(\mathbf{C}\left(\mathbf{R}\left(\mathbf{S}_{n}, \mathbf{u}_{n}\right)\right), y_{n}\right) \text { s. t. } \quad \mathbf{u}_{n}=\mathbf{u}_{\text {bound }} \cdot \tanh \left(\mathbf{G}\left(\mathbf{S}_{n}\right)\right) \end{aligned} θC,θGargminnNL(C(R(Sn,un)),yn) s. t. un=ubound tanh(G(Sn))
其中 G \mathbf{G} G对3D形状进行编码,预测具体任务多视图网络 C \mathbf{C} C的最优视点。由于 G \mathbf{G} G的目标仅仅是预测视点所以 G \mathbf{G} G的结构很简单,并且很轻量。与此同时,在 G \mathbf{G} G中还使用了简单的点编码器(比如PointNet中的shared MLP),用于处理从 S \mathbf{S} S得到的 P P P个点,并且生成维度为 b b b的coarse形状特征。然后shallow MLP从这个全局形状特征中回归出场景参数 u n \mathbf{u}_n un,为了将预测参数 u \mathbf{u} u的数值强制放入 ± u bound  \pm \mathbf{u}_{\text {bound }} ±ubound 范围内,使用了tanh函数将 u \mathbf{u} u缩放到 ± u bound  \pm \mathbf{u}_{\text {bound }} ±ubound 内。

MVTN for 3D Shape Classification

为了对MVTN进行训练,用于3D形状分类,我们定义了一个交叉熵损失函数,但是其他的损失函数和正则项也可以用。多视角网络( C \mathbf{C} C)和MVTN( G \mathbf{G} G)使用相同的损失函数共同训练。我们的网络结构的优点在于能够处理3D点云。当 S \mathbf{S} S是一组点云时,简单地将 R \mathbf{R} R定义为一个可导地点云渲染器。

MVTN for 3D Shape Retrieval

我们考虑 C \mathbf{C} C中分类器前面最后一层的特征表示,使用LFDA reduction将这些特征投影到其他空间,并且将处理后的特征作为signature描述一个形状。在测试阶段,形状signature被用于在测试集中检索最相似的形状。

实验

3D Shape Classification

3D Shape Retrieval

Rotation Robustness

Occlusion Robustness

Ablation Study

Number of Views

Choice of Backbone and Point Encoders

Choice of Multi-View Network

Time and Memory Requirements

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值