Skip to content

깊이 맵

16비트 PNG, TIFF, NPY, PFM, EXR 깊이를 백분위 윈도잉, 컬러맵, 커서 아래 미터 표시와 함께 읽고, 3D 뷰어로 역투영합니다.

Potato는 깊이 맵을 읽을 수 있게 렌더링하고, 커서 아래의 거리를 미터로 표시하며, 카메라 내부 파라미터가 주어지면 깊이 맵을 3D 박스를 놓을 수 있는 포인트 클라우드로 바꿉니다. 깊이는 단안 추정기, 스테레오 리그, RGB-D 센서가 3D를 전달하는 형식이며, 대부분의 로봇 데이터셋이 영상과 함께 배포하는 형식이기도 합니다.

동작하는 예시: examples/spatial/depth-eval/.

깊이가 이미지와 다른 세 가지

깊이 맵을 이미지로 열면 검은 직사각형이 나옵니다. 설령 그렇지 않더라도, 보게 되는 것은 어느 색이 어떤 거리를 뜻하는지 알 수 없는 색의 나열입니다.

파일은 자기 단위를 모릅니다. RealSense, Azure Kinect, NYU-Depth는 밀리미터, KITTI 완성 벤치마크는 1/256 m, float 배열에서 쓴 것은 미터입니다. depth_scale은 저장 단위당 미터 수이며 기본값은 0.001입니다. 이것을 틀려도 겉으로 드러나지 않습니다. 윈도가 값 범위를 다시 잡아 그림이 똑같아 보이기 때문이고, 미터 표시가 있는 이유가 바로 그것입니다.

0은 거리가 아닙니다. 거의 보편적으로 "반사 없음"을 뜻하는 코드입니다. 이를 깊이로 읽으면 센서 커버리지에 난 구멍마다 밝은 벽이 칠해집니다. Potato는 비측정값을 NaN으로 들고 마젠타로 칠합니다. 어떤 컬러맵에도 없는 색이라 구멍을 가까운 깊이나 먼 깊이로 오해할 수 없습니다. 정보 줄에는 맵의 몇 퍼센트가 구멍인지 표시됩니다. 스테레오 리그를 무늬 없는 벽으로 향하면 실제로 80%가 구멍으로 나오고, 그것을 볼 수 없는 주석자는 구멍을 도형으로 읽게 됩니다.

관심 있는 범위가 전체 범위인 경우는 거의 없습니다. 근/원 윈도의 기본값은 유효한 픽셀의 2백분위수와 98백분위수입니다.

설정

yaml
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 전반에 적용됩니다. 미디어 수집을 보십시오.

역투영

내부 파라미터가 있으면 깊이 맵은 포인트 클라우드 화면이 쓰는 것과 같은 3D 뷰어로 역투영되므로, 같은 직육면체 도구를 그대로 쓸 수 있습니다. 덕분에 RGB-D 데이터셋을 별도의 변환 단계 없이 3D에서 주석할 수 있습니다.

관련 문서