飞行时间法(Time of Flight,ToF)指的是在光速及声速一定的前提下,通过测量发射信号与接收信号的飞行时间间隔来获得距离的方法。这种信号可以是超声波,也可以是红外线等。飞行时间法相较于立体视觉法而言,具有不受基线长度限制、与纹理无关、成像速度快等特点。但是其也有一定的缺点。首先,ToF相机的分辨率非常低。其次,ToF相机容易受到环境因素的影响,如混合像素、外界光源等,导致景物深度不准确;系统误差与随机误差对测量结果的影响很大,需要进行后期数据处理,主要体现在场景像素点的位置重合上。
车载装置上装有雷达和GPS/IMU,雷达可以获取车载装置到扫描点的距离与偏角,这样就可以得到扫描点在GPS坐标系中的三维坐标,而雷达与GPS都在车载上,两者的相对位置固定,于是又可以将点的GPS坐标系中的坐标转换为雷达坐标系中的坐标,而雷达坐标系是可以转化为大地坐标系的,实景三维,这样每个扫描点在GPS坐标系中的坐标就转换为大地坐标系中的坐标。为了便于处理,再将大地坐标系中的坐标转换为本地坐标系中的坐标,事实上点云文件中的三维坐标指的是本地坐标系中的坐标。
3D建模的原理
3D建模的过程实际上是一个三维重建过程,这个过程包括点云数据预处理、分割、三角网格化、网格渲染。
由于激光扫描获取的数据中常常伴有杂点或噪声,影响了后续的处理,因此为了获取完整的模型,需要对点云数据进行一定的预处理,常用的方法有滤波去噪、数据精简、数据插补等。
分割是指将整个点云聚类为多个点云,每个点云对应独立的物体对象。分割算法大体上是先选定一个点,利用kd树计算以该点为中心的球,球内的点都属于该物体,球的半径设为一个阈值,之后遍历该物体的其他点都这么处理,会将点云分割成一个一个的物体。
为了便于后续的网格渲染,需要提前将点云进行三角网格化,采用的算法通常是凸包或凹包算法。
以上几步基本上已经得出了点云的空间拓扑结构,要得到逼真的物体,还需要网格渲染。网格渲染主要为纹理映射,就是将数码相机中的图像望网格上贴。
经过以上几步就完成了整个3D建模。