KR20230129495A - 라이트-인-플라이트(light-in-flight)를 시뮬레이션하기위한 시스템 및 방법 - Google Patents

라이트-인-플라이트(light-in-flight)를 시뮬레이션하기위한 시스템 및 방법 Download PDF

Info

Publication number
KR20230129495A
KR20230129495A KR1020237026864A KR20237026864A KR20230129495A KR 20230129495 A KR20230129495 A KR 20230129495A KR 1020237026864 A KR1020237026864 A KR 1020237026864A KR 20237026864 A KR20237026864 A KR 20237026864A KR 20230129495 A KR20230129495 A KR 20230129495A
Authority
KR
South Korea
Prior art keywords
light
wavefront
flight
data structure
depth
Prior art date
Application number
KR1020237026864A
Other languages
English (en)
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 KR20230129495A publication Critical patent/KR20230129495A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/73Deblurring; Sharpening
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T3/0006
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/02Affine transformations
    • G06T5/003
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/21Indexing scheme for image data processing or generation, in general involving computational photography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Image Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

시뮬레이션된 라이트-인-플라이트 이미징과 관련된 시스템 및 방법이 설명된다. 컴퓨팅 디바이스는 라이트-인-플라이트 엔진을 실행하여 광학 이미지 및 대응하는 깊이 맵을 프로세싱하여 장면에 걸친 파면의 전파를 시뮬레이션하는 라이트-인-플라이트 이미지 또는 비디오를 생성할 수 있다. 라이트-인-플라이트 엔진은 3차원 데이터 구조를 생성하기 위해 깊이 맵을 3차원 리프트 도메인으로 변환한 다음 필터링된 3차원 데이터 구조를 생성하기 위해 3차원 데이터 구조를 가우시안 구를 정의할 수 있는 컨벌루션 연산자로 컨벌루션하여 광학 시뮬레이션 출력을 생성할 수 있다. 그런 다음 라이트-인-플라이트 엔진은 라이트-인-플라이트 이미지를 생성하기 위해 광학 이미지를 필터링된 3차원 데이터 구조의 식별된 슬라이스로 아핀 변환을 한다.

Description

라이트-인-플라이트(LIGHT-IN-FLIGHT)를 시뮬레이션하기 위한 시스템 및 방법
종래의 저렴한 카메라 시스템은 장면의 정지 광학 이미지만 캡처할 수 있다. 그러한 종래의 시스템은 주어진 장면에서 광 패킷이 공간을 통해 이동하고 객체에서 반사될 때 광 패킷의 복잡한 경로를 캡처할 수 없으므로 그러한 장면에서 움직이는 광 패킷을 묘사하는 이미지 또는 비디오를 캡처할 수 없다. 광 패킷이 장면에서 객체를 가로질러 이동할 때 광 패킷이 취한 경로의 이미지를 캡처하는 개념을 "라이트-인-플라이트(light-in-flight)" 이미징이라고도 한다. 종래의 카메라 시스템이 라이트-인-플라이트 이미징을 수행하려면 상대적으로 고가의 민감한 시간 태깅 하드웨어가 필요하고, 초당 1조 프레임으로 작동하는 초고감도 카메라가 필요하다. 따라서 이러한 비용과 장비의 복잡성으로 인해 라이트-인-플라이트 이미징에 필요한 하드웨어는 쉽게 상용화되지 못하고 있다.
일 예시에서, 방법은: 광학 이미지에 대응하는 깊이 맵에 기초하여 시뮬레이션된 파면(wavefront)에 대한 광산란 효과를 시뮬레이션하는 광학 시뮬레이션 출력을 생성하는 단계; 및 상기 광학 시뮬레이션 출력에 기초하고 정의된 타임스탬프에 대응하는 시간에 시뮬레이션된 파면의 위치에 기초하여, 광학 이미지의 픽셀의 서브세트의 밝기를 조정함으로써 라이트-인-플라이트 이미지를 생성하는 단계를 포함한다.
추가 예시에 따르면, 방법은 다음 구성들(또는 이들의 임의의 조합) 중 하나 이상(예: 전부)을 포함할 수 있다.
광학 시뮬레이션 출력 생성은: 상기 깊이 맵에 기초하여 3차원 데이터 구조를 생성하는 단계; 및 필터링된 3차원 데이터 구조를 생성하기 위해 상기 3차원 데이터 구조를 컨벌루션 연산자로 컨볼루션하는(convolving) 단계를 포함할 수 있다.
3차원 데이터 구조를 생성하는 단계는: 상기 깊이 맵의 주어진 픽셀에 대해, 깊이 맵 내의 주어진 픽셀의 2차원 좌표에 기초하고, 주어진 픽셀과 연관된 깊이 값에 기초하여 주어진 픽셀을 상기 3차원 데이터 구조의 각각의 위치에 맵핑하는 단계를 포함할 수 있다.
컨벌루션 연산자는 가우스 구를 정의할 수 있다.
상기 방법은: 상기 정의된 타임스탬프에 대응하는 시간에 상기 시뮬레이션된 파면의 위치에 대응하는 파면 깊이에 중심을 둔 필터링된 3차원 데이터 구조의 복셀(voxel)의 서브세트를 포함하는 슬라이스를 식별하는 단계를 더 포함할 수 있다.
광학 시뮬레이션 출력에 기초하여 광학 이미지의 픽셀의 서브세트의 밝기를 조정하는 것은: 상기 식별된 슬라이스로 광학 이미지의 아핀 변환을 수행하는 것을 포함할 수 있다.
상기 방법은: 광속 및 정의된 타임스탬프에 대응하는 시간에 기초하여 파면 깊이를 결정하는 단계를 더 포함할 수 있고, 상기 파면 깊이는 상기 정의된 타임스탬프에 대응하는 시간에 광학 이미지에서 시뮬레이션된 파면의 위치를 나타낸다.
다른 예시에서, 모바일 디바이스는: 광학 이미지를 캡처하도록 구성된 광학 카메라; 광학 이미지에 대응하는 깊이 맵을 캡처하도록 구성된 깊이 카메라; 적어도 하나의 프로세서를 포함하며, 상기 프로세서는: 상기 깊이 맵에 기초하여 시뮬레이션된 파면(wavefront)에 대한 광산란 효과를 시뮬레이션하는 광학 시뮬레이션 출력을 생성하고; 그리고 라이트-인-플라이트 이미지를 생성하기 위해 상기 광학 시뮬레이션 출력에 기초하고 정의된 타임스탬프에 대응하는 시간에 시뮬레이션된 파면의 위치에 기초하여, 광학 이미지의 픽셀의 서브세트의 밝기를 조정하도록 구성된다.
일부 추가 예시에 따르면, 모바일 디바이스는 다음 구성들(또는 이들의 임의의 조합) 중 하나 이상(예: 전부)을 포함할 수 있다. 모바일 디바이스 및/또는 모바일 디바이스 내에 포함된 컴포넌트는 다음 기능을 수행하도록 적응될 수 있다.
광학 시뮬레이션 출력을 생성하기 위해 프로세서는: 상기 깊이 맵에 기초하여 3차원 데이터 구조를 생성하고; 그리고 필터링된 3차원 데이터 구조를 생성하기 위해 상기 3차원 데이터 구조를 컨벌루션 연산자로 컨볼루션하도록(convolving) 더 구성될 수 있고, 상기 광학 시뮬레이션 출력은 상기 필터링된 3차원 데이터 구조를 포함한다.
3차원 데이터 구조를 생성하기 위해 프로세서는: 상기 깊이 맵의 주어진 픽셀에 대해, 깊이 맵 내의 주어진 픽셀의 2차원 좌표에 기초하고, 주어진 픽셀과 연관된 깊이 값에 기초하여 주어진 픽셀을 상기 3차원 데이터 구조의 각각의 위치에 맵핑하도록 더 구성될 수 있다.
컨벌루션 연산자는 가우스 구를 정의할 수 있다.
프로세서는: 상기 정의된 타임스탬프에 대응하는 시간에 상기 시뮬레이션된 파면의 위치에 대응하는 파면 깊이에 중심을 둔 필터링된 3차원 데이터 구조의 복셀(voxel)의 서브세트를 포함하는 슬라이스를 식별하도록 더 구성될 수 있다.
광학 시뮬레이션 출력에 기초하여 광학 이미지의 픽셀의 서브세트의 밝기를 조정하기 위해 프로세서는: 상기 라이트-인-플라이트 이미지를 생성하기 위해 상기 광학 이미지를 상기 식별된 슬라이스로 아핀 변환하도록 더 구성될 수 있다.
프로세서는: 광속 및 정의된 타임스탬프에 대응하는 시간에 기초하여 파면 깊이를 결정하도록 더 구성될 수 있고, 상기 파면 깊이는 상기 정의된 타임스탬프에 대응하는 시간에 광학 이미지에서 시뮬레이션된 파면의 위치를 나타낸다.
다른 예시에서, 방법은: 광학 이미지, 상기 광학 이미지에 대응하는 깊이 맵 및 하나 이상의 타이밍 파라미터에 기초하여, 복수의 라이트-인-플라이트 이미지 프레임을 생성하는 단계; 및 상기 복수의 라이트-인-플라이트 이미지 프레임을 라이트-인-플라이트 비디오로 어셈블링하는 단계를 포함하며, 상기 라이트-인-플라이트 비디오는 상기 광학 이미지에 묘사된 장면을 가로질러 광 펄스의 파면의 전파를 시뮬레이션한다.
추가 예시에 따르면, 방법은 다음 구성들(또는 이들의 임의의 조합) 중 하나 이상(예: 전부)을 포함할 수 있다.
상기 복수의 라이트-인-플라이트 이미지 프레임 중 하나의 라이트-인-비행 이미지 프레임을 생성하는 단계는: 상기 깊이 맵에 기초하여 3차원 데이터 구조를 생성하는 단계; 필터링된 3차원 데이터 구조를 생성하기 위해 상기 3차원 데이터 구조를 컨벌루션 연산자로 컨볼루션하는(convolving) 단계; 및 상기 라이트-인-플라이트 이미지 프레임을 생성하기 위해 광학 시뮬레이션 출력에 기초하여 광학 이미지의 픽셀의 서브세트의 밝기를 조정하는 단계를 포함할 수 있고, 상기 광학 시뮬레이션 출력은 상기 필터링된 3차원 데이터 구조를 포함한다.
3차원 데이터 구조를 생성하는 단계는: 상기 깊이 맵의 주어진 픽셀에 대해, 깊이 맵 내의 주어진 픽셀의 2차원 좌표에 기초하고, 주어진 픽셀과 연관된 깊이 값에 기초하여 주어진 픽셀을 상기 3차원 데이터 구조의 각각의 위치에 맵핑하는 단계를 포함할 수 있다.
컨벌루션 연산자는 가우스 구를 정의할 수 있다.
상기 복수의 라이트-인-플라이트 이미지 프레임 중 하나의 라이트-인-비행 이미지 프레임을 생성하는 단계는: 정의된 타임스탬프에 대응하는 시간에 상기 광학 이미지에 묘사된 장면에서 파면의 위치에 대응하는 파면 깊이에 중심을 둔 필터링된 3차원 데이터 구조의 복셀(voxel)의 서브세트를 포함하는 슬라이스를 식별하는 단계를 더 포함할 수 있다.
광학 시뮬레이션 출력에 기초하여 광학 이미지의 픽셀의 서브세트의 밝기를 조정하는 것은: 상기 라이트-인-플라이트 이미지를 생성하기 위해 상기 식별된 슬라이스를 상기 광학 시뮬레이션 출력으로 아핀 변환하는 것을 포함할 수 있다.
상기 복수의 라이트-인-플라이트 이미지 프레임 중 하나의 라이트-인-비행 이미지 프레임을 생성하는 단계는: 광속 및 정의된 타임스탬프에 대응하는 시간에 기초하여 파면 깊이를 결정하는 단계를 더 포함할 수 있고, 상기 파면 깊이는 상기 정의된 타임스탬프에 대응하는 시간에 광학 이미지에서 묘사된 장면에서 파면의 위치를 나타낸다.
다른 예시에서, 컴퓨터 프로그램 물은 명령어들이 저장되어 있을 수 있고, 명령어들은 프로세서에 의해 실행될 때 프로세서로 하여금 본 명세서에 기술된 방법의 단계를 수행하게 할 수 있다.
본 개시는 더 잘 이해될 수 있고, 그것의 수많은 구성 및 이점은 첨부 도면을 참조함으로써 통상의 기술자에게 명백해진다. 상이한 도면에서 동일한 참조 부호의 사용은 유사하거나 동일한 아이템을 표시한다.
도 1은 일부 실시예에 따라 라이트-인-플라이트 엔진을 실행하는 모바일 디바이스의 블록도이다.
도 2는 일부 실시예에 따라 파면이 깊이 이미지에 묘사된 장면을 가로질러 이동할 때 상이한 타임스탬프에 대응하는 파면 픽셀의 위치를 나타내는 깊이 이미지의 시퀀스이다.
도 3은 짧은 펄스를 통해 레이저에 의해 출력되는 빔의 도면으로서, 빔이 레이저로부터 멀어짐에 따라 발생하는 빔 확장 효과를 도시한다.
도 4는 객체에 부딪쳤을 때 도 2의 빔에 의해 형성되는 가우시안 스폿을 도시한 도면이다.
도 5는 일부 실시예에 따라 2차원 깊이 맵을 3차원 리프트 도메인으로 변환하는 것을 나타내는 도면이다.
도 6은 일부 실시예에 따라 짧은 펄스 산란, 빔 확장 및 광 분산의 효과를 나타내는 컨벌루션 연산자로 리프트 도메인에서 2차원 깊이 맵의 컨벌루션을 나타내는 도면이다.
도 7은 일부 실시예에 따라 라이트-인-플라이트 비디오를 생성하는 방법의 흐름도이다.
도 8은 일부 실시예에 따라 라이트-인-플라이트 이미지를 생성하는 방법의 흐름도이다.
본 발명의 실시예는 스마트폰 또는 다른 디바이스의 카메라 시스템을 사용하여 라이트-인-플라이트 이미징이 시뮬레이션될 수 있는 시스템 및 방법을 제공한다. 예를 들어, 라이트-인-플라이트 효과는 RGB(red-green-blue) 이미지(때때로 본 명세서에서 "광학 이미지"라고 함) 및 깊이 이미지(때때로 본 명세서에서 "깊이 맵"이라고 함) 쌍을 입력으로 이용하는 라이트-인-플라이트 이미지를 사용하여 시뮬레이션될 수 있고, RGB(red-green-blue) 이미지 및 깊이 이미지는 RGB 카메라(본 명세서에서는 "광학 카메라"라고도 함) 및 스마트폰, 태블릿, 스마트 안경 쌍 또는 그러한 카메라를 포함하는 다른 적용가능한 디바이스와 같은 디바이스의 깊이 카메라를 사용하여 캡처될 수 있다.
일부 실시예에서, 디바이스는 증강 현실(AR) 장면에서 디바이스 또는 객체(예를 들어, 광원)로부터의 광 펄스의 시뮬레이션된 방출에 대응하는 파면의 라이트-인-플라이트 이미징을 시뮬레이션할 수 있다. 예를 들어, 캡처된 RGB 이미지에 기초하여 라이트-인-플라이트 이미지 프레임을 생성할 때, 라이트-인-플라이트 엔진은 해당 RGB 이미지에 대응하는 깊이 맵으로부터 도출된 깊이 정보에 기초하여, 그리고 파면이 장면에서 이동할 속도 및/또는 파면이 장면에서 이동할 기간과 같은 장면에서 파면의 움직임의 타이밍을 정의하는 타이밍 파라미터에 기초하여 특정 시간에 RGB 이미지에 묘사된 장면에서 파면이 위치될 곳을 계산한다. 일부 실시예에서, 파면의 인식도를 개선하고 파면의 광 패킷이 장면의 객체로부터 반사되는 방식을 더 잘 시뮬레이션하기 위해, 예를 들어, 대응하는 깊이 맵의 파면 픽셀에 컨벌루션 연산자를 적용한 다음 라이트-인-플라이트 프레임을 생성하기 위해 오리지널 RGB 이미지를 광학 시뮬레이션의 출력으로 아핀 변환하여, 파면의 광학 시뮬레이션을 생성함으로써 라이트-인-플라이트 엔진은 RGB 이미지를 변환할 수 있다. 오리지널 RGB 이미지를 광학 시뮬레이션의 출력으로 아핀 변환하면, 3차원 공간에서 파면 픽셀의 영향 영역 내 픽셀뿐만 아니라 파면 픽셀의 밝기가 수정되어, 파면 픽셀의 인식도가 향상된다.
일부 실시예에서, 광학 시뮬레이션은 라이트-인-플라이트 비디오 효과를 생성하기 위해 다수의 순차적인 타임스탬프에 걸쳐 생성되고 오리지널 RGB 이미지에 적용될 수 있다. 예를 들어, 파면이 시간이 지남에 따라 주어진 장면을 가로질러 이동하기 때문에, 라이트-인-플라이트 엔진은 다수의 타임스탬프에 대한 라이트-인-플라이트 이미지 프레임의 시퀀스를 생성할 수 있으므로, 라이트-인-플라이트 이미지 프레임의 시퀀스는 오리지널 RGB 이미지의 장면을 가로지르는 파면의 모션을 묘사할 수 있다. 그런 다음 라이트-인-플라이트 엔진은 라이트-인-플라이트 이미지 프레임의 시퀀스를 어셈블링하여 예를 들어 라이트-인-플라이트 엔진을 실행하는 디바이스에 포함되거나 연결된 저장 디바이스(예: 솔리드 스테이트 드라이브, 하드 디스크 드라이브, 플래시 드라이브, 메모리 등)에 저장될 수 있는 라이트-인-플라이트 비디오 또는 애니메이션 GIF(Graphics Interchange Format) 파일을 생성할 수 있다.
이러한 방식으로 라이트-인-플라이트 이미징을 시뮬레이션하면 다양한 응용이 가능하다. 예를 들어, 라이트-인-플라이트 엔진은 캡처된 이미지에 고유한 사진 필터를 적용하는데 사용될 수 있으므로, 사진사는 캡처된 장면에 새로운 시뮬레이션된 조명을 도입할 수 있다. 다른 예로서, 라이트-인-플라이트 엔진은 그러한 AR 장면에서 선택된 광원으로부터의 광 패킷의 모션을 시뮬레이션하기 위해 AR 장면에 적용될 수 있으며, 이는 미학적 시각 효과에 바람직할 수 있거나 빛 경로의 역학에 대해 학생들에게 가르치는데 사용될 수 있다.
도 1은 라이트-인-플라이트 이미징을 시뮬레이션하도록 구성된 모바일 디바이스(100)를 도시하는 블록도이다. 도시된 바와 같이, 모바일 디바이스(100)는 하나 이상의 RGB 카메라(102)(본 명세서에서 때때로 "광학 카메라(102)"로 지칭됨), 하나 이상의 깊이 카메라(104), 하나 이상의 프로세서(106), 디스플레이(108) 및 하나 이상의 저장 디바이스(110)를 포함한다. 컴포넌트들(102, 104, 106, 46, 108 및 110) 각각은 통신 채널(120)을 통해 (물리적으로, 통신가능하게 및/또는 동작적으로) 연결될 수 있다. 일부 예시에서, 통신 채널(120)은 시스템 버스, 네트워크 연결, 프로세스 간 통신 데이터 구조 또는 데이터를 통신하기 위한 임의의 기타 방법을 포함할 수 있다.
프로세서(들)(106)는 기능을 구현하고 및/또는 실행을 위한 명령어들을 프로세싱하도록 구성될 수 있다. 예를 들어, 프로세서(들)(106)는 저장 디바이스(들)(110)에 저장된 명령어들을 프로세싱할 수 있다. 프로세서(들)(106)는 마이크로프로세서, 컨트롤러, DSP(digital signal processor), ASIC(application specific integrated circuit), FPGA(field-programmable gate array) 또는 등가 논리 회로 중 임의의 것 또는 각각을 포함할 수 있다.
저장 디바이스(들)(110)는 동작 중에 모바일 디바이스(100) 내에 정보를 저장하도록 구성될 수 있다. 예를 들어, 일부 실시예에서, 저장 디바이스(들)(110)는 하나 이상의 컴퓨터 판독가능 저장 매체, 컴퓨터 판독가능 저장 디바이스, 임시 메모리 디바이스, 및/또는 랜덤 액세스 메모리(RAM), 정적 랜덤 액세스 메모리(SRAM), 동적 임의 액세스 메모리(DRAM) 또는 기타 적용 가능한 휘발성 메모리와 같은 휘발성 메모리를 포함한다. 일부 예에서, 저장 디바이스(들)는 프로세서(들)(106)에 의한 실행을 위한 프로그램 명령어들을 저장하는 데 사용된다. 일부 예시에서, 저장 디바이스(들)는 자기적 하드 디스크, 광학 디스크, 플로피 디스크, 플래시 메모리 또는 EPROM 또는 EEPROM의 형태와 같은 하나 이상의 비휘발성 저장 엘리먼트를 더 포함할 수 있다. 일부 실시예에서, 저장 디바이스(들)(110)는 프로그램 실행 동안 정보를 일시적으로 저장하기 위해 모바일 디바이스(100)에서 실행되는 소프트웨어 또는 애플리케이션(예를 들어, 라이트-인-플라이트 엔진(112))에 의해 사용된다.
RGB 카메라(들)(102)는 사람 및 객체의 장면의 시각적(예를 들어, 컬러) 이미지가 획득되는 표준 이미지 센서를 포함하는 하나 이상의 카메라를 포함할 수 있다. RGB 카메라(들)(102)에 의해 캡처된 광학 이미지들은 저장 디바이스(들)(110)에 저장될 수 있다. 여기서, RGB 카메라(들)(102)와 같은 RGB 카메라에 의해 캡처된 광학 이미지는 때때로 "RGB 이미지"로 지칭될 수 있다.
깊이 카메라(들)(104)는 모바일 디바이스(100)와 장면의 객체의 일부 또는 전부 사이의 거리를 정의하는 장면의 깊이 맵을 캡처할 수 있다. 일부 실시예에서, RGB 카메라(들)(102)에 의해 캡처된 각각의 RGB 이미지에 대해, 깊이 카메라(들)(104)는 대응하는 깊이 맵을 캡처할 수 있다. 일부 실시예에서, 깊이 카메라(들)(104)(때때로 "범위 카메라"로 지칭됨)는 장면을 적외선으로 조명하고 적외선의 ToF(Time-of-Flight)를 측정하기 위해 펄스 광 또는 연속파 진폭 변조를 사용하는 하나 이상의 ToF(Time-of-Flight) 깊이 카메라를 포함할 수 있다. ToF는 깊이 카메라의 적외선 광원에서 적외선이 방출되는 시간부터 적외선이 장면의 객체에 반사된 후 깊이 카메라의 적외선 센서로 되돌아오는 시간까지의 기간으로 나타낼 수 있다. 다양한 실시예에 따라 스테레오 삼각 측량 카메라 및 코딩된 조리개 카메라와 같은 다른 유형의 깊이 카메라가 추가로 또는 대안적으로 깊이 카메라(들)(104)에 포함될 수 있음을 이해해야 한다.
일부 구현예에서, 모바일 디바이스(100)는 혼란을 줄이기 위해 도 1에 도시되지 않은 추가 컴포넌트들을 포함할 수 있다. 예를 들어, 모바일 디바이스(100)는 모바일 디바이스(100)의 컴포넌트에 전력을 제공하기 위해 배터리를 포함할 수 있다.
도 1의 예에서, 저장 디바이스(들)(110)는 RGB 카메라(들)(102)에 의해 캡처된 RGB 이미지들(114) 및 깊이 카메라(들)(104)에 의해 캡처된 깊이 맵(116)을 저장할 수 있다. 저장 디바이스(들)(110)는 하나 이상의 프로세서(106)로 라이트-인-플라이트 엔진(112)을 실행하기 위한 명령어들을 포함할 수 있다. 라이트-인-플라이트 엔진(112)은 RGB 이미지(114) 및 대응하는 깊이 맵(116)을 수신하고, RGB 이미지(114) 및 깊이 맵(116)에 기초하여 라이트-인-플라이트 이미지(118)를 생성한다. 예를 들어, 각각의 RGB 이미지(114)에 대해, 라이트-인-플라이트 엔진(112)은 해당 RGB 이미지의 장면을 가로질러 이동하는 파면을 묘사하는 라이트-인-플라이트 이미지들(118)의 시퀀스를 생성한다. 여기서 "파면" 또는 "시뮬레이션된 파면"이라는 용어는 일반적으로 짧은 광 펄스의 시뮬레이션된 방출에 대응한다. 일부 실시예에서, 라이트-인-플라이트 엔진(112)은 깊이 카메라(들)(104) 또는 RGB 카메라(102)에 위치된 소스로부터 그러한 짧은 광 펄스의 방출을 시뮬레이션할 수 있다. 일부 실시예에서, 라이트-인-플라이트 엔진(112)은 RGB 이미지에 묘사된 장면 내의 위치 또는 장면 외부의 위치에 배치된 소스로부터 그러한 짧은 광 펄스의 방출을 시뮬레이션할 수 있다. 일부 실시예에서, 라이트-인-플라이트 엔진(112)은 해당 환경 내의 물리적 객체에 대응할 수 있거나 증강 현실 장면 또는 가상 현실 장면의 일부로서 위치와 연관된 가상 객체에 대응할 수 있는 환경 내의 위치에 있는 소스로부터의 이러한 짧은 광 펄스의 방출을 시뮬레이션할 수 있다.
주어진 기간 동안 RGB 이미지(114) 중 하나의 장면을 가로질러 이동하는 광 펄스의 파면의 라이트-인-플라이트 광 이미지를 시뮬레이션할 때, 라이트-인-플라이트 엔진(112)은 깊이 맵(116)에 정의된 픽셀 깊이 정보에 기초하여 대응하는 광 펄스의 방출 이후에 주어진 시간에서 파면의 깊이에 대응하는 깊이 맵(116)의 어느 픽셀 및 RGB 이미지(114)의 어느 픽셀이 대응하는지를 결정할 수 있다. 예를 들어, RGB 이미지와 같이, 깊이 맵은 각각의 픽셀 값을 갖는 픽셀 어레이를 포함한다. 그러나 색상 값을 나타내는 대신, 깊이 맵의 각 픽셀은 깊이 맵을 캡처한 깊이 카메라와 해당 픽셀이 대응하는 장면 부분(즉, "객체 패치") 사이의 거리에 대응하는 각각의 깊이 값을 나타낸다.
깊이 맵의 각 깊이 값은 빛이 깊이 카메라에 도달하는데 걸리는 시간에 빛의 속도를 곱한 함수이다(예: d = c*t, 여기서 d는 거리, c는 빛의 속도, t는 시간이다). 즉, 라이트-인-플라이트 엔진은 파면이 빛의 속도에 기초하여 장면 내의 특정 깊이에 대응하는 위치로 이동하는데 걸리는 시간을 결정할 수 있다. 따라서, RGB 이미지의 장면을 가로질러 이동하는 파면을 시뮬레이션할 때, 라이트-인-플라이트 엔진(112)은 파면의 시뮬레이션된 방출 다음에 주어진 시간에 장면에서 파면의 위치를 결정하기 위해 장면의 대응하는 깊이 맵을 사용한다. 즉, 파면의 시뮬레이션된 장면 순회 동안 주어진 시간에 파면의 위치에 대응하는 RGB 이미지의 픽셀들은 RGB 이미지(114)와 연관된 깊이 맵(116)의 대응하는 픽셀의 깊이 값에 기초하여 라이트-인-플라이트 엔진(112)에 의해 식별될 수 있다.
일부 실시예에서, 라이트-인-플라이트 엔진(112)은 저장 디바이스(110)에 저장된 정의된 타이밍 파라미터에 기초하여, 주어진 RGB 이미지에서 장면을 가로지르는 파면의 순회가 시뮬레이션될 기간을 결정할 수 있다. 일부 실시예에서, 라이트-인-플라이트 엔진(112)은 결정된 기간 내에 발생하는 불연속 시간에 대응하는 타임스탬프를 생성할 수 있고, 각 타임스탬프 또는 타임스탬프의 서브세트에 대해 각각의 라이트-인-플라이트 이미지를 생성할 수 있다. 여기서, "타임스탬프"는 장면을 가로지르는 파면의 전파가 시뮬레이션되거나 시뮬레이션되는 시간 동안 발생하는 불연속적인 시간의 기록을 의미한다. 일부 실시예에서, 라이트-인-플라이트 엔진(112)은 생성된 라이트-인-플라이트 이미지의 시퀀스(예를 들어, 시간적으로 순차적인 라이트-인-플라이트 이미지)를 어셈블링함으로써 라이트-인-플라이트 비디오를 생성할 수 있다.
대안적으로, 일부 실시예에서, 라이트-인-플라이트 엔진(112)은 결정된 기간 내의 단일 타임스탬프에 대응하는 단일 라이트-인-플라이트 라이트 이미지를 생성할 수 있으며, 이는 타이밍 파라미터에서 정의될 수 있거나 모바일 디바이스(100)의 사용자에 의해 제공된 사용자 입력을 통해 정의될 수 있다. 예를 들어, 일부 사진 애플리케이션에서 정의된 타임스탬프에서 RGB 이미지로부터 단 하나의 라이트-인-플라이트 이미지를 생성하는 것이 바람직할 수 있다. 일부 실시예에서, RGB 이미지 및 대응하는 깊이 맵을 캡처한 모바일 디바이스가 아닌 컴퓨팅 디바이스는 RGB 이미지 및 깊이 맵을 수신한 후에 라이트-인-플라이트 발광 엔진(112)을 실행할 수 있다는 것을 이해해야 한다. 따라서, 본 명세서에 기술된 라이트-인-플라이트 엔진의 실시예는 모바일 디바이스, 특히 라이트-인-플라이트 엔진에 의해 프로세싱되는 이미지를 캡처한 모바일 디바이스에 의한 실행으로 제한되지 않는다.
파면 방출 후 주어진 시간에 파면의 위치를 시각화하기 위해, 라이트-인-플라이트 엔진(112)은 RGB 이미지의 나머지 픽셀(때때로 본 명세서에서 "비-파면 픽셀"로 지칭됨)에 비해 각각의 식별된 픽셀(본 명세서에서 "파면 픽셀"로 지칭됨)의 밝기를 증가시킬 수 있거나 또는 원하는 효과에 따라 각각의 파면 픽셀의 밝기에 대해 RGB 이미지의 각각의 비-파면 픽셀의 밝기를 감소시킬 수 있다.
도 2는 장면을 가로지르는 파면의 시뮬레이션된 순회 3개의 상이한 타임스탬프에 대응하는 3개의 상이한 깊이 이미지의 시퀀스(200)를 묘사하며, 각각의 깊이 이미지는 대응하는 시간에 시뮬레이션된 파면의 위치(예를 들어, 깊이)에 대응하는 장면 내의 픽셀을 나타낸다. 본 예에서, 라이트-인-플라이트 엔진(112)은 이미지 및 대응하는 깊이 맵을 캡처한 모바일 디바이스로부터 방출된 짧은 펄스인 것처럼 파면을 시뮬레이션한다. 시퀀스(200)는 제1 시간에 대응하고 파면 픽셀의 제1 세트(204)를 포함하는 제1 깊이 이미지(202), 제2 시간에 대응하고 파면 픽셀의 제2 세트(208)를 포함하는 제2 깊이 이미지(206), 및 제3 시간에 대응하고 파면 픽셀의 제3 세트(212)를 포함하는 제3 깊이 이미지(210)를 포함하고, 제1 시간은 제2 시간 전에 발생하고, 제2 시간은 제3 시간 전에 발생하고, 그리고 제1, 제2 및 제3 시간은 각각 파면이 깊이 이미지(202, 206 및 210) 및 대응하는 RGB 이미지에서 묘사된 장면을 순회하기 위해 시뮬레이션되는 기간동안 발생한다. 일부 실시예에서, 더 낮은 픽셀 값을 갖는 깊이 이미지(202, 206 및 210)의 픽셀은 모바일 디바이스에 더 가까운 객체에 대응하는 반면, 더 높은 픽셀 값을 갖는 픽셀은 모바일 디바이스로부터 더 멀리 있는 객체에 대응한다. 즉, 주어진 깊이 맵(202, 206, 210)의 각 픽셀의 값은 깊이 맵에 묘사된 장면 내의 해상 픽셀의 깊이 및 대응 RGB 이미지의 대응 픽셀의 깊이에 대응한다. 따라서, 깊이 맵의 픽셀의 픽셀 값은 본 명세서에서 "깊이 값"으로 지칭될 수 있다. 동일한 픽셀 값을 갖는 깊이 맵의 픽셀은 모바일 디바이스로부터 대략 동일한 거리에 있다. 파면 픽셀(204, 208, 212)은 그 가시성을 향상시키기 위해 어둡게 처리되었으며, 따라서 파면 픽셀(204, 208, 212)의 깊이는 도 2의 도면에 도시된 색상 또는 밝기로 표시되지 않는다는 것을 이해해야 한다.
주어진 시간에 깊이 맵의 어느 픽셀이 파면 픽셀인지 식별하기 위해, 라이트-인-플라이트 엔진(112)은 해당 시간에 대응하는 깊이 값을 식별하고, 식별된 깊이 값을 갖는 깊이 맵의 모든 픽셀을 파면 픽셀로 식별한다. . 본 예에서, 파면 픽셀(204)은 파면 픽셀(212)보다 모바일 디바이스에 더 가깝게 배치되는 파면 픽셀(208)보다 모바일 디바이스에 더 가깝게 배치되어, 파면이 시간이 지남에 따라 모바일 디바이스로부터 더 멀리 이동하는 것으로 도시된다.
도 1의 예로 돌아가면, 일부 실시예에서 라이트-인-플라이트 엔진(112)은 각각의 라이트-인-플라이트 이미지에서 식별된 파면 픽셀만을 밝게 할 수 있지만, 이 밝기는 오리지널 RGB 이미지에 묘사된 장면에 따라 인지하기 어려울 수 있다. 또한 식별된 파면 픽셀만 밝게 하는 것은 파면이 장면 내의 다양한 객체에 부딪힐 때 발생할 수 있는 광산란, 파면이 장면 전체에 전파될 때 발생하는 빔 확대, 파면이 장면 전체에 걸쳐 전파될 때 발생하는 광 분산을 고려하지 않는다. 따라서, 일부 실시예에서, 시뮬레이션된 파면의 인식도 및 시뮬레이션의 정확도는 파면의 광 패킷이 장면의 객체로부터 어떻게 반사되거나 산란되는지를 시뮬레이션하고(즉, 광 산란), 파면 픽셀에 컨벌루션 연산자를 적용하여 빔 확대 및 광 분산 효과를 시뮬레이션함으로써 개선될 수 있다. 예를 들어, 라이트-인-플라이트 엔진(112)은 파면의 광학 시뮬레이션을 생성하고 오리지널 RGB 이미지를 광학 시뮬레이션의 출력으로 아핀 변환함으로써 주어진 타임스탬프에서 펄스 파면을 시뮬레이션하여 RGB 이미지에 대한 라이트-인-플라이트 이미지를 생성할 수 있다. 광학 시뮬레이션을 생성할 때, 라이트-인-플라이트 엔진(112)은 깊이 맵의 픽셀의 3차원 변환에 컨벌루션 연산자를 적용하여, 장면 전체에 걸쳐 파면의 전파의 비이상성을 근사화하는 시뮬레이션 출력을 생성할 수 있다. 주어진 타임스탬프에 대한 파면 깊이에 중심을 둔 시뮬레이션 출력의 슬라이스는 라이트-인-플라이트 이미지 프레임을 생성하기 위해 오리지널 RGB 이미지로 아핀 변환될 수 있다. 예를 들어, 컨벌루션 연산자는 짧은 광 펄스 산란, 빔 확장 및 공간에서의 광 분산 효과를 근사화할 수 있다.
예를 들어, 도 3은 레이저(302)에 의해 출력된 광(304)의 짧은 펄스가 시간에 따라 어떻게 전파되는지를 예시한다. 도시된 바와 같이, 광(304)의 단면적(306)은 시간에 따라 x축 및 y축을 따라 바깥쪽으로 확장될 수 있다. 광(304)이 레이저(302)로부터 멀어짐에 따라 산란, 빔 확장 및 분산과 같은 다양한 비이상성을 경험할 수 있다. x, y 및 t 방향에서 광(304)의 진폭에 대한 이러한 비이상성의 효과는 각각의 가우시안 함수로 정의될 수 있다. 여기서, x축 및 y축은 방출된 광(304)의 전파 벡터를 가로지르는 평면을 정의한다. t축은 가로 평면에 직교하고, 광(304)의 전파 벡터와 평행하며, 광(304)이 이동한 시간과 거리를 모두 나타낸다.
예를 들어, 시간에 따른 광(304)의 진폭을 정의하는 여기에서 벡터 v T로 표시되는 펄스 함수는 가우시안 함수에 의해 근사화될 수 있는데, 그 이유는 그것이 시간상 정확히 국지화되지 않기 때문이다. 추가적으로, 그 횡단면을 따른 주어진 지점에서, 광(304)은 가우시안 스폿(308)을 정의할 수 있다. 도 4는 가로 평면에서 가우시안 스폿(308)의 빔 진폭을 도시하는 차트(400)를 도시한다. 도시된 바와 같이, 광(304)의 진폭은 각각의 가우시안 함수에 의해 x 및 y 방향을 따라 근사화될 수 있다. x 방향으로의 광(304)의 진폭은 여기에서 벡터 v x로 표시되고, y 방향으로의 광(304)의 진폭은 여기에서 v y로 표시된다. 따라서, 3차원 공간에 걸친 광(304)의 진폭은 식 1-4에 따라 근사화될 수 있다:
여기서 G(t), G(x)G(y)는 각각 t, xy 축에 대한 가우시안 함수이고 H는 벡터 v x, v yv t의 외적이므로 H는 3차원 행렬을 나타낸다. 도 1의 예로 돌아가면, 라이트-인-플라이트 라이트 엔진(112)은 광학 시뮬레이션 출력을 생성하기 위해 오리지널 RGB 이미지와 연관된 깊이 맵의 픽셀에 컨벌루션 연산자로서 식 4의 H를 적용함으로써 시뮬레이션된 펄스 파면의 양자의 (예를 들어, 도 3의 광(304)에 대해 설명된 바와 같은) 산란, 빔 확장 및 분산과 같은 비이상성을 시뮬레이션할 수 있다.
주어진 RGB 이미지에 대한 광학 시뮬레이션 출력을 생성할 때, 라이트-인-플라이트 엔진(112)은 본 명세서에서 "리프트 도메인"으로 변환이라고 하는, RGB 이미지의 대응하는 깊이 맵을 큐빅 데이터 구조와 같은 3차원 데이터 구조로 변환할 수 있으며, 여기서 픽셀은 깊이 맵에서 오리지널 픽셀의 포지션과 오리지널 픽셀의 깊이 값에 의해 희박하게 채워진 큐브에 대해 정의된 공간에서 포지션을 갖는 복셀로 변환된다. 도 5는 깊이 맵을 2차원 도메인에서 3차원 리프트 도메인으로 변환하는 예를 도시한다. 도시된 바와 같이, 2차원 깊이 맵(512)은 초기에 각각의 깊이 값 D i,j 를 정의하는 픽셀 어레이를 포함하며, 여기서 ij는 어레이에서 주어진 픽셀의 좌표를 정의한다. 본 예에서, 라이트-인-플라이트 엔진(112)은 깊이 맵(512)을 리프트 도메인으로 변환하고, 여기서 이전의 2차원 깊이 맵(512)은 3차원 큐빅 데이터 구조(520)로 표현된다. 큐빅 데이터 구조(520)는 3차원 픽셀(즉, 복셀)(524)로 희박하게 채워진다. 주어진 타임스탬프에서 파면의 깊이에 대응하는 복셀(524)의 서브세트는 본 명세서에서 "파면 복셀"로 지칭될 수 있다. 리프트 도메인으로 변환할 때, x 및 y축에 대한 주어진 복셀의 포지션은 유지되는 반면, 새로운 제3 축인 t축 또는 "시간"축을 따라 복셀의 포지션은 대응하는 깊이 맵 픽셀에 의해 정의된 깊이 값에 기초하여 결정된다. 예를 들어, 주어진 픽셀의 깊이 값을 빛의 속도로 나눈 값은 t 축을 따라 대응하는 복셀의 포지션을 정의하며, 위에서 설정된 바와 같이 d =c*t이기 때문이다. 일부 실시예에서, 제3축은 시간이 아닌 깊이를 명시적으로 정의할 수 있다.
깊이 맵을 리프트 도메인으로 변환한 후, 라이트-인-플라이트 엔진(112)은 결과적인 큐빅 데이터 구조의 복셀에 컨벌루션 연산자를 적용한다. 도 6은 큐빅 데이터 구조(620)의 복셀(624)에 대한 콘벌루션 연산자(610)의 적용을 예시한다. 큐빅 데이터 구조(620)는 RGB 이미지/깊이 맵 쌍에 대응하는 2차원 깊이 맵의 리프트 도메인 변환에 대응할 수 있다. 큐빅 데이터 구조(620)에서, 각각의 복셀(624)의 포지션은 예를 들면, 파면 복셀(624)에 1 또는 다른 0이 아닌 값을 할당하고 큐빅 데이터 구조(620)의 모든 다른 복셀에 0의 값을 할당함으로써 정의될 수 있다. 컨벌루션 연산자(610)는 예를 들어 식 4의 컨벌루션 연산자 H에 대응하는 가우시안 구체(612)를 정의할 수 있고, 따라서 x, y 및 t 축을 따라 각각의 가우시안 함수에 의해 정의될 수 있다. 라이트-인-플라이트 엔진(112)은 복셀(624) 각각의 하나의 위치에 중심을 둔 가우시안 구(634)를 포함하는 필터링된 큐빅 데이터 구조(630)를 생성하기 위해 컨볼루션 연산기(610)를 큐빅 데이터 구조(620)에 컨벌루션한다. 예를 들어, 큐빅 데이터 구조(630)의 각각의 가우스 구(634)의 크기 및 진폭 프로파일은 동일할 수 있다. 일부 실시예에서, x, y 및 t축을 따른 가우시안 구(634)의 디멘션은 파면을 시뮬레이션할 때 상이한 시각 효과를 달성하기 위해 사용자에 의해 커스터마이징될 수 있다. 큐빅 데이터 구조(620)의 복셀(624)에 콘볼루션 연산자(610)를 컨벌루션함으로써 각 복셀(624) 주변의 복셀 값은 가우시안 구(634)에 의해 정의된 분포에 따라 증가한다. 예를 들어, 주어진 비-파면 복셀의 진폭이 증가되는 양은 H에 의해 정의된 가우시안 구(들)의 분포(들)에 따라 복셀(624) 중 하나 이상에 대한 근접성에 의존하며, 더 큰 진폭을 갖는 영향을 받은 복셀은 복셀(624)에 더 가깝다. 여기서, 필터링된 큐빅 데이터 구조(630)는 시뮬레이션 출력으로 간주된다.
라이트-인-플라이트 비디오를 생성할 때, 라이트-인-플라이트 엔진(112)은 필터링된 큐빅 데이터 구조(630)를 각각의 타임스탬프(예를 들어, 연관된 타임스탬프에서 파면의 위치에 대응하는 각각의 파면 깊이를 가짐)와 연관된 상이한 파면 깊이에 각각 중심을 두고 각각은 t 차원에서 H의 직경에 대응하는 폭(즉, t 축을 따라)을 가지는 슬라이스들의 수로 논리적으로 나눌 수 있다. 슬라이스는 일부 실시예에서 t 축을 따라 서로 중첩될 수 있음을 이해해야 한다. 그런 다음 라이트-인-플라이트 엔진(112)은 필터링된 큐빅 데이터 구조(630)의 각각의 슬라이스를 오리지널 RGB 이미지로 아핀 변환을 수행하여 라이트-인-플라이트 이미지 프레임의 시퀀스를 생성할 수 있다. 그런 다음 라이트-인-플라이트 엔진(112)은 라이트-인-플라이트 비디오를 생성하기 위해 라이트-인-플라이트 이미지 프레임을 어셈블링할 수 있다.
예를 들어, 도 1으로 되돌아가면, 광학 시뮬레이션 출력을 생성할 때, 라이트-인-플라이트 엔진(112)은 광학 시뮬레이션 출력의 슬라이스로 오리지널 RGB 이미지의 아핀 변환을 수행하여 라이트-인-플라이트 이미지를 생성할 수 있다. 식 5는 라이트-인-플라이트 이미지들의 시퀀스를 생성하기 위해 라이트-인-플라이트 엔진(112)에 의해 수행될 수 있는 아핀 변환의 예를 도시한다:
여기서 S(I)는 오리지널 RGB 이미지 I에 대한 라이트-인-플라이트 엔진(112)에 의해 출력되는 라이트-인-플라이트 이미지의 세트이고, D는 오리지널 RGB 이미지에 대응하는 깊이 맵, Y는 광학 시뮬레이션 출력이고, H는 컨벌루션 연산자이고, X는 깊이 맵에 대응하는 큐빅 데이터 구조이고, F(D)는 깊이 맵을 리프트 도메인으로 변환하여 큐빅 데이터 구조 X를 생성하는데 사용되는 함수이고, α는 시뮬레이션 출력에 할당된 가중치(예: 원래 RGB 이미지의 영향을 받는 픽셀의 밝기가 증가하는 양)를 결정하는 상수이고, k는 라이트-인-플라이트 이미지들의 시퀀스 인덱스이고, N은 시퀀스에서 라이트-인-플라이트들의 수이다. 예를 들어, 라이트-인-플라이트 엔진(112)에 의해 수행되는 오리지널 RGB 이미지의 각각의 아핀 변환은 파면으로부터의 광이 직접 입사되는 오리지널 RGB 이미지(즉, 파면 픽셀)의 픽셀 밝기를 효과적으로 조정하고, 여기서 파면으로부터 산란된 빛은 주어진 타임스탬프에 대해 입사(즉, 광학 시뮬레이션 출력을 생성하는데 사용되는 컨벌루션 연산자에 의해 근사화됨)될 것이다. 식 5는 라이트-인-플라이트 이미지의 시퀀스의 생성을 나타내지만 식 5는 단일 라이트-인-플라이트 이미지를 생성하는 데에도 사용될 수 있음을 이해해야 한다.
라이트-인-플라이트 엔진(112)은 (예를 들어, 식 5와 관련하여 제공되는 바와 같이) 라이트-인-플라이트 프레임의 시퀀스를 생성함으로써 라이트-인-플라이트 비디오를 생성하도록 구성될 수 있으며, 오리지널 RGB 이미지에서 묘사된 장면을 가로지르는 파면의 움직임을 시뮬레이션한다. 파면이 그러한 라이트-인-플라이트 비디오에서 장면을 가로질러 이동하는 것으로 묘사되는 속도(즉, "파면 속도")는 미리 정의될 수 있고, 라이트-인-플라이트 이미지를 실행하는 디바이스(예를 들어, 모바일 디바이스(100))의 사용자에 의해 정의될 수 있거나 또는 정의된 기간(예를 들어, 라이트-인-플라이트 비디오에 대해 미리 정의되거나 사용자 정의된 기간)에 기초하여 자동으로 정의될 수 있다. 라이트-인-플라이트 엔진(112)은 하나 이상의 미리 정의되거나 사용자 정의된 타이밍 파라미터에 기초하여 라이트-인-플라이트 비디오의 라이트-인-플라이트 이미지 프레임을 생성할 때 사용될 타임스탬프의 시퀀스를 결정할 수 있고, 이는 파면 속도, 원하는 광속 비디오 길이 및/또는 미리 정의된 샘플링 속도를 포함한다. 일부 실시예에서, 라이트-인-플라이트 엔진(112)은 RGB 이미지에 묘사된 장면의 깊이 및 하나 이상의 타이밍 파라미터에 기초하여 생성될 라이트-인-플라이트 프레임의 수를 결정할 수 있다. 라이트-인-플라이트 비디오와 관련하여, 빛의 속도로 장면을 가로지르는 파면의 이산적 움직임은 일반적으로 사람의 눈에 보이지 않거나 기존 디스플레이에서 재현할 수 없다는 점을 이해해야 하며, 따라서 라이트-인-플라이트 엔진(112)은 실제 광 파면이 이동하는 속도의 일부에서 장면을 가로질러 파면의 이동을 시뮬레이션하기 위해 또는 확장된 기간에 걸쳐 뷰어가 인지할 수 있는 파면의 이산적 움직임을 만들기 위해 라이트-인-플라이트 비디오를 생성할 수 있다. 라이트-인-플라이트 엔진(112)이 파면의 속도를 수정하거나 파면이 라이트-인-플라이트 비디오의 재생을 위해 장면을 가로지르는 기간을 확장하는 양은 미리 설정되거나 사용자 정의될 수 있는 하나 이상의 정의된 타이밍 파라미터에 기초하여 선택될 수 있다(예를 들어, 저장 디바이스(들)(110)에 저장될 수 있음). 예를 들어, 타이밍 파라미터는 파면이 라이트-인-플라이트 비디오에서 이동하는 속도를 정의하는 파면 속도, 파면이 움직이는 라이트-인-플라이트 비디오에서 장면을 이동하고, 라이트-인-플라이트 비디오가 생성될 길이로서 정의될 수 있는 기간을 정의하는 파면 기간 또는 라이트-인-플라이트 비디오의 주어진 시간 동안 생성될 라이트-인-플라이트 이미지 프레임의 수를 정의하는 프레임 레이트 중 하나 이상을 포함할 수 있다.
도 7는 라이트-인-플라이트 비디오를 생성하는 방법(700)에 대한 프로세스 흐름을 도시한다. 예를 들어, 방법(700)은 RGB 카메라 및 깊이 카메라를 갖는 모바일 디바이스에 의해 수행될 수 있다. 동작(700)은 도 1의 컴퓨팅 디바이스(100)의 맥락에서 설명된다.
블록(702)에서, 모바일 디바이스(100)의 RGB 카메라(102) 및 깊이 카메라(104)는 RGB 이미지 및 대응하는 깊이 맵을 캡처한다. RGB 이미지와 깊이 맵은 후속 프로세싱을 위해 모바일 디바이스(100)의 저장 디바이스(110)에 저장될 수 있다.
블록(704)에서, 라이트-인-플라이트 엔진(112)은 광학 시뮬레이션 출력(예를 들어, 필터링된 큐빅 데이터 구조)을 생성하기 위해 깊이 맵 픽셀을 3차원 도메인(예를 들어, 큐빅 데이터 구조)으로 변환한 다음 컨벌루션 연산자 H를 큐빅 데이터 구조의 0이 아닌 복셀에 적용함으로써 RGB 이미지 및 깊이 맵에 대한 광학 시뮬레이션 출력을 생성한다.
블록(706)에서, 라이트-인-플라이트 엔진(112)은 생성될 라이트-인-플라이트 이미지 프레임의 수 N을 결정한다. 일부 실시예에서, 라이트-인-플라이트 엔진(112)은 파면 속도, 파면 기간, 프레임레이트 및/또는 다른 적용 가능한 타이밍 파라미터 중 하나 이상을 포함할 수 있는 하나 이상의 타이밍 파라미터에 기초하여 생성될 라이트-인-플라이트 이미지 프레임의 수를 결정한다.
블록(708)에서, 라이트-인-플라이트 엔진(112)은 생성될 각각의 라이트-인-플라이트 이미지 프레임에 대한 각각의 타임스탬프를 포함하는 타임스탬프의 시퀀스를 결정하고, 여기서 주어진 라이트-인-플라이트 이미지 프레임에 대한 타임스탬프는 주어진 라이트-인-플라이트 이미지 프레임에서 파면 시뮬레이션되는 위치/깊이를 결정한다. 일부 실시예에서, 시퀀스에서 인접한 타임스탬프는 동일한 간격을 가질 수 있다.
블록(710)에서, 라이트-인-플라이트 엔진(112)은 변수 k를 1로 설정하고, 여기서 k는 생성될 다음 라이트-인-플라이트 이미지 프레임의 프레임 시퀀스에 대한 인덱스를 나타낸다.
블록(712)에서, 라이트-인-플라이트 엔진(112)은 타임스탬프 시퀀스의 k번째 타임스탬프에 대응하는 시퀀스의 k번째 라이트-인-플라이트 이미지 프레임을 생성한다. 예를 들어, 라이트-인-플라이트 엔진(112)은 도 8의 방법(800)의 블록(808 및 810)에 따라 각각의 이미지 프레임을 생성할 수 있다.
블록(714)에서, 라이트-인-플라이트 엔진(112)은 k = N-1인지 여부를 결정함으로써 가장 최근에 생성된 라이트-인-플라이트 이미지 프레임이 라이트-인-플라이트 이미지 프레임의 시퀀스에서 마지막 이미지 프레임인지 여부를 결정한다. 라이트-인-플라이트 엔진(112)이 k = N-1이라고 결정하면, 방법(700)은 블록(718)으로 진행한다. 그렇지 않으면, 라이트-인-플라이트 엔진(112)이 k<N-1이라고 결정하면, 방법(700)은 블록(716)으로 진행한다.
블록(716)에서, 라이트-인-플라이트 엔진(112)은 k의 값을 1씩 증가시킨다. 그런 다음 방법(700)은 라이트-인-플라이트 엔진(112)이 시퀀스에서 다음 라이트-인-플라이트 이미지 프레임을 생성하는 블록(712)으로 복귀한다.
블록(718)에서, 라이트-인-플라이트 엔진(112)은 RGB 이미지의 장면을 가로질러 이동하는 시뮬레이션된 파면을 묘사하는 라이트-인-플라이트 비디오로 라이트-인-플라이트 이미지 프레임의 시퀀스를 어셈블링한다.
블록(720)에서, 라이트-인-플라이트 엔진(112)은 라이트-인-플라이트 비디오가 저장 디바이스(110)에 저장되게 한다.
도 8는 라이트-인-플라이트 이미지를 생성하는 방법(800)에 대한 프로세스 흐름을 도시한다. 예를 들어, 방법(800)의 단계 중 일부 또는 전부는 광학 시뮬레이션 출력 및 라이트-인-플라이트 이미지에 대한 라이트-인-플라이트 이미지 프레임을 생성할 때 도 7의 블록(704 및 712)에서 수행될 수 있다. 다른 예로서, 방법(800)은 단일의 독립형 라이트-인-플라이트 이미지를 생성하기 위해 수행될 수 있다. 예를 들어, 방법(800)은 RGB 카메라 및 깊이 카메라를 갖는 모바일 디바이스에 의해 수행될 수 있다. 동작(800)은 도 1의 컴퓨팅 디바이스(100)의 맥락에서 설명된다.
단계(802)에서, 라이트-인-플라이트 엔진(112)은 RGB 이미지, RGB 이미지에 대응하는 깊이 맵, 타임스탬프 및 하나 이상의 미리 정의되거나 사용자 정의된 타이밍 파라미터를 수신한다. 타임스탬프는 라이트-인-플라이트 이미지가 생성될 RGB 이미지에 묘사된 장면을 가로질러 파면을 이동하는 동안의 기간을 정의하고, 그 시간에 파면의 위치는 타임스탬프로부터 도출될 수 있다. 타이밍 파라미터는 파면 속도, 파면 기간, 프레임 레이트 및/또는 다른 적용 가능한 타이밍 파라미터 중 하나 이상을 포함할 수 있다.
단계(804)에서, 라이트-인-플라이트 엔진(112)은 깊이 맵을 3차원 도메인으로 변환한다. 일부 실시예에서, 라이트-인-플라이트 엔진(112)은 깊이 맵을 리프트 도메인으로 변환하여 본 예에서 큐빅 데이터 구조(예를 들어, 도 5의 큐빅 데이터 구조(520))라고 하는 3차원 구조를 생성한다. 큐빅 데이터 구조에서 주어진 복셀의 좌표는 오리지널 깊이 맵의 대응하는 픽셀의 좌표와 대응하는 픽셀의 깊이 값에 기초하여 선택될 수 있다.
단계(806)에서, 라이트-인-플라이트 엔진(112)은 필터링된 큐빅 데이터 구조를 생성하기 위해 컨벌루션 연산자(예를 들어, 식 4의 컨벌루션 연산자 H)를 큐빅 데이터 구조에 적용한다. 예를 들어, 필터링된 큐빅 데이터 구조는 각각 큐빅 데이터 구조의 0이 아닌 복셀에 중심을 둔 하나 이상의 가우시안 구를 포함할 수 있다.
단계(808)에서, 라이트-인-플라이트 엔진(112)은 라이트-인-플라이트 이미지 프레임이 생성되고 있는 현재 타임스탬프에 대응하는 광학 시뮬레이션 출력의 필터링된 큐빅 데이터 구조의 슬라이스를 식별한다. 예를 들어, 필터링된 큐빅 데이터 구조의 식별된 슬라이스는 필터링된 큐빅 데이터 구조의 서브세트인 행렬일 수 있다. 행렬은 현재 타임스탬프에 대응하는(즉, 타임스탬프에 의해 표현된 시간에 파면의 위치에 대응하는) 깊이를 중심으로 하는 깊이 범위(즉, t 축을 따른 값의 범위) 내의 모든 복셀 필터링된 큐빅 데이터 구조로 구성될 수 있고, 여기서 깊이 범위의 크기는 t 방향에서 컨벌루션 연산자 H의 직경에 대응한다. 단계(812)에서, 라이트-인-플라이트 엔진(112)은 라이트-인-플라이트 이미지 프레임을 생성하기 위해 광학 시뮬레이션 출력의 식별된 슬라이스로 오리지널 RGB 이미지의 아핀 변환을 수행한다. 예를 들어, 아핀 변환은 타임스탬프 시점에 파면이 입사된 것으로 시뮬레이션된 면에 대응하는 RGB 이미지의 픽셀의 밝기를 증가시키고, 파면으로부터 산란광이 타임스탬프 시점에 파면이 입사된 것으로 시뮬레이션된 면에 대응하는 픽셀의 밝기를 증가시킬 수 있다.
일부 실시예에서, 전술한 기법의 일정 양태는 소프트웨어를 실행하는 프로세싱 시스템의 하나 이상의 프로세서에 의해 구현될 수 있다. 소프트웨어는 비일시적 컴퓨터 판독가능 저장 매체에 저장되거나 그렇지 않으면 유형적으로 수록된 하나 이상의 실행가능한 명령어들의 세트를 포함한다. 소프트웨어는 하나 이상의 프로세서들에 의해 실행될 때 전술한 기법들 중 하나 이상의 양태를 수행하기 위해 하나 이상의 프로세서를 조작하는 명령어 및 특정 데이터를 포함할 수 있다. 비일시적 컴퓨터 판독가능 저장 매체는, 예를 들어 자기 또는 광 디스크 저장 디바이스, 플래시 메모리와 같은 솔리드 스테이트 저장 디바이스, 캐시, 랜덤 액세스 메모리(RAM) 또는 다른 비휘발성 메모리 디바이스 등을 포함할 수 있다. 비일시적 컴퓨터 판독가능 저장 매체에 저장된 실행가능한 명령어는 소스 코드, 어셈블리 언어 코드, 객체 코드 또는 하나 이상의 프로세서들에 의해 해석되거나 실행가능한 다른 명령어 포맷일 수 있다.
컴퓨터 판독가능 저장 매체는 컴퓨터 시스템에 명령어 및/또는 데이터를 제공하기 위해 사용 중에 컴퓨터 시스템에 의해 액세스가능한 임의의 저장 매체, 또는 저장 매체의 조합을 포함할 수 있다. 이러한 저장 매체는 광학 매체(예를 들어, 콤팩트 디스크(CD), 디지털 다목적 디스크(DVD), 블루레이 디스크), 자기 매체(예를 들어, 플로피 디스크, 자기 테이프 또는 자기 하드 드라이브), 휘발성 메모리(예를 들어, 랜덤 액세스 메모리(RAM) 또는 캐시), 비휘발성 메모리(예를 들어, ROM(read-only memory) 또는 플래시 메모리), 또는 MEMS(microelectromechanical systems) 기반 저장 매체를 포함할 수 있으나, 이에 한정되지 않는다. 컴퓨터 판독가능 저장 매체는 컴퓨팅 시스템에 내장되고(예를 들어, 시스템 RAM 또는 ROM), 컴퓨팅 시스템에 고정적으로 부착되고(예를 들어, 자기 하드 드라이브), 컴퓨팅 시스템에 제거 가능하게 부착되거나(예를 들어, 광 디스크 또는 범용 직렬 버스(USB) 기반 플래시 메모리) 또는 유선 또는 무선 네트워크를 통해 컴퓨터 시스템에 연결될 수 있다(예를 들어, NAS(Network Access Storage)).
일반적 설명에서 상술된 모든 활동 또는 요소가 요구되는 것은 아니며, 특정 활동 또는 디바이스의 일부가 요구되지 않을 수 있으며, 하나 이상의 추가 활동이 수행될 수 있거나 또는 요소가 설명된 것들에 더하여 포함될 수 있다. 또한, 활동들이 나열된 순서는 반드시 그들이 수행되어야 하는 순서가 아니다. 또한, 개념들이 특정 실시예들을 참조하여 설명되었다. 그러나, 통상의 기술자는 아래의 청구 범위에 기재된 본 개시의 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있음을 인식한다. 따라서, 명세서 및 도면은 제한적인 의미가 아닌 예시적인 의미로 간주되어야하고, 그러한 모든 수정은 본 개시의 범위 내에 포함되는 것으로 의도된다.
특정 실시예들과 관련하여 이점들, 다른 장점들 및 문제들에 대한 해결책들이 위에서 설명되었다. 그러나, 이점, 장점, 문제에 대한 해결책 및 이점, 장점 또는 해결책이 발생하거나 더 두드러지게 할 수 있는 구성(들)은 임의의 또는 모든 청구항들의 중요, 필수 또는 기본 구성으로서 해석되어서는 안된다. 또한, 개시된 주제는 수정될 수 있고, 다르게 그러나 본 명세서의 교시의 이익을 가지며 통상의 기술자에게 명백한 균등한 방식으로 실행될 수 있으므로, 상기 개시된 특정한 실시예들은 예시적인 것이다. 아래의 청구 범위에 기재된 것 이외의 본 명세서에 도시된 구성 또는 설계의 세부 사항에 대한 제한은 의도되지 않았다. 따라서, 상기 개시된 특정한 실시예는 변경되거나 수정될 수 있으며, 이러한 모든 변형은 개시된 주제의 범위 내에서 고려된다는 것이 명백하다. 따라서, 본 명세서에서 요구되는 보호는 아래의 청구 범위에 기술된 바와 같다.

Claims (22)

  1. 방법으로서,
    광학 이미지에 대응하는 깊이 맵에 기초하여 시뮬레이션된 파면(wavefront)에 대한 광산란 효과를 시뮬레이션하는 광학 시뮬레이션 출력을 생성하는 단계; 및
    상기 광학 시뮬레이션 출력에 기초하고 정의된 타임스탬프에 대응하는 시간에 시뮬레이션된 파면의 위치에 기초하여, 광학 이미지의 픽셀의 서브세트의 밝기를 조정함으로써 라이트-인-플라이트 이미지를 생성하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 광학 시뮬레이션 출력을 생성하는 단계는:
    상기 깊이 맵에 기초하여 3차원 데이터 구조를 생성하는 단계; 및
    필터링된 3차원 데이터 구조를 생성하기 위해 상기 3차원 데이터 구조를 컨벌루션 연산자로 컨볼루션하는(convolving) 단계를 포함하는, 방법.
  3. 청구항 2에 있어서, 상기 3차원 데이터 구조를 생성하는 단계는:
    상기 깊이 맵의 주어진 픽셀에 대해, 깊이 맵 내의 주어진 픽셀의 2차원 좌표에 기초하고, 주어진 픽셀과 연관된 깊이 값에 기초하여 주어진 픽셀을 상기 3차원 데이터 구조의 각각의 위치에 맵핑하는 단계를 포함하는, 방법.
  4. 청구항 2 또는 청구항 3에 있어서, 상기 콘벌루션 연산자는 가우시안 구를 정의하는, 방법.
  5. 청구항 2 내지 4 중 어느 한 항에 있어서,
    상기 정의된 타임스탬프에 대응하는 시간에 상기 시뮬레이션된 파면의 위치에 대응하는 파면 깊이에 중심을 둔 필터링된 3차원 데이터 구조의 복셀(voxel)의 서브세트를 포함하는 슬라이스를 식별하는 단계를 더 포함하는, 방법.
  6. 청구항 5에 있어서, 상기 광학 시뮬레이션 출력에 기초하여 광학 이미지의 픽셀의 서브세트의 밝기를 조정하는 것은:
    상기 식별된 슬라이스로 광학 이미지의 아핀 변환을 수행하는 것을 포함하는, 방법.
  7. 청구항 5 또는 6에 있어서,
    광속 및 정의된 타임스탬프에 대응하는 시간에 기초하여 파면 깊이를 결정하는 단계를 더 포함하며, 상기 파면 깊이는 상기 정의된 타임스탬프에 대응하는 시간에 광학 이미지에서 시뮬레이션된 파면의 위치를 나타내는, 방법.
  8. 모바일 디바이스로서,
    광학 이미지를 캡처하도록 구성된 광학 카메라;
    광학 이미지에 대응하는 깊이 맵을 캡처하도록 구성된 깊이 카메라;
    적어도 하나의 프로세서를 포함하며, 상기 프로세서는:
    상기 깊이 맵에 기초하여 시뮬레이션된 파면(wavefront)에 대한 광산란 효과를 시뮬레이션하는 광학 시뮬레이션 출력을 생성하고; 그리고
    라이트-인-플라이트 이미지를 생성하기 위해 상기 광학 시뮬레이션 출력에 기초하고 정의된 타임스탬프에 대응하는 시간에 시뮬레이션된 파면의 위치에 기초하여, 광학 이미지의 픽셀의 서브세트의 밝기를 조정하도록 구성되는, 모바일 디바이스.
  9. 청구항 8에 있어서, 상기 광학 시뮬레이션 출력을 생성하기 위해, 상기 프로세서는:
    상기 깊이 맵에 기초하여 3차원 데이터 구조를 생성하고; 그리고
    필터링된 3차원 데이터 구조를 생성하기 위해 상기 3차원 데이터 구조를 컨벌루션 연산자로 컨볼루션하도록(convolving) 더 구성되며, 상기 광학 시뮬레이션 출력은 상기 필터링된 3차원 데이터 구조를 포함하는, 모바일 디바이스.
  10. 청구항 9에 있어서, 상기 3차원 데이터 구조를 생성하기 위해, 상기 프로세서는:
    상기 깊이 맵의 주어진 픽셀에 대해, 깊이 맵 내의 주어진 픽셀의 2차원 좌표에 기초하고, 주어진 픽셀과 연관된 깊이 값에 기초하여 주어진 픽셀을 상기 3차원 데이터 구조의 각각의 위치에 맵핑하도록 더 구성되는, 모바일 디바이스.
  11. 청구항 9 또는 청구항 10에 있어서, 상기 콘벌루션 연산자는 가우시안 구를 정의하는, 모바일 디바이스.
  12. 청구항 9 내지 11 중 어느 한 항에 있어서, 상기 프로세서는:
    상기 정의된 타임스탬프에 대응하는 시간에 상기 시뮬레이션된 파면의 위치에 대응하는 파면 깊이에 중심을 둔 필터링된 3차원 데이터 구조의 복셀(voxel)의 서브세트를 포함하는 슬라이스를 식별하도록 더 구성되는, 모바일 디바이스.
  13. 청구항 12에 있어서, 상기 광학 시뮬레이션 출력에 기초하여 광학 이미지의 픽셀의 서브세트의 밝기를 조정하기 위해, 상기 프로세서는:
    상기 라이트-인-플라이트 이미지를 생성하기 위해 상기 광학 이미지를 상기 식별된 슬라이스로 아핀 변환하도록 더 구성되는, 모바일 디바이스.
  14. 청구항 12 또는 13에 있어서, 상기 프로세서는:
    광속 및 정의된 타임스탬프에 대응하는 시간에 기초하여 파면 깊이를 결정하도록 더 구성되며, 상기 파면 깊이는 상기 정의된 타임스탬프에 대응하는 시간에 광학 이미지에서 시뮬레이션된 파면의 위치를 나타내는, 모바일 디바이스.
  15. 방법으로서,
    광학 이미지, 상기 광학 이미지에 대응하는 깊이 맵 및 하나 이상의 타이밍 파라미터에 기초하여, 복수의 라이트-인-플라이트 이미지 프레임을 생성하는 단계; 및
    상기 복수의 라이트-인-플라이트 이미지 프레임을 라이트-인-플라이트 비디오로 어셈블링하는 단계를 포함하며, 상기 라이트-인-플라이트 비디오는 상기 광학 이미지에 묘사된 장면을 가로질러 광 펄스의 파면의 전파를 시뮬레이션하는, 방법.
  16. 청구항 15에 있어서, 상기 복수의 라이트-인-플라이트 이미지 프레임 중 하나의 라이트-인-비행 이미지 프레임을 생성하는 단계는:
    상기 깊이 맵에 기초하여 3차원 데이터 구조를 생성하는 단계;
    필터링된 3차원 데이터 구조를 생성하기 위해 상기 3차원 데이터 구조를 컨벌루션 연산자로 컨볼루션하는(convolving) 단계; 및
    상기 라이트-인-플라이트 이미지 프레임을 생성하기 위해 광학 시뮬레이션 출력에 기초하여 광학 이미지의 픽셀의 서브세트의 밝기를 조정하는 단계를 포함하며, 상기 광학 시뮬레이션 출력은 상기 필터링된 3차원 데이터 구조를 포함하는, 방법.
  17. 청구항 16에 있어서, 상기 3차원 데이터 구조를 생성하는 단계는:
    상기 깊이 맵의 주어진 픽셀에 대해, 깊이 맵 내의 주어진 픽셀의 2차원 좌표에 기초하고, 주어진 픽셀과 연관된 깊이 값에 기초하여 주어진 픽셀을 상기 3차원 데이터 구조의 각각의 위치에 맵핑하는 단계를 포함하는, 방법.
  18. 청구항 16 또는 청구항 17에 있어서, 상기 콘벌루션 연산자는 가우시안 구를 정의하는, 방법.
  19. 청구항 16 내지 18 중 어느 한 항에 있어서, 상기 복수의 라이트-인-플라이트 이미지 프레임 중 하나의 라이트-인-비행 이미지 프레임을 생성하는 단계는:
    정의된 타임스탬프에 대응하는 시간에 상기 광학 이미지에 묘사된 장면에서 파면의 위치에 대응하는 파면 깊이에 중심을 둔 필터링된 3차원 데이터 구조의 복셀(voxel)의 서브세트를 포함하는 슬라이스를 식별하는 단계를 더 포함하는, 방법.
  20. 청구항 19에 있어서, 상기 광학 시뮬레이션 출력에 기초하여 광학 이미지의 픽셀의 서브세트의 밝기를 조정하는 단계는:
    상기 라이트-인-플라이트 이미지를 생성하기 위해 상기 식별된 슬라이스를 상기 광학 시뮬레이션 출력으로 아핀 변환하는 단계를 포함하는, 방법.
  21. 청구항 19 내지 20 있어서, 상기 복수의 라이트-인-플라이트 이미지 프레임 중 하나의 라이트-인-비행 이미지 프레임을 생성하는 단계는:
    광속 및 정의된 타임스탬프에 대응하는 시간에 기초하여 파면 깊이를 결정하는 단계를 더 포함하며, 상기 파면 깊이는 상기 정의된 타임스탬프에 대응하는 시간에 광학 이미지에서 묘사된 장면에서 파면의 위치를 나타내는, 방법.
  22. 명령어들이 저장된 컴퓨터 프로그램 물로서, 상기 명령어들은 프로세서에 의해 실행될 때, 상기 프로세서로 하여금 청구항 1 내지 7 및/또는 15 내지 21 중 어느 한 항의 방법의 단계를 수행하게 하는, 컴퓨터 프로그램 물.
KR1020237026864A 2021-01-15 2021-01-15 라이트-인-플라이트(light-in-flight)를 시뮬레이션하기위한 시스템 및 방법 KR20230129495A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/013645 WO2022154803A1 (en) 2021-01-15 2021-01-15 System and method for simulating light-in-flight

Publications (1)

Publication Number Publication Date
KR20230129495A true KR20230129495A (ko) 2023-09-08

Family

ID=74592765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237026864A KR20230129495A (ko) 2021-01-15 2021-01-15 라이트-인-플라이트(light-in-flight)를 시뮬레이션하기위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US12045933B2 (ko)
EP (1) EP4070285B1 (ko)
JP (1) JP2024504119A (ko)
KR (1) KR20230129495A (ko)
CN (1) CN115088018A (ko)
WO (1) WO2022154803A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12087007B2 (en) * 2021-03-31 2024-09-10 Auris Health, Inc. Vision-based 6DOF camera pose estimation in bronchoscopy

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005103840A1 (ja) * 2004-04-26 2005-11-03 Ntt Docomo, Inc. 光波面制御パターン生成装置及び光波面制御パターン生成方法
US9165367B2 (en) * 2010-09-02 2015-10-20 Samsung Electronics Co., Ltd. Depth estimation system for two-dimensional images and method of operation thereof
US9445003B1 (en) * 2013-03-15 2016-09-13 Pelican Imaging Corporation Systems and methods for synthesizing high resolution images using image deconvolution based on motion and depth information
US20140327750A1 (en) * 2013-05-01 2014-11-06 Nvidia Corporation System, method, and computer program product for displaying a scene as a light field
US9182490B2 (en) * 2013-11-27 2015-11-10 Semiconductor Components Industries, Llc Video and 3D time-of-flight image sensors
EP4016981A3 (en) 2013-12-24 2022-09-21 Sony Depthsensing Solutions A time-of-flight camera system
US9979894B1 (en) * 2014-06-27 2018-05-22 Google Llc Modifying images with simulated light sources
US10110881B2 (en) * 2014-10-30 2018-10-23 Microsoft Technology Licensing, Llc Model fitting from raw time-of-flight images
US9792673B2 (en) * 2015-09-25 2017-10-17 Intel Corporation Facilitating projection pre-shaping of digital images at computing devices
KR101801749B1 (ko) * 2016-08-24 2017-11-28 한국과학기술연구원 3차원 복원을 위한 다중시점 영상 디블러링 방법, 이를 수행하기 위한 기록 매체 및 장치
US10557921B2 (en) * 2017-01-23 2020-02-11 Microsoft Technology Licensing, Llc Active brightness-based strategy for invalidating pixels in time-of-flight depth-sensing
TWI647427B (zh) * 2018-01-10 2019-01-11 緯創資通股份有限公司 物體距離估算方法與電子裝置
US11227366B2 (en) * 2018-06-22 2022-01-18 Volkswagen Ag Heads up display (HUD) content control system and methodologies
EP3931795A1 (en) * 2019-03-21 2022-01-05 Huawei Technologies Co., Ltd. Depth of field image refocusing
US20200351454A1 (en) * 2019-04-30 2020-11-05 William Marsh Rice University Wish: wavefront imaging sensor with high resolution
JP2020193957A (ja) * 2019-05-30 2020-12-03 ファナック株式会社 測距異常を補正する距離画像生成装置
EP4016985A4 (en) * 2019-08-27 2022-08-31 Guangdong Oppo Mobile Telecommunications Corp., Ltd. IMAGE PROCESSING METHOD AND APPARATUS, ELECTRONIC DEVICE, AND COMPUTER READABLE STORAGE MEDIUM
CN111398979B (zh) * 2020-06-08 2020-10-16 深圳市汇顶科技股份有限公司 基于飞行时间的测距方法和相关测距系统
US11315291B1 (en) * 2021-01-29 2022-04-26 International Business Machines Corporation Shine visualization

Also Published As

Publication number Publication date
EP4070285A1 (en) 2022-10-12
US12045933B2 (en) 2024-07-23
US20220230384A1 (en) 2022-07-21
WO2022154803A1 (en) 2022-07-21
CN115088018A (zh) 2022-09-20
EP4070285B1 (en) 2024-09-25
JP2024504119A (ja) 2024-01-30

Similar Documents

Publication Publication Date Title
US10962780B2 (en) Remote rendering for virtual images
US9544706B1 (en) Customized head-related transfer functions
CN111095952B (zh) 使用体积音频渲染和脚本化音频细节级别的3d音频渲染
KR101547740B1 (ko) 증강 현실에서 모션 검출을 위한 구조화 광 투사
US11328481B2 (en) Multi-resolution voxel meshing
KR20140014160A (ko) 실감형 디스플레이 경험
KR20170086077A (ko) 증강 현실 장면에서의 드로잉을 위한 깊이 정보의 사용
CN105611267B (zh) 现实世界和虚拟世界图像基于深度和色度信息的合并
US11636656B1 (en) Depth rate up-conversion
JP2020532797A (ja) 前の目線からのレンダリングされたコンテンツおよびレンダリングされなかったコンテンツを使用した新しいフレームの生成
US11501413B2 (en) Kernel reshaping-powered splatting-based efficient image space lens blur
CN112789660A (zh) 使用深度信息来外推出二维图像的系统和方法
CN107492144B (zh) 光影处理方法及电子设备
US12045933B2 (en) System and method for simulating light-in-flight
US11170578B1 (en) Occlusion detection
JP2015515058A (ja) シーン内の関与媒質を表現する方法および対応する装置
US11403811B1 (en) Estimating optical parameters of surfaces
KR20120119774A (ko) 곡면 투사를 이용한 입체 영상 생성 방법, 장치 및 시스템, 이를 위한 기록 매체
KR101425321B1 (ko) 적응형 렌즈 어레이를 구비하는 3차원 집적 영상 디스플레이 시스템 및 적응형 렌즈 어레이에 대한 요소 영상 생성 방법
KR20230161950A (ko) 자동 라벨링을 위한 방법, 장치 및 시스템
TWI852053B (zh) 使用深度圖的視像合成系統和方法
Nadar et al. Sensor simulation for monocular depth estimation using deep neural networks
KR101868101B1 (ko) 컨텐츠 생성 장치, 방법 및 컴퓨터 프로그램
KR20150128536A (ko) 영상 처리 방법 및 장치
JP6330310B2 (ja) 画像生成方法および画像生成装置ならびにプログラム

Legal Events

Date Code Title Description
E902 Notification of reason for refusal