OAK StereoDepth의 깊이값 0은 물체가 0 거리에 있다는 뜻이 아니라 깊이가 무효이거나 알려지지 않았다는 뜻이다. 값 하나만으로 원인을 알 수는 없다. 무늬가 없는 표면에서 대응점을 찾지 못했거나, 신뢰도·밝기 필터가 픽셀을 제외했거나, 좌우 일치 검사가 가림 영역의 불일치를 버렸을 수 있다. 물체가 설정된 시차 범위나 두 카메라의 공통 시야보다 너무 가까운 경우도 있다.
이 글은 2026년 9월 20일에 확인한 Luxonis 설정 문서와 DepthAI v3 노드 문서를 따른다. 카메라를 실행하거나 프리셋을 검증하지는 않았다. 모든 수치 범위는 실제 카메라, 보정값, 해상도, 플랫폼, 설정에 종속된 값으로 다뤄야 한다.
먼저 픽셀이 무효가 된 이유를 구분한다
패시브 스테레오는 왼쪽과 오른쪽 영상에서 같은 시각적 특징을 찾는다. Luxonis의 장면 텍스처 설명에 따르면 빈 벽이나 바닥에서는 구분할 특징이 부족해 깊이가 불안정하거나 무효가 될 수 있다.
설정이 의도적으로 0을 만들기도 한다. 문서의 신뢰도 임계값은 기준을 통과하지 못한 시차를 무효화하고, 밝기 필터는 지나치게 어둡거나 밝은 픽셀을 제외할 수 있다. RVC2의 신뢰도 척도는 반대 방향이다. 0이 가장 신뢰도가 높고 255가 가장 낮다. 설정한 임계값보다 큰 픽셀은 0으로 무효화되므로, 임계값을 높이면 채움률은 늘지만 신뢰도가 낮은 대응점도 포함될 수 있다. 공간·시간 필터가 누락값을 채우거나 유지할 수 있으므로 출력이 촘촘해져도 자동으로 더 정확해지는 것은 아니다.
설정을 바꾸기 전에 무효 영역의 모양을 본다. 단색 표면의 넓은 구멍은 대응점이나 노출, 경계의 가느다란 틈은 가림 처리, 가까워질수록 시작되는 실패는 최소 거리나 공통 시야를 가리킨다.
거리 공식을 이용해 범위를 계산한다
문서의 시차 기반 깊이 관계는 다음과 같다.
z = fB / d
z는 깊이, f는 픽셀 단위 초점거리, B는 스테레오 베이스라인, d는 픽셀 단위 시차다. 가까운 물체일수록 시차가 커진다. 필요한 시차가 설정된 검색 범위를 넘으면 현재 설정으로 그 깊이를 표현할 수 없다. 먼 거리에서는 시차가 작아지므로 작은 시차 오차도 더 큰 깊이 오차로 이어진다.
따라서 모든 OAK 카메라에 적용되는 하나의 ‘최소 깊이’는 유용하지 않다. 보정값, 베이스라인, 해상도, 최대 시차에 따라 경계가 달라진다. 현재 최소 깊이 설명의 수치는 특정 모델 예시이므로, 실제 보정값과 모드로 다시 계산해야 한다.
각 모드를 해당 실패 원인에 맞춘다
아래 설정은 서로 다른 문제를 다룬다. 한꺼번에 모두 적용하면 어떤 변경이 결과에 영향을 줬는지 알기 어려워진다.
| 진단 목적 | 설정 | 바뀌는 것 | 반드시 기록할 경계 |
|---|---|---|---|
| 가림 경계의 잘못된 대응 제거 | LR Check | 좌→우와 우→좌 시차를 비교해 불일치 픽셀을 제거 | 픽셀을 제외하면서 경계의 빈 영역이 늘 수 있고, RVC4에서는 CPU 소프트웨어로 실행됨 |
| 더 가까운 거리의 큰 시차 검색 | Extended Disparity | 시차 검색 범위를 큰 값 쪽으로 확장 | RVC2 v3 문서는 subpixel 모드와 호환되지 않는다고 설명하므로 정확한 릴리스와 플랫폼 확인 필요 |
| 특히 먼 거리에서 시차 정밀도 향상 | Subpixel | 소수 단위 시차 단계를 추가 | RVC2는 소수 비트 수와 필터 제한이 있고, RVC4는 소수 부분이 4비트로 고정되어 끌 수 없음 |
| 채움률과 제외 기준 조정 | 신뢰도·후처리 필터 | 규칙에 따라 픽셀을 무효화하거나 유지·채움 | 채워진 픽셀이 많아져도 깊이 정확도가 높아졌다는 뜻은 아님 |
v3 노드의 플랫폼별 설정은 RVC2와 RVC4의 프리셋과 제한을 따로 설명한다. 로그와 시험에서도 이 구분을 유지해야 한다. 특히 RVC2의 모드 조합이나 소수 비트 설정을 이름만 보고 RVC4에 적용하면 안 된다.
LR Check 설명은 두 카메라 방향의 결과를 가림 경계에서 비교하는 일치성 검사다. 빈 벽에 텍스처를 만들거나 기하학적 최소 거리를 옮기지는 못하고, 서로 맞지 않는 대응점만 제거한다.
매우 가까운 물체는 공통 시야를 확인한다
스테레오 깊이를 계산하려면 같은 점이 두 카메라에 모두 보여야 한다. 가까운 거리에서는 왼쪽 영상의 바깥 영역이 오른쪽 카메라에는 보이지 않고, 반대쪽도 마찬가지다. Luxonis는 이런 근거리 무효 밴드를 설명한다. 시차 범위를 늘려도 두 번째 카메라에 보이지 않는 영역이 새로 보이게 되지는 않는다.
Disparity shift는 먼 거리 경계가 정해진 환경에서 검색 구간을 가까운 쪽으로 옮길 수 있지만, 최대 거리를 크게 줄인다. v3 참조 문서는 이 설정을 RVC2 범위로 명시한다. MinZ와 MaxZ를 함께 기록해야 한다. 탁자 위 물체를 복원한 설정이 배경의 유효 깊이를 없앨 수 있다.
한 번에 하나의 경계를 진단한다
- OAK 모델, RVC 플랫폼, DepthAI 버전, 보정값, 모노 해상도, 프리셋, 정렬 방식, 활성 필터를 기록한다.
- 동기화된 정류 좌우 영상과 시차·깊이를 저장한다. 제공되는 신뢰도 진단값을 보존하고 무효 픽셀을 표시한다. 사용할 수 있는 진단 출력은 플랫폼마다 다르다.
- 실패한 단색 표면과 같은 거리에 무늬가 있는 표적을 둔다. 텍스처를 추가했을 때 깊이가 복원되면 대응점 문제가 우선 원인이다.
- 표적을 알려진 거리로 이동한다. 일정한 근거리 경계부터 실패하면
z = fB/d로 예상 시차를 계산하고 공통 시야를 확인한다. - LR Check는 가림 일치성, Extended Disparity는 근거리 검색, subpixel은 정밀도, 필터는 명시된 제외 규칙처럼 한 번에 하나만 바꾼다.
- 유효 픽셀 비율과 알려진 기하에 대한 오차를 함께 비교한다. 출력이 촘촘해져도 정확도와 경계 동작이 유지될 때만 변경을 채택한다.
필요한 거리나 표면 조건이 카메라의 유효 범위를 계속 벗어난다면 로봇 깊이 카메라 방식 비교로 돌아가 센싱 방식을 다시 검토할 수 있다.