KR100795974B1 - 스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치 - Google Patents

스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치 Download PDF

Info

Publication number
KR100795974B1
KR100795974B1 KR1020060040192A KR20060040192A KR100795974B1 KR 100795974 B1 KR100795974 B1 KR 100795974B1 KR 1020060040192 A KR1020060040192 A KR 1020060040192A KR 20060040192 A KR20060040192 A KR 20060040192A KR 100795974 B1 KR100795974 B1 KR 100795974B1
Authority
KR
South Korea
Prior art keywords
block
difference
disparity
depth
map
Prior art date
Application number
KR1020060040192A
Other languages
English (en)
Other versions
KR20070107543A (ko
Inventor
조성제
정문호
유범재
Original Assignee
한국과학기술연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술연구원 filed Critical 한국과학기술연구원
Priority to KR1020060040192A priority Critical patent/KR100795974B1/ko
Publication of KR20070107543A publication Critical patent/KR20070107543A/ko
Application granted granted Critical
Publication of KR100795974B1 publication Critical patent/KR100795974B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20228Disparity calculation for image-based rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 양안시를 사용해 획득되어진 스테레오 영상을 처리하여 깊이-지도를 생성하는 장치에 관한 것으로서, 스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치에 있어서, 스트리밍되는 영상의 픽셀값을 비교하기 위해 상기 픽셀값이 파이프라이닝 처리되도록 하는 시프트 레지스터 블록과; 매칭 윈도우 단위의 차이(Difference) 연산 알고리즘을 수행하는 차이 연산 유닛들로 이루어진 차이 연산 블록으로서, 상기 차이 연산 유닛들의 수는 병렬 처리를 가능하게 하기 위해 디스페리티 범위의 수와 동일하거나 그 이상인 차이 연산 블록과; 상기 차이 연산 유닛들에서 제공되는 차이 결과값을 버퍼링하고 비교하여 디스페리티 (Disparity)를 계산하는 디스페리티 연산 블록과; 상기 각 블록의 동작을 제어하는 제어 블록을 포함하여 구성된다.

Description

스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치{APPARATUS FOR REALTIME-GENERATING A DEPTH-MAP BY PROCESSING STREAMING STEREO IMAGES}
도 1a 내지 도 1d는 양안시를 이용한 깊이-지도 획득 개념도.
도 2는 양안시에서 얻어지는 스트리밍 스테레오 영상 도시도.
도 3은 윈도우 기반 디스페리티 비교대상 그룹의 출력 도시도.
도 4는 본 발명에 따른 깊이-지도 생성 장치 구성도.
도 5는 본 발명에 따른 윈도우 기반 차이 정보 연산 유닛의 세부 구성도.
본 발명은 영상기기 기술에 관한 것으로, 특히 양안시를 사용해 획득되어진 스테레오 영상을 처리하여 깊이-지도를 생성하는 장치에 관한 것이다.
양안시를 사용해 획득되어진 스테레오 영상을 처리하여 깊이-지도를 생성하는 것은 컴퓨터 비전 분야에서 외부 세계에 대한 3차원 정보를 수집하기 위해 널리 사용하는 방법이다. 일반적으로 퍼스널 컴퓨터(Personal Computer: PC) 상에서 소프트웨어로 구현하며, 정지영상을 기반으로 그 처리 기법을 연구하는 것이 대부분이다. 깊이-지도를 이동로봇과 같은 실제 응용에 적용하기 위해서는 초당 30프레임 이상으로 실시간 생성하는 것이 필수적이다.
따라서, 소프트웨어적인 연산 기법을 사용해 깊이-지도를 실시간으로 생성해 내려는 연구가 최근 이루어지고 있으나, 영상데이터와 그 연산의 방대함으로 인해 최대 초당 15프레임 정도의 처리만 가능한 상황이다. 또한 상용 그래픽 프로세서를 이용하여 깊이-지도를 생성하는 방법도 근접 실시간(near-realtime) 수준인 초당 20프레임 정도에 머물고 있는 실정이다.
기존의 이러한 방법들은 별도의 PC나 상용 그래픽 프로세서가 있어야 하므로 시스템의 크기나 비용 면에서도 문제점을 가지고 있으며, 초당 프레임수가 낮아서 실시간 응용에는 부적합하다.
본 발명은 상술한 문제를 해결하기 위해 안출한 것으로, 기존의 소프트웨어적인 연산이나, 상용 그래픽 프로세서를 사용하지 않고, 실시간 응용에 적용할 수 있을 정도로 깊이 지도를 고속으로 생성할 수 있는 장치를 제공하는 것을 목적으로 한다.
본 발명의 다른 목적은, 목표한 하드웨어의(FPGA, ASIC 등) 특성이나 용량에 따라서 본 깊이-지도 생성 장치 내의 깊이-지도 생성 변수들을 조정할 수 있게 함으로써, 스테레오 비전 프로세서나 로봇비전 프로세서의 설계에 용이하게 임베디드(embeded) 될 수 있는 범용적인 구조를 가진 깊이-지도 생성 장치를 제공하는데 그 목적이 있다.
이를 위해 본 발명의 깊이-지도 생성 장치는, 스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치에 있어서, 스트리밍되는 영상의 픽셀값을 비교하기 위해 상기 픽셀값이 파이프라이닝 처리되도록 하는 시프트 레지스터 블록과; 매칭 윈도우 단위의 차이(Difference) 연산 알고리즘을 수행하는 차이 연산 유닛들로 이루어진 차이 연산 블록으로서, 상기 차이 연산 유닛들의 수는 병렬 처리를 가능하게 하기 위해 디스페리티 범위의 수와 동일하거나 그 이상인 차이 연산 블록과; 상기 차이 연산 유닛들에서 제공되는 차이 결과값을 버퍼링하고 비교하여 디스페리티 (Disparity)를 계산하는 디스페리티 연산 블록과; 상기 각 블록의 동작을 제어하는 제어 블록을 포함하는 것을 특징으로 한다.
또한, 본 발명의 깊이-지도 생성 장치는, 입력 영상의 크기, 매칭 윈도우의 크기, 디스페리티 범위, 또는 이들의 조합에 따라 스트리밍 스테레오 영상 처리의 변형 및 확장이 가능한 것을 특징으로 한다.
또한, 본 발명의 깊이-지도 생성 장치는, 별도의 클록(Clock)없이 입력 영상의 픽셀 클록(Pixel clock)을 사용하여 동작되고, 상기 픽셀 클록마다 하나의 깊이-지도 영상 픽셀을 생성하는 것을 특징으로 한다.
본 발명의 실시예에서, 상기 차이 연산 블록은, 각 픽셀간의 차이를 비교하는 ABSDIFF 블록과; 라인단위 마스크 연산을 위해 누적 연산하는 ADD_A, REG_A 블록과; 매칭 윈도우의 너비 만큼의 데이터를 버퍼링하는 FIFO_A 블록과; 라인 단위의 차이 연산 결과가 연속적으로 출력되도록 SUB_A의 연산 결과를 REG_A로 귀환 입력(Feedback)시켜 소정 형태의 데이터를 출력하는 SUB_A 블록과; 라인 단위의 차이 연산 결과를 누적 연산하는 ADD_B, FIFO_B 블록과; 매칭 윈도우의 폭 만큼의 데이터를 버퍼링하는 FIFO_C 블록과; 윈도우 단위의 차이 연산 결과가 연속적으로 출력되도록 SUB_B의 연산결과를 FIFO_B로 귀환 입력시켜 소정 형태의 데이터를 출력하는 SUB_B 블록을 포함하여 구성되는 것을 특징으로 한다.
본 발명의 실시예에서, 상기 디스페리티 연산 블록은, 각 유닛의 연산결과값을 순차적으로 비교하기 위해 계단형으로 구성된 CMP 블록들의 그룹과; 비교기에서 순차적으로 출력되는 디스페리티 정보의 시차를 정합하는 SR_C 블록들의 그룹과; 상기 SR_C 블록에서 출력되는 디스페리티 비교 정보를 영상으로 변환시키기 위한 DISPARITY_ENCODER 블록을 포함하여 구성되는 것을 특징으로 한다.
본 발명의 실시예에서, 상기 DISPARITY_ENCODER 블록은, 용량이 가장 큰 유닛 1의 SR_C를 최상위 비트로 하여 만든 튜플(tuple)에서, 유효한 최상위 비트의 위치가 순차적으로 감소하고 유효한 최상위 비트가 1이며 그 위치 이하의 비트는 모두 0인 것을 입력으로 할 때, 최상위 비트의 위치에 따라 그 값을 순차적으로 출력하는 방식을 가지는 인코더를 특징으로 한다. 실제 예는 표 5를 참조로 한다.
이하, 본 발명의 실시예들을 수식과 첨부된 도면을 이용하여 구체적으로 설명한다.
먼저, 양안시(Stereo Vision)를 사용하여 깊이-지도를 생성하는 일반적인 이론을 설명한다.
도 1A 내지 도 1D는 양안시를 이용한 깊이-지도 획득 개념도이다. 이에 도시된 바와 같이, 2개의 카메라를 이용하여 피사체를 촬영하면, 각 카메라에서 촬영된 영상(Left Image와 Right Image)은 2개의 카메라 위치의 디스페리티(disparity)에 따라 상이하게 된다. 이와 같이 상이한 2개의 영상을 하나의 영상으로 표현하기 위해 상기 디스페리티에 상응하는 깊이-지도를 생성한다.
이와 같은 깊이-지도는 다음의 수식 (1)에 근거하여 수평선 상에 놓인 두개의 카메라로부터 얻어진 스테레오 영상 사이의 디스페리티(disparity)에 대응하여 생성된다.
Figure 112007066847787-pat00018
(1)
식(1)에서, SAD 는 Sum of Absolute Difference 의 약자이며, 각 기호의 의미는 다음과 같다.
x: 카메라 센서로부터 얻어진 이미지에서 가로 방향의 좌표.
y: 카메라 센서로부터 얻어진 이미지에서 세로 방향의 좌표.
예를 들어 640*480의 이미지인 경우,x의 범위는 0~639 가 되고, y의 범위는 0~479 가 된다.
d: 디스페리티 범위(Disparity Range). 도 1B에서 나타내었듯이 매칭 윈도우(Matching Window)가 횡축으로 움직이는 범위를 말한다. 예를 들어 d가 64라면 매칭 윈도우가 움직일 수 있는 범위는 64 픽셀(pixel) 만큼이다.
n: 매칭 윈도우(Matching Window)의 한 변의 길이. 예를 들어 n이 11이라면 11*11 pixels 크기를 가지는 매칭 윈도우를 의미한다.
i: 매칭 윈도우 내에서의 가로 방향의 픽셀 위치.
j: 매칭 윈도우 내에서의 가로 방향의 픽셀 위치. 예를 들어 n이 11 인 경우, i와 j는 0~10의 범위를 갖는다.
Ileft : 양안시 카메라에서 왼쪽 이미지.
Iright : 양안시 카메라에서 오른쪽 이미지. 예를 들어, Iright (120, 110) 이라 하면 오른쪽 이미지에서 좌측 최상단을 원점으로 하여 우측 가로방향으로 120 픽셀만큼 이동, 아래 세로방향으로 110 픽셀만큼 이동한 위치에 있는 픽셀 값을 의미한다. 일반적으로 픽셀 값은 그 픽셀의 밝기 값을 사용한다.
수식(1)의 의미는 도 1에서 도시한 바와 같이, 양안시 카메라에서 얻어진 두 개의 이미지에서 나타나는 물체의 위치차이를 가로방향의 윈도우 기반 차이를 이용해 구하고, 차이를 비교하는 영역은 d 만큼이며 이러한 비교작업을 이미지 전체 영역에 대해서 수행하는 것을 의미한다. 이렇게 하여 구해진 각 픽셀 위치에서의 SAD 값은 이미지에서 나타나는 물체들이 카메라를 기준으로 한 상대적인 위치를 알려주는 지표로 활용된다. 즉, 디스페리티 범위 d 내에서 SAD값이 가장 작은 위치의 값이 물체의 거리를 나타내는 depth 값이 되며, 이미지 전체에 대해서 이 값을 구하면 깊이-지도(Depth Map) 이 완성된다.
윈도우 기반 차이와 매칭 윈도우에 대한 부연설명을 하면 다음과 같다. 양안시 카메라에서 오른쪽에서 얻어지는 이미지와 왼쪽에서 얻어지는 이미지는 시차(view point) 때문에 이미지에서 나타나는 물체의 위치가 차이가 나게 된다. 이러한 차이를 특정한 크기의 윈도우를 사용해 오른쪽 이미지와 왼쪽이미지의 차이를 구하게 된다. 여기서, 차이를 구하기 위해 사용하는 특정한 크기의 윈도우를 '매칭 윈도우(Matching Window)'라 하며, 매칭 윈도우를 사용해 구한 왼쪽과 오른쪽의 이미지 차이를 '윈도우 기반 차이' 라 한다.
또한, 일반적으로 차이(Difference)라 함은 두 픽셀의 밝기 값 간에 절대값 차이(Absolute Difference)를 말하며, 오른쪽과 왼쪽 이미지에서 윈도우 내의 모든 픽셀들의 절대 값 차이를 더하여(SAD: Sum of Absolute Difference) 이미지 간의 유사성을 판단하고 물체 위치의 차이를 추정한다.
전술한 일반적인 깊이-지도 생성 방법은 보통 PC 상에서 정지영상을 대상으로 소프트웨어적으로 구현되나, 본 발명에서는 스트리밍 영상을 기준으로 고속의 처리를 위해 하드웨어적으로 구현하려 하며, 따라서 구현을 위한 접근 방법론이 소프트웨어의 그것과는 매우 상이하다. 즉, 깊이-지도 생성을 위한 연산 형태를 분석하여 구조를 산출하고, 이를 반영하여 하드웨어 아키텍처를 구성한다. 단, 후술하는 예시는 표기하는 데이터의 방대함 때문에 매칭 윈도우(Matching Window)는 3by3, 디스페리티 범위(Disparity Range)는 8인 것으로 축소하여 설명한다.
도 2는 양안시에서 얻어진 스트리밍 스테레오 영상을 도시한 것이다. 도 2를 참조하면, 2개의 카메라에서 얻어진 영상을 왼쪽 영상 픽셀 스트림(Left Image pixel stream)과 오른쪽 영상 픽셀 스트림(Right Image pixel stream)이 도시되어 있다.
도 2에서 L00 은 왼쪽 카메라에서 출력되는 첫 번째 픽셀값, 즉 한 프레임을 구성하는 첫 번째 픽셀 값이며, L01은 두 번째 픽셀 값이다. 이후의 L# 도 스트리밍 되는 픽셀의 순서에 따른 값이며, 마찬가지로 R# 로 표기되는 기호도 오른쪽 카메라에서 순서대로 출력되는 픽셀 값이다.
카메라에서 출력되는 픽셀 데이터는 이미지를 가로방향으로 구성 하는, 즉 라인 방향으로 입력된다. 따라서, 매칭 윈도우의 가로 크기만큼의 픽셀을 모아 튜플(tuple)을 만들고 그 튜플을 기준으로 연산하는 것이 우선적으로 필요하다. 수식2에서 Rm 과 Lm 은 각각 오른쪽 영상의 튜플, 왼쪽 영상의 튜플을 나타낸다. Rm 뒤에 붙는 숫자는 튜플을 구성하는 첫 번째 픽셀의 번호를 나타낸다.
이와 같이 도 2와 같은 개념으로 스트리밍 되는 스테레오 영상은 다음의 수식(2)와 같은 표현식으로 나타낼 수 있다.
Rm(r) = { R(r), R(r+1), R(r+2) }
Lm(s) = { L(s), L(s+1), L(s+2) } (2)
단, 0≤r, s<W-n 이며, 여기서, W 는 이미지의 폭(width) 이며, n 은 매칭 윈도우의 폭이다. 원소의 개수는 매칭 윈도우의 폭(width)와 같으며, 전술한 가정에 의해 매칭 윈도우의 폭은 3이므로, 각 튜플을 구성하는 원소의 개수는 3개이다.
예를 들어, Rm00 은 {R00, R01, R02}를 의미하고, Lm00 = {L00, L01, L02}, 그리고 Lm01 = {L01, L02, L03} 이 된다. 전술한 디스페리티 비교 방법에 따르면, Rm00 은 Lm00~Lm07 과 각각 비교연산을 수행하게 된다. 단, 여기서 얻어진 비교 결과는 라인 기준의 결과이며 최종적으로는 이 라인단위의 결과를 다시 이미지의 세로방향으로 각각 더해 윈도우 단위의 연산을 구해야 함을 주지한다.
이상에서 설명한 라인 기준 연산 형태는 다음의 표 1과 같은 분석표로 나타낼 수 있다.
Figure 112006067333068-pat00002

[라인 기준 연산형태 분석표]
그러면, 라인기준의 차이연산 결과는 표1에서 타원형으로 표시된 부분이며, 각 기준 픽셀별 차이연산 결과값 비교대상 그룹들은 사선방향임을 알 수 있다.
다음으로, 라인 기준 연산 결과 S를 수식(3)과 같이 정의하고, 차이(difference)를 구하는 방식을 SAD(Sum of Absolute Difference)라 가정한다.
SLineRightHorizoantalMaskSAD_LeftHorizontalMaskSADㆍ (3)
이렇게 정의하면, S0 0_0 은 다음과 같이 표현될 수 있다.
S0 0_0 = SAD(Rm00, Lm00)
= |R00-L00|+|R01-L01|+|R02-L02| (단, 각 픽셀은 첫라인의 픽셀임)
이 식의 의미는, 오른쪽 및 왼쪽 이미지의 첫 번째 라인, 첫 번째 픽셀에서 부터 매칭 윈도우의 폭 만큼의 절대 값 차를 비교한 결과를 말한다. 마찬가지로 몇 개의 예를 더 들면 다음과 같다.
S0 0_1 = SAD(Rm00, Lm01)
= |R00-L01|+|R01-L02|+|R02-L03| (단, 각 픽셀은 첫 번째 라인의 픽셀임)
S0 1_4 = SAD(Rm01, Lm04)
= |R01-L04|+|R02-L05|+|R03-L06| (단, 각 픽셀은 첫 번째 라인의 픽셀임)
S1 0_0 = SAD(Rm00, Lm00)
= |R00-L00|+|R01-L01|+|R02-L02| (단, 각 픽셀은 두 번째 라인의 픽셀임)
S5 2_6 = SAD(Rm02, Lm06)
= |R02-L06|+|R03-L07|+|R04-L08| (단, 각 픽셀은 여섯 번째 라인의 픽셀임)
Figure 112006067333068-pat00004

[윈도우 기준 연산형태 분석표]
삭제
또한, 이러한 라인 기준 차이연산 결과 표현을 사용하면, 카메라의 수평동기 신호(Horizontal Sync Signal)의 증가에 따라 다음과 같은 표 2의 형태로 라인기준 차이연산 결과가 출력된다. 여기서 말하는 차이 연산이란, 오른쪽과 왼쪽의 매칭 윈도우 내의 영상의 유사도를 검사하기 위한 연산을 의미하며, 일반적으로 이 연산으로 활용되는 것이 SAD(Sum of Absolute Difference)이다.
상기 표 2에서 각 라인 시작점에서의 동일한 픽셀클록의 위치(T#)에서 누적값, 즉 연결선으로 표시된 부분을 누적 계산하면 윈도우 기반의 차이 연산결과가 얻어지며, 마찬가지로 사선 방향이 윈도우 기반 디스페리티 비교대상 그룹들이 얻어진다. 픽셀클록과 수평동기 신호의 증가에 따라 차이연산 결과값과 비교대상 그룹이 이러한 형태로 표현된 표1 및 표2와 같은 분석표들은, 하드웨어적인 파이프라이닝과 계단형 병렬처리 구조를 구성할 수 있는 근거가 된다.
이제 윈도우 기반 차이연산 결과를 수식 (4)와 같이 표현하자.
WSwindowRightWindowMaskSAD_LeftWindowMaskSADㆍ (4)
그러면, 윈도우 기반 차이연산 결과값 비교대상 그룹들은 다음의 수식 5 와 같이 나타낼 수 있으며, 도 3은 이러한 표현법이 실제 영상에서 가지는 의미를 도시한 것이다. 여기에서, 각 파라미터들은 전술한 바와 같이 매칭 윈도우는 3by3, 디스페리티 범위는 8, 입력 영상은 VGA(640by480)으로 가정하였다.
WS0 0_0 = S0 0_0 + S1 0_0 + S2 0_0
WS0 0_1 = S0 0_1 + S1 0_1 + S2 0_1
WS0 0_2 = S0 0_2 + S1 0_2 + S2 0_2
ㆍㆍㆍ
WS0 1_1 = S0 1_1 + S1 1_1 + S2 1_1
ㆍㆍㆍ
WS0 2_4 = S0 2_4 + S2 2_4 + S3 2_4 (5)
예를 들어 WS0 0_0 가 가지는 의미는 오른쪽 영상과 왼쪽 영상에서 좌측 상단 기준 (0,0)을 시작으로 하는 각각의 매칭 윈도우 영역내의 픽셀값들에 대한 절대값차이의 합을 말한다. 보다 세부적인 사항은 도 3을 참조한다.
다음으로, 전술한 바와 같이 픽셀 클록(Pixel Clock)과 수평동기 신호(Horizontal Synchronization Signal)의 증가에 따라 차이연산 결과값과 결과값 비교대상 그룹이 이러한 형태로 표현된 표1, 표2 및 도3 에 따라 깊이-지도를 실시간으로 생성하는 하드웨어 구조, 즉 깊이-지도 생성 장치를 설명한다.
도 4는 본 발명에 따른 깊이-지도 연산 장치 구성도이다.
이에 도시된 바와 같이, 본 발명에 따른 깊이-지도 연산 장치는 디스페리티 범위를 병렬로 구성된 유닛들(UNIT_0 내지 UNIT_d-1)을 통해 연산하고 수식 (5)에 따른 순서로 파이프라이닝하여 출력한다.
계단 형태로 구성되어 있는 디스페리티 연산 블록은 픽셀클록 기준 시차를 두고 출력되는 윈도우 기반 연산 결과 값들의 비교 결과를 타이밍 정합하여 디스페리티 범위 전체를 모두 스윕 하는 순간 가장 유사도가 높은 위치의 디스페리티 위치 즉, 최종적인 깊이 정보를 출력하게 된다.
도 5는 본 발명에 따른 SAD 방법을 사용한 윈도우 기반 차이 정보 연산 유닛의 세부 구성도이다.
도 5에 따른 연산 유닛은 SAD를 이용하여 차이 정보를 구하고, 여기에서 ABSDIFF, ADD_A, SUB_A, ADD_B, SUB_B 블록은, 차이 정보를 구하기 위해 SAD 이외의 다른 방법을 사용할 경우, 곱셈이나 나눗셈등의 다른 연산으로 치환될 수 있다. 단, 픽셀 기반 연산결과를 누적하여 라인기반 연산결과를 구하고, 라인 기반 연산결과를 누적하여 윈도우 기반 연산결과를 구하기 위한 귀한입력 구조는 그대로 유지함을 주지한다.
Figure 112006067333068-pat00007

[메모리 블록의 사양과 입력 변수의 관계]
도 4 및 도 5에 따른 연산 유닛을 구성하는 각 블록은 블록 중 메모리 관련 블록들은 깊이-지도 연산을 위한 입력 변수에 따라 다음의 표 3과 같은 구체적인 사양을 가질 수 있다.
예를 들어, 입력되는 카메라의 영상이 VGA(640*480) 이고, 한 픽셀의 데이터가 8 비트로 구성되고, 디스페리티 범위가 64 이며, 매칭 윈도우의 크기가 11by11 이라 하면, 도 4 및 도 5에서 메모리 관련 블록은 표 4와 같은 사양을 가진다.
Figure 112006067333068-pat00008

[메모리 블록 사양의 예]
Figure 112006067333068-pat00009

[디스페리티 인코더 (DISPARITY_ENCODER) 블록의 진리표 예]
삭제
이상, 본 발명을 실시예에 근거하여 구체적으로서 설명하였지만, 본 발명은 이러한 실시예에 한정되는 것이 아니라, 후술하는 특허 청구 범위의 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가능한 것은 물론이다.
상기와 같은 구조로 개발된 깊이-지도 생성 장치는 다음과 같은 장점 및/또는 효과가 있다.
첫째, 제안한 깊이-지도 생성 장치는 도 4에서 나타내었듯이 별도의 클록 신호 없이 카메라의 동기신호 즉, 픽셀클록, 수평동기신호, 수직동기신호를 그대로 사용하므로, 입력영상의 프레임 레이트(frame rate)가 가변하거나, 픽셀클록이 높아지더라도 완전히 동일한 속도로 동작할 수 있기 때문에 입력 영상을 위한 카메라가 바뀌어도 적응도 높게 활용 가능하다.
둘째, 기존에는 깊이-지도 생성을 위해서 별도의 PC나 그래픽 프로세서가 필요했으나, 이러한 별도 장비와 느린 속도를 모두 극복하고, 입력 카메라의 프레임 레이트(Frame rate)와 동일한 속도의 깊이-지도 생성이 칩 레벨에서 30FPS(Frames Per a Second) 이상의 깊이-지도 생성이 가능해 짐으로써 이동로봇의 네비게이션, 물체 추적, 비주얼 서보잉 등의 실시간 응용에 효과적으로 활용 가능하다.
셋째, 스테레오 비전, 로봇 비전을 위한 전용의 프로세서 설계에 코어(core) 형태로 임베드 될 수 있다.

Claims (6)

  1. 스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치에 있어서,
    스트리밍되는 영상의 픽셀값을 비교하기 위해 상기 픽셀값이 파이프라이닝 처리되도록 하는 디스페리티 범위의 수와 동일한 크기를 가지는 시프트 레지스터 블록과;
    매칭 윈도우 단위의 차이(Difference) 연산 알고리즘을 수행하는 차이 연산 유닛들로 이루어진 차이 연산 블록으로서, 상기 차이 연산 유닛들의 수는 병렬 처리를 가능하게 하기 위해 디스페리티 범위의 수와 동일한 차이 연산 블록과;
    상기 차이 연산 유닛들에서 제공되는 차이 결과값을 버퍼링하고 비교하여 디스페리티 (Disparity)를 계산하는 디스페리티 연산 블록과;
    상기 각 블록의 동작을 제어하는 제어 블록을 포함하고,
    여기서, 별도의 클록(Clock)없이 입력 영상의 픽셀 클록(Pixel clock)을 사용하여 상기 픽셀 클록마다 하나의 깊이-지도 영상 픽셀이 생성되는 것을 특징으로 하는 깊이-지도 생성 장치.
  2. 제 1항에 있어서,
    입력 영상의 크기, 매칭 윈도우의 크기, 디스페리티 범위, 또는 이들의 조합에 따라 스트리밍 스테레오 영상 처리의 변형 및 확장이 가능한 것을 특징으로 하는 깊이-지도 생성 장치.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 차이 연산 블록은,
    픽셀단위의 차이연산을 수행하는 ABSDIFF 블록과;
    라인단위 연산결과를 위해 픽셀단위 차이 연산 결과를 누적 연산하는 ADD_A, REG_A 블록과;
    매칭 윈도우의 너비 만큼의 데이터를 버퍼링하는 FIFO_A 블록과;
    라인 단위의 차이 연산 결과가 연속적으로 출력되도록 SUB_A의 연산 결과를 REG_A로 귀환 입력(Feedback)시켜 소정 형태의 데이터를 출력하는 SUB_A 블록과;
    윈도우 단위의 연산결과를 위해, 라인 단위의 차이 연산 결과를 누적 연산하는 ADD_B, FIFO_B 블록과;
    매칭 윈도우의 폭 만큼의 데이터를 버퍼링하는 FIFO_C 블록과;
    윈도우 단위의 차이 연산 결과가 연속적으로 출력되도록 SUB_B의 연산결과를 FIFO_B로 귀환 입력시켜 소정 형태의 데이터를 출력하는 SUB_B 블록을 포함하여 구성되는 것을 특징으로 하는 깊이-지도 생성 장치.
  5. 제 1 항에 있어서,
    상기 디스페리티 연산 블록은,
    각 유닛의 연산결과값을 순차적으로 비교하기 위해 계단형으로 구성된 CMP 블록들의 그룹과;
    비교기에서 순차적으로 출력되는 디스페리티 정보의 시차를 정합하는 SR_C 블록들의 그룹과;
    상기 SR_C 블록에서 출력되는 디스페리티 비교 정보를 영상으로 변환시키기 위한 DISPARITY_ENCODER 블록을 포함하여 구성되는 것을 특징으로 하는 깊이-지도 생성 장치.
  6. 제 5 항에 있어서,
    상기 DISPARITY_ENCODER 블록은,
    깊이(depth)가 가장 큰 SR_C를 최상위 비트로 하여 만든 튜플(tuple)에서, 유효한 최상위 비트의 위치가 순차적으로 감소하고 유효한 최상위 비트가 1이며 그 위치 이하의 비트는 모두 0인 것을 입력으로 할 때, 최상위 비트의 위치에 따라 그 값을 순차적으로 출력하는 방식을 가지는 인코더를 특징으로 하는 깊이-지도 생성 장치.
KR1020060040192A 2006-05-03 2006-05-03 스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치 KR100795974B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060040192A KR100795974B1 (ko) 2006-05-03 2006-05-03 스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060040192A KR100795974B1 (ko) 2006-05-03 2006-05-03 스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치

Publications (2)

Publication Number Publication Date
KR20070107543A KR20070107543A (ko) 2007-11-07
KR100795974B1 true KR100795974B1 (ko) 2008-01-21

Family

ID=39062876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060040192A KR100795974B1 (ko) 2006-05-03 2006-05-03 스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치

Country Status (1)

Country Link
KR (1) KR100795974B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9066075B2 (en) 2009-02-13 2015-06-23 Thomson Licensing Depth map coding to reduce rendered distortion
US9148673B2 (en) 2009-06-25 2015-09-29 Thomson Licensing Depth map coding
US9756312B2 (en) 2014-05-01 2017-09-05 Ecole polytechnique fédérale de Lausanne (EPFL) Hardware-oriented dynamically adaptive disparity estimation algorithm and its real-time hardware

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101373718B1 (ko) * 2012-10-31 2014-03-14 성균관대학교산학협력단 3차원 영상에 대한 깊이 추정을 위한 스테레오 매칭 장치 및 방법, 및 상기 스테레오 매칭을 통한 3차원 영상 스트림 전송 장치 및 재생 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020007894A (ko) * 2000-07-19 2002-01-29 정명식 실시간 입체 영상 정합 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020007894A (ko) * 2000-07-19 2002-01-29 정명식 실시간 입체 영상 정합 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9066075B2 (en) 2009-02-13 2015-06-23 Thomson Licensing Depth map coding to reduce rendered distortion
US9148673B2 (en) 2009-06-25 2015-09-29 Thomson Licensing Depth map coding
US9756312B2 (en) 2014-05-01 2017-09-05 Ecole polytechnique fédérale de Lausanne (EPFL) Hardware-oriented dynamically adaptive disparity estimation algorithm and its real-time hardware

Also Published As

Publication number Publication date
KR20070107543A (ko) 2007-11-07

Similar Documents

Publication Publication Date Title
JP7177062B2 (ja) 統計モデルを用いた画像データからの深度予測
KR102351542B1 (ko) 시차 보상 기능을 갖는 애플리케이션 프로세서, 및 이를 구비하는 디지털 촬영 장치
US8422766B2 (en) System and method for depth extraction of images with motion compensation
KR100931311B1 (ko) 프레임 간 깊이 연속성 유지를 위한 깊이 추정 장치 및 그방법
KR100938195B1 (ko) 스테레오 매칭을 이용한 거리 추정 장치 및 추정 방법
KR100799990B1 (ko) 2차원 영상의 3차원 영상 변환 장치 및 방법
EP3135033B1 (en) Structured stereo
CN103220545B (zh) 一种立体视频实时深度估计系统硬件实现方法
US20140003704A1 (en) Imaging system and method
WO2008056765A1 (fr) Procédé de recherche de point correspondant et procédé de mesure de position tridimensionnelle
EP2757789A1 (en) Image processing system, image processing method, and image processing program
US9628777B2 (en) Method of 3D reconstruction of a scene calling upon asynchronous sensors
JP6694234B2 (ja) 距離測定装置
CN113711276A (zh) 尺度感知单目定位和地图构建
KR100795974B1 (ko) 스트리밍 스테레오 영상을 처리하여 깊이-지도를 실시간으로 생성하는 장치
KR20140074201A (ko) 추적 장치
CN115714855A (zh) 一种基于立体视觉与tof融合的三维视觉感知方法及系统
US9872011B2 (en) High-speed depth sensing with a hybrid camera setup
Valsaraj et al. Stereo vision system implemented on FPGA
US20220012905A1 (en) Image processing device and three-dimensional measuring system
TW201605225A (zh) 產生深度影像之方法及其系統及電腦程式產品
EP2741502A1 (en) Method and apparatus for color transfer between images
KR101852085B1 (ko) 깊이 정보 획득 장치 및 깊이 정보 획득 방법
JP2016213578A (ja) 画像処理装置、撮像装置、画像処理方法、プログラム
Isakova et al. FPGA design and implementation of a real-time stereo vision system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction
FPAY Annual fee payment

Payment date: 20130111

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140103

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150107

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee