点云模型再学习
我必须竭尽全力地工作,看会发生什么。—《风雨哈佛路》
我在整理数学建模比赛时我看到了点云这个模型,由于我对这个模型认识还不够深。所以我对点云进行了再次学习。
第一个问题:点云是什么?
通过百度,我了解到点云是在和目标表面特性的海量点集合。根据激光测量原理得到的点云,包括三维坐标(XYZ)和激光反射强度(Intensity)。根据摄影测量原理得到的点云,包括三维坐标(XYZ)和颜色信息(RGB)。结合激光测量和摄影测量原理得到点云,包括三维坐标(XYZ)、激光反射强度(Intensity)和颜色信息(RGB)。
第二个问题:点云与三维图像有什么关系?
点云与三维图像的关系: 点云数据是最为常见也是最基础的三维模型。点云模型往往由测量直接得到,每个点对应一个测量点,未经过其他处理手段,故包含了最大的信息量。这些信息隐藏在点云中需要以其他提取手段将其萃取出来,提取点云中信息的过程则为三维图像处理。
第三个问题:点云怎么应用呢?
点云的应用层次有三层:a. 低层次处理方法 主要体现在滤波方法和关键点提取处理 其中滤波方法主要有双边滤、高斯滤波、条件滤波、直通滤波、随机采样一致性滤波,关键点提取处理算法主要有 ISS3D、Harris3D、NARF、SIFT3D。其中这些算法PCL库中都有实现函数。
注:PCL(Point Cloud Library 点云库)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库,它实现了大量点云相关的通用算法和高效数据结构,涉及到点云获取、滤波、分割、配准、检索、特征提取、识别、追踪、曲面重建、可视化等。支持多种操作系统平台,可在Windows、Linux、Android、Mac OS X、部分嵌入式实时系统上运行。如果说OpenCV是2D信息获取与处理的结晶,那么PCL就在3D信息获取与处理上具有同等地位,PCL是BSD授权方式,可以免费进行商业和学术应用。其中PCL起初是在ROS下进行开发的项目,最终被多方机构合作研究形成了现在的点云库。
对于3D点云处理来说,PCL完全是一个的模块化的现代C++模板库。基于以下第三方库:Boost、Eigen、FLANN、VTK、CUDA、OpenNI、Qhull,实现点云相关的获取、滤波、分割、配准、
PCL架构图
b.中层析处理方法 主要处理方法是特征描述和分割与分类 常用的特征描述算法有:法线和曲率计算、特征值分析、PFH(点特征直方图描述子)、FPFH(跨苏点特征直方图描述子,FPFH是PFH的简化形式)、3D Shape Context、Spin Image等。常用的分割算法有区域声场、Ransac线面提取、NDT-RANSAC、K-Means(魔方机器人上有用到的算法)、Normalize Cut、3D Hough Transform(线面提取)、连通分析,常用的分类算法有基于点的分类,基于分割的分类,监督分类与非监督分类。
c.高层次处理方法 主要处理方法是点云配准、SLAM图优化、目标识别检索、变化检测、三维重建、点云数据管理等。其中点云配准的概念也可以类比于二维图像中的配准,只不过二维图像配准获取得到的是x,y,alpha,beta等放射变化参数,二三维点云配准可以模拟三维点云的移动和对其,也就是会获得一个旋转矩阵和一个平移向量,通常表达为一个4×3的矩阵,其中3×3是旋转矩阵,1*3是平移向量。严格说来是6个参数,因为旋转矩阵也可以通过罗格里德斯变换转变成1*3的旋转向量。其中点云配准分为粗配准和精配准两个阶段。粗配准是指在点云相对位姿完全未知的情况下对点云进行配准,可以为精配准提供良好的初始值。当前较为普遍的点云自动粗配准算法包括基于穷举搜索的配准算法和基于特征匹配的配准算法。
基于穷举搜索的配准算法:遍历整个变换空间以选取使误差函数最小化的变换关系或者列举出使最多点对满足的变换关系。如RANSAC配准算法、四点一致集配准算法(4-Point Congruent Set, 4PCS)、Super4PCS算法等
基于特征匹配的配准算法:通过被测物体本身所具备的形态特性构建点云间的匹配对应,然后采用相关算法对变换关系进行估计。如基于点FPFH特征的SAC-IA、FGR等算法、基于点SHOT特征的AO算法以及基于线特征的ICL等
精配准的目的是在粗配准的基础上让点云之间的空间位置差别最小化。应用最为广泛的精配准算法应该是ICP以及ICP的各种变种(稳健ICP、point to plane ICP、Point to line ICP、MBICP、GICP、NICP)。
其中常用的配准算法有正太分布变换。
其中SLAM图优化 SLAM技术中,在图像前端主要获取点云数据,而在后端优化主要就是依靠图优化工具。以下是常用的工具和方法。工具:g2o、LUM、ELCH、Toro、SPA。SLAM方法:ICP、MBICP、IDC、likehood Field、 Cross Correlation、NDT。
其中目标识别检索 这是点云数据处理中一个偏应用层面的问题,简单说来就是Hausdorff距离常被用来进行深度图的目标识别和检索,现在很多三维人脸识别都是用这种技术来做的。
其中变化检测 当无序点云在连续变化中,八叉树算法常常被用于检测变化,这种算法需要和关键点提取技术结合起来,八叉树算法也算是经典中的经典了。
其中三维重建 常用的三维重建算法和技术有:泊松重建、Delauary triangulatoins,表面重建,人体重建,建筑物重建,输入重建,实时重建:重建纸杯或者龙作物4D生长台式,人体姿势识别,表情识别。
其中点云数据管理 主要方法是点云压缩,点云索引(KDtree、Octree),点云LOD(金字塔),海量点云的渲染。
注:这是我看过很多博客和相关资料整理来的。但由于没有及时记录博客IP地址,所以请相关博主看到我的整理后,若感觉这篇文章的有些内容和自己的博文有相似之处,请私信我。我一定会标明出处。