KR20210087075A - 패스 스루 시각화 - Google Patents

패스 스루 시각화 Download PDF

Info

Publication number
KR20210087075A
KR20210087075A KR1020217017038A KR20217017038A KR20210087075A KR 20210087075 A KR20210087075 A KR 20210087075A KR 1020217017038 A KR1020217017038 A KR 1020217017038A KR 20217017038 A KR20217017038 A KR 20217017038A KR 20210087075 A KR20210087075 A KR 20210087075A
Authority
KR
South Korea
Prior art keywords
body part
time
tracking data
model representation
user
Prior art date
Application number
KR1020217017038A
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 KR20210087075A publication Critical patent/KR20210087075A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/248Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving reference images or patches
    • 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/10016Video; Image sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Generation (AREA)

Abstract

한 실시예에서, 방법은 사용자의 외부 환경에 대응하는 이미지 데이터를 수신하는 단계를 포함한다. 상기 이미지 데이터는 제 1 시간에 캡처되고 상기 사용자의 신체 부분을 포함한다. 상기 방법은 또한, 상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신하는 단계; 적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성하는 단계; 상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신하는 단계; 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정하는 단계; 및 상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이하는 단계를 포함한다.

Description

패스 스루 시각화
본 개시는 일반적으로 가상 환경을 렌더링하는 것에 관한 것이다.
인공 현실은 사용자에게 제시하기 전에 어떤 방식으로든 조정된 현실의 한 형태이다. 인공 현실은 예를 들어 가상 현실(VR), 증강 현실(AR), 혼합 현실(MR), 하이브리드 현실, 또는 이들의 일부 조합 및/또는 파생물을 포함할 수 있다. 인공 현실 콘텐츠는 캡처된 콘텐츠(예컨대, 실세계 사진들(real-world photographs))와 조합된 생성된 콘텐츠 또는 완전히 생성된 콘텐츠를 포함할 수 있다. 특정 실시예들에서, 사용자는 사용자가 사용자 환경 내에서 물리적 객체들과 상호 작용하는 방식과 유사한 방식으로 가상 객체와 상호 작용할 수 있다. 변경된 사용자 환경에 대한 인식을 생성하기 위해 인공 현실 시스템들은 시각, 청각, 및 촉각 효과의 조합을 사용할 수 있다. 인공 현실은 예컨대, 인공 현실에서 콘텐츠를 생성하기 위해 사용되고/거나 인공 현실에서 사용되는(예컨대, 인공 현실에서 활동들을 수행하는) 애플리케이션들, 제품들, 액세서리들, 서비스들, 또는 그들의 일부 조합과 연관될 수 있다. 인공 현실 콘텐츠를 제공하는 인공 현실 시스템은 호스트 컴퓨터 시스템에 연결된 헤드-마운티드 디스플레이(HMD), 독립형 HMD, 모바일 디바이스 또는 컴퓨팅 시스템, 또는 인공 현실 콘텐츠를 한명 이상의 뷰어들에게 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 포함하는 다양한 플랫폼들에서 구현될 수 있다.
본 개시는 일반적으로 가상 환경을 렌더링하는 것과 관련한 개선되고 향상된 구성 및 방법을 제공한다.
인공 현실 시스템의 컨트롤러는 예를 들어 자이로스코프, 가속도계, 자력계, 또는 이들의 임의의 조합과 같은 다수의 센서들을 포함할 수 있다. 인공 현실 헤드셋은 인공 현실 헤드셋을 착용한 사용자가 보는 가상 환경을 캡처하기 위해 하나 이상의 카메라들을 포함할 수 있다. 특정 실시예들에서, 카메라들에 의해 캡처된 이미지들은 외부 환경의 인공 버전을 렌더링하는 데 사용될 수 있다. 기본적인 레벨에서도 외부 환경을 렌더링하는 것은 이미지 프로세싱 지연 시간(image-processing latency)을 발생시킬 수 있으며, 이는 렌더링이 사용자의 신체(예를 들어, 손 또는 손목)의 움직임을 실시간으로 시각적으로 캡처하는 것을 어렵게 한다. 이와 같이, 사용자에게 디스플레이되는 가상 환경은 현재 시간 이전에 일어난 정보를 사용할 수 있다. 정적 가상 환경에서는 지연 시간이 인식되지 않을 수 있지만, 사람이 움직일 때 즉각적인 실시간 시각적 피드백에 대한 기대가 있기 때문에 지연 시간은 사용자 자신의 신체 움직임과 관련하여 인식 가능하게 될 수 있다.
전술한 바와 같이, 사용자 주변 환경은 인공 현실 헤드셋의 외부를 향한 카메라들에 의해 캡처될 수 있다. 특정 실시예들에서, 캡처된 이미지들은 외부 환경을 3 차원(3-D)으로 재구성하는 데 사용될 수 있다. 특정 실시예들에서, 알고리즘은 캡처된 이미지들로부터 시각적 단서들(visual cues)(예를 들어, 라인들(lines) 또는 날카로운 모서리(charp corners))를 추출하고, 추출된 라인들을 3D 렌더링으로 변환하여 희소 깊이 재구성(sparse depth reconstruction)을 초래할 수 있다. 이미지 콘텐츠는 인공 현실 헤드셋에 디스플레이되는 스타일화되거나 포토리얼리스틱 가상 환경(stylized or photorealistic virtual environment)을 통해 전달되어 오버레이될 수 있다.
아래에 설명되는 바와 같이, 외부 환경과 관련된 패스 스루 시각 정보(passthrough visual information)의 일부, 특히 손과 손목과 같이 사용자의 신체에 대응하는 패스 스루 시각 정보의 일부는 예를 들어 핸드-헬드 컨트롤러에 의해 측정되는 신체의 현재 포지션/지향 방향(current position/orientation)에 동기화될 수 있다. 특정 실시예들에서, 컨트롤러에 근접한 가상 환경의 렌더링은 컨트롤러의 센서들을 사용하여 획득될 수 있는 컨트롤러의 실시간 추적에 기초하여 변형될 수 있다. 제한이 아닌 예로서, 이미지 프로세싱 지연 시간으로 인해 이전 시간에 캡처된 이미지 콘텐츠를 사용하여 가상 환경이 생성될 수 있지만, 사용자의 손과 컨트롤러의 지연된 포지션에 대응하는 가상 환경 부분은 컨트롤러의 실시간 포지션과 일치하는 포지션으로 변형될 수 있다. 이러한 변형은 사용자와 연관된 모션에서 인지된 지연 시간을 제거할 수 있다. 특정 실시예들에서, 컨트롤러에 근접한 영역의 변형량은 이미지가 캡처되었을 때 컨트롤러의 포지션/지향 방향 및 컨트롤러의 현재(실시간) 포지션/지향 방향에 기초하여 변형 벡터를 결정하는 것에 기초하여 추론될 수 있다. 특정 실시예들에서, 삼각형 메시의 정점들(vertices of the triangular mesh)은 패스 스루 시각 환경 및 이러한 정점들의 움직임에 의해 관찰되는 패스 스루 가상 환경의 인지된 변위에 연결될 수 있다.
본 명세서에 개시된 실시예들은 단지 예들이고, 본 발명의 범위는 그들로 제한되지 않는다. 특정한 실시예들은 상기 개시된 실시예들의 구성요소들, 요소들, 피쳐들, 기능들, 동작들, 또는 단계들의 전부, 일부를 포함할 수 있거나, 그들 중 어느 것도 포함하지 않을 수 있다. 본 발명에 따른 실시예들은 특히, 방법, 저장 매체, 시스템, 및 컴퓨터 프로그램 제품과 관련된 첨부된 청구 범위에 개시되며, 하나의 청구항 카테고리, 예컨대 방법에 언급된 임의의 피처는 다른 청구항 카테고리, 예컨대 시스템에서도 역시 청구될 수 있다. 첨부된 청구 범위에서 종속하거나 또는 참조하는 것은 형식적인 이유로만 선택된다. 그러나 임의의 이전 청구항들(특히 다중 종속)에 대한 의도적인 참조에 의해 기인한 어떠한 청구 대상도 역시 청구될 수 있으므로, 청구 범위 및 그 특징들의 어떠한 조합도 개시되는 것이며 첨부된 청구 범위에서 선택된 종속과는 상관없이 청구될 수 있다. 청구될 수 있는 청구 대상은 첨부된 청구 범위에 명시된 특징들의 조합들뿐만 아니라 청구 범위 내의 특징들의 어떠한 다른 조합도 포함하며, 청구 범위에서 언급된 각 특징은 임의의 다른 특징 또는 청구 범위 내의 다른 특징들의 조합과 결합될 수 있다. 더욱이, 본 명세서에 기재되거나 묘사된 실시예들 및 특징들의 어떠한 것도 별도의 청구항으로 및/또는 본 명세서에 기재되거나 묘사된 임의의 실시예 또는 특징 또는 첨부된 청구 범위의 임의의 특징들과의 임의의 조합으로 청구될 수 있다.
일 실시예에서, 방법은:
하나 이상의 컴퓨팅 디바이스들에 의해, 사용자의 외부 환경에 대응하는 이미지 데이터를 수신하는 단계로서, 상기 이미지 데이터는 제 1 시간에 캡처되고 사용자의 신체 부분을 포함하는, 상기 이미지 데이터를 수신하는 단계;
상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신하는 단계;
상기 하나 이상의 컴퓨팅 디바이스들에 의해, 적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성하는 단계;
상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신하는 단계;
상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정하는 단계; 및
상기 하나 이상의 컴퓨팅 디바이스들에 의해 상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이하는 단계를 포함할 수 있다.
상기 변형을 결정하는 단계는 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 변환 함수를 계산하는 단계; 및 상기 신체 부분과 연관된 모델 표현에 상기 변환 함수를 적용하는 단계를 포함할 수 있다.
일 실시예에서, 방법은:
상기 신체 부분과 연관된 모델 표현에 대응하는 복수의 정점들(vertices)을 식별하는 단계; 및
상기 변환 함수에 기초하여 상기 정점들 중 하나 이상을 수정하는 단계를 포함할 수 있다.
수정된 정점들에 대한 수정의 양은 상기 신체 부분의 하나 이상의 관심 지점들에 대응하는 가장 가까운 로케이터(locator)로부터의 각각의 정점의 거리에 각각 비례할 수 있다.
상기 제 1 추적 데이터 및 상기 제 2 추적 데이터는 상기 가장 가까운 로케이터와 연관된 포지션 및 지향 방향 정보를 포함할 수 있다.
상기 제 1 시간 및 상기 제 2 시간은 미리 결정된 시간량만큼 분리될 수 있다.
일 실시예에서, 방법은 상기 제 2 시간에, 상기 제 2 시간 이전의 미리 결정된 시간량에 대응하는 시간에 기초하여 상기 제 1 추적 데이터를 질의(query)하는 단계를 포함할 수 있다.
상기 변형을 디스플레이하는 단계는 사용자가 착용한 헤드셋으로 데이터를 전송하는 단계를 포함할 수 있으며, 여기서 상기 데이터는 상기 신체 부분과 연관된 모델 표현의 모델 및 상기 이미지 데이터에 의해 캡처된 렌더링된 객체들을 포함하는 혼합 현실 환경에 대응한다.
일 실시예에서, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체는 소프트웨어를 포함할 수 있으며, 상기 소프트웨어는 실행될 때:
사용자의 외부 환경에 대응하는 이미지 데이터를 수신하고 -상기 이미지 데이터는 제 1 시간에 캡처되고 사용자의 신체 부분을 포함함-;
상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신하고;
적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성하고;
상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신하고;
상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정하고;
상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이하도록 동작가능한, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
일 실시예에서, 상기 소프트웨어는:
상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 변환 함수를 계산하고;
상기 신체 부분과 연관된 모델 표현에 상기 변환 함수를 적용하도록 동작가능할 수 있다.
일 실시예에서, 상기 소프트웨어는:
상기 신체 부분과 연관된 모델 표현에 대응하는 복수의 정점들을 식별하고;
상기 변환 함수에 기초하여 상기 정점들 중 하나 이상을 수정하도록 동작가능할 수 있다.
수정된 정점들에 대한 수정의 양은 상기 신체 부분의 하나 이상의 관심 지점들에 대응하는 가장 가까운 로케이터로부터의 각각의 정점의 거리에 각각 비례할 수 있다.
상기 제 1 추적 데이터 및 상기 제 2 추적 데이터는 상기 가장 가까운 로케이터와 연관된 포지션 및 지향 방향 정보를 포함할 수 있다.
상기 제 1 시간 및 상기 제 2 시간은 미리 결정된 시간량만큼 분리될 수 있다.
상기 소프트웨어는 상기 제 2 시간에, 상기 제 2 시간 이전의 미리 결정된 시간량에 대응하는 시간에 기초하여 상기 제 1 추적 데이터를 질의하도록 동작가능할 수 있다.
상기 소프트웨어는 상기 사용자가 착용한 헤드셋으로 데이터를 전송하도록 동작가능할 수 있으며;
상기 데이터는 상기 신체 부분과 연관된 모델 표현의 모델 및 상기 이미지 데이터에 의해 캡처된 렌더링된 객체들을 포함하는 혼합 현실 환경에 대응할 수 있다.
일 실시예에서, 시스템은:
하나 이상의 프로세서들; 및
상기 프로세서들에 의해 실행 가능한 명령어들을 포함하는 상기 프로세서들에 결합된 메모리를 포함하며, 상기 프로세서들은 상기 명령어들을 실행할 때:
사용자의 외부 환경에 대응하는 이미지 데이터를 수신하고 -상기 이미지 데이터는 제 1 시간에 캡처되고 상기 사용자의 신체 부분을 포함함-;
상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신하고;
적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성하고;
상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신하고;
상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정하고;
상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이하도록 동작가능한, 시스템.
상기 프로세서들은:
상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 변환 함수를 계산하고;
상기 신체 부분과 연관된 모델 표현에 상기 변환 함수를 적용하도록 동작가능할 수 있다.
상기 프로세서들은:
상기 신체 부분과 연관된 모델 표현에 대응하는 복수의 정점들을 식별하고;
상기 변환 함수에 기초하여 상기 정점들 중 하나 이상을 수정하도록 동작가능할 수 있다.
수정된 정점들에 대한 수정의 양은 상기 신체 부분의 하나 이상의 관심 지점들에 대응하는 가장 가까운 로케이터로부터의 각각의 정점의 거리에 각각 비례할 수 있다.
일 실시예에서, 하나 이상의 컴퓨터 판독 가능한 비-일시적 저장 매체는 전술한 실시예들 중 임의의 실시예에 따른 또는 그 내의 방법을 수행하도록 실행될 때 동작 가능한 소프트웨어를 포함할 수 있다.
일 실시예에서, 시스템은 하나 이상의 프로세서들; 및 상기 프로세서들에 결합되고 상기 프로세서들에 의해 실행 가능한 명령어들을 포함하는 적어도 하나의 메모리를 포함하며, 상기 프로세서들은 상기 전술한 실시예들 중 임의의 실시예에 따른 또는 그 내의 방법을 수행하기 위해 상기 명령어들을 실행할 때 동작가능하다.
일 실시예에서, 바람직하게는 컴퓨터 판독 가능한 비-일시적 저장 매체를 포함하는 컴퓨터 프로그램 제품은 상기 전술한 실시예들 중 임의의 실시예에 따른 또는 그 내의 방법을 수행하기 위해 데이터 처리 시스템 상에서 실행될 때 동작가능할 수 있다.
도 1은 예시적인 VR 시스템을 도시한다.
도 2는 가상 환경을 렌더링하기 위한 예시적인 모듈을 도시한다.
도 3은 예시적인 로케이터 추적을 도시한다.
도 4는 예시적인 삼각형 메쉬를 도시한다.
도 5는 예시적인 삼각형 메쉬의 변형을 도시한다.
도 6은 가상 환경을 렌더링할 때 지연 시간 보상을 위한 예시적인 방법을 도시한다.
도 7은 일 예시적인 컴퓨터 시스템을 도시한 도면이다.
인공 현실 시스템의 컨트롤러는 예를 들어 자이로스코프, 가속도계, 자력계, 또는 이들의 임의의 조합과 같은 다수의 센서들을 포함할 수 있다. 인공 현실 헤드셋은 인공 현실 헤드셋을 착용한 사용자가 보는 가상 환경을 캡처하기 위해 하나 이상의 카메라들을 포함할 수 있다. 특정 실시예들에서, 카메라들에 의해 캡처된 이미지들은 외부 환경의 인공 버전을 렌더링하는 데 사용될 수 있다.
전술한 바와 같이, 헤드셋의 카메라가 이미지를 캡처하는 시간과 인공 현실 시스템이 해당 이미지를 디스플레이하는 시간 사이에 지연 시간(latency)이 있다. 기본적인 레벨에서도 외부 환경을 렌더링하는 것은 이미지 프로세싱 지연 시간(예를 들어, 40 밀리초)을 발생시킬 수 있으며, 이는 렌더링이 사용자의 신체(예를 들어, 손 또는 손목)의 움직임을 실시간으로 시각적으로 캡처하는 것을 어렵게 한다. 이와 같이, 사용자에게 디스플레이되는 가상 환경은 현재 시간 이전(예를 들어, 40 밀리초 이전)에 일어난 정보를 사용할 수 있다. 정적 가상 환경에서는 지연 시간이 인식되지 않을 수 있지만, 사람이 움직일 때 즉각적인 실시간 시각적 피드백에 대한 기대가 있기 때문에 지연 시간은 사용자 자신의 신체 움직임과 관련하여 인식 가능하게 될 수 있다. 컨트롤러의 현재 포지션이 이미지 기반 추적만을 사용하여 추적되는 경우라도, 지연 시간은 전체 이미지 기반 3D 재구성 파이프라인(예를 들어, 다중 프레임들)에 비해 일반적으로 훨씬 낮다(예를 들어, 약 1 프레임 지연 시간). 컨트롤러가 (예를 들어, 관성 측정 유닛(IMU))을 사용하면, 지연 시간이 훨씬 더 줄어들게 된다(예를 들어, 킬로헤르츠 단위의 IMU 샘플링 주파수).
전술한 바와 같이, 사용자 주변 환경은 인공 현실 헤드셋의 외부를 향한 카메라들에 의해 캡처될 수 있다. 특정 실시예들에서, 캡처된 이미지들은 외부 환경을 3 차원(3-D)으로 재구성하는 데 사용될 수 있다. 특정 실시예들에서, 알고리즘은 캡처된 이미지들로부터 시각적 단서들(visual cues)(예를 들어, 라인들(lines) 또는 날카로운 모서리(charp corners))를 추출하고, 추출된 라인들을 3D 렌더링으로 변환하여 희소 깊이 재구성(sparse depth reconstruction)을 초래할 수 있다. 이미지 콘텐츠는 인공 현실 헤드셋에 디스플레이되는 양식화되거나 사실적인 가상 환경(stylized or photorealistic virtual environment)을 통해 전달되어 오버레이될 수 있다.
아래에 설명되는 바와 같이, 외부 환경과 관련된 패스 스루 시각 정보(pass-through visual information)의 일부, 특히 손과 손목과 같이 사용자의 신체에 대응하는 패스 스루 시각 정보의 일부는 예를 들어 핸드-헬드 컨트롤러에 의해 측정되는 신체의 현재 포지션/지향 방향(current position/orientation)에 동기화될 수 있다. 특정 실시예들에서, 컨트롤러에 근접한 가상 환경의 렌더링은 컨트롤러의 센서들을 사용하여 획득될 수 있는 컨트롤러의 실시간 추적에 기초하여 변형될 수 있다. 제한이 아닌 예로서, 이미지 프로세싱 지연 시간으로 인해 이전 시간에 캡처된 이미지 콘텐츠를 사용하여 가상 환경이 생성될 수 있지만, 사용자의 손과 컨트롤러의 지연된 포지션에 대응하는 가상 환경 부분은 컨트롤러의 실시간 포지션과 일치하는 포지션으로 변형될 수 있다. 이러한 변형은 사용자와 연관된 모션에서 인지된 지연 시간을 제거할 수 있다. 특정 실시예들에서, 컨트롤러에 근접한 영역의 변형량은 이미지가 캡처되었을 때 컨트롤러의 포지션/지향 방향 및 컨트롤러의 현재(실시간) 포지션/지향 방향에 기초하여 변형 벡터를 결정하는 것에 기초하여 추론될 수 있다. 특정 실시예들에서, 스타일화 또는 링 기반 렌더링의 경우, 삼각형 메시의 정점들은 패스 스루 시각 환경 및 이러한 정점들의 움직임에 의해 관찰되는 패스 스루 가상 환경의 인지된 변위에 연결될 수 있다. 특정 실시예들에서, 포토리얼리스틱 렌더링(photorealistic rendering)의 경우, 3D 기하학적 프록시(예를 들어, 메시(mesh))가 인공-현실 헤드셋의 카메라들을 사용하여 캡처된 이미지 데이터를 사용하여 계산될 수 있다. 3D 기하학적 프록시는 이미지 데이터를 사용하여 텍스처화될 수 있다. 제한이 아닌 예로서, 이러한 텍스처링은 포토리얼리스틱(예를 들어, 처리되지 않은 이미지 데이터) 또는 스타일화(예를 들어, 라인, 만화 스타일, 모든 종류의 이미지 필터)될 수 있다. 텍스처화된 메시는 컨트롤러의 현재 포지션으로 왜곡/업데이트될 수 있다.
본 발명의 실시예들은 인공 현실 시스템을 포함하거나 이와 관련하여 구현될 수 있다. 인공 현실은 사용자에게 제공 전에 일부 방식으로 조정된 현실의 형태이고, 이는 예를 들어 가상 현실(VR), 증강 현실(AR), 혼합 현실(MR), 하이브리드 현실 또는 이들의 일부 조합 및/또는 유도물을 포함할 수 있다. 인공 현실 콘텐츠는 캡쳐된 콘텐츠(예컨대, 실세계 사진들(real-world photographs))와 조합된 생성된 콘텐츠 또는 완전히 생성된 콘텐츠를 포함할 수 있다. 인공 현실 콘텐츠는 비디오, 오디오, 햅틱 피드백, 또는 그들의 일부 조합을 포함할 수 있으며, 그들 중 임의의 것은 단일 채널로 또는 다중 채널들(예컨대, 뷰어에게 3차원 효과를 생성하는 스테레오 비디오와 같음)로 제공될 수 있다. 부가적으로, 일부 실시예들에서, 인공 현실은 예컨대, 인공 현실에서 콘텐츠를 생성하기 위해 사용되고/거나 인공 현실에서 사용되는(예컨대, 인공 현실에서 활동들을 수행하는) 애플리케이션들, 제품들, 액세서리들, 서비스들, 또는 그들의 일부 조합과 연관될 수 있다. 인공 현실 콘텐츠를 제공하는 인공 현실 시스템은 호스트 컴퓨터 시스템에 연결된 헤드-마운티드 디스플레이(HMD), 독립형 HMD, 모바일 디바이스 또는 컴퓨팅 시스템, 또는 인공 현실 콘텐츠를 한명 이상의 뷰어들에게 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 포함하는 다양한 플랫폼들에서 구현될 수 있다.
도 1은 예시적인 인공 현실 시스템을 도시한다. 특정 실시예들에서, 인공 현실 시스템(100)은 헤드셋(102)(예를 들어, HMD), 하나 이상의 컨트롤러들(104), 및 컴퓨팅 시스템(106)을 포함할 수 있다. 여기서, "헤드셋” 및 "헤드 마운트 디스플레이"라는 용어는 인공 현실 시스템(100)을 위한 헤드 마운트 디바이스를 지칭하기 위해 혼용될 수 있다. 사용자는 헤드셋(102)의 하나 이상의 디스플레이 컴포넌트들 상에서 VR 또는 AR 콘텐츠를 사용자에게 디스플레이하도록 구성된 헤드셋(102)을 착용할 수 있다. 디스플레이 컴포넌트들은 입체 이미지들을 사용자에게 출력하도록 구성된 입체 출력 디바이스들일 수 있다. 헤드셋(102)은 컴퓨팅 시스템(106) 또는 컨트롤러(104)로부터의 데이터를 처리하는 프로세서를 포함할 수 있다. 또한, 헤드셋(102)은 외부 환경의 이미지들 및 비디오들을 캡처하도록 구성된 외부를 향하는 입체 카메라들을 포함할 수 있다. 이러한 이미지들은 사용자가 3 차원(3D) 가상 환경을 인식할 수 있도록 약간 상이한 시점들(slightly different perspectives)로부터 본 실세계 장면(real-world scene)을 나타낼 수 있다.
인공 현실 시스템(100)의 컴퓨팅 시스템(106)은 독립형 호스트 컴퓨터 시스템, 모바일 디바이스, 또는 인공 현실 콘텐츠를 사용자에게 제공하고 사용자로부터 입력을 수신할 수 있는 임의의 다른 하드웨어 플랫폼일 수 있다. 특정 실시예들에서, 컴퓨팅 시스템(106)은 후술하는 바와 같이, 프리프로세서, 피처 식별기, 지오메트리 모델러(geometry modeler), 및 깊이 추정기를 포함하는 모듈들로 애플리케이션을 실행할 수 있다. 이러한 모듈들 각각은 가상 환경을 생성하도록 구성된 프로세싱 파이프라인에서 서로 상이한 단계를 나타낼 수 있다. 동작시, 프리프로세서는 전술한 헤드셋(102)의 외부를 향한 카메라들에 의해 입체적으로 캡처된 좌측 및 우측 이미지들을 수신할 수 있으며, 이러한 이미지들은 콘트라스트를 증가시키기 위해 전처리될 수 있다. 전처리된 이미지들은 하나 이상의 피처들을 식별하기 위해 피처 식별기에 의해 분석될 수 있고, 지오메트리 모델러는 식별된 피처들에 기초하여 외부 환경을 나타내는 피처 지오메트리(feature geometry)를 생성할 수 있다. 특정 실시예들에서, 깊이 추정기는 피처 지오메트리를 향상시키고 기하학적 재구성을 생성하기 위해 깊이 정보를 보간 및/또는 외삽할 수 있다. 특정 실시예들에서, 지오메트리 프로젝터는 기하학적 재구성에 기초하여 입체 이미지를 렌더링한다. 렌더링된 입체 이미지들은 헤드셋(102)의 디스플레이 컴포넌트들 상에서 사용자에게 디스플레이되는 가상 환경의 적어도 일부를 형성한다.
특정 실시예들에서, 컨트롤러(104)는 헤드셋(102)에 무선으로 연결될 수 있다(예를 들어, WI-FI 또는 BLUETOOTH). 특정 실시예들에서, 제어기(104)는 사용자로부터 입력을 수신할 수 있고, 헤드셋(102)을 통해 컴퓨팅 시스템(106)으로 입력을 중계할 수 있다. 컨트롤러(104)는 또한 사용자로부터의 입력의 일부일 수 있는 움직임들을 추적하기 위해 하나 이상의 유형들의 모션 센서들을 포함할 수 있다. 제한이 아닌 예로서, 컨트롤러(104)는 자이로스코프, 가속도계, 자력계, 또는 이들의 임의의 조합을 포함할 수 있다. 자이로스코프는 세 축들(예를 들어, 피치(pitch), 롤(roll), 및 요(yaw))을 따라 각속도를 측정하도록 구성된 모션 센서이다. 가속도계는 가속도 및 중력을 측정하도록 구성된 모션 센서이고, 자력계는 컨트롤러(104) 근처 주위의 3 차원 자기장을 측정하도록 구성된 센서이다. 헤드셋(102)의 프로세서는 컨트롤러(104)의 포지션 또는 지향 방향을 결정하기 위해 컨트롤러(104)의 센서들로부터 데이터를 수신하고 사용할 수 있다.
도 2는 가상 환경을 렌더링하기 위한 예시적인 모듈을 도시한다. 전술한 바와 같이, 시각화 모듈들은 콘트라스트를 최대화하기 위해 입체 이미지들을 전처리하는 프리프로세서 모듈(202)을 포함할 수 있다. 피처 추출기(204)는 전처리된 이미지를 수신할 수 있고, 라인, 에지 또는 코너를 포함하는 이러한 이미지들로부터 피처들의 세트를 추출할 수 있다. 특정 실시예들에서, 피처 추출기(204)는 사용자가 국소화 및/또는 지향 방향의 목적을 위해 인식할 수 있는 임의의 적절한 시각적 단서 또는 시각적 참조를 검출하기 위해 좌측 및 우측 이미지들을 분석하는 하나 이상의 컴퓨터 비전 기술들을 구현할 수 있다. 제한이 아닌 예로서, 피처 추출기(204)는 특정 에지들에 속하는 픽셀의 특정 그룹들을 식별하기 위해 캐니 에지 검출 알고리즘(Canny edge detection algorithm)을 구현할 수 있다. 피처 추출기(204)는 특정 분류로 전처리된 이미지들 내의 픽셀들 또는 픽셀 그룹들에 태그를 지정할 수 있고, 그 다음 태그되고, 전처리된 이미지들을 지오메트리 모델러(206)에 제공할 수 있다.
각각의 피처에 대해, 지오메트리 모델러(206)는 하나 이상의 2 차원(2-D) 폴리라인들(polylines)을 생성할 수 있다. 지오메트리 모델러(206)는 피처 추출기(204)에 의해 검출된 주어진 에지에 걸쳐 라인 세그먼트를 오버레이하고, 그 라인 세그먼트를 정의하는 정점들의 세트를 생성할 수 있다. 특정 실시예들에서, 지오메트리 모델러(206)는 입체 이미지의 우측 이미지에서 발견되는 2-D 폴리라인들과 좌측 이미지들에서 발견되는 대응하는 2-D 폴리라인들 사이에서 삼각 측량하여 3 차원 폴리라인들의 세트를 생성할 수 있다. 제한이 아닌 예로서, 지오메트리 모델러(206)는 이들 폴리라인들의 각각의 정점에 대한 깊이 정보를 추론하기 위해 매칭된 2-D 폴리라인들 사이에서 삼각 측량을 할 수 있고, 이에 의해 3-D 폴리라인들을 생성할 수 있다. 각각의 3D 폴리라인은 3D 정점들의 세트를 포함할 수 있다. 특정 실시예들에서, 생성된 3-D 폴리라인들은 외부 환경의 기하학적 재구성을 위한 기초를 형성하고, 깊이 추정기(208)를 통해 추가로 처리될 수 있다.
특정 실시예들에서, 깊이 추정기(208)는 추가적인 3-D 정점들을 근사화하기 위한 삼각형 메시를 생성할 수 있다. 삼각형 메시는 3D 폴리라인들 사이를 가로질러 외부 환경의 기하학적 구조에 근사한 표면을 형성할 수 있다. 삼각형 메시는 공통 에지들 또는 코너들에 의해 연결된 삼각형들의 세트를 포함한다.
로케이터 추적기 모듈(210)은 외부 환경에서 로케이터들의 포지션을 추적하도록 구성될 수 있다. 아래에 설명되는 바와 같이, 하나 이상의 전처리된 이미지들에 대해, 하나 이상의 관심 신체 부분들(예를 들어, 손 및 손목)에 대응하는 로케이터들의 세트 및 저 지연 시간의 추적된 객체들(low-latency-tracked objects)(예를 들어, 컨트롤러)의 포지션에 대한 각 로케이터의 포지션/지향 방향이 정의될 수 있다. 아래에 설명되는 바와 같이, 로케이터 추적기 모듈(210)은 사용자가 보유한 컨트롤러의 포지션 및 지향 방향을 실시간으로 추적하는 것에 기초하여 상기 정의된 로케이터들의 포지션 및 지향 방향을 실시간으로 추적하도록 구성될 수 있다.
변환 모듈(212)은 시간 t에서 로케이터들의 세트의 위치를 결정하도록 구성될 수 있다. 특정 실시예들에서, 변환 모듈(212)은 주어진 시간 t에서 저 지연 시간의 추적된 객체(예를 들어, 컨트롤러)의 포지션 및 지향 방향에 기초하여 로케이터의 포지션 및 지향 방향을 계산하도록 구성된다. 변환 모듈(212)은 컨트롤러가 시간에 걸쳐 추적되는지 추적할 수 있다. 특정 실시예들에서, 변환 모듈(212)은 함수 시간 t로서 데이터 저장소에 로케이터의 포지션 및 지향 방향을 계산 및 저장하고, 나중에 사용하기 위해 데이터 저장소에 질의할 수 있다.
변형 모듈(214)은 사용자의 신체 부분에 대응하는 영역의 가상 환경을 현재 시간에 각각의 로케이터에 기초한 포지션 및 지향 방향으로 변형하도록 구성될 수 있다. 특정 실시예들에서, 변형 모듈(214)은 위에 설명된 삼각형 메시의 하나 이상의 정점들을 현재 시간에 대응하는 포지션 및 지향 방향으로 수정할 수 있다. 제한이 아닌 예로서, 변형 모듈(214)은 현재 시간에서의 로케이터들의 위치와 이전 시간 t1에서 로케이터들의 위치 사이의 차이인 변위 벡터를 계산하는 것에 기초하여 삼각 메시의 하나 이상의 정점들을 수정할 수 있다.
도 3은 예시적인 로케이터 추적을 도시한다. 특정 실시예들에서, 사용자의 신체 부분의 포지션 또는 지향 방향은 저 지연 시간의 추적된 객체들을 사용하여 실시간으로 추적될 수 있다. 전술한 바와 같이, 인공 현실 시스템의 컨트롤러(104)는 실시간으로 추적될 수 있다. 제한이 아닌 예로서, 사용자가 보유한 컨트롤러(104)의 센서들은 저 지연 시간의 추적된 객체일 수 있다. 컨트롤러(104)는 3-D의 그 포지션 및 지향 방향(예를 들어, 피치, 롤, 및 요)에 대응하는 6 개의 자유도(DoFs)로 추적될 수 있다. 특정 실시예들에서, 하나 이상의 관심 신체 부분들(예를 들어, 손(302) 및 손목(304))에 대응하는 로케이터들의 세트 및 저 지연 시간의 추적된 객체들(예를 들어, 컨트롤러(104))의 포지션에 대한 각 로케이터(302 및 304)의 포지션/지향 방향이 정의될 수 있다. 제한이 아닌 예로서, 손목에 대응하는 로케이터(304)는 손에 대응하는 로케이터(302)로부터 미리 결정된 거리(예를 들어, 평균 손 크기)에서 정의될 수 있다. 특정 실시예들에서, 로케이터(302)의 위치(312) 및 로케이터(304)의 위치(314)는 컨트롤러(104)의 위치에 기초하여 시간의 함수로서 추적될 수 있다. 또한, 다른 신체 부분(예를 들어, 팔꿈치 또는 어깨), 헤드셋 포지션, 또는 외부 환경의 다른 동적 요소들(예를 들어, 다른 사람들/객체들)이 유사한 방식으로 추적될 수 있다. 본 개시는 특정 저 지연 시간의 추적된 객체들을 사용하여 로케이터들의 포지션을 추적하는 것을 설명하고 예시하지만, 본 개시는 예를 들어 빠른 이미지 기반 객체 추적기, 증강 현실 타겟/마커(예를 들어, QR 코드), 또는 컨트롤러 또는 헤드셋 포지션과 결합하는 역 운동학(inverse kinematics)과 같은 임의의 적절한 방법들 또는 객체들을 사용하여 로케이터들의 포지션을 추적하는 것을 고려한다.
도 4는 예시적인 삼각형 메쉬를 도시한다. 특정 실시예들에서, 깊이 추정기 모듈로부터의 삼각형 메시는 손 로케이터(302), 손목 로케이터(304), 다수의 정점들(402), 및 정점들(402)의 쌍들을 연결함으로써 삼각형 메시를 형성하는 폴리 라인들(404)을 포함할 수 있다. 삼각형 메시는 공통 에지들 또는 코너들에 의해 연결된 삼각형들의 세트를 포함한다. 전술한 바와 같이, 삼각형 메시는 외부 환경(예를 들어, 사용자의 손과 손목 주변 영역)의 기하학적 구조(geometry)에 가까운 표면을 형성한다. 후술하는 바와 같이, 외부 환경의 기하학적 구조는 하나 이상의 로케이터들(예를 들어, 302 또는 304)과 연관된 하나 이상의 정점들(402)의 포지션 또는 지향 방향을 수정함으로써 변형될 수 있다. 본 개시는 특정 저 지연 시간의 추적된 객체들을 사용하여 로케이터들의 포지션을 추적하는 것을 설명하고 예시하지만, 본 개시는 예를 들어 빠른 이미지 기반 객체 추적기, 증강 현실 타겟/마커(예를 들어, QR 코드), 또는 컨트롤러 또는 헤드셋 포지션과 결합하는 역 운동학과 같은 임의의 적절한 방법들 또는 객체들을 사용하여 로케이터들의 포지션을 추적하는 것을 고려한다.
도 5는 예시적인 삼각형 메쉬의 변형을 도시한다. 이미지 프로세싱 지연 시간량은 실험적으로 특징을 나타낼 수 있으며, 지연 시간이 어떻게 변동하는지 이해함으로써 그에 따라 신체 부분에 대응하는 외부 환경이 모델링될 수 있다. 특정 실시예들에서, 로케이터들의 포지션 및 지향 방향은 임의의 주어진 시간 t에서 컨트롤러 및 변환 모듈의 추적을 통해 알려지게 된다. 변형 모듈은 임의의 이전 시간 t1에서 로케이터들의 저장된 포지션 및 지향 방향에 대해 변환 모듈에 질의할 수 있다. 현재 시간 t에서 신체 부분에 대응하는 외부 환경의 일부를 렌더링하기 위해, 변형 모듈은 이미지 프로세싱 지연 시간으로 인해 사용자에게 이미지들이 디스플레이되는 시간에 대응하는 이전 시간 t1을 결정할 수 있다. 이전 시간 t1은 방정식(1)에 의해 현재 시간 t와 관련된다:
t1 = t - tlatency (1)
여기서 t1은 이미지가 캡처됐던 이전 시간에 대응하고, t는 현재 시간, tlatency는 이미지 프로세싱 지연 시간량(예를 들어, 초 단위)에 대응한다. 특정 실시예들에서, 변형 모듈은 현재 시간 t에서의 로케이터들의 포지션 및 지향 방향과 이전 시간 t1에서의 로케이터들의 포지션 및 지향 방향에 기초하는 변위 벡터(506)를 계산할 수 있다.전술한 바와 같이, 변형 모듈은 현재 시간 t에서 신체 부분의 포지션과 함께 외부 환경에 대응하는 삼각형 메쉬(504)를 결정하기 위해 이전 시간 t1에 대응하는 삼각형 메쉬(502)를 수정하는 변환 함수를 계산할 수 있다. 특정 실시예들에서, 변형 모듈은 이전 시간 t1에서 각각의 로케이터(302 및 304)가 삼각형 메시의 정점에 미치는 영향 또는 가중치를 계산할 수 있다. 제한이 아닌 예로서, 로케이터들(302 및 304)에 더 가까운 정점은 로케이터들(302 및 304)로부터 더 멀리있는 정점보다 더 큰 변위를 가질 수 있다. 특정 실시예들에서, 각각의 정점에 적용되는 변환 함수는 가중치들에 따른 변위 벡터(506)의 선형 조합일 수 있다. 특정 실시예들에서, 삼각형 메시(502 및 504)의 정점들은 렌더링된 외부 환경의 대응하는 부분에 연결되며, 이러한 정점들(3D 또는 2D에서)을 이동시킴으로써 상기 외부 환경의 부분의 변위가 사용자에 의해 인지될 수 있다. 제한이 아닌 예로서, 로케이터들의 포지션 및 지향 방향을 상기 외부 환경의 부분과 정렬함으로써, 로케이터들(302 및 304)은 손 및 손목에 대응하는 상기 외부 환경의 부분과 각각 정렬될 수 있다. 본 개시가 특정 신체 부분들에 대응하는 삼각형 메시를 수정하는 것을 설명하고 예시하지만, 본 개시는 예를 들어 팔꿈치 또는 다리와 같은 임의의 적절한 신체 부분들에 대응하는 삼각형 메시를 수정하는 것을 고려한다.
도 6은 가상 환경을 렌더링할 때 지연 시간 보상을 위한 예시적인 방법을 도시한다. 방법(600)은 컴퓨팅 디바이스가 사용자의 외부 환경에 대응하는 이미지 데이터를 수신할 수 있는 단계 610에서 시작할 수 있다. 특정 실시예들에서, 이미지 데이터는 헤드셋의 하나 이상의 외부를 향하는 카메라들에 의해 제 1 시간에 캡처되고 사용자의 신체 부분을 포함한다. 단계(620)에서, 컴퓨팅 디바이스는 상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신할 수 있다. 단계 630에서, 컴퓨팅 디바이스는 적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성할 수 있다. 특정 실시예들에서, 상기 모델 표현은 사용자의 손 및 손목과 연관될 수 있다. 단계 640에서, 컴퓨팅 디바이스는 상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신할 수 있다. 특정 실시예들에서, 제 2 시간은 현재 시간 t일 수 있다. 단계 650에서, 컴퓨팅 디바이스는 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정할 수 있다. 특히, 상기 변형은 제 1 시간(이전 시간 t1)에서의 컨트롤러의 포지션 및 제 2 시간(현재 시간 t)에서의 컨트롤러의 포지션에 기초한 변형 함수일 수 있다. 제한이 아닌 예로서, 변환 함수는 가장 가까운 로케이터로부터 각각의 정점의 거리에 비례하는 함수일 수 있다. 단계 660에서, 컴퓨팅 디바이스는 상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이할 수 있다. 특정 실시예들에서, 상기 모델 표현은 헤드셋의 디스플레이 컴포넌트를 통해 사용자에게 디스플레이될 수 있다.
특정 실시예들은 적절한 경우 도 6의 방법의 하나 이상의 단계들을 반복할 수 있다. 본 개시가 특정 순서로 일어나는 것으로서 도 6의 방법의 특정 단계들을 설명하고 예시하지만, 본 개시는 임의의 적절한 순서로 일어나는 도 6의 방법의 임의의 적절한 단계들을 고려한다. 더욱이, 본 개시가 도 6의 방법의 특정 단계들을 포함하는 가상 환경을 렌더링할 때 지연 시간 보상을 위한 예시적인 방법을 설명하고 예시하지만, 본 개시는, 적절한 경우 도 6의 방법의 단계들을 전부, 일부, 또는 전혀 포함하지 않을 수 있는, 임의의 적절한 단계들을 포함하는 가상 환경을 렌더링할 때 지연 시간 보상을 위한 임의의 적절한 방법을 고려한다. 더욱이, 본 개시가 도 6의 방법의 특정 단계들을 수행하는 특정 구성 요소들, 디바이스들, 또는 시스템들을 설명하고 예시하지만, 본 개시는 도 6의 방법의 임의의 적절한 단계들을 수행하는 임의의 적절한 구성 요소들, 디바이스들, 또는 시스템들의 임의의 적절한 조합을 고려한다.
도 7은 일 예시적인 컴퓨터 시스템을 도시한 도면이다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(700)은 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(700)은 본 명세서에서 설명되거나 도시된 기능을 제공한다. 특정한 실시예들에서, 하나 이상의 컴퓨터 시스템들(700)에서 실행되는 소프트웨어는 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 수행하거나 본 명세서에서 설명되거나 도시된 기능을 제공한다. 특정한 실시예들은 하나 이상의 컴퓨터 시스템들(700)의 하나 이상의 부분들을 포함한다. 본 명세서에서, 컴퓨터 시스템에 대한 참조는 적절한 경우, 컴퓨팅 디바이스를 포함할 수 있으며, 그 반대도 마찬가지이다. 게다가, 컴퓨터 시스템에 대한 참조는 적절한 경우, 하나 이상의 컴퓨터 시스템들을 포함할 수 있다.
본 발명은 임의의 적합한 수의 컴퓨터 시스템들(700)을 고려한다. 본 발명은 임의의 적합한 물리적 형태를 취하는 컴퓨터 시스템(700)을 고려한다. 제한이 아닌 예로서, 컴퓨터 시스템(700)은 내장된 컴퓨터 시스템, 시스템 온 칩(SOC), 단일 보드 컴퓨터 시스템(SBC)(예를 들면, 컴퓨터 온 모듈(COM) 또는 시스템 온 모듈(SOM)과 같음), 데스크탑 컴퓨터 시스템, 랩탑 또는 노트북 컴퓨터 시스템, 대화형 키오스크, 메인프레임, 컴퓨터 시스템들의 메쉬, 모바일 전화, 개인 휴대용 정보 단말기(PDA), 서버, 태블릿 컴퓨터 시스템, 증강/가상 현실 디바이스, 또는 그들 중 2개 이상의 조합일 수 있다. 적절한 경우, 컴퓨터 시스템(700)은 하나 이상의 컴퓨터 시스템들(700)을 포함할 수 있거나; 단일 또는 분산될 수 있거나; 다수의 위치들에 걸쳐 있을 수 있거나; 다수의 기계들에 걸쳐 있을 수 있거나; 다수의 데이터 센터들에 걸쳐 있을 수 있거나; 하나 이상의 네트워크들에 하나 이상의 클라우드 구성요소들을 포함시킬 수 있는 클라우드에 상주할 수 있다. 적절한 경우, 하나 이상의 컴퓨터 시스템들(700)은 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 실질적인 공간적 또는 시간적 제한 없이 수행할 수 있다. 제한이 아닌 예로서, 하나 이상의 컴퓨터 시스템들(700)은 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 실시간 또는 배치 모드로 수행할 수 있다. 하나 이상의 컴퓨터 시스템들(700)은 적절한 경우, 본 명세서에서 설명되거나 도시된 하나 이상의 방법들의 하나 이상의 단계들을 상이한 시간들에서 또는 상이한 위치들에서 수행할 수 있다.
특정한 실시예들에서, 컴퓨터 시스템(700)은 프로세서(702), 메모리(704), 저장장치(706), 입력/출력(I/O) 인터페이스(708), 통신 인터페이스(710), 및 버스(712)를 포함한다. 본 발명이 특정한 배열로 특정한 수의 특정한 구성요소들을 가지는 특정한 컴퓨터 시스템을 설명하고 도시할지라도, 본 발명은 임의의 적합한 배열로 임의의 적합한 수의 임의의 적합한 구성요소들을 가지는 임의의 적합한 컴퓨터 시스템을 고려한다.
특정한 실시예들에서, 프로세서(702)는 컴퓨터 프로그램을 구성하기 위한 지시들과 같은, 지시들을 실행하기 위한 하드웨어를 포함한다. 제한이 아닌 예로서, 지시들을 실행하기 위해, 프로세서(702)는 내부 레지스터, 내부 캐시, 메모리(704), 또는 저장장치(706)로부터 지시들을 검색(또는 인출)하고; 그들을 디코딩하고 실행하며; 그 다음, 하나 이상의 결과들을 내부 레지스터, 내부 캐시, 메모리(704), 또는 저장장치(706)에 기록할 수 있다. 특정한 실시예들에서, 프로세서(702)는 데이터, 지시들, 또는 주소들을 위한 하나 이상의 내부 캐시들을 포함할 수 있다. 본 발명은 적절한 경우, 임의의 적합한 수의 임의의 적합한 내부 캐시들을 포함하는 프로세서(702)를 고려한다. 제한이 아닌 예로서, 프로세서(702)는 하나 이상의 지시 캐시들, 하나 이상의 데이터 캐시들, 및 하나 이상의 변환 색인 버퍼(translation lookaside buffer; TLB)들을 포함할 수 있다. 지시 캐시들에서의 지시들은 메모리(704) 또는 저장장치(706)에서의 지시들의 카피들일 수 있고, 지시 캐시들은 프로세서(702)에 의한 그들 지시들의 검색의 속도를 높일 수 있다. 데이터 캐시들에서의 데이터는 동작할 프로세서(702)에서 실행되는 지시들을 위한 메모리(704) 또는 저장장치(706)에서의 데이터; 프로세서(702)에서 실행되는 후속 지시들에 의해 액세스하기 위해 또는 메모리(704) 또는 저장장치(706)에 기록하기 위해 프로세서(702)에서 실행된 이전 지시들의 결과들; 또는 다른 적합한 데이터의 카피들일 수 있다. 데이터 캐시들은 프로세서(702)에 의한 판독 또는 기록 동작들의 속도를 높일 수 있다. TLB들은 프로세서(702)를 위한 가상 주소 변환의 속도를 높일 수 있다. 특정한 실시예들에서, 프로세서(702)는 데이터, 지시들, 또는 주소들을 위한 하나 이상의 내부 레지스터들을 포함할 수 있다. 본 발명은 적절한 경우, 임의의 적합한 수의 임의의 적합한 내부 레지스터들을 포함하는 프로세서(702)를 고려한다. 적절한 경우, 프로세서(702)는 하나 이상의 산술 논리 유닛(ALU)들을 포함하거나; 멀티 코어 프로세서일 수 있거나; 하나 이상의 프로세서들(702)을 포함할 수 있다. 본 발명이 특정한 프로세서를 설명하고 도시할지라도, 본 발명은 임의의 적합한 프로세서를 고려한다.
특정한 실시예들에서, 메모리(704)는 프로세서(702)가 실행할 지시들 또는 프로세서(702)가 동작할 데이터를 저장하기 위한 메인 메모리를 포함한다. 제한이 아닌 예로서, 컴퓨터 시스템(700)은 저장장치(706) 또는 또 다른 소스(예를 들면, 또 다른 컴퓨터 시스템(700)과 같음)로부터 메모리(704)로 지시들을 로드할 수 있다. 프로세서(702)는 그 다음, 메모리(704)로부터 내부 레지스터 또는 내부 캐시로 지시들을 로드할 수 있다. 지시들을 실행하기 위해, 프로세서(702)는 내부 레지스터 또는 내부 캐시로부터 지시들을 검색하고 그들을 디코딩할 수 있다. 지시들의 실행 동안 또는 이후에, 프로세서(702)는 하나 이상의 결과들(중간 또는 최종 결과들일 수 있음)을 내부 레지스터 또는 내부 캐시에 기록할 수 있다. 프로세서(702)는 그 다음, 그들 결과들 중 하나 이상을 메모리(704)에 기록할 수 있다. 특정한 실시예들에서, 프로세서(702)는 하나 이상의 내부 레지스터들 또는 내부 캐시들에서 또는 메모리(704)(저장장치(706)와는 대조적으로 또는 어딘가의)에서 단지 지시들을 실행하고 하나 이상의 내부 레지스터들 또는 내부 캐시들에서 또는 메모리(704)(저장장치(706)와는 대조적으로 또는 어딘가의)에서 단지 데이터에 따라 동작한다. 하나 이상의 메모리 버스들(주소 버스 및 데이터 버스를 각각 포함할 수 있음)은 프로세서(702)를 메모리(704)에 결합할 수 있다. 버스(712)는 하기에 설명된 바와 같이, 하나 이상의 메모리 버스들을 포함할 수 있다. 특정한 실시예들에서, 하나 이상의 메모리 관리 유닛(MMU)들은 프로세서(702)와 메모리(704) 사이에 상주하고 프로세서(702)에 의해 요청된 메모리(704)에 대한 액세스들을 용이하게 한다. 특정한 실시예들에서, 메모리(704)는 랜덤 액세스 메모리(RAM)를 포함한다. 이 RAM은 적절한 경우, 휘발성 메모리일 수 있다. 적절한 경우, 이 RAM은 동적 RAM(DRAM) 또는 정적 RAM(SRAM)일 수 있다. 게다가, 적절한 경우, 이 RAM은 단일 포트되거나 다중 포트된 RAM일 수 있다. 본 발명은 임의의 적합한 RAM을 고려한다. 메모리(704)는 적절한 경우, 하나 이상의 메모리들(704)을 포함할 수 있다. 본 발명이 특정한 메모리를 설명하고 도시할지라도, 본 발명은 임의의 적합한 메모리를 고려한다.
특정한 실시예들에서, 저장장치(706)는 데이터 또는 지시들을 위한 대용량 저장장치를 포함한다. 제한이 아닌 예로서, 저장장치(706)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광 디스크, 광 자기 디스크, 자기 테이프, 또는 범용 직렬 버스(Universal Serial Bus; USB) 드라이브 또는 그들 중 2개 이상의 조합을 포함할 수 있다. 저장장치(706)는 적절한 경우, 탈착가능하거나 탈착가능하지 않은(또는 고정된) 매체들을 포함할 수 있다. 저장장치(706)는 적절한 경우, 컴퓨터 시스템(700)의 내부 또는 외부에 있을 수 있다. 특정한 실시예들에서, 저장장치(706)는 비 휘발성, 고체 상태 메모리이다. 특정한 실시예들에서, 저장장치(706)는 판독 전용 메모리(ROM)를 포함한다. 적절한 경우, 이 ROM은 마스크 프로그래밍된 ROM, 프로그래밍가능한 ROM(PROM), 소거가능한 PROM(EPROM), 전기적으로 소거가능한 PROM(EEPROM), 전기적으로 개조가능한 ROM(EAROM), 또는 플래시 메모리 또는 그들 중 2개 이상의 조합을 포함한다. 본 발명은 임의의 적합한 물리적 형태를 취하는 대용량 저장장치(706)를 고려한다. 저장장치(706)는 적절한 경우, 프로세서(702)와 저장장치(706) 사이의 통신을 용이하게 하는 하나 이상의 저장 제어 유닛들을 포함할 수 있다. 적절한 경우, 저장장치(706)는 하나 이상의 저장장치들(706)을 포함할 수 있다. 본 발명이 특정한 저장장치를 설명하고 도시할지라도, 본 발명은 임의의 적합한 저장장치를 고려한다.
특정한 실시예들에서, I/O 인터페이스(708)는 컴퓨터 시스템(700)과 하나 이상의 I/O 디바이스들 사이의 통신을 위한 하나 이상의 인터페이스들을 제공하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 컴퓨터 시스템(700)은 적절한 경우, 이들 I/O 디바이스들 중 하나 이상을 포함할 수 있다. 이들 I/O 디바이스들 중 하나 이상은 사람과 컴퓨터 시스템(700) 사이의 통신을 가능하게 할 수 있다. 제한이 아닌 예로서, I/O 디바이스는 키보드, 키패드, 마이크로폰, 모니터, 마우스, 프린터, 스캐너, 스피커, 고정형 카메라, 스타일러스, 태블릿, 터치 스크린, 트랙볼, 비디오 카메라, 또 다른 적합한 I/O 디바이스 또는 이들 중 2개 이상의 조합을 포함할 수 있다. I/O 디바이스는 하나 이상의 센서들을 포함할 수 있다. 본 발명은 임의의 적합한 I/O 디바이스들 및 그들을 위한 임의의 적합한 I/O 인터페이스들(708)을 고려한다. 적절한 경우, I/O 인터페이스(708)는 프로세서(702)가 이들 I/O 디바이스들 중 하나 이상을 구동하는 것을 가능하게 하는 하나 이상의 디바이스 또는 소프트웨어 구동기들을 포함할 수 있다. I/O 인터페이스(708)는 적절한 경우, 하나 이상의 I/O 인터페이스들(708)을 포함할 수 있다. 본 발명이 특정한 I/O 인터페이스를 설명하고 도시할지라도, 본 발명은 임의의 적합한 I/O 인터페이스를 고려한다.
특정한 실시예들에서, 통신 인터페이스(710)는 컴퓨터 시스템(700)과 하나 이상의 다른 컴퓨터 시스템들(700) 또는 하나 이상의 네트워크들 사이의 통신(예를 들면, 패킷 기반 통신과 같음)을 위한 하나 이상의 인터페이스들을 제공하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 제한이 아닌 예로서, 통신 인터페이스(710)는 이더넷 또는 다른 유선 기반 네트워크와 통신하기 위한 네트워크 인터페이스 제어기(NIC) 또는 네트워크 어댑터 또는 와이파이 네트워크와 같은, 무선 네트워크와 통신하기 위한 무선 NIC(WNIC) 또는 무선 어댑터를 포함할 수 있다. 본 발명은 임의의 적합한 네트워크 및 그것을 위한 임의의 적합한 통신 인터페이스(710)를 고려한다. 제한이 아닌 예로서, 컴퓨터 시스템(700)은 애드 혹 네트워크, 근거리 개인 통신망(PAN), 근거리 통신망(LAN), 광역 통신망(WAN), 도시권 통신망(MAN), 또는 인터넷의 하나 이상의 부분들 또는 그들 중 2개 이상의 조합과 통신할 수 있다. 이들 네트워크들 중 하나 이상의 하나 이상의 부분들은 유선 또는 무선일 수 있다. 일례로서, 컴퓨터 시스템(700)은 무선 PAN(WPAN)(예를 들면, 블루투스 WPAN과 같음), 와이파이 네트워크, WI-MAX 네트워크, 셀룰러 전화 네트워크(예를 들면, 모바일 통신을 위한 글로벌 시스템(Global System for Mobile Communications; GSM) 네트워크와 같음), 또는 다른 적합한 무선 네트워크 또는 이들 중 2개 이상의 조합과 통신할 수 있다. 컴퓨터 시스템(700)은 적절한 경우, 이들 네트워크 중 임의의 것을 위한 임의의 적합한 통신 인터페이스(710)를 포함할 수 있다. 통신 인터페이스(710)는 적절한 경우, 하나 이상의 통신 인터페이스들(710)을 포함할 수 있다. 본 발명이 특정한 통신 인터페이스를 설명하고 도시할지라도, 본 발명은 임의의 적합한 통신 인터페이스를 고려한다.
특정한 실시예들에서, 버스(712)는 컴퓨터 시스템(700)의 구성요소들을 서로 결합하는 하드웨어, 소프트웨어, 또는 둘 모두를 포함한다. 제한이 아닌 예로서, 버스(712)는 가속화된 그래픽 포트(Accelerated Graphics Port; AGP) 또는 다른 그래픽 버스, 향상된 산업 표준 아키텍처(Enhanced Industry Standard Architecture; EISA) 버스, FSB(front-side bus), 하이퍼트랜스포트(HYPERTRANSPORT)(HT) 상호연결, 산업 표준 아키텍처(ISA) 버스, 인피니밴드 상호연결, LPC(low-pin-count) 버스, 메모리 버스, 마이크로 채널 아키텍처(Micro Channel Architecture; MCA) 버스, 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스, PCI-Express(PCIe) 버스, SATA(serial advanced technology attachment) 버스, VLB(Video Electronics Standards Association local) 버스, 또는 또 다른 적합한 버스 또는 이들 중 2개 이상의 조합을 포함할 수 있다. 버스(712)는 적절한 경우, 하나 이상의 버스들(712)을 포함할 수 있다. 본 발명이 특정한 버스를 설명하고 도시할지라도, 본 발명은 임의의 적합한 버스 또는 상호연결부를 고려한다.
본 명세서에서, 컴퓨터 판독가능한 비-일시적 저장 매체 또는 매체들은 하나 이상의 반도체 기반 또는 다른 집적 회로들(ICs)(예를 들면, 필드 프로그래밍가능한 게이트 어레이들(FPGAs) 또는 주문형 반도체들(ASICs)과 같음), 하드 디스크 드라이브들(HDDs), 하이브리드 하드 드라이브들(HHDs), 광 디스크들, 광 디스크 드라이브들(ODDs), 광 자기 디스크들, 광 자기 드라이브들, 플로피 디스켓들, 플로피 디스크 드라이브들(FDDs), 자기 테이프들, 고체 상태 드라이브들(SSDs), RAM 드라이브들, 보안 디지털 카드들 또는 드라이브들, 임의의 다른 적합한 컴퓨터 판독가능한 비-일시적 저장 매체들, 또는 적절한 경우, 이들 중 2개 이상의 임의의 적합한 조합을 포함할 수 있다. 컴퓨터 판독가능한 비-일시적 저장 매체는 적절한 경우, 휘발성, 비 휘발성, 또는 휘발성 및 비 휘발성의 조합일 수 있다.
본 명세서에서, "또는"은 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, 포괄적이고 배타적이지 않다. 따라서, 본 명세서에서, "A 또는 B"는 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, "A, B, 또는 둘 모두"를 의미한다. 게다가, "및"은 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, 공동 및 몇몇 둘 모두이다. 따라서, 본 명세서에서, "A 및 B"는 명확하게 다르게 나타내거나 맥락에 의해 다르게 나타내지 않는 한, "A 및 B, 공동으로 또는 개별적으로"를 의미한다.
본 발명의 범위는 당업자가 이해할 본 명세서에서 설명되고 도시된 예시적인 실시예들에 대한 모든 변경들, 교체들, 변형들, 개조들, 및 수정들을 포함한다. 본 발명의 범위는 본 명세서에서 설명되고 도시된 예시적인 실시예들에서 제한되지 않는다. 게다가, 본 발명이 본 명세서에서의 각각의 실시예들을 특정한 구성요소들, 요소들, 피처, 기능들, 동작들, 또는 단계들을 포함하는 것으로서 설명하고 도시할지라도, 이들 실시예들 중 임의의 것은 당업자가 이해할 본 명세서의 어딘가에서 설명되고 도시된 구성요소들, 요소들, 피처들, 기능들, 동작들, 또는 단계들 중 임의의 것의 임의의 조합 또는 순열을 포함할 수 있다. 더욱이, 특정 기능을 수행하도록 적응되거나, 배열되거나, 할 수 있거나, 구성되거나, 할 수 있게 되거나, 동작 가능하거나, 또는 동작하는 장치 또는 시스템, 또는 장치 또는 시스템의 구성요소에 대한 첨부된 청구범위에서의 참조는, 그 장치, 시스템, 또는 구성성분이 적응되고, 배열되고, 할 수 있고, 구성되고, 할 수 있게 되고, 동작 가능하고, 동작하는 한, 그 장치, 시스템, 또는 구성성분, 또는 그 특정 기능이 활성화되거나, 턴 온되거나, 또는 잠금해제되는 것과는 무관하게 그 장치, 시스템, 또는 구성요소를 망라한다. 부가적으로, 본 발명이 특정한 실시예들을 특정한 장점들을 제공하는 것으로서 설명하거나 도시할지라도, 특정한 실시예들은 이들 장점들을 전혀 제공하지 않거나, 그들의 일부 또는 전부를 제공할 수 있다.

Claims (35)

  1. 방법으로서:
    하나 이상의 컴퓨팅 디바이스들에 의해, 사용자의 외부 환경에 대응하는 이미지 데이터를 수신하는 단계로서, 상기 이미지 데이터는 제 1 시간에 캡처되고 사용자의 신체 부분을 포함하는, 상기 이미지 데이터를 수신하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정하는 단계; 및
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서, 상기 변형을 결정하는 단계는:
    상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 변환 함수를 계산하는 단계; 및
    상기 신체 부분과 연관된 모델 표현에 상기 변환 함수를 적용하는 단계를 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 신체 부분과 연관된 모델 표현에 대응하는 복수의 정점들(vertices)을 식별하는 단계; 및
    상기 변환 함수에 기초하여 상기 정점들 중 하나 이상을 수정하는 단계를 더 포함하는, 방법.
  4. 제 3 항에 있어서, 상기 수정된 정점들에 대한 수정의 양은 상기 신체 부분의 하나 이상의 관심 지점들에 대응하는 가장 가까운 로케이터(locator)로부터의 각각의 정점의 거리에 각각 비례하는, 방법.
  5. 제 4 항에 있어서, 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터는 상기 가장 가까운 로케이터와 연관된 포지션(position) 및 지향 방향(orientation) 정보를 포함하는, 방법.
  6. 제 1 항에 있어서, 상기 제 1 시간 및 상기 제 2 시간은 미리 결정된 시간량만큼 분리되는, 방법.
  7. 제 6 항에 있어서, 상기 제 2 시간에, 상기 제 2 시간 이전의 미리 결정된 시간량에 대응하는 시간에 기초하여 상기 제 1 추적 데이터를 질의(query)하는 단계를 더 포함하는, 방법.
  8. 제 1 항에 있어서, 상기 변형을 디스플레이하는 단계는 사용자가 착용한 헤드셋으로 데이터를 전송하는 단계를 포함하고, 상기 데이터는 상기 신체 부분과 연관된 모델 표현의 모델 및 상기 이미지 데이터에 의해 캡처된 렌더링된 객체들을 포함하는 혼합 현실 환경에 대응하는, 상기 데이터를 전송하는 단계를 포함하는, 방법.
  9. 소프트웨어를 포함하는 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체로서, 상기 소프트웨어는 실행될 때:
    사용자의 외부 환경에 대응하는 이미지 데이터를 수신하고 -상기 이미지 데이터는 제 1 시간에 캡처되고 상기 사용자의 신체 부분을 포함함-;
    상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신하고;
    적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성하고;
    상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신하고;
    상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정하고;
    상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이하도록 동작가능한, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
  10. 제 9 항에 있어서, 상기 소프트웨어는 또한:
    상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 변환 함수를 계산하고;
    상기 신체 부분과 연관된 모델 표현에 상기 변환 함수를 적용하도록 동작가능한, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
  11. 제 10 항에 있어서, 상기 소프트웨어는 또한:
    상기 신체 부분과 연관된 모델 표현에 대응하는 복수의 정점들을 식별하고;
    상기 변환 함수에 기초하여 상기 정점들 중 하나 이상을 수정하도록 동작가능한, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
  12. 제 11 항에 있어서, 상기 수정된 정점들에 대한 수정의 양은 상기 신체 부분의 하나 이상의 관심 지점들에 대응하는 가장 가까운 로케이터로부터의 각각의 정점의 거리에 각각 비례하는, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
  13. 제 12 항에 있어서, 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터는 상기 가장 가까운 로케이터와 연관된 포지션 및 지향 방향 정보를 포함하는, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
  14. 제 9 항에 있어서, 상기 제 1 시간 및 상기 제 2 시간은 미리 결정된 시간량만큼 분리되는, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
  15. 제 14 항에 있어서, 상기 소프트웨어는 또한 상기 제 2 시간에, 상기 제 2 시간 이전의 미리 결정된 시간량에 대응하는 시간에 기초하여 상기 제 1 추적 데이터를 질의(query)하도록 동작가능한, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
  16. 제 9 항에 있어서,
    상기 소프트웨어는 또한 상기 사용자가 착용한 헤드셋으로 데이터를 전송하도록 동작가능하며;
    상기 데이터는 상기 신체 부분과 연관된 모델 표현의 모델 및 상기 이미지 데이터에 의해 캡처된 렌더링된 객체들을 포함하는 혼합 현실 환경에 대응하는, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
  17. 시스템으로서:
    하나 이상의 프로세서들; 및
    상기 프로세서들에 의해 실행 가능한 명령어들을 포함하는 상기 프로세서들에 결합된 메모리를 포함하며, 상기 프로세서들은 상기 명령어들을 실행할 때:
    사용자의 외부 환경에 대응하는 이미지 데이터를 수신하고 -상기 이미지 데이터는 제 1 시간에 캡처되고 상기 사용자의 신체 부분을 포함함-;
    상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신하고;
    적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성하고;
    상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신하고;
    상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정하고;
    상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이하도록 동작가능한, 시스템.
  18. 제 17 항에 있어서, 상기 프로세서들은 또한:
    상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 변환 함수를 계산하고;
    상기 신체 부분과 연관된 모델 표현에 상기 변환 함수를 적용하도록 동작가능한, 시스템.
  19. 제 18 항에 있어서, 상기 프로세서들은 또한:
    상기 신체 부분과 연관된 모델 표현에 대응하는 복수의 정점들을 식별하고;
    상기 변환 함수에 기초하여 상기 정점들 중 하나 이상을 수정하도록 동작가능한, 시스템.
  20. 제 19 항에 있어서, 상기 수정된 정점들에 대한 수정의 양은 상기 신체 부분의 하나 이상의 관심 지점들에 대응하는 가장 가까운 로케이터로부터의 각각의 정점의 거리에 각각 비례하는, 시스템.
  21. 방법으로서:
    하나 이상의 컴퓨팅 디바이스들에 의해, 사용자의 외부 환경에 대응하는 이미지 데이터를 수신하는 단계로서, 상기 이미지 데이터는 제 1 시간에 캡처되고 사용자의 신체 부분을 포함하는, 상기 이미지 데이터를 수신하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신하는 단계;
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정하는 단계; 및
    상기 하나 이상의 컴퓨팅 디바이스들에 의해, 상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이하는 단계를 포함하는, 방법.
  22. 제 21 항에 있어서, 상기 변형을 결정하는 단계는:
    상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 변환 함수를 계산하는 단계; 및
    상기 신체 부분과 연관된 모델 표현에 상기 변환 함수를 적용하는 단계를 포함하는, 방법.
  23. 제 22 항에 있어서,
    상기 신체 부분과 연관된 모델 표현에 대응하는 복수의 정점들을 식별하는 단계; 및
    상기 변환 함수에 기초하여 상기 정점들 중 하나 이상을 수정하는 단계를 포함하며,
    선택적으로, 상기 수정된 정점들에 대한 수정의 양은 상기 신체 부분의 하나 이상의 관심 지점들에 대응하는 가장 가까운 로케이터로부터의 각각의 정점의 거리에 각각 비례하고,
    선택적으로, 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터는 상기 가장 가까운 로케이터와 연관된 포지션 및 지향 방향 정보를 포함하는, 방법.
  24. 제 21 항 내지 제 23 항 중 어느 한 항에 있어서,
    상기 제 1 시간 및 상기 제 2 시간은 미리 결정된 시간량만큼 분리되고,
    선택적으로, 상기 제 2 시간에, 상기 제 2 시간 이전의 미리 결정된 시간량에 대응하는 시간에 기초하여 상기 제 1 추적 데이터를 질의하는 단계를 더 포함하는, 방법.
  25. 제 21 항 내지 제 24 항 중 어느 한 항에 있어서, 상기 변형을 디스플레이하는 단계는 사용자가 착용한 헤드셋으로 데이터를 전송하는 단계를 더 포함하며, 상기 데이터는 상기 신체 부분과 연관된 모델 표현의 모델 및 상기 이미지 데이터에 의해 캡처된 렌더링된 객체들을 포함하는 혼합 현실 환경에 대응하는, 방법.
  26. 소프트웨어를 포함하는 하나 이상의 컴퓨터 판독 가능한 비-일시적 저장 매체로서, 상기 소프트웨어는 실행될 때 제 21 항 내지 제 25 항 중 어느 한 항에 따른 방법을 수행하도록, 또는:
    사용자의 외부 환경에 대응하는 이미지 데이터를 수신하고 -상기 이미지 데이터는 제 1 시간에 캡처되고 상기 사용자의 신체 부분을 포함함-;
    상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신하고;
    적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성하고;
    상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신하고;
    상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정하고;
    상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이하도록 동작가능한, 하나 이상의 컴퓨터 판독 가능한 비-일시적 저장 매체.
  27. 제 26 항에 있어서, 상기 소프트웨어는 또한:
    상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 변환 함수를 계산하고;
    상기 신체 부위와 연관된 모델 표현에 상기 변환 함수를 적용하도록 동작가능한, 하나 이상의 컴퓨터 판독 가능한 비-일시적 저장 매체.
  28. 제 27 항에 있어서, 상기 소프트웨어는 또한:
    상기 신체 부분과 연관된 모델 표현에 대응하는 복수의 정점들을 식별하고;
    상기 변환 함수에 기초하여 상기 정점들 중 하나 이상을 수정하도록 동작가능하며,
    선택적으로, 상기 수정된 정점들에 대한 수정의 양은 상기 신체 부분의 하나 이상의 관심 지점들에 대응하는 가장 가까운 로케이터로부터의 각각의 정점의 거리에 각각 비례하고,
    선택적으로, 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터는 상기 가장 가까운 로케이터와 연관된 포지션 및 지향 방향 정보를 포함하는, 하나 이상의 컴퓨터 판독 가능한 비-일시적 저장 매체.
  29. 제 26 항 내지 제 28 항 중 어느 한 항에 있어서, 상기 제 1 시간 및 상기 제 2 시간은 미리 결정된 시간량만큼 분리되고,
    선택적으로, 상기 소프트웨어는 또한 상기 제 2 시간에, 상기 제 2 시간 이전의 미리 결정된 시간량에 대응하는 시간에 기초하여 상기 제 1 추적 데이터를 질의하도록 동작가능한, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
  30. 제 26 항 내지 제 29 항 중 어느 한 항에 있어서,
    상기 소프트웨어는 또한 상기 사용자가 착용한 헤드셋으로 데이터를 전송하도록 동작가능하며;
    상기 데이터는 상기 신체 부분과 연관된 모델 표현의 모델 및 상기 이미지 데이터에 의해 캡처된 렌더링된 객체들을 포함하는 혼합 현실 환경에 대응하는, 하나 이상의 컴퓨터 판독가능한 비-일시적 저장 매체.
  31. 시스템으로서:
    하나 이상의 프로세서들; 및
    상기 프로세서들에 의해 실행 가능한 명령어들을 포함하는 상기 프로세서들에 결합된 메모리를 포함하며, 상기 프로세서들은 상기 명령어들을 실행할 때 제 21 항 내지 제 25 항 중 어느 한 항에 따른 방법을 실행하도록 또는:
    사용자의 외부 환경에 대응하는 이미지 데이터를 수신하고 -상기 이미지 데이터는 제 1 시간에 캡처되고 상기 사용자의 신체 부분을 포함함-;
    상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 상기 제 1 시간에 행해진 측정들에 기초하여 생성된 제 1 추적 데이터를 수신하고;
    적어도 상기 이미지 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현을 생성하고;
    상기 신체 부분과 연관된 적어도 하나의 모션 센서에 의해 제 2 시간에 행해진 측정들에 기초하여 생성된 제 2 추적 데이터를 수신하고;
    상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 상기 신체 부분과 연관된 모델 표현의 변형을 결정하고;
    상기 사용자의 신체 부분과 연관된 모델 표현의 변형을 디스플레이하도록 동작가능한, 시스템.
  32. 제 31 항에 있어서, 상기 프로세서들은 또한:
    상기 제 1 추적 데이터 및 상기 제 2 추적 데이터에 기초하여 변환 함수를 계산하고;
    상기 신체 부분과 연관된 모델 표현에 상기 변환 함수를 적용하도록 동작가능한, 시스템.
  33. 제 32 항에 있어서, 상기 프로세서들은 또한:
    상기 신체 부분과 연관된 모델 표현에 대응하는 복수의 정점들을 식별하고;
    상기 변환 함수에 기초하여 상기 정점들 중 하나 이상을 수정하도록 동작가능하며,
    선택적으로, 상기 수정된 정점들에 대한 수정의 양은 상기 신체 부분의 하나 이상의 관심 지점들에 대응하는 가장 가까운 로케이터로부터의 각각의 정점의 거리에 각각 비례하고,
    선택적으로, 상기 제 1 추적 데이터 및 상기 제 2 추적 데이터는 상기 가장 가까운 로케이터와 연관된 포지션 및 지향 방향 정보를 포함하는, 시스템.
  34. 제 31 항 내지 제 33 항 중 어느 한 항에 있어서, 상기 제 1 시간 및 상기 제 2 시간은 미리 결정된 시간량만큼 분리되고,
    선택적으로, 상기 제 2 시간에, 상기 제 2 시간 이전의 미리 결정된 시간량에 대응하는 시간에 기초하여 상기 제 1 추적 데이터를 질의하는 것을 더 포함하는, 시스템.
  35. 제 31 항 내지 제 34 항 중 어느 한 항에 있어서, 상기 변형을 디스플레이하는 것은 사용자가 착용한 헤드셋으로 데이터를 전송하는 것을 포함하고, 상기 데이터는 상기 신체 부분과 연관된 모델 표현의 모델 및 상기 이미지 데이터에 의해 캡처된 렌더링된 객체들을 포함하는 혼합 현실 환경에 대응하는, 시스템.
KR1020217017038A 2018-11-06 2020-01-03 패스 스루 시각화 KR20210087075A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862756440P 2018-11-06 2018-11-06
US62/756,440 2018-11-06
US16/213,789 2018-12-07
US16/213,789 US10861223B2 (en) 2018-11-06 2018-12-07 Passthrough visualization
PCT/US2020/012238 WO2020097631A1 (en) 2018-11-06 2020-01-03 Passthrough visualization

Publications (1)

Publication Number Publication Date
KR20210087075A true KR20210087075A (ko) 2021-07-09

Family

ID=70458887

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217017038A KR20210087075A (ko) 2018-11-06 2020-01-03 패스 스루 시각화

Country Status (5)

Country Link
US (2) US10861223B2 (ko)
JP (1) JP2022550644A (ko)
KR (1) KR20210087075A (ko)
CN (1) CN113302667A (ko)
WO (1) WO2020097631A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210258350A1 (en) * 2020-02-19 2021-08-19 Lookout, Inc. Privacy preservation in network connections
US11507179B2 (en) 2020-09-17 2022-11-22 Meta Platforms Technologies, Llc Systems and methods for predicting lower body poses
US11651625B2 (en) * 2020-09-17 2023-05-16 Meta Platforms Technologies, Llc Systems and methods for predicting elbow joint poses
US11481960B2 (en) * 2020-12-30 2022-10-25 Meta Platforms Technologies, Llc Systems and methods for generating stabilized images of a real environment in artificial reality

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8803888B2 (en) * 2010-06-02 2014-08-12 Microsoft Corporation Recognition system for sharing information
US9245177B2 (en) * 2010-06-02 2016-01-26 Microsoft Technology Licensing, Llc Limiting avatar gesture display
US8740702B2 (en) * 2011-05-31 2014-06-03 Microsoft Corporation Action trigger gesturing
US9128520B2 (en) * 2011-09-30 2015-09-08 Microsoft Technology Licensing, Llc Service provision using personal audio/visual system
US8666119B1 (en) * 2011-11-29 2014-03-04 Lucasfilm Entertainment Company Ltd. Geometry tracking
US8913809B2 (en) * 2012-06-13 2014-12-16 Microsoft Corporation Monitoring physical body changes via image sensor
US9536338B2 (en) * 2012-07-31 2017-01-03 Microsoft Technology Licensing, Llc Animating objects using the human body
US10353532B1 (en) * 2014-12-18 2019-07-16 Leap Motion, Inc. User interface for integrated gestural interaction and multi-user collaboration in immersive virtual reality environments
KR20170028130A (ko) * 2015-09-03 2017-03-13 박준호 웨어러블 디바이스
US10186081B2 (en) * 2015-12-29 2019-01-22 Microsoft Technology Licensing, Llc Tracking rigged smooth-surface models of articulated objects
US9747668B2 (en) * 2016-01-21 2017-08-29 Disney Enterprises, Inc. Reconstruction of articulated objects from a moving camera
WO2017147178A1 (en) 2016-02-22 2017-08-31 Google Inc. Separate time-warping for a scene and an object for display of virtual reality content
US9805514B1 (en) 2016-04-21 2017-10-31 Microsoft Technology Licensing, Llc Dynamic haptic retargeting
KR101961221B1 (ko) * 2017-09-18 2019-03-25 한국과학기술연구원 가상 공간에 형성된 가상 모델을 제어하는 방법 및 시스템
US11128932B2 (en) * 2018-05-09 2021-09-21 Gree, Inc. Video distribution system for live distributing video containing animation of character object generated based on motion of actors

Also Published As

Publication number Publication date
US11436790B2 (en) 2022-09-06
US20210082176A1 (en) 2021-03-18
WO2020097631A1 (en) 2020-05-14
US10861223B2 (en) 2020-12-08
CN113302667A (zh) 2021-08-24
JP2022550644A (ja) 2022-12-05
US20200143584A1 (en) 2020-05-07

Similar Documents

Publication Publication Date Title
US10725297B2 (en) Method and system for implementing a virtual representation of a physical environment using a virtual reality environment
KR20210087075A (ko) 패스 스루 시각화
KR101687017B1 (ko) 머리 착용형 컬러 깊이 카메라를 활용한 손 위치 추정 장치 및 방법, 이를 이용한 맨 손 상호작용 시스템
US8933931B2 (en) Distributed asynchronous localization and mapping for augmented reality
US8878846B1 (en) Superimposing virtual views of 3D objects with live images
US10733798B2 (en) In situ creation of planar natural feature targets
US10768711B2 (en) Mediated reality
Jia et al. 3D image reconstruction and human body tracking using stereo vision and Kinect technology
US11507203B1 (en) Body pose estimation using self-tracked controllers
US10762713B2 (en) Method for developing augmented reality experiences in low computer power systems and devices
CN115515487A (zh) 基于使用多视图图像的3d人体姿势估计的基于视觉的康复训练系统
US20200211275A1 (en) Information processing device, information processing method, and recording medium
Carozza et al. An immersive hybrid reality system for construction training
US20230245322A1 (en) Reconstructing A Three-Dimensional Scene
JP7479978B2 (ja) 内視映像表示システム、内視映像表示装置及び内視映像表示方法
JP7490072B2 (ja) マルチビュー画像を使用した3d人間ポーズ推定に基づく視覚ベースのリハビリ訓練システム
US20240029363A1 (en) Late stage occlusion based rendering for extended reality (xr)
Lee et al. Unaffected user interface for CAVE using motion templates method
WO2024006693A1 (en) Virtual selfie-stick selfie
KR20130067449A (ko) 3차원 실 환경 복원 및 상호작용 방법과 그 장치

Legal Events

Date Code Title Description
A201 Request for examination