点云与三维图像
三维图像是一种特殊的信息表达形式,其特征是表达的空间中三个维度的数据。和二维图像相比, 三维图像借助第三个维度的信息,可以实现天然的物体和背景解耦。
对于视觉测量来说,物体的二维信息往往随射影方式而变化,但其三维特征对不同测量方式具有更好的统一性。
与相片不同,三维图像是对一类信息的统称,信息还需要有具体的表现形式,其表现形式包括:深度图(以灰度表达物体与相机的距离),几何模型(由CAD软件建立),点云模型(所有逆向工程设备都将物体采样成点云)。
深度:
深度 D 等于像素在该视图相机坐标系下 Z 坐标,是空间单位。深度并不特在校正后的图像对里使用,而是任意图像都可获取深度图。
深度图:
深度图指存储单视图所有像素的深度值的二维图像,是空间单位,比如毫米。
1. 深度图是一张二维图像,和原图等大小,也就和视差图等大小
2. 深度图每个位置保存的是该位置像素的深度值
3. 深度值就是相机坐标系下的Z坐标值
看到这张图是不是就比较好理解深度及深度图了?
什么还不理解?!
头顶上的线,你滴明白?
把把起野牛,三天大地球!!!
点云数据是最为常见也是最基础的三维模型。
点云:
扫描资料以点的形式记录,每一个点包含有三维坐标,有些可能含有颜色信息(RGB)或反射强度信息(Intensity)。
![](https://i-blog.csdnimg.cn/blog_migrate/af9f200871bf86c6bfba696c16d4f5f6.png)
点云的概念:
点云是在同一空间参考系下表达目标空间分布和目标表面特性的海量点集合,在获取物体表面每个采样点的空间坐标后,得到的是点的集合,称之为“点云”(Point Cloud)。
点云的内容:
根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity),
强度信息与目标的表面材质、粗糙度、入射角方向,以及仪器的发射能量,激光波长有关。根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)。结合激光测量和摄影测量原理得到点云,包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)。
点云处理的三个层次
低层次处理方法:
①滤波方法:双边滤波、高斯滤波、条件滤波、直通滤波、随机采样一致性滤波。
②关键点:ISS3D、Harris3D、NARF,SIFT3D
中层次处理方法:
①特征描述:法线和曲率的计算、特征值分析、SHOT、PFH、FPFH、3D Shape Context、Spin Image
②分割与分类:
分割:区域生长、Ransac线面提取、全局优化平面提取K-Means、Normalize Cut(Context based)、3D Hough Transform(线、面提取)、连通分析
分类:基于点的分类,基于分割的分类,基于深度学习的分类(PointNet,OctNet)
高层次处理方法:
①配准:点云配准分为粗配准(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
![](https://i-blog.csdnimg.cn/blog_migrate/4803aa4132374b82c498b5c426228c9b.jpeg)
搞错了,重来!
spin就是旋转,就是绕着某一个轴旋转,用一个平面,把物体的点扫出来
Spin image是基于点云空间分布的最经典的特征描述方法。
Spin image的思想是将一定区域的点云分布转换成二维的spin image,然后对场景和模型的spin images进行相似性度量
生成spin image的步骤
1.定义一个Oriented point(定向点)
2.以Oriented point为轴生成一个圆柱坐标系
3.定义Spin image的参数,Spin image是一个具有一定大小(行数列数)、分辨率(二维网格大小)的二维图像(或者说网格)。
4. 将圆柱体内的三维坐标投影到二维Spin image,这一过程可以理解为一个Spin image绕着法向量n旋转360度,Spin image扫到的三维空间的点会落到Spin image的网格中。
5. 根据spin image中的每个网格中落入的点不同,计算每个网格的强度I
![](https://i-blog.csdnimg.cn/blog_migrate/47ec3cd5db1df8a3a977a68dd81061d7.png)
spin image的三个关键参数
1:分辨率,即二维网格的也就是像素的实际尺寸,使用和三维网格相近的尺寸比较合适,因此通常是取三维网格所有边的平均值来作为spin image的每个网格尺寸,通常会把网格的长和宽定义成相等,即边长。边长的计算公式(e为三维网格模型中的一条边,N为三维网格模型中的边的总数。):
2:大小,即spin image的行数和列数,两者一般也相等。可以参考的大小10x10或20x20等。
3:support angle,即法向量夹角的大小限制。空间中顶点的法向量与创建圆柱坐标系所选点法向量之间的夹角。
通过第4部操作过后:
当一个点落入网格(i,j)中时会被双线性插值分散到(i,j)、(i,j+1)、(i+1,j)、(i+1,j+1)四个网格中。
W:图像尺寸
b:每个格子的大小
β:对应spin image的i坐标
α:对应spin image的j坐标
说白了,就是按比例计算
这样就获得了spin image:
可以看出,对角度限制以后,那些相当于切面的“凹点(大于90°)”被剔除,保留了主要信息,降低了后续的计算量。
一般角度限制范围为60°~90°之间。