Chapter 15. Stereo Camera System

시차 영상(disparity image)= 깊이 영상(depth map) = Dense Map(SLAM에서??)

1. Disparity Map 이란?

  • Disparity는 Stereo 정합을 위한 두 이미지에서의 객체의 위치 상의 다른 차이
  • 이 차이를 parallax 하게 만드는 것을 Disparity Map

간단히 말해서 Pixel의 Disparity는 그 픽셀에 대한 최소 제곱 합들의 Shift value와 같다.

2. 스테레오 비전의 3차원 거리 정보 계산

2.1 간단버젼 (Calculating Disparity Map)

  1. 이미지들은 SSD/SAD 윈도우 연산에 용이하게 하기 위해 zero pixels의 frame으로 채워진다.
    • SSD : Sum of Squared Differences
    • SAD : Sum of Absolute Differences
  2. 먼저 차이의 제곱이나 절대적인 차이를 화소마다 계산하고, 모든 값을 window W에 더한다.
  3. 오른쪽 이미지의 각 shift value 값은 이미지 크기와 동일한 SSD / SAD map이다.
    • Disparity Map은 3차원 공간에서부터 줄어든 2차원 Map이다.
    • Pixel의 차이는 픽셀의 SSD/SAD 최소 시프트 값과 동일하다.

2.2 기본 원리

3차원 거리 정보는 시차, 초점 거리(focal length), 베이스라인(baseline), 3가지 요소(factor)를 통해 획득 가능

  • 시차(d:disparity): 위에서 언급했듯이, 좌/우 영상에서 동일하게 나타나는 물체에 대한 x축 위치 차이를 의미(아래 그림에서 'x' 를 의미)
  • 초점 거리(f): 이미지 평면(ex. CCD, CMOS 센서)와 카메라 렌즈와의 거리
  • 베이스라인(b): 좌/우 카메라의 간격

f,b는 물리적 요소로 고정 상수, 실제 필요 한건 d (Stereo matching과정을 통해 도출)


http://docs.opencv.org/trunk/dd/d53/tutorial_py_depthmap.html

Disparity와 3D depth의 관계

Under fronto-parrallel assumption, the relation between disparity and 3D depth is:

$$ d = f \times \frac{T}{Z}

$$,

  • d is the disparity
  • f is the focal length
  • T is the baseline
  • Z is the 3D depth.

If you treat the image center as the principal point, the 3D coordinate system is settled.

Then for a pixel (px,py), its 3D coordinate (X, Y, Z) is:

$$ X = (px-cx)*Z/f$$

$$ Y = (py-cy)*Z/f$$

$$ Z = f*T/d$$

  • cx, cy are the pixel coordinate of image center.

https://stackoverflow.com/questions/11406849/using-opencv-to-generate-3d-points-assuming-frontal-parallel-configuration


sample code

python

import numpy as np
import cv2
from matplotlib import pyplot as plt

imgL = cv2.imread('tsukuba_l.png',0)
imgR = cv2.imread('tsukuba_r.png',0)

stereo = cv2.StereoBM_create(numDisparities=16, blockSize=15)
disparity = stereo.compute(imgL,imgR)
plt.imshow(disparity,'gray')
plt.show()

c++

https://eehoeskrap.tistory.com/103

ROS


[참고자료]

results matching ""

    No results matching ""