web.stanford.edu

1 Introduction

전통적인 stereo의 주요 아이디어는 triangulation을 통해 대응점 $p$와 $p'$를 사용하여 3d 점 $P$의 위치를 추정하는 것이다. 여기서 핵심 도전은 대응 문제를 해결하는 것이다. 즉 점 $p$가 또 다른 이미지에서 점 $p'$에 실제로 대응되는지 어떻게 판단할 수 있는가? 이 문제는 장면에 존재하는 많은 3d점을 처리해야 한다는 사실로 인해 더욱 accentuated(부각된)다. 이 노트에서는 3d 구조를 잘 재구성할 수 있는 대안 기법을 논의한다.

2 Active stereo

Cap 2024-06-19 07-10-15-835.jpg

우선 active stereo라는 기법을 소개한다. 이것은 전통적인 stereo에서 대응점 문제를 완화하는데 도움을 준다. active stereo의 주요 아이디어는 두 카메라 중 하나를 3d 환경과 상호작용하는 장치로 교체하고 두 번째 카메라에서 쉽게 식별가능한 패턴을 객체에 projecting하는 것이다. 이 새로운 projector-camera 쌍은 카메라 쌍에 대해 소개한 것과 동일한 epipolar geometry를 정의한다. 교체된 카메라의 이미지 평면은 projector virtual plane으로 교체된다. 그림 1에서 projector는 virtual plane의 점 $p$를 3d 공간의 객체에 project하여 3d 공간의 점 $P$를 생성한다. 이 3d 점 $P$는 2번째 카메라에서 점 $p'$로 관찰되어야 한다. 우리가 무엇을 projecting하는지 알기 때문에(예: virtual plane에서 $p$의 position, projection의 color와 intensity 등), 두 번째 카메라에서 대응하는 관측치 $p'$를 쉽게 발견할 수 있다.

Cap 2024-06-19 07-10-33-135.png

active stereo에서 일반적인 전략은 단일 점 대신 virtual plane에서 vertical stripe $s$를 투영하는 것이다. 이 경우는 점의 경우와 매우 유사하다. 여기서 선 $s$가 3d 공간 stripe $S$에 투영되고 카메라에서는 선 $s'$로 관찰된다. projector와 카메라가 평행하거나 rectified 되면 horizontal epipolar 선과 $s'$의 교점을 간단히 찾음으로써 대응점을 쉽게 찾을 수 있다. 이 대응점을 이용하여 이전 강의 노트에서 소개한 triangulation 방법으로 stripe $S$ 상의 모든 3d 점을 재구성할 수 있다. line을 장면 전체에 걸쳐 swiping하고 이 절차를 반복하면 장면 내의 모든 visible 객체의 전체 형상을 복구할 수 있다.

이 알고리즘이 작동하기 위한 한 가지 요구사항은 projector와 카메라가 calibrated 이어야 한다는 것이다. active stereo system은 이전 노트에서 설명한 것과 유사한 기법을 사용하여 calibrated 될 수 있다. 우선 calibration rig을 사용하여 카메라를 calibrate한 다음 알려진 stripes를 calibration rig에 투영하고 새로 calibrated 카메라에서 대응 관측치를 사용하여 projector의 intrinsic과 extrinsic 파라미터를 추정하기 위한 제약조건을 설정할 수 있다. 일단 calibrated 되면 이 active stereo 설정은 매우 정확한 결과를 생성할 수 있다. 2000년에 Stanford에서 Marc Levoy와 그의 학생들은 정밀하게 조정된 laser scanner를 사용하여 sub-millimeter 정확도로 Michaelangelo의 Pieta의 형상을 복구했다.

그러나 경우에 따라 정밀하게 조정된 projector는 매우 비싸고 cumbersome(번거롭다). 더 저렴한 설정을 사용하는 대안 접근은 그림자를 활용하여 복구하기를 원하는 객체에 대한 active pattern을 생성한다. 알려진 위치에 있는 광원과 객체 사이의 stick을 배치하면 이전과 같이 객체에 대해 효율적으로 stripe를 투영할 수 있다. stick을 움직이면 객체에 다른 그림자 stripe를 투영할 수 있고 이전과 유사한 방법으로 객체를 복구할 수 있다. 이 방법은 훨씬 저렴하지만 stick과 카메라와 광원 사이에 매우 정확한 calibration이 필요하고 stick의 그림자의 길이와 thickness 사이의 tradeoff가 필요하기 때문에 덜 정확한 결과를 생성하는 경향이 있다.

Cap 2024-06-19 07-10-48-843.jpg

단일 stripe를 객체에 투영하는 것의 한계는 projector가 전체 객체를 swipe 해야 하므로 상대적으로 느리다는 것이다. 또한 이 방법으로는 현실 세계의 deformations(변형)을 포착할 수 없다. 자연스러운 확장은 단일 프레임 또는 이미지를 투영하여 객체를 복구하려고 시도하는 것이다. 이 아이디어는 단일 stripe 대신 객체의 전체 visible에 알려진 다양한 stripe 패턴을 투영하는 것이다. 이 stripes의 색상은 이미지에서 stripes를 고유하게 식별할 수 있도록 설계된다. 그림 3은 이 여러 색상 코드된 stripe 방법을 보인다. 이 컨셉은 Microsoft Kinect의 원래 버전 같은 많은 현대 depth 센서의 기반이 되었다. 실제로 이러한 센서들은 임의의 ambient light 조건 하에 3d 에서 비디오 데이터를 포착할 수 있도록 infrared(적외선) 레이저 projector를 사용한다.

3 Volumetric stereo

Cap 2024-06-19 07-11-00-586.png

전통적인 stereo와 active stereo 접근 모두에 대한 대안은 volumetric stereo이다. 이것은 대응점을 사용하여 3d 구조를 찾는 문제를 반전시킨다. volumetric stereo에서는 추정하려는 3d 점이 일부 포함된, 알려진 volume 내에 있다고 가정한다. 그 다음 hypothesized(가설적) 3d 점을 calibrated 카메라에 다시 투영하고 이러한 투영이 여러 view에 걸쳐 consistent(일관된)지 여부를 평가한다. 그림 4는 volumetric stereo 문제의 일반적인 설정을 보인다. 이러한 기법들은 재구성하려는 점들이 limited volume에 포함되어 있다고 가정하므로, unbounded인 장면 모델 복구을 복구하는 것과 달리 특정 객체의 3d 모델을 복구하는데 주로 사용된다.

모든 volumetric stereo 주요 tenet(교리)는 포함된 volume내의 3d점을 여러 이미지 view로 reproject할 때, ‘consistent’의 의미를 우선 정의하는 것이다. 따라서 consistent 관측이라는 개념의 정의에 따라 다양한 기법이 유도될 수 있다. 이 노트에서 3가지 주요 기법의 개요를 설명한다. 이것은 space carving, shadow carving, voxel coloring이다.

3.1 Space carving

Cap 2024-06-19 07-11-12-593.png