본문 바로가기
영상처리/Computer vision

Stereo matching(추가)

by 꿀벌이목표 2022. 10. 3.
반응형

Ⅰ. 스테레오 정합

- 스테레오 정합은 기준 영상(reference image)에서의 한 점에 대한 동일한 점(= 똑같은 점)을 목표 영상(target image)에서 찾는 과정이라고 말할 수 있습니다.
    +  쉽게 풀어쓴다면, 최종 목표는 앞서서 스테레오 비전을 설명할 때 나온 '시차(disparity)'를 계산하는 과정이라고 이해하면 됩니다.
    + '기준 영상은 뭐고? 목표 영상은 뭐냐?' 기준 영상은 좌측 영상이 될 수도 있고, 우측 영상이 될 수도 있습니다.
        > 목표 영상은 기준 영상의 반대 영상입니다. 아래 그림을 통해 기준 영상을 이해하시면 됩니다.
    + 먼저 좌측 영상을 기준 영상으로, 좌/우 영상에서 동일하게 나타나는 한 점을 생각해본다면, 아래 그림처럼 좌측 영상에서의 한 점을 기준으로 우측 영상의 동일한 점은 좌측 영상에서의 점보다 좌측에 위치합니다.
    + 우측 영상을 기준 영상으로 생각하다면 좌측 영상에서의 동일한 점은 우측 영상에서의 점보다 우측에 위치합니다.
    + 이때의 x축의 위치 차이를 시차(disparity)라고 말하며, 우리가 최종적으로 찾아야하는 정보입니다.
    (앞장에서 설명한 것을 보다 시각적으로 이해가능할 것 같네요).
    + 계산된 시차 값들을 이미로 표현하면 아래 그림 처럼 흑백영상으로 표현가능한데, 이것을 시차 영상(disparity image)혹은 깊이 영상(depth map)이라고 말합니다.
(※ "https://honeybee0103.tistory.com/17" 에서 이야기 잠깐 했었죠?)

- 만약 '좌측 영상을 기준 영상으로 설정 하였을 때와 우측 영상을 기준 영상으로 설정하였을 때의 깊이 영상은 다를까?' , 답은 시차가 계산되어 나오는 영역만 다를 뿐 시차 값은 동일하다 입니다.
- 깊이 영상은 흑백 영상으로 표현되는데, 흑백 영상에도 어두움과 밝음이 존재하는 것을 아래의 그림에서도 육안으로 확인 가능합니다.
    + 어두움과 밝은의 차이는 실제 3차원적인 거리가 멀고 가까움을 의미하고 있으며, 시차의 값이 클수록 가까우며(밝으며), 시차의 값이 작을수록 멀다(어둡다).
※ 이것을 원론적으로 이해하기 위해서는 에피폴라 기하학(epipolar geometry)를 이해해야만 하며, 급하다고 하면 그냥 이렇다는 것을 알고 넘어가세요! 
※ epipolar geometry는 일전에 다루었으니 참고하세요!  ( https://honeybee0103.tistory.com/15 ) 

 

 
stereo matching
 

Ⅱ. 스테레오 정합 방법

ⅰ. 전역 정합(global matching) 방법

- 에너지 함수(energy function)을 기반으로 깊이 영상을 추출 ( 에너지 함수를 최소화하는(=영상이 가장 매끄러운, stereo vision의 제약 조건 중 하나인 smoothness를 충족하는) 경우를 찾음으로써 최적의 깊이 영상을 만들어 냄
- 영상의 일정 부분이 아니라 영상의 전체적인 정보를 사용하고 알고리즘이 복잡하다는 단점이 존재하지만, 매우 정확한 깊이 영상을 추출 가능함
- 종류: Belief propagation, dynamic programming, semi-global matching, graph-cut 등
- 일반적으로 Semi-global matching이 주로 사용됨


ⅱ.  지역 정합(local matching) 방법

- 특징 기반(feature-based) 정합 방법영역 기반(area-based) 정합 방법으로 나뉨
- 특징 기반 정합: 특징점을 기반으로 정합점(matching point)를 찾음, 최근에는 사용하지 않음(그래서 지역 정합 방법에 대한 글은 주어를 쓰지 않아도 영역 기반 방법을 명명하는 것으로 생각하세요.)
- 영역 기반 정합: 일정 영역(=윈도우, window)의 픽셀 정보들을 이용하여 정합점을 찾음
- 일정 크기의 윈도우 내 픽셀 정보들만을 사용하여 정합점을 찾기 때문에 전역 정합 방법에 비해 상대적으로 부정확한 깊이 영상을 출력하지만, 전역 정합 방법에 비해 알고리즘이 단순하고 빠르게 계산가능
- 전역 정합 방법의 초기 정합 비용(initial matching cost, 아래의 그림에서는 'matching cost cube'를 의미)을 계산하는데 사용 (★위의 말은 지역 정합 방법을 통해 정합 비용의 계산 과정을 거친 후, 추가적인 전역 정합 방법들 마다 다른 개념들을 적용하여 에너지 함수를 최소화한다는 것을 말함★)
- 종류: SAD(Sum of absolute difference), SSD(Sum of squared difference), NCC(normalized cross correlation), Census transform, Rank transform 등

 

global matching vs local mathing
 

Ⅲ. 지역 정합 방법 통한 시차 계산 방법

- 지역 정합 방법은 위에서 말했듯이, 윈도우(window)를 기반으로 시차 탐색 범위(disparity search range)내의 픽셀들에 대해 정합 비용(matching cost)를 계산한 후, 시차를 계산합니다. 
※ 정합 비용(matching cost): 윈도우들간의 비유사도(similarity)의 값
※ 시차 탐색 범위(disparity search range): 시차 값의 최대 범위( or 정합점을 찾는 최대 범위
※ 윈도우: 커널(kernel)이라고 생각

- 시차를 계산하는 과정은 아래와 같습니다.
    + 기준 영상(아래 그림에서는 left image)의 한점과 목표 영상(아래 그림에서는 right image)의 시차 탐색 범위 내 모든 픽셀에 윈도우를 설정
    + 이때 좌측에 설정된 윈도우와 우측에 시차 탐색 범위만큼 설정된 윈도우들간의 정합 비용(비유사도)를 추정( 비유사도를 측정하는 방법은 SAD, SSD, NCC, Census transform, Rank 무엇을 사용하느냐에 따라 다름)
    + 계산된 정합 비용들은 아래의 그림에서 그래프 처럼 나타낼 수 있음 ( x축은 시차 탐색 범위 내 시차 값들, y축은 정합 비용 )
    + 그 중에서 가장 작은 정합 비용을 가지는 시차를 선택함( 가장 작은 정합 비용을 선택하는 방법을 'winner-takes-all' 이라함)아래의 그림에서는 'a' 라는 시차를 출력함 ( (x, y)와 (x-a,y)의 x축 차이가 'a'  라는 것 보이시죠? 이전 쳅터에서 말씀 드린 'x축 위치'차이라는 말이 이말입니다.) 

local matcing을 이용한 disparity 계산 방법


참고 문헌
논문 - A Taxonomy and Evaluation of Dense Two-Frame Stereo Correspondence Algorithms (★ 이 논문은 매우 저명함)
논문 - Review of stereo vision algorithms from software to hardware
칼럼 - 2015년 1월 IDEC Newsletter
※ 여기에서 사용된 영상은 middleburry 데이터 셋중에서도 'teddy'영상을 사용

 

반응형

'영상처리 > Computer vision' 카테고리의 다른 글

Stereo matching - local matching(2)  (0) 2022.10.03
Stereo matching - local matching  (0) 2022.10.03
Stereo Matching  (0) 2022.10.03
Depth & Disparity  (2) 2022.10.03
Essential matrix & Fundamental matrix  (0) 2022.10.02

댓글