跳到主要内容
版本:Next

点云处理综述

点云重构过程

3D相机从拍摄到在软件中显示3D渲染结果的整个过程大致遵循如下流程:1拍摄结构光图像->2硬件重构3D信息->3数据传输到PC->4软件后处理->5软件3D渲染;在Windows端ControlCenter软件设置中包含了多个不同阶段对点云的处理参数,按先后顺序排列依次是重构-过曝滤除/有效点判别/飞点剔除、重构-预处理、实时后处理-去飞点/修补/平滑、显示过滤,通过设置上述处理参数会影响到软件最终呈现的3D数据:

processFlow

硬件重构3D信息阶段的处理

重构 - 过曝滤除/有效点判别/飞点剔除

拍摄结构光图像过程中出现过曝/欠曝、失焦、抖动以及实际拍摄环境造成的多重反射、环境光干扰等都会造成重构失败,因此在重构过程中需要考虑以上因素,在硬件重构3D信息阶段可通过多种不同方法来判断重构结果是否有效,每种方法通过独立的参数调整阈值,来滤除不同特征的无效点,可以在保持完整性的同时剔除绝大多数无效点,这个过程发生在相机硬件重构3D信息的阶段,运算在硬件中完成,不影响相机拍摄CT;

  1. 过曝滤除:滤除因结构光原图中过曝造成的偏离真实高度的3D重构数据;
  2. 有效点判别:不满足原图质量要求的认为3D重构结果不可信,提高3D数据对原始数据中噪声的鲁棒性,保留高置信度的重构结果;
  3. 飞点剔除:仍然存在一些没有滤除的无效点,通过假设原图均匀变化,剔除孤立跳变点;;
原图阈值最宽松
原图阈值最宽松
收紧阈值1收紧阈值2
收紧阈值1收紧阈值2

重构 - 预处理

重构完成后可对重构数据进行预处理,在保持原来的3D特征轮廓的同时滤除噪声、填补孔洞(填补无效点)、去除毛刺;硬件预处理也发生在硬件重构3D信息阶段,运算在硬件中完成,可在不影响相机拍摄CT的情况下对原始数据进行美化。预处理提供了最多循环5次的3x3窗口预处理(降噪、修补、去毛刺),并且其具有特征识别功能,可在保持原有特征轮廓的情况下有效提升数据重复性并保持数据相关性;但是由于硬件资源有限,预处理窗口大小固定为3x3,对于超过此尺寸的噪声、孔洞、毛刺处理效果较差,且预处理过程可调参数较少、处理顺序固定,导致硬件预处理可能无法满足我们对预处理的要求,此时可在数据传输到PC后使用实时后处理对数据进行进一步的处理;

预处理前预处理后
预处理前预处理后

软件后处理阶段的处理

即使经过了硬件预处理,原始数据中仍可能存在大尺寸的飞点、无效点以及周期噪声,这些情况会影响到后续测量或检测过程中数据的稳定性,此时可使用去飞点、修补、平滑三个软件后处理功能对数据进行进一步的处理,实时后处理支持使用Cpu或Gpu进行计算;

实时后处理 - 去飞点

去飞点是通过对比邻近点,与相邻点不相近的点极有可能是飞点,飞点被认为是无效点被筛除。通过调整调整窗口大小指定判断相邻点的范围可以处理不同大小的飞点群;通过调整邻近阈值、邻近数量、斜率、抑制窄边等可以调整飞点判定标准的严格或宽松,参数越大表示越严格,粗调时可以统一增大或减小;详细说明参考相关专题文档:后处理去飞点使用说明

去飞点前去飞点后
去飞点处理前去飞点处理后

实时后处理 - 修补

修补无效点使用邻近点估计的方法,通过无效点周围的有效点对该点进行估计;分插值法和膨胀法两种,其中膨胀法适用于填补垂直边缘的情况,但容易产生毛刺;窗口越大则修补的孔洞越大,但可能将真实的孔洞填充;详细说明参考相关专题文档:后处理修补使用说明

修补前修补后
修补处理前修补处理后

实时后处理 - 平滑

平滑的方法使用邻近点平均的方法,窗口越大则参与平均的点范围越大;不满足邻近阈值和邻近数量阈值的点不会被平滑,通过调整邻近阈值和邻近数量可保留真实的高度跳变区域;详细说明参考相关专题文档:后处理平滑使用说明

平滑前平滑后
平滑处理前平滑处理后

实时后处理 - 分割中值滤波

分割中值滤波是根据高度阈值将原图分割成两部分,分别进行中值滤波;防止存在高低差的真实狭缝被滤除;(windows平台为分割中值滤波功能,仅支持简化深度图,Linux平台为中值滤波功能,支持所有3D格式),详细说明参考相关专题文档:后处理分割中值滤波使用说明

中值滤波前中值滤波后
中值滤波前中值滤波后

软件3D渲染阶段 - 显示过滤功能

最终的数据经过3D渲染呈现,3D渲染过程需要基于原始数据构造3D数据的每一个顶点数据(位置、颜色、法向量等信息),顶点数据通过OpenGl渲染显示为3D画面;故可以通过在构造顶点数据的过程中对数据进行筛选来滤除少量离群点数据(构造三角数据时任意两点之间高度差大于一定值认为是飞点,该点不会被显示),显示过滤功能可以在不改变原始数据的情况下,在3D渲染过程中对数据进行美化;

显示过滤关闭显示过滤开启
显示过滤-关闭显示过滤-开启