Table of Contents
飞点介绍
飞点是错误的深度读数,虽然在深度映射图像中不总是明显,但在3D点云中会变得显而易见。飞点作为由ToF(Time-of-Flight)相机生成的3D点云中的错误像素出现,通常出现在场景的深度不连续处,特别是在物体边界处,前景和背景的光线可能在边缘处结合,产生中间错误的深度值,导致鬼影像素的出现。
飞点形成的原因
因素1:光圈大小
大光圈会允许大量光子到达传感器,增加物体的亮度,但物体边界会形成更多伪影和飞点。相反,窄光圈会限制传感器接收到的光量,降低信噪比和图像质量,但也可以通过减少某些角度反射的红外线的影响来减轻飞行像素的影响。
因素2:曝光时间
在理想状态下,ToF相机的每个像素在一定时间内接收到一个目标的光路径。在实际场景中,相机与场景之间的相对运动会导致每个像素来自目标的不同光路径,这会导致物体边界的深度不准确,产生运动伪影和飞点。
因素3:像素大小
在测量物体边缘时,单个像素会接收到来自前景和背景的反射光。这会导致来自不同距离的深度信息叠加,使原始传感器数据包含不同的深度值。
因素4:其他光源的干扰
其他相似波长的光发射会干扰ToF相机的测量,影响其准确感知信息的能力,并产生飞点像素。
消除飞点的方法
基于软件技术的中值滤波器
中值滤波器分析相邻像素的深度值,排除那些明显偏离中值的像素。该滤波器基于用户定义的阈值,如果中值与最近邻之间的差异超过阈值,则排除这些像素。通过减小异常值的影响,中值滤波器有效地抑制了飞点对最终深度图的影响。过程如下所示:
基于硬件技术的Mask ToF
Mask ToF通过在传感器像素和其微透镜之间插入微透镜掩模来增强相机管道。该掩模选择性地阻挡入射光路径,使每个像素都有自己的定制光圈。通过减少杂散光路径,Mask ToF有效地减少了飞点形成并提高了深度感知的准确性。
ScepterGUITool 中飞点滤波的应用
用户可以在 ScepterGUITool 上使用飞点滤波功能,如下图所示:
使用ToF相机检测物体,关闭滤波器,其点云图如下所示:
飞点滤波器的阈值范围是 [1, 16],打开飞点滤波器。用户设置的阈值越大,边界飞点像素消除现象越明显。
以下点云显示了飞点滤波阈值为5的示例:
下面的点云显示飞点滤波阈值为16的示例:
飞点滤波的优缺点
优点:消除物体边界上的飞点。
缺点:飞点滤波的较大阈值可能会导致深度图上的数据丢失。