Transcript Document

스테레오 비전
스테레오 비전이란?
• 두 개의 렌즈를 통해서 얻은 왼쪽 및 오른쪽 영상을 이용
해서 물체 또는 장면의 3차원적인 거리 정보를 추론
• 하나의 물체를 서로 다른 위치에서 촬영한 두 영상을 비
교하여 그 물체의 3차원적인 위치 정보를 추론
• 3차원 공간상의 한 점이 왼쪽 영상과 오른쪽 영상에 투
영될 때, 투영되는 위치에 차이가 생기는 현상을 이용하
여 거리 정보를 추론
스테레오 비전의 구현을 위한 입력 영상 제약 조건
• 영상은 구별되는 특징들이 나타날 수 있도록 충분히 밝
기 값을 변화를 보여야 한다
• 두 렌즈간의 거리가 적당히 떨어져 있어야 한다
• 물체가 겹쳐 놓인 경우 폐색되는 부분에서는 거리 정보
의 추론이 불가능하다
에피폴라 제약 조건
• 에피폴라 라인 - 에피폴라 평면이 영상 평면과 교차하여 만드
는 라인
• 베이스 라인 - 두 렌즈의 중심을 연결하는 선
• 왼쪽 영상의 한 점에 대응되는 오른쪽 영상의 점은 반드시 에
피롤라 라인에 위치한다
두 렌즈의 광축이 평행한 경우
• 에피폴라 라인은 수평선이 된다
– 두 렌즈의 중심이
,
인 선상에 놓여 있고,
왼쪽 및 오른쪽 영상평면이
인 평면이라 하자
– 두 렌즈의 중심을 지나는 임의의 평면의 방정식은
이 된다.
–
,
인 선상에 놓인 모든 점들이 이 방정식을
만족하여야 하므로
이 된다. 즉 두 렌즈의 중
심을 지나는 평면의 방정식은
이 된다.
– 이 방정식이 영상 평면과 교차하는 선을 구하기 위해
을 대입하면 ,
, 즉 에피폴라 라인은
수평선이 된다
두 렌즈의 광축이 평행하지 않은 경우
• 영상 교정 작업을 거쳐 두 광축이 평행하도록 조정한다
– 영상 평면의 X 축을 베이스 라인과 평행하도록 회전하고, Y 축은
회전된 X 축과 광축에 수직이 되도록 회전하고, Z 축은 회전된 X
축과 Y 축에 수직이 되도록 회전시킨다
대응점을 이용한 거리 정보 계산
거리 정보 Z는 변위에 반비례하고
베이스 라인의 크기에 비례한다
대응점을 이용한 거리 정보 계산 예제
• 두 카메라의 위치는 (-10, 0, 0)과 (0, 0, 0)이고 영상 평면은 Z=1이다.
• (0, 0, 100) 지점에 40x40 정사각형의 좌하단 코너가 놓여있다.
• 배경은 Z=200인 평면이고 이 평면에는 세로 줄무늬가 그려져 있다. 한 세로
줄의 왼쪽 및 오른쪽 X 좌표는 X=-5와 X=5이다.
• 왼쪽 영상에는 사각형 물체의 코너 점들이 (0.1,0), (0.5,0), (0.1,4), (0.5,4)에
투영되고, 오른쪽 영상에는 (0,0), (0.4,0), (0,4), (0.4,4)에 투영된다. 베이스 라
인이 10이고 변위가 0.1이므로 거리는 10/0.1=100이 된다.
• 배경의 줄무늬는 왼쪽 영상에는 x=0.025와 x=0.075에 투영되고, 오른쪽 영
상에는 x=-0.025와 x=0.025에 투영된다. 왼쪽 영상에서는 사각형의 왼쪽에
줄무늬가 놓이고, 오른쪽 영상에서는 사각형과 일부 겹쳐지게 된다. 줄무늬
의 경우 변위가 0.05이므로 거리는 10/0.05=200이 된다.
마스크 안의 밝기값을 비교하여 대응점 찾기
마스크의 크기에 따른 효과
• 마스크의 크기가 크면 잡음에 강건한 매우 안정적인 값
을 얻을 수 있지만,
의 골이 너무 펑퍼짐하게 된다
– 변위에 대한 정확한 예측이 어려움
• 마스크의 크기가 너무 작으면 잡음에 민감하게 되고
가 복수 개의 골을 가질 수 있으며 가장 큰 골과 다른 골
들의 차이가 크지 않게 된다
마스크의 크기를 점진적으로 변화시키는 알고리즘
1. 마스크의 초기 크기를
x
로 한다 (예: 9X9)
2. 에피폴라 라인 위의 후보 점들에서
3.
를 계산한다
만약
가 하나의 골을 갖고 골의 크기가 임계값 d1
이하면 그 점을 대응점으로 하고 종료한다
4. 만약 Min(Dv(p)) > d2 이면 대응점이 없는 것으로 하고
종료한다
마스크의 크기를 점진적으로 변화시키는 알고리즘
5. 마스크의 크기가
이면 종료한다 (예:
6. 마스크의 크기를 2 만큼 증가시키고, n=n+2,
d3 이하가 되는 후보 점들을 찾는다
7. 단계 (2)로 되돌아간다
= 19)
가
마스크의 크기를 변화시켜 거리 정보 추출하는 예제 영상
대응 순서의 일관성 제약 조건
• 일반적으로 대응점들의 대응 순서는 일관성이 있다
• 폐색이 발생하는 경우에는 가려진 점들이 투영되지 않고
가리는 점들이 투영되기 때문에 대응 순서의 일관성은
무너진다
동적 프로그램을 이용한 왼쪽과 오른쪽 수평선간의 정합
동적 프로그램을 이용한 왼쪽과 오른쪽 수평선간의 정합
와
또는
를 정합시키기 위해 필요한 비용
이 폐색에 의해 정합 쌍을 갖지 못하는데
드는 비용 = Occ
대응 순서의 일관성의 유지된다는 전제하에서는
의 대응점이
이면
의 대응점은
동적 프로그램을 이용한 왼쪽과 오른쪽 수평선간의 정합
• 대응점을 찾는 문제는 2차원 매트릭스에서 최적 경로를
찾는 문제
동적 프로그램을 이용한 왼쪽과 오른쪽 수평선간의 정합
• 동적 프로그래밍에서는 매트릭스의 시작점 (0,0)에서 부터
(i,j)까지의 최소 경로 비용을 F(i,j)라 하고, (N,N)까지의 최
소 비용 경로 F(N,N)을 다음과 같은 방법으로 찾는다
(1) F(0,0) = 0
(2) F(i,j) = Min (F(i-1,j-1)+, F(i-1,j)+Occ, F(i,j-1)+Occ)
동적 프로그램을 이용한 왼쪽과 오른쪽 수평선간의 정합
(1) for i=0 to N
F(i,0) =
F(0,i) =
(2) for i=0 to N
for j=0 to N
min1 = F(i-1,j-1) +
min2 = F(i-1,j) + Occ
min3 = F(i,j-1) + Occ
F(i,j) = MIn(min1, min2, min3)
if (F(i,j) = min1), M(i,j) = 1 //
if (F(i,j) = min2), M(i,j) = 2 //
if (F(i,j) = min3), M(i,j) = 3 //
가 서로 대응
의 대응점이 없음
의 대응점이 없음
와
동적 프로그램을 이용한 왼쪽과 오른쪽 수평선간의 정합
(1) p = N, q = N
(2) while (p != 0 AND q !- 0)
switch(M(p,q))
case 1:
p matches q; p--; q--; break;
case 2:
p is unmatched; p--; break;
case 3:
q is unmatched; q--; break;
동적 프로그램을 이용하여 거리정보를 추출하는 예제 영상
최대-흐름/최소-컷
4
6
2
최대-흐름 = 2
최소-컷 = 용량이 2인 파이프
최소-컷
컷 = 소스와 싱크를 분리하는 아크들의 집합
컷 값 = 컷에 포함된 에지 용량들의 합
최소-컷 = 컷 값이 최소가 되는 컷
최소-컷을 찾는 방법
• 소스 노드에서 싱크 노드로 최대-흐름을
유발하는 아크들을 찾고 이들 아크 중에서
컷을 만드는 아크들만을 선택하는 전략
– Ford와 Fulkerson 알고리즘
• 최소-컷 = 최대-흐름
그래프 컷 이론을 이용한 변위 계산
• 에너지 함수를 정의하고 이 에너지 함수가
최소값을 갖도록 변위 할당을 유도
• 에너지 함수가 최소값을 갖도록 변위 할당
을 조정하는 과정에 그래프-컷 이론 사용
변위 할당을 위한 에너지 함수
인접한 화소는 같은 변위를 가질 가능성이 높다
변위 만큼 이동한 위치에서 밝기값의
차이가 적으면 좋은 변위 할당
-확장 예제
-확장 예제
화소 p와 q의 레이블을 새로운
레이블
로 변경할 것인가?
-확장 알고리즘을 이용한 레이블링
1. (Initialize) Start with an arbitrary labeling
2. Set success = 0
3. For each label
3.1. Find
one
-expansion of
3.2. If
, set
4. If success =1 goto 2
5. Return
among
within
and success = 1
-확장을 위한 그래프 생성
-확장을 위한 그래프 생성
-확장을 위한 그래프 생성
최소-컷 찾기와
-확장
Ford와 Fulkerson의 그래프 최대-흐름을
구하는 알고리즘에 의해 최소-컷 확인
그래프 컷을 이용한 거리 정보 추출 예제