1.点云模型
点云与三维图像
三维图像
- 一种特殊的信息表达形式;
- 特征是表达的空间中有三个维度的数据;
- 是对一类信息的统称;
- 信息的表现形式:
- 深度图:以灰度表达物体与相机的距离
- 几何模型:由cad软件建立
- 点云模型:所有逆向工程设备都将物体采样为点云
- 和二维图像相比;
- 三维图像借助第三个维度的信息;
- 可实现物体和背景的解耦;
- 二维图像信息对于视觉测量来讲随摄影方式而变化
- 三维特征对不同的测量方式具有更好的统一性
点云概述
- 点云数据是最常见也是最基础的三维模型;
- 扫描数据以点的形式记录;
- 每一个点包含有三维坐标;
- 有些肯能含有颜色信息;
- 或者反射强度信息(Intensity)。
点云概念
- 是在同一空间参考系下;
- 表达目标空间分布;
- 和目标表面特性的;
- 海量点集合;
- 所获取的物体表面采样点的空间坐标点的集合,称为点云(Point Cloud);
点云内容
- 根据激光测量原理得到的点云:
- 包括三维坐标和激光反射强度(Intensity);
- 强度信息的影响因素
- 目标的表面材质;
- 目标的表面粗糙度;
- 入射角方向;
- 仪器发射的能量;
- 激光波长;
- 根据摄影原理测量得到的点云:
- 包含三维坐标(XYZ)和颜色信息(RGB);
- 结合激光测量和摄影测量原理获得的点云:
- 包含三维坐标(XYZ);
- 激光反射强度(Intensity);
- 颜色信息(RGB)
点云处理的三个层次
低层次处理方法
- 滤波方法:双边滤波、高斯滤波、条件滤波、直通滤波、随机采样一致性滤波;
- 关键点:ISS3D\Harris3D\NARF\SIFT3D
中层次处理方法
- 特征描述:法线和曲率的计算、特征值分析、SHOT\PFH\FPFH\3D Shape\Context\Spin Image
- 分割与分类:
- 分割:区域生长、Ransac线面提取、全局优化平面提取、K-means、NormalizeCut(Context based)
- 分类:基于点,基于分割、基于深度学习的分类(PointNet,OctNet)
高层次处理方法
1.配准
- 点云配准分为粗配准(Coarse Registration)和精配准(Fine Registration)两个阶段;
- 粗配准:在点云相对位姿未知的情况下对点云的配准,为精配准提供良好的初始值;
- 精配准:在粗配准的基础上让点云之间的空间位置差别最小化;
基于穷举搜索的配准算法:
- 遍历整个变换空间;
- 选取使误差函数最小化的变换关系;
- 或者列举使最多点对满足的变换关系
- 算法举例:
- RANSAC配准算法;
- 四点一致集配准算法(4-point Congruent set,4PCS);
- Super4PCS算法
基于特征匹配的配准算法:
- 通过被测物体本身高德形态特性构建点云间的匹配对应;
- 采用算法对变换关系进行估计;
- 算法举例:
- 基于点FPFH特征的SAC-IA,FGR等算法;
- 基于点SHOT特征的AO算法;
- 基于线特征的ICL算法;
2.SLAM图优化
相关库
- Ceres(Google的最小二乘优化库,比较强大);
- g2o、LUM、ELCH、Toro、SPA
SLAM 方法
- ICP
- MBICP
- IDC
- Likehood Field
- NDT
3.三维重建
泊松重建
- Delaunay trangulations
- 表面重建;
- 人体重建;
- 建筑物重建;
- 数目重建;
实时重建
- 植被重建
- 农作物4D(3D+时间)生长态势;
- 人体姿势识别;
- 表情识别;
4.点云数据管理
- 点云压缩
- 点云索引(KD,Octree)
- 点云LOD(金字塔)
- 海量点云的渲染
2.Spin image
- 基于点云空间分布的最经典的特征描述方法;
- 思想是将一定区域的点云分布转换成二维spin image;
- 对场景和模型的spin image 进行相似性度量;
生成spin image的步骤
- 定义一个Oriented point;
- 以Oriented point 为轴生成一个圆柱坐标系;
- 定义spin image的参数:
- spin image的大小:行数和列数;
- spin image的分辨率:二维网格大小;
4.将圆柱体内的三维坐标投影到二维spin image;
- 该过程可理解为:
- 一个spin image绕着法向量n旋转360°;
- spin image扫到的三维空间点会落到spin image网格中;
5.根据spin image每个网格中落入的点数,计算网格的强度。
- 为了降低对位置的敏感度、降低噪音影响、增加稳定性;
- 当一个点落入网格(i,j)中时,可以采用双线性插值;
- 将该点分散到(i,j),(i,j+1),(i+1,j),(i+1,j+1)四个网格中。
spin image的三个关键参数
1.分辨率:
- 像素的实际尺寸与三维网格的尺寸相近比较合适;
- 通常取三维网格所有边的平均值作为spin image的网格尺寸;
- 通常将网格的长和宽设置为相等;
2.大小:
- spin image的行数和列数;
- 两者一般相等;
3.support angle:
- 空间中顶点的法向量和创建圆柱坐标系所选点法向量之间的夹角;
- 一般角度限制范围为60度-90度之间;
- 对角度限制后,那些大于90度(相当于切面的凹点)点被剔除;
- 保留了主要信息;
- 降低了后续的计算量;
3.三维重建
- 包含三个方面:
- 基于SFM的运动恢复结构;
- 基于Deep learning的深度估计和结构重建;
- 基于RGB-D深度摄像头的三维重建;
SFM
- 主要基于多视觉几何原理;
- 用于从运动中实现3D重建;
- 即从无时间序列的2D图像中推算三维信息;
- 是计算机视觉学科的重要分支;
- 广泛应用于AR、VR、自动驾驶领域;
- 实际应用以多视几何为主;
- 深度的方法离实用还有一定的距离;
- 是一个估计相机参数及三维点位置的问题;
SFM pipeline
- 对每张二维图片检测特征点(feature point);
- 对每队图片中的特征点进行匹配;
- 只保留满足几何约束的匹配;
- 执行一个迭代的、鲁棒的SFM方法;
- 恢复摄像机的内参(intrinsic parameter)和外参(extrinsic parameter);
- 由三角化得到三维点坐标。
SFM方法分类
- 根据SFM过程中图像添加顺序的拓扑结构来分:
- 增量式(incremental/sequential SFM);
- 全局式(global SFM);
- 混合式(hybrid SFM);
- 层次式(hierachica SFM);
- 基于语义的SFM(Semantic SFM);
- 基于Deep learning 的SFM。
增量式SFM
- 增量式SFM首先使用SIFT特征检测器提取特征点;
- 计算特征点对应的描述子(descriptor);
- 使用ANN(Approximate nearest neighbor)方法进行匹配;
- 低于匹配数阈值的匹配对被移除;
- 保留下来的匹配对;
- 使用RANSAC(Random Sample Consensus)估计基本矩阵(fundamental matrix);
- 被判定为外点(outlier)的匹配是错误的匹配被移除;
- 满足以上几何约束的匹配对,被合并为tracks;
- 通过incremental 方式的SFM方法恢复场景结构;
- 首先选择一对好的初始匹配对;
- 一对好的匹配对应满足的条件:
- 足够多的匹配点;
- 宽基线;
- 增量式的增加摄像机;
- 估计摄像机的内外参;
- 由三角化得到三维点坐标;
- 使用Bundle Adjustment进行优化;
- 增量式SFM是从无序图像几何计算三维重建的常用方法;
- 分为几个阶段:
- 图像特征提取
- 特征匹配;
- 几何约束;
- 重建初始化;
- 图像注册;
- 三角化;
- outlier过滤;
- Bundle Adjustment;
增量式SFM优势:
- 对特征匹配以及外极几何关系的外点比较鲁棒;
- 重建场景精度高;
- 标定过程中通过RANSAC不断过滤外点;
- 捆绑调整不断的优化场景结构;
增量式SFM缺点:
- 对初始图像的选择以及摄像机的添加顺序敏感;
- 场景漂移,大场景重建时具有累积误差;
- 效率不足,反复捆绑调整需要大量计算时间。
全局式SFM
- 估计所有摄像机的旋转矩阵和位置;
- 三角化初始场景点;
全局式SFM优势:
- 将误差均匀分布于外极几何图上;
- 没有累积误差;
- 不需要考率初始图像和图像的添加顺序;
- 仅执行一次捆绑调整;
- 重建效率高;
全局式SFM缺点:
- 鲁棒性不足;
- 旋转矩阵求解时L1范数对外点相对鲁棒;
- 但摄像机位置求解时相对平移关系对匹配外点比较敏感;
- 场景完整性,过滤外极几何边,可能丢失部分图像。
混合式SFM
- 在一定程度上综合了增量式和全局式SFM各自的优点;
- 混合式SFM的pipeline:
- 全局估计摄像机旋转矩阵;
- 增量估计摄像机位置;
- 三角化初始场景点;
文章来源:https://www.toymoban.com/news/detail-823779.html
OpenMVG
- OpenMVG(Open Multiple View Geometry):开源多视角几何库;
- 一个cv界处理多视角立体几何的著名开源库;
- 信奉:简单,可维护的理念;
- 提供一套强大的接口;
- 实现的典型应用:
- 解决多视角立体几何的精准匹配问题;
- 提供SFM用到的特征提取和匹配方法;
- 具有完整的SFM工具链(校正,参估,重建,表面处理等);
- 尽力提供可读性强的代码;
- 方便二次开发;
- 核心功能尽量精简;
- 可能需要其他库来完善你的项目;
CMVS-PMVS
- a modified version
- 将运动结构(SFM)软件的输出作为输入;
- 将输入图像分解成一组可管理大小的图像簇;
- MVS软件课独立和并行的处理每个簇;
- 来自所有簇的重建不错过任何细节;
SFM与三维重建
计算机视觉的基本任务:
- 从二维图像中恢复三维场景结构式计算机视觉的基本任务;
- 广泛应用于3D导航、3D打印、虚拟游戏等;
文章来源地址https://www.toymoban.com/news/detail-823779.html
SFM的劣势
- 尽管SFM在计算机视觉领域取得显著成果;
- 但大多数SFM基于周围环境是静止的假设;
- 即相机是运动的,目标是静止的;
- 当物体移动时,系统重建效果显著降低;
- 传统SFM基于目标位刚体的假设。
三维计算机视觉发展趋势
趋势1:多视觉几何与Deep learning 方法融合
- 在深度学习一统天下的计算机视觉领域;
- 三维视觉方向主导算法仍是传统的多视角几何方法;
- 深度学习方法是一种重要而有效的辅助;
趋势2:多传感器融合
- 基于普通摄像头的视觉传感器仍是主导;
- 工业界对算法的鲁棒性要求比较高;
- 纯视觉方法很难保证在复杂的环境下保持鲁棒效果;
- 采用廉价的激光传感器、IMU(惯性测量单元);
- 与视觉传感器进行融合;
- 是一种比较靠谱的方法;
- 在移动端目前基于摄像头+IMU方法渐多;
趋势3:算法与硬件的结合
- 深度相机厂商尽力把视觉算法嵌入到相机前端;
- 提升相机的本地处理能力;
趋势4:算法与具体应用的结合能更快的推动算法进步
- 三维视觉算法目前较好的应用集中体现在:
- 无人驾驶
- 无人搬运车
- AR(教育,影音游戏)
- 机器人领域
到了这里,关于计算机视觉基础知识(八)--点云模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!