点云深度学习系列由浅入深之--PointNet


随着一些深度传感器的应用,如Kinect,ToF以及激光雷达,获取图像的同时可以得到深度图,进而可以计算出对应图像的点云:

在这里插入图片描述
点云是表达3D几何结构的一个重要形式,具有如下的特性:
(I) 稀疏性:每张图片对应的点云数据反应的是场景中物体的表面,在3D空间中即为曲面,体积为零,所以在3D空间中来看, 点云数据是非常稀疏的。
(II) 无序性:假设有 n n n个3D点形成的点云数据集 A : = { p 1 , p 2 , . . . , p n } A:=\{p_1,p_2,...,p_n\} A:={p1,p2,...,pn}, σ \sigma σ表示 n n n个元素的任意一个置换,则 { p σ ( 1 ) , p σ ( 2 ) , . . . , p σ ( n ) } \{p_{\sigma(1)},p_{\sigma(2)},...,p_{\sigma(n)}\} {pσ(1),pσ(2),...,pσ(n)}表示的点云数据集与 A A A相同,即它们表达的是同一个场景的3D几何结构。
(III) 刚体变换不变性:点云在刚体变换(旋转或平移)下,仍表示同一个场景。

       ~~~~~~       特别地,由于点云的稀疏性,导致其在3D(或者更高维)空间中,形状不规则,即点与点之间的相邻关系非常不规则。为了应用规则的3D卷积,进行权值共享,一个直接的办法就是把稀疏点云稠密化,这就是体素表示。这样3D卷积就可以在规则的3D网格上进行(类似2D卷积作用在规则的2D网格上)。但缺点就是增加了大量不必要的数据点,增加了计算复杂度。

         ~~~~~~~~         为了直接以点云为输入,进行端到端训练,PointNet [1] 采用了下面的策略:

(a) 采用关于置换不变的对称函数,处理点云的无序性问题:例如在最后的特征层上,应用关于置换不变的对称函数 γ ∘ max ⁡ \gamma\circ\max γmax, 易见
γ ∘ max ⁡ { h ( x 1 ) , h ( x 2 ) , . . . , h ( x n ) } = γ ∘ max ⁡ { h ( x σ ( 1 ) ) , h ( x σ ( 2 ) , . . . , h ( x σ ( n ) ) } \gamma\circ\max\{h(x_1),h(x_2),...,h(x_n)\}=\gamma\circ\max\{h(x_{\sigma(1)}),h(x_{\sigma(2)},...,h(x_{\sigma(n)})\} γmax{h(x1),h(x2),...,h(xn)}=γmax{h(xσ(1)),h(xσ(2),...,h(xσ(n))}其中 h ( x i ) h(x_i) h(xi)表示隐藏层特征, σ \sigma σ n n n个元素的任意一个置换。通过这样的操作之后,从 n n n个点形成的点云中所提取的特征就与这 n n n个点的顺序无关。

(b) 通过显示构造 T T T- N e t Net Net网络来学习仿射变换矩阵(具体见下面1.2节的分析),从而增强网络对点云数据刚体变换的鲁棒性。

下面分析PointNet的网络结构及主要模块:

1. PointNet网络结构及主要模块

PointNet [1] 的网络结构图如下:
在这里插入图片描述从上图可知,PointNet主要是用多层感知机mlp提取特征,用于进行分类或分割任务;同时为了使得网络对无序点云数据以及刚体变换具有鲁棒性,PointNet有针对性地设计了相应的Symmetry Function for Unordered InputJoint Alignment 网络,这两个模块应该是PointNet能够直接有效处理点云数据的关键。

接下来,主要介绍这两个模块:

1.1 Symmetry Function for Unordered Input

为了使得网络输出与网络输入的顺序无关,一个直观的方式是对输入数据进行置换增强,这也是深度学习中常见的方式(例如,通过对数据进行旋转,使得网络对数据的旋转更加稳定,也即增强了网络关于数据旋转的不变性)。但是这需要考虑对数据进行所有的置换变换,这无疑增大了运算复杂度。

如果设计一个函数,使得该函数对其自变量具有置换不变性,即考虑到点云数据的无序性,就会使得问题变得简单些。一些常见的具有置换不变性的对称函数有, + , ∗ , m a x +,*,max +,,max等。PointNet文中主要用了 γ ∘ m a x \gamma\circ max γmax,其中 γ \gamma γ是一个连续函数,具体形式可参见原文[1]中的Theorem 1的证明过程。那么易见, γ ∘ max ⁡ { x 1 , x 2 , . . . , x n } = γ ∘ max ⁡ { x σ ( 1 ) , x σ ( 2 ) , . . . , x σ ( n ) } \gamma\circ\max\{x_1,x_2,...,x_n\}=\gamma\circ\max\{x_{\sigma(1)},x_{\sigma(2)},...,x_{\sigma(n)}\} γmax{x1,x2,...,xn}=γmax{xσ(1),xσ(2),...,xσ(n)} σ \sigma σ n n n个元素 { 1 , 2 , . . . , n } \{1,2,...,n\} {1,2,...,n}的任意一个置换。将前面的 { x i : i = 1 , 2 , . . . n } \{x_i:i=1,2,...n\} {xi:i=1,2,...n}用来表示PointNet中的 n n n个点的特征,则这就对应上图中的 m a x   p o o l max ~ pool max pool操作模块。

1.2 Joint Alignment 网络

这个网络模块主要用于增强PointNet对3D点云数据刚体变换的鲁棒性。PointNet通过设计一个 T T T- N e t Net Net来实现数据以及feature map 的刚体变换, T T T- N e t Net Net的主要结构如下:

在这里插入图片描述在这里插入图片描述
上图中左图表示在3D点云数据上的仿射变换,右图则表示在feature map 上的仿射变换。PointNet就是通过 T T T- N e t Net Net训练两个仿射矩阵 M 3 × 3 , M 64 × 64 M_{3\times 3},M_{64\times 64} M3×3,M64×64,分别对应数据和feature map上的仿射变换。因为 T T T- N e t Net Net的目的是近似刚体变换,所以需要正交化约束这两个矩阵,
L r e g = ∣ ∣ I − M M T ∣ ∣ F L_{reg}=||I-MM^T||_F Lreg=IMMTF其中, M ∈ R 3 × 3 ( o r   R 64 × 64 ) M\in R^{3\times 3}(or ~R^{64\times 64}) MR3×3(or R64×64)表示训练得到的两个仿射矩阵, I I I表示相应维度的单位矩阵, F F F表示Frobenius范数。 T T T- N e t Net Net具体实现如下, K = 3 K=3 K=3 64 64 64

在这里插入图片描述

2. PointNet工作原理

DNN的成功在于其强大的近似函数的能力。上面说了这么多,不禁要问,这样设计的网络是否具有足够的能力来近似定义在点云数据上的函数。下面的定理,从理论上有效地说明了pointnet的近似能力:
在这里插入图片描述
       ~~~~~~       利用网络对点云数据进行分类或这分割,本质上是模拟近似这样一个映射:定义域为点云数据,值域为分类或分割标签(注意,这样的映射可能不存在或者很复杂),这个映射类似上面定理中的函数 f f f,而上面定理中的 γ ∘ max ⁡ \gamma\circ\max γmax项就是网络学到的对 f f f的近似。所以上面的定理能够理论上保证PointNet的近似能力。

==============================================================================================

总结:从上面的分析来看,PointNet主要通过设计对称函数使得网络输出与输入点云的顺序无关;同时,由于3D空间中点云表示的物体具有刚体变换不变性,PointNet则通过增加 T T T- N e t Net Net来增强网络对点云数据刚体变换的鲁棒性。

不过从上面的对PointNet的分析来看,网络都是对整个点云进行全局处理的,网络并没有考虑点云中数据的局部邻域信息。这就是PointNet++的工作,接下来会分析PointNet++工作。。。。。。

[1.] PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值