自动驾驶(2)PointNet++

PointNet++是PointNet的升级版,按照++作者的说法,PointNet无法提取到局部特征,同时也不能处理点的密度不一致的问题,因此在PointNet的基础上,作者进一步丰富了网络层次。 ++主要分为三个部分:采样、分组、提特征。首先是采样,相比PointNet暴力地将原始数据点直接塞到网络里,++将原始数据点进行采样、分组,以获得最能表现各局部特征的点。 一、基本步骤 1.采样 采样的方法,叫做最远点采样(Farthest Point Sampling, FPS)。采样分为三个步骤:首先是随机采样,在刚开始的时候,随机选取一个点作为第一个点;其次是迭代选择最远点,意思是,在未选取的点中,找到一个距离已经选取的点中最远的点;最后,直到选取 N' 个点即可。 2.分组 已经选取了N'个点,将这些N'个点作为球心,选取一个值作为半径,在这个球体以内的点作为一个组。…

自动驾驶(1)PointNet

一、点云(Point Cloud) 点云是一种3D数据,在文件里的表示方法其实就是一个一维向量:(x,y,z),还有可能是(x,y,z,Nx,Ny,Nz)N是法向量的意思。但它实际是空间中的一点,这一点来自激光雷达(Lidar)的扫描结果(个人猜测:其实就是发射若干个激光,根据反射回来的时间来计算出距离,这样,能定位出某一点的数据坐标) 点云数据的特征:无序性、点间关联、变换下的不变性。 (1)无序性:点云数据中,每一个向量都独立地表示空间的一个点,因此不论是哪一个点先被输入,都不影响最后点云数据的整体。 (2)点间关联:点的位置表示虽然独立,但是点与点之间存在着一些关系。因为一个点及其周围的点共同组成了物体的一部分,这种关系可以被提取出作为特征。 (3)变换下的不变性:这个变换特指“刚性变换(rigid motions)” 就是说将点云整体进行平移、旋转这种只改变位置而不改变形状大小的变化。…