제4장

스테레오 비전과 수동 센싱

스테레오 비전 시스템은 두 대 이상의 카메라를 사용해 시차(parallax)로 깊이를 인지함으로써 인간의 양안 시각을 모방한다. 능동 조명이 필요 없는 수동 기법이므로, 스테레오 비전은 실외 환경과 광원을 추가하기 어려운 응용 분야에서 탁월한 성능을 발휘한다.

기본 원리

스테레오 비전은 시차(disparity), 즉 같은 점을 서로 다른 두 시점에서 바라볼 때 나타나는 위치 차이를 이용한 삼각 측량 원리로 작동한다. 인간의 시각도 정확히 이 메커니즘을 사용한다. 약 6.5cm의 기준선만큼 떨어진 두 눈은 세상을 조금씩 다르게 보며, 뇌는 이를 처리하여 깊이를 인지한다.

스테레오 카메라 시스템에서는 두 카메라가 알려진 기준선 거리만큼 떨어져 있다. 두 카메라가 3D 공간의 같은 점을 관측하면, 그 점은 각 카메라 이미지에서 서로 다른 픽셀 좌표에 나타난다. 이렇게 대응하는 점들 사이의 수평 변위가 시차이며, 시차는 깊이에 반비례한다.

수학적 관계는 매우 간결하다. 깊이 = (기준선 × 초점 거리) / 시차. 따라서 깊이를 정밀하게 측정하려면 카메라 사이의 기준선 거리를 정확히 보정하고, 카메라의 초점 거리를 정밀하게 알아야 하며, 시차를 서브픽셀 정확도로 구해야 한다.

스테레오 매칭 알고리즘

스테레오 비전의 핵심 과제는 대응 문제(correspondence problem)이다. 즉, 왼쪽 이미지의 한 픽셀이 주어졌을 때, 장면 속 같은 물리적 점을 나타내는 오른쪽 이미지의 대응 픽셀을 찾아야 한다. 한 이미지의 각 픽셀을 다른 이미지의 수많은 픽셀과 비교해야 할 수 있으므로 계산량이 매우 많다.

블록 매칭 방식

블록 매칭 알고리즘은 왼쪽과 오른쪽 이미지 사이에서 작은 직사각형 영역(블록)을 비교하여 대응점을 찾는다. 절대 차이 합(Sum of Absolute Differences, SAD)과 제곱 차이 합(Sum of Squared Differences, SSD)이 흔히 쓰이는 유사도 척도이다. 이러한 방식은 계산 효율이 높고 하드웨어 구현에 적합하지만, 대응 영역의 밝기와 텍스처가 비슷하다고 가정하므로 정반사 표면, 가림(occlusion), 반복 패턴이 있는 영역에서는 이 가정이 성립하지 않을 수 있다.

준전역 매칭(Semi-Global Matching, SGM)

SGM은 정확도와 계산 효율의 균형을 맞춘 보다 정교한 접근 방식이다. SGM은 각 픽셀마다 독립적으로 매칭을 결정하는 대신 평활성 제약을 적용한다. 즉, 이미지에 에지가 없는 한 이웃한 픽셀들은 비슷한 시차를 가져야 한다. 이 알고리즘은 이미지를 가로지르는 여러 1D 경로를 따라 매칭 비용을 집계함으로써, 계산 비용이 큰 2D 전역 최적화를 효율적인 1D 최적화들로 근사한다.

SGM은 고품질 실시간 스테레오 매칭의 사실상 표준이 되었으며, 많은 자율주행 차량 인식 시스템에 사용된다. Intel RealSense D400 시리즈의 하드웨어 스테레오 프로세서도 흔히 SGM 계열 매칭을 쓰는 것으로 설명된다(Intel은 정확한 알고리즘을 공개하지 않는다). 최신 구현은 GPU 또는 FPGA 가속을 통해 VGA 해상도에서 30 fps 이상으로 조밀한 시차 맵을 생성한다.

딥러닝 접근 방식

최근 딥러닝의 발전으로, 특히 텍스처가 없는 영역, 가림, 반사 표면 같은 까다로운 조건에서 기존 알고리즘을 능가하는 스테레오 매칭 네트워크가 등장했다. PSMNet, GCNet, GANet 같은 네트워크는 실측 깊이(ground truth)가 포함된 대규모 스테레오 이미지 데이터셋으로부터 특징을 추출하고 매칭 비용을 계산하는 방법을 학습한다.

학습 기반 접근 방식의 장점은 기존 가정에 어긋나는 까다로운 상황을 처리할 수 있다는 점이다. 예를 들어 표면 특성이나 조명 변화 때문에 겉보기 밝기가 서로 다른 영역도 올바르게 매칭할 수 있다. 단점은 계산 비용이다. 딥 네트워크를 실시간으로 운용하려면 상당한 GPU 자원이 필요하다.

보정

정확한 보정은 스테레오 비전 시스템에 절대적으로 중요하다. 보정은 내부 파라미터(각 카메라의 초점 거리, 주점, 렌즈 왜곡)와 외부 파라미터(카메라 사이의 상대 위치와 방향)를 모두 결정한다.

내부 보정

각 카메라는 알려진 패턴, 일반적으로 체커보드를 사용해 개별적으로 보정한다. 서로 다른 위치와 방향에서 패턴 이미지를 여러 장 촬영하면, 보정 알고리즘이 카메라의 내부 파라미터를 풀어낼 수 있다. 최신 보정은 Zhang 방법 또는 유사한 기법을 사용하며, 왜곡 보정에서 서브픽셀 정확도를 달성한다.

스테레오 보정

개별 카메라 보정이 끝나면, 스테레오 보정으로 두 카메라 사이의 3D 변환(회전과 평행 이동)을 결정한다. 이를 통해 깊이 정확도에 가장 중요한 파라미터인 기준선이 확정된다. 기준선의 1% 오차는 깊이 측정의 1% 오차로 그대로 이어진다.

보정 과정에서는 대응점들이 같은 수평 주사선 위에 놓이도록 이미지를 변환하는 정렬(rectification) 파라미터가 산출된다 (에피폴라 정렬). 이로써 2D 대응점 탐색이 주사선을 따른 1D 탐색으로 줄어들어, 계산 효율과 신뢰성이 크게 향상된다.

Intel RealSense D400 시리즈

Intel의 RealSense D400 시리즈는 대표적인 상용 스테레오 비전 제품으로, 로봇 공학, 드론, 리테일 분석, 산업 자동화 분야에서 널리 쓰인다. 그 아키텍처를 이해하면 실제 스테레오 시스템 설계를 잘 알 수 있다.

하드웨어 아키텍처

D400 모델 중 가장 널리 쓰이는 D435는 다음을 통합한다.

성능 특성

파라미터 D435 값 비고
깊이 범위 0.3 - 10m 최적 정확도 0.5-3m
깊이 정확도 2m에서 2% 미만(Intel 사양) 2m 거리에서 약 40mm 이내
해상도 1280x720 848x480, 640x480 등 낮은 해상도 선택 가능
프레임 속도 최대 90 fps 848x480 이하에서, 1280x720은 30 fps
기준선 50mm 고정, 공장 보정
시야각 87° × 58° 대각 95°
전력 USB 버스 전원 USB 3 연결 권장

능동 스테레오와 수동 스테레오

순수 수동 스테레오는 매칭을 전적으로 장면 고유의 텍스처에 의존한다. 시각적 디테일이 풍부한 실외 장면에서는 잘 작동하지만, 도색된 벽이나 균일한 소재처럼 텍스처가 없는 표면에서는 실패한다. 능동 스테레오는 패턴을 투사하여 인공 텍스처를 만들어 낸다.

패턴 투사 전략

시스템마다 서로 다른 패턴 투사 방식을 사용한다.

다중 카메라 시스템

카메라 두 대가 최소 스테레오 시스템을 이루지만, 다중 카메라 구성은 다음과 같은 이점을 제공한다.

3중 카메라 시스템

카메라 세 대를 일렬로 배치하면 이중 기준선 운용이 가능하다. 짧은 기준선(카메라 1-2)은 가까운 물체에 대해 조밀한 매칭을 제공하고, 긴 기준선(카메라 1-3)은 최대 범위를 넓히고 원거리 정확도를 높인다. 이 구성은 근거리 장애물 감지와 원거리 물체 추적을 모두 처리해야 하는 자동차 응용 분야에서 널리 쓰인다.

전방위 스테레오

플랫폼 주위에 여러 스테레오 쌍을 배치하면 360도 깊이 센싱이 가능하다. 이는 주변 환경을 빠짐없이 인식해야 하는 자율주행 차량과 모바일 로봇에 매우 중요하다. 많은 카메라의 보정, 데이터 대역폭 관리, 겹치는 깊이 맵의 융합 등이 과제이다.

스테레오 매칭 알고리즘 비교

알고리즘 접근 방식 정확도 속도 최적 용도
블록 매칭(SAD/SSD) 국소 윈도우 비교 보통 매우 빠름 실시간 임베디드 시스템
준전역 매칭(SGM) 1D 경로 집계 높음 빠름 자동차, 로봇 공학
그래프 컷 전역 에너지 최소화 매우 높음 느림 오프라인 3D 재구성
딥러닝(PSMNet) CNN 기반 특징 매칭 매우 높음 보통(GPU) 까다로운 장면, 연구

응용 분야

로봇 공학과 드론

스테레오 비전은 수동 작동(레이저 전력 불필요), 실외 작동 능력(주변광에 둔감), 컬러와 깊이의 동시 캡처 덕분에 모바일 로봇과 드론에서 주류를 이루는 깊이 센싱 기술이다. 응용 사례는 다음과 같다.

자율주행 차량

많은 자율주행 차량이 LiDAR를 보완하는 저비용 수단으로 스테레오 카메라를 사용한다. LiDAR가 더 뛰어난 범위와 정확도를 제공하는 반면, 스테레오 카메라는 교통 표지 인식, 차선 표시 감지, 의미론적 장면 이해에 필요한 색상 정보를 제공한다. Subaru EyeSight 시스템은 충돌 회피, 적응형 크루즈 컨트롤, 차선 유지 보조에 스테레오 비전을 사용한다.

증강 현실

AR 헤드셋은 스테레오 카메라와 깊이 센서를 조합해 공간을 인식한다. 예를 들어 Microsoft HoloLens 2는 헤드 추적에 여러 대의 흑백 카메라를, 공간 매핑과 손 추적에 ToF 깊이 카메라를 사용한다. 이러한 센서 조합 덕분에 시스템은 방의 기하 구조를 이해하고, 가상 객체를 배치할 표면을 감지하며, 상호작용을 위한 손 제스처를 추적할 수 있다. 이는 모두 몰입형 AR 경험에 필수적인 기능이다.

과제와 한계

일반적인 과제

깊이 정확도 분석

스테레오 시스템의 깊이 정확도는 기본적인 기하학적 관계에 의해 결정된다. 주어진 기준선(B)과 초점 거리(f)에 대해, 깊이 분해능(δz)은 시차 측정 불확도(δd)에 따라 달라진다.

δz = (z² × δd) / (B × f)

이 식은 깊이 오차가 거리의 제곱에 비례해 커진다는 것을 보여 준다. 50mm 기준선, 1280 픽셀 폭과 수평 시야각 87°(초점 거리 약 674픽셀), 0.1 픽셀 시차 불확도 조건에서 1미터 거리의 깊이 분해능은 약 3mm이다. 5미터에서는 이 값이 75mm로 나빠진다. 거리는 5배 늘었을 뿐인데 분해능은 25배 나빠지는 것이다.

깊이 분해능을 높이기 위해 시스템은 기준선을 늘리거나(단, 최소 범위가 줄고 가림 문제가 커짐), 초점 거리를 늘리거나 (단, 시야각이 줄어듦), 센서 해상도를 높이거나(단, 계산량이 늘어남), 더 나은 알고리즘으로 매칭 정확도를 개선할 수 있다.

향후 방향

요약

핵심 내용:

복습 질문

  1. 기준선 50mm, 초점 거리 674픽셀, 시차 불확도 0.1픽셀일 때 2m와 4m에서의 깊이 분해능을 각각 계산하라.
  2. 에피폴라 정렬이 대응점 탐색을 2D에서 1D로 줄이는 원리를 설명하라.
  3. 블록 매칭, SGM, 딥러닝 매칭을 정확도, 속도, 하드웨어 요구 측면에서 비교하라.
  4. 능동 스테레오와 구조광은 모두 패턴을 투사한다. 두 방식에서 깊이를 계산하는 방식은 어떻게 다른가?
  5. 3중 카메라 배열에서 짧은 기준선과 긴 기준선이 각각 맡는 역할을 설명하라.
  6. 기준선을 늘리면 원거리 정확도는 좋아지지만 어떤 비용이 따르는가?
  7. RealSense D435에서 1280x720과 848x480 모드 중 무엇을 고르겠는가? 프레임 속도와 정확도의 절충을 근거로 답하라.
  8. 반복 패턴이 있는 건물 외벽에서 스테레오 매칭이 실패하는 이유와 완화 방법을 설명하라.