KR20200030603A - 심 없는 이미지 스티칭(Seamless image stitching) - Google Patents

심 없는 이미지 스티칭(Seamless image stitching) Download PDF

Info

Publication number
KR20200030603A
KR20200030603A KR1020207005705A KR20207005705A KR20200030603A KR 20200030603 A KR20200030603 A KR 20200030603A KR 1020207005705 A KR1020207005705 A KR 1020207005705A KR 20207005705 A KR20207005705 A KR 20207005705A KR 20200030603 A KR20200030603 A KR 20200030603A
Authority
KR
South Korea
Prior art keywords
image
images
camera
certain embodiments
cameras
Prior art date
Application number
KR1020207005705A
Other languages
English (en)
Other versions
KR102500759B1 (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 삼성전자주식회사
Publication of KR20200030603A publication Critical patent/KR20200030603A/ko
Application granted granted Critical
Publication of KR102500759B1 publication Critical patent/KR102500759B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • 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/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Studio Devices (AREA)

Abstract

일 실시예에서, 방법은 제1 이미지 및 제2 이미지를 액세스하는 단계에 있어서, 상기 제1 이미지의 적어도 일부는 상기 제2 이미지의 적어도 일부와 중첩되는 단계를 포함한다. 상기 제1 및 제2 이미지들은 격자점들의 제1 세트와 연관된 부분들로 분할되고, 상기 제1 세트에서의 각 격자점은 상기 제1 이미지 또는 상기 제2 이미지의 부분에 대응된다. 상기 제1 및 제2 이미지들 간의 중첩 영역의 차이들이 결정된다. 상기 제1 세트에서의 하나 이상의 격자점들 및 상기 제1 이미지 또는 상기 제2 이미지의 대응 부분들은, 상기 결정된 차이들에 기반하여, 상기 제1 세트에서의 하나 이상의 다른 격자점들을 기준으로 이동된다.

Description

심 없는 이미지 스티칭(Seamless image stitching)
본 개시는 일반적으로 전자 이미지들을 결합하는 것에 관한 것이다.
장면(scene)의 전자 이미지는 많은 상이한 종류의 전자 장치들에 의해 캡처될 수 있다. 예를 들면, 이미지들은, 카메라가 내장된, 모바일 폰 또는 태블릿과 같은 모바일 장치에 의해 캡처될 수 있다. 간혹, 장면의 둘 이상의 이미지들이 캡처될 수 있다. 전자적으로 캡처된 이미지는 다른 전자 이미지에 있어서 캡처된 장면의 일부와 중첩되는 장면의 일부를 포함할 수 있다. 그러나, 중첩되는 부분들은 상이한 관점들(perspectives)(예를 들면, 상이한 각도들 또는 거리들)에서 촬영될 수 있고, 따라서 두 개의 이미지의 중첩되는 부분들은 동일하지 않을 수 있다. 이러한 차이들로 인해 장면의 두 개의 이미지를 하나의 이미지로 병합하는 것이 어려운데, 이는 하나의 이미지에서의 장면의 일부를 다른 이미지에서의 상기 장면의 해당 일부 위에 중첩하여 상기 이미지들을 단순히 블렌딩하는(blend) 것이 불가능할 수 있기 때문이다. 또한, 그러한 것이 가능한 경우라 하더라도, 그러한 접근법을 취함으로써 상기 장면의 다른 부분들이 왜곡될 수 있다.
도 1은 선행/기존 스티칭(stitching) 기법을 이용하여 획득된 예시적인 스티칭된(stitched) 이미지들 및 예시적인 향상된 스티칭 기법의 결과를 도시한다.
도 2는 예시적인 3-D 이미지 시스템 아키텍처를 도시한다.
도 3은 예시적인 입체(stereoscopic) 카메라 쌍을 도시한다.
도 4는 카메라 시스템의 예시적인 카메라 구성의 부분 평면도를 도시한다.
도 5는 예시적인 카메라 시스템의 평면도를 도시한다.
도 6은 카메라 시스템의 카메라들에 의해 캡처된 예시적인 이미지 세트를 도시한다.
도 7은 예시적인 카메라 시스템의 측면도를 도시한다.
도 8은 카메라 시스템의 카메라들에 의해 캡처된 예시적인 중첩 이미지 세트를 도시한다.
도 9는 개별 이미지들을 스티칭하는 예시적 방법을 도시한다.
도 10 및 도 11은 개별 이미지들을 스티칭하는 다른 예시적 방법들을 도시한다.
도 12는 이미지의 예시적인 구획(partitioning)을 도시한다.
도 13은 이미지들의 예시적인 특징점 매칭(feature point matching)을 도시한다.
도 14는 예시적인 상부 이미지 및 예시적인 메인 스티칭된 이미지를 도시한다.
도 15는 처리 후의 도 14로부터의 상기 예시적인 상부 이미지를 도시한다.
도 16 및 도 17은 개별 이미지들을 스티칭하는 예시적 방법들을 도시한다.
도 18은 격자(grid) 최적화에 기반하여 이미지들을 스티칭하는 예시적 방법의 흐름도이다.
도 19는, 격자 최적화에 관여된 단계들이 도시된, 예시적 방법의 흐름도이다.
도 20은 격자 최적화에 기반하여 이미지들을 스티칭하는 다른 예시적 방법의 흐름도이다.
도 21은 스티칭을 위한 예시적 개별 이미지들을 도시한다.
도 22는 이미지 아티팩트들(artifacts)을 갖는 예시적인 초기 이미지를 도시한다.
도 23은 이미지에 있어서 에지 검출(edge detection) 시 획득된 예시적인 이미지 에지들 또는 콘트라스트 라인들(contrast lines)을 도시한다.
도 24a 내지 도 24h는 예시적인 이미지에 대한 예시적인 격자 최적화 프로세스를 그래픽으로 도시한다.
도 25는, 이미지들에 있어서 격자점들(grid points)의 이동을 제어하기 위한, 평활화(smoothening) 또는 스프링(spring) 제약들(constraints)을 도시한다.
도 26은 예시적인 심(seam) 추정을 도시한다.
도 27은, 본 개시의 이미지 스티칭 기법을 이용한, 예시적인 스티칭된 이미지를 도시한다.
도 28a는 선행/기존 스티칭 기법을 이용하여 획득된 예시적인 스티칭된 이미지들을 도시하고, 도 28b는 예시적인 향상된 스티칭 기법의 결과를 도시한다.
도 29는 둘 이상의 이미지들을 단일 이미지로 병합하는 예시적 방법을 도시한다.
도 30은, 병합된 이미지들 간의 오정렬(misalignment)을 보정하기 위해, 이미지의 부분들을 조정하는 예시적 방법을 도시한다.
도 31은 전체 비용 함수(overall cost function) J를 결정하기 위한 상세한 예시적 계산들의 세트를 도시한다.
도 32는 양선형 매핑(bilinear mapping)을 이용하여 특징(feature)의 좌표를 결정하기 위한 상세한 예시적 계산들의 세트를 도시한다.
도 33은 예시적인 컴퓨터 시스템을 도시한다.
일 이상의 실시예들은 심 없는 이미지 스티칭(seamless image stiching)에 관한 것이다. 일부 실시예들에서, 방법은: 제1 이미지 및 제2 이미지를 액세스하는 단계에 있어서, 상기 제1 이미지의 적어도 일부는 상기 제2 이미지의 적어도 일부와 중첩되는 단계; 상기 제1 이미지에서의 하나 이상의 특징들(features) 및 상기 제2 이미지에서의 하나 이상의 대응 특징들(corresponding features)을 식별하는 단계에 있어서, 상기 하나 이상의 특징들 및 상기 하나 이상의 대응 특징들은 상기 제1 이미지와 상기 제2 이미지 간의 중첩 영역에 있고, 상기 하나 이상의 특징들 각각은 그것의 대응 특징과 정렬되지 않는 단계; 및, 각 특징에 대해, 상기 특징을 포함하는 상기 제1 이미지의 일부 및 상기 대응 특징을 포함하는 상기 제2 이미지의 일부를 조정하는 단계에 있어서, 상기 조정은: 상기 특징과 상기 대응 특징 간의 오정렬(misalignment)의 양; 및 상기 조정에 의해 야기되는 상기 제1 또는 제2 이미지의 상기 일부의 왜곡(distortion)의 양에 기반하는 단계를 포함한다.
일부 실시예들에서, 각 특징은 특징점에 의해 표시되고 각 대응 특징은 대응 특징점에 의해 표시되며; 상기 오정렬의 양은 상기 특징점과 상기 대응 특징점 간의 거리에 기반하여 결정된다.
일부 실시예들에서, 상기 조정은 상기 조정된 이미지의 제2 부분의 기하학적 왜곡의 양에 더 기반하며, 여기서 상기 제2 부분은 특징 또는 대응 특징을 포함하지 않는다.
일부 실시예들에서, 상기 방법은 상기 제1 이미지 및 상기 제2 이미지를 복수의 셀들로 분할하는 단계에 있어서, 각 셀은 복수의 격자점들에 의해 정의되는 단계를 더 포함하고, 상기 특징을 포함하는 상기 제1 이미지의 일부 또는 상기 대응 특징을 포함하는 상기 제2 이미지의 일부를 조정하는 단계는 적어도 하나의 격자점을 이동시키는 단계를 포함한다.
일부 실시예들에서, 각 특징 및 대응 특징은 동일한 셀 내에 있고; 상기 특징을 포함하는 상기 제1 이미지의 상기 일부를 조정하는 단계 또는 상기 대응 특징을 포함하는 상기 제2 이미지의 상기 일부를 조정하는 단계는 상기 제1 이미지 또는 상기 제2 이미지의 상기 복수의 격자점들 중 하나 이상을 조정하는 단계를 포함하고; 상기 제1 또는 제2 이미지의 상기 일부의 상기 왜곡의 양은, 특징을 포함하는 제1 셀을 정의하는 적어도 두 개의 제1 격자점들에 의해 정의되는, 기하학적 형태의 변화에 기반하여 결정되며, 여기서 상기 변화는 상기 조정에 의해 야기된다.
일부 실시예들에서, 상기 기하학적 형태는 삼각형을 포함하고 상기 적어도 두 개의 제1 격자점들은 적어도 세개의 제1 격자점들을 포함한다.
일부 실시예들에서, 상기 조정은, 상기 조정된 이미지의 복수의 제2 셀들을 적어도 부분적으로 정의하는, 하나 이상의 제2 격자점들의 이동의 양에 더 기반하며, 여기서 각각의 제2 셀은 특징 또는 대응 특징을 포함하지 않는다.
일부 실시예들에서, 상기 조정은, 조정 후 각 특징점과 그것의 대응 특징점 간의 거리들의 제곱의 합을 포함하는 제1 합; 조정 후 각각의 제2 격자점의 이동의 양의 제곱의 합을 포함하는 제2 합; 및, 각각의 제1 격자점과, 상기 제1 격자점이 대응 점으로 이동되는 경우 상기 기하학적 형태에 변화를 초래하지 않는, 상기 대응 점 간의 거리의 제곱의 합을 포함하는 제3 합을 포함하는, 비용 함수(cost function)의 값을 최소화하는 것에 기반한다.
일부 실시예들에서, 상기 제3 합에서의 각 항은 해당 셀의 현저성(saliency)에 대응되는 가중치(weight)와 연관된다.
일부 실시예들에서, 상기 제1 합은 상기 제2 합과 연관된 제2 가중치의 백 배인 제1 가중치와 연관되고, 상기 제2 가중치는 상기 제3 합과 연관된 제3 가중치의 열 배이다.
일부 실시예들에서, 상기 제1 및 제2 이미지들은, 이들이 액세스되기 전에, 서로 정렬된다.
일부 실시예들에서, 상기 방법은 상기 제1 및 제2 이미지들을 조정된 대로 렌더링(rendering)하는 단계를 더 포함한다.
일부 실시예들에서, 적어도 하나의 특징점 또는 적어도 하나의 대응 특징점은 상기 제1 및 제2 이미지들을 표시하는 클라이언트 장치의 사용자에 의해 식별된다.
본 명세서에서 논의되는 특정 실시예들은 스티칭된 이미지(예를 들면, 파노라마 이미지 또는 360° 이미지)를 생성하기 위해 둘 이상의 전자 이미지들을 심 없이(seamlessly) 서로 스티칭 또는 결합하기 위한 시스템들, 기기들(apparatuses), 및 방법들에 관한 것이다. 특정 실시예들에서, 복수의 이미지들은 카메라 시스템으로부터(예를 들면, 도 21에 도시한 바와 같은 이미지들(2102 내지 2116)), 단일 카메라로부터, 또는 상기 이미지들을 저장하는 클라이언트 또는 서버 장치로부터 수신될 수 있다. 상기 이미지들에는, 예를 들면, 도 8 내지 도 18과 관련하여 예시 및 설명되는 스티칭 기법들에 따라, 약간의 초기 스티칭이 수행되어 있을 수 있다. 다른 예로서, 초기 스티칭은, 이미지들 간의 점-대-점 대응들을 계산하고, 초점 거리, 시야(field of view), 렌즈 오프셋 등과 같은 다양한 카메라 특성들을 변화시켜 상기 이미지들 간의 거리들을 최적화함으로써, 장면에서의 모든 이미지들에 대한 카메라 파라미터들을 추정함으로써 수행될 수 있다.
기존의 스티칭 기법들은 매끄러운 이미지를 생성하지 못할 수 있으며, 예를 들면, 도 1에서 참조 번호 212a 및 214a로 나타낸 바와 같은 이미지 아티팩트들(artifacts), 및 도 22에 나타낸 바와 같은 이미지 아티팩트들(2202 내지 2210)을 종종 발생시킬 수 있다. 도 28A는 또한 종래의 스티칭 프로세스들에 의해 야기되는 이미지 아티팩트들을 도시한다. 어떤 두 종류의 이미지들이 서로 스티칭될 때마다 스티칭 아티팩트들이 도입될 수 있으며, 상기 아티팩트들은, 시청자와 상대적으로 가까운 장면의 부분들에서 및/또는 3D 이미지를 생성하는 데 이용될 이미지들을 스티칭하는 경우, 특히 극심할 수 있다. 스티칭 아티팩트들은, 일련의 사진들을 촬영하는 카메라의 공간적 이동 또는 상이한 사진들을 촬영하는 다수의 카메라들 간의 공간적 오프셋에 의해, 도입될 수 있다. 또한, 이미지들이 완벽하게 정렬되도록 상기 이미지들 간의 모든 점 대응들을 만족시킬 수 있는 단일 2D 변환(transformation)을 계산하는 것이 항상 가능한 것은 아니다.
본 명세서에서 논의되는 스티칭 기법들의 한 가지 기술적 향상은, 예를 들면, 도 1에서 참조 번호 212b 및 214b로 나타낸 바와 같이, 심 없는 매끄러운 이미지를 생성하고 이러한 이미지 아티팩트들을 제거/최소화하는 것이다. 본 명세서에서 논의되는 예시적 기법을 이용하여 생성된 예시적인 스티칭된 이미지가 도 27에 도시되어 있다. 두 개의 이미지들을 스티칭하기 위해, 상기 이미지들은 직선형 이미지들을 생성하도록 먼저 구(sphere) 상에 워핑되고(warped) 디피싱될(defished) 수 있다. 이미지들이 서로 비교될 수 있도록, 이미지 에지들 및 콘트래스트 라인들(예를 들면, 도 23 참조)을 계산하기 위해 소벨 경사(sobel gradients)를 이용하여 이들 이미지들에 대해 에지 검출을 수행할 수 있다. 상기 두 개의 이미지들의 중첩 영역들의 정규화된 경사들(normalized gradients) 간의 차이를 최소화하기 위해 격자 최적화(grid optimization)가 수행될 수 있다. 특정 실시예들에서, 격자 최적화는 상기 두 개의 이미지들의 에지 맵들을 최대한 정렬하는 단계를 포함한다. 구체적으로, 격자 최적화는 이미지들 각각을 격자점들로 분할하는 단계(예를 들면, 도 24a 내지 도 24f 참조) 및 상기 두 개의 이미지들의 중첩 영역에서의 특징들 간의 에지 라인들의 차이를 최소화하도록 또는 상기 두 개의 이미지들의 중첩 영역의 정규화된 경사들 간의 차이를 최소화하도록 상기 격자점들 및 상기 이미지들의 대응 부분들을 재귀적으로(recursively) 이동시키는 단계를 포함할 수 있다. 특정 실시예들에서, 두 개의 이미지들 사이 또는 동일 이미지 내에서 격자점들의 이동을 특정 임계값(threshold)까지로 제한하는(예를 들면, 격자점은 오직 특정 픽셀(pixel)만을 그 원래 위치에서 좌/우/상/하로 이동시킬 수 있음), 스프링 또는 평활화 제약들의 세트를 포함하는 힘 모델(force model)이 추가될 수 있다. 상기 최적화(예를 들면, 이미지를 격자 영역들로 분할하고 상기 격자점들을 이동시키는 것)가 초기에는 다수의 반복들 또는 단계들에서, 예를 들면, 매우 조대하게(coarse) 수행될 수 있고(예를 들면, 도 24b에 도시한 바와 같이) 피라미드 레벨이 감소함에 따라 점점 더 미세해지는(예를 들면, 도 24b 내지 도 24c 또는 도 24c 내지 도 24d 참조), 피라미드 레벨 기법이 채용될 수 있다. 보다 상위의 피라미드 레벨들에서, 상기 알고리즘은 보다 큰 윈도우를 검색하며, 상기 윈도우는 피라미드 레벨이 감소함에 따라 감소한다. 상기 피라미드 레벨이 감소함에 따라 새로운 격자점들이 추가될 수 있다(예를 들면, 도 24c 내지 도 24f 참조) 상기 새로운 격자점들의 초기 위치들은 이전 점들의 위치들로부터 보간될(interpolated) 수 있고, 그 다음에 상기 격자는 다시 최적화될 수 있다. 상기 두 개의 이미지들의 중첩 영역들의 정규화된 경사들 간의 차이가 특정 임계값 이내가 되거나 또는 그보다 작게 될 때까지 이 프로세스가 반복될 수 있다. 일단 상기 차이가 상기 임계값 이내가 되면(예를 들면, 두 개의 이미지들의 에지들 또는 에지 라인들이 서로 중첩되면), 예를 들면, 도 27에 도시한 바와 같이, 결합된 또는 스티칭된 이미지를 생성하기 위해 심 추정(seam estimation) 및 블렌딩이 수행될 수 있다. 일부 실시예들에서, 심 및 블렌딩 이전에, 선택적으로(optionally) 상기 이미지들에 대해 색 보정(color correction)이 수행될 수 있다. 색 보정은 이미지들의 노출, 비네트(vignette) 제거, 및 화이트 밸런스 보정(white balance correction)을 포함할 수 있다. 상기 이미지 스티칭 기법은 보다 빠른 구현을 위해 중앙 처리 장치(central processing unit: CPU) 또는 그래픽 처리 장치(graphical processing unit: GPU) 상에서 수행될 수 있다. 본 명세서에서 논의되는 이미지 스티칭을 위한 격자 최적화 방법은 또한 비디오 스티칭, 상부 이미지의 스티칭, 및 3D 스티칭에도 적용될 수 있다.
다른 실시예들에서, 둘 이상의 이미지들을 단일 이미지로 병합하는 것은 여러 고려사항들에 기반하여 상기 이미지들을 조정함으로써 달성될 수 있다. 예를 들면, 중첩 이미지들의 오정렬된 부분들은 상기 오정렬을 최소화하도록 상기 이미지들 중 하나 또는 둘 모두의 적어도 일부를 조정함으로써(예를 들면, 워핑(warping) 또는 왜곡(distorting)함으로써) 보정될 수 있다. 그러나, 상기 이미지들이 완전히 정렬되도록 상기 이미지들을 조정하는 것은 매우 많은 조정을 필요로 하여 상기 이미지들의 다른 부분들이 오정렬되어 시청자에게 왜곡되어 보일 수 있다. 따라서, 둘 이상의 이미지들을 함께 병합하기 위한 고려사항들에는 이미지의 오정렬된 부분들을 정렬함으로써 야기되는 이미지 왜곡의 분석이 포함될 수 있다.
도 29 내지 도 32를 참조하여 설명하는 바와 같이, 이미지 왜곡은, 정렬되는 부분들 근처에서의 이미지의 왜곡을 의미하는, 로컬 왜곡(local distortion) 및, 이미지의 오정렬된 부분들 근처에 있지 않은 이미지의 부분들의 왜곡을 의미하는, 글로벌 왜곡(global distortion)을 포함할 수 있다. 따라서, 둘 이상의 이미지들을 단일 이미지로 병합하면, 화질을 유지하면서 오정렬을 줄이기 위한, 정렬 및 이미지 왜곡의 경쟁적인 고려사항들의 균형을 잡을 수 있다.
도 2는 예시적인 3-D 이미지 시스템 아키텍처를 도시한다. 특정 실시예들에서, 360° 3-D 비디오를 캡처, 인코딩, 및 렌더링하기 위한 시스템 아키텍처(200)는 카메라 시스템(210), 전단(front-end) 프로세서들(220), 스티칭 서버(230), 콘텐츠 서버(240), 및 클라이언트 시스템(250)을 포함할 수 있다. 본 개시가 특정 시스템들로 구성된 특정 3-D 이미지 시스템을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 시스템들로 구성된 어떤 적절한 3-D 이미지 시스템이든지 고려하고 있다. 또한, 하기 설명이 특정 기능을 수행하는 특정 구성요소들을 설명하고 있지만, 본 개시는 어떤 적절한 구성요소들이 어떤 적절한 기능이든지 수행할 수 있음을 고려하고 있다. 예를 들면, 본 개시는 하기 처리(processing)가 서버 장치에서, 클라이언트 장치에서, 또는 이 둘 모두에서 적절하게 수행될 수 있음을 고려하고 있다.
카메라 시스템(210)은, 디지털 방식으로 이미지들을 캡처하도록 구성된, 카메라들(212)의 여러 쌍들(212)(도 3 내지 도 5 참조)을 포함할 수 있다. 제한으로서가 아니라 예로서, 상기 캡처된 이미지들은 실시간으로 캡처 및 처리되는 360° 3-D 비디오에 대응될 수 있다. 카메라 시스템(210)의 카메라들(212)은 전단 프로세서(220)에 연결
될 수 있다(예를 들면, 범용 직렬 버스(universal serial bus: USB)를 통해). 전단 프로세서(220)는 상기 다양한 카메라들(212)로부터 이미지들의 시작 및 중단을 동기화함으로써 카메라들(212)의 초기 제어를 제공할 수 있다. 전단 프로세서들(220)은 또한, 셔터 속도 또는 노출 시간과 같은, 카메라 파라미터들을 결정 또는 설정할 수 있다. 전단 프로세서(220)는 카메라 시스템(210)으로부터의 인입(incoming) 비디오들의 정규화, 왜곡 보정, 압축, 또는 인코딩을 수행할 수 있다.
특정 실시예들에서, 전단 프로세서들(220)의 수는 상기 인입 이미지들의 크기(예를 들면, 프레임 레이트(frame rate) 또는 프레임 크기(frame size))뿐만 아니라 카메라 시스템(210)의 카메라들(212)의 수에 기반할 수 있다. 전단 프로세서들(220)로부터의 이미지 데이터는, 카메라 시스템(210)에 의해 캡처된 개별 이미지들의 스티칭을 수행하는, 스티칭 서버(230)로 전달될 수 있다(예를 들면, 전송 제어 프로토콜(transmission-control protocol: TCP) 네트워크를 통해).
후술하는 바와 같이, 스티칭 서버(230)는 상기 다양한 카메라들로부터의 이미지들을 서로 스티칭하여 3-D 비디오의 완전한 프레임들을 생성할 수 있다. 특정 실시예들에서, 스티칭 서버(230)는 개별 이미지들의 이미지 정렬을 계산하고 완전한 프레임들을 수직 스트립들(vertical strips)로 세그먼트화할 수 있다. 스티칭 서버(230)는 가변적 비트 레이트(bit-rate) 제어를 위해 스트립들을 상이한 크기 및 비트 레이트로 재압축할 수 있다. 실시간 수행이 필요하지 않은 경우 단일 스티칭 서버(230)가 이용될 수 있거나, 또는 고해상도, 고-프레임 레이트의 3-D 비디오에 대한 실시간 수행이 소요되는 경우 수십 또는 수백 개의 스티칭 서버들(230)까지도 이용될 수 있다. 3-D 비디오의 프레임들은 콘텐츠 서버(240)에 저장 또는 전송될 수 있다.
콘텐츠 서버(240)는 클라이언트 시스템들(250)에 대한 콘텐츠 분배 네트워크로서의 역할을 할 수 있고, 요청된 3-D 비디오의 적절한 부분들을 시청자에게 스트리밍하기 위해 클라이언트 시스템들(250)과 통신할 수 있다. 콘텐츠 서버(240)는 요청된 3-D 비디오를 프레임 별로 클라이언트 시스템들(250)에 전송할 수 있다. 특정 실시예들에서, 콘텐츠 서버(240)의 수는 상기 3-D 비디오를 수신하는 클라이언트 서버(250)의 수에 비례할 수 있다.
클라이언트 시스템들(250)은 사용자들이 콘텐츠 서버들(240)에 의해 전송되는 상기 3-D 비디오를 시청하기 위한 장치로서 기능할 수 있다. 또한, 클라이언트 시스템들(250)로부터 콘텐츠 서버들(240)로의 입력에 의해 클라이언트 시스템들(250)에 전송되는 상기 3-D 비디오의 부분들이 변경될 수 있다. 일 예로서, 상기 3-D 비디오는, 사용자의 시야각(viewing angle)이 변경되었음을 나타내는, 클라이언트 시스템(250)으로부터의 데이터에 기반하여, 조정될 수 있다. 특정 실시예들에서, 클라이언트 시스템(250)은 정면 시청(straight-on view)에 대응하는 프레임들뿐만 아니라 양쪽의 추가적 프레임들도 요청할 수 있다. 특정 실시예들에서, 클라이언트 시스템(250)은 저해상도, 풀프레임(full-frame) 이미지들을 요청하고 시청자를 위한 3-D를 재구성할 수 있다.
도 3은 카메라들(212)의 예시적인 입체 쌍(300)을 도시한다. 특정 실시예들에서, 입체 쌍(300)은 각각 좌측 카메라 L 및 우측 카메라 R로 지칭되는 두 개의 카메라들(212)을 포함할 수 있다. 좌측 카메라 L 및 우측 카메라 R은 각각 사람의 좌측 및 우측 눈들에 대응하는 이미지들을 캡처할 수 있고, 카메라들 L 및 R에 의해 캡처된 비디오 이미지들은 시청자에게 3-D 비디오로서 재생될 수 있다.
특정 실시예들에서, 입체 쌍(300)은 쌍, 스테레오 쌍(stereo pair), 카메라 쌍, 또는 카메라들의 스테레오 쌍으로 지칭될 수 있다. 후술하는 바와 같이, 카메라 시스템(210)은 디지털 카메라들("카메라들")(212)의 여러 쌍들(300)을 이용하여 3-D 이미지들을 캡처할 수 있으며, 여기서 카메라 시스템(210)은 통합된(integrated) 디지털 카메라들을 이용하거나 또는 하나 이상의 외부 디지털 카메라들에 대한 인터페이스를 이용할 수 있다.
특정 실시예들에서, 디지털 카메라는 이미지들 또는 비디오들을 디지털 포맷으로 캡처 또는 저장하는 장치를 의미할 수 있다. 본 명세서에서, "카메라"라는 용어는 디지털 카메라를 의미할 수 있고, "비디오"라는 용어는 디지털 비디오, 또는 디지털 포맷으로 기록 또는 저장된 비디오를 의미할 수 있다.
특정 실시예들에서, 카메라(212)는, 개별 사진 이미지들을 캡처하거나 또는 일련의 이미지들을 비디오로서 캡처하도록 구성된, 이미지 센서를 포함할 수 있다. 제한으로서가 아니라 예로서, 카메라(212)는 전하 결합 소자(charge-coupled device: CCD) 이미지 센서 또는 상보형 금속산화 반도체(complementary metal-oxide-semiconductor: CMOS) 능동 픽셀(active-pixel) 이미지 센서를 포함할 수 있다. 특정 실시예들에서, 카메라(212)의 이미지 센서는 대략 16:9, 4:3, 또는 3:3의 종횡비(aspect ratio)(예를 들면, 센서의 가로(width) 대 세로(height)의 비), 또는 어떤 적절한 종횡비든지 가질 수 있다. 특정 실시예들에서, 카메라(212)의 이미지 센서 가로는 이미지 센서 세로보다 더 클 수 있다.
특정 실시예들에서, 이미지 센서의 가로 및 세로는 상기 이미지 센서의 두 개의 축들을 따르는 다수의 픽셀들로 표현될 수 있고, 상기 이미지 센서 폭은 상기 이미지 센서의 보다 긴 치수(longer dimension)를 나타낼 수 있다. 제한으로서가 아니라 예로서, 이미지 센서는 500 픽셀 내지 8,000 픽셀의 가로 또는 세로를 가질 수 있다. 제한으로서가 아니라 다른 예로서, 1,920 픽셀의 가로 및 1,080 픽셀의 세로를 갖는 이미지 센서는 16:9 종횡비를 갖는 이미지 센서로서 지칭될 수 있다.
특정 실시예들에서, 카메라(212)는 입사광(incoming light)을 집광하여 상기 이미지 센서의 초점 영역 상에 초점을 맞추기 위한 렌즈 또는 렌즈 어셈블리(lens assembly)를 포함할 수 있다. 제한으로서가 아니라 예로서, 카메라(212)는 빛을 상기 이미지 센서 상에 초점을 맞추기 위한 어안 렌즈(fisheye lens), 초광각 렌즈, 광각 렌즈, 또는 표준 렌즈(normal lens)를 포함할 수 있다. 본 개시가 특정 센서들 및 특정 렌즈들을 갖는 특정 카메라들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 센서들 및 어떤 적절한 렌즈들을 갖는 어떤 적절한 카메라들이든지 고려하고 있다.
특정 실시예들에서, 카메라(212)는, 카메라(212)의 렌즈 어셈블리의 위치, 초점 거리(focal length), 또는 배율(magnification) 및 카메라(212)의 이미지 센서의 위치 또는 크기에 적어도 부분적으로 의존하는, 시야(field of view: FOV)를 가질 수 있다.
특정 실시예들에서, 카메라(212)의 FOV는 카메라(212)를 통해 볼 수 있는 특정 장면의 수평, 수직, 또는 대각선 범위(extent)를 의미할 수 있다. 카메라(212)의 FOV 내의 객체들은 카메라(212)의 이미지 센서에 의해 캡처될 수 있고, 상기 FOV 밖의 객체들은 상기 이미지 센서 상에 나타나지 않을 수 있다. 특정 실시예들에서, FOV는 화각(angle of view: AOV)으로 지칭될 수 있으며, FOV 또는 AOV는 카메라(212)에 의해 캡처되거나 또는 영상화될 수 있는 특정 장면의 각도 범위(angular extent)를 의미할 수 있다. 제한으로서가 아니라 예로서, 카메라(212)는 30° 내지 200°의 FOV를 가질 수 있다. 제한으로서가 아니라 다른 예로서, 카메라(212)가 100°의 FOV를 갖는다는 것은 카메라(212)가 카메라(212)가 가리키는 방향 또는 배향의 ±50°이내에 위치한 객체들의 이미지들을 캡처할 수 있다는 것을 나타낼 수 있다.
특정 실시예들에서, 카메라(212)는, 예를 들면, 수평 시야(horizontal field of view: FOVH) 및 수직 시야(vertical field of view: FOVV)와 같은 두 개의 특정 FOV들을 가질 수 있으며, 여기서 상기 두 개의 FOV들은 대략적으로 서로 수직하게 배향된다. 제한으로서가 아니라 예로서, 카메라(212)는 30° 내지 100°범위의 FOVH 및 90° 내지 200°범위의 FOVV를 가질 수 있다. 도 3의 예에서, 카메라(212)는 대략 80°의 FOVH를 가진다. 특정 실시예들에서, 카메라(212)는 그 FOVH보다 넓은 FOVV를 가질 수 있다. 제한으로서가 아니라 예로서, 카메라(212)는 대략 45°의 FOVH 및 대략 150°의 FOVV를 가질 수 있다.
특정 실시예들에서, 카메라(212)가 두 개의 동일하지 않은 FOV들을 갖는 것은, 적어도 부분적으로, 카메라(212)가 직사각형의 이미지 센서를 갖는 것에 기인한 것일 수 있다(예를 들면, 카메라(212)는 16:9 종횡비를 갖는 이미지 센서를 가질 수 있다).
특정 실시예들에서, 카메라(212)는 그 FOVV가 카메라(212)의 이미지 센서의 가로와 정렬 또는 대응되고 그 FOVH가 상기 이미지 센서의 세로와 정렬되도록 위치될 수 있다. 제한으로서가 아니라 예로서, 이미지 센서는 가로 및 세로를 가질 수 있고, 여기서 상기 가로는 두 개의 이미지 센서 치수들 중 더 긴 것을 나타내며, 카메라(212)는 그 이미지 센서의 가로축이 FOVV에 대응되도록 배향될 수 있다. 본 개시가 특정 시야들을 갖는 특정 카메라들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 시야를 갖는 어떤 적절한 카메라든지 고려하고 있다.
특정 실시예들에서, 카메라(212)는 카메라(212)가 가리키는 각도 또는 방향을 나타내는 배향(orientation, 214)을 가질 수 있다. 특정 실시예들에서, 배향(214)은 카메라(212)의 FOV의 중심을 따라 지향된 라인 또는 레이(ray)로 나타낼 수 있다. 특정 실시예들에서, 카메라(212)의 배향 라인(214)은 대략 카메라(212)의 세로축을 따라, 카메라의 렌즈 어셈블리 또는 이미지 센서의 표면에 대략 수직하게, 또는 축(215)에 대략 수직하게 지향될 수 있으며, 여기서 축(215)은 입체 쌍(300)의 카메라들 L 및 R 간의 라인을 나타낸다.
도 3의 예에서, 배향(214-L) 및 배향(214-R)은 각각 축(215)에 대략 수직하고, 배향들(214-L 및 214-R)은 각각 대략 카메라(212)의 FOVH의 각각의 중심을 따라 지향될 수 있다.
특정 실시예들에서, 입체 쌍(300)의 각 카메라(212)는 서로에 대해 특정 배향(214)을 가질 수 있다. 특정 실시예들에서, 입체 쌍(300)의 좌측 및 우측 카메라(212)는 각각 대략 동일한 방향을 가리킬 수 있고, 상기 좌측 및 우측 카메라들의 배향들(214)은 대략 평행할 수 있다(예를 들면, 배향들(214) 간의 각도는 대략 0°일 수 있다).
도 3의 예에서, 좌측 카메라 배향(214-L)은 우측 카메라 배향(214-R)과 대략 평행하며, 이는 상기 카메라들 L 및 R이 대략 동일한 방향을 가리키고 있음을 나타낸다. 좌측 및 우측 카메라들(212)이 평행한 배향들(214)을 갖는다는 것은 카메라들이 동일한 방향을 가리킨다는 것을 나타낼 수 있으며, 카메라들 L 및 R은 동일 배향을 갖는다고 말할 수 있다.
특정 실시예들에서, 좌측 카메라 L 및 우측 카메라 R이 동일 배향을 갖는다는 것은 배향들(214-L 및 214-R)이 각각 ±0.1°, ±0.5°, ±1°, ±2°, 또는 ±3° 이내로 또는 어떤 적절한 각도 값 이내로 서로 평행하다는 것을 의미할 수 있다. 특정 실시예들에서, 입체 쌍(300)의 배향은 평행한 좌측 및 우측 카메라들(212)의 배향(214)으로 나타낼 수 있다. 제한으로서가 아니라 예로서, 제1 입체 쌍(300)의 각 카메라가 제2 입체 쌍(300)의 카메라들에 대해 30°로 배향된 경우, 상기 제1 입체 쌍(300)은 상기 제2 입체 쌍(300)에 대해 30° 배향을 갖는다고 말할 수 있다.
특정 실시예들에서, 좌측 카메라 L 및 우측 카메라 R은 이들 간에 0이 아닌 특정 각도를 갖는 배향들(214-L 및 214-R)을 가질 수 있다. 제한으로서가 아니라 예로서, 입체 쌍(300)의 상기 두 개의 카메라들은 이들의 배향들 간의 각도가 대략 0.5°, 1°, 2°, 또는 어떤 적절한 각도 값이 되도록 약간
서로 향하거나 멀어지게 배향될 수 있다. 특정 실시예들에서, 입체 쌍(300)의 배향은 배향들(214-L 및 214-R)의 평균으로 나타낼 수 있다. 본 개시가 특정 배향들을 갖는 특정 카메라들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 배향들을 갖는 어떤 적절한 카메라들이든지 고려하고 있다.
특정 실시예들에서, 한 쌍의 카메라들(예를 들면, L 및 R)의 카메라들(212) 간의 카메라간 간격(inter-camera spacing: ICS)은 상기 두 개의 카메라들이 서로 이격된 거리를 나타낼 수 있다. 특정 실시예들에서, 입체 쌍(300)은 6 cm 내지 11 cm의 ICS를 갖는 카메라들(212)을 가질 수 있으며, 여기서 ICS는 두 개의 카메라들(212)의 두 개의 대응되는 점들 또는 특징들 간에 측정될 수 있다. 제한으로서가 아니라 예로서, ICS는 두 개의 카메라들(212)의 중간 점들 간의 거리, 두 개의 카메라들(212)의 세로축들 간의 거리, 또는 두 개의 카메라들(212)의 배향 라인들(214) 간의 거리에 대응될 수 있다.
특정 실시예들에서, 입체 쌍(300)의 카메라들 L 및 R은 축(215)을 따라 ICS 거리만큼 이격될 수 있는데, 여기서 축(215)은 카메라들 L 및 R을 연결하는 라인을 나타내고, 카메라 배향들(214-L 및 214-R)은 대략 축(215)에 수직하다.
도 3의 예에서, ICS는, 이격 축(215)을 따라 측정된, 카메라들 L 및 R 간의 거리이다. 특정 실시예들에서, ICS는, 사람의 눈의, 동공들(pupils) 간의 대략적 또는 평균적 거리, 또는 동공간 거리(inter-pupillary distance: IPD)에 대응될 수 있다. 제한으로서가 아니라 예로서, ICS는 6 cm 내지 7 cm일 수 있으며, 여기서 6.5 cm는 인간에 대한 대략적인 평균 IPD 값에 대응될 수 있다. 특정 실시예들에서, 입체 쌍(300)은 평균 IPD 값보다 큰 ICS 값을 가질 수 있고(예를 들면, ICS는 7 cm 내지 11 cm일 수 있음), 이러한 보다 큰 ICS 값은, 시청자에게 재생되는 경우, 향상된 3-D 특성을 갖는 것처럼 보이는 장면을 제공할 수 있다. 본 개시가 특정 카메라간 간격들을 갖는 특정 카메라 쌍들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 카메라간 간격들을 갖는 어떤 적절한 카메라 쌍들이든지 고려하고 있다.
도 4는 카메라 시스템(210)의 예시적 카메라 구성의 부분 평면도를 도시한다. 도 4의 예에서, 카메라 시스템(210)은 L1 및 R1으로 형성된 제1 카메라 쌍(300), L2 및 R2로 형성된 제2 카메라 쌍(300), 및 Ln 및 Rn으로 형성된 제n 카메라 쌍(300)을 포함한다.
특정 실시예들에서, 카메라 시스템(210)은 또한, 예를 들면, 카메라 쌍 L3-R3(카메라 L3은 도 4에 도시되지 않음) 또는 카메라 쌍 Ln-1-Rn-1(카메라 Rn-1은 도 4에 도시되지 않음)과 같은 추가적인 카메라 쌍들을 포함할 수 있다. 본 개시가 특정 수의 카메라 쌍들을 갖는 특정 카메라 시스템들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 수의 카메라 쌍들을 갖는 어떤 적절한 카메라 시스템들이든지 고려하고 있다.
특정 실시예들에서, 카메라 시스템(210)의 카메라들(212)은 직선, 곡선, 타원(또는 타원의 일부), 원(또는 원의 일부), 또는 다른 어떤 적절한 형태 또는 어떤 적절한 형태의 일부를 따라 배치될 수 있다. 원을 따라 배치된 카메라들(212)을 갖는 카메라 시스템(210)은 360° 파노라마 뷰(panoramic view)에 걸친 이미지들을 기록하도록 구성될 수 있다.
도 4의 예에서, 카메라들(212)은 도 4의 원형 파선(circular dashed line)으로 표시된 원의 일부를 따라 배치될 수 있다. 도 4에 도시된 카메라 시스템(210)은 반원에 걸쳐 이미지들을 기록하고 대략 180°의 각도 시야(angular viewing)를 제공할 수 있다.
특정 실시예들에서, 카메라 시스템(210)의 카메라들(212)은 각각 동일 평면에 위치할 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)의 각 카메라(212)는 수평면에 위치할 수 있고, 각 카메라(212)는 상기 수평면을 따라 배향된 FOVH 및 상기 수평면에 수직하게 배향된 FOVV를 가질 수 있다.
도 4의 예에서, 카메라들(212)은 각각 동일 평면에 위치하고, 각 카메라(212)의 FOVH도 또한 해당 평면에 배향된다. 특정 실시예들에서, 카메라 시스템(210)의 카메라들(212)은 각각 동일 평면에 위치할 수 있고, 각 카메라(212)의 배향(214)도 또한 해당 동일 평면에 위치할 수 있다. 도 4의 예에서, 카메라들(212)은 각각 동일 평면에 위치하고, 카메라 배향들(예를 들면, 214-L1, 214-L2, 214-R1, 및 214-R2)도 또한 동일 평면에 위치하여 각 카메라는 상기 평면에 놓인 방향을 따라 지향된다.
특정 실시예들에서, 카메라(212)는, 상기 수평면을 따라 배향된, 카메라(212)의 이미지 센서의 세로 치수를 갖도록 위치되어 상기 이미지 센서 세로가 FOVH와 정렬 및 대응될 수 있다. 또한, 카메라(212)는, 상기 수평면에 수직하게 배향된, 카메라(212)의 이미지 센서의 가로 치수를 갖도록 위치되어 상기 이미지 센서 가로가 FOVV에 대응될 수 있다. 특정 실시예들에서, 카메라(212)는 이미지의 수직 범위가 상기 이미지의 수평 범위보다 크도록 종횡비를 갖는 이미지를 캡처할 수 있다.
특정 실시예들에서, 카메라 시스템(210)은 카메라(212)들의 다수의 쌍들(300)을 포함할 수 있으며, 여기서 상기 카메라 쌍들(300)은 서로 인터리빙될(interleaved) 수 있다.
특정 실시예들에서, 카메라 쌍들(300)이 인터리빙된다고 함은 제1 카메라 쌍이 인접한 제2 카메라 쌍의 카메라들 사이에 위치한 하나의 카메라를 갖는 카메라 구성을 의미할 수 있다. 또한, 상기 제2 카메라 쌍도 상기 제1 카메라 쌍의 카메라들 사이에 위치한 하나의 카메라를 가질 수 있다.
특정 실시예들에서, 인접한 카메라 쌍(300)은, 서로 옆에 위치한 또는 하나의 카메라 쌍(300)의 하나의 카메라가 다른 카메라 쌍(300)의 두 개의 카메라들 사이에 위치하도록 배치된, 카메라 쌍들(300)을 의미할 수 있다. 특정 실시예들에서, 인터리빙된 카메라 쌍들(300)은, 제1 및 제2 카메라 쌍들을 갖는 카메라 구성에 있어서, 제2 카메라 쌍이 상기 제1 카메라 쌍의 적어도 하나의 카메라에 의해 서로 이격된 카메라 구성을 의미할 수 있다. 또한, 상기 제1 카메라 쌍도 상기 제2 카메라 쌍의 적어도 하나의 카메라에 의해 서로 이격될 수 있다.
도 4의 예에서, 카메라 쌍 L2-R2는 카메라 쌍 L1-R1과 인터리빙되고 그 반대도 마찬가지다. 카메라 쌍들 L1-R1 및 L2-R2는, 카메라 R2가 카메라들 L1 및 R1 사이에 위치하고 카메라 L1이 카메라들 L2 및 R2 사이에 위치하도록, 인터리빙된다. 유사하게, 카메라 쌍들 L1-R1 및 Ln-Rn도 또한 서로 인터리빙된다. 카메라 쌍들 L1-R1 및 Ln-Rn은, 카메라들 L1 및 R1이 적어도 카메라 Ln에 의해 이격되고 카메라들 Ln-Rn이 적어도 카메라 R1에 의해 이격되도록, 인터리빙된다.
도 4의 예에서, 카메라 쌍 L1-R1은 두 개의 인접한 카메라 쌍들, 카메라 쌍 L2-R2 및 카메라 쌍 Ln-Rn과 인터리빙된다.
특정 실시예들에서, 카메라 시스템(210)은 카메라들(212)의 제1 쌍(300)을 포함할 수 있으며, 여기서 상기 제1 쌍의 카메라들은 카메라들(212)의 제2 쌍(300)의 적어도 하나의 카메라(212)에 의해 서로 이격된다.
도 4의 예에서, 카메라 쌍 L1-R1의 카메라들 L1 및 R1은 카메라 쌍 L2-R2의 카메라 R2에 의해 서로 이격된다. 또한, 상기 카메라들의 제1 쌍은 상기 카메라들의 제2 쌍의 배향(214)과 상이한 배향(214)을 가질 수 있다.
도 4의 예에서, 카메라 쌍 L1-R1의 배향(배향(214-L1 또는 214-R1)으로 나타낼 수 있음)은 카메라 쌍 L2-R2의 배향(배향(214-L2 또는 214-R2)으로 나타낼 수 있음)과 상이하다.
특정 실시예들에서, 카메라 시스템(210)은 또한 카메라들의 제3 쌍(예를 들면, 도 4의 Ln-Rn)을 포함할 수 있고, 상기 제1 쌍(예를 들면, L1-R1)의 카메라들도 또한 상기 카메라들의 제3 쌍(예를 들면, Ln-Rn)의 카메라(예를 들면, 카메라 Ln)에 의해 서로 이격될 수 있다. 또한, 상기 카메라들의 제3 쌍은 상기 제1 및 제2 카메라 쌍들의 배향들(214)과 상이한 배향을 가질 수 있다. 본 개시가 특정 구성들로 배치된 특정 카메라들을 갖는 특정 카메라 시스템들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 구성들로 배치된 어떤 적절한 카메라들을 갖는 어떤 적절한 카메라 시스템들이든지 고려하고 있다.
특정 실시예들에서, 카메라 시스템(210)은 다수의 인터리빙된 카메라 쌍들(300)을 포함할 수 있으며, 여기서 각 카메라 쌍(300)은 특정 배향(214)을 가진다. 특정 실시예들에서, 각 카메라 쌍(300)의 카메라들(212)은, 각 카메라 쌍(300)이 하나 이상의 인접한 카메라 쌍들(300)에 대해 각도 Θ로 배향되도록 균일하게 배치될 수 있다. 특정 실시예들에서, 각도
Figure pct00001
는 카메라들(212)의 인접한 쌍들(300) 간의 각도 간격(angular spacing) 또는 배향들(214)의 차이에 대응될 수 있다.
도 4의 예에서, 카메라들 L1 및 R1은 그들의 대략적으로 평행한 각각의 배향들 214-L1 및 214-R1로 표시되는 동일한 방향을 가리킨다. 유사하게, 카메라들 L2 및 R2는 각각, 카메라 쌍 L1-R1의 배향과 상이한, 그들의 대략적으로 평행한 각각의 배향들 214-L2 및 214-R2로 표시되는 방향을 가리킨다.
특정 실시예들에서, 인접한 카메라 쌍들(300) 간의 각도
Figure pct00002
는, 카메라 쌍들(300)이 그들 각각의 배향들(214) 간에 균일한 차이를 갖고 배치되도록, 카메라 시스템(210)의 각 카메라 쌍(300)에 대해 대략 동일할 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)의 인접한 카메라 쌍들(300)은 각각 서로에 대해 대략 26°, 30°, 36°, 45°, 60°, 또는 90°의 각도, 또는 어떤 적절한 각도로 배향될 수 있다. 도 4의 예에서, 카메라 쌍 L2-R2는 카메라 쌍 L1-R1에 대해
Figure pct00003
Figure pct00004
30°의 각도로 배향된다.
특정 실시예들에서, 원을 따라 배치된 n개의 균일한 간격의 카메라 쌍들(300)(n은 양의 정수임)을 갖는 카메라 시스템(210)에 대해, 각각의 인접한 카메라 쌍 사이의 각도
Figure pct00005
Figure pct00006
Figure pct00007
360°/n으로 표현될 수 있다. 제한으로서가 아니라 예로서, 균일한 간격의 원형 구성으로 분포된 카메라들의 n = 12쌍들을 갖는 카메라 시스템(210)에 대해, 각각의 인접한 카메라 쌍 사이의 각도
Figure pct00008
는 대략 360°/12 = 30°이다. 제한으로서가 아니라 다른 예로서, 균일한 간격의 원형 구성으로 분포된 카메라들의 n = 8쌍들을 갖는 카메라 시스템(210)에 대해, 각각의 인접한 카메라 쌍 사이의 각도
Figure pct00009
는 대략 360°/8 = 45°이다.
특정 실시예들에서, 제1 및 제2 카메라 쌍(300)은, 상기 카메라들의 제2 쌍의 우측 카메라(212)가 상기 카메라들의 제1 쌍의 좌측 카메라(212)에 인접하고 상기 카메라들의 제2 쌍의 상기 우측 카메라(212)의 FOVH의 중심이 상기 카메라들의 제1 쌍의 상기 좌측 카메라(212)의 FOVH의 중심과 교차하도록, 인터리빙될 수 있다.
도 4의 예에서, 제1 카메라 쌍 L1-R1은 제2 카메라 쌍 L2-R2와 인터리빙되어, 우측 카메라 R2는 좌측 카메라 L1에 인접하고 카메라 R2의 FOVH의 중심(배향(214-R2)로 표시됨)은 카메라 L1의 FOVH의 중심(배향(214-L1)으로 표시됨)과 교차한다.
특정 실시예들에서, 제1 및 제3 카메라 쌍(300)은, 상기 카메라들의 제3 쌍의 좌측 카메라(212)가 상기 카메라들의 제1 쌍의 우측 카메라(212)에 인접하고 상기 카메라들의 제3 쌍의 상기 좌측 카메라(212)의 FOVH의 중심이 상기 카메라들의 제1 쌍의 상기 우측 카메라(212)의 FOVH의 중심과 교차하도록, 인터리빙될 수 있다.
도 4의 예에서, 제1 카메라 쌍 L1-R1은 제n 카메라 쌍 Ln-Rn과 인터리빙되어, 좌측 카메라 Ln은 우측 카메라 Rn에 인접하고 카메라 Ln의 FOVH의 중심(배향(214-Ln)으로 표시됨)은 카메라 R1의 FOVH의 중심(배향(214-R1)으로 표시됨)과 교차한다. 본 개시가 특정 방식으로 인터리빙된 특정 카메라 쌍들을 설명 및 도시하고 있지만, 본 개시는 어떤 적절한 방식으로 인터리빙된 어떤 적절한 카메라 쌍들이든지 고려하고 있다.
특정 실시예들에서, 인접한 카메라 쌍들(300) 사이의 각도
Figure pct00010
는 카메라 시스템(210)의 하나 이상의 카메라 쌍들(300)에 대해 상이할 수 있으므로, 카메라 쌍들(300)은 불균일한 각도 간격을 가질 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)에서 카메라 쌍들(300)의 각도 간격 또는 분포는 적어도 부분적으로 각 카메라(212)의 FOVH에 기반하여 달라질 수 있다. 예를 들면, 보다 좁은 FOVH를 갖는, 카메라 시스템(210)의 일부 카메라 쌍들(300)은 30°의 각도 간격을 가질 수 있는 반면에 보다 넓은 FOVH를 갖는 다른 카메라 쌍들(300)은 50°의 각도 간격을 가진다. 본 개시가 특정 각도 간격을 갖는 특정 카메라 쌍들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 각도 간격을 갖는 어떤 적절한 카메라 쌍들을 갖는 어떤 적절한 카메라 시스템들이든지 고려하고 있다.
특정 실시예들에서, 좌측 카메라들(예를 들면, 사람의 좌측 눈에 대응되는 카메라들 L1, L2 등)의 세트 또는 우측 카메라들(예를 들면, 사람의 우측 눈에 대응되는 카메라들 R1, R2, R3 등)의 세트의 각각의 FOVH는 상기 세트에서 이웃한 카메라들과 각도 중첩(angular overlap, 216)을 가질 수 있다.
도 4의 예에서, 각도 중첩(216)은 이웃한 카메라들 R1 및 R2에 의해 캡처된 이미지들 간의 공유 부분 또는 중첩을 나타낸다. 도 4에서, 카메라들 R2 및 R3, 카메라들 Rn 및 R1, 카메라들 L1 및 L2, 및 카메라들 Ln 및 Ln-1도 또한 유사한 각도 중첩들을 공유할 수 있다.
특정 실시예들에서, 각도 중첩(216)을 갖는 이웃한 카메라들(212)은 그들의 수평 FOV들의 중첩이 10 % 내지 30 %일 수 있다. 제한으로서가 아니라 예로서, 10 % 내지 30 %만큼 중첩되는 수평 FOV들을 갖는 이웃한 카메라들은 각각 10 % 내지 30 %만큼 중첩되는 이미지들을 캡처할 수 있다. 제한으로서가 아니라 다른 예로서, 각각 FOVH 50° 및 대략 10°의 각도 중첩(216)을 갖는 이웃한 카메라들은 대략 20 %(= 10°/50°)의 각도 중첩 또는 이미지 중첩을 갖는다고 말할 수 있다.
특정 실시예들에서, 후술하는 바와 같이, 각도 중첩(216)은 이미지 특징들을 식별하고, 카메라 시스템(210)에 의해 캡처된 대로 전체 뷰를 심 없이 보여주는, 스티칭된 이미지를 생성하는 데 이용될 수 있다. 본 개시가 특정 각도 중첩들을 갖는 특정 카메라들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 각도 중첩들을 갖는 어떤 적절한 카메라들이든지 고려하고 있다.
도 5는 예시적 카메라 시스템(210)의 평면도를 도시한다. 후술하는 바와 같이, 카메라 시스템(210)은, 이미지들을 캡처하고 실시간 비디오를 360도로 및 입체 3-D 포맷으로 기록 또는 스트리밍하도록 구성된, 카메라들(212)의 입체 쌍들(300)의 공간 배치를 포함한다. 특정 실시예들에서, 카메라 시스템(210)은 n개의 카메라 쌍들(300)을 형성하는 2n개의 카메라들(212)을 포함할 수 있으며, 여기서 n은 양의 정수이다.
특정 실시예들에서, 카메라 시스템(210)은 n = 1, 2, 3, 4, 6, 8, 10, 12, 14, 16, 또는 어떤 적절한 수의 카메라 쌍들(300)을 포함할 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은 n = 4개의 카메라 쌍들(300)을 형성하는 8개의 카메라들(212)을 포함할 수 있거나, 또는 카메라 시스템(210)은 n = 8개의 카메라 쌍들(300)을 형성하는 16개의 카메라들(212)을 포함할 수 있다.
도 5의 예에서, n은 12이고, 카메라 시스템(210)은 12개의 카메라 쌍들(300)(예를 들면, 카메라 쌍 L1-R1 내지 카메라 쌍 L12-R12)을 형성하는 24개의 카메라들을 포함한다. 상기한 바와 같이, 카메라 시스템(210)의 카메라 쌍들(300)은, 인접한 카메라 쌍들(300)이 서로에 대해
Figure pct00011
Figure pct00012
360°/n의 각도로 배향되도록, 균일하게 배치될 수 있다. 도 5의 예에서, n은 12이고, 카메라 쌍들(300)은, 카메라 시스템(210)의 중심에서 카메라 쌍들(300)까지 그려진 방사방향 라인들(radial lines) 간의 30° 각도들로 표시된 바와 같이, 서로에 대해 대략 30° (= 360°/12)로 배향된다.
특정 실시예들에서, 카메라 시스템(210)의 카메라들(212)은 이웃한 좌측 카메라들의 수평 FOV들이 중첩되고, 유사하게, 이웃한 우측 카메라들의 수평 FOV들이 중첩되도록 구성될 수 있다. 도 5의 예에서, 이웃한 좌측 카메라들(예를 들면, 카메라들 L1 및 L2, 카메라들 L2 및 L3 등)의 각 쌍은 그들의 수평 FOV들의 중첩이 10 % 내지 30 %일 수 있다. 유사하게, 이웃한 우측 카메라들(예를 들면, 카메라들 R1 및 R2, 카메라들 R2 및 R3 등)의 각 쌍은 그들의 수평 FOV들의 중첩이 10 % 내지 30 %일 수 있다.
특정 실시예들에서, 좌측 카메라들(예를 들면, 도 5의 카메라들 L1 내지 L12)의 각 세트는, 카메라 시스템(210) 주위의 전체 360° 뷰를 커버하는, 좌측 이미지들의 대응 세트를 캡처하도록 배향될 수 있다. 유사하게, 우측 카메라들(예를 들면, 도 5의 카메라들 R1 내지 R12)의 각 세트는, 카메라 시스템(210) 주위의 전체 360°뷰를 커버하는, 우측 이미지들의 대응 세트를 캡처하도록 배향될 수 있다.
특정 실시예들에서, 카메라 시스템(210)의 카메라들(212)은, 카메라들(212)이 카메라 몸체(camera body, 218)의 외측 에지 또는 둘레에 또는 그 근처에 위치하도록, 대략 원형 구성으로 배치될 수 있다.
특정 실시예들에서, 카메라 몸체(218)는 카메라 시스템(210)의 카메라들(212)뿐만 아니라, 예를 들면, 하나 이상의 전원 공급장치들 또는 프로세서들과 같이, 카메라 시스템(210)의 일부인 다른 장치들을 보유하거나, 포함하거나, 또는 둘러싸는 기계적 구조, 엔클로저(enclosure), 또는 케이싱(casing)을 의미할 수 있다.
도 5의 예에서, 카메라 시스템(210)의 24개의 카메라들(212)은, 원 형태를 갖는, 카메라 몸체(218)의 외측 에지 근처에 원형 구성으로 배치된다. 특정 실시예들에서, 카메라 시스템(210)의 각 카메라 쌍(300)은 정렬되어, 그 배향(214)이 공통 중심점(217)으로부터 멀어지거나 또는 방사상으로 외측 방향으로 지향될 수 있다.
도 5의 예에서, 중심점(217)은 카메라 시스템(210)의 몸체(218)의 중심을 의미하고, 방사방향 라인 R로 표시된, 각 카메라 쌍의 배향은 중심점(217)으로부터 방사상으로 외측 방향으로 지향된다.
특정 실시예들에서, 카메라 시스템(210)의 카메라 몸체(218)는 대략 10 cm, 15 cm, 20 cm, 25 cm, 또는 30 cm의 크기, 폭, 또는 직경, 또는 어떤 적절한 크기를 가질 수 있다. 도 5의 예에서, 카메라 몸체(218)는 대략 20 cm의 직경(119)을 갖는 외측 에지를 가질 수 있다. 특정 실시예들에서, 카메라 시스템(210)은, 회전함에 따라, 사람 머리의 크기에 필적하는 크기를 가질 수 있다. 제한으로서가 아니라 예로서, 카메라 몸체(218)는 대략 20 cm의 직경을 가질 수 있고, 카메라 쌍들(300)은, 사람이 그들의 머리를 회전함에 따라, 사람의 눈의 위치에 대응되도록 위치할 수 있다. 본 개시가 특정 크기들, 폭들, 또는 직경들을 갖는 특정 카메라 시스템들을 설명 및 도시하고 있지만, 본 개시는 어떤 적절한 크기들, 폭들, 또는 직경들을 갖는 어떤 적절한 카메라 시스템들이든지 고려하고 있다.
특정 실시예들에서, 카메라 시스템(210)의 둘 이상의 카메라들(212)은 서로 인접하다고 말할 수 있다. 특정 실시예들에서, 서로 인접한 두 개의 카메라들(212)은 상기 두 개의 카메라들 사이에 다른 카메라가 위치하지 않은 상태로 서로의 옆에 또는 근처에 위치한 두 개의 카메라들을 의미할 수 있다.
도 5의 예에서, 카메라들 L1 및 R3은 서로 인접하고, 카메라들 L2 및 R3는 서로 인접하다. 도 5에서, 카메라 R1은 카메라 L11 및 카메라 L12에 인접하다. 특정 실시예들에서, 인접한 카메라들은, 카메라들의 특정 세트의 일부가 아닌 다른 카메라들과 상관없이, 상기 세트 내에서 식별될 수 있다. 제한으로서가 아니라 예로서, 좌측 카메라들의 세트 내에서 두 개의 카메라들은, 상기 두 개의 카메라들 근처에 또는 사이에 위치한 우측 카메라가 있다 하더라도, 서로 인접한 것으로 식별될 수 있다.
도 5에서, 좌측 카메라들(카메라들 L1 내지 L12)의 세트에 대해, 카메라 L1은 카메라들 L2 및 L12에 인접하고, 우측 카메라들(카메라들 R1 내지 R12)의 세트에 대해, 카메라들 R1 및 R2는 인접하다.
도 6은 카메라 시스템(210)의 카메라들(212)에 의해 캡처된 이미지들(I-1 내지 I-8)의 예시적 세트를 도시한다. 제한으로서가 아니라 예로서, 이미지들(I-1 내지 I-8)은 카메라 시스템(210)의 좌측 카메라들 L-1 내지 L-8에 의해 각각 캡처된 이미지들에 대응할 수 있다. 이미지들(I-1 내지 I-8)은 도 4 또는 도 5에 도시된 것과 유사한 카메라 시스템(210)을 이용하여 캡처된 이미지들을 나타낼 수 있다.
특정 실시예들에서, 카메라 시스템(210)의 좌측 또는 우측 카메라들(212)의 세트에 의해 캡처된 이미지들의 세트는 이웃한 이미지들 간에 중첩 영역들(610)을 가질 수 있으며, 여기서 중첩 영역들(610)은 대략 동일 장면에 대응되는 이웃한 이미지들의 부분들 또는 영역들을 나타낸다. 도 6의 예에서, 중첩 영역(6105-6)은 이웃한 이미지들(I-5 및 I-6) 간의 중첩을 나타내고, 중첩 영역(6105-6)에서의 캡처된 장면은 구름의 우측 부분 및 다리의 일부를 포함한다. 유사하게, 중첩 영역(6106-7)은 이웃한 이미지들(I-6 및 I-7) 간의 중첩을 나타내고, 중첩 영역(6106-7)에서의 캡처된 장면은 교탑(bridge tower)을 포함한다.
특정 실시예들에서, 중첩 영역(610)은 이웃한는 카메라들(212)의 수평 FOV들의 중첩에 대응될 수 있다. 특정 실시예들에서, 카메라 시스템(210)의 좌측 또는 우측 카메라들(212)에 의해 캡처된 이웃한 이미지들은 10 % 내지 30 %의 중첩을 가질 수 있다. 특정 실시예들에서, 중첩의 백분율의 양은 대응되는 이미지의 높이, 폭, 또는 면적에 대한 중첩 영역(610)의 높이, 폭, 또는 면적의 비에 대응될 수 있다.
도 6의 예에서, 이미지들(I-5 및 I-6) 간의 중첩의 양은 중첩 영역(6105-6)의 폭(604)을 이미지(I-5 또는 I-6)의 폭(606)으로 나눈 것과 동일하다. 특정 실시예들에서, 중첩 영역(610)의 치수 또는 이미지의 치수는 거리로(예를 들면, mm 또는 cm 단위로) 또는 픽셀수로 표현될 수 있다.
도 6의 예에서, 중첩 영역 폭(604)이 162 픽셀이고 이미지 폭(606)이 1,080 픽셀이라면, 이미지들(I-5 및 I-6) 간의 중첩은 15 %(= 162/1080)이다. 본 개시가 특정 중첩 영역들 또는 중첩 양들을 갖는 특정 이미지들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 중첩 영역들 또는 중첩 양들을 갖는 어떤 적절한 이미지들이든지 고려하고 있다.
특정 실시예들에서, 카메라(212)는, 이미지의 수직 범위(607)가 상기 이미지의 수평 범위(606)보다 크도록 종횡비를 갖는, 상기 이미지를 캡처하도록 위치할 수 있다. 제한으로서가 아니라 예로서, 카메라(212)는 1,920 픽셀의 수직 범위(607) 및 1,080 픽셀의 수평 범위(606)를 갖는 이미지를 캡처할 수 있다. 도 6의 예에서, 이미지(I-6)는 수평 범위(606)보다 큰 수직 범위(607)를 가진다.
특정 실시예들에서, 인접한 이미지들 또는 이웃한 이미지들은, 공통 중첩 영역(610)을 공유하는, 서로 옆에 위치한 이미지들을 의미할 수 있다. 도 6의 예에서, 이미지들(I-2 및 I-3)은 인접하고, 이미지(I-6)는 이미지들(I-5 및 I-7)에 인접하다. 특정 실시예들에서, 인접한 이미지들은 각각의 인접한 카메라들에 의해 캡처된 이미지들에 대응될 수 있다. 도 6의 예에서, 이미지들(I-1 내지 I-8)은, 예를 들면, 도 5의 좌측 카메라들(L1 내지 L8)과 같은 좌측 카메라들(L1 내지 L8)에 의해 각각 캡처된 이미지들에 대응될 수 있다. 이미지들(I-1 및 I-2)은 인접한 이미지들이고, 이 이미지들은 각각 인접한 좌측 카메라들(L1 및 L2)에 의해 캡처될 수 있다.
도 7은 예시적 카메라 시스템(210)의 측면도를 도시한다. 특정 실시예들에서, 카메라 시스템(210)은, 카메라 시스템(210)의 주변을 따라 배치된 측면 카메라들(212)에 의해 캡처된 상반된 원통형 측면 뷰 위에 "루프(roof)"를 생성하는, 하나 이상의 상부 카메라들(212T)을 포함할 수 있다.
특정 실시예들에서, 측면 카메라들(212)은, 예를 들면, 도 4 또는 도 5에 도시된 예시적 카메라들(212)와 같이, 그들의 각각의 배향들(214)이 동일 평면 내에 위치한, 평면 구성으로 배치된 카메라들(212)을 의미할 수 있다.
특정 실시예들에서, 상부 카메라(212T)는 측면 카메라들(212)로부터의 이미지들과 결합될 수 있는 상향 뷰(upward view)를 제공하여, 사용자가, 3-D 비디오 시청 시, 올려다 볼 수 있도록(뿐만 아니라, 그들의 좌측 또는 우측을 보거나 또는 FOVV의 하향 범위 내에서 내려다 볼 수 있도록) 한다.
특정 실시예들에서, 카메라 시스템(210)은 위쪽을 가리키는 하나 이상의 상부 카메라들(212T) 뿐만 아니라 아래쪽을 가리키는 하나 이상의 하부 카메라들(도 7에 도시되지 않음)을 포함할 수 있다. 제한으로서가 아니라 예로서, 측면 카메라들(212)로부터의 이미지들은 상부 카메라(212T) 및 하부 카메라로부터의 이미지들과 결합되어, 사용자가, 3-D 비디오 시청 시, 어떠한 방향으로든(예를 들면, 좌, 우, 상, 또는 하로) 볼 수 있도록 한다.
특정 실시예들에서, 카메라 시스템(210)은 둘 이상의 상부 카메라들(212T)(예를 들면, 입체 쌍을 형성할 수 있는 상부-좌측 카메라 및 상부-우측 카메라)을 포함할 수 있고, 상부 카메라들(212T)로부터의 이미지들은 결합되어, 3-D 비디오를 시청하고 위쪽을 보는 동안, 사용자의 3-D 지각(perception)을 향상시킬 수 있다. 본 개시가 특정 상부 또는 하부 카메라들을 갖는 특정 카메라 시스템들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 상부 또는 하부 카메라들을 갖는 어떤 적절한 카메라 시스템들이든지 고려하고 있다.
특정 실시예들에서, 상부 카메라(212T)는, 하나 이상의 측면 카메라들(212)의 수직 시야(FOVV)와 중첩되는, 시야(FOVT)를 가질 수 있다. 제한으로서가 아니라 예로서, 상부 카메라(212T)로부터의 이미지의 외측 에지부는 카메라들(212)로부터의 이미지들의 상부와 10 % 내지 30 %만큼 중첩될 수 있다. 도 7의 예에서, 각도 중첩(216)은 상부 카메라(212T)의 FOVT와 측면 카메라(212)의 FOVV 간의 중첩을 나타낼 수 있다.
특정 실시예들에서, 상부 카메라(212T)는 상대적으로 큰 FOVT를 가질 수 있다. 제한으로서가 아니라 예로서, 상부 카메라(212T)는 어안 렌즈를 포함할 수 있고 상부 카메라(212T)의 FOVT는 140° 내지 185°의 범위에 있을 수 있다. 특정 실시예들에서, 카메라 시스템(210)은 측면 카메라들(212)의 세트를 포함할 수 있고 상부 카메라(212T)를 포함하지 않을 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은 140° 내지 185° 범위의 FOVV를 갖는 측면 카메라들(212)을 포함할 수 있고, 측면 카메라들(212)은 상부 카메라를 이용하지 않고 전체 360° 뷰의 모두 또는 대부분을 캡처하도록 구성될 수 있다.
특정 실시예들에서 및 도 7에 도시한 바와 같이, 카메라 시스템(210)은 측면 카메라들(212)의 세트뿐만 아니라 상부 카메라(212T)를 포함할 수 있다. 특정 실시예들에서, 상부 카메라(212T)를 갖는 카메라 시스템(210)은 측면 카메라들(212)이, 상부 카메라가 없는 카메라 시스템(210)에 대해, 감소된 FOVV를 갖도록 할 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은 100° 내지 160° 범위의 FOVV를 갖는 측면 카메라들(212)을 포함할 수 있으며, 여기서 FOVV는 상부 카메라(212T)의 FOVT와 중첩된다.
특정 실시예들에서, 상부 카메라(212T)는 카메라 시스템(210)의 상면 근처에 위치할 수 있거나, 또는, 도 7에 도시한 바와 같이, 상부 카메라(212T)는 카메라 시스템(210)의 상면에 대해 오목하게 될 수 있다. 제한으로서가 아니라 예로서, 상부 카메라(212T)는, 측면 카메라들(212)과의 보다 큰 중첩 양을 제공할 수 있는, 오목한 위치에 위치할 수 있다.
특정 실시예들에서, 카메라 시스템(210)의 측면 카메라들(212)은 각각 카메라 시스템(210)의 수평면에 놓인 배향(214)을 가질 수 있고, 상부 카메라(212T)의 배향(214T)은 배향들(214)에 대해 대략 수직할 수 있다. 도 7의 예에서, 측면 카메라들(212)은 수평하게 배향되고, 상부 카메라(212T)는 수직 배향(214T)을 가진다. 본 개시가, 특정 에지 카메라들 및 특정 상부 카메라들이 특정 배치들, 배향들, 또는 시야들을 갖는, 특정 카메라 시스템들을 설명 및 예시하고 있지만, 본 개시는, 어떤 적절한 에지 카메라들 및 어떤 적절한 상부 카메라들이 어떤 적절한 배치들, 배향들, 또는 시야들을 갖는, 어떤 적절한 카메라 시스템들이든지 고려하고 있다.
도 8은 카메라 시스템(210)의 카메라들(212)에 의해 캡처된 중첩되는 이미지들의 예시적 세트를 도시한다. 특정 실시예들에서, n개의 카메라 쌍들(300) 및 하나의 상부 카메라(212T)를 갖는 카메라 시스템(210)은 비디오의 각 프레임에 대해 2n+1개의 이미지들을 캡처할 수 있다.
도 8에 도시된 이미지들은 도 7에 도시된 것과 유사한 카메라 시스템(210)의 2n개의 측면 카메라들(212) 및 상부 카메라(212T)를 이용하여 캡처될 수 있다. 특정 실시예들에서, n개의 좌측 카메라들(212) 및 n개의 우측 카메라들(212)은 쌍으로 배치되고 상기한 바와 같이 인터리빙되어, 좌측 카메라 이미지들(I-L1 내지 I-Ln)이 중첩되고 우측 카메라 이미지들(I-R1 내지 I-Rn)이 중첩될 수 있다.
도 8의 예에서, 중첩 영역들(610L)은 이웃한 좌측 카메라들의 이미지들의 중첩 부분들을 나타내고, 중첩 영역들(610R)은 이웃한 우측 카메라들의 이미지들의 중첩 부분들을 나타낸다. 제한으로서가 아니라 예로서, 이웃한 좌측 카메라들(2 및 3)은 각각 대응되는 중첩 영역(610L2-3)을 갖는 이미지들(I-L2 및 I-L3)을 캡처할 수 있다.
도 8의 예에서, 이미지(I-Top)는 상부 카메라(212T)에 의해 캡처된 이미지를 나타내고, 중첩 영역(610T)은 측면 카메라들(212)로부터의 이미지들의 상부들과 중첩되는 이미지(I-Top)의 외측 에지부를 나타낸다. 특정 실시예들에서, 중첩 영역(610T)은 하나 이상의 측면 카메라들(212)로부터의 이미지들과 상부 이미지(I-Top)를 스티칭하는 데 이용될 수 있다.
특정 실시예들에서, 좌측 및 우측 카메라들(212)은, 각각의 좌측 카메라 중첩 영역(610L)이 대응 우측 카메라(212)의 단일 이미지 내에서 캡처되고 각각의 우측 카메라 중첩 영역(610R)이 대응 좌측 카메라(212)의 단일 이미지 내에서 캡처되도록, 배치될 수 있다.
도 8의 예에서, 이미지들(I-L1 및 I-L2)의 중첩 영역(610L1-2)은, 좌측 카메라들 L1 및 L2 간의 중첩이 우측 카메라 R1에 의해 캡처되도록, 이미지(I-R1)에 대응된다. 유사하게, 이미지들(I-R2 및 I-R3)의 중첩 영역(610R2-3)은, 카메라들 R2 및 R3 간의 중첩이 카메라 L3의 시야 내에 포함되도록, 이미지(I-L3)에 대응된다.
특정 실시예들에서, 그리고 후술하는 바와 같이, 두 개의 이미지들 간의 중첩 영역(610)은 이미지 특징들을 식별하고 스티칭된 이미지를 생성하는 데 이용될 수 있다. 또한, 다른 카메라에 의해 캡처된 중첩 영역(610)도 스티칭 프로세스에서 이용될 수 있다. 도 8의 예에서, 이미지들(I-R1 및 I-R2)은, 상기 두 개의 이미지들의 중첩 영역(610R1-2)에 위치한 특징들에 적어도 부분적으로 기초하여, 서로 스티칭될 수 있다. 또한, 이미지(I-L2)는 동일한 중첩 영역을 캡처하므로, 이미지(I-L2)도 스티칭 프로세스에, 또는 이미지들(I-R1 및 I-R2)에 적용되는 스티칭 프로세스의 정확도를 검증하는(verify) 데 이용될 수 있다. 본 개시가 특정 중첩 영역들을 갖는 특정 이미지들을 캡처하도록 구성된 특정 카메라 시스템들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 중첩 영역들을 갖는 어떤 적절한 이미지들을 캡처하도록 구성된 어떤 적절한 카메라 시스템들이든지 고려하고 있다.
특정 실시예들에서, 카메라 시스템(210)은 이미지에서의 객체들에 관한 깊이 정보를 얻기 위한 하나 이상의 깊이 센서들을 포함할 수 있다. 제한으로서가 아니라 예로서, 하나 이상의 깊이 센서들은 카메라 시스템(210)의 카메라들 사이에 또는 근처에 위치할 수 있다.
특정 실시예들에서, 깊이 센서는 카메라들(212)의 FOV 내에 위치한 객체들에 관한 깊이 또는 거리 정보를 결정하는 데 이용될 수 있다. 제한으로서가 아니라 예로서, 깊이 센서는 카메라(212)의 FOV 내의 사람이 카메라 시스템(210)으로부터 대략 1.5 미터에 위치하는 반면 배경에서의 객체는 대략 4 미터 떨어져 있다고 결정하는 데 이용될 수 있다.
특정 실시예들에서, 깊이 정보는 삼각 측량(triangulation) 기법에 기초하여 결정될 수 있다. 제한으로서가 아니라 예로서, 둘 이상의 각각의 카메라들(212)에 의해 캡처된 둘 이상의 이미지들은, 이미지들에서의 객체의 카메라 시스템(210)으로부터의 거리를 결정하기 위해, 삼각 측량을 이용하여 분석될 수 있다.
특정 실시예들에서, 카메라 시스템(210)은 구조광(structured-light) 스캐닝 기법에 기초하여 동작하는 깊이 센서를 포함할 수 있다. 제한으로서가 아니라 예로서, 구조광 3-D 스캐너는 투영광 패턴(projected light pattern)(예를 들면, 레이저 또는 발광 다이오드와 같은 적외선 소스로부터의 광의 시트(sheet) 또는 광의 평행 스트라이프들(parallel stripes))으로 장면을 조사할(illuminate) 수 있고, 상기 투영광 패턴으로부터의 반사광 또는 산란광의 이미지는 캡처되어(예를 들면, 상기 깊이 센서의 일부인 카메라에 의해) 상기 장면에서의 객체들의 거리들을 결정하는 데 이용될 수 있다.
특정 실시예들에서, 카메라 시스템(210)은, 객체까지의 거리가 광 펄스가 상기 객체로 오고 가는 데 소요되는 시간으로부터 결정되는, 비행시간(time-of-flight) 기법에 기초하여 동작하는 깊이 센서를 포함할 수 있다. 본 개시가 특정 방식들로 동작하는 특정 깊이 센서들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 방식들로 동작하는 어떤 적절한 깊이 센서들이든지 고려하고 있다.
특정 실시예들에서, 깊이 센서는 카메라 시스템(210) 근처에(예를 들면, 카메라 시스템(210)의 0.1 미터 내지 10 미터 이내) 위치한 객체들에 관한 깊이 정보를 제공할 수 있으며, 상기 깊이 정보는 스티칭 프로세스를 향상시키는 데 이용될 수 있다. 후술하는 바와 같이, 스티칭 프로세스는 장면의 기하구조(geometry)를 계산하기 위해 인접한 카메라들로부터의 중첩 이미지들 간의 대응(correspondence)을 이용할 수 있다. 깊이 센서를 이용하여, 하나 이상의 카메라들(212)의 FOV 내의 아이템들의 상대적 깊이 또는 거리가, 단일 전체 깊이(single overall depth)를 가정하지 않고, 결정될 수 있다.
특정 실시예들에서, 깊이 센서 정보는 이미지의 가까운 부분들이 먼 부분들과 별도로 스티칭되도록 할 수 있다. 제한으로서가 아니라 예로서, 가까운 및 먼 객체들이 별도로 스티칭된 다음 결합되도록 하는 장면의 세그먼트화(segmentation)는 카메라 시스템(210)과 이미지에서의 객체들 간의 거리를 고려함으로써 향상된 스티칭 결과를 제공할 수 있다.
특정 실시예들에서, 깊이 센서는 카메라 시스템(210)에 가까이 위치한 객체의 이미지의 부분들을 스트레칭(stretch), 압축(compress), 또는 워핑하는(warp) 능력을 제공할 수 있어, 스티칭된 이미지에서의 객체의 향상된 렌더링이라는 결과를 가져올 수 있다. 제한으로서가 아니라 예로서, 객체가 카메라 시스템(210)에 가까이 있는 경우(예를 들면, 사람이 카메라 시스템(210)의 0.5 미터 이내에서 지나가고 있는 경우), 상기 객체의 거리에 대해 고려함으로써 스티칭된 이미지에서 왜곡 양이 감소되는 결과를 가져올 수 있다.
특정 실시예들에서, 깊이 센서는 카메라 시스템(210)의 임계 거리(threshold distance) 내에 있는 객체들을 뷰로부터 제외하는 능력을 제공할 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)에 매우 가까운 것으로 결정된 객체(예를 들면, 카메라 시스템(210)의 0.1 미터 내의 사람의 손)는, 상기 객체가 장면의 뷰를 차단하지 않도록, 이미지 처리 시 제거될 수 있다.
특정 실시예들에서, 카메라 시스템(210)은 하나 이상의 적외선(infrared: IR) 카메라들을 포함할 수 있으며, 여기서 IR 카메라는 IR광(예를 들면, 대략 0.8 μm 내지 14 μm의 파장을 갖는 광)에 민감한 카메라를 의미할 수 있다.
특정 실시예들에서, IR 카메라는 열복사(thermal radiation)에 민감할 수 있거나 또는, 가시광 카메라(예를 들면, 카메라(212))의 민감도(sensitivity)가 감소될 수 있는, 저조도(low-light) 상황들(예를 들면, 어두운 방 또는 야간의 야외)에서 장면을 영상화하는 능력을 제공할 수 있다.
제한으로서가 아니라 예로서, 카메라들(212)(가시광 감지에 최적화될 수 있음) 외에, 카메라 시스템(210)은 또한 하나 이상의 IR 카메라들을 포함할 수 있고, 카메라들(212) 및 상기 IR 카메라들로부터의 정보 또는 이미지들은, 저조도 상황들에서 이미지 캡처 또는 렌더링을 향상시키기 위해, 결합될 수 있다. 제한으로서가 아니라 다른 예로서, 카메라 시스템(210)은 카메라 시스템(210) 주위의 360° 파노라마 뷰에 걸쳐 이미지들을 캡처하도록 배치된 IR 카메라들의 세트를 포함할 수 있다. 제한으로서가 아니라 또 다른 예로서, 카메라 시스템(210)의 카메라들(212)은 가시광뿐만 아니라 적외선에 대한 민감성을 갖도록 구성될 수 있다. 본 개시가 특정 가시광 또는 적외선 카메라들을 갖는 특정 카메라 시스템들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 가시광 또는 적외선 카메라들을 갖는 어떤 적절한 카메라 시스템들이든지 고려하고 있다.
특정 실시예들에서, 카메라 시스템(210)은 보다 넓은 FOV로 또는 카메라들(212)과는 상이한 뷰로 장면을 영상화하도록 구성된 하나 이상의 보조(auxiliary) 카메라들을 포함할 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은 상기한 바와 같은 카메라들(212)의 세트를 포함할 수 있고, 카메라 시스템은 또한 카메라들(212)의 FOV보다 넓은 FOV를 갖는 하나 이상의 어안 카메라들 또는 입체 카메라들을 포함할 수 있다. 특정 실시예들에서, 보다 넓은 FOV를 갖는 보조 카메라들은 카메라들(212)로부터의 캡처된 이미지들이, 균일한 색상 또는 질감(예를 들면, 벽)의 광활한 영역을 보는 경우에도, 성공적으로 스티칭되도록 할 수 있다. 특정 실시예들에서, 카메라들(212)은 고해상도(상대적으로 좁은 FOV라는 결과를 가져올 수 있음)를 갖도록 구성될 수 있고, 보다 넓은 FOV를 갖는 보조 카메라들은, 카메라들(212)로부터의 고해상도 이미지들이 성공적으로 정렬되고 서로 스티칭될 수 있도록 하는, 광시야 기준(wide-field reference)을 제공할 수 있다.
특정 실시예들에서, 카메라들(212)은 대략 180도 이상의 수직 시야를 캡처할 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은 대략 185°의 FOVV를 갖는 카메라들(212)을 포함할 수 있다. 특정 실시예들에서, 카메라 시스템(210)은 180° 이상의 FOVV를 갖는 카메라들(212)의 세트를 포함할 수 있으며, 전체 시야 커버리지(full viewing coverage)가 카메라들(212)에 의해 제공될 수 있기 때문에, 카메라 시스템(210)은 상부 카메라(212T)를 포함하지 않을 수 있다.
특정 실시예들에서, 카메라 시스템(210)은 하나 이상의 어안 카메라들을 포함할 수 있으며, 여기서 어안 카메라는 넓은 FOV(예를 들면, 180도 이상의 FOV)를 갖는 카메라를 의미할 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은 카메라 몸체(218)의 중심 근처에 위치한 2개, 3개, 또는 4개의 어안 카메라들을 포함할 수 있다.
제한으로서가 아니라 다른 예로서, 카메라 시스템(210)은 어안 카메라들의 하나 이상의 쌍들(예를 들면, 두 쌍의 어안 카메라들로 구성된 네 개의 어안 카메라들)을 포함할 수 있다. 한 쌍의 어안 카메라들은 3-D 이미지들을 캡처하도록 구성될 수 있고 IPD에 대응되는 ICS 거리만큼 이격된 두 개의 어안 카메라들을 포함할 수 있다.
특정 실시예들에서, 어안 카메라들을 갖는 카메라 시스템(210)은 3-D 입체영상(stereopsis)(예를 들면, 깊이 또는 3-D 구조의 지각)을 시뮬레이션하도록 구성될 수 있고 이미지 구(image sphere) 내에 위치한 하나 이상의 가상 카메라들에 대응될 수 있다.
특정 실시예들에서, 카메라 시스템(210)은 상대적으로 높은 FOVV 및 낮은 FOVH를 갖는 카메라들(212)을 포함할 수 있다. 제한으로서가 아니라 예로서, 카메라들(212)은 수평보다 수직으로 보다 넓은 시야를 제공하는 렌즈(예를 들면, 비점수차 렌즈(astigmatic lens))를 가질 수 있다. 제한으로서가 아니라 다른 예로서, 카메라들(212)은 대략 180°의 FOVV 및 대략 30°의 FOVH를 가질 수 있다. 특정 실시예들에서, 상대적으로 좁은 수평 FOV는 수평 방향으로 상대적으로 적은 왜곡을 갖는 캡처된 이미지를 제공할 수 있다.
특정 실시예들에서, 상대적으로 넓은 FOVV에 연관된 수직 방향의 왜곡은, 적어도 부분적으로 렌즈 캘리브레이션 정보에 기반한, 캡처-후 처리에 의해 되돌릴 수 있다. 특정 실시예들에서, 수직 방향의 왜곡을 제거하는 것은 수평 및 수직 방향 둘 모두의 왜곡을 제거하는 것보다 효율적일 수 있다. 제한으로서가 아니라 예로서, 상대적으로 낮은 FOVH를 갖는 카메라(212)는, 이미지 왜곡이 주로 하나의 축(예를 들면, 수직축)에 따른 것이므로, 왜곡 제거의 향상을 제공할 수 있다.
특정 실시예들에서, 카메라 시스템(210)은 중간(moderate)-FOV 카메라들(212)의 둘 이상의 세트들을 포함할 수 있다. 제한으로서가 아니라 예로서, 카메라들(212)은 30도 내지 90도의 수직 및 수평 FOV를 가질 수 있다.
특정 실시예들에서, 카메라 시스템(210)은 카메라들(212)의 둘 이상의 세트들을 포함할 수 있으며 상기 세트들이 행으로 배열될 수 있다(예를 들면, 카메라들(212)의 한 세트 또는 링(ring)이 다른 세트 위에 위치함). 카메라들(212)의 각 세트는 이미지들의 한 링을 캡처하도록 구성될 수 있으며, 각 링은 수평 방향으로 360도 파노라마 및 수직 방향으로 중간 FOV(예를 들면, 60도)를 커버한다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은 카메라들(212)의 세 세트들을 포함할 수 있으며, 각 카메라는, 인접한 세트들과 대략 15도 중첩되는, 대략 65도의 FOVV를 가진다. 카메라들(212)의 각 세트는 고해상도로 및 상대적으로 낮은 왜곡으로 이미지들을 캡처할 수 있으며, 각 링으로부터의 이미지들은, 전체 파노라마를 커버하는, 고해상도, 저왜곡 이미지들을 생성하도록 결합될 수 있다.
특정 실시예들에서, 카메라 시스템(210)은, 카메라들(212)이 입체 쌍들로 결합되지 않을 수 있는, 다수의 카메라들(212)을 포함할 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은 중첩되는 수평 FOV들을 갖도록 배치된 12개의 카메라들을 포함하여 상기 카메라들이 360도 파노라마를 캡처하도록 할 수 있다.
특정 실시예들에서, 카메라들(212)은 정렬되어 그들의 배향들(214)이 공통 중심점(217)(예를 들면, 카메라 시스템(210)의 몸체(218)의 중심)으로부터 멀어지도록, 또는 방사상으로 외향하도록 지향될 수 있다. 특정 실시예들에서, 카메라들(212)은 3-D 이미지들을 캡처하지 않을 수 있으며, 3-D 효과는 이미지 캡처 후 스티칭 또는 재구성 프로세스 시 생성될 수 있다. 제한으로서가 아니라 예로서, 입체 영상(stereopsis)을 시뮬레이션하기 위해, 캡처-후 처리가 이미지들에 적용될 수 있다.
특정 실시예들에서, 캘리브레이션 절차가 카메라들(212) 또는 카메라 시스템(210)에 적용될 수 있다. 제한으로서가 아니라 예로서, 카메라(212), 카메라 쌍(300), 또는 카메라 시스템(210)은 생성 공차들(production tolerances)에 기인한 위치 또는 정렬 오차를 가질 수 있으며, 캘리브레이션 절차는 이 오차들을 보정 또는 보상하고 이미지들의 스티칭이 향상될 수 있게 하는 데 이용될 수 있다.
특정 실시예들에서, 캘리브레이션 절차는 카메라(212) 또는 카메라 쌍(300)이 위치 또는 배향 오차 또는 오프셋을 가진다는 것을 결정하는 데 이용될 수 있고, 캡처된 이미지들에서의 대응되는 오차 또는 오프셋은 이미지 캡처 시 또는 캡처-후 프로세스 시 보정될 수 있다.
제한으로서가 아니라 예로서, 카메라 쌍들(300)은 6.5 mm의 ICS를 갖도록 제조될 수 있으며, 캘리브레이션 절차로부터, 카메라 쌍(300)이 7.0 mm의 ICS를 갖는다는 것이 결정될 수 있다. 상기 카메라 쌍(300)의 ICS와 타겟 ICS 간의 0.5 mm의 차이는 이미지 캡처 시에 또는 캡처-후 보정 프로세스로 보정될 수 있다(예를 들면, 0.5 mm에 대응되는 오프셋이 카메라들(212) 중 하나에 의해 캡처된 이미지들에 적용될 수 있다). 제한으로서가 아니라 다른 예로서, 카메라 쌍들(300)은 인접한 카메라 쌍들(300) 간에 균일한 30°의 각도 간격을 갖도록 제조될 수 있으며, 캘리브레이션 절차로부터, 카메라 쌍(300)이 인접한 카메라 쌍(300)에 대해 29°의 각도 간격을 갖는다고 결정될 수 있다. 카메라 쌍들(300) 간의 1°의 각도 오차는 이미지들이 캡처되는 동안 또는 캡처-후 보정 프로세스 시 보정될 수 있다(예를 들면, 1° 회전에 대응되는 오프셋이 하나 이상의 카메라들(212)로부터의 캡처된 이미지들에 적용될 수 있다).
특정 실시예들에서, 캘리브레이션 절차는, 카메라 시스템(210)이 제조된 후, 카메라 시스템(210)이 사용되기 전, 주기적 간격으로(예를 들면, 매달), 또는 어떤 적절한 시간 또는 시간 간격으로, 카메라 시스템(210)에 적용될 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은 장면을 캡처하기 전에 캘리브레이션 절차를 적용할 수 있으며, 이는 성공적인 스티칭 프로세스를 보장하기 위해 이미지 캡처 시 카메라들(212)의 위치들 또는 배향들을 알도록 할 수 있다.
제한으로서가 아니라 다른 예로서, 캘리브레이션 절차는, 온도 변화, 카메라 시스템(210)의 노후화, 또는 기계적 충격(예를 들면, 카메라 시스템(210)을 운반 중 떨어뜨린 경우)에 기인할 수 있는, 카메라들(212)의 오정렬을 보정하기 위해 카메라 시스템(210)에 적용될 수 있다.
특정 실시예들에서, 일단 캘리브레이션 절차가 수행되면, 카메라들(212) 또는 카메라 쌍들(300)의 캘리브레이션에 관한 데이터는 카메라 시스템(210)의 비휘발성 메모리에 저장될 수 있다. 본 개시가 특정 시간들에서 특정 방식들로 수행되는 특정 캘리브레이션 절차들을 설명하고 있지만, 본 개시는 어떤 적절한 시간들에서 어떤 적절한 방식들로 수행되는 어떤 적절한 캘리브레이션 절차들이든지 고려하고 있다.
특정 실시예들에서, 카메라 시스템(210)의 카메라들(212)은 투영광을 이용하여 캘리브레이션될 수 있다. 특정 실시예들에서, 투영광 캘리브레이션은, 광각 프로젝터, 램프 앞의 마스크, 또는 광학 캘리브레이션 패턴을 인근 표면들 상에 투영하는 레이저 스캐너 또는 반사기를 이용하여 실시될 수 있다. 제한으로서가 아니라 예로서, 인근 표면들 상에 투영되는 캘리브레이션 패턴을 생성하기 위해, 레이저 빔은 회절 격자(diffraction grating) 또는 전동 거울(motorized mirror)에 의해 반사될 수 있다. 투영된 레이저 패턴은 카메라 캘리브레이션 파라미터들을 결정하기 위해 카메라들(212)에 의해 영상화될 수 있다.
특정 실시예들에서, 캘리브레이션 패턴을 생성하고 투영하기 위한 광학 어셈블리는, 사용 중이 아닌 경우, 카메라 시스템 몸체(218) 내로 또는 아래로 들어가도록 기계화될 수 있다. 특정 실시예들에서, 광학 캘리브레이션 어셈블리는 상이한 방향들로 캘리브레이션 패턴을 투영하기 위해 회전하도록 구성될 수 있어, 카메라 시스템(210)의 상이한 카메라들(212)이 캘리브레이션될 수 있다.
특정 실시예들에서, 카메라 시스템(210)은, 캘리브레이션의 향상된 정확도를 제공하기 위해, 제어된 방(controlled room) 또는 구면(spherical surface) 내부에 배치될 수 있다. 본 개시가 특정한 투영광 캘리브레이션 시스템들을 설명하고 있지만, 본 개시는 어떤 적절한 투영광 캘리브레이션 시스템들이든지 고려하고 있다.
특정 실시예들에서, 카메라 시스템(210)의 카메라들(212)은 물리적 또는 기계적 프로세스 또는 구조를 이용하여 캘리브레이션될 수 있다. 제한으로서가 아니라 예로서, 예를 들면, 팬(fan)형 또는 우산형 장치와 같은, 기계적 캘리브레이션 구조가 카메라들(212) 사이에 또는 카메라 시스템 몸체(218)의 아래 또는 내부에 보관될 수 있다. 캘리브레이션 중에, 이 물리적 캘리브레이터들은 카메라 시스템(210)을 기준으로 알려진 위치에 기계적으로 배치될 수 있다. 상기 물리적 캘리브레이터들은 카메라들(212)에 의해 영상화될 수 있고, 상기 캡처된 이미지들은 캘리브레이션 파라미터들을 결정하기 위해 알려진 기하구조와 비교될 수 있다.
특정 실시예들에서, 기계적 캘리브레이션 장치는 카메라 시스템(210)과는 별도의 물리적 장치일 수 있다. 제한으로서가 아니라 예로서, 외부 캘리브레이션 장치는, 카메라 시스템(210)이 상기 캘리브레이션 장치를 기준으로 하여 알려진 정밀한 위치에 유지될 수 있도록, 구형 외측 몸체로부터 내측으로 연장되는 내부 스포크들(spokes)을 가질 수 있다. 제한으로서가 아니라 다른 예로서, 외부 캘리브레이션 장치는, 카메라 시스템(210)이 상기 캘리브레이션 장치를 기준으로 하여 정밀하게 위치할 수 있게 하는, 광학 센서들을 포함할 수 있다.
특정 실시예들에서, 캘리브레이션 장치의 내면은 카메라들(212)에 의해 영상화된 캘리브레이션 표시들(markings)을 가질 수 있으며, 카메라들(212) 또는 카메라 쌍들(300)에 대한 캘리브레이션 파라미터들은 상기 캘리브레이션 표시들의 캡처된 이미지들에 기반하여 결정될 수 있다.
특정 실시예들에서, 카메라 시스템(210)은, 캘리브레이션 패턴을 캘리브레이션 장치의 내면 상에 투영하는, 광학 어셈블리를 포함할 수 있다. 본 개시가 특정 캘리브레이션 시스템들을 설명하고 있지만, 본 개시는 어떤 적절한 물리적 캘리브레이션 시스템들이든지 고려하고 있다.
특정 실시예들에서, 카메라 시스템(210)은 카메라 시스템(210)의 일부로 통합된 하나 이상의 프로세서들을 포함할 수 있거나, 또는 카메라 시스템(210)은 카메라 시스템(210) 외부에 위치한 하나 이상의 프로세서들과 결합될 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은 카메라 시스템(210)의 몸체(218) 내부에 위치하는 하나 이상의 전단 프로세서들(220)을 포함할 수 있다. 제한으로서가 아니라 다른 예로서, 카메라들(212)은 USB를 통해 하나 이상의 전단 프로세서 기계들(220)의 세트에 연결될 수 있다.
특정 실시예들에서, 전단 프로세서들(220)은 카메라들(212)의 초기 제어, 카메라 왜곡 보정, 이미지들의 크로핑(cropping), 비디오들의 인코딩, 이미지 데이터의 압축, 또는 비디오들의 전송을 수행할 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)은, 전송을 위한 비디오 페이로드(payload)를 줄이기 위해, 초기 이미지 조정, 카메라 파라미터 제어, 또는 카메라 데이터의 초기 인코딩을 수행하는 카메라들(212)에 연결된 독립적인 전단 프로세서들(220)을 포함할 수 있다.
특정 실시예들에서, 카메라 시스템(210)과 연관된 전단 프로세서의 수는, 적어도 부분적으로, 카메라 시스템(210) 내의 다수의 카메라들(212)뿐만 아니라 카메라들(212)에 의해 캡처된 비디오의 크기 또는 프레임 레이트에 의존할 수 있다. 제한으로서가 아니라 예로서, 각 카메라(212)는 하나 이상의 전용 프로세서들(220)에 연결될 수 있다. 본 개시가 특정 방식들로 특정 프로세서들에 결합된 특정 카메라 시스템들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 방식들로 어떤 적절한 프로세서들에 결합된 어떤 적절한 카메라 시스템들이든지 고려하고 있다.
특정 실시예들에서, 카메라 파라미터들(예를 들면, 밝기(brightness), 콘트라스트, 이득(gain), 노출, 화이트 밸런스(white balance), 채도(saturation), 초점, 또는 조리개(aperture) 설정)은 하나 이상의 프로세서들(220)에 의해 캘리브레이션, 제어, 또는 매핑될 수 있다.
특정 실시예들에서, 각 카메라(212)는 상이하게 장면을 보게 되므로, 각 카메라(212)에 대한 화이트 밸런스 설정은 다른 카메라들과 독립적으로 설정 또는 제어될 수 있다. 제한으로서가 아니라 예로서, 창문 옆에 위치한 카메라(212)는 푸르스름한 장면을 볼 수 있는 반면에 인접한 카메라(212)는 불그스름한 실내 조명을 볼 수 있고, 상기 두 개의 카메라들은 상이한 화이트 밸런스 설정들을 가질 수 있다.
특정 실시예들에서, 인접한 카메라들(예를 들면, 인접한 좌측 카메라들(212) 또는 인접한 우측 카메라들(212))에 대한 설정들이 너무 크게 벗어나지 않도록 하기 위해, 하나 이상의 카메라 파라미터들은 글로벌하게(globally) 제어될 수 있다. 제한으로서가 아니라 예로서, 카메라(212)에 대한 노출 또는 이득에 대한 설정들은, 적어도 부분적으로, 하나 이상의 인접한 카메라들(212)에 대한 설정들에 기반할 수 있다. 제한으로서가 아니라 다른 예로서, 노출 또는 이득 설정들이 조정되는 경우, 이미지 밴딩(image banding) 또는 허용 불가능한 스티칭 성능을 최소화하기 위해, 프로세서(220)는 동일한 눈에 대해 인접한 카메라들(예를 들면, 인접한 좌측 카메라들(212) 또는 인접한 우측 카메라들(212))에 대한 설정들이 너무 크게 벗어나지 않도록 할 수 있다.
특정 실시예들에서, 카메라 초점의 변동에 기인할 수 있는 스티칭 오차들을 최소화하기 위해, 카메라들(212)의 초점 설정은 무한대로 유지될 수 있다. 특정 실시예들에서, 스티칭 오차들을 감소시킬 수 있는 보다 큰 피사계 심도(depth of field)를 제공하기 위해, 카메라들(212)은 감소된 조리개를 갖도록 설정될 수 있다. 본 개시가 특정 방식들로 제어되는 특정 카메라 파라미터들을 설명하고 있지만, 본 개시는 어떤 적절한 방식들로 제어되는 어떤 적절한 카메라 파라미터들이든지 고려하고 있다.
특정 실시예들에서, 인코딩 프로세스에는 카메라(210)당 한 개의 전단 프로세서(220)가 관여할 수 있거나, 또는 단일 프로세서(220)(단일 코어 또는 다중 프로세서 코어들을 갖는)는 다수의 카메라들(210)에 의해 공유될 수 있다. 전단 프로세서(220)는 비디오 데이터를 캡처, 변경, 압축, 저장, 또는 전송하는 작업(task)의 일부를 핸들링하기 위해 가속기들, 애플리케이션 특정적 집적 회로들(application-specific integrated-circuits: ASICs), 또는 서브프로세서들을 이용할 수 있다. 각 프로세서(220)는 범용 운영 체제를 실행할 수 있거나, 또는 중앙 제어 프로세서와 완전 연동 또는 준-연동하여 동작하는 ASIC 자체일 수 있다.
특정 실시예들에서, 중앙 제어 프로세서는 전단 이미지 캡처 프로세서들(220)에게 통신하기 위한 분배자 또는 중안 제어점의 역할을 할 수 있다. 특정 실시예들에서, 중앙 프로세서들은, 각 카메라(212)에 연결되어 각 카메라(212)를 제어하기 위한 중복된 자원들과 함께, 단일의 대형 ASIC의 일부로 구현될 수 있다. 그러한 경우, 동일 코드 또는 하드웨어 기반 알고리즘의 다수의 스레드들(threads) 또는 복사본들(copies)이 캡처 프로세스를 병렬화하도록 실행될 수 있다.
특정 실시예들에서, 전단 프로세서들(220)은 프로세서-로컬 (processor-local) 저장 시스템을 이용할 수 있거나 또는 데이터를 하나 이상의 공유된 저장 자원들에 즉시 스트리밍할 수 있다. 특정 실시예들에서, 분산된 저장소(decentralized storage)가 이용될 수 있으며, 프로세서-로컬 저장소는 시스템 부하 분배를 달성하기 위해 스티칭 시스템에 대한 버퍼로서 이용될 수 있다.
특정 실시예들에서, 전단 프로세서들(220)은 데이터 전송을 위한 버스 또는 네트워크를 이용할 수 있다. 데이터 전송은 어떤 적절한 데이터 전송 포맷이든지 이용할 수 있다. 특정 실시예들에서, 수신을 보장하거나 아니면 수신자에게 패킷 손실(packet loss)을 알리는 전송 방법들이 이용될 수 있다. 특정 실시예들에서, 송신 구성요소는 손상된 패킷들을 재전송할 수 있거나 또는 수신기로 하여금 패킷 손상이 발생되었음을 나타내는 플래그(flag)를 저장된 데이터 스트림 내에 삽입하도록 할 수 있다. 특정 실시예들에서, 필요에 따라, 스티칭 시스템은 그러한 손상된 또는 손실된 패킷들을 보상할 수 있다.
특정 실시예들에서, 카메라들(212)은 약간의 렌즈 왜곡뿐만 아니라 타겟 위치 또는 배향(214)을 기준으로 약간의 편차를 가질 수 있다. 특정 실시예들에서, 이러한 효과들에 대한 보정들은 정적일 수 있으며, 이들은 전단에서 룩업 테이블들(lookup tables)을 이용하여 사전-캘리브레이션되고 보정될 수 있다.
제한으로서가 아니라 예로서, 파노라마 레벨링(panorama leveling), 비네트 보정(vignette correction), 렌즈 왜곡 보정, 화이트 밸런스 보정, 노출 보정 및 매칭, 또는 시점 조정(viewpoint adjustment)이 이미지에 직접 적용될 수 있다. 이러한 방식으로, 어떤 압축-유도성(compression-induced) 색상 또는 특징 변이들(shifts)이 발생하기 전에 이미지에 조치가 취해질 수 있으며, 이는 시인성 보정 아티팩트들(visible correction artifacts)의 발생을 감소시킬 수 있다. 또한, 에지 선명도(edge sharpness), 전체적 노광(overall exposure), 또는 화이트 밸런스를 향상시키기 위해, 색 보정이 적용될 수 있다.
특정 실시예들에서, 이미지의 압축된 크기를 줄이기 위해 노이즈 감소가 장면에 적용될 수 있다. 특정 실시예들에서, 하나 이상의 이미지 보정 또는 향상 단계들이 적용된 후, 전단 프로세서들(212)은 이미지를 다운샘플링할 수 있다. 제한으로서가 아니라 예로서, 프로세서-집중적인 서브샘플링 프로세스를 이용하는 대신, 출력 이미지가 다운샘플링될 수 있다.
특정 실시예들에서, 이미지들은 후속 스티칭에 이용되는 것보다 높은 해상도로 캡처될 수 있으며, 이 고해상도 이미지 캡처는, 보정 또는 향상 단계들과 연관될 수 있는, 앨리어싱(aliasing) 또는 아티팩트들을 완화시키는 데 도움이 될 수 있다.
본 명세서에서 설명되는 격자 최적화 스티칭 기법이 수행되기 전에, 하나 이상의 초기 스티칭 동작들이 이미지들의 쌍에 대해 수행될 수 있다. 특정 실시예들에서, 스티칭 서버(230)는 서로 스티칭되는 개별 이미지들(예를 들면, 이미지들(I-L1 내지 I-Ln)의 수직 정렬 및 수평 정렬을 결정할 수 있다. 특정 실시예들에서, 다수의 카메라들로부터의 이미지들은 비교될 수 있으며, 이에 따라 모든 좌측 이미지들은 다른 좌측 이미지들(예를 들면, I-L1 내지 I-Ln)과 비교되고, 모든 우측 이미지들은 다른 우측 이미지들(예를 들면, I-R1 내지 I-Rn)과 비교된다.
도 6의 예에서, 이미지(I-6)은 인접한 이미지들(I-5 및 I-7)과 비교될 수 있다. 또한, 좌측 이미지들은 우측 이미지들과 비교되어(예를 들면, I-L1 및 I-R1) 이들이 서로에 대해 올바르게 정렬되었는지 확인할 수 있다. 제한으로서가 아니라 예로서, 이미지들(I-L1 내지 I-L12)은 도 5의 예에 도시된 카메라 시스템(210)의 좌측 카메라들 L1 내지 L12에 의해 각각 캡처된 이미지들에 대응될 수 있다. 상기한 바와 같이, 각각의 눈에 대응되는 상기 카메라들(예를 들면, L6)의 FOV는 그 이웃들(예를 들면, L5 및 L7)과의 중첩을 가지고, 이에 따라 상기 이미지들을 공간적으로 정렬하면 인접한 이미지들(예를 들면, I-6 및 I-7) 간의 중첩 영역(610)을 초래한다. 후술하는 바와 같이, 인접한 이미지들의 중첩 영역(610)은 스티칭된 이미지를 생성하기 위한 이미지 특징들을 식별하는 데 이용될 수 있다. 특정 실시예들에서, 상기 카메라 시스템의 알려진 기하구조로 인해, 스티치 파라미터 계산들 중 일부를 수행할 때 가정들(assumptions)이 이루어질 수 있다.
도 9는 개별 이미지들을 스티칭하는 예시적 방법을 도시한다. 방법(900)은, 다수의 이미지들이 다수의 카메라들(212)로부터 수신되는, 단계(910)에서 시작될 수 있다. 특정 실시예들에서, 상기 카메라들은 제1 배향(214)을 갖는 제1 카메라(212) 및 제2 배향(214)을 갖는 제2 카메라(212)를 포함할 수 있다. 특정 실시예들에서, 상기 이미지들은 상기 제1 카메라(212)로부터의 제1 이미지 및 상기 제2 카메라(212)로부터의 제2 이미지를 포함할 수 있다.
단계(920)에서, 다수의 특징점들이 상기 제1 및 제2 이미지들 내에서 검출된다.
단계(930)에서, 상기 제1 및 제2 이미지들 간의 중첩 영역 내에 위치한 대응 특징점들의 하나 이상의 쌍들이 결정된다. 특정 실시예들에서, 상기 대응 특징점들의 쌍들은 상기 제1 및 제2 이미지들로부터의 상기 특징점들 중 각각의 하나를 포함한다.
단계(940)에서, 상기 제1 또는 제2 이미지는 대응 특징점들의 각 쌍 간의 계산된 오프셋에 기반하여 공간적으로 조정된다.
단계(950)에서, 상기 제1 및 제2 이미지들은 상기 공간적 조정에 기반하여 병합 또는 스티칭된 이미지로 결합된다. 적절한 경우, 특정 실시예들은 도 9의 상기 방법의 하나 이상의 단계들을 반복할 수 있다. 본 개시가 도 9의 상기 방법의 특정 단계들이 특정 순서로 발생하는 것으로 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 순서로 발생하는 도 9의 상기 방법의 어떤 적절한 단계들이든지 고려하고 있다. 또한, 본 개시가, 도 9의 상기 방법의 특정 단계들을 포함하는, 개별 이미지들을 스티칭하는 예시적 방법을 설명 및 도시하고 있지만, 본 개시는, 적절한 경우, 도 9의 상기 방법의 상기 단계들 중 전부 또는 일부를 포함하거나 아무 단계도 포함하지 않을 수 있는 어떤 적절한 단계들을 포함하는, 개별 이미지들을 스티칭하는 어떤 적절한 방법이든지 고려하고 있다. 또한, 본 개시가 도 9의 상기 방법의 특정 단계들을 수행하는 특정 구성요소들, 장치들, 또는 시스템들을 설명 및 도시하고 있지만, 본 개시는 도 9의 상기 방법의 어떤 적절한 단계들을 수행하는 어떤 적절한 구성요소들, 장치들, 또는 시스템들의 어떤 적절한 조합이든지 고려하고 있다.
도 10 및 도 11은 각각 개별 이미지들을 스티칭하는 다른 예시적 방법들(1000 및 1100)을 도시한다.
특정 실시예들에서, 예를 들면, 도 10 또는 도 11에 각각 도시된 상기 방법들(1000 및 1100)과 같은, 이미지들을 스티칭하는 방법은, 3-D 지각을 보존하고 자동으로 수행되는(예를 들면, 상기 프로세스는 인간의 개입을 거의 또는 전혀 필요로 하지 않음), 이미지들을 스티칭하는 프로세스를 제공할 수 있다. 본 개시가 이미지들을 스티칭하기 위해 특정 순서로 특정 단계들을 수행하는 특정 흐름을 설명 및 예시하고 있지만, 본 개시는 적절한 순서로 어떤 적절한 단계들을 수행하는 어떤 적절한 흐름이든지 고려하고 있다.
특정 실시예들에서, 카메라 시스템(210)의 전단 프로세서들(220)로부터 수신된 이미지들은 스티칭 이전에 리사이징될(resized) 수 있다. 후술하는 바와 같이, 대응 특징점들의 쌍들을 결정하면서 상기 이미지들의 해상도를 감소시키면 상기 스티칭 프로세스의 속도를 높일 수 있다. 또한, 후술하는 바와 같이, 해상도의 감소는 저조도 조건에서 노이즈에 대한 탄력성(resilience)을 향상시킬 뿐만 아니라 특징 검출을 위한 소규모 텍스처들(textures)에 대한 전반적 감도를 증가시킬 수 있다.
제한으로서가 아니라 예로서, 2 내지 8 메가픽셀(megapixel: MP) 이미지들은, 실시간 3-D 스티칭 프로세스를 위해 관리하기에 보다 쉬운, 보다 낮은 해상도로 리사이징될 수 있다. 제한으로서가 아니라 다른 예로서, 카메라들(212)에 의해 캡처된 8 MP 이미지들은 2 MP로 리사이징될 수 있고, 상기 리사이징된 2 MP 이미지들은 스티칭 프로세스에 대한 입력들로서 이용될 수 있다.
특정 실시예들에서, 리사이징된 이미지는 최소 크기(예를 들면, 1 MP, 2 MP, 또는 어떤 적절한 최소 크기)를 갖도록 제한될 수 있다. 제한으로서가 아니라 예로서, 4 MP 및 2 MP 이미지들은 둘 모두 1 MP로 리사이징될 수 있다.
특정 실시예들에서, 상기 수신된 이미지들을 리사이징하면, 로컬 콘트라스트 향상을 이용한 특징 검출에 영향을 미칠 수 있는, 이미지들에서의 노이즈를 감소시킬 수 있다. 제한으로서가 아니라 예로서, 예를 들면, 란초스 커널(Lanczos kernel)과 같은 스케일링 커널이 특징 검출에서 오차를 야기할 수 있는 커널 아티팩트들을 최소화하는 데 이용될 수 있다.
특정 실시예들에서, 스티칭 파라미터들은 원본 이미지들보다 낮은 해상도로 리사이징된 이미지들로부터 결정될 수 있다. 제한으로서가 아니라 예로서, 스티칭 파라미터들을 결정하기 위해 리사이징된 이미지들(예를 들면, 2 MP 이미지들)의 세트를 이용한 후, 카메라들(212)에 의해 캡처된 원본 고해상도 이미지들(예를 들면, 8 MP 이미지들)의 세트는 상기 결정된 스티칭 파라미터들을 이용하여 서로 스티칭될 수 있다.
특정 실시예들에서, 카메라 시스템(210)으로부터 수신된 이미지들은 상기 이미지들을 직사각형 평면 상으로 스티칭하기 위해 디워핑될(dewarped) 수 있다. 제한으로서가 아니라 예로서, 상기 수신된 이미지들은, 후술하는 바와 같이, 특징 검출을 저해할 수 있는 아티팩트들의 양을 감소시키기 위해 슈퍼-샘플링될(super-sampled) 수 있다.
특정 실시예들에서, 디워핑(dewarping) 절차는, 슈퍼-샘플링의 필요성을 감소시킬 수 있는, 스케일링 절차와 결합될 수 있다. 제한으로서가 아니라 예로서, 수신된 이미지들에 대해 조합된 디워핑 및 스케일링 절차가 수행될 수 있으며, 상기 디워핑 및 스케일링의 조합은 이미지들 내의 아티팩트들을 감소시킬 수 있다. 대안적으로, 수신된 이미지들의 디워핑은 위치 함수로서 글로벌 변환(global transform)으로서 이용될 수 있으며, 상기 수신된 이미지들의 픽셀 데이터에 대한 액세스는 적절한 값들을 생성하기 위해 변환 및 슈퍼-샘플링을 거칠 수 있다. 특정 실시예들에서, 이미지의 디워프 변환(dewarp transformation)은 식 (1)로 근사될 수 있다:
이미지 디워프:
Figure pct00013
상기 식 (1)에서 x는 투영된 3-D 공간의 위도(latitude)에 따른 위치이고, y는 상기 투영된 3-D 공간의 경도(longitude)에 따른 위치이고, a..e는 카메라 디워프 파라미터들이고, scale'는 상기 이미지의 스케일링 인자(scaling factor)이고, translate'는 수평 또는 수직 공간 이동(translation) 파라미터이고, x' 및 y'는 각각 상기 디워프 변환 후의 위도 및 경도 위치들이다.
특정 실시예들에서, 디워핑 프로세스는, 상기 카메라 시스템의 카메라들 중 하나 이상의 특성에 기반하여, 추정된 스케일링 인자를 이용하여 수행될 수 있다. 특정 실시예들에서, 디워프 프로세스는 초기 이미지들의 하나 이상의 세트들에 대해 수행될 수 있으며, 상기 디워프 프로세스의 단순화된 버전은 상기 디워프 프로세스의 추상화(abstraction)를 이용하여 차후의 이미지들에 적용될 수 있다. 제한으로서가 아니라 예로서, 점들 및 이미지들에 대한 액세스는 보다 빠른 디워핑 프로세스를 제공할 수 있도록 추상화될 수 있다.
단계(1105)에서, 도 11의 예에 도시한 바와 같이, 장면을 형성하는 수신된 이미지들에서의 특징들이 검출될 수 있다. 특정 실시예들에서, 특징 검출 및 매칭은 이미지(I-6)의 그레이스케일(grayscale) 버전들에 대해 수행될 수 있고, 특정 콘트라스트는 별도의 연산(operation)에서 또는 룩업 테이블(look-up table: LUT)을 통해 이미지들(I-6)에 적용될 수 있다.
특정 실시예들에서, 특징 검출은 로컬 콘트라스트 향상을 이용하여 이미지(I-6)에 대해 글로벌하게 수행될 수 있다. 로컬 콘트라스트 향상은 "로컬" 콘트라스트를 증가시키는 동시에 "글로벌" 콘트라스트의 증가를 방지하여, 대규모 섀도우(shadow)/하이라이트 (hightlight) 디테일을 보호한다.
제한으로서가 아니라 예로서, 로컬 콘트라스트 경사들(gradients)은 특징에 대응되는 에지, 코너(corner), 또는 "블롭(blob)"을 나타낼 수 있다. 이미지(I-6)의 특징들은, 예를 들면, 스케일 불변 특징 변환(scale-invariant feature transform: SIFT), 고속의 강인한 특징 추출(speeded up robust features: SURF), 또는 배향된 FAST 및 회전된 BRIEF(oriented FAST and Rotated BRIEF: ORB) ? 여기서 FAST는 "가속된 세그먼트 테스트로부터의 특징들(features from accelerated segment test)"을 나타내고 BRIEF는 "이진 강건한 독립적 기본 특징들(binary robust independent elementary features)"을 나타낸다 ? 와 같은 특징 검출 알고리즘을 이용하여 검출될 수 있다.
특정 실시예들에서, 특징 검출 프로세스는 하나 이상의 특징점들(614)(도 13 참조)을 검출할 수 있다. 제한으로서가 아니라 예로서, 특징점들(614)은 다수의 가우스 평활화 연산들(Gaussian smoothing operations)의 차이를 취하여 검출될 수 있다. 또한, 특징점들(614)의 위치(예를 들면, 격자 이내 또는 검색 영역(612)(도 12 참조) 이내) 및 각 검색 영역(612)에 대한 각 특징점(614)의 콘트라스트 값들은 저장될 수 있다.
도 12는 이미지의 예시적인 구획(partitioning)을 도시한다.
특정 실시예들에서, 수신된 이미지들(예를 들면, 이미지들(I-7 내지 I-5))은 다수의 검색 영역들(612)로 구획될 수 있다. 제한으로서가 아니라 예로서, 도 8의 예에 도시된 바와 같이, 이미지들(I-7 내지 I-5)은 특정 눈에 대응되는 이미지들(예를 들면, 모든 좌측 또는 우측 이미지들)에 대응될 수 있다.
특정 실시예들에서, 도 12의 예에 도시된 바와 같이, 상기 수신된 이미지들(예를 들면, I-7 내지 I-5)은 4×6 직사각형 격자로 배열된 24개의 검색 영역들로 구획될 수 있다. 상기한 바와 같이, 특정 눈에 대응되는 인접한 카메라들(예를 들면, 모든 좌측 카메라들)로부터의 이미지들(예를 들면, I-7 내지 I-5)은 상기 각각의 카메라들의 FOV 간의 각도 중첩(216)에 비례하는 중첩 영역들(6106-7 및 6105-6)을 가진다.
특정 실시예들에서, 상기 이미지들(예를 들면, I-7 내지 I-5)의 중첩 영역들(6106-7 및 6105-6)은 상기 수신된 이미지들(예를 들면, I-7 내지 I-5)의 우측 및 좌측 에지들에 대응될 수 있다. 특정 실시예들에서, 특징점 검출 또는 매칭은 인접한 이미지들의 중첩 영역들로 제한될 수 있다.
도 12의 예에서, 인접한 이미지들(I-6 및 I-7)에 대해, 특징점 검출은 오직 중첩 영역(6106-7)에서만 적용될 수 있다. 중첩 영역(610) 외부의 영역들은 고려되지 않을 수 있으며, 이는 중첩 영역 외부에 위치한 관련 없는 또는 불필요한 점들이 스티칭 프로세스에 영향을 미치지 않도록 할 수 있다.
도 13은 이미지들의 예시적인 특징점 매칭을 도시한다. 단계(1110)에서, 도 11의 예에 도시된 바와 같이, 스티칭된 이미지(620)에 대한 관련 없는 점들의 영향을 최소화하기 위해, 특징점 매칭이 중첩 영역들(6106-7)의 검색 영역들에 대해 로컬하게 수행될 수 있다. 제한으로서가 아니라 예로서, 이미지(I-6)의 특징점(614A)을 이미지(I-7)의 대응 특징점(614B)에 매칭하기 위해, 특징점 계산들이 검출된 특징점들(614A-B)에 대해 수행될 수 있다. 상기 대응 특징점들(614A-B)의 쌍들은 중첩 영역들(6106-7)의 검색 영역들에서의 각각의 검출된 특징점(614A-B) 주위의 영역을 로컬하게 비교함으로써 검출될 수 있다.
특정 실시예들에서, 상기 각각의 이미지들(I-7 및 I-6)에서의 해당 특징점(614A-B)에 대한 각각의 콘트라스트 설정들은 특징점들(614A-B)의 매칭의 일부로서 적용될 수 있다. 제한으로서가 아니라 예로서, 이미지들(I-7 및 I-6) 간의 콘트라스트 차이는 콘트라스트 곡선의 오프셋으로서 보상될 수 있다.
특정 실시예들에서, 상기 콘트라스트 곡선의 이 오프셋은 이를 고려하기 위해 추가적 비트들로(예를 들면, 8비트 값들에 대해 부호있는 16비트를 이용하여) 계산될 수 있다. 오프셋의 차이는 최선의 매치(best match)가 미리 알고 있는 균일한 차이를 갖도록 할 수 있다.
특정 실시예들에서, 특징점들(614)을 매칭하는 데 이용되는 영역의 크기는 이미지들의 크기에 따라 설정될 수 있다. 특정 실시예들에서, 카메라 시스템(210)의 기하구조를 알 수 있으며, 알려진 카메라 시스템 기하구조에 기반하여, 인접한 이미지들(I-6 및 I-7)의 상기 검색 영역들 및 중첩 영역들(6106-7)의 대략적인 픽셀수는 선험적으로 알 수 있다. 제한으로서가 아니라 예로서, 카메라 시스템(210)의 카메라들(212)의 위치 및 배향은 서로에 대해 고정되어 있기 때문에, 인접한 좌측 카메라들(예를 들면, 카메라들 L1 및 L2) 또는 인접한 우측 카메라들(예를 들면, 카메라들 R11 및 R12) 간의 중첩을 알 수 있으며, 유사하게, 인접한 좌측 또는 우측 카메라들(예를 들면, 카메라들 L1 및 R1) 간의 중첩도 또한 알 수 있다.
특정 실시예들에서, 특징점들의 대응 쌍들을 결정하는 단계는 최근접 이웃(nearest-neighbor) 검색 알고리즘을 이용하여 수행될 수 있다. 제한으로서가 아니라 예로서, 최근접 이웃 검색 알고리즘은, 이미지(I-6)의 중첩 영역(6106-7)의 각 검색 영역 내의 특징점들(614A)의 대응 패턴들과 매칭되는, 이미지(I-7)의 중첩 영역(6106-7)의 각 검색 영역 내의 특징점들(614B)의 패턴들을 식별할 수 있다.
특정 실시예들에서, 최근접 이웃 알고리즘은 상기 대응 특징점들(614A-B)의 쌍들을 결정하기 위해 각 특징점(614A-B) 주위의 검색 반경을 이용할 수 있다. 제한으로서가 아니라 예로서, 검색 영역은 32 픽셀, 64 픽셀의 반경, 또는 어떤 적절한 반경을 가질 수 있거나, 또는 검색 영역은 32 픽셀 × 32 픽셀, 64 픽셀 × 64 픽셀의 크기, 또는 어떤 적절한 크기를 가질 수 있다.
특정 실시예들에서, 최종 호모그래피(homography) 계산 전에 상기 대응 특징점들의 쌍들을 재정렬하기 위해 이차적 개량(secondary refinement) 단계가 이용될 수 있다.
특정 실시예들에서, 특징 매칭 절차는 추정된 파라미터들을 이용할 수 있으며, 일부 검색은 위치를 최적화하기 위해 중첩 영역 또는 검색 영역 내에서 적용될 수 있다. 특정 실시예들에서, 특징 검색이 이미지(예를 들면, 이미지(I-6 또는 I-7))의 중심에서 에지로 이동함에 따라, 검색 반경이 증가될 수 있다. 제한으로서가 아니라 예로서, 실제 및 추정된 파라미터들(예를 들면, 실제 FOV 대 추정된 FOV) 간의 차이와 연관된 오차들의 증가로 인해, 검색 반경이 증가될 수 있다.
특정 실시예들에서, 대응 특징점들(614A-B)의 쌍들의 미리 결정된 수(예를 들면, 3쌍)보다 적은 쌍의 수를 갖는 영역들(612)에 대해 추가적인 특징점들이 추가될 수 있다. 제한으로서가 아니라 예로서, 특징 검색에 의해 특정 영역(612)에서 3개 미만의 특징점들이 드러난 경우, 백업 특징점 세트로부터의 백업 특징점들이 특징들의 세트에 추가될 수 있다. 특정 실시예들에서, 백업, 대체, 또는 추가 특징점들은 카메라 시스템(210)의 특성, 각 카메라(212)의 특성, 캘리브레이션 데이터, 또는 이들의 어떤 조합에 기반할 수 있으며, 추가 특징점들은 데이터 구조에서 표시될 수 있다.
특정 실시예들에서, 카메라 파라미터들 또는 이미지들(예를 들면, I-6 및 I-7)은 스티칭된 이미지(620)를 생성하기 위해 최종 최적화에서의 자유 변수(free variables)의 수를 줄이도록 휴리스틱하게(heuristically) 최적화될 수 있다. 제한으로서가 아니라 예로서, 휴리스틱 최적화는 하나 이상의 카메라 관련 파라미터들(예를 들면, FOV, 배향(214), 또는 수직 또는 수평 카메라 중심의 위치)을 최적화 또는 개량(refine)하는 데 이용될 수 있다. 특징 매칭 절차는, 적어도 부분적으로, 알려진 카메라 기하구조(예를 들면, 카메라 시스템(210)의 카메라들(212)의 위치 또는 배향) 또는 캘리브레이션 프로세스에 기반한, 추정된 카메라 파라미터들을 이용할 수 있다. 예를 들면, 카메라들(212)의 공칭(nominal) 위치 및 배향을 알면 카메라 FOV, 각도 중첩(216), 카메라 배향(214), 또는 카메라 위치(예를 들면, 수직 및 수평 카메라 중심의 위치)의 추정치들이 산출될 수 있다.
특정 실시예들에서, 추정된 카메라 파라미터들은 반복적으로, 또는 다수의 비선형 값들에 대한 그룹 수치적 접근법(group numeric approach)을 이용하여 최적화될 수 있다. 특정 실시예들에서, 각각의 이미지(예를 들면, I-6 및 I-7)에 대해, 상기 대응 특징점들(614A-B)의 쌍들의 위치는 서로 비교될 수 있고, 상기 각각의 특징점들(614A-B)의 위치의 오프셋에 기초하여, 대응되는 카메라 파라미터들에 대한 조정이 이루어질 수 있다. 제한으로서가 아니라 예로서, FOV 파라미터 또는 배향 파라미터는 상기 특징점들(614A-B) 간의 평균적 방사상 오프셋(radial offset)의 검출에 응답하여 조정될 수 있다. 제한으로서가 아니라 다른 예로서, 수직 또는 수평 카메라 위치 파라미터는 각각 상기 특징점들(614A-B) 간의 평균적 수직 또는 수평 오프셋의 검출에 응답하여 조정될(예를 들면, 이동될(translated)) 수 있다.
단계(1115)에서, 도 11의 예에 도시한 바와 같이, 이미지들(I-6 및 I-7) 간의 카메라 변위(예를 들면, 카메라 회전 또는 이동(translation))의 추정치는 대응 특징점들의 매칭된 쌍들에 기반하여 호모그래피 행렬(homography matrix) 을 이용하여 결정될 수 있다. 특정 실시예들에서, 상기 호모그래피 행렬에 의해 결정된 상기 추정된 카메라 변위에 기반하여, 이미지들(I-6 및 I-7)에 대한 조정이 이루어질 수 있다. 병합된 스티칭된 이미지(620)를 형성하기 위해 이미지들(I-6 및 I-7)을 조정 및 정렬하는 데 이용되는 스티치 파라미터들은 상기 호모그래피 행렬을 이용하여 계산될 수 있다. 제한으로서가 아니라 예로서, 상기 호모그래피 행렬은 이미지들(I-6 및 I-7)에 대해 초기에 계산될 수 있고, 상기 계산된 호모그래피 행렬에 기반하여 후속 이미지들에 대한 조정이 이루어질 수 있다.
상기 이미지들(I-7 및 I-6)을 스티칭된 이미지(620)로 제대로 결합하기 위해 이미지들(I-7 및 I-6)에 대한 조정이 이루어질 수 있다. 특정 실시예들에서, 상기 조정은 하나 이상의 최적화 기준을 충족시키도록 이루어질 수 있다. 제한으로서가 아니라 예로서, 최적화 기준은 상기 대응 특징점들(614A-B)의 쌍들의 수직 또는 수평 오프셋이 최소화되어야 한다는 것일 수 있다. 다른 예로서, 최적화 기준은 상기 대응 특징점들(614A-B)의 쌍들의 수평 오프셋이 시청자가 둘로 보게 되기 전의 최대 수평 오프셋보다 작아야 한다는 것일 수 있다. 제한으로서가 아니라 또 다른 예로서, 최적화 기준은 상기 대응 특징점들(614A-B)의 쌍들의 수직 오프셋이 최대 수직 오프셋보다 작아야 한다는 것일 수 있다.
특정 실시예들에서, 이미지들(I-6 및 I-7)에 대한 조정은 하나 이상의 초기 조건을 가정하여 수행될 수 있다. 제한으로서가 아니라 예로서, 초기 조건은 제1 카메라 쌍(예를 들면, 도 5에서 카메라 쌍 L1-R1)이 카메라 시스템(210)의 메인 레이(main ray)(또는 요(yaw))를 정의하는 배향(214)을 갖는다고 가정할 수 있다. 다른 예로서, 초기 조건은 y-축에 대한 나머지 카메라 쌍들(상기 제1 카메라 쌍에 대해 상대적으로)에 대한 배향(214)이 Yi = (i - 1) × 360°/n이고, 여기서 y-축은 카메라 시스템의 평면에 대해 수직하고, i = 2...n 이고, n은 상기 카메라 시스템의 카메라 쌍들의 수라는 가정을 할 수 있다.
제한으로서가 아니라 예로서, n = 8개의 카메라 쌍들을 갖는 카메라 시스템(210)에 대해, 카메라 쌍들(300)은 서로에 대해 45도로 배향된다. 또 다른 예로서, 초기 조건은 카메라 시스템(210)의 카메라들(212)이 x-축 및 z-축을 따르는 레벨(예를 들면, 각각 0의 롤(roll) 및 피치(pitch))이라고 가정할 수 있다.
특정 실시예들에서, 이미지들(I-6 및 I-7)에 대한 조정은 하나 이상의 최적화 비용들을 최소화함으로써 결정될 수 있다. 제한으로서가 아니라 예로서, 대응 특징점들(614A-B)의 쌍들 간의 거리는 기초 총 최적화 비용(base total optimization cost)을 나타낼 수 있다. 다른 예로서, 축을 따른 회전 조정은 가중된 회전 변위에 비례하는 비용을 가질 수 있다(예를 들면, 각각의 축, 요, 피치, 및 롤에 관한 kx(X' - X0)2에 있어서, kx는 가중 계수(weighting coefficient)인 경우). 또한, 각각의 축은, 예를 들면, 요 축에 대한 kY, 피치 축에 대한 kP, 및 롤 축에 대한 kR과 같이, 특정한 가중 계수를 가질 수 있다.
특정 실시예들에서, 이미지들(I-6 및 I-7)의 FOV 또는 이동 조정은 축당 kx|X' - X0|의 선형 비용을 가질 수 있다. 각각의 축은, 예를 들면, FOV 조정에 대한 kFOV, x-축 이동에 대한 kCX, 및 y-축 이동에 대한 kCY와 같이, 특정한 가중 계수를 가질 수 있다. 특정 실시예들에서, 상기 최적화 비용들은 함수화될 수 있고, 이에 따라 최적화 비용 함수들은 코너 케이스들(corner cases)을 처리하도록 변경될 수 있다.
특정 실시예들에서, 이미지들(예를 들면, I-6 및 I-7)은 휴리스틱 최적화, 초기 조건, 최적화 비용, 또는 이들의 어떤 조합의 결과를 이용하여 글로벌 최적화(global optimization)를 수행함으로써 서로 스티칭될 수 있다. 이 인자들은, 예를 들면, 몬테카를로(Monte-Carlo), 경사 하강(gradient descent), 가우스-뉴턴의 희소 버전(sparse version of Gauss-Newton), 또는 다른 적절한 비선형 최적화 솔버(solver)를 이용하여 글로벌하게 최적화될 수 있다. 특정 실시예들에서, 파라미터 계(system of parameters)는 (2)로 표현되는 방정식 계(system of equations)를 통해 글로벌하게 최적화될 수 있다:
글로벌 최적화:
Figure pct00014
상기 식 (2)에서, x' 및 y'은 디워프 연산으로부터의 좌표들이고; 호모그래피 행렬은 상기한 바와 같이 대응 특징점들의 쌍들로부터 계산되고; YPR은 각각 요, 피치, 및 롤에 따른 회전 조정들이고; scale은 이미지의 스케일링이고; translate는 이동 조정이고; x'', y'', 및 z''는 최적화된 좌표들이다.
식 (2)로 표현된 상기 방정식 계에서 수렴 실패(convergence failure)가 발생할 수 있다. 단계(1125)에서, 백업 소스(예를 들면, 캘리브레이션)로부터 비롯된 40 % 초과의 특징점들을 갖는 이미지에 대한 수렴 실패는, 도 11의 예에 도시한 바와 같이, 상기 특정 이미지가 너무 하얗거나, 너무 가깝거나, 또는 특징들이 부족한 것을 나타낼 수 있다. 이러한 상황에서, 상기 특정 이미지는 상기한 초기 조건에 따라 조정될 수 있다.
특정 실시예들에서, 식 (2)로 표현된 상기 방정식 계의 수렴은 너무 큰 공간 오프셋을 갖는 대체된 특징점들로 인해 실패할 수 있다. 그러한 경우, 대체된 특징점들에 대해 그들의 최적화 비용이 절반이 되고 글로벌 최적화가 다시 수행될 수 있다. 제한으로서가 아니라 예로서, 상기 최적화의 감소 및 글로벌 최적화 수행은 미리 결정된 횟수(예를 들면, 4 사이클)로 수행될 수 있다. 또한, 상기 식 (2)가 계속해서 수렴에 실패하면, 상기 특징점들의 기여(contribution)는 0으로 설정될 수 있다.
특정 실시예들에서, 특정 눈에 대응되는 인접한 카메라들로부터의 이미지들이 중첩을 갖는 것에 부가하여, 다른 눈에 대응되는 이웃한 카메라로부터의 이미지도 또한 양 이미지들과의 중첩을 가질 수 있다. 제한으로서가 아니라 예로서, 카메라들 L1 및 L2로부터의 이미지들은 중첩 영역을 가질 수 있고, 이웃한 카메라(예를 들면, 카메라 R1, R2, 또는 R3)도 또한 동일한 중첩 영역을 포함하는 이미지를 캡처할 수 있다. 도 8의 예에 도시한 바와 같이, 이미지들(I-L1 및 I-L2)은 중첩 영역(610L1-2)을 가지며, 이미지(I-R1)도 또한 상기 두 개의 이미지들과 중첩한다.
특정 실시예들에서, 이웃한 카메라(예를 들면, 카메라 R1)로부터의 이미지(예를 들면, 이미지(I-R1))의 특징들이 검출될 수 있고, 특징점들의 대응 쌍들은 인접한 이미지들(예를 들면, 이미지들(I-L1 및 I-L2))의 중첩 영역(예를 들면, 중첩 영역(610L1-2))과 상기 이웃한 카메라로부터의 상기 이미지 간에 결정될 수 있다. 또한, 호모그래피 행렬은, 인접한 카메라들의 상기 중첩 영역들의 대응 특징점들의 상기 검출된 쌍들 및 이웃한 카메라로부터의 상기 이미지의 상기 중첩 부분들에 기반하여, 계산될 수 있다.
특정 실시예들에서, 인접한 카메라들(예를 들면, 카메라들 L1 및 L2)에 대응되는 호모그래피 행렬의 결과들은 이웃한 카메라(예를 들면, 카메라 R1)에 대응되는 호모그래피 행렬과 비교될 수 있다. 또한, 좌측 눈의 뷰에 대응하는 스티칭된 이미지와 우측 눈의 뷰에 대응하는 스티칭된 이미지 간의 대응(correspondence)의 결정은 스티칭된 이미지들의 입체 쌍 간의 수직 오프셋을 안정화하는 데 이용될 수 있다.
특정 실시예들에서, 상기한 바와 같이, 일단 스티치 파라미터들 또는 조정들이 계산되면, 이들은 정확성(correctness)에 대해 체크될 수 있다. 특정 실시예들에서, 캘리브레이션은 카메라 시스템(210)에 의해 캡처된 알려진 장면의 이미지들을 이용하여 수행될 수 있다. 상기 알려진 장면의 대응 특징점들의 쌍들의 검출은, 이미지들을 스티칭하기 위해 이미지 조정들에 대한 기초로서 이용될 수 있는, 특징점들의 세트를 제공할 수 있다. 일단 스티칭 서버가 상기 중첩된 영역들 내에서 상기 대응 특징점들의 쌍들을 검출했으면, 각각의 검출된 특징점 주위 영역에서 오차 계산(예를 들면, 차이들의 제곱들의 합)이 수행될 수 있다. 상기 오차 계산이 미리 결정된 임계값을 초과하면, 상기 대응 특징점들의 검출된 쌍은 의심되는 것으로서 플래그될(flagged) 수 있다. 대응 특징점들의 쌍들의 수가 쌍들의 미리 결정된 임계수 미만이면, 상기 개별 이미지들의 스티칭은 플래그될 수 있다. 특정 실시예들에서, 상기 대응 특징점들의 플래그된 쌍들은 캘리브레이션 데이터의 특징점들로 대체되어, 상기 호모그래피 계산으로 하여금 상기 이미지들이 캘리브레이션 배향들에 있다고 생각하게 만들 수 있다.
상기 호모그래피 행렬들이 계산된 후, 이들은 정확성(correctness)에 대해 체크될 수 있다. 단계(1135)에서, 도 11의 예에 도시한 바와 같이, 연속적인 호모그래피 행렬들의 요 회전들(yaw rotations) 간의 차이가 체크된다. 상기 차이가 상기한 캘리브레이션된 데이터에 기반한 예상된 차이의 ±2-3° 내이면, 상기 이미지 조정들은 정확한(correct) 것으로 간주될 수 있다. 제한으로서가 아니라 예로서, 각각의 카메라가 30°만큼 이격된 12-카메라 시스템에 대한 호모그래피 행렬들이 계산될 수 있다. 요 회전 차이들이 미리 결정된 예상값 범위(예를 들면, 27° 내지 33°) 내이면, 계산된 호모그래피 행렬들은 허용가능한 것으로 간주될 수 있다.
특정 실시예들에서, 상기 카메라들로부터의 이미지들은 호모그래피 행렬들을 계산하는 데 이용될 수 있다. 상기 계산된 호모그래피 행렬들 또는 카메라 위치들이 예상된 위치들 및 각도들의 ±2도 내이면, 상기 스티치는 양호한 것으로 간주될 수 있다.
단계(1145)에서, 도 11의 예에 도시한 바와 같이, 상기 스티치가 일부 이미지들에 대해 실패하는 경우, 상기 대응 특징점들의 검출된 쌍들은 캘리브레이션 데이터로부터의 대체 특징점들로 대체될 수 있고 상기 스티칭 절차가 재시도될 수 있다.
단계(1155)에서, 도 11의 예에 도시한 바와 같이, 상기 스티칭 절차가 미리 결정된 임계수를 초과한 다수의 이미지들에 대해 실패하는 경우, 상기 전체 스티치가 불수용될(rejected) 수 있고 직전의 성공적인 스티칭된 프레임으로부터의 호모그래피 행렬들이 이용될 수 있다. 초기 프레임에 대해 스티칭 실패가 발생하는 경우, 캘리브레이션 데이터에 기반하여 계산된 호모그래피 행렬들이 대신 이용될 수 있다.
도 14는 예시적인 상부 이미지(I-Top) 및 스티칭된 이미지(620)를 도시한다. 상부 이미지(I-Top)는 상부 카메라(212T)에 의해 캡처될 수 있고, 스티칭된 이미지(620)는 좌측 또는 우측 이미지들(예를 들면, 이미지들(I-R1 내지 I-Rn)을 서로 스티칭 또는 결합하는 스티칭 프로세스의 결과일 수 있다.
도 14의 예에서, 스티칭된 이미지(620)는, 서로 스티칭되어 스티칭된 이미지(620)을 형성하는, 이미지들(I-1, I-2, 및 I-3)을 포함한다. 특정 실시예들에서, 카메라들(212)로부터의 이미지들이 스티칭된 이미지(620)를 형성하도록 서로 스티칭된 후, 상부 카메라(212T)로부터의 상부 이미지(I-Top)가 스티칭된 이미지(620)의 상부(610U)에 스티칭 또는 추가될 수 있다. 유사하게, 특정 실시예들에서, 하부 카메라로부터의 이미지가 스티칭된 이미지(620)의 하부에 스티칭 또는 추가될 수 있다.
특정 실시예들에서, 상부 또는 하부 이미지를 스티칭된 이미지(620)에 추가함으로써 ±90° 수직 FOV를 커버하지 못할 수 있는 스티칭된 이미지(620)를 수용하도록 추가된 뷰를 제공할 수 있다. 제한으로서가 아니라 예로서, 도 8의 예에 도시된 좌측 이미지들(I-L1 내지 I-Ln)은 서로 스티칭되어 카메라들(212)의 FOVV에 대응되는 수직 범위를 갖는 스티칭된 이미지(620)를 형성할 수 있다. 예를 들면, 스티칭된 이미지(620)는 카메라 시스템(210) 주위의 360° 수평 파노라마 뷰를 나타낼 수 있고, 상기 파노라마 뷰는 카메라 시스템(210)의 수평면에 대해 ±70° 수직 범위(FOVV = 140°에 대응됨)를 커버할 수 있다. 스티칭된 이미지(620)가 형성된 후, 상부 이미지(I-Top)는 스티칭된 이미지(620)의 상부에 스티칭되어, 약 -70° 내지 약 +90°범위의 수직 범위를 갖는 360° 파노라마 뷰를 갖는 이미지를 형성할 수 있다. 또한, 하부 이미지도 스티칭된 이미지(620)의 하부에 스티칭되어, 전방향으로 확장된 이미지를 형성할 수 있다(예를 들면, 수직으로 약 -90° 내지 약 +90°범위로 확장된 전체 360° 수평 뷰를 커버하며, 여기서 -90°는 바로 아래를 보는 것을 나타내고 +90°는 바로 위를 보는 것을 나타냄). 본 개시가 특정 수평 및 수직 범위들을 갖는 특정 스티칭된 이미지들을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 수평 및 수직 범위들을 갖는 어떤 적절한 스티칭된 이미지들이든지 고려하고 있다.
특정 실시예들에서, 상부 이미지(I-Top)의 부분들은 스티칭된 이미지(620)의 부분들과 중첩 또는 대응될 수 있다. 또한, 상부 이미지(I-Top)의 특정 부분들은, 카메라(210)의 카메라들(212)의 알려진 구성 및 상부 카메라(212T)의 알려진 구성에 기반하여, 특정 이미지들(예를 들면, 이미지들(I-1, I-2, I-3 등))과 상관될(correlated) 수 있다. 제한으로서가 아니라 예로서, 인접한 두 개의 심 라인들(seam lines, 617)에 의해 경계지어진 상부 이미지(I-Top)의 각 영역(예를 들면, 빗금침(hatched) 영역(619))은 스티칭된 이미지(620)의 특정 이미지에 대응될 수 있다.
도 14의 예에서, 이미지(I-Top)의 빗금친 영역(619)은 카메라 시스템(210)의 특정 카메라(212)에 의해 캡처된 이미지(I-2)에 대응될 수 있다. 스티칭된 이미지(620)를 구성하는 이미지들과 상부 이미지(I-Top)의 부분들 간의 대응은 카메라들(212)의 구성 또는 배향(214) 및 상부 카메라(212T)의 구성에 기반할 수 있다.
특정 실시예들에서, 이미지(I-Top)에서의 심 라인들(617)은 스티칭된 이미지(620)의 심들(617M)에 대응될 수 있으며, 여기서 심들(617M)은 스티칭된 이미지(620)를 형성하는 인접한 개별 이미지들 간의 경계를 나타낼 수 있다. 제한으로서가 아니라 다른 예로서, 중심 라인들(618)은 스티칭된 이미지(620)의 개별 이미지들의 대략적인 중심(618M)에 대응될 수 있다. 특정 실시예들에서, 라인들(617 및 618)은, 상부 이미지(I-Top)가 스티칭된 이미지(620)로 스티칭되도록 처리 또는 최적화되기 전에, 심들(617M) 및 중심들(618M)에 대한 추정된 위치들을 각각 나타낼 수 있다.
특정 실시예들에서, 스티칭된 이미지(620)의 상부(610U)는, 상부 이미지(I-Top)의 외측 환형 영역(610T)과 중첩되는, 스티칭된 이미지(620)의 영역을 나타낼 수 있다. 예를 들면, 스티칭된 이미지(620)는, 예를 들면, 수평 배향(214)에 대해 ±70°를 커버하는 FOVV에 대응될 수 있고, 상부 이미지(I-Top)는 수직 방향(예를 들면, +90° 위도)에서 +60°의 위도까지 연장되는 이미지에 대응될 수 있다. 이미지(I-Top)의 외측 흑색 실선(solid) 원은 +60°의 위도에 대응될 수 있고, 이미지(I-Top)의 보다 작은 파선(dashed) 원(610E)은 +70°의 위도에 대응될 수 있다. 중첩 영역들(610U 및 610T)은 이미지(I-Top)와 스티칭된 이미지(620) 간의 10° 중첩(예를 들면, 위도 +60°에서 위도 +70°까지)에 대응될 수 있다.
특정 실시예들에서, 상부 이미지(I-Top)를 스티칭된 이미지(620)에 스티칭하기 위한 알고리즘은 특징들을 검색하는 단계, 상기한 바와 같이 중첩 영역들(610U 및 610T)에 위치한 대응 특징점들의 쌍들을 결정하는 단계, 및 후술하는 바와 같이 이러한 대응 특징점들의 쌍들을 이용하여 이미지(I-Top')와 스티칭된 이미지(620)를 스티칭하는 단계를 포함할 수 있다. 본 개시가 서로 대응 또는 중첩되는 특정 부분들을 갖는 특정 상부 및 스티칭된 이미지들을 설명 및 예시하고 있지만, 본 개시는 서로 대응 또는 중첩되는 어떤 적절한 부분들을 갖는 어떤 적절한 상부 및 스티칭된 이미지들이든지 고려하고 있다.
도 15는 처리 후 도 14로부터의 예시적 상부 이미지를 도시한다. 특정 실시예들에서, 스티칭된 이미지(620)에 추가되기 전에, 상부 이미지(I-Top)의 보다 작은 파선 원(610E)은 처리된 이미지(I-Top')를 형성하도록 처리, 변환, 또는 최적화될 수 있으며, 그 다음에 상기 처리된 이미지(I-Top')는 스티칭된 이미지(620)에 스티칭 또는 추가된다.
특정 실시예들에서, 상부 이미지(I-Top)의 보다 작은 파선 원(610E)에 적용되는 처리 단계들은, 처리된 이미지(I-Top')가 스티칭된 이미지(620)와 매칭 또는 블렌딩되도록, 라인들(617 또는 618)을 회전 또는 이동하는 단계, 또는 상부 이미지(I-Top)의 보다 작은 파선 원(610E)을 워핑(warping)하는 단계를 포함할 수 있다.
특정 실시예들에서, 단일의 처리된 이미지(I-Top')는, 좌측 및 우측 뷰들 또는 눈들에 대응되는, 각각의 스티칭된 이미지들(620)과 함께 이용될 수 있다. 제한으로서가 아니라 예로서, 상부 이미지(I-Top)의 중첩 영역(610T)은 변환 프로세스 전에 크로핑될(cropped) 수 있다. 특정 실시예들에서, 처리된 이미지(I-Top')는 좌측 눈의 뷰를 나타내는 스티칭된 이미지 및 우측 눈의 뷰를 나타내는 스티칭된 이미지에 추가될 수 있다.
특정 실시예들에서, 좌측 눈 및 우측 눈의 뷰에 대응되는 스티칭된 이미지에 기반하여 별도의 좌측 및 우측 처리된 상부 이미지를 각각 생성하기 위해, 상부 이미지(I-Top)의 보다 작은 파선 원(610E)에 대해 두 가지 처리 루틴들을 수행할 수 있다. 제한으로서가 아니라 예로서, 상기 좌측 처리된 상부 이미지는 좌측 눈의 뷰를 나타내는 스티칭된 이미지에 추가될 수 있고, 상기 우측 처리된 상부 이미지는 우측 눈의 뷰를 나타내는 스티칭된 이미지에 추가될 수 있다.
특정 실시예들에서, 처리된 이미지(I-Top')를 생성하기 위한 상부 이미지(I-Top)의 보다 작은 파선 원(610E)의 처리는, 상기한 바와 같이, 중첩 영역들(610T 및 610U)에서의 대응 특징점들의 쌍들을 검출하는 단계를 포함할 수 있다. 제한으로서가 아니라 예로서, 심 라인들(617)이 이미지(I-Top)의 외측 에지와 교차하는 곳 근처에 위치한 특징들이 검출될 수 있다. 상기 검출된 특징들의 하나 이상의 특징점들은 스티칭된 이미지(620)로부터의 대응 특징점들에 매칭될 수 있으며, 특징점들의 대응 쌍들 간의 상기 매칭에 기반하여, 스티칭된 이미지(620)에 대한 이미지(I-Top)의 보다 작은 파선 원(610E)의 오프셋들이 계산될 수 있다.
특정 실시예들에서, 특징점들의 대응 쌍들이 검출되지 않는 경우, 특징점들은 카메라 기하구조에 기반하여 결정될 수 있거나, 또는 이미지(I-Top)의 보다 작은 파선 원(610E)에 대해 수행되는 처리를 결정하기 위해 카메라 캘리브레이션이 이용될 수 있다.
특정 실시예들에서, 상부 이미지(I-Top)의 중심 주위의 방사상 워프(radial warp)는 상부 이미지(I-Top)의 중심의 위치가 고정된 채로 유지되도록 결정될 수 있다. 또한, 결정된 방사상 워프에 기반하여, 심 라인들(617)은 스티칭된 이미지(616)의 심들(617M)이 끝나는 위치들과 교차하도록 회전될 수 있으며, 중심 라인들(618)은, 스티칭된 이미지(620)를 생성하기 위해 개별 이미지들을 스티칭하는 동안 수행되는, 어떤 요 조정들(yaw adjustments)과 매칭되도록 회전될 수 있다. 제한으로서가 아니라 예로서, 스티칭된 이미지(620)를 형성하는 개별 이미지들(예를 들면, 이미지I-1, I-2, 또는 I-3) 중 하나에 대해 +2°의 요 조정이 수행되면, +2° 회전이 대응되는 중심 라인(618)에 적용될 수 있다.
특정 실시예들에서, 이미지(I-Top')의 보다 작은 파선 원(610E)의 외측 에지의 하나 이상의 부분들은 스티칭된 이미지(620)와 매칭되도록 인출(pulled out) 또는 인입될(pulled in) 수 있다. 제한으로서가 아니라 예로서, 심 라인들(617) 또는 중심 라인들(618)이 이미지(I-Top)의 보다 작은 파선 원(610E)의 외측 에지와 교차하는 위치들은 스티칭된 이미지(620)의 대응 영역과 매칭되도록 인출 또는 인입될 수 있다. 제한으로서가 아니라 예로서, 이미지(I-Top)의 보다 작은 파선 원(610E)의 외측 에지는 심 라인들(617) 또는 중심 라인들(618)의 길이를 각각 적절히 증가 또는 감소시킴으로써 인출 또는 인입될 수 있다.
특정 실시예들에서, 처리된 이미지(I-Top')는 캡 이미지(cap image)로서 별도로 저장될 수 있거나, 또는 처리된 이미지(I-Top')는 스티칭된 이미지(620)로 통합될 수 있다. 제한으로서가 아니라 예로서, 극좌표-직교좌표 변환(polar-to-rectilinear transform)이 처리된 이미지(I-Top')에 적용될 수 있으며, 후술하는 바와 같이, 상기 처리된 이미지(I-Top')는 스티칭된 이미지(620)와 블렌딩될 수 있다.
특정 실시예들에서, 개별 이미지들이 스티칭된 이미지(620)를 형성하기 위해 서로 스티칭되는, 심들(617M)은 경사 블렌드(gradient blend)를 이용하여 "블렌딩될(blended)" 수 있다. 제한으로서가 아니라 예로서, 휘도(luminance) 또는 밝기(brightness)는 심들(617M)에 접근하는 방향을 따라 경사를 가질 수 있다. 예를 들면, 밝기는 양 측면 방향으로부터 심들(617M)쪽으로 갈수록 감소할 수 있다. 스티칭된 이미지(620)와 처리된 이미지(I-Top')의 외측 에지의 교차점은 유사한 방식으로 블렌딩될 수 있다. 제한으로서가 아니라 예로서, 스티칭된 이미지(620)와 처리된 이미지(I-Top') 간의 교차점의 밝기는 스티칭된 이미지(620)의 스케일에 비례하는 경사를 가져, 상기 블렌딩이 고위도에서 매끄럽게 될 수 있다.
상기 개별 이미지들의 블렌딩은 심들(617M)을 포함하는 중첩 영역 내에서 발생할 수 있다. 또한, 상기 블렌딩은 블렌딩 경로에서 시인성 불연속들(visual discontinuities)을 감소시키도록 비선형 경로를 따라 발생할 수 있다. 특정 실시예들에서, 블렌딩 알고리즘은 다수의 후보 블렌딩 경로들을 탐사할 수 있다. 에지 검출 알고리즘은 인접한 개별 이미지들의 교차점 주위의 영역에서 수행될 수 있다. 후보 블렌딩 경로가 양측 이미지의 측면 에지에 닿는 경우, 상기 후보 블렌딩 경로는, 상기 후보 블렌딩 경로가 스티칭된 이미지(620)의 하부 에지에 위치할 때까지, 양 방향으로 상기 측면 에지를 따라갈 수 있다. 후보 블렌딩 경로들이 교차하는 경우, 상기 후보 경로들은 그들의 현재 방향들을 따라 계속될 수 있다. 특정 실시예들에서, 후보 블렌딩 경로로부터 상기 블렌딩 경로의 선택은 스티칭된 이미지(620)의 하부 에지에 도달하는 유일한 후보 블렌딩 경로를 선택하는 것에 기반할 수 있거나, 또는 다수의 후보 블렌딩 경로들이 상기 하부 에지에 도달하는 경우, 최단 후보 블렌딩 경로가 선택된다. 특정 실시예들에서, 상기 후보 블렌딩 경로는 상기 후보 블렌딩 경로가 위치한 이미지의 중심에 관해 최소로 오목하다. "추적된(traced)" 부분들에 대해, 마스크 경사(mask gradient)는 블러 반경(blur radius)이 작은 추적 라인(trace line) 바로 위에서 50 %가 되어야 한다.
특정 실시예들에서, 보로노이(Voronoi)형 심 파인더(seam finder)가 공간적으로 안정적인 스티칭을 위해 이용될 수 있다. 이러한 공간적 안정성은 공유된 호모그래피 행렬들 및 블렌드 데이터가 재사용될 수 있도록 보장할 수 있고, 이는 블렌드-에지 플리커링(flickering)을 줄일 수 있다. 상기 보로노이형 심 파인더는, 상기한 바와 같은, 특징 매처(feature matcher)를 위한 검색 영역들을 더 개량하는(refine) 데 이용되어, 출력 이미지에 있을 가능성이 가장 높은 영역들(예를 들면, 중첩 영역들) 내에 국한된 특징점들의 호모그래피 행렬들의 정확도(accuracy)를 향상시킬 수 있다. 이 데이터는 실시간으로 전단 프로세서들에 피드백되어, 스티칭된 이미지(620)의 스티칭에 이용되지 않을 수 있는 이미지 데이터를 무시하도록 할 수 있다.
특정 실시예들에서, 캡처된 이미지들에서의 객체들의 근역장 깊이(near-field depth)의 변동(variation)은 스티칭된 이미지(620)를 생성할 때 우려되는 것일 수 있다. 상기한 바와 같이, 깊이 정보(예를 들면, 깊이 센서로부터 또는 스테레오 이미지 쌍들을 이용한 이미지들에서의 객체들의 삼각측량으로부터 획득됨)는 카메라에 대한 특징점들의 근접성에 기반하여 매칭되는 특징점을 분리하는 데 이용될 수 있다. 시청자 또는 카메라에 보다 가까운 객체들은 스치팅을 위한 기하구조가 보다 멀리 떨어진 객체들과 상이할 수 있다.
특정 실시예들에서, 원역장(far-field) 객체들의 깊이 변동은 스티칭 품질에 최소의 영향을 미칠 수 있고, 따라서 컴퓨팅 자원들은 근역장 깊이 변동을 파악하는 데 집중될 수 있다. 특정 실시예들에서, 스티칭 서버들(230)은, 깊이 데이터에 기반하여, 하나 이상의 이미지들에서의 객체가, 스티칭 품질을 향상시키기 위해 추가 조치들이 취해질 수 있는, 영역 내에 위치하는지 여부를 결정할 수 있다. 제한으로서가 아니라 예로서, 카메라(212) 또는 카메라 시스템(210)의 미리 결정된 임계 거리 내에 위치하는 객체들을 검출함에 응답하여, 호모그래피 행렬들의 계산(또는 재계산)이 트리거링될(triggered) 수 있다.
특정 실시예들에서, 상기 개별 이미지들은 별도로 스티칭 및 블렌딩되는 다수의 부분들로 구획될 수 있거나 또는, 근역장 객체들이 원역장 객체들보다 많은 시인성 스티칭 오차들을 가질 수 있으므로, 근역장 객체들은 우선순위를 가질 수 있다. 제한으로서가 아니라 예로서, 근역장 객체들은 원역장 객체들과 분리되어 별도로 스티칭될 수 있다. 특정 실시예들에서, 상기 분리된 근역장 객체들은, 상기 근역장 객체들을 이진 마스크(binary mask)를 이용하여 상기 원역장 객체들 위에 배치함으로써, 상기 원역장 객체들과 함께 스티칭된 이미지(620) 상으로 마스킹될 수 있다. 근역장 객체들은 상기 근역장 객체 상의 동일 지점(spot)을 관찰하는 카메라들에게 매우 상이하게 보일 수 있다. 특정 실시예들에서, 스티칭 서버는 중첩 영역에서의 객체를 스티칭하기 위해 인접한 이미지들 중 하나를 이용할 것을 선택할 수 있다.
제한으로서가 아니라 예로서, 심 파인더(예를 들면, 보로노이형)는 근역장 객체의 영역의 대부분을 포함하는 이미지로부터의 근역장 객체를 스티칭하는 데 이용될 수 있다. 특정 실시예들에서, 불균일한 워프(non-uniform warp)는 근역장 객체에 대한 호모그래피 행렬과 원역장 객체에 대한 호모그래피 행렬을 결합하는 데 이용될 수 있다. 예를 들면, 메시 기반 워프(mesh-based warp)는 스티칭된 이미지(620)의 전경(foreground) 및 배경(background)의 스티칭을 위해 근역장 및 원역장 객체들 간의 에지에서 상기 두 개의 호모그래피 행렬들 사이에서 전이할(transition) 수 있다.
객체들이 원역장에서 근역장으로 이동하는 경우 호모그래피 행렬들은 현저하게 변할 수 있다. 특정 실시예들에서, 호모그래피 행렬들의 계산은 스티칭 프로세스와는 별도의 컴퓨팅 스레드에서 수행될 수 있다. 제한으로서가 아니라 예로서, 하나의 컴퓨팅 스레드는 개별 이미지들의 스티칭을 수행할 수 있고, 다른 컴퓨팅 스레드는 호모그래피 데이터를 위해 개별 이미지들을 분석하여 공유된 저장소에 업데이트들을 제공할 수 있다. 나머지 사례들은 캘리브레이션 데이터를 이용하거나 또는 직전의 이용가능 호모그래피 행렬들을 이용하여 관리될 수 있다. 특정 실시예들에서, 호모그래피 행렬들의 계산 또는 스티칭 프로세스는 그래픽 처리 장치(GPU)를 이용하여 가속될 수 있다. 제한으로서가 아니라 예로서, 상기 시스템의 중앙 처리 장치(CPU)는 상기 호모그래피 행렬들을 계산하는 데 이용될 수 있고, 상기 GPU는 상기 개별 이미지들을 왜곡 및 블렌딩하는 데 이용될 수 있다.
특정 실시예들에서, 입체 비디오에 대한 스티칭에 특정적인 하나 이상의 조정들이 수행될 수 있다. 특정 실시예들에서, 좌측 눈 및 우측 눈 뷰들에 대응되는 스티칭된 이미지들(620)로부터의 대응 특징점들의 쌍들은 3-D 구형 투영 공간 상에 투영될 수 있다. 특정 실시예들에서, 좌측 눈 뷰 및 우측 눈 뷰에 대한 시작점 간에 차이가 있을 수 있다. 이 차이는, 제1 카메라 위치가 시작 위치로 사용되고 제1 카메라가 0의 요(yaw)를 갖는, 초기 조건을 통해 보정될 수 있다. 나머지 카메라들은 이 초기 조건들에 기반하여 조정될 수 있다.
특정 실시예들에서, 좌측 눈 뷰 및 우측 눈 뷰에 대응되는 스티칭된 이미지들(620)은 공유된 호모그래피 행렬들을 이용하여 수행될 수 있다. 좌측 눈 뷰에 대응되는 스티칭된 이미지를 생성하기 위한 조정들을 계산하는 스티칭 프로세스는, 전체 호모그래피들 및 이미지 조정들이 좌측 눈 뷰와 우측 눈 뷰 간에 일관되도록 하기 위해, 우측 눈 뷰에 대응되는 스티칭된 이미지(620)를 생성하기 위한 조정들을 계산하는 스티칭 프로세스와 통신할 수 있다. 또한, 이미지 파라미터들 또는 노출 보정은 좌측 눈 뷰와 우측 눈 뷰 간에 합리적 범위 내에서 일관되어야 한다. 특정 실시예들에서, 입체 비디오는 좌측 눈 뷰와 우측 눈 뷰 간에 시간-동기화된(time-synchronized) 프레임들을 가질 수 있다.
특정 실시예들에서, 비디오에 대한 스티칭된 이미지들(620)은 예측(look-ahead) 접근법을 이용할 수 있다. 제한으로서가 아니라 예로서, 현재 프레임에 대해, 스티칭 조정들(예를 들면, 호모그래피 행렬들)은 상기 현재 프레임 및 장래의 어떤 미리 결정된 수의 후속 프레임들에 대해 계산될 수 있다. 특정 실시예들에서, 장래의 프레임들에서 발생하는 대응 특징점들의 쌍의 후속적 변경(예를 들면, 원역장에서 근역장으로의 객체의 이동)을 검출함에 응답하여, 스티칭 파라미터들의 전체 세트가 계산될 수 있다. 또한, 스티칭 파라미터들이 새롭게 계산된 스티칭 파라미터들에 보간되도록(예를 들면, 사인 완화(sine easing)) 하는 변경 플래그(change flag)가 설정되어, 스티치가 매끄럽게 전환되어 장면에서의 변경을 처리하도록 할 수 있다. 상기 미리 결정된 수의 후속 프레임들의 결정은 새로운 스티칭 조정들을 계산하는 데 필요한 시간을 포함해야 한다.
도 16 및 도 17은 각각 개별 이미지들을 스티칭하는 방법들(1600 및 1700)을 도시한다. 특정 실시예들에서, 도 16의 예에 도시한 바와 같이, 실시간 360° 3-D 비디오를 스티칭하는 방법(1600)은 개별 프레임들의 스티칭을 다수의 스티칭 서버들에 걸쳐 분배하는 것이다. 호모그래피 행렬 관리는 스티칭 서버별로 수행될 수 있거나, 또는 스티칭 서버들은 중앙 호모그래피 서버를 이용하여 호모그래피 행렬들을 공유할 수 있다. 특정 실시예들에서, 상기 중앙 호모그래피 서버는 호모그래피 행렬들을 계산하기 위해 또는 이미지들을 스티칭하기 위해 개별 서버 노드들에게 작업을 맡길 수 있다. 스티칭된 이미지를 완성하는 데 이용되는 서버들의 수는 원하는 프레임 레이트 또는 스티칭 서버들의 처리량(throughput)에 비례할 수 있다. 제한으로서가 아니라 예로서, 처리량이 1의 초당 프레임(frame per second: FPS)인 단일 스티칭 서버에 대해, 30개의 스티칭 서버들이 30 FPS의 스티칭된 비디오를 생성하는 데 이용될 수 있다.
특정 실시예들에서, 도 17의 예에 도시한 바와 같이, 실시간 360° 3-D 비디오를 스티칭하는 다른 방법(1700)은 비디오의 세그먼트들(예를 들면, 비디오 청크들(video chunks), 또는 다수의 프레임들)의 스티칭을 다수의 스티칭 서버들에 걸쳐 분배하는 것이다. 다수의 스티칭 서버들은 비디오의 스티칭을 동시에 핸들링할 수 있으며, 여기서 각각의 스티칭 서버는 비디오의 수신된 세그먼트에 대응되는 스티칭된 비디오 세그먼트를 생성한다. 수집 서버(collection server) 또는 비디오 결합기(video combiner)는 스티칭 서버들로부터 개별 비디오 세그먼트들을 수신하고, 스티칭된 비디오를 생성하기 위해, 이들을 다시 병합할 수 있다.
특정 실시예들에서, 개별 이미지들은 스티칭된 이미지 또는 비디오를 생성하기 위해 수동으로 스티칭될 수 있다. 특징 추출 및 대응 특징점들의 쌍들의 결정은 우회될 수 있고 수동으로 선택된 대응 특징점들의 쌍들이 제공될 수 있다. 여기부터, 나머지 스티칭 프로세스는 상기한 바와 같이 수행될 수 있다.
도 18은 적어도 두 개의 이미지들을 스티칭하는 예시적 방법(1800)을 도시한다. 본 명세서에서 설명되는 스티칭 기법들은 이미지들 둘 모두에 대해 동시에 수행되거나, 또는 하나는 일정하게 유지하고 나머지 하나에 대해서만 수행될 수 있다. 상기 방법(1800)은, 입력이 수신되는, 단계(1802)에서 시작될 수 있다. 상기 입력은 다수의 전자 이미지들을 포함할 수 있다. 상기 이미지들은 카메라들(212)과 같은 다수의 카메라들 또는 단일 카메라로부터 수신될 수 있다. 일 예로, 상기 이미지들은 도 21에 도시한 이미지들(2102 내지 2116)을 포함할 수 있다.
특정 실시예들에서, 그러한 이미지들을 캡처하는 상기 카메라들은 제1 배향(214)을 갖는 제1 카메라(212) 및 제2 배향(214)을 갖는 제2 카메라(212)를 포함할 수 있고, 상기 수신된 이미지들은 상기 제1 카메라(212)로부터의 제1 이미지 및 상기 제2 카메라(212)로부터의 제2 이미지를 포함할 수 있다. 상기 입력은 또한, 도 18 내지 도 26에서 설명 및 예시된 스티칭 기법들과 같은, 초기 스티칭 기법을 이용하여 생성될 수 있는 초기 스티칭된 파노라마 이미지(예를 들면, 도 22 참조)를 포함할 수 있다. 전술한 바와 같이, 초기 스티칭된 이미지는, 예를 들면 도 22에 도시한 바와 같이, 이미지 아티팩트들(2202 내지 2210)과 같은 이미지 아티팩트들을 포함할 수 있다. 본 명세서에서 논의되는 이미지 스티칭 기법들의 하나의 기술적 이점은, 예를 들면 도 27에 도시한 이미지와 같이, 이미지 아티팩트들이 거의 없는 심 없고 매끄러운 스티칭된 이미지를 생성한다는 것이다. 특정 실시예들에서, 초기 스티칭된 이미지는, 격자점들이 너무 많이 이동되지 않도록 하기 위해 또는 최종 스티칭된/결합된 이미지가 상기 초기 스티칭된 이미지와 너무 상이하지 않은지 확인하기 위해, 격자 최적화 단계(1810) 중에 이용될 수 있다.
단계(1804)에서, 상기 이미지들은 디피싱된다(defished). 이미지의 디피싱(defishing)은 이미지가 종래의 직선 이미지로 보이도록 어안(fisheye)으로부터 왜곡을 제거하는 단계를 포함한다.
단계(1806)에서, 예를 들면, 이미지 스티칭 프로세스의 속도를 높이고 시스템에 대한 전체적인 부하를 줄이기 위해, 이미지들이 선택적으로(optionally) 리스케일링될(rescaled) 수 있다. 일부 실시예들에서, 이미지의 리스케일링은 상기 이미지의 해상도를 낮추는 단계(예를 들면, 1920 x 2180에서 2124 x 1868로) 또는 상기 이미지의 크기를 압축하는 단계를 포함할 수 있다. 상기 이미지의 리스케일링은 또한 때때로 에지 검출 시에 노이즈 효과를 줄일 수 있다.
단계(1808)에서, 예를 들면 도 23에 나타낸 바와 같이, 상기 이미지들 각각에 있어서 이미지 에지 라인들이 검출될 수 있다. 특정 실시예들에서, 소벨 필터(Sobel filter)로부터 획득되는 경사 크기들(gradient magnitudes)은 에지 검출에 이용될 수 있다. 때때로, 경사 크기 대신에, X 및 Y 방향의 개별 경사들이 별도로 정렬될 수 있다. RGB 색상들 또는 그레이스케일 이미지들이 정렬에 이용될 수 있다. 대안적으로, 오직 특징(예를 들면, SIFT/SURF/ORB 등) 매치들(matches)만 정렬될 수 있다. 예를 들면, 제한 없이 샤르(Scharr), 라플라시안(Laplacian), 로버츠 크로스(Roberts cross), 위상 스트레치 변환(Phase Stretch Transform: PST), 프리윗(Prewitt), 캐니(Canny)(히스테리시스로 임계화(thresholding with hysteresis))를 포함하는, 다른 에지 검출기들이 또한 이미지 검출에 이용될 수 있다.
단계(1810)에서, 격자 최적화가 수행된다. 격자 최적화는, 각 격자점이 상기 이미지들 각각의 일부에 대응되도록 하는, 상기 이미지들 각각을 격자점들로 분할하는 단계(예를 들면, 도 24a 내지 도 24f 참조), 및 이미지들의 중첩 영역들의 정규화된 경사들 간의 차이를 최소화하도록 격자점들 및 상기 이미지들의 대응 부분들을 재귀적으로(recursively) 이동시키는 단계를 포함할 수 있다.
본 명세서에서, 이미지 내의 격자점을 이동시키는 것은 또한 상기 격자점에 대응되는 상기 이미지의 부분을 이동시키는 것을 말한다. 다시 말하면, 하나 이상의 이미지들의 하나 이상의 격자점들은, 상기 이미지들의 중첩 영역 내 특징들 간의 에지 라인들의 차이를 최소화하도록(예를 들면, 제1 이미지 내의 특징과 제2 이미지 내의 대응 특징이 이 두 개의 이미지들의 중첩 영역에서 나타나는 경우, 제1 이미지에서의 특징과 제2 이미지에서의 대응 특징 간의 차이를 최소화하도록), 이동될(병렬적으로 또는 독립적으로) 수 있다. 화질을 유지하기 위해, 상기 이미지의 비중첩 영역들에서의 격자점들도 또한 이동될 수 있다.
특정 실시예들에서, 두 개의 이미지들 사이 또는 동일 이미지 내에서 격자점들의 이동을 특정 임계값(하기에서 더 자세히 논의됨)까지로 제한하는, 스프링 또는 평활화 제약들의 세트가 추가될 수 있다.
격자점들 및 상기 이미지(들)의 대응 부분들은 두 개의 이미지들의 에지들 또는 에지 라인들이 서로 중첩될 때까지 이동될 수 있다. 일 예로 그리고 도 6을 참조하면, 이미지들에서의 에지들을 검출하기 위해 이미지들(I-6 및 I-7)이 먼저 처리될 수 있고(예를 들면, 도 23에 도시된 것과 유사), 다음으로 상기 두 개의 이미지들은 격자점들로 분할될 수 있고(예를 들면, 도 24b에 도시된 것과 유사), 다음으로 이들 이미지들 각각의 격자점들이 이동될 수 있다. 상기 이미지들은 더 많은 격자점들로 더 분할될 수 있고(예를 들면, 도 24c 내지 도 24f에 도시된 것과 유사) 다시 상기 두 개의 이미지들의 중첩 영역들(6106-7)의 에지들이 서로 중첩될 때까지 격자점들은 상기 이미지들 각각에 있어서 한 위치에서 다른 위치로 이동될 수 있다. 모든 점들을 한 번에 함께 이동시키는 것은 매우 불규칙한 메시를 초래할 수 있다. 예를 들면, 상기 격자점들이 한 번에 이동되는 경우, 출력 이미지는 부자연스럽고, 왜곡되고, 원본 이미지와 상당히 상이하게 보일 수 있다. 따라서, 최적화(예를 들면, 이미지를 격자 영역들로 분할하는 단계 및 상기 격자점들을 이동시키는 단계)가 다수의 반복들 또는 단계들로, 즉, 처음에는 상대적으로 조대하게(coarser)(예를 들면, 도 24b에 나타낸 바와 같이) 그리고 보다 낮은 피라미드 레벨들에서는 점점 더 미세하게(예를 들면, 도 24c 내지 도 24f 참조) 수행될 수 있는, 피라미드 레벨 기법이 이용될 수 있다. 보다 상위의 피라미드 레벨들에서, 상기 알고리즘은 보다 큰 윈도우에서 검색하며, 상기 윈도우는 피라미드 레벨이 감소함에 따라 감소한다. 상기 피라미드 레벨이 감소함에 따라 새로운 격자점들이 추가될 수 있다(예를 들면, 도 24c 내지 도 24f 참조). 상기 새로운 격자점들의 위치들은 이전 점들의 위치들로부터 보간될 수 있으며, 그 다음에 상기 격자는 다시 최적화될 수 있다.
특정 실시예들에서, 이미지의 격자 영역에서의 각각의 점은 상기 점을 둘러싼 작은 로컬 영역에서의 중첩 영역들의 정규화된 경사들 간의 차이를 최소화하도록 이동될 수 있다. 상기 프로세스는 상기 피라미드에서 한 레벨 아래로 이동할 수 있으며, 여기서 새로운 격자점들이 추가될 수 있고 이들의 위치들은 원본 격자점들을 이용하여 보간될 수 있다. 각 격자점의 로컬 윈도우, 및 이에 따른 해당 격자점을 이동시킬 최대 검색 거리는, 상기 피라미드 레벨이 감소함에 따라 감소할 수 있다.
중첩되는 특징점들의 검색은 동일 레벨에 있는 격자 셀들에서(선형 검색) 또는 상이한 피라미드 레벨에 있는 셀들에서(지수형 검색(exponential search)) 발생할 수 있다. 특정 실시예들에서, 선형 검색이 이용될 수 있다. 특정 실시예들에서, 지수형 검색이 이용될 수 있다. 대안적으로, 특정 실시예들은 검색 영역을 일정하게 유지하고 상기 이미지의 상이한 피라미드 레벨들에 대해 해당 영역 내에서 검색한다(즉, 상향 스케일링 또는 하향 스케일링된 버전들). 따라서, 특정 실시예들에서, 검색은 상기 이미지의 최소맵(minmap)에 대해 일정한(constant) 영역 및 최대 단계 크기(max step size)로 수행될 수 있다.
도 19는 격자 최적화의 예시적 방법을 도시한다. 특정 실시예들에서, 단계들(1902 내지 1922)은 격자 최적화 단계(1810)의 일부로서 도 18의 단계(1812)로 진행하기 전에 수행될 수 있다.
도 19의 방법은, 격자 영역 및 위치들이 원하는 레벨에서 이미지들 각각에 대해 설정되는, 단계(1902)에서 시작될 수 있다. 최적화될 각 이미지에 대한 격자 영역은 그것의 이웃 및 그 이웃의 구(sphere) 상에서의 배치에 기반할 수 있다. 특정 실시예들에서, 두 개의 이미지들 간의 심 라인 주위의 영역은 가장 변경될 필요가 있는 것일 수 있다. 심들이 어디 있는지 파악하기 위해 상기 이미지들에 대해 초기 심 추정이 수행될 수 있다. 특정 실시예들에서, 상기 격자 영역은 상기 심 라인들의 위치들에 기반하여 설정될 수 있으며, 상기 심 라인은 상기 영역의 중앙에 유지된다. 상기 격자 영역 내의 점들의 수는 상기 피라미드 세트의 레벨에 의해 결정된다. 단계(1904)에서, 최소 차이 정상(minimum difference normal: minDiffNorm) 값이 초기화되고 반복이 0으로 설정된다. 상기 minDiffNorm은, 스티칭에 적절하다고 간주되기 위한, 두 개의 이미지들의 중첩 영역들의 정규화된 경사들 간의 최소 차이 또는 오차이다.
특정 실시예들에서, 단계(1906)에서, 현재 반복이 특정 수 N보다 작은지 여부에 대한 결정이 이루어질 수 있다. N은 이동 조합들 또는 반복들의 총 가능한 수일 수 있다. 예를 들면, N은 5일 수 있다. 상기 결정의 결과가 긍정적이면, 단계(1908)에서, 상기 격자점들은 이동된다. 상기 격자점들은 두 개의 이미지들 사이에서 동시에 이동될 수 있거나 또는 격자점들은 하나의 이미지에서만 이동되고 나머지 이미지는 일정하게 유지될 수 있다.
단계(1910)에서, 로컬 윈도우가 각 격자점에 대해 설정될 수 있고, 다음에 단계(1912)에서, 상기 로컬 윈도우들에서의 경사들이 정규화될 수 있다.
단계(1914)에서, 이미지들의 중첩 영역들의 정규화된 경사들 간의 차이(S)가 계산될 수 있다.
단계(1916)에서, 상기 차이 S가, 단계(1904)에서 초기화되었던, 상기 minDiffNorm 값보다 작은지 여부에 대한 결정이 이루어질 수 있다.
상기 결정의 결과가 긍정적이면, 단계(1918)에서, 이동 및 대응되는 minDiffNorm이 기록되고, 단계(1922)에서, 상기 격자점들은 상기 minDiffNorm 값에 대응하여 이동되고, 상기 방법은 종료된다.
반면에, 상기 차이 S가 상기 minDiffNorm 값보다 크면, 단계(1920)에서, 각 이미지에 있어서 새로운 격자점들이 추가되고(예를 들면, 도 24b 및 도 24c 참조), 반복이 증가되고(예를 들면, iter = 0에서 1로), 두 개의 이미지들의 에지들 또는 에지 라인들이 서로 중첩되거나 또는 상기 두 개의 이미지들 간의 차이가 상기 minDiffNorm 이내 또는 minDiffNorm보다 작아질 때까지 상기 단계들(1906 내지 1916 및 1920)이 반복된다.
도 24a 내지 도 24h는 도 19의 격자 최적화 방법의 예시적 표현을 보여준다.
도 24a는 스티칭될 이미지들의 초기 세트를 보여준다.
도 24b는 상기 이미지들에 적용된 초기 격자를 보여준다. 도 24b는 상기 격자가 초기에 직선형으로 배치되는 것으로 도시하고 있지만, 본 개시는 상기 초기 격자에 대해 어떤 적절한 형태든지 고려하고 있다.
도 24c 내지 도 24f는 상기 격자 최적화 프로세스의 각 반복(즉, 피라미드 레벨)의 결과를 보여준다. 도 24d 내지 도 24f에 나타낸 바와 같이, 영역(2410) 내의 격자점들과 같은 격자점들은 한 번의 반복에서, 상기 격자점에 대응되는 상기 이미지의 부분과 함께, 이동될 수 있다. 일단 이동되면, 상기 격자는 더 이상 그것의 동일한 형태를 갖지 않으며, 예를 들면, 도 24b의 초기 직선형 격자는 도 24c 내지 도 24f에서 더 이상 그렇지 않다.
도 24e 및 도 24f에 나타낸 바와 같이, 상기 최적화 방법의 추가 반복들(즉, 피라미드의 보다 낮은 레벨들)에서 추가된 격자점들은 이웃한 격자점들 사이에서 그러한 점들 간의 라인 상에 추가될 수 있다. 그러한 격자점들은, 기존 격자점들과 함께, 상기 최적화 방법의 장래 반복들 동안 이동될 수 있으며, 이에 따라 상기 격자점 및 그 이웃들은 더 이상 일렬로 배열되지 않게 된다. 본 개시는 상기 격자점들이 어떤 적절한 기하학적 구성으로든지 도입되고, 차후 그러한 구성으로부터 이동될 수 있다는 것을 고려하고 있다.
도 24g 및 도 24h에 나타낸 바와 같이, 도 19의 최적화 방법의 한번 이상의 반복들 이후에, 최종 격자(및 이에 따른 상기 이미지들의 대응 부분들)는 상기 초기 격자와 상이한 형태를 가진다. 도 24h는 도 19의 상기 최적화 방법의 한번의 반복 시 격자점들 및 이미지들의 대응되는 점들이 그들의 초기 위치(도 24g)로부터 이동된 후의 예시적인 최종 격자를 보여준다. 도 24a 내지 도 24h에 나타낸 바와 같이, 한번의 반복 시 또는 도 19의 전체 최적화 프로세스 동안, 일부 격자점들은 이동되는 반면 다른 격자점들은 이동되지 않을 수 있다. 한번의 반복 이후 추가될 수 있는 추가 격자점들은 도 24g 및 도 24h에 도시되어 있지 않다. 도 24g 및 도 24h는, 예를 들면, 스티칭되는 두 개의 이미지들 간의 중첩 영역에서의 격자에 대응될 수 있다.
적절한 경우, 특정 실시예들은 도 19의 상기 방법의 하나 이상의 단계들을 반복할 수 있다. 본 개시가 도 19의 상기 방법의 특정 단계들이 특정 순서로 발생하는 것으로 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 순서로 발생하는 도 19의 상기 방법의 어떤 적절한 단계들이든지 고려하고 있다. 또한, 본 개시가, 도 19의 상기 방법의 특정 단계들을 포함하는, 격자 최적화의 예시적 방법을 설명 및 예시하고 있지만, 본 개시는, 적절한 경우, 도 19의 상기 방법의 단계들 중 전부 또는 일부만 포함할 수 있는 어떤 적절한 단계들을 포함하는, 어떤 적절한 격자 최적화 방법이든지 고려하고 있다. 나아가, 본 개시가 도 19의 상기 방법의 특정 단계들을 수행하는 특정한 구성요소들, 장치들, 또는 시스템들을 설명 및 예시하고 있지만, 본 개시는 도 19의 상기 방법의 어떤 적절한 단계들을 수행하는 어떤 적절한 구성요소들, 장치들, 또는 시스템들의 어떤 적절한 조합이든지 고려하고 있다. 예를 들면, 도 19에서의 단계들은 중앙 처리 장치(CPU)에 의해 수행될 수 있는 반면, 그러한 단계들의 어떤 조합이든지, 예를 들면, 후술하는 바와 같은 그래픽 처리 장치(GPU)를 포함하는, 다른 어떤 컴퓨팅 시스템에 의해 수행될 수 있다.
특정 실시예들에서, 한번의 반복에서 각 격자점의 이동을 제한함으로써 너무 많은 이동의 결과로 상기 이미지에 아티팩트들이 도입되는 것을 방지한다. 특정 실시예들에서, 두 개의 이미지들의 사이 또는 동일 이미지 내에서 격자점들의 이동을 특정 임계 한계까지로 제한하는, 하나 이상의 스프링 또는 평활화 제약들이 추가될 수 있다. 이는 스프링 시스템의 총 에너지를 최소화하는 것으로 생각될 수 있으며, 여기서 스프링들은, 예를 들면, 1) 격자점이 얼마나 많이 이동하는지 고려하기 위한, 상기 격자점의 원점 위치로부터 그 변경된 위치까지의 상기 격자점의 스프링 상수 k1, 2) 이미지 내의 격자점들의 상대적 변위들을 고려하기 위한, 격자점의 변경된 위치로부터 해당 이미지에서 그것의 이웃 격자점들의 위치까지의 스프링 상수 k2, 및 3) 격자점의 변경된 위치로부터 이웃한 이미지에서 이웃 격자점까지의 스프링 상수 k3을 갖는다. 스프링 모델을 구현하는 특정 실시예들에서, 한번의 반복에서(즉, 피라미드에 있어서 특정 레벨에서) 격자점들의 변위를 평활화하는 것은, 예를 들면, 도 25에 나타낸 바와 같은 스프링 구조를 갖는 스프링 관계 문제와 동등하다. 이는 모든 이미지들에 대해 쌍별로(pairwise) 수행될 수 있다.
스프링 제약의 하나의 예시적 모델로서, 병합되는 이미지들이 각각 MxN개의 격자점들을 가진다고 하자. 상기 점들의 최적화된 변위들은 제1 이미지에 대해서는 Pij이고 제2 이미지에 대해서는 Qij라고 하자. pij 및 qij는 최소 에너지를 갖는 점들의 위치들이라 하자. D1 및 D2는 각각 x 및 y 방향으로 상기 점들의 원래의 변위 벡터라 하자. 그러면,
Figure pct00015
Figure pct00016
유사하게, 제2 이미지에 대해,
Figure pct00017
Figure pct00018
유사하게, 제2 이미지에 대해,
Figure pct00019
상기 시스템의 총 에너지는 다음과 같이 쓸 수 있다:
Figure pct00020
Figure pct00021
상기 총 에너지는 또한 행렬 형태로 xTAx로 쓸 수 있으며, 여기서 x = [p0 0, p0 1, ..., p0 N-1, p1 0, p1 1, …, p1 N-1, …., pM-1 0, pM-1 1, …, pM-1 N-1, q0 0, q0 1, ..., q0 N-1, q1 0, q1 1, …, q1 N-1, …., qM-1 0, qM-1 1, …, qM-1 N-1, 1]T = [rT, 1]T 이고, A는 (MN+1 x MN+1) 대칭적 양의 정부호 행렬(symmetric positive definite matrix)이다.
Figure pct00022
이고 여기서 AMN은 MNxMN 대칭 행렬이라 하면, 해(solution)는
Figure pct00023
이다.
단계(1812)에서, 심 추정 및 블렌딩 이전에, 상기 이미지들에 대해 색 보정이 선택적으로(optionally) 수행될 수 있다. 특정 실시예들에서, 모든 카메라로부터의 이미지들이 유사한 보정 및 화이트 밸런스 설정들을 갖도록 함으로써 보다 양호한 심 추정 및 블렌딩의 결과를 가져올 수 있다. 각각의 이미지에 대해, 상이한 노출 설정들(+1, 0, -1 노출 중단들(exposure stops))에서의 동일 이미지는, 각각의 노출에 대한 가중치들이 콘트라스트, 채도(saturation), 적정노출도(well-exposedness)에 의해 결정될 수 있는, 표준 이미지 융합 기법들(standard image fusion techniques)을 이용하여, 서로 융합될 수 있다. 이는 유사한 노출 설정을 갖는 이미지들을 생성할 수 있고, 상기 유사한 노출 설정을 갖는 이미지들은 다음에 블렌딩하기 쉬울 수 있다. 색 보정에서 다음 단계는, 상기 이미지들의 노출에 대해, 비네트(vignette) 제거 및 화이트 밸런스를 함께 파노라마로서 최적화하는 것이다. 카메라 응답 곡선(camera response curve)은 색 보정, 비네트 및 노출들을 위한 색 공간을 정규화하는 데 이용된다. 이미지들 I0, I1, …, IN-1에 log2(a0), log2(a1), …, log2(aN-1)의 노출 오프셋이 적용된다고 하자. a0, a1, …, aN-1에 대해 풀기 위해, 변경된 노출들을 이용한 픽셀 차이는 중첩 영역들에서 최소화될 필요가 있다. xTAx를 최소화하기 위해,
Figure pct00024
이 되도록 하며, 여기서 x=[a0,a1, …, aN-1,1]T = [rT, 1]T이고 A는 (N+1 x N+1) 대칭적 양의 반정부호 행렬(symmetric positive-semidefinite matrix)이다.
Figure pct00025
이고 여기서 AN은 NxN 대칭 행렬이라 하면, 해는,
Figure pct00026
이 되도록 정규화된, r =AN-1 b이다. 비네트 및 화이트 밸런스 보정은 유사한 방식으로 수행될 수 있다.
단계(1814)에서, 예를 들면, 고스팅(ghosting) 없는, 심없는 스티치(seamless stitch)를 얻기 위해, 심 추정이 수행될 수 있다. 특정 실시예들에서, 두 개의 인접한 이미지들 간의 에너지 맵(energy map)은 상기 이미지들 간의 경사 크기의 절대 차이(absolute difference)로부터 계산될 수 있다. 상기 에너지 맵을 계산하기 위해, 각각의 픽셀에서의 에너지는 이웃한 픽셀들의 가중 평균(weighted average)일 수 있다. 최소 에너지를 갖는 위에서 아래로의 경로는 상기 두 개의 이미지들 간의 심 라인으로 간주된다(예를 들면, 도 26 참조) 대안적으로, 심 탐색 알고리즘들의 가중 조합(weighted combination)이 또한 이용될 수 있다. 픽셀마다, 이미지의 중심으로부터 점의 거리, 경사 차이(gradient difference) 등에 기반하여 가중치들이 주어지고, 최소 에너지를 갖는 심이 선택된다. 각각의 이미지는 심 추정 프로세스에서 두 번 기여할 수 있다. 두 개의 경로들 사이의 영역은 해당 이미지에 대한 심 마스크(seam mask)로 간주된다. 상기 심 추정은 여기서 논의한 프로세스에 제한되지 않으며, 그래프-컷(graph-cut) 기법과 같은, 다른 심 탐색 알고리즘들이 또한 심 추정에 이용될 수 있다는 것에 주의해야 한다.
단계(1816)에서, 예를 들면, 도 27에 나타낸 바와 같이, 결합된 또는 파노라마 이미지를 생성하도록 이미지들이 블렌딩될 수 있다. 블렌딩은 다중대역(multiband) 블렌딩을 이용하여 수행될 수 있다. 이미지 피라미드들은 심 마스크들뿐만 아니라 이미지들에 대해 구축될 수 있고 상기 피라미드의 각 레벨은 독립적으로 블렌딩될 수 있다. 결과적인 파노라마는 모든 블렌딩된 피라미드 레벨들로부터 복원된다.
특정 실시예들에서, 보다 높은 위도들(latitudes)에서 매끄러운 블렌드들이 성취될 수 있도록,블렌드 폭은 위도 값들로 스케일링될 수 있다. 이렇게 하면, 상기 파노라마가 구에 투영될 때, 상기 블렌드 폭이 거의 일정하게 유지된다.
Figure pct00027
는 상기 심 라인을 따른 점의 위도라 하고, d는 상기 구 상에 투영될 때 원하는 블렌드 폭이라 하자. 그러면, 상기 점에서의 블렌드 폭은
Figure pct00028
이 되어야 한다.
적절한 경우, 특정 실시예들은 도 18의 상기 방법(1800)의 하나 이상의 단계들을 반복할 수 있다. 본 개시가 도 18의 상기 방법의 특정 단계들이 특정 순서로 발생하는 것으로 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 순서로 발생하는 도 18의 상기 방법의 어떤 적절한 단계들이든지 고려하고 있다.
또한, 본 개시가, 도 18의 상기 방법의 특정 단계들을 포함하는, 격자 최적화에 기반하여 이미지들을 스티칭하는 예시적 방법을 설명 및 예시하고 있지만, 본 개시는, 적절한 경우, 도 18의 상기 방법의 단계들 중 전부 또는 일부를 포함하거나 아무 것도 포함하지 않을 수 있는 어떤 적절한 단계들을 포함하는, 격자 최적화에 기반하여 이미지들을 스티칭하는 어떤 적절한 방법이든지 고려하고 있다.
나아가, 본 개시가 도 18의 상기 방법의 특정 단계들을 수행하는 특정한 구성요소들, 장치들, 또는 시스템들을 설명 및 예시하고 있지만, 본 개시는 도 18의 상기 방법의 어떤 적절한 단계들을 수행하는 어떤 적절한 구성요소들, 장치들, 또는 시스템들의 어떤 적절한 조합이든지 고려하고 있다. 예를 들면, 도 18에서의 단계들은 중앙 처리 장치(CPU)에 의해 수행될 수 있는 반면, 그러한 단계들의 어떤 조합이든지, 예를 들면, 후술하는 바와 같은 그래픽 처리 장치(GPU)를 포함하는, 다른 어떤 컴퓨팅 시스템에 의해 수행될 수 있다.
특정 실시예들에서, 본 명세서에서 논의되는 격자 최적화 기법은 비디오 스티칭에, 즉, 비디오에서 이미지 프레임들을 스티칭하는 데 적용될 수 있다. 최적화는 상기 비디오 스티칭 시 복수의 횟수로 수행될 수 있다. 최적화의 빈도는 단일 최적화의 시간 비용(time cost)에 의존할 수 있다. 각각의 최적화 후에, 픽셀 이동은 변환 맵(transform map)으로 기록될 수 있다. 상기 변환 맵은 다음 최적화까지 후속 프레임들에 대해 적용될 수 있다. 두 개의 인접한 변환 맵들 간에, 기록된 픽셀 이동은 전이(transition)를 매끄럽게 하기 위해 보간될 수 있다.
특정 실시예들에서, 본 명세서에서 논의되는 격자 최적화 기법은 상부 이미지를 스티칭하는 데 적용될 수 있다. 추정된 이미지 파라미터들을 갖는 상부 이미지는 최적화된 파노라마(상기 블렌딩 단계(1816) 후 획득됨) 상에 배치될 수 있다. 격자 최적화는 상부 이미지를 스티칭하기 위해 상기 최적화된 파노라마와 상기 워핑된(warped) 상부 이미지 사이에 적용될 수 있다.
특정 실시예들에서, 본 명세서에서 논의되는 격자 최적화 기법은 3D 스티칭에 적용될 수 있다. 양호한 3D 스티치에 대해, 좌측 및 우측 파노라마들 간의 수직 오프셋은 0에 가깝게 되어야 한다. 상기 좌측 및 우측 이미지들에서 각 격자점에 대한 수직 오프셋은 피라미드 검색에서 y-축 이동을 기록함으로써 계산될 수 있다. y-축 이동들 간의 차이는 수직 오프셋에 의해 제한되어야 하고 x-축 이동들 간의 차이는 상수인 EX,MAX(사용자가 두 개로, 즉, 하나의 3D 이미지라기 보다 두 개의 분리된 이미지들로 보기 전 발생할 수 있는 최대 수평 오프셋)를 초과하지 않아야 한다는 제약과 함께, 상기 격자 최적화는 좌측 및 우측 파노라마들의 인접한 쌍들에 함께 적용되어야 한다. 보다 양호한 3D 시청 경험을 갖기 위해, 상기 심 추정은 좌측 및 우측 파노라마들의 인접한 쌍들에 함께 적용될 수 있다.
도 20은 격자 최적화에 기반하여 이미지들을 스티칭하는 다른 예시적 방법(2000)을 도시한다.
상기 방법(2000)은, 제1 이미지 및 제2 이미지가 액세스되고 수신되는, 단계(2002)에서 시작될 수 있다. 일부 실시예들에서, 상기 제1 이미지는 제1 배향을 갖는 제1 카메라(212)로부터 수신될 수 있는 이미지이고, 상기 제2 이미지는 제2 배향을 갖는 제2 카메라(212)로부터 수신될 수 있는 이미지이다. 일부 실시예들에서, 상기 제1 및 제2 이미지들은 동일한 카메라로부터 수신될 수 있다. 특정 실시예들에서, 상기 제1 이미지의 적어도 일부는 상기 제2 이미지의 적어도 일부와 중첩되고, 상기 제1 및 제2 이미지들은 사이에 중첩 영역을 가진다. 일 예로, 도 6을 참조하면, 상기 제1 및 제2 카메라 이미지들은 각각 중첩 영역(6106-7)을 갖는 I-6 및 I-7일 수 있다. 일부 실시예들에서, 상기 제1 및 제2 이미지들 중 하나 이상은 리스케일링될 수 있으며, 이는, 본 명세서 다른 곳에서 논의된 바와 같이, 전체 프로세스의 속도를 높이고 시스템 부하를 줄이기 위해 해상도를 낮추거나 또는 상기 이미지들의 크기를 압축하는 단계를 포함할 수 있다.
단계(2004)에서, 상기 제1 이미지 및 상기 제2 이미지 각각은, 예를 들면, 도 24B에 나타낸 바와 같이, 격자점들의 제1 세트로 분할된다. 특정 실시예들에서, 각각의 격자점은 상기 제1 이미지 또는 상기 제2 이미지의 일부에 대응된다. 단계(2006)에서, 상기 제1 및 제2 이미지들 간의 중첩 영역의 차이들이 결정된다.
특정 실시예들에서, 상기 차이들을 결정하기 위해, 이미지 에지들 및/또는 콘트라스트 라인들(예를 들면, 도 23 참조)을 계산하도록 에지 검출이 상기 이미지들에 대해 수행되고, 다음에 상기 제1 이미지 내의 특징과 상기 제2 이미지 내의 대응 특징 간의 에지 라인들의 차이들이 결정된다. 에지 검출은 본 명세서 다른 곳에서 논의된 바와 같은 소벨 경사(sobel gradients)를 이용하여 수행될 수 있다.
단계(2008)에서, 하나 이상의 격자점들 및 상기 제1 이미지 또는 상기 제2 이미지의 대응 부분들은, 상기 제1 이미지와 상기 제2 이미지 간의 차이들을 최소화하도록, 다른 격자점들을 기준으로 이동된다.
특정 실시예들에서, 상기 하나 이상의 격자점들을 이동시키는 단계는, 예를 들면, 도 24c 내지 도 24f에 나타낸 바와 같이, 상기 제1 및 제2 이미지들의 중첩 영역 내의 특징들 간의 에지 라인들의 차이를 최소화하기 위해 상기 격자점들을 한 위치에서 다른 위치로 이동시키는 단계를 포함한다.
특정 실시예들에서, 로컬 윈도우가 각 격자점에 대해 정의될 수 있고 상기 하나 이상의 격자점들 각각의 이동은 그 각각의 로컬 윈도우 내에서 제한될 수 있다. 상기 격자점들 각각에 대한 로컬 윈도우는 상기 제1 및 제2 이미지들 간의 중첩 영역에 위치할 수 있다. 일부 실시예들에서, 상기 제1 및 제2 이미지들의 상기 격자점들은 동시에 또는 서로 독립적으로 이동될 수 있다. 상기 격자점들은, 본 명세서 다른 곳에서 논의된 바와 같이, 상기 격자점들의 이동에 저항하도록 구성될 수 있는 스프링 또는 평활화 제약들의 세트를 포함하는 힘 모델(force model)에 적어도 부분적으로 기반하여 이동될 수 있다. 예를 들면, 상기 스프링 제약들의 세트는, 예를 들면, 도 25를 참조하여 예시 및 논의한 바와 같이, 제1 격자점이 동일 이미지 내에서 제2 격자점을 기준으로 얼마나(예를 들면, 픽셀수(pixels)) 이동해야 하는지, 상기 제1 이미지 내의 격자점이 상기 제2 이미지 내의 격자점을 기준으로 얼마나 이동해야 하는지, 및 상기 제1 이미지 내의 격자점이 그 원래 위치를 기준으로 얼마나 이동해야 하는지 중 하나 이상을 정의할 수 있다.
단계(2010)에서, 상기 격자점들 및 상기 제1 및/또는 제2 이미지들의 대응 부분들이 이동된 후, 상기 두 개의 이미지들 간의 중첩 영역의 차이들이 다시 결정된다.
단계(2012)에서, 상기 중첩 영역의 적어도 하나의 차이가 미리 결정된 임계값보다 큰지 여부에 대한 결정이 이루어진다. 상기 결정의 결과가 긍정적이면, 단계(2013)에서, 예를 들면, 도 24b 내지 도 24c 또는 도 24c 내지 도 24d에 나타낸 바와 같이, 격자점들 또는 새로운 격자점들의 제2/후속 세트가 상기 제1 및 제2 이미지들 각각에 추가된다.
특정 실시예들에서, 후속/새로운 격자점들이 상기 이미지들 내에 추가됨에 따라 각 격자점에 대한 상기 로컬 윈도우의 크기는 감소된다. 단계들(2008 내지 2012)은 상기 중첩 영역의 적어도 하나의 차이가 미리 결정된 임계값보다 작아질 때까지 반복될 수 있다.
특정 실시예들에서, 상기 제1 및 제2 이미지들의 에지들 또는 에지 라인들이 서로 중첩될 때 이 차이는 상기 미리 결정된 임계값보다 작게 된다. 예를 들면, 도 1의 요소들(102a 및 104a)에 나타낸 바와 같이, 두 개의 중첩 이미지들에서 난간들(hand rails) 간의 에지들은 정렬되지 않을 수 있다. 단계(2012)에서 상기 결정의 결과가 부정적이거나 또는 상기 제1 및 제2 이미지들 간의 중첩 영역의 상기 차이(들)가 일단 상기 미리 결정된 임계값보다 작게 되면, 단계 2014에서, 예를 들면, 도 27에 나타낸 바와 같이, 상기 제1 이미지 및 상기 제2 이미지는 병합된 이미지(예를 들면, 파노라마 이미지)를 생성하도록 결합된다. 예를 들면, 도1의 요소들(102b 및 104b)에 나타낸 바와 같이, 두 개의 중첩 이미지들에서 난간들 간의 에지들은 반복적인 격자 최적화의 결과 충분히 정렬될 수 있다.
특정 실시예들에서, 상기 제1 및 제2 이미지들을 결합하는 단계는 상기 두 개의 이미지들 간의 심 라인을 식별하는 단계(상기 도 18의 단계(1814)에서 논의한 바와 같음) 및 다음으로 상기 병합된 이미지를 생성하도록 상기 심 라인을 따라 상기 이미지들을 블렌딩하는 단계(상기 도 18의 단계(1816)에서 논의한 바와 같음)를 포함할 수 있다.
적절한 경우, 특정 실시예들은 도 20의 상기 방법(2000)의 하나 이상의 단계들을 반복할 수 있다. 본 개시가 도 20의 상기 방법의 특정 단계들이 특정 순서로 발생하는 것으로 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 순서로 발생하는 도 20의 상기 방법의 어떤 적절한 단계들이든지 고려하고 있다.
또한, 본 개시가, 도 20의 상기 방법의 특정 단계들을 포함하는, 격자 최적화에 기반하여 이미지들을 스티칭하는 예시적 방법을 설명 및 예시하고 있지만, 본 개시는, 적절한 경우, 도 20의 상기 방법의 단계들 중 전부 또는 일부를 포함하거나 아무 것도 포함하지 않을 수 있는 어떤 적절한 단계들을 포함하는, 격자 최적화에 기반하여 이미지들을 스티칭하는 어떤 적절한 방법이든지 고려하고 있다. 나아가, 본 개시가 도 20의 상기 방법의 특정 단계들을 수행하는 특정한 구성요소들, 장치들, 또는 시스템들을 설명 및 예시하고 있지만, 본 개시는 도 20의 상기 방법의 어떤 적절한 단계들을 수행하는 어떤 적절한 구성요소들, 장치들, 또는 시스템들의 어떤 적절한 조합이든지 고려하고 있다. 예를 들면, 도 20에서의 단계들은 중앙 처리 장치(CPU)에 의해 수행될 수 있는 반면, 그러한 단계들의 어떤 조합이든지, 예를 들면, 후술하는 바와 같은 그래픽 처리 장치(GPU)를 포함하는, 다른 어떤 컴퓨팅 시스템에 의해 수행될 수 있다.
단일 시간 최적화의 시간 비용을 감소시키고 최적화의 빈도를 증가시키기 위해, 특정 실시예들은 상기 격자 최적화(단계(1810)), 심 추정(단계(1814)), 및 블렌딩(단계(1816))을 가속화하도록 그래픽 처리 장치(GPU)를 이용할 수 있다. 제한으로서가 아니라 예로서, 이러한 단계들을 엔비디아(Nvidia) GTX 980과 같은 GPU 상에서 실행하는 경우, 제온(Xeon) 3.10 GHz 상에서 실행되는 단일 스레드 CPU 버전보다 성능이 약 6배 내지 약 18배 빨라진다. GPU-기반 격자 최적화, 심 추정, 및 블렌딩 단계들 각각은 하기에서 상세히 논의된다.
GPU 상에서 격자 최적화 단계(1810)을 수행하는 경우, 각 격자점에 대해, 스레드 블록(thread block)이 계산을 위해 할당될 수 있다. 격자점 A와 같은 특정 격자점을 최적화하는 경우, 격자점 A 주위의 로컬 윈도우 WA에서의 각 픽셀 또는 각 픽셀 더미(pile)에 대해, 별도의 스레드가 계산을 위해 할당될 수 있다. 감소 알고리즘을 이용하여, 상기 로컬 윈도우 WA에서의 최소 및 최대 값들이 정규화를 위해 획득될 수 있으며, 또한 WA에서의 그들의 합 SA도 획득될 수 있다. 격자점들의 이동은 최소 SA를 이용하여 기록될 수 있다. 새로운 격자점들은 두 단계로 보간될 수 있다. 피라미드 레벨이 최소 레벨에 도달하지 못한 경우(도 18 및 도 19를 참조하여 상기한 바와 같음), WA에서의 최소 및 최대 값들의 새로운 세트를 얻기 위해 레벨이 감소되고 로컬 윈도우 WA가 감소될 수 있고, 후속 단계들은 상기 피라미드 레벨이 상기 최소 레벨에 도달할 때까지 반복된다.
소벨 차이(sobel difference) 및 픽셀 에너지는 둘 모두 인플레이스(in-place) 계산이고 각 픽셀에 대한 계산은 다른 픽셀들과 독립적이기 때문에, 픽셀당 하나의 스레드를 할당함으로써 GPU의 병렬 용량(parallel capacity)을 활용할 수 있다. 심 탐색(seam finding)을 위해, 두 가지 대안적 접근법들이 이용될 수 있다. 제1 접근법에서, 커널 함수들이 행(row)마다 순차적으로 론칭될 수 있다. 하나의 행을 계산한 후, 현재 커널 함수는 중단되고 다른 커널 함수가 다음 행에 대해 시작된다. 제2 접근법에서, 오직 하나의 커널이 모든 행에 대해 이용되고, 상기 커널 내에서, 하나의 스레드가 하나의 열(column)에 대해 이용된다. 블록에서의 스레드들은 각 행을 계산한 후 동기화될 수 있다. 특정 실시예들에서, 심 탐색 영역이 심 라인 주위의 512개 열들로 제한되고 블록당 스레드 수는 2124일 수 있으므로, 상기 제2 방법이 상기 제1 방법보다 선호된다.
특정 실시예들에서, 최소 에너지로 심 라인의 시작 픽셀을 찾기 위해, 감소 방법이 제1 행에 이용될 수 있다. 심 맵(seam map)이 CPU에 복사되고, 심 라인 탐색은, 이것이 오직 하나의 스레드만을 필요로 하기 때문에, CPU에 의해 수행될 수 있다. 심 마스크(seam mask)가 모든 심 라인들 사이에 채워질 수 있다. 제1 채널은 이미지의 인덱스를 기록하는 데 이용될 수 있고 제2 채널은 블렌딩을 위한 픽셀 가중치를 기록하는 데 이용될 수 있다.
특정 실시예들에서, 심 마스크를 포함하는 모든 이미지들에 대한 피라미드가 구축될 수 있다. 각 픽셀에 대해, 하나의 스레드가 할당된다. 피라미드의 하나의 레벨이 구축된 후, 현재 레벨에서 픽셀 레벨보다 큰 인덱스를 갖는 스레드들은 킬되거나(killed) 또는 종료된다. 이미지들은 매 레벨마다 블렌딩될 수 있다. 매 픽셀마다, 현재 레벨에서 상기 심 마스크의 제1 채널 값에 기반하여 이미지가 선택된다. 상기 피라미드로부터의 이미지는, 아래에서 위로, 순차적으로 각 레벨에 대한 커널을 론칭함으로써 복원될 수 있다.
특정 실시예들에서, 둘 이상의 이미지들을 단일 이미지로 병합하는 것은 다수의 고려사항들에 기반하여 상기 이미지들을 조정함으로써 달성될 수 있다. 예를 들면, 중첩 이미지들의 오정렬된 부분들은 상기 오정렬을 최소화하도록 상기 이미지들 중 하나 또는 둘 모두의 적어도 일부를 조정함으로써(예를 들면, 워핑 또는 왜곡함으로써) 보정될 수 있다. 그러나, 상기 이미지들이 완전히 정렬되도록 상기 이미지들을 조정하는 것은 너무 많은 조정을 필요로 하므로 상기 이미지들의 다른 부분들이 오정렬되어 시청자에게 왜곡되어 보이게 된다. 따라서, 둘 이상의 이미지들을 병합하기 위한 고려사항들은 이미지의 오정렬된 부분들을 정렬함으로써 야기되는 이미지 왜곡의 분석을 포함할 수 있다.
후술하는 바와 같이, 이미지 왜곡은, 정렬되는 부분들 근처에서의 이미지의 왜곡을 의미하는, 로컬 왜곡 및, 상기 이미지의 오정렬된 부분들 근처에 있지 않은 상기 이미지의 부분들의 왜곡을 의미하는, 글로벌 왜곡(global distortion) 둘 모두를 포함할 수 있다. 따라서, 둘 이상의 이미지들을 단일 이미지로 병합함으로써 화질을 보존하면서 오정렬을 줄이도록 정렬 및 이미지 왜곡의 경쟁적 고려사항들의 균형을 맞출 수 있다.
도 29는 둘 이상의 이미지들을 단일 이미지로 병합하는 예시적 방법(2900)을 도시한다. 단계(2905)는 중첩 영역을 갖는, 즉, 각 이미지가 장면의 동일 부분을 포함하는, 둘 이상의 이미지들을 액세스하는 단계를 포함한다. 예를 들면, 상기 이미지들은 본 명세서에서 설명되는 카메라들에 의해 캡처될 수 있다.
방법(2900)은, 단계(2905)에서 액세스된 상기 이미지들에서 특징들이 식별될 수 있는, 단계(2910)를 포함할 수 있다. 두 개의 이미지들의 중첩 영역에서 상기 특징들이 식별될 수 있다. 특정 실시예들에서, 이미지에서 하나 이상의 인접한 또는 인근의 픽셀들이, 색 경사(color gradient), 밝기, 또는 기타 패턴들의 차이와 같이, 그들 간에 어떤 차이를 갖는 경우, 특징들이 식별될 수 있다. 특정 실시예들에서, 하나의 이미지에서의 특징은 다른 이미지에서의 대응 특징과 연관될 수 있다. 예를 들면, 도 1의 요소(104a)에 나타낸 좌측 난간의 불연속은 이미지 특징일 수 있고 우측 난간의 불연속은 대응되는 이미지 특징일 수 있다. 특정 실시예들에서, 특징점들은 이미지에서 특징의 위치를 식별하는 데 이용될 수 있다. 예를 들면, 특징의 좌표는 연관된 특징점의 좌표에 기반하여 결정될 수 있다.
특정 실시예들에서, 특징들 이외에 다른 파라미터들이 단계(2910)에서 식별될 수 있다. 예를 들면, 특정 실시예들에서, 단계(2910)는 단계(2905)에서 액세스된 이미지들을 촬영한 카메라(들)의 카메라 특성들을 액세스 또는 결정하는 단계를 포함할 수 있다. 특정 실시예들에서, 카메라 특성들은 추정될 수 있다. 예를 들면, PTGUI, 후진(Hugin), 오토파노 콜라(Autopano Kolor), 또는 파노라마 스튜디오(Panorama studio)와 같은 소프트웨어를 이용한 거리 최소화 기법들이 이용될 수 있다. 다른 예로서, 립파노(Libpano)와 같은 소프트웨어 라이브러리들이 이미지들 간의 직접 원근(perspective)/호모그래피 변환을 계산하고 다음에 투영(projection) 및 렌즈 유형에 따라 상기 이미지들을 조정하는 데 이용될 수 있다. OpenCV 및 VLFeat 등과 같은 소프트웨어 라이브러리들은, 그러한 조정들을 수행하거나 또는 수행하는 것을 돕는 데 이용될 수 있는, 원근 추정(perspective estimation) 알고리즘들을 이용할 수 있다.
특정 실시예들에서, 특징들을 식별하는 단계는 특징들의 식별을 수신하는 단계를 포함할 수 있다. 특정 실시예들에서, 특징들을 식별하는 단계는 그러한 특징들을 계산 또는 추정하는 단계를 포함할 수 있다. 예를 들면, DLT는 기초 원근 변환(base perspective transform)을 계산하는 데 이용될 수 있다. 본 개시는 부가적으로 또는 대안적으로 다른 방법들이 이용될 수 있음을 고려하고 있다. 예를 들면, RANSAC는 이상치들(outliers)을 필터링하는 데 이용될 수 있고, 최소 중위 제곱(least median of squares)과 같은 다른 알고리즘들이 또한 이용될 수 있다. 본 개시는 어떤 적절한 방법 또는 알고리즘들이든지 이미지들의 세트에서의 특징들을 식별하는 데 이용될 수 있음을 고려하고 있다.
방법(2900)은, 상기 이미지들의 전부 또는 일부가 영역들로 분할되는, 단계(2915)를 포함할 수 있다. 그러한 영역들은 본 명세서에서 "셀들(cells)"로 지칭된다. 특정 실시예들에서, 각 셀은 조정될 수 있는 영역에 대응될 수 있다. 다시 말하면, 각 셀은 둘 이상의 이미지들 간의 최선 적합(best fit)을 성취하기 위해 조정될 수 있는 변수(variable)로 간주될 수 있다. 따라서, 특정 실시예들에서, 이미지 조정들에 대한 보다 많은 제어는 이미지를 보다 많은 셀들로 분할함으로써, 이에 따라 변경될 수 있는 보다 많은 변수들을 도입함으로써, 획득될 수 있다. 변수의 수는 보다 많은 제어를 제공할 수 있지만 또한 보다 많은 처리 파워(processing power)를 필요로 할 수 있기 때문에, 특정 실시예들에서, 셀의 수는 상기 이미지들에서 식별되는 특징들, 해당 이미지의 유형(예를 들면, 2D 대 3D 이미지들, 실시간 대 기록된 이미지들), 이미지들 간의 정렬(또는 이의 부족), 및/또는 장치의 처리 능력(processing capabilities)에 기반할 수 있다.
특정 실시예들에서, 셀은 격자(grid) 또는 메시(mesh)에 의해 정의될 수 있다. 도 24g는 예시적 메시 및 예시적 격자를 도시한다. 각각의 점(2415)은 격자점으로 간주될 수 있고 각각의 세그먼트(2420)는 메시의 일부로 간주될 수 있다. 셀(2425)은 격자점들에 의해 및/또는 메시에 의해 정의되는 셀의 예를 도시한다. 특정 실시예들에서, 격자에서 메시 또는 격자점의 각 세그먼트는 독립적으로 가변적일 수 있다. 특정 실시예들에서, 변수의 수는 셀들의 크기에 의해, 상기 셀들을 정의하는 메시 세그먼트들의 수에 의해, 및/또는 상기 셀들을 정의하는 격자점들의 수에 의해 결정될 수 있다. 본 개시가 격자들 및 격자점들을 논의하는 경우, 본 개시는 메시들 및 세그먼트들도 또한 또는 대안적으로 적절히 이용될 수 있고, 그 반대도 마찬가지임을 고려하고 있다.
본 개시는 셀이 어떤 적절한 수 및 형태의 격자점들에 의해서든 정의될 수 있음을 고려하고 있다. 예를 들면, 도 24g에서, 격자점들은 정사각형의 셀들을 정의한다. 다시 말하면, 각 격자점은 정사각형의 코너 또는 꼭지점(vertex)을 정의한다. 그러나, 본 개시는 셀들이, 예를 들면, 직사각형 또는 삼각형과 같은 다른 형태를 취할 수 있음을 고려하고 있다. 본 개시는 이미지에서 셀들의 크기 또는 형태가 변할 수 있음을 고려하고 있다. 예를 들면, 이미지의 상이한 부분들에서 격자점들의 밀도가 변하는 격자가 이용될 수 있을 것이다. 예를 들면, 이미지의 중심이 본 명세서에서 설명되는 스티칭 기법들의 초점이라면, 셀들은 상기 이미지의 중심에서 보다 작고 에지들로 갈수록 점점 더 커질 수 있다. 다른 예로서, 이미지에서의 객체들이 식별될 수 있고, 셀들은 격자점들이 객체들 주위로 가고 상기 객체들을 통과하지 않도록 정의될 수 있다. 다른 예로서, 셀의 크기 또는 형태는 식별된 특징(들) 또는 하나 이상의 픽셀 속성들(pixel attributes)의 불연속들(예를 들면, 에지들)에 기반하여 변할 수 있다. 본 개시는 셀들이 어떤 적절한 크기 또는 형태든 가질 수 있고 어떤 적절한 수 및 형태의 격자점들 또는 메시 세그먼트들에 의해서든 정의될 수 있음을 고려하고 있다.
특정 실시예들에서, 단계(2905)에서 액세스된 이미지들은 촬영에 이용되는 카메라들의 파라미터들에 대응되는 좌표계로 투영될 수 있다. 예를 들면, 카메라는, 예를 들면, 시야의 수직 및 수평 치수들이 상이하도록 촬영하기 위해, "어안 렌즈"를 사용할 수 있다. 도 23은 이미지를 그 원래 좌표계로 변환하는 예를 도시하며, 상기 변환은 본 명세서에서 "디워핑(dewarping)" 또는 "디피싱(defishing)"으로도 지칭될 수 있다.특정 실시예들에서, 이미지는, 이미지가 디피싱된 후, 셀들로 분할될 수 있다(예를 들면, 격자를 정의함으로써). 특정 실시예들에서, 이미지는, 이미지가 디피싱되기 전, 셀들로 분할될 수 있고, 이에 따라 격자도 또한 "디피싱될" 것이다(즉, 그것이 초기에 위치되었던 좌표계에서 상기 이미지들의 좌표계로 변환될 것이다).
특정 실시예들에서, 단계(2905)에서 액세스된 이미지들에 대해 초기 스티칭 또는 병합 프로세스가 수행될 수 있다. 예를 들면, 상기 액세스된 이미지들은 정렬 또는 스티칭될 수 있다. 본 개시는, 본 명세서에서 도 8 내지 도 18과 관련하여 설명된 정렬 및 스티칭 기법들과 같은, 초기 정렬 및 스티칭을 위한 어떤 적절한 방법이든지 고려하고 있으나, 이에 제한되지 않는다. 특정 실시예들에서, 초기 정렬 및 스티칭은, 단계(2905)에서 상기 이미지들을 액세스한 후, 예를 들면, 이미지들의 세트를 디피싱한 후, 수행될 수 있다. 특정 실시예들에서, 단계(2905)에서 액세스된 상기 이미지들에 대해 이미 초기 정렬 및 스티칭이 수행되었을 수 있다. 따라서, 방법(2900)은 초기 정렬 및 스티칭 후에 발생할 수 있거나 또는 스티칭이 방법(2900)의 일부일 수 있다.
특정 실시예들에서, 방법(2900)은, 이미지에서의 특징들 간의 오정렬에 기반하여 및 이미지의 조정에 기인한 이미지 왜곡에 기반하여, 단계(2920)에서 하나 이상의 셀들을 조정하는 단계를 포함할 수 있다. 도 30은 이러한 고려사항들에 기반하여 이미지 셀들을 조정하는 예시적 방법을 도시한다. 특정 실시예들에서, 셀을 조정하는 단계는 상기 셀을 정의하는 하나 이상의 격자점들 또는 메시들을 조정하는 단계, 및 이에 따른 상기 격자점 또는 메시와 연관된 상기 이미지의 부분을 조정하는 단계를 포함할 수 있다.
특정 실시예들에서, 서로 병합되는 이미지들 중 하나 또는 둘 모두에 대해 조정들이 이루어질 수 있다. 특정 실시예들에서, 두 개 초과의 이미지들이 서로 병합되는 경우, 하나의 이미지는 일정하게(예를 들면, 기준 이미지로서) 유지될 수 있고 나머지 이미지들 중 어느 하나 또는 모두가 단계(2920)에 따라 조정될 수 있다. 특정 실시예들에서, 두 개 초과의 이미지들이 서로 병합되는 경우, 단계(2920)는 이미지들의 각 쌍에 대해 순차적으로 수행될 수 있다. 다시 말하면, 이미지들의 쌍에 대한 조정들이 계산될 수 있고, 그 다음에 이미지들의 다음 쌍에 대한 조정들이 계산될 수 있다. 예를 들면, 도 6을 참조하면, 이미지들(I-8 및 I-7)에 대해 조정들이 이루어질 수 있고, 그 다음에 이미지들(I-7 및 I-6) 등에 대해 조정들이 이루어질 수 있다. 특정 실시예들에서, 두 개 초과의 이미지들이 서로 병합되는 경우, 단계(2920)는 이미지들의 각 쌍에 대해 병렬적으로 수행될 수 있다. 예를 들면, 도 6을 참조하면, 상기 이미지들 간의 중첩 영역(610)에서 식별된 특징들에 기반하여, 상기 이미지들 모두에 대해 동시에 조정들이 이루어질 수 있다.
특정 실시예들에서, 방법(2900)은 단계(2920)를 여러 번 수행하는 단계를 포함할 수 있다. 예를 들면, 도 30의 상기 예시적 방법은 이미지들의 세트를 조정하기 위해 100번 또는 1000번 반복적으로 반복될 수 있다. 특정 실시예들에서, 단계(2920)는 미리 결정된 횟수만큼 수행될 수 있다. 다른 실시예들에서, 단계(2920)는, 특정 조정량이 달성될 때까지 또는 후술되는 예시적 비용 함수 J와 같은 어떤 다른 파라미터가 미리 결정된 값을 달성할 때까지, 수행될 수 있다. 특정 실시예들에서, 단계(2920)는, 정렬의 변화량 또는, 후술되는 예시적 비용 함수 J와 같은, 어떤 다른 파라미터의 변화량이 단계(2920)의 각각의 연속적 수행에 있어서 특정 양 미만으로 변할 때까지, 수행될 수 있다. 특정 실시예들에서, 단계(2920)는, 상기 이미지(들)의 조정이 더 이상 발생하지 않아야 한다는 사용자 입력이 수신될 때까지, 수행될 수 있다.
방법(2900)은, 조정된 이미지들이 렌더링되는, 단계(2925)를 포함할 수 있다. 특정 실시예들에서, 단계(2920)는, 예를 들면, 상기 이미지들의 특정 부분들에 대응되는 메시 또는 격자점 좌표를 출력함으로써, 조정된 이미지들에 대한 좌표를 출력할 수 있다. 예를 들면, 단계(2925)는, 예를 들면, 상기 메시를 렌더링하는 데 이용된 동일한 보간 기법을 이용하여, 메시 계수들을 계산 및 출력할 수 있다. 예를 들면, 양선형 보간법(bilinear interpolation)이 계수들을 계산하는 데 이용되는 경우, 양선형 계수들이 이용될 수 있다. 최근접 이웃(nearest neighbor), 고등차수(bicubic), 또는 스플라인(spline)과 같은 다른 보간 기법들이 메시를 계산 및 렌더링하는 데 이용될 수 있다. 특정 실시예들에서, 단계(2920)는 변경할 셀들에 대한 설명(description) 및 어떻게 상기 셀들이 입력 이미지들로부터 변경되는지를 출력할 수 있다. 특정 실시예들에서, 단계(2920)는 상기 이미지들을 조정된 대로 출력할 수 있다.
본 개시는 단계(2925)가 상기 렌더링된 이미지들을 처리하는 단계를 포함할 수 있음을 고려하고 있다. 예를 들면, 단계(2925)는, 예를 들면, 상기 이미지들에서 심들이 보이는 것을 줄이기 위해, 상기 렌더링된 이미지들을 서로 블렌딩하는 단계를 포함할 수 있다. 예를 들면, 상기 블렌딩은 그래프 컷 세그먼트화(graph cut segmentation) 알고리즘 또는 심 컷(seam cut) 및 다중대역 블렌딩(multiband blending) 알고리즘을 이용하여 수행될 수 있다. 본 개시는 조정된 이미지들을 블렌딩하기 위한 어떤 적절한 방법 또는 기법이든지 고려하고 있다. 예를 들면, 이미지들 간의 심을 추정하기 위해 인블렌드(enblend)가 이용될 수 있다. 보로노이 또는 상기 그래프-컷 심 탐색(graph-cut seam finding) 알고리즘의 변형들과 같은 다른 알고리즘들이 이용될 수 있다. 다중대역 블렌딩 알고리즘, 선형 알고리즘, 또는 라플라시안 알고리즘과 같은 알고리즘들이 상기 이미지들을 블렌딩하는 데 이용될 수 있다. 본 개시는 또한 단계(2925)에서 다른 어떤 적절한 처리든지 수행될 수 있음을 고려하고 있다.
본 개시는 이미지들을 "렌더링"하는 단계가 상기 이미지들을 처리하는 단계 및 상기 이미지들을, 서버 또는 사용자의 클라이언트 장치의 데이터 저장소와 같은, 데이터 저장소에 저장하는 단계를 포함할 수 있음을 고려하고 있다. 본 개시는 단계(2925)가, 예를 들면, 본 명세서에서 설명되는 클라이언트 장치를 포함하여, 클라이언트의 디스플레이 상에, 상기 이미지들을 표시하는 단계를 포함할 수 있음을 고려하고 있다. 본 개시는 방법(2900)이, 예를 들면, 라이브 이벤트(live event)로부터 이미지들을 표시하도록, 실시간으로 수행될 수 있음을 고려하고 있다. 본 개시는 또한 방법(2900)이 수행되고 그 결과 이미지들이 차후의 이용을 위해 저장될 수 있음을 고려하고 있다.
적절한 경우, 특정 실시예들은 도 29의 상기 방법의 하나 이상의 단계들을 반복할 수 있다. 본 개시가 도 29의 상기 방법의 특정 단계들이 특정 순서로 발생하는 것으로 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 순서로 발생하는 도 29의 상기 방법의 어떤 적절한 단계들이든지 고려하고 있다. 또한, 본 개시가, 도 29의 상기 방법의 특정 단계들을 포함하는, 격자 최적화에 기반하여 이미지들을 스티칭하는 예시적 방법을 설명 및 예시하고 있지만, 본 개시는, 적절한 경우, 도 29의 상기 방법의 단계들 중 전부 또는 일부만을 포함할 수 있는 어떤 적절한 단계들을 포함하는, 본 명세서에서 설명된 고려사항들에 따라 이미지들을 조정하는 어떤 적절한 방법이든지 고려하고 있다. 나아가, 본 개시가 도 29의 상기 방법의 특정 단계들을 수행하는 특정한 구성요소들, 장치들, 또는 시스템들을 설명 및 예시하고 있지만, 본 개시는 도 29의 상기 방법의 어떤 적절한 단계들을 수행하는 어떤 적절한 구성요소들, 장치들, 또는 시스템들의 어떤 적절한 조합이든지 고려하고 있다. 예를 들면, 도 29에서의 단계들은 중앙 처리 장치(CPU)에 의해 수행될 수 있는 반면, 그러한 단계들의 어떤 조합이든지, 예를 들면, 그래픽 처리 장치(GPU)를 포함하는, 다른 어떤 컴퓨팅 시스템에 의해 수행될 수 있다. 다른 예로서, 도 29의 상기 단계들은 서버, 클라이언트 장치, 또는 이들의 어떤 조합에 의해 수행될 수 있다.
도 30은 도 29의 단계(2920)을 수행하는 예시적 방법(3000)을 도시한다. 특정 실시예들에서, 방법(3000)은, 해당 부분에 대응되는 특정 격자점을 이동함에 의한 이미지의 워핑(warping)과 같은, 이미지에 대한 잠재적 조정을 평가한다. 방법(3000)은, 분석되고 있는 이미지들에서의 특징점들의 오정렬을 계산하는, 단계(3005)로 시작될 수 있다. 예를 들면, 하나의 이미지에서의 특징점과 그것이 정렬되어야 하는 제2 이미지에서의 대응 특징점 간의 거리에 기반하여, 상기 오정렬이 계산될 수 있다. 본 명세서에서, 특징점들 간의 정렬은 "로컬 정렬(local alignment)"로 지칭될 수 있다.
로컬 정렬은 이미지에서의 특징점과 중첩되는 이미지에서의 대응 특징점 간의 거리들의 제곱의 합으로서 정량적으로 표현될 수 있다. 상기 합은 오정렬된 모든 특징점들에 대한 것일 수 있다. 다시 말하면, 이미지 (i)에 j개의 특징점들 Fj(i)이 있는 경우, 대응 이미지 (i+1)에는 j개의 대응 특징점들 Fj(i+1)이 있다. 따라서, 이들 두 개의 이미지들에 대한 총 로컬 오정렬은 이미지 (i)에서의 j개의 특징점들과 중첩 이미지 (i+1)에서의 j개의 대응 특징점들 간의 거리들의 제곱의 합으로서 표현될 수 있다.
셀들이 격자에 의해 정의되는 실시예들에서, 로컬 정렬 항은 다음과 같이 표현될 수 있다:
Figure pct00029
상기 식에서 Fj(i)는 제i 이미지에서의 제j 특징점의 좌표를 나타낸다. 도 32는 제j 특징점이 위치한 셀에서 양선형 매핑(bilinear mapping)을 이용하여 특징점들의 좌표를 결정하는 예시적 방법을 도시한다. Jlocal을 계산할 때, 각 특징에 대한 포함 셀을 찾는 어떤 적절한 방법뿐만 아니라 양선형 매핑에 대한 계수들을 계산하는 어떤 방법이든지 이용될 수 있다. 텍스처 보간(texture interpolation)을 위한 대안적 방법이 이용되는 경우, 양선형 매핑은 대응되는 보간 맵으로 대체될 수 있다.
상기 항 Jlocal은 두 개의 중첩 이미지들에서의 특징들의 총 오정렬을 정량화한다. 복수의 중첩 이미지들이 고려되는 경우, 상기 Jlocal은, 서로 병합되기 시작하는, 중첩 이미지들의 각 쌍의 Jlocal 값들의 합이다.
방법(3000)은, 특징점 근처에 있지 않은 이미지 셀들의 왜곡들이 결정되는, 단계(3010)를 포함할 수 있다. 그러한 왜곡들은 "글로벌 정렬(global alignment)"로 지칭될 수 있다.셀들을 정의하는 데 격자가 이용되는 경우, 글로벌 정렬 항 Jglobal은 격자점들의 초기 조정-전 위치들과 이들의 최종 조정된 위치들 간의 거리의 제곱과 같다. 따라서, 상기 항 Jglobal은 조정 후의 두 개의 이미지들과 비교하여 초기에 정렬 및 스티칭된 대로의 상기 두 개의 이미지들 간의 오정렬들에 페널티를 부과한다. 특정 실시예들에서, 특징들이 없는 영역들에서는 초기 정렬을 유지하는 것이 바람직하다. 특정 실시예들에서, 특징점 및 그것의 대응 특징점이 거의 정렬된 상태인 영역들에서는 초기 정렬을 유지하는 것이 바람직하다.
특정 실시예들에서, Jglobal은 워핑된 꼭지점(격자점) warp(i)(V(i))의 좌표와 상기 꼭지점의 원래 좌표 V(i) 간의 거리들의 제곱의 합이다. 특정 실시예들에서, 상기 합에서 각 항은 가중치 τ로 가중될 수 있다. 따라서, Jglobal은 다음과 같이 표현될 수 있다:
Figure pct00030
특정 실시예들에서, 고려되고 있는 꼭지점에 의해 정의되는 셀이 특징점을 포함하지 않는 경우, 상기 가중치 τ는 0일 수 있다. 특정 실시예들에서, 상기 가중치는 상기 셀이 특징을 포함한 셀로부터의 거리에 의존할 수 있으며, 상기 가중치는 상기 거리가 증가함에 따라 감소한다. 특정 실시예들에서, 상기 가중치 τ는 다음 식에 의해 결정될 수 있다:
Figure pct00031
방법(3000)은, 조정에 의해 야기되는 기하학적 왜곡을 결정함으로써 셀들의 기하구조(geometry)를 유지하려고 시도하는, 단계(3015)를 포함할 수 있다. 상기 결정은 "평활성 항(smoothness term)" Jsmoothness로 지칭될 수도 있다. 특정 실시예들에서, 셀 내의 형태의 왜곡 또는 셀에 의해 부분적으로 정의되는 형태의 왜곡은 상기 파라미터 Jsmoothness를 계산하는 데 이용될 수 있다. 예를 들면, Jsmoothness는 상기 셀을 정의하는 세개의 꼭지점들(격자점들)에 의해 형성되는 삼각형의 형태의 왜곡을 나타낼 수 있다. 예를 들면, 각각의 꼭지점 V1(i), 및 이 꼭지점이 인접한 셀들 에서의 꼭지점들과 함께 형성하는 각각의 삼각형
Figure pct00032
에 대해, Jsmoothness는 상기 꼭지점의 워핑된 위치
Figure pct00033
와 상기 워핑된 삼각형을 원래의 삼각형과 유사하게 만들 점
Figure pct00034
간의 거리의 제곱과 같을 수 있다. 특정 실시예들에서:
Figure pct00035
상기 식에서 가중치 항(weighting term)은 특징이 위치한 셀의 현저성(saliency) 값을 나타낸다. 특정 실시예들에서, Jsmoothness는 격자에서 모든 꼭지점들 및 모든 삼각형들에 대해 합산된다.
방법(3000)은, 상기 로컬 정렬, 상기 글로벌 정렬, 및 상기 평활성을 정량화하는 항들을 합산함으로써 전체 비용 함수 J가 계산되는, 단계(3020)를 포함할 수 있다. 특정 실시예들에서, J는 상기 항들의 가중된 합(weighted sum)일 수 있다. 특정 실시예들에서, 상기 가중치들은 다음 식이 성립하도록 Jlocal에 부여된 가중치로 정규화될 수 있다:
Figure pct00036
특정 실시예들에서, αglobal=.01이고 αsmooth=.001이다. 특정 실시예들에서, 상기 가중치들은 셀 크기 및/또는 특징들의 분포에 기반하여 결정될 수 있다.
방법(3000)은, 상기 전체 비용 함수 J를 최소화하도록 상기 셀들을 조정하는 단계를 포함하는, 단계(3025)를 포함할 수 있다. 특정 실시예들에서, 상기 전체 비용 함수 J는 메시 꼭지점들의 워핑된 위치들에 대해 2차(quadratic)일 수 있다. 특정 실시예들에서, ∂J/∂V=0에 대한 직접 해(direct solution)를 구할 수 있지만, 변수의 수가 상대적으로 많은 경우, 직접 해는 실현 가능하지 않을 수 있다. 그러한 상황에서, 경사(gradient) 방법이 해를 구하는 데 이용될 수 있다. 예를 들면, 경사 하강(gradient descent) 또는 공액 경사(conjugate gradient)에 기반한 알고리즘들 및 그 변형들이 이용될 수 있다.
도 31은 Jlocal, Jglobal, Jsmoothness, 및 상기 전체 비용 함수 J를 결정하기 위한 상세한 예시적 계산들의 세트를 도시한다. 그러나, 본 개시는 상기 항들을 계산하기 위한 어떤 적절한 방법이든지 고려하고 있다. 예를 들면, 상기 평활성 항은
Figure pct00037
의 위치를 계산하기 위한 상이한 기법들을 이용하여 계산될 수 있다.
특정 실시예들에서, 상기 현저성 계수는 상기 셀의 RGB 색상 값들의 L2 노름(norm), 에지들의 풍부도(abundance), 및/또는 인접한 셀들에 걸쳐 있는 에지들의 수를 포함하도록 전개될(expanded) 수 있다.
도 32는 양선형 매핑을 이용하여 이미지 (i)에서 특징 j를 포함하는 셀의 꼭지점들 X, Y, Z, 및 W의 좌표에 기반하여 특징의 좌표를 결정하기 위한 상세한 예시적 계산들의 세트를 도시한다. 도 32의 출력은 상기 Jlocal 항을 계산하기 위해 도 31에서 언급한 계수들 α를 결정한다.
도 33은 예시적 컴퓨터 시스템(3300)을 도시한다. 특정 실시예들에서, 하나 이상의 컴퓨터 시스템들(3300)은 본 명세서에서 설명 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행한다. 특정 실시예들에서, 하나 이상의 컴퓨터 시스템들(3300)은 본 명세서에서 설명 또는 예시된 기능(functionality)을 제공한다. 특정 실시예들에서, 하나 이상의 컴퓨터 시스템들(3300) 상에서 실행되는 소프트웨어는 본 명세서에서 설명 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행하거나 또는 본 명세서에서 설명 또는 예시된 기능을 제공한다. 특정 실시예들은 하나 이상의 컴퓨터 시스템들(3300)의 하나 이상의 부분들을 포함한다. 본 명세서에서, 적절한 경우, 컴퓨터 시스템이라 함은 컴퓨팅 장치를 포함할 수 있으며, 그 반대도 마찬가지다. 또한, 적절한 경우, 컴퓨터 시스템이라 함은 하나 이상의 컴퓨터 시스템들을 포함할 수 있다.
본 개시는 어떤 적절한 수의 컴퓨터 시스템들(3300)이든지 고려하고 있다. 본 개시는 어떤 적절한 물리적 형태를 취하는 컴퓨터 시스템(3300)이든지 고려하고 있다. 제한으로서가 아니라 예로서, 컴퓨터 시스템(3300)은 내장형(embedded) 컴퓨터 시스템, 시스템-온-칩(system-on-chip: SOC), 단일-보드 컴퓨터 시스템(single-board computer system: SBC)(예를 들면, 컴퓨터-온-모듈(computer-on-module: COM) 또는 시스템-온-모듈(system-on-module: SOM)과 같은 것), 데스크탑 컴퓨터 시스템, 랩탑 또는 노트북 컴퓨터 시스템, 대화형 키오스크(interactive kiosk), 메인프레임, 컴퓨터 시스템들의 메시(mesh), 모바일 전화, 개인 정보 단말기(personal digital assistant: PDA), 서버, 태블릿 컴퓨터 시스템, 또는 이들 중 둘 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(3300)은 하나 이상의 컴퓨터 시스템들(3300)을 포함하거나; 단일형(unitary) 또는 분산형(distributed)이거나; 다수의 장소들에 걸쳐 있거나; 다수의 기계들에 걸쳐 있거나; 다수의 데이터 센터들에 걸쳐 있거나; 또는, 하나 이상의 네트워크들에 하나 이상의 클라우드 구성요소들을 포함할 수 있는, 클라우드에 상주할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템들(3300)은, 실질적인 공간적 또는 시간적 제한 없이, 본 명세서에서 설명 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행할 수 있다. 제한으로서가 아니라 예로서, 하나 이상의 컴퓨터 시스템들(3300)은, 실시간으로 또는 배치 모드(batch mode)로, 본 명세서에서 설명 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템들(3300)은, 상이한 시간에 또는 상이한 장소에서, 본 명세서에서 설명 또는 예시된 하나 이상의 방법들의 하나 이상의 단계들을 수행할 수 있다.
특정 실시예들에서, 컴퓨터 시스템(3300)은 프로세서(3302), 메모리(3304), 저장소(3306), 입/출력(input/output: I/O) 인터페이스(3308), 통신 인터페이스(3310), 및 버스(3312)를 포함한다. 본 개시가 특정한 배치로 특정한 수의 특정 구성요소들을 갖는 특정 컴퓨터 시스템을 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 배치로 어떤 적절한 수의 어떤 적절한 구성요소들을 갖는 어떤 적절한 컴퓨터 시스템이든지 고려하고 있다.
특정 실시예들에서, 프로세서(3302)는, 컴퓨터 프로그램을 구성하는 명령어들과 같은, 명령어들을 실행하기 위한 하드웨어를 포함한다. 제한으로서가 아니라 예로서, 명령어들을 실행하기 위해, 프로세서(3302)는 내부 레지스터, 내부 캐시(cache), 메모리(3304), 또는 저장소(3306)로부터 상기 명령어들을 검색(retrieve)(또는 페치(fetch))하고; 상기 명령어들을 디코딩 및 실행하고; 그 다음에, 하나 이상의 결과들을 내부 레지스터, 내부 캐시, 메모리(3304), 또는 저장소(3306)에 기입할 수 있다.
특정 실시예들에서, 프로세서(3302)는 데이터, 명령어들, 또는 주소들(addresses)을 위한 하나 이상의 내부 캐시들을 포함할 수 있다. 적절한 경우, 본 개시는 어떤 적절한 수의 어떤 적절한 내부 캐시들이든지 포함하는 프로세서(3302)를 고려하고 있다. 제한으로서가 아니라 예로서, 프로세서(3302)는 하나 이상의 명령어 캐시들, 하나 이상의 데이터 캐시들, 및 하나 이상의 변환 색인 버퍼들(translation lookaside buffers: TLBs)을 포함할 수 있다. 상기 명령어 캐시들 내의 명령어들은 메모리(3304) 또는 저장소(3306) 내의 명령어들의 복사본일 수 있으며, 상기 명령어 캐시들은 프로세서(3302)에 의한 상기 명령어들의 검색 속도를 높일 수 있다. 상기 데이터 캐시들 내의 데이터는, 프로세서(3302)에서 실행되는 명령어들이 작용할, 메모리(3304) 또는 저장소(3306) 내의 데이터의 복사본이거나; 프로세서(3302)에서 실행되는 후속 명령어들에 의한 액세스를 위한 또는 메모리(3304) 또는 저장소(3306)에 기입하기 위한, 프로세서(3302)에서 실행된 이전 명령어들의 결과들이거나; 또는 기타 적절한 데이터일 수 있다. 상기 데이터 캐시들은 프로세서(3302)에 의한 판독 또는 기입 동작들의 속도를 높일 수 있다. 상기 TLB들은 프로세서(3302)를 위한 가상 주소 변환의 속도를 높일 수 있다.
특정 실시예들에서, 프로세서(3302)는 데이터, 명령어들, 또는 주소들을 위한 하나 이상의 내부 레지스터들을 포함할 수 있다. 적절한 경우, 본 개시는 어떤 적절한 수의 어떤 적절한 내부 레지스터들이든지 포함하는 프로세서(3302)를 고려하고 있다. 적절한 경우, 프로세서(3302)는 하나 이상의 산술 논리 장치들(arithmetic logic units: ALUs)을 포함하거나; 멀티-코어 프로세서이거나; 또는 하나 이상의 프로세서들(3302)을 포함할 수 있다. 본 개시가 특정 프로세서를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 프로세서든지 고려하고 있다.
특정 실시예들에서, 메모리(3304)는 프로세서(3302)가 실행할 명령어들 또는 프로세서(3302)가 작용할 데이터를 저장하기 위한 메인 메모리를 포함한다. 제한으로서가 아니라 예로서, 컴퓨터 시스템(3300)은 저장소(3306) 또는 다른 소스(예를 들면, 다른 컴퓨터 시스템(3300))로부터 메모리(3304)로 명령어들을 로딩할 수 있다. 프로세서(3302)는 다음에 메모리(3304)로부터 내부 레지스터 또는 내부 캐시로 상기 명령어들을 로딩할 수 있다. 상기 명령어들을 실행하기 위해, 프로세서(3302)는 상기 내부 레지스터 또는 내부 캐시로부터 상기 명령어들을 검색하고 이들을 디코딩할 수 있다. 상기 명령어들의 실행 중에 또는 이후에, 프로세서(3302)는 하나 이상의 결과들(중간 또는 최종 결과들일 수 있음)을 상기 내부 레지스터 또는 내부 캐시에 기입할 수 있다. 프로세서(3302)는 다음에 상기 결과들 중 하나 이상을 메모리(3304)에 기입할 수 있다.
특정 실시예들에서, 프로세서(3302)는 하나 이상의 내부 레지스터들 또는 내부 캐시들 내의 또는 메모리(3304)(저장소(3306) 또는 다른 곳이 아니라) 내의 명령어들만 실행하고 하나 이상의 내부 레지스터들 또는 내부 캐시들 내의 또는 메모리(3304)(저장소(306) 또는 다른 곳이 아니라) 내의 데이터에만 작용한다. 하나 이상의 메모리 버스들(각각 주소 버스 및 데이터 버스를 포함할 수 있음)은 프로세서(3302)와 메모리(3304)를 결합시킬 수 있다. 버스(3312)는, 후술하는 바와 같이, 하나 이상의 메모리 버스들을 포함할 수 있다.
특정 실시예들에서, 하나 이상의 메모리 관리 장치들(memory management units: MMUs)은 프로세서(3302)와 메모리(3304) 사이에 상주하여 프로세서(3302)에 의해 요청된 메모리(3304)에 대한 액세스를 용이하게 한다. 특정 실시예들에서, 메모리(3304)는 랜덤 액세스 메모리(random access memory: RAM)를 포함한다. 이 RAM은, 적절한 경우, 휘발성 메모리일 수 있으며, 이 RAM은, 적절한 경우, 동적 RAM(dynamic RAM: DRAM) 또는 정적 RAM(static RAM: SRAM)일 수 있다. 또한, 적절한 경우, 이 RAM은 단일 포트(single-ported) 또는 다중 포트(multi-ported) RAM일 수 있다. 본 개시는 어떤 적절한 RAM이든지 고려하고 있다. 적절한 경우, 메모리(3304)는 하나 이상의 메모리들(3304)을 포함할 수 있다. 본 개시가 특정 메모리를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 메모리든지 고려하고 있다.
특정 실시예들에서, 저장소(3306)는 데이터 또는 명령어들을 위한 대용량 저장소(mass storage)를 포함한다. 제한으로서가 아니라 예로서, 저장소(3306)는 하드디스크 드라이브(hard disk drive: HDD), 플로피 디스크 드라이브, 플래시 메모리, 광디스크, 광자기 디스크(magneto-optical disc), 자기 테이프, 범용 직렬 버스(Universal Serial Bus: USB) 드라이브, 또는 이들 중 둘 이상의 조합을 포함할 수 있다. 적절한 경우, 저장소(3306)는 이동식(removable) 또는 비이동식(또는 고정식) 매체를 포함할 수 있다. 적절한 경우, 저장소(3306)는 컴퓨터 시스템(3300)의 내부 또는 외부에 있을 수 있다. 특정 실시예들에서, 저장소(3306)는 비휘발성 고체 상태 메모리이다.
특정 실시예들에서, 저장소(3306)는 읽기 전용 메모리(read-only memory: ROM)를 포함한다. 적절한 경우, 이 ROM은 마스크-프로그램된(mask-programmed) ROM, 프로그램가능 ROM(programmable ROM: PROM), 소거가능 PROM(erasable PROM: EPROM), 전기적 소거가능 PROM(electrically erasable PROM: EEPROM), 전기적 소거-재기록가능 ROM(electrically alterable ROM: EAROM), 플래시 메모리, 또는 이들 중 둘 이상의 조합일 수 있다. 본 개시는 어떤 적절한 물리적 형태든지 취하는 대용량 저장소(3306)를 고려하고 있다. 적절한 경우, 저장소(3306)는 프로세서(3302)와 저장소(3306) 간의 통신을 용이하게 하는 하나 이상의 저장 제어 장치들(storage control units)을 포함할 수 있다. 적절한 경우, 저장소(3306)는 하나 이상의 저장소들(3306)을 포함할 수 있다. 본 개시가 특정 저장소를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 저장소든지 고려하고 있다.
특정 실시예들에서, I/O 인터페이스(3308)는 컴퓨터 시스템(3300)과 하나 이상의 I/O 장치들 간의 통신을 위한 하나 이상의 인터페이스들을 제공하는 하드웨어, 소프트웨어, 또는 이 둘 모두를 포함한다. 적절한 경우, 컴퓨터 시스템(3300)은 이러한 I/O 장치들 중 하나 이상을 포함할 수 있다. 이러한 I/O 장치들 중 하나 이상은 사람과 컴퓨터 시스템(3300) 간의 통신을 가능하게 할 수 있다. 제한으로서가 아니라 예로서, I/O 장치는 키보드, 키패드, 마이크, 모니터, 마우스, 프린터, 스캐너, 스피커, 스틸 카메라, 스타일러스(stylus), 태블릿, 터치 스크린, 트랙볼, 비디오 카메라, 다른 적절한 I/O 장치, 또는 이들 중 둘 이상의 조합을 포함할 수 있다. I/O 장치는 하나 이상의 센서들을 포함할 수 있다. 본 개시는 어떤 적절한 I/O 장치들 및 이들을 위한 어떤 적절한 I/O 인터페이스들(3308)이든지 고려하고 있다. 적절한 경우, I/O 인터페이스(3308)는 프로세서(3302)가 이러한 I/O 장치들 중 하나 이상을 구동시키게 할 수 있는 하나 이상의 장치들 또는 소프트웨어 드라이버들을 포함할 수 있다. 적절한 경우, I/O 인터페이스(3308)는 하나 이상의 I/O 인터페이스들(3308)을 포함할 수 있다. 본 개시가 특정한 I/O 인터페이스를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 I/O 인터페이스든지 고려하고 있다.
특정 실시예들에서, 통신 인터페이스(3310)는 컴퓨터 시스템(3300)과 하나 이상의 다른 컴퓨터 시스템들(3300) 또는 하나 이상의 네트워크들 간의 통신(예를 들면, 패킷(packet) 기반 통신)을 위한 하나 이상의 인터페이스들을 제공하는 하드웨어, 소프트웨어, 또는 이 둘 모두를 포함한다. 제한으로서가 아니라 예로서, 통신 인터페이스(3310)는 이더넷 또는 기타 유선 기반 네트워크와 통신하기 위한 네트워크 인터페이스 제어기(network interface controller: NIC) 또는 네트워크 어댑터, 또는 와이파이 네트워크와 같은 무선 네트워크와 통신하기 위한 무선 NIC(wireless NIC: WNIC) 또는 무선 어댑터를 포함할 수 있다. 본 개시는 어떤 적절한 네트워크 및 이를 위한 어떤 적절한 통신 인터페이스(3310)든지 고려하고 있다. 제한으로서가 아니라 예로서, 컴퓨터 시스템(3300)은 애드혹(ad-hoc) 네트워크, 개인 영역 네트워크(personal area network: PAN), 로컬 영역 네트워크(local area network: LAN), 광역 네트워크(wide area network: WAN), 대도시 영역 네트워크(metropolitan area network: MAN), 신체 영역 네트워크(body area network: BAN), 인터넷의 하나 이상의 부분들, 또는 이들 중 둘 이상의 조합과 통신할 수 있다. 이러한 네트워크들 중 하나 이상의 네트워크들의 하나 이상의 부분들은 유선 또는 무선일 수 있다. 예로서, 컴퓨터 시스템(3300)은 무선 PAN(WPAN)(예를 들면, 블루투스 WPAN), 와이파이 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(예를 들면, 이동 통신용 글로벌 시스템(Global System for Mobile Communications: GSM) 네트워크), 기타 적절한 무선 네트워크, 또는 이들 중 둘 이상의 조합과 통신할 수 있다. 적절한 경우, 컴퓨터 시스템(3300)은 이러한 네트워크들 중 어떤 것을 위한 어떤 적절한 통신 인터페이스(3310)든지 포함할 수 있다. 적절한 경우, 통신 인터페이스(3310)는 하나 이상의 통신 인터페이스들(3310)을 포함할 수 있다. 본 개시가 특정한 통신 인터페이스를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 통신 인터페이스든지 고려하고 있다.
특정 실시예들에서, 버스(3312)는 컴퓨터 시스템(3300)의 구성요소들을 서로 결합시키는 하드웨어, 소프트웨어, 또는 이 둘 모두를 포함한다. 제한으로서가 아니라 예로서, 버스(3312)는 가속 그래픽 포트(Accelerated Graphics Port: AGP) 또는 기타 그래픽 버스, 향상된 산업 표준 아키텍처(Enhanced Industry Standard Architecture: EISA) 버스, 프론트-사이드 버스(front-side bus: FSB), 하이퍼트랜스포트(HYPERTRANSPORT: HT) 인터커넥트, 산업 표준 아키텍처(Industry Standard Architecture: ISA) 버스, 인피니밴드(INFINIBAND) 인터커넥트, 로우-핀-카운트(low-pin-count: LPC) 버스, 메모리 버스, 마이크로 채널 아키텍처(Micro Channel Architecture: MCA) 버스, 주변 장치 인터커넥트(Peripheral Component Interconnect: PCI) 버스, PCI-익스프레스(PCI-Express: PCIe) 버스, 직렬 고급 기술 결합(serial advanced technology attachment: SATA) 버스, 비디오 전자공학 표준 협회 로컬 버스(Video Electronics Standards Association local bus: VLB), 다른 적절한 버스, 또는 이들 중 둘 이상의 조합을 포함할 수 있다. 적절한 경우, 버스(3312)는 하나 이상의 버스들(3312)을 포함할 수 있다. 본 개시가 특정한 버스를 설명 및 예시하고 있지만, 본 개시는 어떤 적절한 버스 또는 인터커넥트든지 고려하고 있다.
본 명세서에서, 컴퓨터 판독가능 비일시적 저장 매체 또는 매체들은, 적절한 경우, 하나 이상의 반도체-기반 또는 기타 집적 회로들(integrated circuits: ICs)(예를 들면, 필드 프로그램가능 게이트 어레이들(field-programmable gate arrays: FPGAs) 또는 애플리케이션 특정적 IC들(application-specific ICs: ASICs)), 하드디스크 드라이브들(HDDs), 하이브리드 하드 드라이브들(hybrid hard drives: HHDs), 광디스크들, 광디스크 드라이브들(optical disc drives: ODDs), 광자기 디스크들, 광자기 드라이브들, 플로피 디스켓들, 플로피 디스크 드라이브들(floppy disk drives: FDDs), 자기 테이프들, 고체 상태 드라이브들(SSDs), RAM 드라이브들, 시큐어 디지털(SECURE DIGITAL) 카드들 또는 드라이브들, 다른 어떤 적절한 컴퓨터 판독가능 비일시적 저장 매체들, 또는 이들 중 둘 이상의 어떤 적절한 조합을 포함할 수 있다. 적절한 경우, 컴퓨터 판독가능 비일시적 저장 매체는 휘발성, 비휘발성, 또는 휘발성 및 비휘발성의 조합일 수 있다.
본 명세서에서, 명백히 달리 표시되거나 문맥상 달리 표시되지 않는 한, "또는(or)"은 포괄적(inclusive)이며 배타적(exclusive)이지 않다. 그러므로, 본 명세서에서, 명백히 달리 표시되거나 문맥상 달리 표시되지 않는 한, "A 또는 B"는 "A, B, 또는 둘 모두"를 의미한다. 또한, 명백히 달리 표시되거나 문맥상 달리 표시되지 않는 한, "및(그리고)(and)"은 공동적(joint)인 동시에 개별적(several)이다. 그러므로, 명백히 달리 표시되거나 문맥상 달리 표시되지 않는 한, "A 및 B"는 "공동으로 또는 개별적으로, A 및 B"를 의미한다.
본 개시의 범위는, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자가 이해할 수 있는, 본 명세서 내의 예시적 실시예들에 대한 모든 변경들, 대체들, 변이들, 변화들, 및 변형들을 포함한다. 본 개시의 범위는 본 명세서에서 설명 및 예시된 예시적 실시예들에 제한되지 않는다. 또한, 본 개시가 본 명세서에서 각각의 실시예들이 특정한 구성요소들, 요소들, 기능들, 동작들, 또는 단계들을 포함하는 것으로 설명 및 예시하고 있지만, 이러한 실시예들 중 어떤 것이든, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자가 이해할 수 있는, 본 명세서 어디서든 설명 또는 예시된 상기 구성요소들, 요소들, 기능들, 동작들, 또는 단계들 중 어떤 것들의 어떤 조합(combination) 또는 순열(permutation)이라도 포함할 수 있다. 나아가, 첨부된 청구항들에서 기기(apparatus) 또는 시스템 또는 기기나 시스템의 구성요소가 특정 기능을 수행하도록 적응되거나(adapted to), 배치되거나(arranged to), 가능하거나(capable of), 구성되거나(configured to), 가능화되거나(enabled to), 작동 가능하거나(operable to), 또는 작동적이라고(operative to) 언급하는 것은, 해당 기기, 시스템, 또는 구성요소가 그렇게 적응되거나, 배치되거나, 가능하거나, 구성되거나, 가능화되거나, 작동 가능하거나, 또는 작동적인 한, 이들 또는 해당 특정 기능이 활성화되는지, 켜지는지, 또는 잠금-해제되는지 상관없이, 해당 기기, 시스템, 구성요소를 포괄한다.

Claims (15)

  1. 제1 이미지 및 제2 이미지를 액세스하는 단계에 있어서, 상기 제1 이미지의 적어도 일부는 상기 제2 이미지의 적어도 일부와 중첩되는 단계;
    상기 제1 이미지 및 상기 제2 이미지를 격자점들(grid points)의 제1 세트와 연관된 부분들로 분할하는 단계에 있어서, 상기 제1 세트에서의 각 격자점은 상기 제1 이미지 또는 상기 제2 이미지의 부분에 대응되는 단계;
    상기 제1 이미지와 상기 제2 이미지 간의 중첩 영역의 차이들을 결정하는 단계; 및
    상기 결정된 차이들에 기반하여, 상기 제1 세트에서의 하나 이상의 격자점들 및 상기 제1 이미지 또는 상기 제2 이미지의 대응 부분들을 상기 제1 세트에서의 하나 이상의 다른 격자점들을 기준으로 이동시키는 단계를 포함하는 방법.
  2. 제1 항에 있어서,
    상기 제1 세트에서의 상기 격자점들 및 상기 제1 이미지 또는 상기 제2 이미지의 상기 대응 부분들이 이동된 후, 상기 제1 이미지와 상기 제2 이미지 간의 상기 중첩 영역의 차이들을 결정하는 단계;
    상기 제1 이미지와 상기 제2 이미지 간의 상기 중첩 영역의 적어도 하나의 차이가 미리 결정된 임계값(threshold)보다 큰지 여부를 결정하는 단계;
    상기 중첩 영역의 상기 적어도 하나의 차이가 상기 미리 결정된 임계값보다 크다는 결정에 응답하여, 상기 제1 이미지 및 상기 제2 이미지 각각에 격자점들의 제2 세트를 추가하는 단계; 및
    상기 중첩 영역의 상기 적어도 하나의 차이에 기반하여, 상기 제1 또는 제2 세트에서의 하나 이상의 격자점들 및 상기 제1 이미지 또는 상기 제2 이미지의 대응 부분들을 상기 제1 또는 제2 세트에서의 하나 이상의 다른 격자점들을 기준으로 이동시키는 단계를 더 포함하는 방법.
  3. 제2 항에 있어서,
    상기 중첩 영역의 상기 적어도 하나의 차이가 상기 미리 결정된 임계값보다 작다는 결정에 응답하여, 상기 제1 이미지 및 상기 제2 이미지를 병합된 이미지(merged image)로 결합하는 단계를 더 포함하는 방법.
  4. 제2 항에 있어서,
    상기 제1 이미지 및 상기 제2 이미지 각각에서의 에지 라인들(edge lines)을 검출하는 단계를 더 포함하고,
    상기 제1 이미지와 상기 제2 이미지 간의 상기 중첩 영역의 차이들을 결정하는 단계는 상기 제1 이미지에서의 특징(feature)과 상기 제2 이미지에서의 대응 특징(corresponding feature) 간의 에지 라인들의 차이들을 결정하는 단계를 포함하는 방법.
  5. 제1 항에 있어서, 상기 제1 이미지에서의 특징에 대응되는 제1 격자점은 동일한 특징에 대응되는 제2 이미지에서의 제2 격자점을 기준으로 이동되는 방법.
  6. 제1 항에 있어서, 상기 제1 이미지에서의 제1 특징에 대응되는 제1 격자점은 제2 특징에 대응되는 상기 제1 이미지에서의 제2 격자점을 기준으로 이동되는 방법.
  7. 제1 항에 있어서, 상기 격자점들은, 상기 격자점들의 이동에 저항하는 힘 모델(force model)에 적어도 부분적으로 기반하여, 이동되는 방법.
  8. 제7 항에 있어서, 상기 힘 모델은 스프링 제약들(spring constraints)의 세트를 포함하는 방법.
  9. 제2 항에 있어서,
    상기 격자점들 각각에 대한 로컬 윈도우(local window)를 정의하는 단계에 있어서, 상기 하나 이상의 격자점들 각각의 이동은 그 각각의 로컬 윈도우 내에서 제한되는 단계를 더 포함하는 방법.
  10. 제3 항에 있어서, 상기 제1 이미지 및 상기 제2 이미지를 결합하는 단계는:
    상기 제1 이미지와 상기 제2 이미지 간의 심 라인(seam line)를 식별하는 단계; 및
    상기 병합된 이미지를 생성하도록 상기 심 라인을 따라 상기 제1 이미지 및 상기 제2 이미지를 블렌딩(blending)하는 단계를 포함하는 방법.
  11. 제1 항에 있어서,
    상기 제1 이미지 및 상기 제2 이미지를 상기 격자점들의 제1 세트와 연관된 상기 부분들로 분할하는 단계 전에, 상기 1 이미지 또는 상기 제2 이미지 중 하나 이상을 리스케일링(rescaling)하는 단계를 더 포함하는 방법.
  12. 적어도 하나의 프로세서에 의해 실행되는 경우, 제1 항 내지 제11 항 중 어느 한 항의 방법을 수행하기 위한, 저장된 프로그램을 갖는 하나 이상의 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품.
  13. 명령어들(instructions)을 구현하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체; 및
    상기 저장 매체에 결합되고 상기 명령어들을 실행하여:
    제1 이미지 및 제2 이미지를 액세스하되, 상기 제1 이미지의 적어도 일부는 상기 제2 이미지의 적어도 일부와 중첩되며;
    상기 제1 이미지 및 상기 제2 이미지를 격자점들의 제1 세트와 연관된 부분들로 분할하되, 상기 제1 세트에서의 각 격자점은 상기 제1 이미지 또는 상기 제2 이미지의 부분에 대응되며;
    상기 제1 이미지와 상기 제2 이미지 간의 중첩 영역의 차이들을 결정하고;
    상기 결정된 차이들에 기반하여, 상기 제1 세트에서의 하나 이상의 격자점들 및 상기 제1 이미지 또는 상기 제2 이미지의 대응 부분들을 상기 제1 세트에서의 하나 이상의 다른 격자점들을 기준으로 이동시키도록 구성된, 하나 이상의 프로세서들을 포함하는 장치.
  14. 제13 항에 있어서, 상기 하나 이상의 프로세서는:
    상기 제1 세트에서의 상기 격자점들 및 상기 제1 이미지 또는 상기 제2 이미지의 상기 대응 부분들이 이동된 후, 상기 제1 이미지와 상기 제2 이미지 간의 상기 중첩 영역의 차이들을 결정하고;
    상기 제1 이미지와 상기 제2 이미지 간의 상기 중첩 영역의 적어도 하나의 차이가 미리 결정된 임계값보다 큰지 여부를 결정하고;
    상기 중첩 영역의 상기 적어도 하나의 차이가 상기 미리 결정된 임계값보다 크다는 결정에 응답하여, 상기 제1 이미지 및 상기 제2 이미지 각각에 격자점들의 제2 세트를 추가하고;
    상기 중첩 영역의 상기 적어도 하나의 차이에 기반하여, 상기 제1 또는 제2 세트에서의 하나 이상의 격자점들 및 상기 제1 이미지 또는 상기 제2 이미지의 대응 부분들을 상기 제1 또는 제2 세트에서의 하나 이상의 다른 격자점들을 기준으로 이동시키도록 더 구성되는 장치.
  15. 제14 항에 있어서, 상기 하나 이상의 프로세서는:
    상기 중첩 영역의 상기 적어도 하나의 차이가 상기 미리 결정된 임계값보다 작다는 결정에 응답하여, 상기 제1 이미지 및 상기 제2 이미지를 병합된 이미지로 결합하도록 더 구성되는 장치.
KR1020207005705A 2017-08-11 2018-08-09 심 없는 이미지 스티칭(Seamless image stitching) KR102500759B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762544463P 2017-08-11 2017-08-11
US62/544,463 2017-08-11
US15/994,994 2018-05-31
US15/994,994 US11049218B2 (en) 2017-08-11 2018-05-31 Seamless image stitching
PCT/KR2018/009096 WO2019031873A1 (en) 2017-08-11 2018-08-09 CONTINUOUS IMAGE ASSEMBLY

Publications (2)

Publication Number Publication Date
KR20200030603A true KR20200030603A (ko) 2020-03-20
KR102500759B1 KR102500759B1 (ko) 2023-02-16

Family

ID=65271721

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207005705A KR102500759B1 (ko) 2017-08-11 2018-08-09 심 없는 이미지 스티칭(Seamless image stitching)

Country Status (5)

Country Link
US (1) US11049218B2 (ko)
EP (1) EP3635678A4 (ko)
KR (1) KR102500759B1 (ko)
CN (1) CN111052176B (ko)
WO (1) WO2019031873A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210152950A (ko) * 2020-06-09 2021-12-16 엑시스 에이비 디지털 이미지 정렬
KR20210153235A (ko) * 2020-06-10 2021-12-17 중앙대학교 산학협력단 딥매칭을 이용한 콘크리트 구조물 또는 교량의 파노라마 이미지 생성 및 업데이트 시스템, 이의 파노라마 이미지 생성 및 업데이트 방법 및 파노라마 이미지 생성 및 업데이트 프로그램
KR20220081168A (ko) * 2020-12-08 2022-06-15 광운대학교 산학협력단 비디오 스티칭 방법 및 장치
KR20220136797A (ko) * 2021-04-01 2022-10-11 경희대학교 산학협력단 우선순위 사물 기반의 영상 정합 장치 및 그 방법
KR20220155496A (ko) * 2021-05-14 2022-11-23 주식회사 넥스트칩 차량의 운행 정보와 관련된 그래픽 객체 출력 방법 및 장치

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018147329A1 (ja) * 2017-02-10 2018-08-16 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 自由視点映像生成方法及び自由視点映像生成システム
US11095832B2 (en) * 2017-10-26 2021-08-17 Harman International Industries Incorporated Method and system of fast image blending for overlapping region in surround view
WO2019118319A1 (en) * 2017-12-15 2019-06-20 Gopro, Inc. High dynamic range processing on spherical images
CN108377345B (zh) * 2018-04-11 2020-04-03 浙江大华技术股份有限公司 一种曝光参数值确定方法、装置、多目摄像机及存储介质
CA3107013A1 (en) * 2018-07-19 2020-01-23 Acusensus Ip Pty Ltd Infringement detection method, device and system
JP6956051B2 (ja) * 2018-09-03 2021-10-27 株式会社東芝 画像処理装置、運転支援システム、画像処理方法及びプログラム
US10825131B2 (en) * 2018-11-13 2020-11-03 Intel Corporation Circular fisheye camera array rectification
US10846831B2 (en) * 2018-12-19 2020-11-24 GM Global Technology Operations LLC Computing system for rectifying ultra-wide fisheye lens images
CN111353946B (zh) * 2018-12-21 2023-04-11 腾讯科技(深圳)有限公司 图像修复方法、装置、设备及存储介质
US11076098B2 (en) * 2019-02-12 2021-07-27 VIAVI Solutions he. Panoramic image capture for multispectral sensor
US10853914B2 (en) * 2019-02-22 2020-12-01 Verizon Patent And Licensing Inc. Methods and systems for automatic image stitching failure recovery
US20200294194A1 (en) * 2019-03-11 2020-09-17 Nvidia Corporation View synthesis using neural networks
EP3726457A1 (en) * 2019-04-15 2020-10-21 Tata Consultancy Services Limited System and a method for stitching images using non-linear optimization and multi-constraint cost function minimization
CN114175091A (zh) 2019-06-11 2022-03-11 伊美景象公司 利用基于上下文分割层的自适应去扭曲的最优身体或面部保护的方法
US11158056B2 (en) * 2019-06-26 2021-10-26 Intel Corporation Surround camera system with seamless stitching for arbitrary viewpoint selection
CN110443774A (zh) * 2019-07-05 2019-11-12 中国地质大学(武汉) 一种城区正射影像镶嵌处理方法及系统
US11917119B2 (en) * 2020-01-09 2024-02-27 Jerry Nims 2D image capture system and display of 3D digital image
US20210297647A1 (en) * 2020-01-09 2021-09-23 Jerry Nims 2d image capture system, transmission & display of 3d digital image
US20220051427A1 (en) * 2020-01-09 2022-02-17 JUC Holdings Limited Subsurface imaging and display of 3d digital image and 3d image sequence
US20220078392A1 (en) * 2020-01-09 2022-03-10 JUC Holdings Limited 2d digital image capture system, frame speed, and simulating 3d digital image sequence
US20210321077A1 (en) * 2020-01-09 2021-10-14 JUC Holdings Limited 2d digital image capture system and simulating 3d digital image sequence
US11948316B2 (en) 2020-03-11 2024-04-02 Samsung Electronics Co., Ltd. Camera module, imaging device, and image processing method using fixed geometric characteristics
US11146727B2 (en) * 2020-03-16 2021-10-12 Ke.Com (Beijing) Technology Co., Ltd. Method and device for generating a panoramic image
CN111524154B (zh) * 2020-04-21 2021-12-28 南京航空航天大学 一种基于影像的隧道管片自动化分割方法
CN111507904B (zh) * 2020-04-22 2023-06-02 华中科技大学 一种微观打印图案的图像拼接方法及装置
CN111640065B (zh) * 2020-05-29 2023-06-23 深圳拙河科技有限公司 基于相机阵列的图像拼接方法、成像装置
CN111714883A (zh) * 2020-06-19 2020-09-29 网易(杭州)网络有限公司 贴图的处理方法、装置及电子设备
NO346392B1 (en) 2020-08-05 2022-07-04 Muybridge As Multiple camera sensor system and method of providing a target image by a virtual camera
US11334961B2 (en) * 2020-08-06 2022-05-17 Apple Inc. Multi-scale warping circuit for image fusion architecture
EP3971821A1 (en) * 2020-09-22 2022-03-23 Toyota Jidosha Kabushiki Kaisha Image completion using self-attention and uncertainty
CN112233154A (zh) * 2020-11-02 2021-01-15 影石创新科技股份有限公司 拼接图像的色差消除方法、装置、设备和可读存储介质
CN116762100A (zh) * 2020-11-12 2023-09-15 创峰科技 具有选择性局部细化分辨率的图像对准
KR102405428B1 (ko) * 2020-12-29 2022-06-03 서울과학기술대학교 산학협력단 이미지 스티칭 방법 및 장치
US11948315B2 (en) * 2020-12-31 2024-04-02 Nvidia Corporation Image composition in multiview automotive and robotics systems
CN113225491B (zh) * 2021-04-01 2023-01-31 桂林电子科技大学 一种嵌入式多镜头全景视频成像方法及装置
CN112967360B (zh) * 2021-04-23 2024-05-03 自然资源部国土卫星遥感应用中心 顾及多维度的合成孔径雷达影像Voronoi多边形镶嵌方法
CN112995523B (zh) * 2021-04-30 2021-07-30 武汉特斯雷信息技术有限公司 一种在线自助业务环境检测方法及系统
CN113329149B (zh) * 2021-05-10 2022-07-05 武汉大学 一种双相机钻孔孔壁全景成像探头、系统及其全景图像生成方法
US20220385880A1 (en) * 2021-05-28 2022-12-01 Jerry Nims 2d digital image capture system and simulating 3d digital image and sequence
CN113253968B (zh) * 2021-06-01 2021-11-02 卡莱特云科技股份有限公司 一种异形led显示屏的异常切片画面判断方法及装置
US11989854B2 (en) 2021-06-23 2024-05-21 Apple Inc. Point-of-view image warp systems and methods
CN114071104B (zh) * 2022-01-18 2022-04-19 山东捷瑞数字科技股份有限公司 基于着色器实现多投影机投影渐变融合的方法
WO2023219451A1 (en) * 2022-05-13 2023-11-16 Samsung Electronics Co., Ltd. Method and apparatus for recognition of a motion in a video
CN117097017B (zh) * 2023-08-09 2024-04-05 盐城工学院 一种具备远程监控功能的新能源双向充电站

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050078880A1 (en) * 2003-10-10 2005-04-14 Schroeder Stephen R. Image warp
JP2005157847A (ja) * 2003-11-27 2005-06-16 Seiko Epson Corp 画像処理装置および処理方法
KR20170052674A (ko) * 2014-09-22 2017-05-12 삼성전자주식회사 3 차원 비디오를 위한 이미지 스티칭

Family Cites Families (130)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8430980D0 (en) 1984-12-07 1985-01-16 Robinson M Generation of apparently three-dimensional images
JPH07182535A (ja) 1993-12-24 1995-07-21 Olympus Optical Co Ltd 三次元ボリュームデータ表示装置
US5850352A (en) 1995-03-31 1998-12-15 The Regents Of The University Of California Immersive video, including video hypermosaicing to generate from multiple video views of a scene a three-dimensional video mosaic from which diverse virtual video scene images are synthesized, including panoramic, scene interactive and stereoscopic images
US20020075258A1 (en) 1999-05-12 2002-06-20 Imove Inc. Camera system with high resolution image inside a wide angle view
US7015954B1 (en) 1999-08-09 2006-03-21 Fuji Xerox Co., Ltd. Automatic video system using multiple cameras
AU2001245993A1 (en) 2000-03-27 2001-10-08 Massachusetts General Hospital Methods and systems for distinguishing individuals utilizing anatomy and gait parameters
US7085409B2 (en) 2000-10-18 2006-08-01 Sarnoff Corporation Method and apparatus for synthesizing new video and/or still imagery from a collection of real video and/or still imagery
US6975742B2 (en) 2000-11-29 2005-12-13 Xerox Corporation Rate-distortion optimization system and method for image compression
JP2002277220A (ja) 2001-03-19 2002-09-25 Hitachi Ltd 膜厚計測のための計測点決定方法およびそれを用いた薄膜デバイスの製造方法並びに薄膜デバイスの製造装置
US20050226172A1 (en) 2001-12-15 2005-10-13 Richardson John W Video conference call set up
US20030179308A1 (en) 2002-03-19 2003-09-25 Lucia Zamorano Augmented tracking using video, computed data and/or sensing technologies
US6856344B2 (en) 2002-04-02 2005-02-15 Robert H. Franz Vehicle undercarriage inspection and imaging method and system
US7224382B2 (en) 2002-04-12 2007-05-29 Image Masters, Inc. Immersive imaging system
AU2003244156A1 (en) 2002-06-28 2004-01-19 Sharp Kabushiki Kaisha Image data delivery system, image data transmitting device thereof, and image data receiving device thereof
KR100475060B1 (ko) 2002-08-07 2005-03-10 한국전자통신연구원 다시점 3차원 동영상에 대한 사용자 요구가 반영된 다중화장치 및 방법
CN1771740A (zh) 2003-01-24 2006-05-10 米科伊公司 立体全景图像捕捉装置
US7388693B2 (en) 2003-02-28 2008-06-17 Lexmark International, Inc. System and methods for multiple imaging element scanning and copying
US7619626B2 (en) 2003-03-01 2009-11-17 The Boeing Company Mapping images from one or more sources into an image for display
US7119816B2 (en) 2003-03-31 2006-10-10 Microsoft Corp. System and method for whiteboard scanning to obtain a high resolution image
US7463280B2 (en) 2003-06-03 2008-12-09 Steuart Iii Leonard P Digital 3D/360 degree camera system
US7343048B2 (en) * 2003-09-18 2008-03-11 Arcsoft, Inc. Edge based alignment algorithm
US7606441B2 (en) * 2003-11-27 2009-10-20 Seiko Epson Corporation Image processing device and a method for the same
US7434153B2 (en) 2004-01-21 2008-10-07 Fuji Xerox Co., Ltd. Systems and methods for authoring a media presentation
WO2005125209A1 (en) 2004-06-22 2005-12-29 Stratech Systems Limited Method and system for surveillance of vessels
US7791638B2 (en) 2004-09-29 2010-09-07 Immersive Media Co. Rotating scan camera
SE0402651D0 (sv) 2004-11-02 2004-11-02 Coding Tech Ab Advanced methods for interpolation and parameter signalling
WO2006110584A2 (en) 2005-04-07 2006-10-19 Axis Engineering Technologies, Inc. Stereoscopic wide field of view imaging system
GB2425363A (en) 2005-04-18 2006-10-25 Sharp Kk Panoramic adapter with mirrors formed by rotating conic section
US7460730B2 (en) 2005-08-04 2008-12-02 Microsoft Corporation Video registration and image sequence stitching
EP1938663A4 (en) 2005-08-30 2010-11-17 Lg Electronics Inc DEVICE FOR ENCODING AND DECODING AUDIO SIGNAL AND CORRESPONDING METHOD
US20070103558A1 (en) 2005-11-04 2007-05-10 Microsoft Corporation Multi-view video delivery
KR100724134B1 (ko) 2006-01-09 2007-06-04 삼성전자주식회사 이미지 매칭 속도와 블렌딩 방법을 개선한 파노라마 영상제공 방법 및 장치
EP1865455A1 (en) 2006-06-07 2007-12-12 Seac02 S.r.l. A virtual advertising system
US8369419B2 (en) 2006-06-16 2013-02-05 Via Technologies, Inc. Systems and methods of video compression deblocking
KR100790890B1 (ko) 2006-09-27 2008-01-02 삼성전자주식회사 파노라마 영상 생성장치 및 방법
IL181533A (en) 2007-02-25 2010-12-30 Sosmart Rescue Ltd Inflatable life-saving swimming garment
EP2562578B1 (en) 2007-03-16 2017-06-14 Kollmorgen Corporation System for panoramic image processing
US8041147B2 (en) 2007-07-18 2011-10-18 3DHISTECH Kft; Method for realistic stitching image blocks of an electronically recorded multipart image
US8068693B2 (en) 2007-07-18 2011-11-29 Samsung Electronics Co., Ltd. Method for constructing a composite image
CN101578885B (zh) 2007-08-07 2012-09-12 松下电器产业株式会社 摄像处理装置以及摄像装置、图像处理方法
TWI383666B (zh) 2007-08-21 2013-01-21 Sony Taiwan Ltd 多重鏡頭相機系統之先進式動態接圖方法
GB2467461B (en) * 2007-09-14 2012-03-07 Nat Inst Of Advanced Ind Scien Virtual reality environment generating apparatus and controller apparatus
EP2211302A1 (en) 2007-11-08 2010-07-28 Nec Corporation Feature point arrangement checking device, image checking device, method therefor, and program
US20110175903A1 (en) 2007-12-20 2011-07-21 Quantum Medical Technology, Inc. Systems for generating and displaying three-dimensional images and methods therefor
US20090163185A1 (en) 2007-12-24 2009-06-25 Samsung Electronics Co., Ltd. Method and system for creating, receiving and playing multiview images, and related mobile communication device
WO2009094643A2 (en) 2008-01-26 2009-07-30 Deering Michael F Systems using eye mounted displays
DE112008003743T5 (de) * 2008-02-28 2011-02-24 Inpho Gmbh Bildverarbeitungs-Verfahren, -Vorrichtung und -Einheit
KR100934211B1 (ko) 2008-04-11 2009-12-29 주식회사 디오텍 휴대용 단말기의 파노라마 이미지 생성 방법
US9786164B2 (en) 2008-05-23 2017-10-10 Leverage Information Systems, Inc. Automated camera response in a surveillance architecture
US8600193B2 (en) * 2008-07-16 2013-12-03 Varian Medical Systems, Inc. Image stitching and related method therefor
US8280191B1 (en) * 2008-07-31 2012-10-02 Abode Systems Incorporated Banded seam carving of images with pyramidal retargeting
US20100194851A1 (en) * 2009-02-03 2010-08-05 Aricent Inc. Panorama image stitching
US8179466B2 (en) 2009-03-11 2012-05-15 Eastman Kodak Company Capture of video with motion-speed determination and variable capture rate
US20100272187A1 (en) 2009-04-24 2010-10-28 Delta Vidyo, Inc. Efficient video skimmer
EP2427819A4 (en) 2009-05-06 2012-11-07 Thomson Licensing METHOD AND SYSTEMS FOR DELIVERING MULTIMEDIA CONTENTS ACCORDING TO PRESENTATION EQUIPMENT OPTIONS
GB2473059A (en) 2009-08-28 2011-03-02 Sony Corp A method and apparatus for forming a composite image
JP5418127B2 (ja) 2009-10-09 2014-02-19 ソニー株式会社 画像処理装置および方法、並びにプログラム
CN102667911B (zh) 2009-11-18 2015-12-16 汤姆逊许可证公司 用于具有灵活像差选择的三维内容递送的方法和系统
JP4886888B2 (ja) 2009-12-01 2012-02-29 キヤノン株式会社 画像処理装置及びその制御方法
CN102714739A (zh) 2009-12-04 2012-10-03 诺基亚公司 处理器、设备以及相关联的方法
US8294748B2 (en) * 2009-12-11 2012-10-23 DigitalOptics Corporation Europe Limited Panorama imaging using a blending map
CN101710932B (zh) 2009-12-21 2011-06-22 华为终端有限公司 图像拼接方法及装置
US8964013B2 (en) 2009-12-31 2015-02-24 Broadcom Corporation Display with elastic light manipulator
KR101055411B1 (ko) 2010-03-12 2011-08-09 이상원 입체 영상 생성 방법 및 그 장치
JP5564300B2 (ja) 2010-03-19 2014-07-30 富士フイルム株式会社 ヘッドマウント型拡張現実映像提示装置及びその仮想表示物操作方法
US8396269B2 (en) * 2010-04-08 2013-03-12 Digital Pathco LLC Image quality assessment including comparison of overlapped margins
US8896671B2 (en) 2010-04-09 2014-11-25 3D-4U, Inc. Apparatus and method for capturing images
JP5682149B2 (ja) 2010-06-10 2015-03-11 ソニー株式会社 立体画像データ送信装置、立体画像データ送信方法、立体画像データ受信装置および立体画像データ受信方法
US8571350B2 (en) 2010-08-26 2013-10-29 Sony Corporation Image processing system with image alignment mechanism and method of operation thereof
JP2012068380A (ja) 2010-09-22 2012-04-05 Sony Corp 画像処理装置、撮像装置、および画像処理方法、並びにプログラム
JP5409577B2 (ja) * 2010-10-05 2014-02-05 株式会社ソニー・コンピュータエンタテインメント パノラマ画像生成装置およびパノラマ画像生成方法
EP2613290B1 (en) * 2010-10-26 2019-05-08 Morpho, Inc. Image processing device, image processing method, and image processing program
US20120105574A1 (en) 2010-10-28 2012-05-03 Henry Harlyn Baker Panoramic stereoscopic camera
US9007432B2 (en) 2010-12-16 2015-04-14 The Massachusetts Institute Of Technology Imaging systems and methods for immersive surveillance
US9088835B2 (en) 2010-12-17 2015-07-21 Thomson Licensing Method for adjusting depth or view of three-dimensional streaming video
WO2012086326A1 (ja) 2010-12-24 2012-06-28 富士フイルム株式会社 立体パノラマ画像作成装置、立体パノラマ画像作成方法及び立体パノラマ画像作成プログラム並びに立体パノラマ画像再生装置、立体パノラマ画像再生方法及び立体パノラマ画像再生プログラム、記録媒体
TWI417640B (zh) 2010-12-31 2013-12-01 Altek Corp 鏡頭校準系統
JP2012156680A (ja) 2011-01-25 2012-08-16 Jvc Kenwood Corp 3d画像処理装置
US9661205B2 (en) 2011-02-28 2017-05-23 Custom Manufacturing & Engineering, Inc. Method and apparatus for imaging
WO2012117729A1 (ja) 2011-03-03 2012-09-07 パナソニック株式会社 追体験映像を提供することができる映像提供装置、映像提供方法、映像提供プログラム
US8600194B2 (en) 2011-05-17 2013-12-03 Apple Inc. Positional sensor-assisted image registration for panoramic photography
JP6001826B2 (ja) 2011-05-18 2016-10-05 任天堂株式会社 情報処理システム、情報処理装置、情報処理プログラムおよび情報処理方法
CN102217322B (zh) 2011-05-27 2013-10-09 华为技术有限公司 媒体发送方法、媒体接收方法和客户端及系统
US8184069B1 (en) 2011-06-20 2012-05-22 Google Inc. Systems and methods for adaptive transmission of data
AU2011205087B2 (en) * 2011-07-29 2014-09-25 Canon Kabushiki Kaisha Multi-hypothesis projection-based shift estimation
JP2013061848A (ja) 2011-09-14 2013-04-04 Panasonic Corp 非接触入力装置
JP2013077296A (ja) 2011-09-14 2013-04-25 Ricoh Co Ltd 画像処理装置、画像処理方法およびプログラム
CN102420898A (zh) 2011-09-27 2012-04-18 惠州Tcl移动通信有限公司 一种基于手机的全景照相实现方法及手机
US9268406B2 (en) 2011-09-30 2016-02-23 Microsoft Technology Licensing, Llc Virtual spectator experience with a personal audio/visual apparatus
AU2011253973B2 (en) 2011-12-12 2015-03-12 Canon Kabushiki Kaisha Keyframe selection for parallel tracking and mapping
US9479780B2 (en) 2012-02-01 2016-10-25 Google Technology Holdings LLC Simplification of significance map coding
CN103260046A (zh) 2012-02-16 2013-08-21 中兴通讯股份有限公司 一种三维显示方法及系统
KR101926577B1 (ko) 2012-02-23 2018-12-11 한국전자통신연구원 확장형 3차원 입체영상 디스플레이 시스템
CN102595164A (zh) 2012-02-27 2012-07-18 中兴通讯股份有限公司 一种视频图像发送方法、装置及系统
US20130250040A1 (en) 2012-03-23 2013-09-26 Broadcom Corporation Capturing and Displaying Stereoscopic Panoramic Images
GB2501767A (en) 2012-05-04 2013-11-06 Sony Comp Entertainment Europe Noise cancelling headset
WO2013173728A1 (en) 2012-05-17 2013-11-21 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for unified scene acquisition and pose tracking in a wearable display
US9767598B2 (en) 2012-05-31 2017-09-19 Microsoft Technology Licensing, Llc Smoothing and robust normal estimation for 3D point clouds
US9846960B2 (en) 2012-05-31 2017-12-19 Microsoft Technology Licensing, Llc Automated camera array calibration
CN102692806B (zh) 2012-06-04 2015-08-05 济南大学 自由视点四维空间视频序列的采集与形成方法
CN104335569B (zh) 2012-06-11 2017-08-25 索尼电脑娱乐公司 图像生成设备以及图像生成方法
JP5580855B2 (ja) 2012-06-12 2014-08-27 株式会社ソニー・コンピュータエンタテインメント 障害物回避装置および障害物回避方法
US9013558B2 (en) 2012-07-02 2015-04-21 Sony Corporation System and method for alignment of stereo views
US9314692B2 (en) 2012-09-21 2016-04-19 Luxand, Inc. Method of creating avatar from user submitted image
WO2014054897A1 (ko) 2012-10-05 2014-04-10 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
JP6126820B2 (ja) 2012-11-09 2017-05-10 任天堂株式会社 画像生成方法、画像表示方法、画像生成プログラム、画像生成システム、および画像表示装置
KR20140089146A (ko) 2013-01-04 2014-07-14 삼성전자주식회사 영상 통화 방법 및 그 방법을 처리하는 전자 장치
US20140205203A1 (en) 2013-01-22 2014-07-24 University Of Central Florida Research Foundation, Inc. System and Method for Visual Correlation of Digital Images
US9154773B2 (en) 2013-03-15 2015-10-06 Seiko Epson Corporation 2D/3D localization and pose estimation of harness cables using a configurable structure representation for robot operations
US9070289B2 (en) 2013-05-10 2015-06-30 Palo Alto Research Incorporated System and method for detecting, tracking and estimating the speed of vehicles from a mobile platform
WO2014193670A2 (en) * 2013-05-29 2014-12-04 Capso Vision, Inc. Reconstruction of images from an in vivo multi-camera capsule
US9589350B1 (en) * 2013-05-30 2017-03-07 360 Lab Llc. Utilizing three overlapping images for exposure correction during panoramic image stitching
KR102155001B1 (ko) 2013-06-27 2020-09-11 엘지전자 주식회사 헤드 마운트 디스플레이 장치 및 그 동작방법
KR102082300B1 (ko) 2013-07-01 2020-02-27 삼성전자주식회사 삼차원 영상 생성 또는 재생을 위한 장치 및 방법
US9686479B2 (en) 2013-09-16 2017-06-20 Duke University Method for combining multiple image fields
US20150080652A1 (en) 2013-09-18 2015-03-19 Cerner Innovation, Inc. Lesion detection and image stabilization using portion of field of view
US9478010B2 (en) 2013-12-12 2016-10-25 Google Technology Holdings LLC Generating an enhanced image of a predetermined scene from a plurality of images of the predetermined
IN2014DE00449A (ko) 2014-02-17 2015-08-21 Rockwell Collins Inc
US20150272547A1 (en) 2014-03-31 2015-10-01 Siemens Medical Solutions Usa, Inc. Acquisition control for elasticity ultrasound imaging
US9420176B2 (en) 2014-06-19 2016-08-16 Omnivision Technologies, Inc. 360 degree multi-camera system
US10209942B2 (en) 2014-07-16 2019-02-19 Sony Interactive Entertainment LLC Collaboratively displaying media content using plurality of display devices
US9900505B2 (en) 2014-07-23 2018-02-20 Disney Enterprises, Inc. Panoramic video from unstructured camera arrays with globally consistent parallax removal
KR101606539B1 (ko) 2014-07-29 2016-03-25 주식회사 삼우소프트 360도 원형 디스플레이의 3차원 영상 렌더링 방법
US11205305B2 (en) * 2014-09-22 2021-12-21 Samsung Electronics Company, Ltd. Presentation of three-dimensional video
CN105389787A (zh) * 2015-09-30 2016-03-09 华为技术有限公司 一种全景图像拼接方法及装置
US9672586B2 (en) 2015-10-22 2017-06-06 Texas Instruments Incorporated Image synthesis method with DSP and GPU
US9911213B2 (en) * 2015-12-18 2018-03-06 Ricoh Co., Ltd. Panoramic image stitching using objects
US9947121B2 (en) * 2016-04-04 2018-04-17 Microsoft Technology Licensing, Llc Image stitching
CN106934764B (zh) * 2016-11-03 2020-09-11 阿里巴巴集团控股有限公司 一种图像数据处理方法、装置
CN109427040B (zh) * 2017-08-22 2023-10-10 富联国基(上海)电子有限公司 图像处理装置及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050078880A1 (en) * 2003-10-10 2005-04-14 Schroeder Stephen R. Image warp
JP2005157847A (ja) * 2003-11-27 2005-06-16 Seiko Epson Corp 画像処理装置および処理方法
KR20170052674A (ko) * 2014-09-22 2017-05-12 삼성전자주식회사 3 차원 비디오를 위한 이미지 스티칭

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Fan Zhang ET AL:"Parallax-tolerant Image Stitching", Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014, pp. 3262-3269(2014.06.24.) 1부.* *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210152950A (ko) * 2020-06-09 2021-12-16 엑시스 에이비 디지털 이미지 정렬
KR20210153235A (ko) * 2020-06-10 2021-12-17 중앙대학교 산학협력단 딥매칭을 이용한 콘크리트 구조물 또는 교량의 파노라마 이미지 생성 및 업데이트 시스템, 이의 파노라마 이미지 생성 및 업데이트 방법 및 파노라마 이미지 생성 및 업데이트 프로그램
KR20220081168A (ko) * 2020-12-08 2022-06-15 광운대학교 산학협력단 비디오 스티칭 방법 및 장치
KR20220136797A (ko) * 2021-04-01 2022-10-11 경희대학교 산학협력단 우선순위 사물 기반의 영상 정합 장치 및 그 방법
KR20220155496A (ko) * 2021-05-14 2022-11-23 주식회사 넥스트칩 차량의 운행 정보와 관련된 그래픽 객체 출력 방법 및 장치

Also Published As

Publication number Publication date
EP3635678A1 (en) 2020-04-15
CN111052176A (zh) 2020-04-21
KR102500759B1 (ko) 2023-02-16
WO2019031873A1 (en) 2019-02-14
EP3635678A4 (en) 2020-06-03
US20200020075A1 (en) 2020-01-16
CN111052176B (zh) 2024-02-13
US11049218B2 (en) 2021-06-29

Similar Documents

Publication Publication Date Title
KR102500759B1 (ko) 심 없는 이미지 스티칭(Seamless image stitching)
US9019426B2 (en) Method of generating image data by an image device including a plurality of lenses and apparatus for generating image data
EP3198862B1 (en) Image stitching for three-dimensional video
EP3007038B1 (en) Interaction with three-dimensional video
US9900505B2 (en) Panoramic video from unstructured camera arrays with globally consistent parallax removal
US8947501B2 (en) Scene enhancements in off-center peripheral regions for nonlinear lens geometries
JP5725975B2 (ja) 撮像装置及び撮像方法
US8896703B2 (en) Superresolution enhancment of peripheral regions in nonlinear lens geometries
US9892488B1 (en) Multi-camera frame stitching
US10063792B1 (en) Formatting stitched panoramic frames for transmission
CN111598777A (zh) 天空云图的处理方法、计算机设备和可读存储介质
CN111866523B (zh) 全景视频合成方法、装置、电子设备和计算机存储介质
CN114862934B (zh) 十亿像素成像的场景深度估计方法及装置
GB2555585A (en) Multiple view colour reconstruction
Zhou Omnidirectional High Dynamic Range Imaging with a Moving Camera
CN116866722A (zh) 全景图像生成方法、装置、计算机设备和存储介质
JP2013110669A (ja) 画像処理方法および装置、プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant