340 likes | 1.26k Views
스테레오 비전. 스테레오 비전이란 ?. 두 개의 렌즈를 통해서 얻은 왼쪽 및 오른쪽 영상을 이용해서 물체 또는 장면의 3 차원적인 거리 정보를 추론 하나의 물체를 서로 다른 위치에서 촬영한 두 영상을 비교하여 그 물체의 3 차원적인 위치 정보를 추론 3 차원 공간상의 한 점이 왼쪽 영상과 오른쪽 영상에 투영될 때 , 투영되는 위치에 차이가 생기는 현상을 이용하여 거리 정보를 추론. 스테레오 비전의 구현을 위한 입력 영상 제약 조건.
E N D
스테레오 비전이란? • 두 개의 렌즈를 통해서 얻은 왼쪽 및 오른쪽 영상을 이용해서 물체 또는 장면의 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이 된다.
마스크의 크기에 따른 효과 • 마스크의 크기가 크면 잡음에 강건한 매우 안정적인 값을 얻을 수 있지만, 의 골이 너무 펑퍼짐하게 된다 • 변위에 대한 정확한 예측이 어려움 • 마스크의 크기가 너무 작으면 잡음에 민감하게 되고 가 복수 개의 골을 가질 수 있으며 가장 큰 골과 다른 골들의 차이가 크지 않게 된다
마스크의 크기를 점진적으로 변화시키는 알고리즘 • 마스크의 초기 크기를 x 로 한다 (예: 9X9) • 에피폴라 라인 위의 후보 점들에서 를 계산한다 • 만약 가 하나의 골을 갖고 골의 크기가 임계값d1 이하면 그 점을 대응점으로 하고 종료한다 • 만약 Min(Dv(p)) > d2 이면 대응점이 없는 것으로 하고 종료한다
마스크의 크기를 점진적으로 변화시키는 알고리즘 • 마스크의 크기가 이면 종료한다 (예: = 19) • 마스크의 크기를 2 만큼 증가시키고, n=n+2, 가 d3 이하가 되는 후보 점들을 찾는다 • 단계 (2)로 되돌아간다
마스크의 크기를 변화시켜 거리 정보 추출하는 예제 영상
대응 순서의 일관성 제약 조건 • 일반적으로 대응점들의 대응 순서는 일관성이 있다 • 폐색이 발생하는 경우에는 가려진 점들이 투영되지 않고 가리는 점들이 투영되기 때문에 대응 순서의 일관성은 무너진다
동적 프로그램을 이용한 왼쪽과 오른쪽 수평선간의 정합
동적 프로그램을 이용한 왼쪽과 오른쪽 수평선간의 정합 와 를 정합시키기 위해 필요한 비용 또는 이 폐색에 의해 정합 쌍을 갖지 못하는데 드는 비용 = 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;
동적 프로그램을 이용하여 거리정보를 추출하는 예제 영상
최대-흐름/최소-컷 6 4 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 among within one -expansion of 3.2. If , set and success = 1 4. If success =1 goto 2 5. Return
최소-컷 찾기와 -확장 Ford와 Fulkerson의 그래프 최대-흐름을 구하는 알고리즘에 의해 최소-컷 확인