目录
- 一、点云模型
- 1、三维图像
- 2、点云
- 1、概念
- 2、内容
- 3、点云处理的三个层次
- 1、低层次处理方法
- 2、中层次处理方法
- 3、高层次处理方法
- 二、Spin image
一、点云模型
1、三维图像
三维图像是一种特殊的信息表达形式,其特征是表达的空间中三个维度的数据。
和二维图像相比,三维图像借助第三个维度的信息,可以实现天然的物体和背景解耦。
对于视觉测量来说,物体的二维信息往往随射影方式而变化,但其三维特征对不同测量方式具有更好的统一性。
与相片不同,三维图像是对一类信息的统称,信息还需要有具体的表现形式,其表现形式包括:深度图(以灰度表达物体与相机的距离),几何模型(由 CAD 软件建立),点云模型(所有逆向工程设备都将物体采样成点云)。
2、点云
1、概念
点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合,在获取物体表面每个采样点的空间坐标后,得到的是点的集合,称之为“点云”(Point Cloud)。
扫描资料以点的形式记录,每一个点包含有三维坐标,有些可能含有颜色信息(RGB)或反射强度信息(Intensity)。
点云数据是最为常见也是最基础的三维模型。
2、内容
根据激光测量原理得到的点云:
包括三维坐标(XYZ)和激光反射强度(Intensity),强度信息与目标的表面材质、粗糙度、入射角方向,以及仪器的发射能量,激光波长有关。
根据摄影测量原理得到的点云:
包括三维坐标(XYZ)和颜色信息(RGB)。
结合激光测量和摄影测量原理得到点云:
包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)。
3、点云处理的三个层次
1、低层次处理方法
滤波方法:
双边滤波、高斯滤波、条件滤波、直通滤波、随机采样一致性滤波。
关键点:
ISS3D、Harris3D、NARF、SIFT3D。
2、中层次处理方法
特征描述:
法线和曲率的计算、特征值分析、SHOT、PFH、FPFH、3D Shape Context、Spin Image。
分割:
区域生长、Ransac 线面提取、全局优化平面提取、K-Means、Normalize Cut(Context based)、3D Hough Transform(线、面提取)、连通分析。
分类:
基于点的分类,基于分割的分类,基于深度学习的分类(PointNet,OctNet)。
3、高层次处理方法
配准:
点云配准分为粗配准(Coarse Registration)和精配准(Fine Registration)两个阶段。
精配准的目的是在粗配准的基础上让点云之间的空间位置差别最小化。
粗配准是指在点云相对位姿完全未知的情况下对点云进行配准,可以为精配准提供良好的初始值。
基于穷举搜索的配准算法: 遍历整个变换空间以选取使误差函数最小化的变换关系或者列举出使最多点对满足的变换关系。如 RANSAC 配准算法、四点一致集配准算法(4-Point Congruent Set, 4PCS)、Super4PCS 算法等。
基于特征匹配的配准算法: 通过被测物体本身所具备的形态特性构建点云间的匹配对应,然后采用相关算法对变换关系进行估计。如基于点 FPFH 特征的 SAC-IA、FGR 等算法、基于点 SHOT 特征的 AO 算法以及基于线特征的 ICL 等。
SLAM 图优化:
Ceres(Google的最小二乘优化库,很强大), g2o、LUM、ELCH、Toro、
SPA SLAM方法:
ICP、MBICP、IDC、likehood Field、NDT
三维重建:
泊松重建、 Delaunay triangulations、表面重建、人体重建、建筑物重建、树木重建。
实时重建:
重建植被或者农作物的4D(3D+时间)生长态势、人体姿势识别、表情识别。
点云数据管理:
点云压缩,点云索引(KD、Octree),点云 LOD(金字塔),海量点云的渲染。
二、Spin image
Spin image 是基于点云空间分布的最经典的特征描述方法。
Spin image 的思想是将一定区域的点云分布转换成二维的 spin image,然后对场景和模型的 spin images 进行相似性度量。
生成 spin image 的步骤
1、定义一个 Oriented poin。
2、以 Oriented point 为轴生成一个圆柱坐标系。
P------三维网格某顶点 p 的切面
n-------p 点单位法向量
x-------p 附近的三维网格上的另一个顶点
α------x 点在 P 上投影与 p 的距离
β------x 点与 P 点的垂直距离
其中 p 和 n 定义为一个定向点(Oriented point)
3、定义 Spin image 的参数,Spin image 是一个具有一定大小(行数列数)、分辨率(二维网格大小)的 二维图像(或者说网格)。
4、将圆柱体内的三维坐标投影到二维 Spin image,这一过程可以理解为一个 Spin image 绕着法向量n旋 转360度,Spin image 扫到的三维空间的点会落到 Spin image 的网格中。
从三维空间投影到 spin-image 坐标:
5、根据 spin image 中的每个网格中落入的点不同,计算每个网格的强度 I,显示 spin image 时以每个网格(也就是像素)I 为依据。最直接的方法是直接计算每个网格中落入的点的个数,然而为了降低对位置的敏感度、降低噪音影响、增加稳定性,Johnson 论文中用双线性插值的方法将一个点分布到4个像素中。
当一个点落入网格(i,j)中时会被双线性插值分散到(i,j)、(i,j+1)、(i+1,j)、(i+1,j+1)四个网格中。
这样就获得了 spin image:
spin image 的三个关键参数
1、分辨率:即二维网格的也就是像素的实际尺寸,使用和三维网格相近的尺寸比较合适,因此通常是取三维网格所有边的平均值来作为 spin image 的每个网格尺寸,通常会把网格的长和宽定义成相等,即边长。边长的计算公式(e 为三维网格模型中的一条边,N 为三维网格模型中的边的总数。):
r = 1 N ∑ i = 1 N ∣ e i ∣ r=\frac{1}{N} \sum^{N}_{i=1}|e_i| r=N1i=1∑N∣ei∣
2、大小:即 spin image 的行数和列数,两者一般也相等。可以参考的大小 10x10 或 20x20 等。
3、support angle:即法向量夹角的大小限制。空间中顶点的法向量与创建圆柱坐标系所选点法向量之间的夹角。
可以看出,对角度限制以后,那些相当于切面的“凹点(大于90°)”被剔除,保留了主要信息,降低了后续的计算量。 一般角度限制范围为 60°~90° 之间。
记录学习过程,欢迎讨论交流,尊重原创,转载请注明出处~