KR20170123328A - 파노라마 가상 현실 콘텐츠의 옴니스테레오 캡쳐 및 렌더링 - Google Patents

파노라마 가상 현실 콘텐츠의 옴니스테레오 캡쳐 및 렌더링 Download PDF

Info

Publication number
KR20170123328A
KR20170123328A KR1020177027557A KR20177027557A KR20170123328A KR 20170123328 A KR20170123328 A KR 20170123328A KR 1020177027557 A KR1020177027557 A KR 1020177027557A KR 20177027557 A KR20177027557 A KR 20177027557A KR 20170123328 A KR20170123328 A KR 20170123328A
Authority
KR
South Korea
Prior art keywords
images
camera
cameras
image
captured
Prior art date
Application number
KR1020177027557A
Other languages
English (en)
Other versions
KR101991080B1 (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
Priority claimed from US14/723,178 external-priority patent/US9877016B2/en
Priority claimed from US14/723,151 external-priority patent/US10038887B2/en
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20170123328A publication Critical patent/KR20170123328A/ko
Application granted granted Critical
Publication of KR101991080B1 publication Critical patent/KR101991080B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • H04N13/0014
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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
    • H04N13/0239
    • H04N13/0242
    • H04N13/044
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/243Image signal generators using stereoscopic image cameras using three or more 2D image sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • H04N13/344Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Optics & Photonics (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Studio Devices (AREA)
  • Processing Or Creating Images (AREA)
  • Stereoscopic And Panoramic Photography (AREA)

Abstract

설명되는 시스템들 및 방법들은, 컴퓨팅 디바이스에서, 캡쳐된 이미지들에 기초하여 이미지들의 세트를 정의하는 것, 컴퓨팅 디바이스에서, 이미지들의 세트의 일부분과 관련된 복수의 뷰잉 광선들을 곡선 경로 주위에 배열되는 복수의 뷰포인트들로부터 한 뷰포인트로 리캐스트하는 것에 의해, 이미지들의 세트의 일부분을 평면의 퍼스펙티브 이미지 평면으로부터 구면 이미지 평면 상으로 투영하는 것, 컴퓨팅 디바이스에서, 뷰포인트에 대응하는 주변 경계를 결정하고 주변 경계 밖에 있는 픽셀들을 제거하는 것에 의해 업데이트된 이미지들을 생성하는 것, 및 디스플레이를 위해, 주변 경계의 바운드(bound)들 내에서 업데이트된 이미지들을 제공하는 것을 포함한다.

Description

파노라마 가상 현실 콘텐츠의 옴니스테레오 캡쳐 및 렌더링
관련 출원들에 대한 교차 참조
본 출원은 2015년 5월 27일자로 출원된 발명의 명칭이 "Capture and Render of Panoramic Virtual Reality Content"인 미국 특허 출원 제14/723,151호 및 2015년 5월 27일자로 출원된 발명의 명칭이 "Omnistereo Capture and Render of Panoramic Virtual Reality Content"인 미국 특허 출원 제14/723,178호에 대한 우선권 및 그 이익을 주장한다.
기술 분야
본 설명은 일반적으로 파노라마(panorama)들을 생성하는 것에 관한 것이다. 특히, 설명은 가상 현실(virtual reality; VR) 환경에서의 디스플레이를 위해 캡쳐된 이미지들로부터 입체(stereoscopic) 파노라마들을 생성하는 것에 관한 것이다.
배경
장면의 넓은 뷰(view)를 제공하기 위해, 파노라마 포토그래피 기법(technique)들이 이미지들 및 비디오에 대해 사용될 수 있다. 통상적으로, 통상의 카메라로 촬영된 다수의 인접한 포토그래피들로부터 파노라마 이미지들을 획득하기 위해, 파노라마 포토그래피 기법들 및 이미징 기법들이 사용될 수 있다. 파노라마 이미지를 획득하기 위해, 포토그래피들은 함께 정렬되어 고정(mount)될 수 있다.
개요
하나의 일반적인 양태에서, 컴퓨터로 구현되는 방법은, 컴퓨팅 디바이스에서, 캡쳐된 이미지들에 기초하여 이미지들의 세트를 정의하는 단계와, 컴퓨팅 디바이스에서, 이미지들의 세트의 일부분과 관련되는 복수의 뷰잉 광선(viewing ray)들을 곡선 경로 주위에 배열되는 복수의 뷰포인트(viewpoint)들로부터 한 뷰포인트로 리캐스트함(recasting)으로써 이미지들의 세트의 일부분을 평면의 퍼스펙티브 이미지 평면(planar perspective image plane)으로부터 구면 이미지 평면(spherical image plane) 상으로 투영하는 단계와, 그리고 컴퓨팅 디바이스에서, 뷰포인트에 대응하는 주변 경계(periphery boundary)를 결정하고 주변 경계 밖에 있는 픽셀들을 제거함으로써 업데이트된 이미지들을 생성하는 단계를 포함한다. 상기 방법은 또한, 디스플레이를 위해, 주변 경계의 바운드(bound)들 내에서 업데이트된 이미지들을 제공하는 것을 포함할 수 있다. 이 양태의 다른 실시형태들은, 대응하는 컴퓨터 시스템들, 장치, 및 방법의 액션(action)들을 수행하도록 각각 구성되는, 하나 이상의 컴퓨터 스토리지 디바이스들 상에 기록되는 컴퓨터 프로그램들을 포함한다.
다른 일반적인 양태에서, 이미징 시스템 - 이미징 시스템은 스테레오(stereo) 파노라마들을 생성하도록 구성됨 - 이 포함된다. 시스템은, 정의된 이미지들의 세트로부터 보간된 이미지들을 제공하도록 그리고 보간된 이미지들을 이미지들의 세트 안으로 인터리빙하여 스테레오 파노라마에 대한 추가적인 가상 콘텐츠를 생성하도록 구성되는 보간 모듈, 이미지들의 세트를 평면의 퍼스펙티브 투영(planar perspective projection)으로부터 구면 투영(spherical projection)으로 투영하도록 구성되는 투영 모듈, 및 비원형 카메라 궤적을 보상하기 위해 이미지들의 세트를 조정하도록 구성되는 캡쳐 보정 모듈을 포함할 수 있다. 시스템은 또한, 이미지들의 세트로부터 그리고 보간된 이미지들로부터 이미지들의 일부분들을 샘플링하도록, 이미지들의 일부분들을 함께 혼합하여 적어도 하나의 픽셀 값을 생성하도록, 그리고 픽셀 값을 좌측 장면 및 우측 장면으로 구성함으로써 비디오 콘텐츠를 포함하는 삼차원 입체 파노라마를 생성하도록 구성되는 스티칭 모듈(stitching module)을 포함할 수 있다. 이미징 시스템은 또한, 왜곡을 제거하기 위해 이미지들의 세트에 대한 광학적 흐름을 추정하도록 구성되는 이미지 보정 모듈을 포함한다. 이 양태의 다른 실시형태들은, 대응하는 컴퓨터 시스템들, 장치, 및 방법의 액션(action)들을 수행하도록 각각 구성되는, 하나 이상의 컴퓨터 스토리지 디바이스들 상에 기록되는 컴퓨터 프로그램들을 포함한다.
다른 일반적인 양태에서, 컴퓨터로 구현되는 방법은, 컴퓨팅 디바이스에서, 캡쳐된 이미지들에 기초하여 이미지들의 세트를 정의하는 단계와, 컴퓨팅 디바이스에서, 이미지들의 세트를 (추정된 광학적 흐름을 사용하여) 등장방형도법(equirectangular) 비디오 스트림으로 스티칭하는 단계와, 컴퓨팅 디바이스에서, 제1 뷰 및 제2 뷰에 대해 비디오 스트림을 평면의 퍼스펙티브로부터 등장방형도법 퍼스펙티브로 투영함으로써 재생을 위해 비디오 스트림을 렌더링하는 단계와, 및 컴퓨팅 디바이스에서, 왜곡 - 왜곡은 비디오 스트림을 투영하는 것에 적어도 부분적으로 기초함 - 이 미리 정의된 임계치를 초과하는 경계를 결정하는 단계를 포함한다. 방법은 또한, 컴퓨팅 디바이스에서, 경계에 그리고 상기 경계에 의해 정의되는 내부 밖에 있는 이미지들의 세트 내의 이미지 콘텐츠를 제거함으로써 업데이트된 비디오 스트림을 생성하는 단계와; 디스플레이를 위해 업데이트된 비디오 스트림을 제공하는 단계를 포함할 수 있다. 이 양태의 다른 실시형태들은, 대응하는 컴퓨터 시스템들, 장치, 및 방법의 액션(action)들을 수행하도록 각각 구성되는, 하나 이상의 컴퓨터 스토리지 디바이스들 상에 기록되는 컴퓨터 프로그램들을 포함한다. 하나의 일반적인 양태에서, 컴퓨터로 구현되는 방법은, 컴퓨팅 디바이스에서, 캡쳐된 이미지들에 기초하여 이미지들의 세트를 정의하는 단계와, 컴퓨팅 디바이스에서, 가상 현실(virtual reality: VR) 헤드 장착 디스플레이(HMD)의 유저와 관련되는 뷰잉 방향(viewing direction)을 수신하는 단계와, 그리고 컴퓨팅 디바이스에서, 뷰잉 방향에서의 변화의 표시(indication)를 수신하는 단계를 포함할 수 있다. 방법은, 표시를 수신하는 것에 응답하여, 컴퓨팅 디바이스에 의해, 이미지들의 세트의 일부분의 재투영(re-projection) - 재투영은 변경된 뷰잉 방향 및 캡쳐된 이미지들과 관련되는 시야(field of view)에 적어도 부분적으로 기초함 - 을 구성하는 단계와, 및 그 일부분을, 재투영을 사용하여, 구면 퍼스펙티브 투영으로부터 평면의 퍼스펙티브 투영으로 변환하는 단계를 더 포함할 수 있다. 방법은, 컴퓨팅 디바이스에 의해 그리고 VR 헤드 장착 디스플레이에서의 디스플레이를 위해, 재투영에 기초하여 업데이트된 뷰 - 업데이트된 뷰는 왜곡을 보정하도록 그리고 그 일부분에서 스테레오 시차(stereo parallax)를 제공하도록 구성됨 - 를 렌더링하는 단계와, 그리고 헤드 장착 디스플레이에, 변경된 뷰잉 방향에 대응하는 스테레오 파노라마 장면을 포함하는 업데이트된 뷰를 제공하는 단계를 더 포함할 수 있다. 이 양태의 다른 실시형태들은, 대응하는 컴퓨터 시스템들, 장치, 및 방법의 액션(action)들을 수행하도록 각각 구성되는, 하나 이상의 컴퓨터 스토리지 디바이스들 상에 기록되는 컴퓨터 프로그램들을 포함한다.
다른 일반적인 양태에서, 장치는, 적어도 하나의 프로세서, 명령어들을 저장하는 메모리를 갖는 시스템을 포함하고, 명령어들은, 적어도 하나의 프로세서에 의한 실행시, 시스템으로 하여금, 카메라들의 적어도 하나의 스테레오 쌍으로부터 수집되는 캡쳐된 비디오 스트림들에 기초하여 이미지들의 세트를 정의하는 것, 이미지들의 세트의 일부가 아닌 이미지 프레임들을 보간하기 위해 이미지들의 세트 내의 광학적 흐름을 계산하는 것, 이미지 프레임들을 이미지들의 세트 안으로 인터리빙하고, 광학적 흐름에 적어도 부분적으로 기초하여 이미지 프레임들 및 이미지들의 세트를 함께 스티칭하는 것, 및 이미지 프레임들 및 이미지들의 세트를 사용하여, VR 헤드 장착 디스플레이에서의 디스플레이를 위한 옴니스테레오 파노라마(omnistereo panorama)를 생성하는 것을 포함하는 동작들을 수행하게 한다. 이 양태의 다른 실시형태들은, 대응하는 컴퓨터 시스템들, 장치, 및 방법의 액션(action)들을 수행하도록 각각 구성되는, 하나 이상의 컴퓨터 스토리지 디바이스들 상에 기록되는 컴퓨터 프로그램들을 포함한다.
다른 일반적인 양태에서, 방법은, 카메라 리그(camera rig)를 제1 방향에서 회전시키면서, 동시에, 카메라 리그 상에 배열되는 카메라들의 스테레오 쌍을 사용하여, 카메라 리그를 둘러싸는 장면과 관련되는 이미지들을 캡쳐하는 단계와, 및 카메라 리그를 제2 방향에서 회전시키면서, 동시에, 스테레오 쌍을 사용하여, 장면과 관련되는 추가적인 이미지들을 캡쳐하는 단계 - 카메라 리그는 원형이고, 캡쳐 동안, 카메라 리그의 베이스에 평행한 원호 모션(arcing motion)으로 이동하도록 구성되고, 스테레오 쌍은, 카메라 리그의 베이스의 중심의 반대 쪽들(opposite sides)에서 오프셋되는 뷰잉 방향을 가지고 배치되고, 스테레오 쌍은 대략 인간의 동공간 거리만큼 떨어져 배열됨 - 를 포함할 수 있다. 이 양태의 다른 실시형태들은, 대응하는 컴퓨터 시스템들, 장치, 및 방법의 액션(action)들을 수행하도록 각각 구성되는, 하나 이상의 컴퓨터 스토리지 디바이스들 상에 기록되는 컴퓨터 프로그램들을 포함한다.
하나의 일반적인 양태에서, 컴퓨터로 구현되는 방법은, 컴퓨팅 디바이스에서, 회전 가능한 카메라 리그로부터 캡쳐된 콘텐츠를 묘사하는 이미지들의 세트를 수신하는 단계와, 컴퓨팅 디바이스로, 이미지들 내에서 이미지 프레임들 - 이미지 프레임들은 카메라 리그의 베이스의 바깥쪽 에지로부터 약 1 반경 미터 내지 카메라 리그의 베이스의 바깥쪽 에지로부터 약 5 반경 미터의 거리에서 카메라 리그로 캡쳐되는 콘텐츠를 포함함 - 의 일부분들을 선택하는 단계와, 입체 파노라마 뷰를 생성하기 위해 이미지 프레임들의 일부분들을 함께 스티칭 - 스티칭은 그 일부분들을 그 일부분 내의 적어도 하나의 다른 이미지 프레임에 매칭시키는 것에 적어도 부분적으로 기초하고, 스티칭은 카메라 리그의 직경에 적어도 부분적으로 기초하여 선택되는 스티칭 비(ratio)을 사용하여 수행됨 - 하는 단계와, 그리고 뷰를 헤드 장착 디스플레이로 제공하는 단계를 포함할 수 있다. 이 양태의 다른 실시형태들은, 대응하는 컴퓨터 시스템들, 장치, 및 방법의 액션(action)들을 수행하도록 각각 구성되는, 하나 이상의 컴퓨터 스토리지 디바이스들 상에 기록되는 컴퓨터 프로그램들을 포함한다.
하나 이상의 구현예들의 세부 사항들은 첨부하는 도면들 및 이하의 설명에서 개시된다. 다른 피쳐들은 상세한 설명 및 도면들로부터 그리고 청구범위로부터 명백할 것이다.
도면들의 간단한 설명
도 1은 3D 가상 현실(VR) 환경에서 입체 파노라마들을 캡쳐 및 렌더링하기 위한 예시적인 시스템의 블록도이다.
도 2는 입체 파노라마들을 생성함에 있어서 사용하기 위한 장면의 이미지들을 캡쳐하도록 구성되는 예시적인 카메라 리그를 묘사하는 도면이다.
도 3은 입체 파노라마들을 생성함에 있어서 사용하기 위한 장면의 이미지들을 캡쳐하도록 구성되는 다른 예시적인 카메라 리그를 묘사하는 도면이다.
도 4는 입체 파노라마들을 생성함에 있어서 사용하기 위한 장면의 이미지들을 캡쳐하도록 구성되는 모바일 디바이스를 묘사하는 도면이다.
도 5는 입체 파노라마들을 생성함에 있어서 사용하기 위한 장면의 이미지들을 캡쳐하도록 구성되는 다른 예시적인 카메라 리그를 묘사하는 도면이다.
도 6은 입체 파노라마들을 생성함에 있어서 사용하기 위한 장면의 이미지들을 캡쳐하도록 구성되는 또 다른 예시적인 카메라 리그를 묘사하는 도면이다.
도 7은 예시적인 VR 디바이스를 예시하는 도면이다.
도 8은 카메라 시야의 함수로서 카메라 쌍들의 수를 예시하는 예시적인 그래프이다.
도 9는 카메라 시야의 함수로서 보간된 시야를 예시하는 예시적인 그래프이다.
도 10은 카메라 리그에 대한 구성의 선택을 예시하는 예시적인 그래프이다.
도 11은 미리 정의된 리그 직경에 따라 카메라들의 최소 개수를 결정하기 위해 사용될 수 있는 예시적인 관계를 예시하는 그래프이다.
도 12a 및 도 12b는 이미지 캡쳐 동안 발생할 수 있는 왜곡의 라인 묘화 예(line drawing example)들이다.
도 13a 및 도 13b는 파노라마 이미지의 수집 동안 캡쳐되는 광선(ray)들의 예들을 묘사한다.
도 14a 및 도 14b는, 도 13a 및 도 13b에서 설명되는 바와 같은 근사하는 평면의 퍼스펙티브 투영(approximating planar perspective projection)의 사용을 예시한다.
도 15a 내지 도 15c는 이미지의 평면들에 적용되는 근사된 평면의 퍼스펙티브 투영(approximated planar perspective projection)의 예들을 예시한다.
도 16a 및 도 16b는 수직 시차를 도입하는 예들을 예시한다.
도 17a 및 도 17b는 3D 파노라마에서의 포인트들을 예시하기 위해 사용될 수 있는 좌표 시스템의 예시적인 포인트들을 묘사한다.
도 18은 도 17a 및 도 17b에서 묘사되는 포인트의 투영된 뷰를 나타낸다.
도 19는 본 개시에서 설명되는 파노라마 이미징 기법들을 사용하여 무지향성(omnidirectional) 스테레오 이미지에서 캡쳐되는 광선들을 예시한다.
도 20은 3D 공간에서의 포인트들에 의해 야기되는 최대 수직 시차를 예시하는 그래프이다.
도 21은 스테레오 파노라마 이미지를 생성하는 프로세스의 하나의 실시형태를 나타내는 플로우차트이다.
도 22는 스테레오 파노라마 이미지를 캡쳐하는 프로세스의 하나의 실시형태를 나타내는 플로우차트이다.
도 23은 헤드 장착 디스플레이에서 파노라마 이미지들을 렌더링하는 프로세스의 하나의 실시형태를 나타내는 플로우차트이다.
도 24는 이미지 경계들을 결정하는 프로세스의 하나의 실시형태를 나타내는 플로우차트이다.
도 25는 비디오 콘텐츠를 생성하는 프로세스의 하나의 실시형태를 나타내는 플로우차트이다.
도 26은 여기서 설명되는 기법들을 구현하기 위해 사용될 수 있는 컴퓨터 디바이스 및 모바일 컴퓨터 디바이스의 예를 도시한다.
다양한 도면들에서 동일한 참조 부호들은 동일한 엘리먼트들을 나타낸다.
상세한 설명
파노라마 이미지들을 생성하는 것은 일반적으로, 예를 들면, 카메라 리그에서 단일의 카메라 또는 다수의 카메라들을 사용하여 주변의 삼차원(3D) 장면의 이미지들 또는 비디오를 캡쳐하는 것을 포함한다. 여러 대의 카메라들을 하우징하는 카메라 리그를 사용하는 경우, 각각의 카메라는, 시간적으로 특정한 시점에서 이미지들을 캡쳐하도록 동기화 및 구성될 수 있다. 예를 들면, 각각의 카메라에 의해 캡쳐되는 제1 프레임은, 제2, 제3 및 제4 카메라들이 대응하는 제1 프레임들을 캡쳐하는 것과 거의 동시에 캡쳐될 수 있다. 이미지 캡쳐는 장면의 일부 또는 전체가 캡쳐될 때까지 계속해서 동시에 수행될 수 있다. 비록 구현예들 중 많은 것이 카메라의 관점에서 설명되지만, 구현예들은, 대신, 이미지 센서들의 관점에서 또는 카메라 하우징들(이것은 이미지 센서들을 포함할 수 있음)의 관점에서 설명될 수 있다.
다수의 카메라들을 하우징하는 카메라 리그들은, 장면의 특정한 각도들을 캡쳐하도록 구성될 수 있다. 예를 들면, 카메라 리그 상에 하우징되는 카메라들은 특정한 각도로 지향될 수 있고, 그 각도로부터 캡쳐되는 모든 콘텐츠(또는 콘텐츠의 적어도 일부분)는 특정한 장면의 전체 파노라마를 생성하도록 프로세싱될 수 있다. 몇몇 구현예들에서, 카메라들의 각각은 장면의 상이한 각도들을 캡쳐하기 위해 상이한 각도들로 지향될 수 있다. 장면 중 일부분만이 캡쳐되거나 또는 장면 중 일부 또는 전체가 왜곡을 포함하는 경우, 파노라마로부터의 어떤 누락된, 손상된, 또는 왜곡된 콘텐츠를 보간 또는 구성하기 위해 다수의 프로세스들이 수행될 수 있다. 다음의 개시는, 3D 가상 현실(VR) 환경에서 헤드 장착 디스플레이(head-mounted display; HMD) 디바이스에 이러한 콘텐츠를 디스플레이하는 목적을 위해 3D 파노라마 콘텐츠를 캡쳐, 프로세싱, 보정, 및 렌더링하는 다수의 장치 및 방법들을 설명한다.
도 1은 3D 가상 현실(VR) 환경에서 입체 파노라마들을 캡쳐 및 렌더링하기 위한 예시적인 시스템(100)의 블록도이다. 예시적인 시스템(100)에서, 카메라 리그(102)는 네트워크(104)를 통해 이미지들을 캡쳐할 수 있고, (예를 들면 영구적 스토리지 또는 착탈식 스토리지에) 로컬하게 저장할 수 있고, 및/또는 제공할 수 있거나, 또는 대안적으로, 분석 및 프로세싱을 위해 이미지들을 이미지 프로세싱 시스템(106)으로 직접적으로 제공할 수 있다. 시스템(100)의 몇몇 구현예들에서, 모바일 디바이스(108)는 네트워크(104)를 통해 이미지들을 제공하는 카메라 리그(102)로서 기능할 수 있다. 일단 이미지들이 캡쳐되면, 이미지 프로세싱 시스템(106)은, 이미지들에 대해 다수의 계산들 및 프로세스들을 수행할 수 있고 프로세싱된 이미지들을, 렌더링을 위해, 예를 들면, 네트워크(104)를 통해 헤드 장착 디스플레이(HMD) 디바이스(110)로 제공한다. 몇몇 구현예들에서, 이미지 프로세싱 시스템(106)은 카메라 리그(102) 및/또는 HMD 디바이스(110)에 포함될 수 있다. 몇몇 구현예들에서, 이미지 프로세싱 시스템(106)은 또한, 렌더링, 저장, 또는 추가 프로세싱을 위해, 프로세싱된 이미지들을 모바일 디바이스(108) 및/또는 컴퓨팅 디바이스(112)로 제공할 수 있다.
HMD 디바이스(110)는 가상 현실 헤드셋, 안경, 아이피스(eyepiece), 또는 가상 현실 콘텐츠를 디스플레이할 수 있는 다른 착용 가능한 디바이스를 나타낼 수 있다. 동작 중에, HMD 디바이스(110)는, 수신된 및/또는 프로세싱된 이미지들을 유저에게 재생할 수 있는 VR 애플리케이션(도시되지 않음)을 실행할 수 있다. 몇몇 구현예들에서, VR 애플리케이션은, 도 1에 도시되는 디바이스들(106, 108 또는 112) 중 하나 이상에 의해 호스팅될 수 있다. 하나의 예에서, HMD 디바이스(110)는 카메라 리그(102)에 의해 캡쳐되는 장면의 비디오 재생을 제공할 수 있다. 다른 예에서, HMD 디바이스(110)는 단일의 파노라마 장면으로 스티칭되는 스틸 이미지들의 재생을 제공할 수 있다.
카메라 리그(102)는, VR 환경에서 콘텐츠를 렌더링하기 위한 이미지 데이터를 수집하는 카메라(캡쳐 디바이스로도 또한 칭해질 수 있음) 및/또는 프로세싱 디바이스로서의 사용을 위해 구성될 수 있다. 비록 카메라 리그(102)가 본원에서는 특정한 기능성(functionality)을 가지고 설명되는 블록도로서 도시되지만, 리그(102)는 도 2 내지 도 6에서 도시되는 구현예들 중 어떤 것의 형태를 취할 수 있고 추가적으로 본 개시 내용 전반에 걸쳐 카메라 리그들에 대해 설명되는 기능성을 가질 수 있다. 예를 들면, 시스템(100)의 기능성을 설명함에 있어서의 간략화를 위해, 도 1은 이미지들을 캡쳐하기 위해 리그 주위에 배치되는 카메라들이 없는 카메라 리그(102)를 도시한다. 카메라 리그(102)의 다른 구현예들은, 리그(102)와 같은 원형 카메라 리그의 원주 주위에 배치될 수 있는 어떤 수의 카메라들을 포함할 수 있다.
도 1에서 도시되는 바와 같이, 카메라 리그(102)는 다수의 카메라들(139) 및 통신 시스템(132)을 포함한다. 카메라들(139)은 단일의 스틸 카메라 또는 단일의 비디오 카메라를 포함할 수 있다. 몇몇 구현예들에서, 카메라들(130)은, 리그(102)의 외주부(예를 들면, 링)를 따라 나란히 배치되는(예를 들면, 안착되는(seated)) 다수의 스틸 카메라들 또는 다수의 비디오 카메라들을 포함할 수 있다. 카메라들(139)은 비디오 카메라, 이미지 센서, 입체 카메라, 적외선 카메라, 및/또는 모바일 디바이스일 수 있다. 통신 시스템(132)은 이미지들, 명령어들, 및/또는 다른 카메라 관련 콘텐츠를 업로드 및 다운로드하기 위해 사용될 수 있다. 통신은 유선 또는 무선일 수 있으며 사설 또는 공용 네트워크를 통해 인터페이싱할 수 있다.
카메라 리그(102)는 고정식 리그 또는 회전하는 리그로서 기능하도록 구성될 수 있다. 리그의 각각의 카메라는 리그에 대한 회전의 중심에서 오프셋되어 배치된다(예를 들면, 위치된다). 카메라 리그(102)는, 예를 들면, 장면의 360도 뷰의 전부 또는 일부분을 스윕하고 캡쳐하기 위해 약 360도 회전하도록 구성될 수 있다. 몇몇 구현예들에서, 리그(102)는 정지 포지션에서 동작하도록 구성될 수 있으며, 이러한 구성에서, 장면에 대한 추가적인 외측 시야각들을 캡쳐하기 위해 추가적인 카메라들이 리그에 추가될 수 있다.
몇몇 구현예들에서, 카메라 리그(102)는, 다수의 디지털 비디오 카메라들의 렌즈들 각각이 주변 장면 또는 환경의 상이한 일부분을 보게끔 반경 바깥 방향을 향하도록, (예를 들면, 카메라(302B 및 302F)에 대해 도 3에서 도시되는 바와 같이) 나란히(side-to-side) 또는 등을 맞댄(back-to-back) 양식으로 배치되는 다수의 디지털 비디오 카메라들을 포함한다. 몇몇 구현예에서, 다수의 디지털 비디오 카메라들은, 원형 카메라 리그(102)에 접하는 뷰잉 방향을 갖는 접선 방향의 구성(tangential configuration)으로 배치된다. 예를 들면, 카메라 리그(102)는, 다수의 디지털 비디오 카메라들의 렌즈들 각각이 반경 바깥 방향을 가리키고 동시에 리그의 베이스에 접선 방향으로 배열되도록 배치되는 다수의 디지털 비디오 카메라들을 포함할 수 있다. 디지털 비디오 카메라들은, 주변 장면의 상이한 각도의 일부분들을 보기 위해 상이한 방향들에서 콘텐츠를 캡쳐하도록 지향될 수 있다.
몇몇 구현예들에서, 카메라들로부터의 이미지들은 카메라 리그(102) 상의 이웃하는 카메라들에서 프로세싱될 수 있다. 이러한 구성에서, 이웃하는 카메라들의 각각의 세트 내의 각각의 제1 카메라는, 카메라 리그 베이스의 원형 경로에 접선 방향으로 배치되고(예를 들면, 위치되고) 좌측 방향에서 (예를 들면, 좌측 방향을 가리키는 카메라 렌즈를 가지고) 정렬된다. 이웃하는 카메라들의 각각의 세트 내의 각각의 제2 카메라는, 카메라 리그 베이스의 원형 경로에 접선 방향으로 배치되고(예를 들면, 위치되고) 우측 방향에서 (예를 들면, 우측 방향을 가리키는 카메라 렌즈를 가지고) 정렬된다.
카메라 리그(102) 상에서 사용되는 카메라들에 대한 예시적인 설정은, 초당 약 60 프레임들의 순차 주사 모드(즉, 대부분의 비디오 카메라들의 표준 녹화 모드에서와 마찬가지로 하나 걸러 하나씩의 라인(every other line) 대신, 각각의 래스터 라인이 샘플링되어 비디오의 각각의 프레임을 생성하는 모드)를 포함할 수 있다. 또한, 카메라들의 각각은 동일한(또는 유사한) 설정들로 구성될 수 있다. 각각의 카메라를 동일한(또는 유사한) 설정들로 구성하는 것은, 캡쳐 후 바람직한 방식으로 함께 스티칭될 수 있는 이미지들을 캡쳐하는 이점을 제공할 수 있다. 예시적인 설정들은, 카메라들 중 하나 이상을 동일한 줌, 초점, 노출, 및 셔터 속도로 설정하는 것뿐만 아니라, 스태빌라이제이션 피쳐(stabilization feature)들을 상관시키거나 또는 끈 상태에서 화이트 밸런스가 맞춰지도록 카메라들을 설정하는 것을 포함할 수 있다.
몇몇 구현예들에서, 카메라 리그(102)는 하나 이상의 이미지들 또는 비디오를 캡쳐하기 위해 사용되기 이전에 캘리브레이팅될 수 있다. 예를 들면, 카메라 리그(102) 상의 각각의 카메라는 파노라마 비디오를 찍도록 캘리브레이팅 및/또는 구성될 수 있다. 설정들은, 예를 들면, 360도 스윕 일주에서 넓은 시야를 가지고 특정한 회전 속도에서, 그리고 시계 방향 또는 반시계 방향에서 동작하도록 리그를 구성하는 것을 포함할 수 있다. 몇몇 구현예들에서, 리그(102) 상의 카메라들은, 예를 들면, 장면 주위의 캡쳐 경로의 360도 스윕의 각도당 하나의 프레임을 캡쳐하도록 구성될 수 있다. 몇몇 구현예들에서, 리그(102) 상의 카메라들은, 예를 들면, 장면 주위의 캡쳐 경로의 360도(또는 더 적은) 스윕의 각도당 다수의 프레임들을 캡쳐하도록 구성될 수 있다. 몇몇 구현예들에서, 리그(102) 상의 카메라들은, 예를 들면, 각도당 특별히 측정된 프레임들을 캡쳐해야 하지 않고도, 장면 주위의 캡쳐 경로의 스윕 일주에서 다수의 프레임을 캡쳐하도록 구성될 수 있다.
몇몇 구현예들에서, 카메라들은 시간적으로 특정 시점에 카메라 리그 상의 카메라들로부터 비디오를 캡쳐하기 위해 동기적으로 기능하도록 구성(예를 들면, 설정)될 수 있다. 몇몇 구현예들에서, 카메라들은 시간 기간에 걸쳐 카메라들 중 하나 이상으로부터 비디오의 특정한 일부분들을 캡쳐하기 위해 동기적으로 기능하도록 구성될 수 있다. 카메라 리그를 캘리브레이팅하는 다른 예는, 유입하는 이미지들이 저장되는 방식을 구성하는 것을 포함할 수 있다. 예를 들면, 유입하는 이미지들은 개별 프레임들 또는 비디오(예를 들면, .avi 파일, .mpg 파일)로서 저장될 수 있으며 이러한 저장된 이미지들은 인터넷, 다른 서버 또는 디바이스로 업로드될 수 있거나, 또는 카메라 리그(102) 상의 각각의 카메라를 사용하여 로컬하게 저장될 수 있다. 몇몇 구현예들에서, 유입하는 이미지들은 인코딩된 비디오로서 저장될 수 있다.
이미지 프로세싱 시스템(106)은 보간 모듈(114), 캡쳐 보정 모듈(116), 및 스티칭 모듈(118)을 포함한다. 보간 모듈(116)은, 예를 들면, 디지털 이미지들 및 비디오의 일부분을 샘플링하기 위해 그리고 카메라 리그(102)로부터 캡쳐되는 인접한 이미지들 사이에서 발생할 가능성이 있는 다수의 보간된 이미지들을 결정하기 위해 사용될 수 있는 알고리즘들을 나타낸다. 몇몇 구현예들에서, 보간 모듈(114)은 인접한 이미지들 사이에서 보간된 이미지 단편들, 이미지 일부분들, 및/또는 수직 또는 수평 이미지 스트립들을 결정하도록 구성될 수 있다. 몇몇 구현예들에서, 보간 모듈(114)은 인접한 이미지들 내의 관련된 픽셀들 사이의 유동장(flow field)들(및/또는 흐름 벡터(flow vector)들)을 결정하도록 구성될 수 있다. 흐름장들은, 이미지들이 겪은 변환들을 보상하는 것 및 변환들을 겪은 이미지들을 프로세싱하는 것 둘 다를 위해 사용될 수 있다. 예를 들면, 흐름장들은, 획득된 이미지의 특정한 픽셀 그리드의 변환을 보상하기 위해 사용될 수 있다. 몇몇 구현예들에서, 보간 모듈(114)은, 주변 이미지들의 보간에 의해, 캡쳐된 이미지들의 일부가 아닌 하나 이상의 이미지들을 생성할 수 있고, 생성된 이미지들을 캡쳐된 이미지들 안으로 인터리빙하여 장면에 대한 추가적인 가상 현실 콘텐츠를 생성할 수 있다.
캡쳐 보정 모듈(116)은, 비이상적인(non-ideal) 캡쳐 셋업을 보상함으로써 캡쳐된 이미지들을 보정하도록 구성될 수 있다. 예시적인 캡쳐 셋업들은, 비제한적인 예로서, 원형 카메라 궤적, 평행한 주(카메라)축, 카메라 궤적에 수직인 뷰잉 방향, 카메라 궤적에 접선 방향인 뷰잉 방향 및/또는 다른 캡쳐 조건들을 포함할 수 있다. 몇몇 구현예들에서, 캡쳐 보정 모듈(116)은, 이미지 캡쳐 동안의 비원형(non-circular) 카메라 궤적 및/또는 이미지 캡쳐 동안의 비평행(non-parallel) 주축 중 하나 또는 양자를 보상하도록 구성될 수 있다.
캡쳐 보정 모듈(116)은, 카메라 분리가 약 30도보다 더 큰 다수의 카메라들을 사용하여 캡쳐되는 콘텐츠를 보상하기 위해 이미지들의 특정한 세트를 조정하도록 구성될 수 있다. 예를 들면, 카메라들 사이의 간격이 40도인 경우, 캡쳐 보정 모듈(116)은 추가적인 카메라들로부터 콘텐츠를 수집함으로써 또는 누락된 콘텐츠를 보간함으로써, 너무 작은 카메라 커버리지에 기초한 특정한 장면에서의 어떤 누락된 콘텐츠를 설명할 수 있다.
몇몇 구현예들에서, 캡쳐 보정 모듈(116)은 또한, 카메라 포즈 오차들 및 등등에 기인하는 카메라 오정렬을 보상하기 위해 이미지들의 세트를 조정하도록 구성될 수 있다. 예를 들면, 이미지 캡쳐 동안 카메라 포즈 오차들(예를 들면, 카메라의 방위(orientation) 및 포지션(position)에 기인하는 오차들)이 발생하면, 모듈(116)은, 열악한 노출(또는 이미지 프레임마다의 노출 변화들)에 기인하는 및/또는 하나 이상의 카메라들의 오정렬에 기인하는 아티팩트(artifact)들을 포함하는 아티팩트들을 제거하기 위해, 여러 개의 이미지 프레임들로부터의 둘 이상의 칼럼들의 픽셀들을 혼합할 수 있다. 스티칭 모듈(118)은, 정의된, 획득된, 및/또는 보간된 이미지들에 기초하여 3D 입체 이미지들을 생성하도록 구성될 수 있다. 스티칭 모듈(118)은 다수의 이미지 일부분들로부터의 픽셀들 및/또는 이미지 스트립들을 혼합/스티칭하도록 구성될 수 있다. 스티칭은, 예를 들면, 보간 모듈(114)에 의해 결정되는 바와 같은 유동장들에 기초할 수 있다. 예를 들면, 스티칭 모듈(118)은, 이미지들의 세트의 일부가 아닌 보간된 이미지 프레임들을 (보간 모듈(114)로부터) 수신할 수 있고 이미지 프레임들을 이미지들의 세트 안으로 인터리빙할 수 있다. 인터리빙은, 보간 모듈(114)에 의해 생성되는 광학적 흐름에 적어도 부분적으로 기초하여 이미지 프레임들 및 이미지들의 세트를 모듈(118)이 함께 스티칭하는 것을 포함할 수 있다.
스티칭된 조합은 VR 헤드 장착 디스플레이에서의 디스플레이를 위한 옴니스테레오 파노라마를 생성하기 위해 사용될 수 있다. 이미지 프레임들은 특정한 리그에 배치되는 카메라들의 다수의 이웃하는 쌍으로부터 수집되는 캡쳐된 비디오 스트림들에 기초할 수 있다. 이러한 리그는 약 12 개 내지 약 16 개의 카메라들을 포함할 수 있다. 다시 말하면, 이러한 리그의 다른 조합들은, 예를 들면, 12 내지 16 개의 쌍을 이루지 않은 또는 개별 카메라들을 포함할 수 있다. 몇몇 구현예들에서, 홀수 개의 카메라들이 리그에 포함될 수 있다. 몇몇 구현예들에서, 리그는 이웃하는 카메라들의 하나 또는 둘보다 더 많은 세트들을 포함한다. 몇몇 구현예들에서, 리그는, 리그 상에서 나란히 안착될 수 있는 이웃하는 카메라들의 동수의 세트들을 포함할 수 있다. 몇몇 구현예들에서, 스티칭 모듈(118)은, 인터리빙을 수행하기 전에 이미지들의 세트의 일부분을 사전 스티칭(pre-stitch)하기 위해, 적어도 하나의 이웃하는 쌍과 관련되는 포즈 정보를 사용할 수 있다. 카메라 리그 상의 이웃하는 쌍들은, 예를 들면, 도 3과 연계하여 하기에서 더욱 명확하게 도시되고 설명된다.
몇몇 구현예들에서, 이미지들을 함께 스티칭하기 위해 광학적 흐름 기법들을 사용하는 것은, 캡쳐된 비디오 콘텐츠를 함께 스티칭하는 것을 포함할 수 있다. 이러한 광학적 흐름 기법들은, 카메라 쌍들 및/또는 독자적인 카메라들을 사용하여 이전에 캡쳐된 특정한 비디오 콘텐츠 사이의 중간 비디오 콘텐츠를 생성하기 위해 사용될 수 있다. 이 기법은 이미지들을 캡쳐하는 원형의 고정식 카메라 리그 상에서 카메라들의 연속체를 시뮬레이팅하는 방식으로서 사용될 수 있다. 시뮬레이팅된 카메라들은, 360도의 이미지들을 캡쳐하기 위해 단일의 카메라를 원을 그리며 스윕하는 방법과 유사하게 콘텐츠를 캡쳐할 수 있지만, 그러나 상기의 기법에서는, 리그 상에 더 적은 카메라들이 실질적으로 배치되고 리그는 고정식일 수 있다. 카메라들의 연속체를 시뮬레이팅하는 능력은 또한, 비디오에서 프레임당 콘텐츠(예를 들면, 각도마다 하나의 이미지의 캡쳐 간격인 360 개의 이미지들)를 캡쳐할 수 있는 이점을 제공한다.
생성된 중간 비디오 콘텐츠는, 실제에서, 카메라 리그가 360 개보다 더 적은 이미지들을 캡쳐한 경우, 이미지들의 조밀한 세트(예를 들면, 각도당 하나의 이미지인 360개의 이미지들)를 사용함으로써 광학적 흐름을 사용하여 실제 캡쳐된 비디오 콘텐츠에 스티칭될 수 있다. 예를 들면, 원형 카메라 리그가 8 쌍들의 카메라들(즉, 16 개의 카메라들) 또는 16 개의 쌍을 이루지 않은 카메라들을 포함하는 경우, 캡쳐된 이미지 카운트는 16 개 이미지들만큼 낮을 수 있다. 광학적 흐름 기법들은 16 개의 이미지들 사이의 콘텐츠를 시뮬레이팅하기 위해 사용되어 360도의 비디오 콘텐츠를 제공할 수 있다.
몇몇 구현예들에서, 광학적 흐름 기법들을 사용하는 것은, 보간 효율을 향상시킬 수 있다. 예를 들면, 360 개의 이미지들을 보간하는 대신, 카메라들의 각각의 연속하는 쌍(예를 들면, [1-2], [2-3], [3-4]) 사이에서 광학적 흐름이 계산될 수 있다. 캡쳐된 16 개의 이미지들 및 광학적 흐름들이 주어지면, 보간 모듈(114) 및/또는 캡쳐 보정 모듈(116)은, 16 개의 이미지들 중 하나에서 전체 이미지를 보간할 필요 없이, 어떤 중간 뷰에서 어떤 픽셀을 계산할 수 있다.
이미지 프로세싱 시스템(106)은 또한, 투영 모듈(120) 및 이미지 보정 모듈(122)을 포함한다. 투영 모듈(120)은 이미지들을 평면의 투영 평면으로 투영함으로써 3D 입체 이미지들을 생성하도록 구성될 수 있다. 예를 들면, 투영 모듈(120)은, 이미지들의 특정한 세트의 투영을 획득할 수 있고, 이미지들 중 몇몇을 평면의 퍼스펙티브 투영으로부터 구면(즉, 등장방형도법) 퍼스펙티브 투영으로 변환함으로써 이미지들의 세트의 일부분의 재투영을 구성할 수 있다. 변환은 투영 모델링 기법들을 포함한다.
투영 모델링은 투영의 중심 및 투영 평면을 정의하는 것을 포함할 수 있다. 본 개시에서 설명되는 예들에서, 투영의 중심은, 미리 정의된 xyz 좌표 시스템의 원점 (0, 0, 0)에서 광학 중심을 나타낼 수 있다. 투영 평면은, xyz 좌표 시스템에서 z 축을 따라 이미지들을 캡쳐하도록 카메라를 향하게 한 상태로 투영의 중심의 앞에 배치될 수 있다. 일반적으로, 투영은 좌표 (x, y, z)로부터 투영의 중심까지의 특정한 이미지 광선의 평면의 투영 평면의 교점을 사용하여 계산될 수 있다. 투영의 변환들은, 예를 들면, 매트릭스 계산을 사용하여 좌표 시스템들을 조작함으로써 이루어질 수 있다.
입체 파노라마들의 투영 모델링은, 투영의 단일의 중심을 갖지 않는 다중 퍼스펙티브 이미지(multi-perspective image)들을 사용하는 것을 포함할 수 있다. 다중 퍼스펙티브는 일반적으로 원형 형상(예를 들면, 구면)으로 나타내어진다(도 13b 참조). 콘텐츠를 렌더링 할 때, 본원에서 설명되는 시스템들은, 하나의 좌표 시스템으로부터 다른 좌표 시스템으로 변환할 때 구(sphere)를 근사치로서 사용할 수 있다.
일반적으로, 구면(즉, 등장방형도법) 투영은, 구의 중심이 투영의 중심을 동일하게 둘러싸는 구 형상인 평면을 제공한다. 퍼스펙티브 투영은, 유저의 실제 시각적 인지를 근사하기 위해, 평면의 (예를 들면, 2D 표면) 투영 평면에 3D 오브젝트들의 이미지들을 제공하는 뷰를 제공한다. 일반적으로, 이미지들은 편평한 이미지 평면들(예를 들면, 컴퓨터 모니터, 모바일 디바이스 LCD 스크린) 상에서 렌더링될 수 있고, 따라서 투영은 왜곡되지 않은 뷰를 제공하기 위해 평면의 퍼스펙티브로 나타내어진다. 그러나, 평면의 투영은 360도 시야들을 허용하지 않을 수 있고, 따라서 캡쳐된 이미지들(예를 들면, 비디오)은 등장방형도법(구면) 퍼스펙티브로 저장될 수 있고 렌더링시 평면의 퍼스펙티브로 다시 투영될 수 있다.
특정한 재투영이 완료된 이후, 투영 모듈(120)은 HMD에서의 렌더링을 위해 이미지들의 재투영된 일부분들을 전송할 수 있다. 예를 들면, 투영 모듈(120)은, HMD(110) 내의 좌안 디스플레이로의 재투영의 일부분들 및 HMD(110) 내의 우안 디스플레이로의 재투영의 일부분들을 제공할 수 있다. 몇몇 구현예들에서, 투영 모듈(120)은 상기 재투영을 수행함으로써 수직 시차를 계산하도록 그리고 감소시키도록 구성될 수 있다.
이미지 보정 모듈(122)은, 퍼스펙티브 왜곡(perspective distortion)을 포함하는 그러나 이것으로 제한되지는 않는 왜곡을 보상함으로써 3D 입체 이미지들을 생성하도록 구성될 수 있다. 몇몇 구현예들에서, 이미지 보정 모듈(122)은, 광학적 흐름이 3D 스테레오에 대해 유지되는 특정한 거리를 결정할 수 있고 이러한 흐름이 유지되는 장면의 일부분만을 보여주도록 이미지들을 분할할 수 있다. 예를 들면, 이미지 보정 모듈(122)은, 3D 스테레오 이미지들의 광학적 흐름이 원형 카메라 리그(102)의 바깥쪽 에지로부터 약 1 반경 미터와, 예를 들면, 카메라 리그(102)의 바깥쪽 에지로부터 약 5 반경 미터 사이에서 유지된다는 것을 결정할 수 있다. 따라서, 이미지 보정 모듈(122)은, 왜곡이 없는 동시에 HMD(110)의 유저에 대한 적절한 시차를 갖는 적절한 3D 스테레오 효과들을 또한 제공하는 투영에서 HMD(110)에서의 렌더링을 위해, 1 미터와 5 미터 사이의 견본(swatch)이 선택되는 것을 보장할 수 있다.
몇몇 구현예들에서, 이미지 보정 모듈(122)은 특정한 이미지들을 조정함으로써 광학적 흐름을 추정할 수 있다. 조정들은, 예를 들면, 이미지들의 일부분을 교정하는 것, 이미지들의 일부분과 관련되는 추정된 카메라 포즈를 결정하는 것, 및 그 일부분 내의 이미지들 사이의 흐름을 결정하는 것을 포함할 수 있다. 비제한적인 예에서, 이미지 보정 모듈(122)은, 플로우가 컴퓨팅되고 있는 두 개의 특정 이미지들 사이의 회전에서의 차이를 보상할 수 있다. 이 보정은, 회전 차이(즉, 회전 흐름)에 의해 야기되는 흐름 성분을 제거하도록 기능할 수 있다. 이러한 보정은, 트랜슬레이션(translation)에 의해 야기되는 흐름(예를 들면, 시차 흐름)을 초래하는데, 이것은 흐름 추정 계산의 복잡성을 감소시킬 수 있고 동시에 결과적으로 나타나는 이미지들을 정확하고 견고하게 만들 수 있다. 몇몇 구현예들에서, 이미지 보정 이외의 프로세스들이 렌더링 이전에 이미지들에 대해 수행될 수 있다. 예를 들면, 렌더링이 수행되기 이전에, 이미지들에 대해, 스티칭, 혼합, 또는 추가적인 보정 프로세스들이 수행될 수 있다.
몇몇 구현예들에서, 이미지 보정 모듈(122)은, 평면의 퍼스펙티브 투영에 기초하지 않는 카메라 기하학적 구조(camera geometry)들로 캡쳐되는 이미지 콘텐츠에 의해 야기되는 투영 왜곡을 보정할 수 있다. 예를 들면, 다수의 상이한 시야각들로부터의 이미지들을 보간함으로써 그리고 이미지들과 관련되는 뷰잉 광선들을 공통 원천으로부터 유래하는 것으로서 조건을 설정하는(conditioning) 것에 의해, 이미지들에 보정이 적용될 수 있다. 보간된 이미지들은 캡쳐된 이미지들 안으로 인터리빙되어, 인간의 눈에 대한 편안한 레벨의 회전 시차를 가지고 인간의 눈에 정확하게 나타나는 가상 콘텐츠를 생성할 수 있다.
예시적인 시스템(100)에서, 디바이스들(106, 108 및 112)은 랩탑 컴퓨터, 데스크탑 컴퓨터, 모바일 컴퓨팅 디바이스, 또는 게임용 콘솔일 수 있다. 몇몇 구현예들에서, 디바이스들(106, 108 및 112)은, HMD 디바이스(110) 내에 배치될(예를 들면, 위치될/위치 결정될) 수 있는 모바일 컴퓨팅 디바이스일 수 있다. 모바일 컴퓨팅 디바이스는, 예를 들면, HMD 디바이스(110)에 대한 스크린으로서 사용될 수 있는 디스플레이 디바이스를 포함할 수 있다. 디바이스들(106, 108 및 112)은 VR 애플리케이션을 실행하기 위한 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 게다가, 디바이스들(106, 108 및 112)은, 이들 디바이스들이 HMD 디바이스(110) 앞에 배치되거나 또는 HMD 디바이스(110)에 대한 포지션들의 범위 내에 유지될 때, HMD 디바이스(110)의 3D 움직임을 인식, 모니터링, 및 추적할 수 있는 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 몇몇 구현예들에서, 디바이스들(106, 108 및 112)은 네트워크(104)를 통해 추가적인 콘텐츠를 HMD 디바이스(110)로 제공할 수 있다. 몇몇 구현예들에서, 디바이스들(102, 106, 108, 110, 및 112)은 네트워크(104)를 통해 쌍을 이루거나 또는 연결되는 서로 중 하나 이상에/하나 이상과 연결/인터페이싱될 수 있다. 연결은 유선 또는 무선일 수 있다. 네트워크(104)는 공중 통신망 또는 사설 통신망일 수 있다.
시스템(100)은 전자적 스토리지를 포함할 수 있다. 전자적 스토리지는, 디바이스들(예를 들면, 카메라 리그(102), 이미지 프로세싱 시스템(106), HMD 디바이스(110), 및/또는 등등) 중 어떤 것에 포함될 수 있다. 전자적 스토리지는, 정보를 전자적으로 저장하는 비일시적 저장 매체들을 포함할 수 있다. 전자적 스토리지는, 캡쳐된 이미지들, 획득된 이미지들, 사전 프로세싱된 이미지들, 사후 프로세싱된 이미지들, 등등을 저장하도록 구성될 수 있다. 개시된 카메라 리그들 중 어떤 것으로 캡쳐되는 이미지들은, 비디오의 하나 이상의 스트림들로서 프로세싱 및 저장될 수 있거나, 또는 개별 프레임들로서 저장될 수 있다. 몇몇 구현예들에서, 저장은 캡쳐 동안 발생할 수 있고, 렌더링은, 캡쳐 및 프로세싱이 병행되지 않은 경우보다 더 빨리 파노라마 스테레오 콘텐츠에 더 빨리 액세스하는 것을 가능하게 하기 위해 캡쳐의 일부분들 직후에 발생할 수 있다.
도 2는 입체 파노라마들을 생성함에 있어서 사용하기 위한 장면의 이미지들을 캡쳐하도록 구성되는 예시적인 카메라 리그(200)를 묘사하는 도면이다. 카메라 리그(200)는, 링 형상의 지지 베이스(도시되지 않음)에 부착되는 제1 카메라(202A) 및 제2 카메라(202B)를 포함한다. 도시되는 바와 같이, 카메라들(202A 및 202B)은, (캡쳐될 이미지들/장면들을 향해) 직접적으로 외향하는 환형 위치에서 그리고 리그(200)의 회전의 중심 또는 축(A1)에 평행하게 배치된다.
묘사된 예에서, 카메라들(202A 및 202B)은 거리 B1만큼 떨어져서 장착 플레이트(mount plate; 208) 상에 배치된다(예를 들면, 위치된다). 몇몇 구현예들에서, 카메라 리그(200) 상의 각각의 카메라 사이의 거리 B1은, 평균적인 인간 동공간 거리(interpupillary distance; IPD)를 나타낼 수 있다. IPD 거리만큼 떨어진 곳에 카메라들을 위치시키는 것은, 화살표(204)에 의해 나타내어지는 캡쳐 경로 주위의 장면을 스캔하기 위해 인간의 눈들이 (화살표(204)에 의해 나타내어지는 바와 같이 왼쪽으로 또는 오른쪽으로) 회전할 때 인간의 눈들이 이미지들을 보는 방식을 근사할 수 있다. 예시적인 평균적인 인간 IPD 측정치는, 약 5 센티미터 내지 약 6.5 센티미터일 수 있다. 몇몇 구현예들에서, 표준 IPD 거리만큼 떨어져 배치되는 각각의 카메라는 이웃하는 카메라들의 세트의 일부일 수 있다.
몇몇 구현예들에서, 카메라 리그(200)는 표준 인간 머리의 직경을 근사하도록 구성될 수 있다. 예를 들면, 카메라 리그(200)는 약 8 센티미터 내지 약 10 센티미터의 직경(206)을 가지고 설계될 수 있다. 이 직경(206)은, 회전의 중심(A1)과 관련하여 인간의 머리가 회전하고 인간 눈들로 장면 이미지들을 보는 방식을 근사하기 위해 리그(200)에 대해 선택될 수 있다. 다른 측정들도 가능하며 리그(200) 또는 시스템(100)은, 예를 들면, 더 큰 직경이 사용되어야 하는 경우, 캡쳐 기법들 및 결과적으로 나타나는 이미지들을 조정할 수 있다.
비제한적인 예에서, 카메라 리그(200)는 약 8 센티미터 내지 약 10 센티미터의 직경(206)을 가질 수 있고, 약 6 센티미터의 IPD 거리만큼 떨어져 배치되는 카메라들을 하우징할 수 있다. 다수의 리그 배열들이 하기에서 설명될 것이다. 본 개시에서 설명되는 각각의 배열은 상기 언급된 또는 다른 직경들 및 카메라들 사이의 거리들을 가지고 구성될 수 있다.
도 2에서 도시되는 바와 같이, 두 개의 카메라들(202A, 202B)은 넓은 시야를 가지고 구성될 수 있다. 예를 들면, 카메라들은 약 150도 내지 약 180도의 시야를 캡쳐할 수 있다. 카메라들(202A, 202B)은 더 넓은 뷰들을 캡쳐하기 위해 어안 렌즈(fish-eye lens)를 구비할 수 있다. 몇몇 구현예들에서, 카메라들(202A, 202B)은 카메라들의 이웃하는 쌍으로서 기능한다.
동작에서, 리그(200)는 파노라마 장면을 캡쳐하기 위해 회전의 중심(A1)을 중심으로 360도 회전될 수 있다. 대안적으로, 리그는 정지 상태로 유지될 수 있고 360도 장면의 추가적인 일부분들을 캡쳐하기 위해 (도 3에서 도시되는 바와 같이) 추가적인 카메라들이 카메라 리그(200)에 추가될 수 있다.
도 3은 입체 파노라마들을 생성함에 있어서 사용하기 위한 장면의 이미지들을 캡쳐하도록 구성되는 다른 예시적인 카메라 리그(300)를 묘사하는 도면이다. 카메라 리그(300)는, 링 형상의 지지 베이스(도시되지 않음)에 부착되는 다수의 카메라들(302A-302H)을 포함한다. 제1 카메라(302A)는 실선으로 도시되고 추가적인 카메라들(302B-302H)은, 이들이 옵션적이라는 것을 나타내기 위해 점선으로 도시된다. 카메라 리그(200)에서 도시되는 병렬 장착된 카메라들(카메라들(202A 및 202B) 참조)과는 대조적으로, 카메라들(302A-302H)은 원형 카메라 리그(300)의 외주(outer circumference)에 접선 방향으로 배치된다. 도 3에서 도시되는 바와 같이, 카메라(302A)는 이웃하는 카메라(302B) 및 이웃하는 카메라(302H)를 구비한다.
묘사된 예에서, 카메라들(202A 및 202B)은, 리그(200)에서의 카메라들과 유사하게, 특정한 거리 B1만큼 떨어져 배치된다. 이 예에서, 카메라들(302A 및 302B)은, 하기에서 상세히 설명되는 바와 같이, 중앙 카메라 렌즈의 왼쪽 및 오른쪽 방향으로 각각 벗어난 각도들을 캡쳐하는 이웃하는 쌍으로서 기능할 수 있다.
하나의 예에서, 카메라 리그(300)는, 회전 가능한 또는 고정된 베이스(도시되지 않음) 및 장착 플레이트(306)(이것은 지지부(support)로도 칭해질 수 있음)를 포함하는 원형 리그이고, 카메라들의 이웃하는 쌍은, 장착 플레이트(306) 상에 배치되며, 장착 플레이트(306)의 에지에 접하는 뷰잉 방향을 가리키도록 구성되고 왼쪽 방향을 향하도록 배열되는 제1 카메라(302A), 및 제1 카메라와 나란한 방식으로 장착 플레이트(306) 상에 배치되며 제1 카메라(302A)로부터 동공간 거리(또는 (예를 들면, IPD 거리보다 작은) 상이한 거리)만큼 떨어져 배치되는 제2 카메라(302B)를 포함하는데, 제2 카메라(302B)는, 장착 플레이트(306)의 에지에 접하는 뷰잉 방향을 가리키도록 배열되고 오른쪽 방향을 향하도록 배열된다. 마찬가지로, 이웃하는 쌍들은 카메라들(302C 및 302D)로부터 만들어질 수 있고, 다른 쌍이 카메라들(302E 및 302F)로부터 만들어질 수 있고, 또 다른 쌍이 카메라들(302G 및 302H)로부터 만들어질 수 있다. 몇몇 구현예들에서, 각각의 카메라(예를 들면, 302A)는, 그 자체에 인접하지는 않지만 자신의 이웃에 인접하는 카메라와 쌍을 이룰 수 있고, 그 결과 리그 상의 각각의 카메라는 리그의 다른 카메라와 쌍을 이룰 수 있다. 몇몇 구현예들에서, 각각의 카메라는 (양쪽의) 자신의 직접적인 이웃과 쌍을 이룰 수 있다.
몇몇 구현예들에서, 하나 이상의 스테레오 이미지들이 보간 모듈(114)에 의해 생성될 수 있다. 예를 들면, 카메라 리그(300) 상에 도시되는 스테레오 카메라들 이외에, 합성 스테레오 이미지 카메라들로서 추가적인 스테레오 카메라들이 생성될 수 있다. 특히, 캡쳐된 이미지들로부터의 광선들을 분석하는 것(예를 들면, 광선 추적)은, 3D 장면의 시뮬레이팅된 프레임들을 생성할 수 있다. 분석은, 뷰포인트로부터 특정한 이미지 또는 이미지 프레임을 통해 그리고 장면 안으로 광선들을 역추적하는 것을 포함할 수 있다. 특정한 광선이 장면에서 오브젝트와 충돌하면, 그것이 통과하는 각각의 이미지 픽셀은 오브젝트와 매치하는 컬러로 채색될 수 있다. 광선이 오브젝트와 충돌하지 않으면, 이미지 픽셀은 배경 또는 장면에서의 다른 피쳐와 매치하는 컬러로 채색될 수 있다. 뷰포인트들 및 광선 추적을 사용하여, 보간 모듈(114)은 시뮬레이팅된 스테레오 카메라로부터 유래하는 것으로 보이는 추가적인 장면 콘텐츠를 생성할 수 있다. 추가적인 콘텐츠는 이미지 효과들, 누락된 이미지 콘텐츠, 배경 콘텐츠, 시야 밖의 콘텐츠를 포함할 수 있다.
도 3에서 도시되는 바와 같이, 카메라들(302A-302H)은 카메라 리그(300)의 외주에 접선 방향으로 배치되고(예를 들면, 위치되고), 그러한 만큼, 장면의 180도까지의 뷰를 캡쳐할 수 있다. 즉, 카메라들이 접선 방향의 방식으로 배치되기 때문에, 완전히 차단되지 않은 180도 시야가 리그 상의 각각의 카메라에서 캡쳐될 수 있다.
몇몇 구현예들에서, 카메라 리그(300)는 이웃하는 카메라들을 포함한다. 예를 들면, 리그(300)는 이웃하는 카메라들(302A, 302B)을 포함할 수 있다. 카메라(302A)는, 장착 플레이트(304)의 에지에 접하고 좌측 방향을 향하도록 배열되는 뷰잉 방향으로 지향되는 관련된 렌즈를 가지고 구성될 수 있다. 마찬가지로, 카메라(302B)는 카메라(302A)와 나란한 방식으로 장착 플레이트(304) 상에 배치될 수 있고, 카메라(302A)로부터 대략 인간의 동공간 거리만큼 떨어져 위치되고 장착 플레이트(304)의 에지에 접하는 뷰잉 방향을 가리키도록 배열되고 그리고 오른쪽 방향을 향하도록 배열된다.
몇몇 구현예들에서, 실제 카메라들(302A-H)이 접선 방향으로 배치되는 대신, 카메라들(302A-H) 상의 (또는 카메라 리그(300)) 상의 특정한 센서가 카메라들(302A-H)(또는 리그(300))의 외주에 접선 방향으로 배치될 수 있다. 이러한 방식에서, 카메라들(302A-H)은 유저 선호도에 따라 배치될 수 있고, 센서는 리그(300) 위치, 스위핑 속도, 또는 카메라 구성들 및 설정들에 기초하여 어떤 카메라 또는 카메라들(302A-H)이 이미지들을 캡쳐할 수 있는지를 검출할 수 있다.
몇몇 구현예들에서, 이웃들은 등을 맞댄 또는 나란한 방식으로 배열되는 카메라(302A) 및 카메라(302E)를 포함할 수 있다. 이 배열은 또한, 각각의 카메라 렌즈 및 장착 플레이트(304)에 의해 형성되는 방위각(308)의 좌우로 시야각을 모으기 위해 사용될 수 있다. 몇몇 구현예들에서, 카메라들은 카메라 렌즈 및 장착 플레이트(304)에 의해 각각 형성되는 방위각(308)의 좌우로 경사진 각도에서 배열된다.
몇몇 구현예들에서, 카메라 리그(300) 상에 배치되는 카메라들은, 이미지 보간 동안 어떤 다른 이웃하는 카메라와 쌍을 이룰 수 있고 외측을 향하는 방향에서 원형 리그 주위에 간단하게 정렬될 수 있다. 몇몇 구현예들에서, 리그(300)는 단일의 카메라(예를 들면, 카메라(302A))를 포함한다. 카메라(302A)만이 리그(300)에 장착되는 경우에, 스테레오 파노라마 이미지들은, 카메라 리그(300)를 시계 방향으로 360도 완전히 회전시킴으로써 캡쳐될 수 있다.
도 4는 입체 파노라마들을 생성함에 있어서 사용하기 위한 장면의 이미지들을 캡쳐하도록 구성되는 모바일 디바이스(402)를 묘사하는 도면이다. 이 예에서, 유저는 모바일 디바이스(402)를 조작하고 있고 그들의 환경 주위의 경로(404, 406)에서 풍경(scenery)을 기록함으로써 디바이스를 사용하여 비디오 이미지들을 찍을 수 있다. 예를 들면, 유저는 모바일 디바이스(402)를 바깥쪽으로 향하게 하고 디바이스(402)의 바닥 에지를 지면 평면(ground plane)과 평행하게 하여 유지할 수 있고 시계 방향 또는 반시계 방향으로 회전시켜 경로(404, 406) 주위에서 모바일 디바이스(402)를 스위핑하여 유저의 신체를 둘러 싸는 비디오를 녹화할 수 있다. 다른 예에서, 유저는 모바일 디바이스(402)를 머리 위에서 유지할 수 있고, 경로(404, 406)를 스윕하도록 디바이스(402)를 회전시킬 수 있거나 또는 경로(404, 406)가 유사한 화상(imagery)을 획득하게 만들도록 디바이스(402)를 회전시킬 수 있다. 또 다른 예에서, 유저는 카메라 리그 또는 삼각대 상에 모바일 디바이스(402)를 장착하고 카메라를 부분적인 또는 전체 360도 원형 경로 주위로 회전시킬 수 있다.
유저가 360도 뷰를 캡쳐하는 방법에 관계없이, 유저가 조종하는 경로는, 디바이스(402)가 유저의 신체에 대해 약 90도로 유지된 상태에서 잘 정의된 호(arc)가 만들어지는 경로(404)를 따르지 않을 가능성이 있다. 대신에, 유저를 가이드로서 삼는 모바일 디바이스(402)는, 횡방향 및 수직 방향 둘 다에서 동요(bump)들 및 움직임들이 발생할 수 있는 라인(406)에 의해 도시되는 경로를 횡단할 가능성이 있을 수 있다. 이러한 움직임은 결과적으로 나타나는 비디오 또는 이미지들에서 변화들을 야기하고 비디오 또는 이미지들에 대해 어떤 사후 프로세싱이 수행되면 문제를 야기할 수 있다. 따라서, 본 개시에서 설명되는 방법들은, 비디오 또는 이미지 콘텐츠에서 불완전하게 캡쳐된 퍼스펙티브 뷰(perspective view)들을 보정하여 3D 입체 파노라마들을 제공할 수 있다.
도 5는 입체 파노라마들을 생성함에 있어서 사용하기 위한 장면의 이미지들을 캡쳐하도록 구성되는 다른 예시적인 카메라 리그(500)를 묘사하는 도면이다. 여기서, 리그(500)는 "쿼드콥터(quadcoptor)" 또는 4 중 회전자(quadrotor) 헬리콥터이다. 카메라 리그(500)는 네 개의 회전자들에 의해 들어 올려져서 추진될 수 있는 다중 회전자(multirotor) 헬리콥터이다. 카메라 리그(500)는, 본 개시 전반에 걸쳐 설명되는 바와 같이, 다수의 카메라들을 가지고 구성될 수 있다(예를 들면, 구비할 수 있다). 카메라들은 장면 주위의 경로의 파노라마를 캡쳐하도록 또는 리그(500)의 상부 또는 하부 주위에 장착되는 여러 개의 카메라들로부터 장면의 경로 주위의 단일의 이미지들을 캡쳐하도록 설정될 수 있다. 일반적으로, 장면 주위의 경로는, 유저 또는 카메라 리그 주위의 원, 유저 또는 카메라 리그 주위의 원의 일부분, 장면의 이미지들을 캡쳐하기 위한 모바일 디바이스의 스위핑 모션에 의해 만들어지는 원호, 장면의 360도 스윕, 유저를 둘러싸는 콘텐츠를 캡쳐하기 위해 걷고 있는 또는 회전하고 있는 유저에 의해 수행되는 제한되지 않은 경로, 또는 모바일 디바이스 또는 카메라 리그로 이미지 콘텐츠를 캡쳐하기 위해 사용될 수 있는 다른 경로를 지칭할 수 있다.
도 5에서 도시되는 바와 같이, 카메라(502) 및 카메라(504)는 쿼드콥터(500)의 하부에 배치된다. 예를 들면, 쿼드콥터(500)가 호버링하고 회전하지 않는 경우, 파노라마의 추가 이미지들을 캡쳐하기 위해 추가적인 카메라들이 추가될 수 있다.
게다가, 3D의 360도를 스위핑하는 스테레오 파노라마 이미지를 캡쳐하기 위해, 단지 하나의 카메라만이 사용될 수 있다. 상기의 리그 구성들 중 하나 이상에 장착되는 카메라들과 유사하게, 카메라들은 중심에 장착될 수 있거나, 특정한 원호에 접선 방향으로 접할 수 있거나, 또는 360도 원의 일부분을 캡쳐하는 다른 방식으로 각도를 맞출 수 있다.
몇몇 구현예들에서, 유저는 원격 제어 또는 원격 컴퓨터로부터 쿼드콥터(500)를 제어할 수 있다. 유저는, 비디오, 스틸 프레임들, 스위핑 프레임들, 넓은 뷰, 좁은 뷰, 앵글 뷰(angled view), 등등을 포함하는, 그러나 이들로 제한되지는 않는, 어떤 타입의 이미지들을 캡쳐할지에 대한 지침들을 쿼드콥터로 제공할 수 있다. 몇몇 구현예들에서, 특정한 장면들이 캡쳐되는 것을 보장하기 위해 쿼드콥터 상에 장착되는 GPS 유닛에 명령들 또는 지시들이 제공될 수 있다. 몇몇 구현예들에서, 유저는 장면 내의 미리 정의된 엘리먼트(예컨대, 배우, 나무, 경로, 다른 쿼드콥터 또는 카메라 리그, 등등)를 찾기 위해 "따라 가기(follow)" 모드를 제공할 수 있다. 이 예에서, 유저는 특정한 양의 시간 동안 소정의 경로를 따르도록 쿼드콥터(500)를 설정할 수 있다. 몇몇 구현예들에서, 유저는, 경로를 가로 지르는 동안 또는 특정한 목적지에 도달시, 특정한 속도로 회전하도록 쿼드콥터(500)를 설정할 수 있다.
도 6은, 입체 파노라마들을 생성함에 있어서 사용하기 위한 장면의 이미지들을 캡쳐하도록 구성되는 다른 예시적인 카메라 리그(600)를 묘사하는 도면이다. 카메라 리그(600)는 장착 플레이트(602) 상에 장착될 수 있다. 장착 플레이트(602)는 회전 가능한 베이스(604) 상에 안착될 수 있다. 카메라 리그(600)는, 카메라 리그의 장착 플레이트(602)의 원주 영역을 채우는 다수의 나란한 카메라들(예컨대, 카메라들(606 내지 610))을 포함한다. 카메라들은 리그(600)의 원주를 채우도록 배치될 수 있거나, 또는 대안적으로, 시야각들을 최대로 하도록 그리고 리그 자체의 캡쳐하는 부분들을 최소화하도록 전략적으로 이격될 수 있다.
비제한적인 예에서, 원형 카메라 리그(600)는, 회전 가능한 베이스(604)에 평행한 원호 모션으로 회전함으로써, 장착 플레이트(602) 상에 배치되는 어떤 수의 카메라들을 사용하여, 이미지들의 세트를 캡쳐할 수 있다. 몇몇 구현예들에서, 카메라 리그(600)는 장착 플레이트(602) 상에 배치되는 이웃하는 카메라들을 포함한다. 이웃하는 카메라들은 동기화되어 구성될 수 있고, 약 160도 내지 약 180도의 관련되는 시야를 캡쳐하도록 배치될 수 있다. 다른 시야들도 가능하다. 몇몇 구현예들에서, 카메라 리그(600)는 회전 가능한 베이스 상에 장착되지 않으며 고정식 방식으로 기능한다.
리그 동작의 하나의 예에서, 카메라 리그(예를 들면, 리그(200, 300, 400, 500, 또는 600))는 특정 리그를 둘러싸는 장면의 캡쳐 동안 제1 방향에서 회전될 수 있고, 후속하여, 장면의 캡쳐 동안 상이한 방향에서 회전될 수 있다. 예를 들면, 카메라 리그(600)는 시계 방향으로 회전될 수 있고, 한편 리그(600) 상의 카메라들 중 하나 이상은, 카메라 리그(600)의 베이스(604)의 중심의 반대 쪽들에서 오프셋되는 뷰잉 방향을 가지고 배치된다. 유사한 방식으로, 카메라 리그(600)는, 그 다음, 어떤 수의 카메라들이 왼쪽 방향으로 또는 오른쪽 방향으로 향하게 한 상태에서 반시계 방향으로 회전되어 장면의 추가적인 뷰들을 캡쳐할 수 있다. 리그(600)의 하나의 예시적인 배향에서, 하나 걸러 하나씩의 카메라는 한 방향에서 배향될 수 있고(예를 들면, 왼쪽 방향으로 또는 오른쪽 방향으로 앵글을 맞춘 카메라 렌즈), 한편 그 사이의 카메라들은 반대(예를 들면, 왼쪽 방향으로 향하는 또는 오른쪽 방향으로 향하는) 방향으로 배향될 수 있다.
몇몇 구현예들에서, 베이스(604)는 고정될 수 있다. 예를 들면, 리그(600) 상의 각각의 카메라는, 스틸 모드에서 기능하는 어떤 스틸 카메라 또는 비디오 카메라일 수 있다. 따라서, 카메라들은 주변 장면의 이미지 프레임들을 동시에 캡쳐하도록 동기화 및/또는 구성될 수 있다. 그 양태들은 함께 스티칭되어 스테레오 파노라마 뷰를 형성할 수 있다.
몇몇 구현예들에서, 본 개시에서 설명되는 카메라 리그들은, 원형 하우징 상에 장착되는 어떤 수의 카메라들을 포함할 수 있다. 몇몇 구현예들에서, 카메라들은, 원형 리그의 중심으로부터 바깥쪽으로의 네 방향들의 각각의 방향 상에서 한 쌍의 카메라들과 등거리에 장착될 수 있다. 이 예에서, 입체 쌍들로서 구성되는 카메라들은, 예를 들면, 원주를 따라 외측을 향할 수 있고, 각각의 입체 쌍이 360도 시야의 별개의 사분면(quadrant)을 캡쳐하도록, 0도, 90도, 180도 및 270도 방식으로 배치될 수 있다. 일반적으로, 카메라들의 선택 가능한 시야는, 입체 쌍의 카메라 뷰의 중첩의 양뿐만 아니라, 카메라들 사이의 그리고 인접한 사분면들 사이의 어떤 사각 지대(blind spot)들의 사이즈를 결정한다. 하나의 예시적인 카메라 리그는, 약 120도 내지 약 180도까지의 필드를 캡쳐하도록 구성되는 하나 이상의 입체 카메라 쌍들을 활용할 수 있다.
몇몇 구현예들에서, 본 개시에서 설명되는 카메라 리그들은, 예를 들면, 유저가 1/4원, 반원, 전체 원, 또는 원의 다른 일부분에서 그녀의 머리 또는 몸을 돌리는 경우 유저가 보게 될 것을 캡쳐하기 위해, 인간 동공간 거리들을 흉내내도록 약 5 센티미터 내지 약 8 센티미터의 직경(예를 들면, 도 2의 직경(206))을 가지고 구성될 수 있다. 몇몇 구현예들에서, 직경은 카메라 렌즈로부터 카메라 렌즈까지의 리그를 가로 지르는 거리를 지칭할 수 있다. 몇몇 구현예들에서, 직경은 하나의 카메라 센서로부터 리그를 가로질러 다른 카메라 센서까지의 거리를 지칭할 수 있다. 몇몇 구현예들에서, 직경은, 단순히, 링 형상의 플레이트를 가로 질러 에지에서 에지까지의 장착 플레이트(예를 들면, 장착 플레이트(208))의 사이즈를 지칭할 수 있다.
몇몇 구현예들에서, 카메라 리그는 약 8 센티미터로부터 약 25 센티미터까지 스케일 업되어, 예를 들면, 추가적인 카메라 고정구들을 하우징한다. 몇몇 구현예들에서는, 더 작은 직경의 리그 상에서 더 적은 카메라들이 사용될 수 있다. 이러한 예에서, 본 개시에서 설명되는 시스템들은, 리그 상의 카메라들 사이의 뷰들을 확인 또는 추론할 수 있고, 이러한 뷰들을 실제 캡쳐된 뷰들과 인터리빙할 수 있다.
몇몇 구현예들에서, 본 개시에서 설명되는 카메라 리그들은, 예를 들면, 회전하는 렌즈 또는 회전하는 카메라를 갖는 카메라를 사용함으로써 단일의 노출에서 전체 파노라마를 캡쳐함으로써 파노라마 이미지를 캡쳐하도록 사용될 수 있다. 상기에서 설명되는 카메라들 및 카메라 리그들은 본 개시에서 설명되는 방법들과 함께 사용될 수 있다. 특히, 하나의 카메라 리그와 관련하여 설명되는 방법은 본원에서 설명되는 다른 카메라 리그들 중 어떤 것을 사용하여 수행될 수 있다. 몇몇 구현예들에서, 카메라 리그들 및 후속하여 캡쳐된 콘텐츠는, 가상 콘텐츠, 렌더링된 컴퓨터 그래픽스(computer graphics; CG) 콘텐츠, 및/또는 다른 획득된 또는 생성된 이미지들과 같은 다른 콘텐츠와 결합될 수 있다.
도 7은 예시적인 VR 디바이스(VR 헤드셋)(702)를 예시하는 도면이다. 유저는 고글, 선글라스, 등등을 착용하는 것과 유사하게 그녀의 눈들 위에 헤드셋(702)을 착용함으로써 VR 헤드셋(702)을 착용할 수 있다. 몇몇 구현예들에서, 도 1을 참조하면, VR 헤드셋(702)은, 하나 이상의 고속 유선 및/또는 무선 통신 프로토콜들(예를 들면, 와이파이(Wi-Fi), 블루투스(Bluetooth), 블루투스 LE, USB, 등등)을 사용하여 또는 HDMI 인터페이스를 사용함으로써, 컴퓨팅 디바이스들(106, 108 또는 112)의 다수의 모니터와 인터페이싱할 수 있고/그 다수의 모니터에 연결될 수 있다. 연결은, VR 헤드셋(702)에 포함되는 스크린(도시되지 않음) 상에서 유저에게 디스플레이하기 위한 가상 콘텐츠를 VR 헤드셋(702)에게 제공할 수 있다. 몇몇 구현예들에서, VR 헤드셋(702)은 캐스트 인에이블 디바이스(cast-enabled device)일 수 있다. 이들 구현예들에서, 유저는 VR 헤드셋(702)에 콘텐츠를 제공하거나 "캐스트"(투영)할 것을 선택할 수 있다.
또한, VR 헤드셋(702)은 하나 이상의 고속 유선 및/또는 무선 통신 인터페이스들 및 프로토콜들(예를 들면, 와이파이, 블루투스, 블루투스 LE, 범용 직렬 버스(Universal Serial Bus; USB), 등등)을 사용하여 컴퓨팅 디바이스(104)와 인터페이싱할 수 있고/컴퓨팅 디바이스(104)에 연결될 수 있다. 컴퓨팅 디바이스(도 1)는 VR 헤드셋(702)에 대한 인터페이스를 인식할 수 있고, 응답으로, 가상 콘텐츠를 포함하는 컴퓨터 생성 3D 환경(VR 공간)에서 유저 및 컴퓨팅 디바이스를 렌더링하는 VR 애플리케이션을 실행할 수 있다.
몇몇 구현예들에서, VR 헤드셋(702)은 VR 애플리케이션을 실행할 수 있는 착탈식 컴퓨팅 디바이스(removable computing device)를 포함할 수 있다. 착탈식 컴퓨팅 디바이스는 컴퓨팅 디바이스들(108 또는 112)과 유사할 수 있다. 착탈식 컴퓨팅 디바이스는, VR 헤드셋(702)의 유저에 의해 착용될 수 있는 VR 헤드셋(예를 들면, VR 헤드셋(702))의 케이스 또는 프레임 내에 통합될 수 있다. 이들 구현예들에서, 착탈식 컴퓨팅 디바이스는 컴퓨터 생성 3D 환경(VR 공간)과 상호 작용할 때 유저가 보는 디스플레이 또는 스크린을 제공할 수 있다. 상기에서 설명되는 바와 같이, 모바일 컴퓨팅 디바이스(104)는 유선 또는 무선 인터페이스 프로토콜을 사용하여 VR 헤드셋(702)에 연결될 수 있다. 모바일 컴퓨팅 디바이스(104)는 VR 공간에서 컨트롤러일 수 있고, VR 공간에서 오브젝트로서 나타날 수 있고, VR 공간에 입력을 제공할 수 있고, 그리고 VR 공간으로부터 피드백/출력을 수신할 수 있다.
몇몇 구현예들에서, 모바일 컴퓨팅 디바이스(108)는 VR 애플리케이션을 실행할 수 있고, VR 공간의 생성을 위해 VR 헤드셋(702)에 데이터를 제공할 수 있다. 몇몇 구현예들에서, VR 헤드셋(702)에 포함되는 스크린 상에서 유저에게 디스플레이되는 VR 공간에 대한 콘텐츠는 또한, 모바일 컴퓨팅 디바이스(108)에 포함되는 디스플레이 디바이스 상에서 디스플레이될 수 있다. 이것은, VR 공간에서 유저가 상호 작용하고 있을 수 있는 것을 다른 누군가가 보는 것을 허용한다.
VR 헤드셋(702)은 모바일 컴퓨팅 디바이스(108)의 포지션 및 방위를 나타내는 정보 및 데이터를 제공할 수 있다. VR 애플리케이션은, VR 공간 내에서의 유저 상호 작용을 나타내는 것으로서, 포지션 및 방위 데이터를 수신 및 사용할 수 있다.
도 8은 카메라 시야의 함수로서 카메라들의 수를 예시하는 예시적인 그래프(800)이다. 그래프(800)는 입체 파노라마를 생성하기 위한 미리 정의된 시야에 대해 카메라 리그 상에 배치될 수 있는 카메라들의 수를 결정하기 위해 사용될 수 있는 예시적인 그래프를 나타낸다. 그래프(800)는 특정한 스테레오 파노라마 결과를 보장하기 위해 카메라 설정들 및 카메라 배치를 계산하는 데 사용될 수 있다. 하나의 예시적인 설정은, 특정한 카메라 리그에 부착할 카메라들의 수의 선택을 포함할 수 있다. 다른 설정은, 캡쳐, 사전 또는 사후 프로세싱 단계들 동안 사용될 알고리즘들을 결정하는 것을 포함할 수 있다. 예를 들면, 광학적 흐름 보간 기법들의 경우, 전체 360도 파노라마를 스티칭하는 것은, 모든 광학 광선 방향이 적어도 두 대의 카메라들에 의해 확인되어야 한다는 것을 지시할 수 있다. 이것은, 전체 360도를 커버하기 위해 사용될 카메라들의 최소 수를 카메라 시야 쎄타[θ]의 함수로서 제한할 수 있다. 광학적 흐름 보간 기법들은, 카메라 이웃들(또는 쌍들) 또는 개별 카메라들 중 어느 하나에 의해 수행 및 구성될 수 있다.
도 8에서 도시되는 바와 같이, 함수(802)를 예시하는 그래프가 묘사된다. 함수(802)는 카메라의 수 [n](804)을 카메라 시야 [θ](806)의 함수로서 나타낸다. 이 예에서, 약 95도의 카메라 시야가 라인(808)에 의해 도시된다. 라인(808)과 함수(802)의 교점(810)은, 95도의 시야를 각각 갖는 16 개의 카메라들을 사용하는 것이 바람직한 파노라마 결과를 제공할 것이라는 것을 나타낸다. 이러한 예에서, 카메라 리그는, 이웃하는 카메라들을 리그 상에 배치할 때 발생할 수 있는 어떤 공간을 사용하기 위해 카메라들의 각각의 이웃하는 세트에 대해 이웃하는 카메라들을 인터리빙함으로써 구성될 수 있다.
이웃하는 카메라들을 인터리빙하는 것 이외에, 광학적 흐름 요건은, 시스템(100)이 동일한 타입의 카메라들 사이의 광학적 흐름을 컴퓨팅해야 한다는 것을 지시할 수 있다. 즉, 광학적 흐름은 동시에 둘 모두를 컴퓨팅하기보다는, 제1 카메라에 대해 컴퓨팅되고 그 다음 제2 카메라에 대해 컴퓨팅될 수 있다. 일반적으로 픽셀에서의 흐름은 방위(예를 들면, 방향 및 각도)와 크기(예를 들면, 속도)로서 컴퓨팅될 수 있다.
도 9는 보간된 시야 [θ1](902)을 카메라 시야 [θ](904)의 함수로서 예시하는 예시적인 그래프(900)이다. 그래프(900)는, 카메라의 시야의 어느 부분이 자신의 왼쪽 또는 오른쪽 이웃과 공유되는지를 결정하는 데 사용될 수 있다. 여기서, 약 95도의 카메라 시야(라인(906)에 의해 도시됨)에서, 보간된 시야는, 교차점(908)에 의해 도시되는 바와 같이, 대략 48도로서 도시된다.
두 개의 연속하는 카메라들이 전형적으로 정확히 동일한 시야의 이미지들을 캡쳐하지 않는다는 것을 고려하면, 보간된 카메라의 시야는 카메라 이웃들의 시야들의 교점에 의해 표현될 것이다. 그러면, 보간된 시야 [θ1]은, 카메라 시야 [θ]와 카메라 이웃들 사이의 각도의 함수일 수 있다. 주어진 카메라 시야에 대해 (도 8에서 도시되는 방법을 사용하여) 카메라들의 최소 수가 선택되면, 도 9에서 도시되는 바와 같이, [θ1]은 [θ]의 함수로 계산될 수 있다.
도 10은 카메라 리그에 대한 구성의 선택을 예시하는 예시적인 그래프(1000)이다. 특히, 그래프(1000)는 특정한 카메라 리그가 얼마나 크게 설계될 수 있는지를 결정하는 데 사용될 수 있다. 그래프(1000)는 리그 직경[센티미터 단위의 D](1004)의 함수로서 스티칭 비 [d/D](1002)의 플롯을 묘사한다. 편안한 가상 현실 파노라마 뷰잉 경험을 생성하기 위해, 본 개시의 예에서는, 인간 IPD의 전형인 약 5 센티미터 내지 약 6.5 센티미터이도록 옴니스테레오 스티칭 직경 [d]가 선택된다. 몇몇 구현예들에서, 스티칭 직경 [d]와 대략 동일한 캡쳐 직경 [D]를 사용하여 옴니스테레오 스티칭이 수행될 수 있다. 즉, 약 "1"의 스티칭 비를 유지하는 것은, 예를 들면, 옴니스테레오 이미지들의 사후 프로세싱에서 더 쉬운 스티칭을 제공할 수 있다. 이 특별한 구성은, 스티칭을 위해 사용되는 광학 광선이 실제 카메라 캡쳐 광선과 동일하기 때문에 왜곡을 최소화할 수 있다. "1"의 스티칭 비를 획득하는 것은, 카메라들의 선택된 수가 큰 경우(예를 들면, 리그당 12 내지 18 개의 카메라들), 어려울 수 있다.
리그 상에서의 너무 많은 카메라들의 문제점을 완화하기 위해, 리그 사이즈는 추가적인 카메라들을 수용하도록 그리고 스티칭 비가 동일하게(또는 실질적으로 동일하게) 유지되는 것을 허용하도록 더 큰 사이즈를 가지고 설계될 수 있다. 스티칭 알고리즘이 캡쳐 동안 렌즈의 중앙 근처에서 찍은 이미지들에서 콘텐츠를 샘플링하는 것을 보장하기 위해, 스티칭 비는 리그에 대한 카메라들의 각도 [α]를 결정하도록 고정될 수 있다. 예를 들면, 도 10은, 렌즈 중심 근처에서의 샘플링이 이미지 품질을 향상시키고 기하학적 왜곡들을 최소화한다는 것을 도시한다. 특히, 더 작은 각도 [α]는 리그 폐색(예를 들면, 카메라들이 리그 자체의 부품을 이미지화하는 것)을 방지하는 것을 도울 수 있다.
도 10의 1006에서 도시되는 바와 같이, 0.75의 스티칭 비 [d/D]는 약 6.5 센티미터의 리그 직경(즉, 전형적인 인간 IPD)에 대응한다. 스티칭 비 [d/D]를 약 0.45로 감소시키는 것은, 리그 직경을 약 15 센티미터(1008에서 도시됨)로 증가시키는 것을 허용하는데, 이것은 추가적인 카메라들이 리그에 추가되는 것을 허용할 수 있다. 카메라 리그들에 대한 카메라들의 각도는, 선택된 스티칭 비에 기초하여 조정될 수 있다. 예를 들면, 카메라 각도를 약 30도로 조정하는 것은, 리그 직경이 약 12.5 센티미터만큼 커질 수 있다는 것을 나타낸다. 마찬가지로, 카메라 각도를 약 25도로 조정하는 것은, 예를 들면, 리그 직경이 15 센티미터만큼 커질 수 있고 유저에 대해 다시 렌더링될 때 적절한 시차 및 시각 효과들을 여전히 유지한다는 것을 나타낸다.
일반적으로, 리그 직경 [D]가 주어지면, 최적 카메라 각도 [α]가 계산될 수 있다. [α]로부터, 최대 시야 [Θu]가 계산될 수 있다. 최대 시야 [Θu]는, 일반적으로, 리그가 부분적으로 카메라들을 가리지 않는 시야에 대응한다. 최대 시야는, 카메라 리그가 얼마나 적은 카메라들을 보유할 수 있는지를 제한할 수 있고 폐색되지 않는 뷰들을 여전히 제공할 수 있다.
도 11은 미리 정의된 리그 직경에 따라 카메라들의 최소 수를 결정하기 위해 사용될 수 있는 예시적인 관계를 예시하는 그래프(1100)이다. 여기서, 주어진 리그 직경 [D](1104)에 대한 카메라들의 최소 수 [nmin](1102)이 도시되어 있다. 리그 직경 [D](1104)는, 카메라들의 최소 수를 제한하는 기능을 하는 최대 비폐색(un-occluded) 시야를 제한한다. 그래프의 1106에서 도시되는 바와 같이, 약 10 센티미터의 리그 직경에 대해, 카메라 리그에서 최소 16 개의 카메라들이 사용되어 비폐색 뷰를 제공할 수 있다. 리그 직경을 수정하는 것은, 리그 상에 위치되는 카메라들의 수에서의 증가 또는 감소를 허용할 수 있다. 하나의 예에서, 리그는 약 8 내지 약 25 센티미터의 리그 사이즈 상에서 약 12 내지 약 16 개의 카메라들을 수용할 수 있다.
시야 및 이미지 캡쳐 설정들을 튜닝하기 위해 다른 방법들이 이용 가능하기 때문에, 이들 계산은 이들 다른 방법들과 결합되어 카메라 리그 치수들을 추가로 개선할(refine) 수 있다. 예를 들면, 옴니스테레오 파노라마를 스티칭하기 위해 통상적으로 사용되는 카메라들의 수를 변경(예를 들면, 감소)하기 위해, 광학적 흐름 알고리즘들이 사용될 수 있다. 몇몇 구현예들에서, 본 개시에서 묘사되는 또는 본 개시에서 설명되는 시스템들 및 방법들로부터 생성되는 그래프들은, 예를 들면, HMD 디바이스에서의 렌더링을 위한 가상 콘텐츠를 생성하기 위해 조합하여 사용될 수 있다.
도 12a 및 도 12b는 이미지 캡쳐 동안 발생할 수 있는 왜곡의 라인 묘화 예들을 나타낸다. 특히, 여기에서 나타내어지는 왜곡은 스테레오 파노라마들을 캡쳐할 때 발생하는 효과들에 대응한다. 일반적으로, 장면을 캡쳐하는 카메라 가까이에서 장면이 캡쳐될 때 왜곡이 더 심할 수 있다. 도 12a는 2m×2m이고 카메라 중심으로부터 1m 외측에 배치되는 장면에서의 평면을 나타낸다. 도 12b는 도 12a와 동일한 평면이지만, 그러나 이 도면에서의 평면은 카메라로부터 25cm 외측에 배치된다. 양 도면은 모두 6.5 센티미터 캡쳐 직경을 사용한다. 도 12a는 1202에 있는 중심 근처에서의 약간의 신장(stretch)을 도시하고, 도 12b는 더 팽창된 중심(1204)을 도시한다. 이 왜곡을 보정하기 위해 다수의 기법들이 활용될 수 있다. 다음 단락은, 투영들(예를 들면, 구면 및 평면의 투영들)을 분석하여 왜곡을 보정하기 위해 이미지 콘텐츠를 캡쳐한 근사 방법들 및 시스템들(예를 들면, 카메라 리그/캡쳐 디바이스들)을 사용하는 것을 설명한다.
도 13a 및 도 13b는 파노라마 이미지의 수집 동안 캡쳐되는 광선들의 예들을 묘사한다. 도 13a는, 이미지들의 캡쳐된 세트가 주어지면, 캡쳐 경로(1302) 상의 어떤 곳에서 좌안 및 우안 둘 다에 대해 퍼스펙티브 이미지들이 생성될 수 있다는 것을 도시한다. 여기서, 좌안에 대한 광선들은 광선들(1304a)에 의해 도시되고, 우안에 대한 광선들은 1306a에서 도시된다. 몇몇 구현예들에서, 묘사된 광선들의 각각은, 장면에 대한 카메라 셋업, 오작동, 또는 단순히 불충분한 리그 셋업으로 인해 캡쳐되지 않을 수 있다. 이 때문에, 광선들(1304a 및 1306a) 중 몇몇은 근사될 수 있다. 예를 들면, 장면이 무한히 멀리 있으면, 장면의 하나의 측정 가능한 피쳐는 원점으로부터 목적지로의 광선 방향을 포함한다.
몇몇 구현예들에서, 광선 원점은 수집 가능하지 않을 수 있다. 이와 같이, 본 개시에서의 시스템들은 광선에 대한 원점 위치를 결정하기 위해 좌안 및/또는 우안을 근사시킬 수 있다. 도 13b는 우안에 대한 근사된 광선 방향들(1306b 내지 1306f)을 도시한다. 이 예에서, 동일한 포인트로부터 유래하는 광선들 대신, 각각의 광선은 원(1302) 상의 다른 포인트로부터 유래한다. 광선들(1306b 내지 1306f)은 캡쳐 원(1302)에 대해 접선 방향으로 각진채로(angled) 도시되며 캡쳐 원(1302)의 원주 주위의 특정한 영역에 배치된다. 또한, 카메라 리그와 관련된 두 개의 상이한 이미지 센서들 - 이미지 센서(13-1) 및 이미지 센서(13-2)(이들은 카메라들과 관련되거나 또는 카메라들에 포함됨) - 의 포지션은 카메라 리그 원(1303) 상에 도시된다. 도 13b에서 도시되는 바와 같이, 카메라 리그 원(1303)은 캡쳐 원(1302)보다 더 크다.
다수의 광선들(및 각각의 광선과 관련되는 이미지들의 컬러 및 강도)은 원으로부터 바깥쪽으로 상이한 방향을 사용하여 이러한 방식으로 근사될 수 있다. 이 방식에서, 많은 이미지들을 포함하는 전체 360도 파노라마 뷰가 좌안 및 우안 뷰들 둘 다에 대해 제공될 수 있다. 이 기법은 중간 범위의 오브젝트들에서 왜곡을 해결하는 것으로 귀결될 수 있지만, 그러나 몇몇 경우에서는, 인근 오브젝트들을 이미지화할 때 여전히 변형(deformation)을 가질 수 있다. 단순화를 위해, 근사 된 좌안 광선 방향은 묘사되지 않는다. 이 예시적인 구현예에서는, 단지 몇 개의 광선들(1306b 내지 1306f)만이 예시되어 있다. 그러나 수천 개의 이러한 광선들(및 그들 광선들과 관련되는 이미지들)이 정의될 수 있다. 따라서, 광선들의 각각과 관련되는 많은 새로운 이미지들이 정의될 수 있다(예를 들면, 보간될 수 있다).
도 13b에서 도시되는 바와 같이, 광선(1306b)은 이미지 센서(13-1)와 이미지 센서(13-2) 사이에서 투영된다. 이미지 센서(13-1)는 이미지 센서(13-2)와 이웃한다. 광선은 이미지 센서(13-1)(예를 들면, 이미지 센서(13-1)의 투영의 중심)로부터 거리 G1 그리고 이미지 센서(13-2)(예를 들면 이미지 센서(13-2)의 투영의 중심)로부터 거리 G2일 수 있다. 거리들(G1 및 G2)은 광선(1306b)이 카메라 리그 원(1303)과 교차하는 위치에 기초할 수 있다. 거리 G1은 거리 G2와는 상이할 수 있다(예를 들면, G2보다 더 크거나, 더 작음).
광선(1306b)과 관련되는 이미지(예를 들면, 보간된 이미지, 새로운 이미지)를 정의하기 위해, 이미지 센서(13-1)에 의해 캡쳐되는 제1 이미지(도시되지 않음)가 이미지 센서(13-2)에 의해 캡쳐되는 제2 이미지(도시되지 않음)와 결합된다(예를 들면, 함께 스티칭된다). 몇몇 구현예들에서, 제1 이미지 및 제2 이미지를 결합하기 위해, 광학적 흐름 기법들이 사용될 수 있다. 예를 들면, 제2 이미지로부터의 픽셀들과 대응하는 제1 이미지로부터의 픽셀들이 식별될 수 있다.
예를 들면, 광선(1306b)과 관련되는 이미지를 정의하기 위해, 대응하는 픽셀들은 거리들 G1 및 G2에 기초하여 시프트된다. 이미지 센서들(13-1, 13-2)의 해상도, 종횡비들, 고도(elevation), 등등은, 광선(1306b)에 대한 이미지(예를 들면, 새로운 이미지)를 정의하는 목적들을 위해 동일하다는 것이 가정될 수 있다. 몇몇 구현예들에서, 해상도, 종횡비들, 고도, 등등은 상이할 수 있다. 그러나, 이러한 구현예들에서, 보간은 이들 차이들을 수용하기 위해 수정될 필요가 있을 것이다.
특정한 예로서, 제1 이미지 내의 오브젝트와 관련되는 제1 픽셀은, 제2 이미지 내의 오브젝트와 관련되는 제2 픽셀과 대응하는 것으로서 식별될 수 있다. 제1 이미지가 이미지 센서(13-1)(이것은 카메라 리그 원(1303) 주위의 제1 위치에 있음)의 퍼스펙티브로부터 캡쳐되고, 제2 이미지가 이미지 센서(13-2)(이것은 카메라 리그 원(1303) 주위의 제2 위치에 있음)의 퍼스펙티브로부터 캡쳐되기 때문에, 오브젝트는, 제2 이미지 내의 포지션(X-Y 좌표 포지션)과 비교하여 제1 이미지 내의 포지션(예를 들면, X-Y 좌표 포지션)에서 시프트될 것이다. 마찬가지로, 오브젝트와 관련되는 제1 픽셀은, 오브젝트와 또한 관련되는 제2 픽셀에 비해, 포지션(예를 들면, X-Y 좌표 포지션)에서 시프트될 것이다. 광선(1306b)과 관련되는 새로운 이미지를 생성하기 위해, 제1 픽셀 및 제2 픽셀(및 오브젝트)과 대응하는 새로운 픽셀이 거리들 G1 및 G2의 비에 기초하여 정의될 수 있다. 구체적으로는, 새로운 픽셀은, 포지션에서, 거리 G1에 기초하여 제1 픽셀로부터 시프트되는(그리고 제1 픽셀의 포지션과 제2 픽셀의 포지션 사이의 거리에 기초한 인자에 스케일링되는) 그리고 거리 G2에 기초하여 제2 픽셀로부터 시프트되는(그리고 제1 픽셀의 포지션과 제2 픽셀의 포지션 사이의 거리에 기초한 인자에 스케일링되는) 위치에서 정의될 수 있다.
상기에서 설명되는 구현예에 따르면, 제1 이미지 및 제2 이미지와 일치하는 광선(1306b)과 관련되는 새로운 이미지에 대해 시차가 정의될 수 있다. 구체적으로는, 카메라 리그에 상대적으로 가까운 오브젝트들은, 카메라 리그에서 상대적으로 먼 오브젝트들보다 더 많이 시프트될 수 있다. 이 시차는 (예를 들면, 제1 픽셀 및 제2 픽셀로부터의) 픽셀들의 시프팅 사이에서 유지될 수 있고, 광선(1306b)의 거리들 G1 및 G2에 기초할 수 있다.
이 프로세스는 캡쳐 원(1302) 주위의 모든 광선들(예를 들면, 광선들(1306b 내지 1306f))에 대해 반복될 수 있다. 캡쳐 원(1302) 주위의 광선들의 각각과 관련되는 새로운 이미지들은, 광선들의 각각과 카메라 리그 원(1303) 주위의 이미지 센서들(예를 들면, 이웃하는 이미지 센서들, 이미지 센서(13-1, 13-2)) 사이의 거리에 기초하여 정의될 수 있다.
도 13b에서 도시되는 바와 같이, 카메라 리그 원(1303)의 직경은 캡쳐 원(1302)의 직경보다 더 크다. 몇몇 구현예들에서, 카메라 리그 원(1303)의 직경은 캡쳐 원(1302)의 직경보다 1.5 내지 8 배 더 클 수 있다. 특정한 예로서, 캡쳐 원의 직경은 6 센티미터일 수 있고, 카메라 리그 원(1303)(예를 들면, 도 4a에서 도시되는 카메라 마운팅 링(412))의 직경은 30 센티미터일 수 있다.
도 14a 및 도 14b는, 도 13a 및 도 13b에서 설명되는 바와 같은 근사하는 평면의 퍼스펙티브 투영의 사용을 예시한다. 도 14a는 평면의 퍼스펙티브 광선들 및 투영을 근사하기 이전에 왜곡된 라인들을 갖는 파노라마 장면을 도시한다. 도시되는 바와 같이, 커튼 봉(1402a), 창틀(1404a), 및 문(1406a)은 곡선의 피쳐들을 갖는 오브젝트들로서 도시되어 있지만, 그러나 실제로는, 그들은 직선의 피쳐를 갖는 오브젝트들이다. 직선의 피쳐를 갖는 오브젝트들은 곡면을 갖지 않는 오브젝트들(예를 들면, 편평한 인덱스 카드, 정사각형 박스, 직사각형 창틀, 등등)을 포함한다. 이 예에서, 오브젝트들(1402a, 1404a 및 1406a)은, 그들이 이미지에서 왜곡되었기 때문에 굴곡되어 도시되어 있다. 도 14b는 평면의 퍼스펙티브 투영이 90도 수평 시야에서 근사된 보정된 이미지를 도시한다. 여기서, 커튼 봉(1402a), 창틀(1404a) 및 문(1406a)은, 각각, 보정된 직선의 오브젝트(1402a, 1404b, 1404c)로서 도시되어 있다.
도 15a 내지 도 15c는 이미지의 평면들에 적용되는 근사된 평면의 퍼스펙티브 투영의 예들을 예시한다. 도 15a는 본 개시에서 설명되는 기술들을 사용하여 파노라마들로부터 취해진 평면의 퍼스펙티브 투영을 도시한다. 묘사된 평면 뷰(1500)는, 예를 들면, 도 14b의 이미지에서 도시되는 평면의 오버레이를 나타낼 수 있다. 특히, 도 15a는 곡선의 라인들이 직선의 라인들로 투영되는 보정된 도 14a를 나타낸다. 여기서, 파노라마의 평면(1500)은 1 미터의 거리에서 (90도의 수평 시야를 가지고) 도시된다. 라인들(1502, 1504, 1506 및 1508)은 직선이지만, 반면 이전(도 14a에 대응함)에는, 동일한 중심 라인들이 굴곡되고 왜곡되어 있었다.
선택된 왜곡 스킴에 기초하여 다른 왜곡들이 발생할 수 있다. 예를 들면, 도 15b 및 도 15c는, 본 개시의 기법들을 사용하여 파노라마로부터 취해지는 평면의 퍼스펙티브 투영을 사용하여 생성되는 평면들(1510 및 1520)을 나타낸다. 파노라마는 25 센티미터의 거리에서 (90도의 수평 시야를 가지고) 캡쳐되었다. 도 15b는 좌안 캡쳐(1510)를 도시하고, 도 15c는 우안 캡쳐(1520)를 도시한다. 여기서, 평면들의 하부(1512, 1522)는 직선의 라인으로 투영되지 않으며 수직 시차가 도입된다. 이 특정한 변형은 평면의 퍼스펙티브 투영이 사용될 때 발생할 수 있다.
도 16a 및 도 16b는 수직 시차를 도입하는 예들을 예시한다. 도 16a는, 전형적인 옴니스테레오 파노라마 기법들에 따라 캡쳐되고 있는 직선의 라인(1602a)을 묘사한다. 묘사된 예에서, 각각의 광선(1604a-1618a)은 원(1622) 상의 상이한 포인트로부터 유래한다.
도 16b는 퍼스펙티브 근사 기법을 사용하여 보았을 때의 동일한 직선의 라인을 묘사한다. 도시되는 바와 같이, 직선의 라인(1602a)은 라인(1602b)으로서 변형되어 도시된다. 광선들(1604b-1618b)은 원(1622) 상의 단일의 포인트로부터 유래한다. 변형은, 뷰어를 향해 라인(1602b)의 좌측 절반을 가져가고 라인의 우측 절반을 뷰어로부터 멀리 밀어내는 효과를 가질 수 있다. 좌안의 경우, 반대 상황이 발생할 수 있는 바, 즉, 라인의 좌측 절반이 더 멀게 보이고 라인의 우측 절반이 더 가깝게 보인다. 변형된 라인은 두 개의 점근선들 사이에서 굴곡되는데, 두 개의 점근선들은 파노라마 렌더링 원(1622)의 직경(1624)과 동일한 거리만큼 분리된다. 변형이 파노라마 캡쳐 반경과 동일한 사이즈인 것으로 나타나고 있기 때문에, 그것은 인근의 오브젝트들 상에서만 쉽게 눈에 띌 수 있다. 변형의 이 형태는, 이미지를 보는 유저에 대한 수직 시차로 이어질 수 있는데, 이것은, 왜곡된 이미지들에 대해 스티칭 프로세스들이 수행될 때 융합 어려움을 야기할 수 있다.
도 17a 및 도 17b는 3D 파노라마에서의 포인트들을 예시하기 위해 사용될 수 있는 좌표 시스템의 예시적인 포인트들을 묘사한다. 도 17a 및 도 17b는, 본 개시에서 설명되는 파노라마 기법들에 의해 이미지화되는 포인트 (0, Y, Z)(1702)를 묘사한다. 포인트의 왼쪽 및 오른쪽 파노라마들로의 투영은, 하기의 식들 (1) 및 (2)에서 각각 나타내어지는 바와 같이, (-θ,φ) 및 (θ,φ)에 의해 표현될 수 있는데:
Figure pct00001
여기서 r(1704)은 파노라마 캡쳐의 반경이다.
도 17a는 포인트 (0, Y, Z)(1702)의 파노라마 이미징의 탑다운 뷰(top down view)를 묘사한다. 도 17b는 포인트 (0, Y, Z)(1702)의 파노라마 이미징의 측면도를 묘사한다. 도시되는 포인트는, 왼쪽 파노라마에서 (-θ,φ)로 투영되고, 오른쪽 파노라마에서 (θ,φ)로 투영된다. 이들 특정한 뷰들은 캡쳐된 대로이고 다른 평면으로 투영되지 않았다.
도 18은 도 17a 및 도 17b에서 묘사되는 포인트의 투영된 뷰를 나타낸다. 여기서, 포인트(1702)의 퍼스펙티브 뷰는, 도 18에서 1802에 의해 도시되는 바와 같이, y 축을 중심으로 각도 [α]의 회전을 가지고 수평으로 보도록 배향된다. 이 퍼스펙티브 투영이 광선 방향만을 고려하기 때문에, 파노라마 투영(1802)에서 포인트(1702)를 보는 광선들을 퍼스펙티브 카메라의 기준 프레임으로 변환하는 것에 의해, 포인트(1702)가 따라 투영되는 광선을 찾는 것이 가능하다. 예를 들면, 포인트(1702)는 아래의 표 1에 나타내어지는 다음의 광선들을 따라 투영된다:
Figure pct00002
퍼스펙티브 분할(perspective division)을 수행하면, 포인트 투영은, 하기의 표 2의 식들에 의해 나타내어지는 바와 같이, 결정될 수 있다:
Figure pct00003
Figure pct00004
(무한대로 멀리 떨어진 원래의 3D 포인트(1702)에 대응함)이면, 포인트(1702)는 일반적으로 퍼스펙티브 이미지들 둘 다에서 동일한 y 좌표로 투영될 것이고, 따라서 수직 시차는 존재하지 않을 것이라는 것을 알 수 있다. 그러나 θ가
Figure pct00005
으로부터 더 멀어짐에 따라(포인트가 카메라에 더 가깝게 이동함에 따라), 투영된 y 좌표들은 (포인트(1702)를 향해 보고 있는 퍼스펙티브 뷰에 대응하는
Figure pct00006
인 경우를 제외하면) 좌안 및 우안에 대해 상이할 것이다.
몇몇 구현예들에서, 왜곡은 특정한 방식으로 이미지들 및 장면들을 캡쳐함으로써 방지될 수 있다. 예를 들면, 카메라에 대한 니어 필드(near field) 내의(즉, 1 미터 미만 떨어진) 장면들을 캡쳐하는 것은 왜곡 엘리먼트들이 나타나는 것을 야기할 수 있다. 따라서, 1 미터 바깥쪽에서 장면들 또는 이미지들을 캡쳐하는 것이 왜곡들을 최소화하는 방식이다.
몇몇 구현예들에서, 왜곡은 깊이 정보를 사용하여 보정될 수 있다. 예를 들면, 장면에 대한 정확한 깊이 정보가 주어지면, 왜곡을 보정하는 것이 가능할 수 있다. 즉, 왜곡이 현재 뷰잉 방향에 의존할 수 있기 때문에, 렌더링 이전에 단일의 왜곡을 파노라마 이미지들에 적용하는 것은 가능하지 않을 수 있다. 대신, 깊이 정보가 파노라마들과 함께 전달되어 렌더링시 사용될 수 있다.
도 19는 본 개시에서 설명되는 파노라마 이미징 기법들을 사용하여 무지향성 스테레오 이미지에서 캡쳐되는 광선들을 예시한다. 이 예에서, 원(1900)을 중심으로 시계 방향을 가리키는 광선들(1902, 1904, 1906)은 좌안에 대한 광선들에 대응한다. 마찬가지로, 원(1900)을 중심으로 반시계 방향을 가리키는 광선들(1908, 1910, 1912)은 우안에 대한 광선들에 대응한다. 각각의 반시계 방향의 광선은, 원의 반대 쪽 상에 동일한 방향을 보는 대응하는 시계 방향 광선을 가질 수 있다. 이것은 단일의 이미지에서 표현되는 광선들의 방향들의 각각에 대해 왼쪽/오른쪽 뷰잉 광선을 제공할 수 있다.
본 개시에서 설명되는 파노라마들에 대한 광선들의 세트를 캡쳐하는 것은, 원(1900) 상에서 주위로 카메라(도시된 기호)를 이동시켜 원(1900)에 접선 방향으로 카메라를 정렬하는 것(예를 들면, 외측으로 장면에 면하게 그리고 원(1900)에 접하게 카메라 렌즈를 향하게 하는 것)을 포함할 수 있다. 좌안의 경우, 카메라는 오른쪽으로 향하게 될 수 있다(예를 들면, 광선(1904)이 중심 라인(1914a)의 오른쪽으로 캡쳐됨). 마찬가지로, 우안의 경우, 카메라는 왼쪽으로 향하게 될 수 있다(예를 들면, 광선(1910)은 중심 라인(1914a)의 왼쪽으로 캡쳐됨). 유사한 좌측 및 우측 영역이, 원(1900)의 반대 편 상에서 그리고 중심 라인(1914b) 아래에서 카메라들에 대한 중심 라인(1914b)을 사용하여, 정의될 수 있다. 무지향성 스테레오 이미지들을 생성하는 것은, 실제 카메라 캡쳐에 대해 또는 이전에 렌더링된 컴퓨터 그래픽(CG) 콘텐츠에 대해 작용한다. 예를 들면, 원(1900) 상의 실제 카메라들 사이의 포인트들의 캡쳐를 시뮬레이팅하기 위해, 뷰 보간이 캡쳐된 카메라 콘텐츠 및 렌더링된 CG 콘텐츠 둘 다와 함께 사용될 수 있다.
이미지들의 세트를 스티칭하는 것은, 파노라마 이미지를 저장하기 위한 구면/등장방형도법 투영을 사용하는 것을 포함할 수 있다. 일반적으로, 이 방법에는, 각각의 눈에 하나씩 두 개의 이미지들이 존재한다. 등장방형도법 이미지에서의 각각의 픽셀은 구체 상에서의 방향에 대응한다. 예를 들면, x 좌표는 경도에 대응할 수 있고 y 좌표는 위도에 대응할 수 있다. 모노 무지향성 이미지의 경우, 픽셀들에 대한 뷰잉 광선들의 원점들은 동일한 포인트일 수 있다. 그러나, 스테레오 이미지의 경우, 각각의 뷰잉 광선은 원(1900)의 상이한 포인트로부터 또한 유래할 수 있다. 그 다음, 파노라마 이미지는, 캡쳐된 이미지 내의 각각의 픽셀을 분석하고, 투영 모델로부터 이상적인 뷰잉 광선을 생성하고, 그리고 뷰잉 광선들이 이상적인 광선과 가장 가깝게 매치하는 캡쳐된 또는 보간된 이미지들로부터 픽셀들을 샘플링함으로써, 캡쳐된 이미지들로부터 스티칭될 수 있다. 다음으로, 광선 값은 함께 혼합되어 파노라마 픽셀 값을 생성할 수 있다.
몇몇 구현예들에서, 원(1900) 상에서 각도마다 적어도 하나의 이미지를 생성하기 위해, 광학적 흐름 기반의 뷰 보간이 사용될 수 있다. 몇몇 구현예들에서, 파노라마 이미지의 전체 칼럼은, 칼럼 내의 하나의 픽셀이 주어진 이미지로부터 샘플링되면, 그 칼럼 내의 픽셀들이 동일한 이미지로부터 샘플링될 것이라는 것이 결정될 수 있기 때문에, 한 번에 채워질 수 있다.
본 개시의 캡쳐 및 렌더링 양태들과 함께 사용되는 파노라마 포맷은, 좌안 및 우안에 의해 관찰되는 오브젝트의 이미지 좌표들이 수평 시프트만큼만 상이하다는 것을 보장할 수 있다. 이 수평 시프트는 시차로 알려져 있다. 이것은 등장방형도법 투영에 대해 마찬가지이며, 이 투영에서는, 오브젝트가 꽤 왜곡되어 나타날 수 있다.
이 왜곡의 크기는 카메라까지의 거리 및 뷰잉 방향에 의존할 수 있다. 왜곡은, 라인 벤딩 왜곡, 상이한 좌안 및 우안 왜곡을 포함할 수 있고, 몇몇 구현예들에서는, 시차는 더 이상 수평으로 보이지 않을 수 있다. 일반적으로, (구면 이미지 평면 상에서의) 1-2도의 수직 시차는, 인간 유저에 의해 편안하게 허용될 수 있다. 또한, 주변 시선(peripheral eye line) 내의 오브젝트에 대해서는 왜곡이 무시될 수 있다. 이것은 중앙 뷰잉 방향으로부터 약 30도 떨어진 것에 상관한다. 이들 결과를 바탕으로, 불편한 왜곡을 피하기 위해 오브젝트가 침투해서는 안되는 카메라 근처의 구역(zone)을 정의하는 제한들이 구성될 수 있다.
도 20은 3D 공간에서의 포인트들에 의해 야기되는 최대 수직 시차를 예시하는 그래프(2000)이다. 특히, 그래프(2000)는, 포인트들이 이미지의 중심으로부터 30도까지 투영한다라고 가정하는 경우, 3D 공간에서 포인트들에 의해 야기되는 최대 수직 시차를 도 단위로(in degrees) 묘사한다. 그래프(2000)는 카메라로부터의 수평 포지션(미터 단위)에 대한 카메라 중심으로부터의 수직 포지션(미터 단위)을 플롯한다. 이 도면에서, 카메라는 원점 [0, 0]에 위치된다. 그래프가 원점에서 멀어짐에 따라, 왜곡의 심각도는 적어지게 된다. 예를 들면, 그래프 상에서 약 제로로부터 1(2002)까지 그리고 제로로부터 마이너스 1(2004)(수직)까지, 왜곡은 최악이다. 이것은, (원점에 배치되는) 카메라 바로 위아래의 이미지들에 대응한다. 장면이 바깥쪽으로 움직임에 따라, 왜곡은 감소되고 카메라가 포인트들(2006 및 2008)에서 장면을 이미지화할 때까지 수직 시차의 절반만이 조우된다.
주변에서의 왜곡이 30도를 넘어 무시될 수 있다면, 뷰잉 방향이 30도의 폴(pole)들 이내인 모든 픽셀들은 제거될 수 있다. 주변 임계치가 15도인 것이 허용되면, 15도의 픽셀들이 제거될 수 있다. 제거된 픽셀들은, 예를 들면, 컬러 블록(예를 들면, 검정색, 흰색, 마젠타, 등등) 또는 정적 이미지(예를 들면, 로고, 알려진 경계, 텍스쳐화된 레이어, 등등)로 설정될 수 있고 제거된 픽셀들의 새로운 표현은 제거된 픽셀들 대신 파노라마 안으로 삽입될 수 있다. 몇몇 구현예들에서, 제거된 픽셀들은 블러 처리될(blurred) 수 있고, 제거된 픽셀들의 블러 처리된 표현은 제거된 픽셀들 대신 파노라마 안으로 삽입될 수 있다.
도 21은 스테레오 파노라마 이미지를 생성하는 프로세스(2100)의 하나의 실시형태를 나타내는 플로우차트이다. 도 21에서 도시되는 바와 같이, 블록 2102에서, 시스템(100)은 캡쳐된 이미지들에 기초하여 이미지들의 세트를 정의할 수 있다. 이미지들은, 사전 프로세싱된 이미지들, 사후 프로세싱된 이미지들, 가상 콘텐츠, 비디오, 이미지 프레임들, 이미지 프레임들의 일부분들, 픽셀들, 등등을 포함할 수 있다.
정의된 이미지들은, 예를 들면, 헤드 장착 디스플레이(HMD)의 사용을 통해 콘텐츠(예를 들면, VR 콘텐츠)에 액세스하는 유저에 의해 액세스될 수 있다. 시스템(100)은 유저에 의해 수행되는 특정한 액션을 결정할 수 있다. 예를 들면, 어떤 시점에서, 시스템(100)은, 블록 2104에서와 같이, VR HMD의 유저와 관련되는 뷰잉 방향을 수신할 수 있다. 마찬가지로, 유저가 자신의 뷰잉 방향을 변경하면, 시스템은, 블록 2106에서와 같이, 유저의 뷰잉 방향에서의 변화의 표시를 수신할 수 있다.
뷰잉 방향에서의 이러한 변화의 표시를 수신하는 것에 응답하여, 시스템(100)은, 블록 2108에서 나타내어지는 바와 같이, 이미지들의 세트의 일부분의 재투영을 구성할 수 있다. 재투영은, 변경된 뷰잉 방향 및 캡쳐된 이미지들과 관련되는 시야에 적어도 부분적으로 기초할 수 있다. 시야는 1도에서부터 180도까지 일 수 있고, 장면의 이미지들의 조각들 내지 장면의 전체 파노라마 이미지들을 고려할 수 있다. 구성된 재투영은 이미지들의 세트의 일부분을 구면 퍼스펙티브 투영으로부터 평면의 투영으로 변환하기 위해 사용될 수 있다. 몇몇 구현예들에서, 재투영은, 곡선 경로 주위에 배열되는 복수의 뷰포인트들로부터의 이미지들의 세트와 관련되는 뷰잉 광선들의 일부분을, 구면 퍼스펙티브 투영으로부터 평면의 퍼스펙티브 투영으로 리캐스트하는 것을 포함할 수 있다.
재투영은 구면 장면의 표면의 일부분을 평면의 장면으로 매핑하기 위한 어떤 또는 모든 단계들을 포함할 수 있다. 단계들은, 왜곡된 장면 콘텐츠를 수정하는 것, 이음부에서 또는 그 근처에서 장면 콘텐츠를 혼합하는 것(예를 들면, 스티칭하는 것), 톤 매핑, 및/또는 스케일링을 포함할 수 있다.
재투영의 완료시, 시스템(100)은, 블록 2110에서 도시되는 바와 같이, 재투영에 기초하여 업데이트된 뷰를 렌더링할 수 있다. 업데이트된 뷰는 왜곡을 보정하도록 그리고 유저에게 스테레오 시차를 제공하도록 구성될 수 있다. 블록 2112에서, 시스템(100)은 변경된 뷰잉 방향에 대응하는 스테레오 파노라마 장면을 포함하는 업데이트된 뷰를 제공할 수 있다. 예를 들면, 시스템(100)은 (재투영 이전에) 원래의 뷰 내의 왜곡을 보정하기 위해 업데이트된 뷰를 제공할 수 있고 VR 헤드 장착 디스플레이의 디스플레이에서 스테레오 시차 효과를 제공할 수 있다.
도 22는 스테레오 파노라마 이미지를 캡쳐하는 프로세스(2200)의 하나의 실시형태를 나타내는 플로우차트이다. 블록 2202에서, 시스템(100)은 이웃하는 카메라들의 적어도 하나의 세트로부터 수집되는 캡쳐된 비디오 스트림들에 기초하여 이미지들의 세트를 정의할 수 있다. 예를 들면, 시스템(100)은 (도 2 및 도 5에서 도시되는 바와 같이) 이웃하는 카메라들을 또는 (도 3 및 도 6에서 도시되는 바와 같이) 이웃하는 카메라들의 다수의 세트들을 사용할 수 있다. 몇몇 구현예들에서, 시스템(100)은 약 12 내지 약 16 개의 카메라들로부터 수집되는 캡쳐된 비디오 스트림들을 사용하여 이미지들의 세트를 정의할 수 있다. 몇몇 구현예들에서, 시스템(100)은, 부분적인 또는 모든 렌더링된 컴퓨터 그래픽스(CG) 콘텐츠를 사용하여 이미지들의 세트를 정의할 수 있다.
블록 2204에서, 시스템(100)은 이미지들의 세트 내의 광학적 흐름을 계산할 수 있다. 예를 들면, 이미지들의 세트 내의 광학적 흐름을 계산하는 것은, 상기에서 상세히 설명되는 바와 같이, 이미지들의 세트와 관련되는 픽셀들의 칼럼들의 일부분에 대한 이미지 강도 필드들을 분석하는 것 및 픽셀들의 칼럼들의 일부분에 대해 광학적 흐름 기법들을 수행하는 것을 포함할 수 있다.
몇몇 구현예들에서, 광학적 흐름은, (블록 2206에 의해 나타내어지는 바와 같이 그리고) 상기에서 상세히 설명되는 바와 같이, 이미지들의 세트의 일부가 아닌 이미지 프레임들을 보간하기 위해 사용될 수 있다. 그 다음, 시스템(100)은 광학적 흐름에 적어도 부분적으로 기초하여 이미지 프레임들 및 이미지들의 세트를 함께 스티칭할 수 있다. 블록 2208에서, 시스템(100)은 인터리빙된 프레임들 및 이미지들의 세트를 사용하여 VR 헤드 장착 디스플레이에서의 디스플레이를 위한 옴니스테레오 파노라마를 생성할 수 있다. 몇몇 구현예들에서, 시스템(100)은, 예를 들면 인터리빙을 수행하기 전에 이미지들의 세트의 일부분을 사전 스티칭하기 위해, 스테레오 이웃들의 적어도 하나의 세트와 관련되는 포즈 정보를 사용하여 이미지 스티칭을 수행할 수 있다.
도 23은 헤드 장착 디스플레이에서 파노라마 이미지들을 렌더링하는 프로세스(2300)의 하나의 실시형태를 나타내는 플로우차트이다. 도 23에서 도시되는 바와 같이, 블록 2302에서, 시스템(100)은 이미지들의 세트를 수신할 수 있다. 이미지들은 회전 가능한 카메라 리그로부터의 캡쳐된 콘텐츠를 묘사할 수 있다. 블록 2304에서, 시스템(100)은 이미지들 내에서 이미지 프레임들의 일부분들을 선택할 수 있다. 이미지 프레임들은 카메라 리그로 캡쳐된 콘텐츠를 포함할 수 있다. 시스템(100)은 캡쳐된 콘텐츠의 어떤 일부분을 사용할 수 있다. 예를 들면, 시스템(100)은, 카메라 리그의 베이스의 바깥쪽 에지로부터 약 1 반경 미터 내지 카메라 리그의 베이스의 바깥쪽 에지로부터 약 5 반경 미터의 거리에서 리그에 의해 캡쳐되는 콘텐츠를 포함하는 이미지 프레임들의 일부분을 선택할 수 있다. 몇몇 구현예들에서, 이 선택은 유저가 3D 콘텐츠를 얼마나 멀리서 인지할 수 있는지에 기초할 수 있다. 여기서, 카메라로부터 1 미터 내지 카메라로부터 약 5미터의 거리는, 유저가 3D 콘텐츠를 볼 수 있는 "구역"을 나타낼 수 있다. 그보다 짧으면, 3D 뷰는 왜곡될 수 있고, 그보다 길면, 유저는 3D 형상들을 확인할 수 없을 수 있다. 즉, 장면은 멀리서 단순히 2D로 보일 수 있다.
블록 2306에서, 이미지 프레임들 중 선택된 부분들은, 입체 파노라마 뷰를 생성하기 위해 함께 스티칭될 수 있다. 이 예에서, 스티칭은, 선택된 일부분들을 선택된 일부분들 내의 적어도 하나의 다른 이미지 프레임에 매칭시키는 것에 적어도 부분적으로 기초할 수 있다. 블록 2308에서, 파노라마 뷰는 HMD 디바이스와 같은 디스플레이에서 제공될 수 있다. 몇몇 구현예들에서, 스티칭은 카메라 리그의 직경에 적어도 부분적으로 기초하여 선택되는 스티칭 비를 사용하여 수행될 수 있다. 몇몇 구현예들에서, 스티칭은, 화합하는(cohesive) 장면 부분을 형성하기 위해, 제1 이미지 프레임의 픽셀들의 제1 칼럼을 제2 이미지 프레임의 픽셀들의 제2 칼럼에 매칭시키는 것, 및 픽셀들의 제2 칼럼을 제3 이미지 프레임의 픽셀들의 제3 칼럼에 매칭시키는 것의 다수의 단계들을 포함한다. 몇몇 구현예들에서, 이 방식으로 픽셀들의 많은 칼럼이 매칭 및 결합되어 프레임을 형성할 수 있고 이들 프레임들은 결합되어 이미지를 형성할 수 있다. 또한, 이들 이미지들은 결합되어 장면을 형성할 수 있다.
몇몇 구현예들에서, 방법(2300)은, 시스템(100)을 사용하여 이미지 프레임들의 일부분들의 일부가 아닌 추가적인 이미지 프레임들을 보간하는 보간 단계를 포함할 수 있다. 이러한 보간은, 예를 들면, 멀리 떨어져 있는 카메라들에 의해 캡쳐되는 이미지들 사이에서 흐름이 발생하는 것을 보장하도록 수행될 수 있다. 일단 추가적인 이미지 콘텐츠의 보간이 수행되면, 시스템(100)은 추가적인 이미지 프레임들을 이미지 프레임들의 일부분들 안으로 인터리빙하여 뷰에 대한 가상 콘텐츠를 생성할 수 있다. 이 가상 콘텐츠는 추가적인 이미지 프레임들과 인터리빙되는 이미지 프레임들의 일부분들로서 함께 스티칭될 수 있다. 그 결과는, 예를 들면, HMD에 대한 업데이트된 뷰로서 제공될 수 있다. 이 업데이트된 뷰는, 추가적인 이미지 프레임들 및 이미지 프레임들의 일부분들에 적어도 부분적으로 기초할 수 있다.
도 24는 이미지 경계들을 결정하는 프로세스(2400)의 하나의 실시형태를 나타내는 플로우차트이다. 블록 2402에서, 시스템(100)은 이웃하는 카메라들의 적어도 하나의 세트로부터 수집되는 캡쳐된 비디오 스트림들에 기초하여 이미지들의 세트를 정의할 수 있다. 예를 들면, 시스템(100)은 (도 2 및 도 5에서 도시되는 바와 같이) 이웃하는 카메라들의 세트를 또는 (도 3 및 도 6에서 도시되는 바와 같이) 이웃하는 카메라들의 다수의 세트들을 사용할 수 있다. 몇몇 구현예들에서, 시스템(100)은 약 12 내지 약 16 개의 카메라들로부터 수집되는 캡쳐된 비디오 스트림들을 사용하여 이미지들의 세트를 정의할 수 있다. 몇몇 구현예들에서, 시스템(100)은, 부분적인 또는 모든 렌더링된 컴퓨터 그래픽스(CG) 콘텐츠를 사용하여 이미지들의 세트를 정의할 수 있다. 몇몇 구현예들에서, 이미지들의 세트에 대응하는 비디오 스트림들은 인코딩된 비디오 콘텐츠를 포함한다. 몇몇 구현예들에서, 이미지들의 세트에 대응하는 비디오 스트림들은, 180도 시야를 가지고 구성되는 이웃하는 카메라들의 적어도 하나의 세트로 획득되는 콘텐츠를 포함할 수 있다.
블록 2404에서, 시스템(100)은, 이미지들의 세트의 일부분과 관련되는 뷰잉 광선들을, 원형 형상의 경로의 일부분에 배열되는 다수의 뷰포인트들로부터 하나의 뷰포인트로 리캐스트함으로써, 이미지들의 세트의 일부분을 퍼스펙티브 이미지 평면으로부터 구면 이미지 평면으로 투영할 수 있다. 예를 들면, 이미지들의 세트는 다수의 카메라들을 호스트할 수 있는 원형 카메라 리그에 의해 캡쳐될 수 있다. 각각의 카메라는, 뷰포인트와 관련될 수 있고 이들 뷰포인트들은 장면에서 카메라 리그로부터 바깥쪽으로 지향된다. 특히, 단일의 포인트로부터 유래하는 대신, 뷰잉 광선들은 리그의 각각의 카메라로부터 유래한다. 시스템(100)은 경로 상의 다양한 뷰포인트들로부터의 광선들을 단일의 뷰포인트로 리캐스트할 수 있다. 예를 들면, 시스템(100)은 카메라들에 의해 캡쳐되는 장면의 각각의 뷰포인트를 분석할 수 있고 단일의 보간된 뷰포인트로부터의 장면을 나타내는 장면(또는 장면들의 세트)을 결정하기 위해 유사점들 및 차이점들을 계산할 수 있다.
블록 2406에서, 시스템(100)은 단일의 뷰포인트에 대응하는 주변 경계를 결정하고 주변 경계 외부의 픽셀들을 제거하는 것에 의해 업데이트된 이미지들을 생성할 수 있다. 주변 경계는 왜곡된 이미지 콘텐츠로부터 명확하고 간결한 이미지 콘텐츠를 묘사할 수 있다. 예를 들면, 주변 경계는 왜곡을 갖는 픽셀로부터 왜곡이 없는 픽셀들의 윤곽을 나타낼 수 있다. 몇몇 구현예들에서, 주변 경계는 유저의 전형적인 주변 뷰 영역 외부의 뷰와 관련될 수 있다. 이러한 픽셀들을 제거하는 것은, 왜곡된 이미지 콘텐츠가 유저에게 불필요하게 제공되지 않는 것을 보장할 수 있다. 픽셀들을 제거하는 것은, 상기에서 상세히 논의되는 바와 같이, 픽셀들을, 컬러 블록, 정적 이미지, 또는 픽셀들의 블러 처리된 표현으로 대체하는 것을 포함할 수 있다. 몇몇 구현예들에서, 주변 경계는 캡쳐된 이미지들과 관련되는 하나 이상의 카메라들에 대해 약 150도의 시야로 정의된다. 몇몇 구현예들에서, 주변 경계는 캡쳐된 이미지들과 관련되는 하나 이상의 카메라들에 대해 약 120도의 시야로 정의된다. 몇몇 구현예들에서, 주변 경계는 캡쳐된 이미지들과 관련되는 카메라에 대한 뷰잉 평면 위쪽으로 약 30도에 대응하는 구 형상의 일부분이고, 픽셀들을 제거하는 것은 구면 장면의 상부 부분을 블랙 아웃 또는 제거하는 것을 포함한다. 몇몇 구현예들에서, 주변 경계는 캡쳐된 이미지들과 관련되는 카메라에 대한 뷰잉 평면 아래쪽으로 약 30도에 대응하는 구 형상의 일부분이고, 픽셀들을 제거하는 것은 구면 장면의 상부 부분을 블랙 아웃 또는 제거하는 것을 포함한다. 블록 2408에서, 시스템(100)은 주변 경계의 바운드(bound)들 내에서의 디스플레이를 위해 업데이트된 이미지들을 제공할 수 있다.
몇몇 구현예들에서, 방법(2400)은 또한, 이미지들의 세트 내의 적어도 두 개의 프레임들을 함께 스티칭하는 것을 포함할 수 있다. 스티칭은, 프레임들로부터 픽셀들의 칼럼들을 샘플링하는 것 및 픽셀들의 적어도 두 개의 샘플링된 칼럼들 사이에, 프레임들에서 캡쳐되지 않는 픽셀들의 추가적인 칼럼들을 보간하는 것의 단계를 포함할 수 있다. 또한, 스티칭은, 샘플링된 칼럼들과 추가적인 칼럼들을 함께 혼합하여 픽셀 값을 생성하는 단계를 포함할 수 있다. 몇몇 구현예들에서, 혼합은, 캡쳐된 이미지들을 획득하기 위해 사용되는 원형 카메라 리그의 직경에 적어도 부분적으로 기초하여 선택되는 스티칭 비를 사용하여 수행될 수 있다. 스티칭은 또한, 예를 들면, HMD에서의 디스플레이를 위해 제공될 수 있는 좌측 장면 및 우측 장면 안으로 픽셀 값을 구성함으로써 삼차원 입체 파노라마를 생성하는 단계를 포함할 수 있다.
도 25는 비디오 콘텐츠를 생성하는 프로세스(2500)의 하나의 실시형태를 나타내는 플로우차트이다. 블록 2502에서, 시스템(100)은 이웃하는 카메라들의 적어도 하나의 세트로부터 수집되는 캡쳐된 비디오 스트림들에 기초하여 이미지들의 세트를 정의할 수 있다. 예를 들면, 시스템(100)은 (도 2에서 도시되는 바와 같이) 스테레오 쌍을 또는 (예를 들면, 도 3 및 도 6에서 도시되는 바와 같이) 이웃하는 카메라들의 다수의 세트들을 사용할 수 있다. 몇몇 구현예들에서, 시스템(100)은 약 12 내지 약 16 개의 카메라들로부터 수집되는 캡쳐된 비디오 스트림들을 사용하여 이미지들의 세트를 정의할 수 있다. 몇몇 구현예들에서, 시스템(100)은, 부분적인 또는 모든 렌더링된 컴퓨터 그래픽스(CG) 콘텐츠를 사용하여 이미지들의 세트를 정의할 수 있다.
블록 2504에서, 시스템(100)은 이미지들의 세트를 등장방형도법 비디오 스트림으로 스티칭할 수 있다. 예를 들면, 스티칭은 좌측 방향의 카메라 캡쳐 각도와 관련되는 이미지들을, 우측 방향으로 향하는 카메라 캡쳐 각도와 관련되는 이미지들과 결합하는 것을 포함할 수 있다.
블록 2506에서, 시스템은 제1 뷰 및 제2 뷰에 대해 등장방형도법으로부터 퍼스펙티브로 비디오 스트림을 투영함으로써 재생을 위해 비디오 스트림을 렌더링할 수 있다. 제1 뷰는 헤드 장착 디스플레이의 좌안 뷰에 대응할 수 있고, 제2 뷰는 헤드 장착 디스플레이의 우안 뷰에 대응할 수 있다.
블록 2508에서, 시스템은, 왜곡이 미리 정의된 임계치를 초과하는 경계를 결정할 수 있다. 미리 정의된 임계치는, 시차의 레벨, 불일치의 레벨, 및/또는 이미지들의 특정한 세트 내에서 허용 가능한 오차의 레벨을 제공할 수 있다. 왜곡은, 예를 들면, 비디오 스트림을 하나의 평면 또는 뷰로부터 다른 평면 또는 뷰로 투영할 때 투영 구성에 적어도 부분적으로 기초할 수 있다.
블록 2510에서, 시스템은, 상기에서 상세히 논의되는 바와 같이, 경계에 있는 또는 그 경계를 넘어서는 이미지들의 세트 내의 이미지 콘텐츠를 제거함으로써 업데이트된 비디오 스트림을 생성할 수 있다. 비디오 스트림의 업데이트시, 업데이트된 스트림은, 예를 들면, HMD의 유저에게 디스플레이를 위해 제공될 수 있다. 일반적으로, 본 개시의 전체에 걸쳐 설명되는 시스템 및 방법은, HMD 디바이스의 유저에게 3D 입체 뷰를 제공하기 위해, 이미지들을 캡쳐하도록, 캡쳐된 이미지들로부터 왜곡을 제거하도록, 그리고 이미지들을 렌더링하도록 기능할 수 있다.
도 26은, 여기에서 설명되는 기법들과 함께 사용될 수 있는 일반적인 컴퓨터 디바이스(2600) 및 일반적인 모바일 컴퓨터 디바이스(2650)의 예를 도시한다. 컴퓨팅 디바이스(2600)는, 랩탑들, 데스크탑들, 워크스테이션들, 개인 휴대형 정보 단말들, 서버들, 블레이드 서버들, 메인프레임들, 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내도록 의도된다. 컴퓨팅 디바이스(2650)는, 개인 휴대형 정보 단말들, 셀룰러 전화기들, 스마트 폰들, 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태들의 모바일 디바이스들을 나타내도록 의도된다. 여기에서 도시되는 컴포넌트들, 그들의 연결들과 관계들, 및 그들의 기능들은, 단지 예시적인 것으로 의도되며, 본 문서에서 설명되는 및/또는 청구되는 발명들의 구현예를 제한하도록 의도되지는 않는다.
컴퓨팅 디바이스(2600)는, 프로세서(2602), 메모리(2604), 스토리지 디바이스(2606), 메모리(2604) 및 고속 확장 포트들(2610)에 연결되는 고속 인터페이스(2608), 및 저속 버스(2614) 및 스토리지 디바이스(2606)에 연결되는 저속 인터페이스(2612)를 포함한다. 컴포넌트들(2602, 2604, 2606, 2608, 2610 및 2612)의 각각은 다양한 버스들을 사용하여 상호 연결되고, 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(2602)는, 외부 입/출력 디바이스, 예컨대 고속 인터페이스(2608)에 커플링되는 디스플레이(2616) 상에 GUI에 대한 그래픽 정보를 디스플레이 하기 위해 메모리(2604)에 또는 스토리지 디바이스(2606) 상에 저장되는 명령어들을 비롯한, 컴퓨팅 디바이스(2600) 내에서 실행하기 위한 명령어들을 프로세싱할 수 있다. 다른 구현예들에서, 다수의 프로세서들 및/또는 다수의 버스들이, 다수의 메모리들 및 다수의 타입들의 메모리와 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(2600)이 연결될 수 있는데, 각각의 디바이스는 (예를 들면, 서버 뱅크, 블레이드 서버들의 그룹, 또는 멀티프로세서 시스템으로서) 필요한 동작들의 일부분을 제공한다.
메모리(2604)는 컴퓨팅 디바이스(2600) 내에서 정보를 저장한다. 하나의 구현예에서, 메모리(2604)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현예에서, 메모리(2604)는 불휘발성 메모리 유닛 또는 유닛들이다. 메모리(2604)는 또한 다른 형태의 컴퓨터 판독 가능 매체, 예컨대 자기 또는 광학 디스크일 수 있다.
스토리지 디바이스(2606)는 컴퓨팅 디바이스(2600)에 대한 대용량 스토리지를 제공할 수 있다. 하나의 구현예에서, 스토리지 디바이스(2606)는, 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스, 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 스토리지 영역 네트워크 또는 다른 구성들의 디바이스들을 비롯한 디바이스들의 어레이와 같은 컴퓨터 판독 가능 매체일 수 있거나 또는 그 컴퓨터 판독 가능 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에서 유형적으로(tangibly) 구체화될 수 있다. 컴퓨터 프로그램 제품은 또한, 실행시, 상기에서 설명되는 것들과 같은 하나 이상의 방법들을 수행하는 명령어들을 포함할 수 있다. 정보 캐리어는, 메모리(2604), 스토리지 디바이스(2606), 또는 프로세서(2602) 상의 메모리와 같은 컴퓨터 또는 머신 판독 가능 매체이다.
고속 컨트롤러(2608)는, 컴퓨팅 디바이스(2600)에 대한 대역폭 집약적 동작(bandwidth-intensive operation)들을 관리하는 반면, 저속 컨트롤러(2612)는 낮은 대역폭 집약적 동작들을 관리한다. 기능들의 이러한 할당은 단지 예시적인 것이다. 하나의 구현예에서, 고속 컨트롤러(2608)는, 메모리(2604)에, (예를 들면, 그래픽 프로세서 또는 가속기를 통해) 디스플레이(2616)에, 그리고 다양한 확장 카드들(도시되지 않음)을 받아들일 수 있는 고속 확장 포트들(2610)에 커플링된다. 구현예에서, 저속 컨트롤러(2612)는 스토리지 디바이스(2606) 및 저속 확장 포트(2614)에 커플링된다. 다양한 통신 포트들(예를 들면, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트는 하나 이상의 입/출력 디바이스들, 예컨대 키보드, 포인팅 디바이스, 스캐너에, 또는 예를 들면, 네트워크 어댑터를 통해 네트워킹 디바이스 예컨대 스위치 또는 라우터에 커플링될 수 있다.
컴퓨팅 디바이스(2600)는, 도면에서 도시되는 바와 같이, 다수의 상이한 형태들로 구현될 수 있다. 예를 들면, 그것은 표준 서버(2620)로서, 또는 이러한 서버들의 그룹에서 다수 회 구현될 수 있다. 그것은 또한, 랙 서버 시스템(2624)의 일부로서 구현될 수 있다. 또한, 그것은 랩톱 컴퓨터(2622)와 같은 퍼스널 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(2600)로부터의 컴포넌트들은, 디바이스(2650)와 같은 모바일 디바이스(도시되지 않음)의 다른 컴포넌트와 결합될 수 있다. 이러한 디바이스들의 각각은 컴퓨팅 디바이스들(2600, 2650) 중 하나 이상을 포함할 수 있으며, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(2600, 2650)로 구성될 수 있다.
컴퓨팅 디바이스(2650)는, 다른 컴포넌트들 중에서도, 프로세서(2652), 메모리(2664), 디스플레이(2654)와 같은 입/출력 디바이스, 통신 인터페이스(2666), 및 트랜스시버(2668)를 포함한다. 디바이스(2650)는 또한, 추가 스토리지를 제공하기 위해, 마이크로드라이브 또는 다른 디바이스와 같은 스토리지 디바이스를 구비할 수 있다. 컴포넌트들(2650, 2652, 2664, 2654, 2666, 및 2668)의 각각은 다양한 버스들을 사용하여 상호 연결되고, 컴포넌트들 중 몇몇은 공통 마더 보드 상에 또는 적절한 다른 방식으로 장착될 수 있다.
프로세서(2652)는 메모리(2664)에 저장되는 명령어들을 비롯한, 컴퓨팅 디바이스(2650) 내의 명령어들을 실행할 수 있다. 프로세서는, 개별 및 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋들로서 구현될 수 있다. 프로세서는, 예를 들면, 유저 인터페이스들, 디바이스(2650)에 의해 실행되는 애플리케이션들, 및 디바이스(2650)에 의한 무선 통신의 제어와 같은, 디바이스(2650)의 다른 컴포넌트들의 조정을 제공할 수 있다.
프로세서(2652)는 제어 인터페이스(2658) 및 디스플레이(2654)에 커플링되는 디스플레이 인터페이스(2656)를 통해 유저와 통신할 수 있다. 디스플레이(2654)는, 예를 들면, TFT LCD(Thin-Film-Transistor Liquid Crystal Display; 박막 트랜지스터 액정 디스플레이) 또는 OLED(Organic Light Emitting Diode; 유기 발광 다이오드) 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(2656)는, 유저에게 그래픽 및 다른 정보를 제시하기 위해 디스플레이(2654)를 구동하기 위한 적절한 회로부(circuitry)를 포함할 수 있다. 제어 인터페이스(2658)는 유저로부터 커맨드를 수신하고 프로세서(2652)에 제출하기 위해 그들을 변환할 수 있다. 또한, 다른 디바이스들과의 디바이스(2650)의 근거리 통신을 가능하게 하기 위해, 프로세서(2652)와 통신하는 외부 인터페이스(2662)가 제공될 수 있다. 외부 인터페이스(2662)는, 예를 들면, 몇몇 구현예들에서 유선 통신을, 또는 다른 구현예들에서 무선 통신을 제공할 수 있고, 다수의 인터페이스들이 또한 사용될 수 있다.
메모리(2664)는 컴퓨팅 디바이스(2650) 내에서 정보를 저장한다. 메모리(2664)는, 컴퓨터 판독 가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 불휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로서 구현될 수 있다. 예를 들면, SIMM(Single In Line Memory Module; 단일의 인라인 메모리 모듈) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(2672)를 통해, 확장 메모리(2674)가 디바이스(2650)에 또한 제공 및 연결될 수 있다. 이러한 확장 메모리(2674)는 디바이스(2650)에 여분의 저장 공간을 제공할 수 있거나, 또는 디바이스(2650)에 대한 애플리케이션들 또는 다른 정보를 또한 저장할 수 있다. 구체적으로, 확장 메모리(2674)는 상기에서 설명되는 프로세스들을 수행 또는 보충하기 위한 명령어들을 포함할 수 있고, 보안 정보를 또한 포함할 수 있다. 따라서, 예를 들면, 확장 메모리(2674)는 디바이스(2650)에 대한 보안 모듈로서 제공될 수 있고, 디바이스(2650)의 안전한 사용을 허용하는 명령어들로 프로그래밍될 수 있다. 또한, SIMM 카드 상에 식별용 정보를 해킹 불가능한 방식으로 배치하는 것과 같은 보안 애플리케이션들이, 추가적인 정보와 함께, SIMM 카드를 통해 제공될 수 있다.
메모리는, 예를 들면, 하기에서 논의되는 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 하나의 구현예에서, 컴퓨터 프로그램 제품은 정보 캐리어에서 유형적으로 구체화될 수 있다. 컴퓨터 프로그램 제품은, 실행시, 상기에서 설명되는 것들과 같은 하나 이상의 방법들을 수행하는 명령어들을 포함한다. 정보 캐리어는, 예를 들면, 트랜스시버(2668) 또는 외부 인터페이스(2662)를 통해 수신될 수 있는 컴퓨터 또는 머신 판독 가능 매체, 예컨대 메모리(2664), 확장 메모리(2674) 또는 프로세서(2652) 상의 메모리이다.
디바이스(2650)는 통신 인터페이스(2666)를 통해 무선으로 통신할 수 있는데, 통신 인터페이스(2666)는 필요한 곳에서 디지털 신호 프로세싱 회로부를 포함할 수 있다. 통신 인터페이스(2666)는, 다른 것들 중에서도, GSM 음성 통화들, SMS, EMS, 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000, 또는 GPRS와 같은 다양한 모드들 또는 프로토콜들 하에서 통신들을 제공할 수 있다. 이러한 통신은, 예를 들면, 무선 주파수 트랜스시버(2668)를 통해 발생할 수 있다. 또한, 블루투스, 와이파이, 또는 다른 이러한 트랜스시버(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 발생할 수 있다. 또한, GPS(Global Positioning System; 전지구 위치 결정 시스템) 수신기 모듈(2670)이, 디바이스(2650) 상에서 실행하는 애플리케이션에 의해 적절하게 사용될 수 있는 추가적인 네비게이션 및 위치 관련 무선 데이터를 디바이스(2650)로 제공할 수 있다.
디바이스(2650)는 또한, 유저로부터 발화된 정보(spoken information)를 수신하고 그것을 사용 가능한 디지털 정보로 변환할 수 있는 오디오 코덱(2660)을 사용하여 가청적으로(audibly) 통신할 수 있다. 오디오 코덱(2660)은, 마찬가지로, 예컨대, 예를 들면, 디바이스(2650)의 핸드셋 내의 스피커를 통해, 유저에 대한 가청 사운드를 생성할 수 있다. 이러한 사운드는 음성 전화 통화들로부터의 사운드를 포함할 수 있고, 녹음된 사운드(예를 들면, 음성 메시지들, 음악 파일들, 등등)를 포함할 수 있으며, 또한 디바이스(2650) 상에서 동작하는 애플리케이션들에 의해 생성되는 사운드를 포함할 수 있다.
컴퓨팅 디바이스(2650)는, 도면에서 도시되는 바와 같이, 다수의 상이한 형태들로 구현될 수 있다. 예를 들면, 그것은 셀룰러 전화기(2680)로서 구현될 수 있다. 그것은 또한, 스마트 폰(2682), 개인 휴대형 정보 단말, 또는 다른 유사한 모바일 디바이스의 일부로서 구현될 수 있다.
여기서 설명되는 시스템들 및 기법들의 다양한 구현예들은, 디지털 전자 회로부, 집적 회로부, 특별히 설계된 ASIC(application specific integrated circuit; 주문형 집적 회로)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은, 스토리지 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하도록, 그리고 이들로 데이터 및 명령어들을 송신하도록 커플링되는, 특수 또는 일반 목적일 수 있는 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템 상에서 실행 가능한 및/또는 해석 가능한(interpretable) 하나 이상의 컴퓨터 프로그램들에서의 구현예를 포함할 수 있다.
이들 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드로도 또한 알려짐)은 프로그래머블 프로세서에 대한 머신 명령어들을 포함하고, 하이 레벨의 절차적 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블리/기계어로 구현될 수 있다. 본원에서 사용되는 바와 같이, 용어들 "머신 판독 가능 매체", "컴퓨터 판독 가능 매체"는, 머신 명령어들을 머신 판독 가능 신호로서 수신하는 머신 판독 가능 매체를 비롯한, 머신 명령어들 및/또는 데이터를 프로그래머블 프로세서로 제공하기 위해 사용되는 어떤 컴퓨터 프로그램 제품, 장치 및/또는 디바이스(예를 들면, 자기 디스크들, 광 디스크들, 메모리, 프로그래머블 로직 디바이스(Programmable Logic Device; PLD))를 지칭한다. 용어 "머신 판독 가능 신호"는, 머신 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하기 위해 사용되는 어떤 신호를 지칭한다.
유저와의 상호 작용을 제공하기 위해, 여기서 설명되는 시스템들 및 기법들은, 정보를 유저에게 디스플레이하기 위한 디스플레이 디바이스(예를 들면, CRT(cathode ray tube; 음극선관) 또는 LCD(liquid crystal display; 액정 디스플레이) 모니터) 및 유저가 컴퓨터로 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스(예를 들면, 마우스 또는 트랙볼)를 구비하는 컴퓨터 상에서 구현될 수 있다. 유저와의 상호 작용을 제공하기 위해 다른 종류들의 디바이스가 또한 사용될 수 있다: 예를 들면, 유저에게 제공되는 피드백은 어떤 형태의 지각적 피드백(sensory feedback)(예를 들면, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백)일 수 있고; 유저로부터의 입력은 음향, 음성 또는, 촉각 입력을 비롯한, 어떤 형태로 수신될 수 있다.
여기서 설명되는 시스템들 및 기법들은, (예를 들면, 데이터 서버로서) 백 엔드 컴포넌트를 포함하는, 또는 미들웨어 컴포넌트(예를 들면, 애플리케이션 서버)를 포함하는, 또는 프론트 엔드 컴포넌트(예를 들면, 유저가 여기서 설명되는 시스템들 및 기법들의 구현예와 상호 작용할 수 있게 하는 그래픽 유저 인터페이스 또는 웹 브라우저를 구비하는 클라이언트 컴퓨터), 또는 이러한 백 엔드, 미들웨어, 또는 프론트 엔드 컴포넌트들의 어떤 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은, 어떤 형태 또는 매체의 디지털 데이터 통신(예를 들면, 통신 네트워크)에 의해 상호 연결될 수 있다. 통신 네트워크들의 예들은 근거리 통신망(local area network; "LAN"), 광역 통신망(wide area network; "WAN"), 및 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 멀리 떨어져 있으며 통상적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터들 상에서 실행하는 그리고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들 때문에 발생한다.
다수의 실시형태들이 설명되었다. 그럼에도 불구하고, 본 명세서의 사상과 범위를 벗어나지 않으면서 다양한 수정들이 이루어질 수 있다는 것이 이해될 것이다. 예를 들면, 하기의 각각의 청구항 및 상기에서 설명되는 이러한 청구항들의 예들은, 추가의 예시적인 실시형태들을 생성하도록 어떤 조합으로 결합될 수 있다.
또한, 도면들에서 묘사되는 논리 흐름들은, 바람직한 결과들을 달성하기 위해, 도시되는 특정한 순서, 또는 순차적 순서를 요구하지 않는다. 또한, 설명된 흐름들로부터 다른 단계들이 제공될 수 있거나, 또는 단계들이 제거될 수 있으며, 다른 컴포넌트들이 설명된 시스템들에 추가될 수 있거나, 또는 설명된 시스템들로부터 제거될 수 있다. 따라서, 다른 실시형태들은 하기의 청구항들의 범위 내에 있다.

Claims (19)

  1. 컴퓨터로 구현되는 방법으로서,
    컴퓨팅 디바이스에서, 캡쳐된 이미지들에 기초하여 이미지들의 세트를 정의하는 단계;
    상기 컴퓨팅 디바이스에서, 이미지들의 상기 세트의 일부분과 관련된 복수의 뷰잉 광선(viewing ray)들을 곡선 경로 주위에 배열되는 복수의 뷰포인트(viewpoint)들로부터 한 뷰포인트로 리캐스트함(recasting)으로써 상기 이미지들의 세트의 일부분을 평면의 퍼스펙티브 이미지 평면(planar perspective image plane)으로부터 구면 이미지 평면(spherical image plane) 상으로 투영하는 단계;
    상기 컴퓨팅 디바이스에서, 상기 뷰포인트에 대응하는 주변 경계를 결정하고 상기 주변 경계 밖에 있는 픽셀들을 제거하는 것에 의해 업데이트된 이미지들을 생성하는 단계; 및
    상기 주변 경계(periphery boundary)의 바운드(bound)들 내에서 상기 업데이트된 이미지들을 디스플레이하기 위해 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  2. 청구항 1에 있어서,
    상기 이미지들의 세트는 인코딩된 비디오 콘텐츠를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 캡쳐된 이미지들은 180도 시야(field of view)로 구성되는 적어도 하나의 스테레오 카메라 쌍으로 획득되는 콘텐츠를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  4. 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
    상기 주변 경계는 상기 캡쳐된 이미지들과 관련된 카메라에 대해 약 120도의 시야로 정의되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  5. 청구항 1 내지 청구항 4 중 어느 한 항에 있어서,
    상기 주변 경계는 상기 캡쳐된 이미지들과 관련된 카메라에 대해 약 150도의 시야로 정의되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  6. 청구항 1 내지 청구항 5 중 어느 한 항에 있어서,
    상기 주변 경계는, 상기 캡쳐된 이미지들과 관련된 카메라에 대한 뷰잉 평면 위로 약 30도에 대응하는 구 형상의 일부분인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  7. 청구항 1 내지 청구항 6 중 어느 한 항에 있어서,
    상기 주변 경계는, 상기 캡쳐된 이미지들과 관련된 카메라에 대한 뷰잉 평면 아래로 약 30도에 대응하는 구 형상의 일부분인 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  8. 청구항 1 내지 청구항 7 중 어느 한 항에 있어서,
    상기 주변 경계 밖의 픽셀들을 제거하는 단계는, 상기 픽셀들을, 컬러 블록, 정적 이미지, 또는 상기 픽셀들의 블러 처리된 표현(blurred representation)으로 대체하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  9. 청구항 1 내지 청구항 8 중 어느 한 항에 있어서,
    상기 이미지들의 세트 내의 적어도 두 개의 프레임들을 함께 스티칭(stitching)하는 단계를 더 포함하고, 상기 스티칭하는 단계는:
    상기 프레임들로부터 픽셀들의 복수의 칼럼들을 샘플링하고, 픽셀들의 적어도 두 개의 샘플링된 칼럼들 사이에서, 상기 프레임들에서 캡쳐되지 않는 픽셀들의 추가적인 칼럼들을 보간하고;
    상기 컴퓨팅 디바이스에서, 상기 샘플링된 칼럼들 및 상기 추가적인 칼럼들을 함께 혼합하여 픽셀 값을 생성하고;
    상기 컴퓨팅 디바이스에서, 상기 픽셀 값을 좌측 장면과 우측 장면으로 구성함으로써 의해 비디오 콘텐츠를 포함하는 삼차원 입체(stereoscopic) 파노라마를 생성하고; 및
    헤드 장착 디스플레이에 상기 파노라마를 제공함으로써 이루어지는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  10. 청구항 9에 있어서,
    상기 혼합은, 상기 캡쳐된 이미지들을 획득하기 위해 사용되는 원형 카메라 리그(circular camera rig)의 직경에 적어도 부분적으로 기초하여 선택되는 스티칭 비(ratio)를 사용하여 수행되는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  11. 스테레오 파노라마들을 생성하도록 구성되는 이미징 시스템으로서,
    정의된 이미지들의 세트로부터 보간된 이미지들을 제공하고 그리고 상기 보간된 이미지들을 상기 이미지들의 세트 안으로 인터리빙하여 스테레오 파노라마에 대한 추가적인 가상 콘텐츠를 생성하도록 구성되는 보간 모듈;
    상기 이미지들의 세트를 평면의 투영(planar projection)으로부터 구면 투영(spherical projection)으로 투영하도록 구성되는 투영 모듈;
    비원형 카메라 궤적을 보상하기 위해 상기 이미지들의 세트를 조정하도록 구성되는 캡쳐 보정 모듈;
    스티칭 모듈 - 상기 스티칭 모듈은:
    상기 이미지들의 세트로부터 그리고 상기 보간된 이미지들로부터 이미지들의 일부분들을 샘플링하도록;
    상기 이미지들의 일부분들을 함께 혼합하여 적어도 하나의 픽셀 값을 생성하도록, 그리고
    상기 픽셀 값을 좌측 장면과 우측 장면으로 구성하는 것에 의해 비디오 콘텐츠를 포함하는 삼차원 입체 파노라마를 생성하도록
    구성됨 - ; 및
    왜곡을 제거하기 위해 상기 이미지들의 세트에 대한 광학적 흐름을 추정하도록 구성되는 이미지 보정 모듈을 포함하는 것을 특징으로 하는 이미징 시스템.
  12. 청구항 11에 있어서,
    상기 이미지들의 일부분들을 함께 혼합하는 것은:
    상기 이미지들의 일부분들로부터 적어도 하나의 이미지를 생성하기 위해 상기 광학적 흐름을 사용하여 상기 이미지들의 일부분들을 함께 스티칭하는 것을 포함하고; 그리고
    상기 적어도 하나의 픽셀 값을 생성하는 것은, 상기 이미지들의 일부분들과 상기 적어도 하나의 이미지 사이의 차이를 나타내는 값을 계산하는 것을 포함하는 것을 특징으로 하는 이미징 시스템.
  13. 청구항 11 또는 청구항 12에 있어서,
    상기 캡쳐 보정 모듈은 또한, 카메라 분리가 약 30도보다 더 큰 다수의 카메라들로 캡쳐되는 콘텐츠를 보상하게끔 상기 이미지들의 세트를 조정하도록 구성되는 것을 특징으로 하는 이미징 시스템.
  14. 청구항 11 내지 청구항 13 중 어느 한 항에 있어서,
    상기 캡쳐 보정 모듈은 또한, 카메라 포즈 오차들로 인한 카메라 오정렬을 보상하게끔 상기 이미지들의 세트를 조정하도록 구성되는 것을 특징으로 하는 이미징 시스템.
  15. 청구항 11 내지 청구항 14 중 어느 한 항에 있어서,
    광학적 흐름을 추정하는 것은, 상기 이미지들의 세트의 일부분을 교정하고, 상기 일부분을 사용하여, 상기 일부분과 관련된 추정된 카메라 포즈를 결정하고, 그리고 상기 일부분 내의 이미지들 사이의 흐름을 결정함으로써 상기 이미지들의 세트를 조정하는 것을 포함하는 것을 특징으로 하는 이미징 시스템.
  16. 청구항 15에 있어서,
    상기 흐름을 결정하는 것은:
    상기 일부분 내의 상기 이미지들의 적어도 두 개의 픽셀들에 대해, 크기 및 방위(orientation)를 결정하는 것; 및
    상기 적어도 두 개의 픽셀들의 각각에 대한 상기 크기 및 방위를 비교하는 것을 포함하는 것을 특징으로 하는 이미징 시스템.
  17. 컴퓨터로 구현되는 방법으로서,
    컴퓨팅 디바이스에서, 캡쳐된 이미지들에 기초하여 이미지들의 세트를 정의하는 단계;
    상기 컴퓨팅 디바이스에서, 상기 이미지들의 세트를 등장방형도법(equirectangular) 비디오 스트림으로 스티칭하는 단계;
    상기 컴퓨팅 디바이스에서, 상기 비디오 스트림을 제1 뷰 및 제2 뷰에 대해 평면의 퍼스펙티브로부터 등장방형도법 퍼스펙티브로 투영함으로써 재생을 위해 상기 비디오 스트림을 렌더링하는 단계;
    상기 컴퓨팅 디바이스에서, 왜곡 - 상기 왜곡은 상기 비디오 스트림을 투영하는 것에 적어도 부분적으로 기초함 - 이 미리 정의된 임계치를 초과하는 경계를 결정하는 단계;
    상기 컴퓨팅 디바이스에서, 상기 경계에 그리고 상기 경계에 의해 정의되는 내부 밖에 있는 상기 이미지들의 세트 내의 이미지 콘텐츠를 제거하는 것에 의해 업데이트된 비디오 스트림을 생성하는 단계; 및
    상기 업데이트된 비디오 스트림을 디스플레이하기 위해 제공하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  18. 청구항 17에 있어서,
    상기 이미지들의 세트를 등장방형도법 비디오 스트림으로 스티칭하는 단계는, 좌측 방향의 카메라 캡쳐 각도와 관련된 이미지들을, 우측 방향으로 향하는 카메라 캡쳐 각도와 관련된 이미지들과 결합하는 단계를 포함하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
  19. 청구항 17항 또는 청구항 18항에 있어서,
    상기 제1 뷰는 헤드 장착 디스플레이의 좌안 뷰에 대응하고 상기 제2 뷰는 상기 헤드 장착 디스플레이의 우안 뷰에 대응하는 것을 특징으로 하는 컴퓨터로 구현되는 방법.
KR1020177027557A 2015-05-27 2016-05-25 파노라마 가상 현실 콘텐츠의 옴니스테레오 캡쳐 및 렌더링 KR101991080B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/723,178 US9877016B2 (en) 2015-05-27 2015-05-27 Omnistereo capture and render of panoramic virtual reality content
US14/723,151 2015-05-27
US14/723,151 US10038887B2 (en) 2015-05-27 2015-05-27 Capture and render of panoramic virtual reality content
US14/723,178 2015-05-27
PCT/US2016/034072 WO2016191464A1 (en) 2015-05-27 2016-05-25 Omnistereo capture and render of panoramic virtual reality content

Publications (2)

Publication Number Publication Date
KR20170123328A true KR20170123328A (ko) 2017-11-07
KR101991080B1 KR101991080B1 (ko) 2019-06-19

Family

ID=56108721

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177027557A KR101991080B1 (ko) 2015-05-27 2016-05-25 파노라마 가상 현실 콘텐츠의 옴니스테레오 캡쳐 및 렌더링
KR1020177027558A KR101944050B1 (ko) 2015-05-27 2016-05-25 파노라마 가상 현실 콘텐츠의 캡쳐 및 렌더링

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177027558A KR101944050B1 (ko) 2015-05-27 2016-05-25 파노라마 가상 현실 콘텐츠의 캡쳐 및 렌더링

Country Status (5)

Country Link
EP (3) EP3304894A1 (ko)
JP (2) JP6511539B2 (ko)
KR (2) KR101991080B1 (ko)
CN (2) CN107431803B (ko)
WO (2) WO2016191467A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10375381B2 (en) 2015-05-27 2019-08-06 Google Llc Omnistereo capture and render of panoramic virtual reality content
WO2020040594A1 (en) * 2018-08-24 2020-02-27 Samsung Electronics Co., Ltd. Method and apparatus for processing omni-directional image
WO2024096717A1 (ko) * 2022-11-04 2024-05-10 네이버랩스 주식회사 3차원 모델을 이용한 거리뷰 영상 사이의 특징점 매칭쌍 자동 취득 방법 및 시스템

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10038887B2 (en) 2015-05-27 2018-07-31 Google Llc Capture and render of panoramic virtual reality content
US10217189B2 (en) * 2015-09-16 2019-02-26 Google Llc General spherical capture methods
CN108696735A (zh) * 2017-03-01 2018-10-23 中兴通讯股份有限公司 虚拟现实眼镜、智能终端及导视实现和控制方法
GB2560185A (en) * 2017-03-03 2018-09-05 Nokia Technologies Oy Method and apparatus for a multi-camera unit
US10579898B2 (en) * 2017-04-16 2020-03-03 Facebook, Inc. Systems and methods for provisioning content using barrel projection representation
US10885711B2 (en) 2017-05-03 2021-01-05 Microsoft Technology Licensing, Llc Virtual reality image compositing
ES2695250A1 (es) * 2017-06-27 2019-01-02 Broomx Tech S L Procedimiento para proyectar contenidos audiovisuales inmersivos
CN107392851A (zh) * 2017-07-04 2017-11-24 上海小蚁科技有限公司 用于生成全景图像的方法和设备
KR102336997B1 (ko) * 2017-08-16 2021-12-08 삼성전자 주식회사 서버, 디스플레이장치 및 그 제어방법
CN107396077B (zh) * 2017-08-23 2022-04-08 深圳看到科技有限公司 虚拟现实全景视频流投影方法和设备
CN111164969B (zh) * 2017-09-28 2021-11-02 Lg电子株式会社 使用拼接和重新投影相关元数据发送或接收6dof视频的方法和装置
KR102138413B1 (ko) * 2017-12-18 2020-07-27 숭실대학교산학협력단 다수의 레이저 레이더를 거치하는 프레임 및 이를 포함하는 레이저 레이더 시스템과, 상기 다수의 레이저 레이더의 센싱 데이터 좌표 통합 방법
US11297298B2 (en) 2018-02-27 2022-04-05 Lg Electronics Inc. Method for transmitting and receiving 360-degree video including camera lens information, and device therefor
US10827164B2 (en) * 2018-03-01 2020-11-03 Google Llc Active LCD shutters for virtual and augmented reality low persistence
US10582181B2 (en) * 2018-03-27 2020-03-03 Honeywell International Inc. Panoramic vision system with parallax mitigation
US11044456B2 (en) 2018-05-31 2021-06-22 Electronics And Telecommunications Research Institute Image processing method and image player using thereof
US10194114B1 (en) * 2018-06-22 2019-01-29 Polycom, Inc. Split screen display without distortion
KR102073230B1 (ko) * 2018-06-28 2020-02-04 주식회사 알파서클 특정 영역의 화질을 개선하기 위해 복수의 가상현실영상을 재생하는 가상현실영상재생장치 및 가상현실영상생성방법
CN109248428A (zh) * 2018-09-17 2019-01-22 武汉中奥互联科技有限公司 一种网球运动轨迹处理系统的动态分析方法
CN109464801A (zh) * 2018-10-29 2019-03-15 奇想空间(北京)教育科技有限公司 游戏设备
KR102168318B1 (ko) * 2018-12-03 2020-10-22 동국대학교 산학협력단 혼합현실용 디스플레이 장치 및 방법
EP3667414B1 (en) * 2018-12-14 2020-11-25 Axis AB A system for panoramic imaging
EP3691249A1 (en) 2019-01-29 2020-08-05 Koninklijke Philips N.V. Image signal representing a scene
EP3690822A1 (en) 2019-01-30 2020-08-05 Koninklijke Philips N.V. Image representation of a scene
US11194438B2 (en) 2019-05-09 2021-12-07 Microsoft Technology Licensing, Llc Capture indicator for a virtual world
CN112307848B (zh) * 2019-08-01 2024-04-30 惠普发展公司,有限责任合伙企业 检测视频会议中的欺骗说话者
KR102135001B1 (ko) * 2019-10-21 2020-07-16 주식회사 알파서클 화질이 개선된 복수의 가상현실영상을 동기 또는 비동기 방식으로 재생하는 가상현실영상재생장치
CN111131767B (zh) * 2019-11-27 2021-06-29 重庆特斯联智慧科技股份有限公司 一种场景三维成像安防监视系统及使用方法
CN111314687B (zh) * 2019-11-28 2021-06-25 歌尔光学科技有限公司 一种vr影像处理方法、装置、vr眼镜及可读存储介质
US11150470B2 (en) 2020-01-07 2021-10-19 Microsoft Technology Licensing, Llc Inertial measurement unit signal based image reprojection
US11917119B2 (en) 2020-01-09 2024-02-27 Jerry Nims 2D image capture system and display of 3D digital image
CN111292336B (zh) * 2020-01-21 2023-06-06 宁波大学 基于分段式球面投影格式的全向图像无参考质量评价方法
CN111569432B (zh) * 2020-05-19 2021-01-15 北京中科深智科技有限公司 一种从游戏中捕捉6DoF场景图像的系统及方法
WO2021247405A1 (en) * 2020-06-03 2021-12-09 Jerry Nims 2d image capture system & display of 3d digital image
WO2021247416A1 (en) * 2020-06-03 2021-12-09 Jerry Nims 2d image capture system, transmission & display of 3d digital image
CN111954054B (zh) * 2020-06-05 2022-03-04 筑觉绘(上海)科技有限公司 图像处理方法、系统、存储介质及计算机设备
CN114390262A (zh) * 2020-10-21 2022-04-22 中强光电股份有限公司 用于拼接三维球面全景影像的方法及电子装置
CN112804511B (zh) * 2021-01-04 2022-04-01 烽火通信科技股份有限公司 一种动态渲染全景视频的方法和装置
CN112907447B (zh) * 2021-02-08 2022-07-01 杭州海康威视数字技术股份有限公司 天空云图的拼接及用于确定多摄像机安装位置的方法
US11516517B2 (en) 2021-03-19 2022-11-29 Sm Tamjid Localized dynamic video streaming system
CN113645462B (zh) * 2021-08-06 2024-01-16 深圳臻像科技有限公司 一种3d光场的转换方法及装置
CN113706680B (zh) * 2021-09-02 2023-09-19 长春理工大学 视觉显著性驱动的vr电影画面渲染像素抗失真处理方法
CN114500971B (zh) * 2022-02-12 2023-07-21 北京蜂巢世纪科技有限公司 基于数据共享的场馆3d全景视频生成方法、装置、头戴式显示设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030189730A1 (en) * 1998-05-28 2003-10-09 Fuji Photo Film Co., Ltd. Index print producing method, image processing system, image processing method and image processing device
JP2005167638A (ja) * 2003-12-02 2005-06-23 Sharp Corp 移動体周囲監視装置、移動体および画像変換方法
JP2014212519A (ja) * 2013-04-16 2014-11-13 ディズニー エンタープライゼス インコーポレイテッド 立体パノラマ

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5020878A (en) * 1989-03-20 1991-06-04 Tektronix, Inc. Method and apparatus for generating a binocular viewing model automatically adapted to a selected image
GB9124925D0 (en) * 1991-11-23 1992-01-22 Kew Michael J Simulated three-dimensional imaging system
JP3600422B2 (ja) * 1998-01-30 2004-12-15 株式会社リコー ステレオ画像表示方法及び装置
US6545702B1 (en) * 1998-09-08 2003-04-08 Sri International Method and apparatus for panoramic imaging
DE69940253D1 (de) * 1998-09-17 2009-02-26 Yissum Res Dev Co System und verfahren zur erzeugung und darstellung von panoramabildern und filmen
US7129971B2 (en) * 2000-02-16 2006-10-31 Immersive Media Company Rotating scan self-cleaning camera
JP3557168B2 (ja) * 2000-11-27 2004-08-25 三洋電機株式会社 レンズ歪み係数算出装置および算出方法、レンズ歪み係数算出プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005277825A (ja) * 2004-03-25 2005-10-06 Hitachi Ltd マルチカメラ映像表示装置
WO2006110584A2 (en) * 2005-04-07 2006-10-19 Axis Engineering Technologies, Inc. Stereoscopic wide field of view imaging system
JP2006350852A (ja) * 2005-06-17 2006-12-28 Nabura:Kk 画像生成システム
US7742046B2 (en) * 2005-08-31 2010-06-22 Kabushiki Kaisha Toshiba Method, device, and program for producing elemental image array for three-dimensional image display
US9270976B2 (en) * 2005-11-02 2016-02-23 Exelis Inc. Multi-user stereoscopic 3-D panoramic vision system and method
JP4987890B2 (ja) * 2009-02-05 2012-07-25 株式会社東芝 立体画像描画装置、立体画像描画方法、立体画像描画プログラム
CN105791861B (zh) * 2009-04-20 2018-12-04 杜比实验室特许公司 定向内插和数据后处理
JP2011205573A (ja) * 2010-03-26 2011-10-13 Sony Corp 制御装置、カメラシステム及びプログラム
JP2012160904A (ja) * 2011-01-31 2012-08-23 Sony Corp 情報処理装置、情報処理方法、プログラム、及び撮像装置
KR101824439B1 (ko) * 2011-02-16 2018-02-02 주식회사 스테레오피아 모바일 스테레오 카메라 장치 및 그 촬영방법
US9007430B2 (en) * 2011-05-27 2015-04-14 Thomas Seidl System and method for creating a navigable, three-dimensional virtual reality environment having ultra-wide field of view
US9479697B2 (en) * 2012-10-23 2016-10-25 Bounce Imaging, Inc. Systems, methods and media for generating a panoramic view
WO2014117266A1 (en) * 2013-02-04 2014-08-07 Valorisation-Recherche, Limited Partnership Omnistereo imaging
JP6353214B2 (ja) * 2013-11-11 2018-07-04 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置および画像生成方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030189730A1 (en) * 1998-05-28 2003-10-09 Fuji Photo Film Co., Ltd. Index print producing method, image processing system, image processing method and image processing device
JP2005167638A (ja) * 2003-12-02 2005-06-23 Sharp Corp 移動体周囲監視装置、移動体および画像変換方法
JP2014212519A (ja) * 2013-04-16 2014-11-13 ディズニー エンタープライゼス インコーポレイテッド 立体パノラマ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10375381B2 (en) 2015-05-27 2019-08-06 Google Llc Omnistereo capture and render of panoramic virtual reality content
WO2020040594A1 (en) * 2018-08-24 2020-02-27 Samsung Electronics Co., Ltd. Method and apparatus for processing omni-directional image
US10853910B2 (en) 2018-08-24 2020-12-01 Samsung Electronics Co., Ltd. Method and apparatus for processing omni-directional image
WO2024096717A1 (ko) * 2022-11-04 2024-05-10 네이버랩스 주식회사 3차원 모델을 이용한 거리뷰 영상 사이의 특징점 매칭쌍 자동 취득 방법 및 시스템

Also Published As

Publication number Publication date
CN107431803A (zh) 2017-12-01
JP2018524832A (ja) 2018-08-30
KR20170123667A (ko) 2017-11-08
EP3410388A2 (en) 2018-12-05
JP6511539B2 (ja) 2019-05-15
CN107431796A (zh) 2017-12-01
EP3410388A3 (en) 2019-02-27
JP6427688B2 (ja) 2018-11-21
KR101944050B1 (ko) 2019-04-17
CN107431803B (zh) 2019-07-26
CN107431796B (zh) 2019-02-12
EP3304897A1 (en) 2018-04-11
JP2018522429A (ja) 2018-08-09
KR101991080B1 (ko) 2019-06-19
WO2016191464A1 (en) 2016-12-01
EP3304894A1 (en) 2018-04-11
WO2016191467A1 (en) 2016-12-01

Similar Documents

Publication Publication Date Title
KR101991080B1 (ko) 파노라마 가상 현실 콘텐츠의 옴니스테레오 캡쳐 및 렌더링
US10375381B2 (en) Omnistereo capture and render of panoramic virtual reality content
KR102023587B1 (ko) 카메라 리그 및 입체 이미지 캡쳐
US10038887B2 (en) Capture and render of panoramic virtual reality content
US20170363949A1 (en) Multi-tier camera rig for stereoscopic image capture
US10084962B2 (en) Spherical video stabilization based on accelerometer data
US10460459B2 (en) Stitching frames into a panoramic frame
WO2018035347A1 (en) Multi-tier camera rig for stereoscopic image capture

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant