如何轻松理解对点云的深度学习算法 - PointNet的进化版 - PointNet++ 算法 (点云分类、分割部分)?

CV_5 PointNet++算法的简单理解(分类、分割部分 - 入门级别)


一. 引言

 在上一篇对PointNet++算法的文章中,我们了解到了PointNet++算法究竟是如何在考虑局部信息的情况下完成特征提取的,如果还对特征提取步骤不太了解的同学请移步:如何轻松理解对点云的深度学习算法 - PointNet的进化版 - PointNet++ 算法 (特征提取部分)?。那么既然有了特征提取的结果,我们就该了解一下,PointNet++算法是如何对点云进行分类和分割的了。

二. 点云分类任务

 分类任务其实相对比较简单,其实就是对由特征提取网络得到的特征提取结果进行一个简单的处理。
如何轻松理解对点云的深度学习算法 - PointNet的进化版 - PointNet++ 算法 (点云分类、分割部分)?_第1张图片
如上图所示,红色框框内部的部分就是我们上篇文章中讲到的特征提取网络,在这层网络中,通过不断的特征提取、卷积,最终将由16个点组成的英文字母 “P” 表示为了最后的4个点,当然这四个点携带着比之前更多的特征信息。之后,作者就把这四个点作为输入,传入到分类网络中,可以看到,在分类网络中,作者首先又对这四个输入点做了一次MAX操作,从而把这四个点变成了一个点,之后再将这最后的一个点传入了一个全连接层中,就可以得出传入的点云在各个分类上的评分了,最终根据各个评分的高低,得出最后的分类结果。

三. 点云分割任务

 对于点云的分割任务,其实我们要换个角度去理解。所谓的分割网络实际上就是将初始点云的所有点都逐一进行分类操作,但在特征提取网络部分,由于要考虑到局部的特征信息,作者们是将原本的点一次次的减少,这也就导致了我们得到的特征提取结果无法直接被使用,那么这该怎么办呢?作者在这里采用了如下图的上采样操作:
如何轻松理解对点云的深度学习算法 - PointNet的进化版 - PointNet++ 算法 (点云分类、分割部分)?_第2张图片
比如在上图中左边的蓝色框内部仍然是不变的特征提取网络,而右边的红色框框内部就是所谓的上采样操作了。那么作者又是如何把这一层的特征信息传递给上一层的呢?这就要用到权值的思想了。就比如上图中的特征提取结果(四个黄点),是如何附加给上一层呢?其实依据的也是距离信息,换句话说就是在将该层点的特征信息赋予给上一层的紫色点的时候,会根据各个黄色点距离紫色点的距离,来添加一个权重,距离越近权重越大。之后就是进行一层一层的上采样操作,从而让之前的仅携带(d + C)个特征的点云变成了携带着(d + C + C2 + C1)个特征的点云。 之后就是对附带着更多特征信息的初始点云过一个全连接层,将点云中的每个点进行分类,从而也就完成了所谓的分割任务。


如有问题,敬请指正。欢迎转载,但请注明出处。

你可能感兴趣的:(计算机视觉CV,深度学习,算法,计算机视觉,LiDAR,人工智能)