深度图
读取 16 位 PNG、TIFF、NPY、PFM 与 EXR 深度数据,支持百分位窗口化、色彩映射、光标处的米制读数,以及反投影进三维查看器。
Potato 能把深度图渲染得可读,在光标处以米为单位报告距离,并且在给定相机内参的情况下,把深度图变成可供你放置三维框的点云。 深度是单目估计器、双目装置与 RGB-D 传感器交付三维信息的方式,也是多数机器人数据集随视频一并提供的格式。
可运行示例:examples/spatial/depth-eval/。
深度与图像不同的三点
把深度图当作图像打开,看到的是一块黑色矩形。就算不是,你看到的也只是一堆颜色,而不知道其中任何一种代表多远。
文件本身并不知道自己的单位。 RealSense、Azure Kinect 与 NYU-Depth 用毫米;KITTI 补全基准用 1/256 米;任何由浮点数组写出的文件用米。depth_scale 表示每个存储单位对应多少米,默认值为 0.001。填错是无声的,因为窗口会重新缩放,画面看起来毫无二致——这正是米制读数存在的理由。
零不是一个距离。 它几乎是通用的"无返回"编码。若按深度来读,它会在传感器覆盖范围内的每一个空洞处画出一堵明亮的墙。Potato 把非测量值记作 NaN,并涂成品红色,这是所有色彩映射中都不存在的颜色,因此空洞不会被误认成近处或远处的深度。信息栏会报告深度图中有多少比例是空洞。一台面对无纹理墙面的双目装置确实会返回 80% 的空洞,而看不到这一点的标注者会把它们当成几何结构来读。
有意义的量程几乎从来不是完整量程。 近/远窗口默认取有效像素的第 2 与第 98 百分位。
配置
instance_display:
fields:
- key: depth
type: depth_map
label: "Depth"支持的格式:16 位 PNG、16 位 TIFF、NPY 与 NPZ、PFM,以及 EXR。
窗口化是可度量的,不是装饰性的
百分位窗口才是实质所在,其效果可以用数字说明。一份内容位于 1200 到 1800 之间的 16 位扫描件,在朴素的 8 位转换下渲染出 255 级灰阶中的 4 级区分度,而在百分位窗口下有 254 级。这同样适用于一般的科研用 TIFF。参见媒体导入。
反投影
在给定内参的情况下,深度图会被反投影进点云所使用的同一个三维查看器,因此同样的立方体工具在它上面也可用。这正是 RGB-D 数据集无需单独转换步骤即可在三维中标注的原因。