아래 블로그를 참조하였습니다.
스테레오 비전(Stereo Vision)
Ⅰ. 스테레오 비전(stereo vision)
스테레오 비전이란?
사람의 시각 시스템을 모방한 기술이며, 최근 자율 주행 자동차의 관심이 높아짐에 따라 실제 거리 정보를 얻기 위해 사용되는 레이더, 라이더 센서를 대체할 수 있는 기술로 큰 관심을 받고 있습니다.
스테레오 비전의 원리
- 사람은 두 눈으로부터 좌/우 차이가 존재하는 2차원의 영상을 입력받고, 입력받은 영상을 인간의 뇌로부터 융합되는 과정을 통해 3차원의 거리 감을 인지한다.
- 위와 동일한 메커니즘으로, 스테레오 비전은 스테레오 카메라(stereo camera)를 통해 입력되는 2차원의 좌/우 영상을 CPU, GPU, Hardware acceleration 등으로 구현된 스테레오 비전 시스템을 거쳐 좌/우 영상의 x축 위치 차이를 시차(disparity)를 계산함으로써 3차원 거리 정보를 획득하는 것을 의미한다.
Ⅱ. 스테레오 비전의 3차원 거리 정보 계산
3차원 거리 정보는 시차, 초점 거리(focal length), 베이스라인(baseline), 3가지 요소(factor)를 통해 획득 가능합니다.
- 시차(disparity): 위에서 언급했듯이, 좌/우 영상에서 동일하게 나타나는 물체에 대한 x축 위치 차이를 의미(아래 그림에서 'x' 를 의미)
- 초점 거리: 이미지 평면(ex. CCD, CMOS 센서)과 카메라 렌즈와의 거리. 렌즈 초점 거리는 렌즈에서 촬상면(디지털 센서)까지의 거리를 밀리미터 단위로 표시한 것.
- 베이스라인: 좌/우 카메라의 간격
렌즈와 초점 거리
아래 블로그를 참조하였습니다.
광축과 평행하게 들어오는 광선이 최종 굴절광선과 교차하는 지점으로부터 수직으로 내려 광축과 만나는 지점을 제2주점이라고 합니다. 이 제2주점부터 CCD(이미지센서)까지의 거리가 초점거리입니다.
초점거리가 짧은 광각렌즈는 넓은 화각을 가지며 초점거리가 긴 망원렌즈는 좁은 화각을 가집니다. 망원렌즈는 피사체를 확대시켜주는 특징이 있으며 경통이 길고 무겁습니다.
3차원 거리 정보
아래의 그림은 3차원 공간의 한 점(x, y, z)이 좌/우 카메라의 이미지 평면에 상에 맺힌 그림을 나타낸다. 이때 3차원 거리 정보의 수식은 아래의 순서로 도출할 수 있습니다.
3차원의 (x,y,z) 점은 좌/우 카메라의 렌즈의 중심을 거쳐 이미지 평면에 상이 맺히게 됩니다. (이때, y축은 좌/우 카메라가 동일함을 가정)
image plane
• 카메라 렌즈를 통해 들어온 빛이 초점 거리를 지나서 실제로 투영되는 평면을 의미합니다.
• 이 평면은 카메라의 이미지 센서(예: CCD나 CMOS 센서)가 위치한 곳으로, 3차원 공간의 물체가 2차원 이미지로 변환되는 위치입니다.
• 3D 세계의 물체가 카메라 렌즈를 통해 투영되어 카메라 내부의 이미지 센서에 맺히는 곳을 말합니다.
• 이 평면 위의 좌표는 해당 이미지에서의 물체의 위치를 나타내며, 이를 이용해 스테레오 비전 시스템에서 물체의 깊이나 거리를 계산할 수 있습니다.
Focal length (f)
• 카메라 렌즈의 중심과 이미지 센서 사이의 거리로입니다.렌즈가 빛을 모아 이미지를 형성하는 데 중요한 역할을 합니다.
• 초점 거리가 길수록 좁은 시야를, 짧을수록 넓은 시야를 제공합니다.
이미지 해석
- 좌측 및 우측 카메라 중심:
- 좌측 카메라는 빨간색 원으로, 우측 카메라는 파란색 원으로 표시되어 있습니다.
- 이 두 카메라는 일정한 거리만큼 떨어져 있으며, 이 거리를 기준선 (b)라고 합니다.
- 이미지 평면:
- 각 카메라는 3D 세계의 2D 투영을 캡처하는 이미지 평면을 가지고 있습니다.
- 좌측 이미지 평면은 좌측 카메라와 연결되어 있으며, 우측 이미지 평면은 우측 카메라와 연결되어 있습니다.
- 이 이미지 평면에서의 점은 좌측 이미지의 경우 (xl, yl), 우측 이미지의 경우 (xr, yr)로 나타냅니다.
- 물체의 위치:
- 물체는 3D 공간에서 좌표 (x, y, z)로 표시됩니다.
- 이 물체의 위치는 각 카메라에서 캡처된 이미지 평면의 대응점과 관련이 있습니다.
- 거리 계산:
- 두 카메라 사이의 기준선 거리와 이미지 평면에서 물체의 좌표를 사용하여 물체와의 거리를 계산할 수 있습니다.
- 특히, 물체와의 거리 z는 두 이미지 평면에서의 x 좌표 차이(즉, 디스패리티)에 의해 영향을 받습니다.
이때, 빨간색 파선과 파란색 파선 각각에 대해 거리에 대한 비례식을 세울 수 있습니다.
'z'는 실제 3차원의 거리를 의미하며, 이때 사용되는 요소는 베이스라인(b), 초점 거리(f), 시차(d)인 것을 알 수 있습니다.
이미지 해석
스테레오 비전 시스템에서 두 개의 카메라가 서로 다른 위치에서 동일한 물체를 촬영합니다. 이 두 이미지에서 같은 물체의 위치 차이를 디스패리티 (disparity)라고 합니다. 이 차이를 이용해 물체와의 거리를 계산할 수 있습니다.
- 좌표계: 두 카메라가 서로 평행하게 배치되어 있다고 가정합니다. 두 카메라 사이의 거리(기준선)는 b로 표시됩니다.
- 좌표 정의:
- 왼쪽 카메라 이미지 평면에서 물체의 x 좌표: xl
- 오른쪽 카메라 이미지 평면에서 물체의 x 좌표: xr
- 초점 거리: 두 카메라의 초점 거리를 f라고 합니다.
- 디스패리티: 디스패리티 d는 두 이미지 평면에서의 x 좌표 차이입니다. 즉, d=xl−xr입니다.
3차원 거리를 계산하기 위해서는 베이스라인 초점 거리, 시차를 필요로 하지만, 베이스라인과 초점거리는 물리적인 요소이기 때문에 고정적인 상수로 생각할 수 있다. 그렇기 때문에 **실제 3차원 거리의 정확성에 큰 영향을 미치는 것은 시차(d)라고 할 수 있습니다.
따라서 스테레오 비전에서는 정확도가 '시차가 얼마나 잘(똑바로) 계산되었는가?'를 의미하며 일반적으로 스테레오 비전에서 정확도를 측정할 때 미들버리(middleburry), 키티(KITTI) 벤치마크를 사용합니다.
'Python > [스테레오 비전]' 카테고리의 다른 글
#6. 실시간 영상 분석 (0) | 2024.08.06 |
---|---|
#5. 스테레오 카메라 알고리즘 제작 (2) | 2024.08.06 |
#4. 스테레오 카메라 원리 분석(4) : Census transform와 Rank transform (0) | 2024.08.06 |
#3. 스테레오 카메라 원리 분석(3) : SAD와 SSD (1) | 2024.08.06 |
#2. 스테레오 카메라 원리 분석(2) : 스테레오 정합 (0) | 2024.08.06 |