Skip to content

깊이 맵에 주석을 다는 방법

깊이 파일은 자기 단위를 담고 있지 않고, 0은 "가깝다"가 아니라 "반사 없음"을 뜻하며, 의미 있는 범위가 전체 범위와 같은 경우는 없습니다. 깊이에 주석을 달기 전에 짚어야 할 것들.

깊이 맵을 이미지로 열면 검은 사각형이 나옵니다. 설령 무언가 보인다 해도, 그 색들이 어떤 거리를 뜻하는지는 알 수 없습니다. 깊이를 이미지와 갈라놓는 성질이 셋 있는데, 셋 다 잘못 잡았을 때 아무 신호도 주지 않습니다.

파일은 자기 단위를 모른다

RealSense, Azure Kinect, NYU-Depth는 밀리미터. KITTI 완성 벤치마크는 1/256미터. float 배열에서 쓰인 것은 미터.

무엇인지는 파일 어디에도 기록되어 있지 않습니다. depth_scale은 저장 단위당 미터 수이며, 이를 틀려도 눈에는 보이지 않습니다. 창이 다시 스케일되어 그림은 똑같아 보이기 때문입니다. 잡아낼 수 있는 유일한 방법은 거리를 아는 대상과 대조할 수 있는 미터 단위 수치 표시입니다.

0은 거리가 아니다

0은 거의 보편적인 "반사 없음" 코드, 즉 센서가 그 픽셀을 측정하지 못했다는 뜻입니다. 깊이로 읽으면 커버리지의 모든 구멍에 밝은 벽을 그리게 됩니다.

측정되지 않은 값은 NaN으로 들고 다니고, 어떤 컬러맵에도 나오지 않는 색으로 칠하십시오. Potato는 마젠타를 쓰므로 구멍이 가까운 깊이나 먼 깊이로 잘못 읽힐 수 없고, 맵의 몇 퍼센트가 구멍인지도 보고합니다.

이 비율은 들리는 것보다 중요합니다. 질감 없는 벽을 향한 스테레오 장비는 실제로 80%가 구멍으로 나옵니다. 그리고 어느 픽셀이 결측인지 볼 수 없는 주석자는 그것을 형상으로 읽고 라벨을 붙입니다.

의미 있는 범위가 전체 범위인 경우는 없다

내용이 1200에서 1800 사이에 놓인 16비트 깊이 맵은 단순한 8비트 변환에서 255단계 중 4단계의 분리만 얻습니다. 백분위 창을 쓰면 254단계가 됩니다.

가까움/멂 창은 유효 픽셀의 2백분위와 98백분위를 기본값으로 잡으십시오. 유효란 반사 없음 픽셀을 제외한 뒤라는 뜻이며, 그러지 않으면 구멍이 백분위를 지배해 버립니다.

설정

yaml
instance_display:
  fields:
    - key: depth
      type: depth_map
      label: "Depth"

바로 읽는 형식: 16비트 PNG, 16비트 TIFF, NPY와 NPZ, PFM, EXR.

역투영

카메라 내부 파라미터가 있으면 깊이 맵은 포인트 클라우드가 되고, 같은 3D 직육면체 도구를 쓸 수 있습니다. RGB-D 데이터셋에서는 대개 이쪽이 더 생산적인 주석 방식입니다. 3차원 크기를 판단하는 일은 컬러맵을 읽는 것보다 3D 공간에서 하는 편이 쉽기 때문입니다.

깊이 위에서 무엇에 주석을 다는가

  • 추정된 깊이에 대해 RGB 프레임과 대조한 품질 판단.
  • 깊이가 틀린 곳의 영역 라벨. 이것이 깊이 완성의 지도 신호가 됩니다.
  • 역투영 후의 3D 박스.

품질 판단 과제라면 RGB 프레임을 나란히 보여주십시오. 깊이 오류는 대개 비교했을 때만 분명해집니다.

더 읽을거리