azure kinect 深度相机原理
RGB原理就不要讲了
工作原理
Azure Kinect DK 深度相机实现调幅连续波 (AMCW) 时差测距 (ToF) 原理。 该相机将近红外 (NIR) 频谱中的调制光投射到场景中。 然后,它会记录光线从相机传播到场景,然后从场景返回到相机所花费的间接时间测量值。
处理这些测量值可以生成深度图。 深度图是图像每个像素的一组 Z 坐标值,以毫米为单位。
连同深度图一起,我们还可以获得所谓的清晰 IR 读数。 清晰 IR 读数中的像素值与从场景返回的光线量成正比。 图像类似于普通的 IR 图像。 下图显示了示例深度图(左)的对应的清晰 IR 图像(右)。
主要功能
深度相机的技术特征包括:
配备高级像素技术的 1 兆像素 ToF 成像芯片,实现更高的调制频率和深度精度。
两个 NIR 激光二极管实现近距和宽视场 (FoV) 深度模式。
全球最小的 3.5μm x 3.5μm ToF 像素。
自动像素增益选择支持较大的动态范围,允许捕获清晰的近距和远距对象。
全局快门可帮助改善日光下的拍摄性能。
多相位深度计算方法能够实现可靠的准确度,即使芯片、激光和电源存在差异。
较低的系统误差和随机误差。
深度相机将原始的调制 IR 图像传输到电脑主机。 在电脑上,GPU 加速的深度引擎软件会将原始信号转换为深度图。 深度相机支持多种模式。 窄视场 (FoV) 模式非常适合 X、Y 维度范围较小,但 Z 维度范围较大的场景。 如果场景中的 X、Y 范围较大,但 Z 范围较小,则宽 FoV 模式更合适。
装箱的代价是降低图像分辨率。 所有模式都能够以高达 30 帧/秒 (fps) 的速率运行,但 1 兆象素 (MP) 模式除外,它的最大运行帧速率为 15 fps。 深度相机还提供被动 IR 模式。 在此模式下,照像机上的照明器不会激活,只能观测到环境光。
相机性能
系统误差
系统误差定义为消噪后测得的深度与正确(真实)深度之差。 我们会根据静态场景的许多帧计算时态平均值,以消除尽可能多的深度噪声。 更确切地说,系统误差定义为:
随机误差
假设我们在没有移动相机的情况下拍摄了同一对象的 100 张图像。 在这 100 张图像中,每张图像的对象深度略有不同。 这种差异是散粒噪声造成的。 发生散粒噪声的原因是,在一段时间内,进入传感器的光子数因某种随机因素而有变化。 我们将静态场景中的这种随机误差定义为一段时间内的深度标准偏差
失效
在某些情况下,深度相机可能无法提供某些像素的正确值。 在这种情况下,深度像素将会失效。 无效的像素由深度值 0 表示。 深度引擎无法生成正确值的原因包括:
超出活动 IR 照明遮罩范围
IR 信号饱和
IR 信号强度低
滤波异常
多路径干扰
透明遮罩
当像素超出活动 IR 光照的遮罩范围时,它们将会失效。 我们不建议使用此类像素的信号来计算深度。 下图显示了超出照明遮罩范围而导致像素失效的示例。 失效的像素包括宽 FoV 模式的圆圈(左)和窄 FoV 模式的六边形(右)外部的黑色像素。
信号强度
当像素包含饱和的 IR 信号时,它们将会失效。 像素饱和后,相位信息将会丢失。 下图显示了 IR 信号饱和导致像素失效的示例。 请查看指向深度图像和 IR 图像中的示例像素的箭头。
歧义深度
如果像素从场景中的多个对象收到了信号,则它们也可能会失效。 在角落中经常会看到这种像素失效的情况。 由于场景的几何结构,照相发出的 IR 光会从一堵墙反射到另一堵墙。 这种反射光会导致测得的像素深度出现歧义。 深度算法中的滤波器会检测这些有歧义的信号,并使像素失效。