KR20210022498A - 반복 신경망들을 통한 포즈 예측 - Google Patents

반복 신경망들을 통한 포즈 예측 Download PDF

Info

Publication number
KR20210022498A
KR20210022498A KR1020200102496A KR20200102496A KR20210022498A KR 20210022498 A KR20210022498 A KR 20210022498A KR 1020200102496 A KR1020200102496 A KR 1020200102496A KR 20200102496 A KR20200102496 A KR 20200102496A KR 20210022498 A KR20210022498 A KR 20210022498A
Authority
KR
South Korea
Prior art keywords
pose
rnn
prediction
head
computer
Prior art date
Application number
KR1020200102496A
Other languages
English (en)
Other versions
KR102478026B1 (ko
Inventor
이바나 토식 로저스
데이비드 츄
모하메드 모하라미
세바스티안 실반
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20210022498A publication Critical patent/KR20210022498A/ko
Application granted granted Critical
Publication of KR102478026B1 publication Critical patent/KR102478026B1/ko

Links

Images

Classifications

    • 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
    • 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/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • G01C21/1656Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
    • 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
    • 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
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • 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
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • Multimedia (AREA)
  • Automation & Control Theory (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)

Abstract

증강 현실 경험을 위한 머리 포즈 예측에 대한 요청을 수신하는 단계, 상기 증강 현실 경험과 관련된 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 식별하는 단계, 복수의 셀들을 포함하는 RNN(Recurrent Neural Network)에 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 제공하는 시스템들, 방법들 및 컴퓨터 프로그램 제품들이 서술된다. RNN은 복수의 셀들 중 적어도 하나와 적어도 하나의 완전 연결(FC) 층을 각각 포함하는 복수의 반복 단계들을 포함할 수 있다. 상기 RNN은 적어도 하나의 다가오는 기간 동안 증강 현실 경험을 위한 머리 포즈 변경들에 대응하는 적어도 하나의 포즈 예측을 생성하고, 적어도 하나의 포즈 예측을 제공하고 그리고 상기 적어도 하나의 포즈 예측에 기초하여 증강 현실 콘텐츠의 디스플레이를 촉발한다.

Description

반복 신경망들을 통한 포즈 예측{POSE PREDICTION WITH RECURRENT NEURAL NETWORKS}
본 발명은 가상 현실(VR) 및/또는 증강 현실(AR) 경험 및/또는 혼합 현실(MR) 및 그러한 경험에 액세스하는 사용자들과 관련된 포즈를 예측하는 것에 관한 것이다.
가상 현실(VR) 시스템 또는 증강 현실(AR) 시스템에 의해 생성된 경험과 같은 몰입형 경험에서, 추적은 VR/AR 경험에 있는 동안 사용자의 미래 움직임들에 대한 통찰력을 제공할 수 있다. 추적은 사용자가 다음에 이동할 수 있는 위치에 대한 예측에 의해 보완될 수 있다. VR/AR 콘텐츠가 VR/AR 가능 디바이스의 동일한 위치에 있는 기지국에서와 같이 원격으로 추적 및/또는 렌더링되는 경우, 지연은 디바이스에서 렌더링 서버로 그리고 다시 디바이스로 돌아오는 왕복 시간에 의해 발생할 수 있다. 도입된 지연으로 인해 사용자의 움직임들을 예측하는 정확도에 오류가 발생할 수 있다.
하나 이상의 컴퓨터로 구성된 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합을 작동중 시스템이 작업들을 수행하도록 하는 시스템에 설치함으로써 특정 동작들이나 작업들을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 처리 장치에 의해 실행될 때 장치로 하여금 동작들을 수행하게 하는 명령어들을 포함함으로써 특정 동작들 또는 작업들을 수행하도록 구성될 수 있다.
하나의 일반적인 양태에서, 컴퓨터로 구현되는 방법이 서술된다. 상기 컴퓨터로 구현되는 방법은, 증강 현실 경험을 위한 머리 포즈 예측에 대한 요청을 수신하는 단계, 상기 증강 현실 경험과 관련된 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 식별하는 단계, 그리고 복수의 셀들을 포함하는 RNN(Recurrent Neural Network)에 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 제공하는 단계를 포함한다. RNN은 복수의 셀들 중 적어도 하나 및 적어도 하나의 완전 연결(FC) 층을 각각 포함하는 복수의 반복 단계들을 포함할 수 있다. 상기 복수의 셀들 중 적어도 일부는 이력 기간(historical time period)과 연관될 수 있다. 상기 컴퓨터로 구현되는 방법은 또한 적어도 하나의 다가오는 기간 동안 상기 증강 현실 경험에 대한 머리 포즈 변화들에 대응하는 적어도 하나의 포즈 예측을 생성하기 위해 상기 RNN을 사용하는 단계와; 그리고 상기 요청에 응답하여 상기 적어도 하나의 포즈 예측을 제공하고 그리고 상기 적어도 하나의 포즈 예측에 기초하여 상기 증강 현실 경험에서 증강 현실 콘텐츠의 디스플레이를 촉발(trigger)하는 단계를 포함한다.
상기 컴퓨터로 구현되는 방법의 특정 구현들은 다음의 특징들의 일부 또는 전부를 포함할 수 있다. 상기 적어도 하나의 위치 지시자는 3차원 머리 위치 벡터일 수 있고 그리고 상기 적어도 하나의 회전 지시자는 4차원 쿼터니언(quaternion)일 수 있다. 일부 구현들에서, 상기 적어도 하나의 회전 지시자는 요, 피치 및 롤을 포함한다. 일부 구현들에서, 상기 적어도 하나의 회전 지시자는 회전량을 나타내는 크기와 회전축을 나타내는 방향을 갖는 3차원 벡터일 수 있다.
일부 구현들에서, 상기 RNN은 상기 적어도 하나의 포즈 예측에 기초하여 추가 후보 예측들을 생성하고 그리고 상기 추가 후보 예측들 각각에 대한 평균 제곱 오차를 결정하도록 구성되며, 상기 평균 제곱 오차는 각각의 추가 머리 포즈 예측을 폐기할지를 나타낸다. 일부 구현들에서, 상기 RNN은 추가적인 다가오는 기간에서 머리 포즈 변화들에 대한 추가 예측들을 재귀적으로 결정하도록 구성된다.
일부 구현들에서, 상기 머리 포즈 예측에 대한 요청을 수신하는 단계는 네트워크를 통해 클라이언트 디바이스로부터 이력 머리 포즈 데이터의 수신을 포함한다. 일부 구현들에서, 머리 포즈 변경들에 대한 적어도 하나의 포즈 예측을 제공하는 것은, 머리 포즈 변경들에 대한 상기 적어도 하나의 포즈 예측에 기초하여 상기 네트워크를 통해 상기 클라이언트 디바이스에 상기 증강 현실 경험에서 렌더링된 콘텐츠를 제공하는 것을 포함한다.
다른 일반적인 양태에서, 가상 현실 환경에서 포즈들을 예측하기 위한 컴퓨터로 구현되는 방법은 상기 가상 현실 환경에서 사용자 움직임들에 대응하는 이력 포즈 데이터를 획득하는 단계와; 상기 이력 포즈 데이터로부터 결정된 포즈 특징들을 포함하는 제1 이력 벡터 시퀀스를 생성하는 단계와; 그리고 RNN(Recurrent Neural Network)을 실행하는 상기 제1 이력 벡터 시퀀스를 사용하여, 다가오는 기간에 대한 제1 포즈 예측을 결정하는 단계를 포함한다. 상기 RNN은 복수의 LSTM(long short-term memory) 셀들 및 적어도 하나의 완전히 연결된 신경망을 포함할 수 있다. 상기 컴퓨터로 구현되는 방법은, 상기 RNN 및 제1 이력 벡터 시퀀스를 사용하여, 다가오는 기간에 대한 제1 포즈 예측을 생성하는 단계, 및 상기 RNN을 사용하여, 상기 제1 포즈 예측 및 상기 복수의 LSTM 셀들 중 적어도 하나의 상태를 수신하는 것에 응답하여 후속 기간 동안 복수의 추가 포즈 예측들을 재귀적으로 생성하는 단계를 더 포함할 수 있다.
상기 컴퓨터로 구현되는 방법의 특정 구현들은 다음의 특징들의 일부 또는 전부를 포함할 수 있다. 예를 들어, 상기 가상 현실 환경에서의 사용자 움직임들에 대응하는 상기 이력 포즈 데이터는 상기 사용자 움직임들과 관련된 속도 또는 가속도 측정들을 포함할 수 있다. 일부 구현들에서, 상기 방법은 상기 다가오는 기간 이후의 해당 기간들에서 상기 추가 포즈 예측들에 기초하여 가상 현실 콘텐츠를 디스플레이할 위치를 결정하는 단계와, 그리고 상기 가상 현실 환경에서 디스플레이하기 위해 상기 가상 현실 콘텐츠의 렌더링을 촉발(trigger)하는 단계를 더 포함할 수 있다.
일부 구현들에서, 상기 제1 이력 벡터 시퀀스는 계산된 평균값 및 계산된 분산값에 적어도 부분적으로 기초하여 정규화된 RNN에 대한 입력을 나타내고, 그리고 상기 제1 포즈 예측 및 상기 복수의 추가 포즈 예측들은 가상 현실 콘텐츠를 디스플레이할 위치들을 결정하기 전에 상기 계산된 평균값 및 상기 계산된 분산값에 기초하여 비정규화된다. 일부 구현들에서, 상기 복수의 LSTM 셀들 내의 각 LSTM 셀의 상태는 다음 순차적인 포즈 예측과 함께 상기 RNN에 대한 입력으로서 제공되고, 그리고 상기 복수의 추가 포즈 예측들은 상기 복수의 LSTM 셀들에서 각각의 LSTM 셀의 상태에 적어도 부분적으로 기초한다.
일부 구현들에서, 상기 RNN은 알려진 포즈 시퀀스들의 데이터베이스에서 훈련되고, 그리고 상기 이력 포즈 데이터는 가상 현실 애플리케이션을 실행하는 모바일 장치와 관련된 순차적 포즈 데이터이다. 일부 구현들에서, 상기 RNN은, 상기 복수의 추가 포즈 예측들 각각에 대한 평균 절대 오차, 평활도 비용 및 포즈 변경 비용을 정의하는 오차 함수를 결정하도록 구성된다.
일부 구현들에서, 상기 오차 함수는 검출된 각도 오차 또는 상기 복수의 추가 포즈 예측들 중 하나 이상과 관련된 검출된 눈 위치 오차에 기초하여 결정된다. 일부 구현들에서, 상기 오차 함수는 상기 복수의 추가 포즈 예측들의 일부에 기초한 가중 오차를 나타낸다.
다른 일반적인 양태에서, 비 일시적인 컴퓨터 판독 가능 매체에 유형적으로 구현되고 그리고 명령어들을 포함하는 컴퓨터 프로그램 제품으로서, 상기 명령어들은 실행될 때 적어도 하나의 프로세서로 하여금, 증강 현실 경험을 위한 포즈 예측에 대한 요청을 수신하고, 상기 증강 현실 경험과 관련된 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 식별하고, 복수의 셀들을 포함하는 RNN에 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 제공하고, 상기 RNN은 상기 복수의 셀들 중 적어도 하나 및 적어도 하나의 완전 연결(FC) 층을 각각 포함하는 복수의 반복 단계들을 포함하고, 상기 복수의 셀들 중 적어도 일부는 이력 기간과 연관된다. 상기 방법은 또한 적어도 하나의 다가오는 기간 동안 상기 증강 현실 경험에 대한 포즈 변화들에 대응하는 적어도 하나의 포즈 예측을 생성하기 위해 상기 RNN을 사용하는 단계 그리고 상기 요청에 응답하여 상기 적어도 하나의 포즈 예측을 제공하고 그리고 상기 적어도 하나의 포즈 예측에 기초하여 상기 증강 현실 경험에서 증강 현실 콘텐츠의 디스플레이를 촉발하는 단계를 포함한다.
상기 컴퓨터로 구현되는 방법의 특정 구현들은 다음의 특징들의 일부 또는 전부를 포함할 수 있다. 예를 들어, 상기 RNN은, 상기 적어도 하나의 예측에 기초하여 추가 후보 예측들을 생성하고, 그리고 상기 추가 후보 예측들 각각에 대한 평균 제곱 오차를 결정하도록 구성될 수 있다. 상기 평균 제곱 오차는 각각의 추가 포즈 예측을 폐기할지를 나타낼 수 있다.
일부 구현들에서, 상기 적어도 하나의 회전 지시자는, 회전량을 나타내는 크기와 회전축을 나타내는 방향을 갖는 3차원 벡터를 포함한다. 일부 구현들에서, 상기 적어도 하나의 위치 지시자는 3차원 머리 위치 벡터이고 그리고 상기 적어도 하나의 회전 지시자는 4차원 쿼터니언이다.
일부 구현들에서, 상기 복수의 셀들은 LSTM(long short-term memory) 셀들이고 그리고 상기 RNN은 추가적인 다가오는 기간에서 머리 포즈 변화들에 대한 추가 예측들을 재귀적으로 결정하도록 구성된다. 일부 구현들에서, 상기 RNN은, 입력으로서 그리고 다가오는 기간 내의 복수의 시간 단계들 각각에 대해, 상기 다가오는 기간의 각 시간 단계에 대응하는, 복수의 LSTM 셀들에서 각각의 LSTM 셀에 대한 상태를 인코딩하도록 구성된다.
서술된 기술들의 구현들은 하드웨어, 방법 또는 프로세스, 또는 컴퓨터 액세스 가능 매체상의 컴퓨터 소프트웨어를 포함할 수 있다.
하나 이상의 구현들의 세부 사항들은 첨부된 도면들 및 아래의 설명에서 설명된다. 다른 특징들은 설명과 도면들, 그리고 청구 범위들로부터 명백해질 것이다.
도 1은 본 명세서에 서술된 구현들에 따른 가상 현실(VR), 증강 현실(AR) 환경 또는 혼합 현실(MR)에 액세스하는 사용자가 경험하는 포즈 데이터의 연속적인 스트림을 나타내는 예시적인 그래프이다.
도 2는 본 명세서에 서술된 구현들에 따른 VR 및/또는 AR 및/또는 MR 경험을 제공하기 위한 예시적인 머리 포즈 예측 시스템의 블록도이다.
도 3a 내지 도 3b는 본 명세서에 서술된 구현들에 따른 반복 신경망들을 예시하는 예시적인 다이어그램이다.
도 4는 본 명세서에 서술된 구현들에 따른 머리 포즈 예측 시스템에 대한 예시적인 모델 아키텍처이다.
도 5는 본 명세서에 서술된 구현들에 따른 도 4의 모델을 사용하는 추론 동안 순차적인 샘플 선택을 나타내는 예시적인 그래프이다.
도 6은 본 명세서에 서술된 구현들에 따른 도 4의 모델의 훈련 동안 랜덤 샘플 선택을 나타내는 예시적인 그래프이다.
도 7은 본 명세서에 서술된 구현들에 따른 머리 포즈 예측 시스템에 대한 예시적인 모델 아키텍처이다.
도 8은 본 명세서에 서술된 구현들에 따른 도 7의 모델을 사용하여 이전 상태를 전파하는 동안 훈련 동안 순차적인 샘플 선택을 나타내는 예시적인 그래프이다.
도 9는 본 명세서에 서술된 구현들에 따른 도 7의 모델을 사용하여 이전 상태를 전파하는 동안 추론 동안 순차적인 샘플 선택을 나타내는 예시적인 그래프이다.
도 10은 본 명세서에 서술된 구현들에 따른 예측된 머리 포즈들에 기초하여 AR 또는 VR 또는 MR 경험으로 콘텐츠를 제공하는 프로세스의 구현을 다이어그램으로 나타낸 흐름도이다.
도 11은 본 명세서에 서술된 구현들에 따른 AR 또는 VR 또는 MR 경험을 제공하기 위해 머리 포즈들을 예측하는 프로세스의 구현을 나타내는 흐름도이다.
도 12는 본 명세서에 서술된 구현들과 함께 사용될 수 있는 컴퓨터 디바이스 및 모바일 컴퓨터 디바이스의 예를 나타낸다.
다양한 도면들에서 유사하거나 동일한 참조 번호들의 사용은 유사하거나 동일한 요소 또는 피처의 존재를 나타내도록 의도된다.
본 문서는 가상 현실(VR) 경험 또는 증강 현실(AR) 경험에 액세스하는 사용자와 관련된 포즈들을 예측하기 위한 예시적인 시스템들 및 기술들을 서술한다. 특히, 여기에 서술된 시스템들 및 기술들은 머리 포즈 데이터(예를 들어, 순차적인 머리 포즈 변경들), 모바일 디바이스 포즈 데이터, 핸드 포즈 데이터 또는 다가오는 기간(예를 들어, 미래까지의 시간)에 대한 예측된 포즈의 정확도를 개선하기 위한 다른 포즈 데이터를 모델링하기 위해 기계 학습을 사용할 수 있다. 이 문서 전체에 서술된 예들에서, 특정 RNN(Recurrent Neural Network)들은 AR/VR 애플리케이션들에 대해 향상된 정확도로 포즈를 모델링하고 예측하는데 사용될 수 있다. 개선된 정확도는, 사용자의 머리 위치, 손 위치, 디바이스 위치 등의 변화에 대한 예측 오류를 줄이기 위해 RNN들을 사용하고 그리고 특정 시간 간격들에서 해당 포즈를 평가함으로써 달성될 수 있다.
VR/AR 애플리케이션은 상호 작용하기 때문에, 사용자가 보는 것은 사용자와 관련된 결정된 포즈(즉, 사용자의 머리 또는 사용자가 잡고 있는 모바일 디바이스의 머리 부분의 변환 및 회전 등)에 응답하여 변경될 수 있다. 사용자의 머리와 디바이스의 모션 사이의 시간에서 해당 AR/VR 콘텐츠가 렌더링되는 시간까지를 MTP(Motion-To-Photon) 지연으로 정의된다. MTP 지연에는 임의의 수의 MTP 간격들이 포함될 수 있다. MTP 지연은 머리 포즈 판독 시간, 콘텐츠 렌더링 시간, 디스플레이/렌더링 시간, 전송 시간 및/또는 처리 활동과 관련된 다른 시간을 포함하지만 이에 제한되지 않는 임의의 수의 시간 이벤트들에 의해 정의될 수 있다. MTP 지연으로 인해 시스템에서 감지된 머리 포즈들(및 일반적인 포즈들)과 디스플레이 시간에 사용자의 실제 머리 포즈가 일치하지 않을 수 있다. 불일치는 VR/AR 애플리케이션에 액세스하는 사용자에게 묘사된 콘텐츠, 잘못 렌더링된 콘텐츠 및/또는 시뮬레이터 멀미에 대해 인지된 지연을 초래할 수 있다.
여기에 서술된 시스템들 및 기술들은 미래에 대한 MTP 시간 간격에서 머리 포즈, 디바이스 포즈, 손 포즈 등을 예측함으로써 인식된 오류의 개선된 정확성 및 감소의 이점을 제공할 수 있다. 특히, 여기에 서술된 개선된 머리 포즈 예측 알고리즘들은 약 30 내지 150 밀리초의 지연을 갖는 애플리케이션들의 정확도를 개선할 수 있다. 일부 구현들에서, 여기에 서술된 개선된 포즈 예측 알고리즘들은 예측된 머리 포즈에 대한 값의 오버 슈팅 및/또는 예측된 머리 포즈에 대한 값의 언더 슈팅을 감소시킬 수 있으며, 이들 각각은 잘못된 위치 및/또는 시간에 콘텐츠를 렌더링할 수 있다.
종래의 머리 포즈 예측에서는, 등속 모델을 사용하여 머리 포즈들을 예측할 수 있다. 예를 들어, 미래의 머리 포즈는 위치 좌표들에 대한 선형 속도와 회전 좌표들에 대한 각속도를 사용하여 속도 및 지연 시간을 기반으로 업데이트될 수 있다. 이러한 기술들은 지연 값들이 증가함에 따라 정확도가 떨어질 수 있다. 또한, VR 헤드셋들에서, 시각적 정보는 일반적으로 사용자의 머리 위치와 공간에서의 방향(예 : 머리 포즈)에 따라 디스플레이된다. 그러나, 사용자가 머리를 움직일 때의 순간과 시각 데이터가 디바이스(예 : VR 헤드셋, 모바일 디바이스 등)의 화면에 렌더링되는 순간 사이에 시간 지연이 있다. 이 지연은 IMU(inertial measurement unit) 판독 시간, 6DoF 추적 시간, 콘텐츠 렌더링 시간, 디스플레이 스캔 시간 등을 포함하되 이에 국한되지 않는 다양한 요인으로 인해 발생할 수 있다. 또한, 렌더링이 헤드셋(또는 헤드셋에 연결된 디바이스)에서 수행되는 기존의 VR/AR 시스템에서, 이 지연은 일반적으로 약 20 밀리 초 이하이다. 지연 시간 자체의 감소는 제한될 수 있지만, 여기에 서술된 기술들은 사용자의 머리 포즈가 실제 디스플레이 시간에 또는 그 근처에 있을지를 예측함으로써 인지된 지연의 양을 감소시킬 수 있다.
여기에 서술된 시스템들 및 기술들은 사용자의 머리 포즈가 미래에 주어진 시간 간격에 있을 것을 예측하기 위해 과거에 사용자의 머리 포즈 측정을 사용할 수 있다. 예를 들어, 여기에 서술된 시스템들 및 기술들은 시퀀스 데이터(예를 들어, 머리 포즈의 순차적 변화)를 모델링하기 위해 RNN(recurrent neural network)을 사용할 수 있다. 이러한 시퀀스 데이터는 다가오는 기간 동안 사용자의 머리 포즈를 예측하는 데 사용할 수 있다. 그렇게 하기 위해, 여기에 서술된 시스템들 및 기술들은, 미래의 주어진 시간에서 머리 포즈를 예측하면서 소실되는 기울기들을 감소시키기 위해 LSTM(Long-Short Term Memory) 아키텍처들 및 GRU(Gated Recurrent Unit) 아키텍처들과 같은 RNN 기반 신경망 셀을 사용할 수 있다. RNN들은 특정 VR/AR 시스템에 액세스하는 사용자의 머리 움직임 역학을 배우기 위해 훈련(예를 들어, 모델링 및 훈련)될 수 있다. 훈련된 RNN 모델은 특정 AR/VR 콘텐츠가 사용자에게 디스플레이되도록 렌더링되는 순간 머리 포즈를 예측하는데 사용될 수 있다. 아래에서 자세히 설명하듯이, 미래에 머리 포즈를 예측하기 위한 두 가지 아키텍처에 대해 서술될 것이다.
도 1은 여기에 서술된 구현들에 따른 가상 현실(VR) 또는 증강 현실(AR)에 액세스하는 사용자가 경험하는 포즈 데이터의 연속적인 스트림(102)을 나타내는 예시적인 그래프(100)이다. 여기에 서술된 시스템들은 3차원 머리 위치 벡터:
Figure pat00001
[1]
및 4차원 방정식:
Figure pat00002
[2]
의 연결인 7차원 벡터로서 머리 포즈(
Figure pat00003
를 정의할 수 있다.
포즈 벡터는 6개의 자유도들을 가지지만, 하나의 중복된 차원을 포함하는 회전의 쿼터니언 표현(quaternion representation)으로 인해 포즈 벡터는 7차원 벡터로 표현된다. 일부 구현들 및 임의의 지정된 방향에 대해, 해당 방향을 나타내는 두 개의 쿼터니언들 Q 및 -Q가 있다. MSE(Mean Square Error) 손실 평가 및 모델 훈련/추론의 경우, 본 명세서 전반에 걸쳐 설명된 바와 같이, 일관된(즉, 연속적인) 쿼터니언 표현은, 시스템들이 연속적인 샘플들간의 쿼터니언 표현의 큰 변화들을 방지하도록 사용된다. 여기에 서술된 예들에서, 좌표계의 원점은, VR/AR 콘텐츠를 제공하는 디바이스의 IMU에 위치하고, 요(yaw)는 Y(예를 들어, y-축)에 대한 회전이고, 피치(pitch)는, X(예를 들어 ,x-축)에 대한 회전이며, 그리고 롤(roll)은 Z(예를 들어, z-축)에 대한 회전이다.
포즈 데이터의 연속 스트림(102)은 머리 포즈의 (H) 이전 샘플들(예를 들어, 과거 포즈 데이터)(104)의 윈도우를 포함한다. 머리 포즈의 (H) 이전 샘플들로부터, 다음 (K) 머리 포즈들(106)은 포즈 예측 알고리즘(108)에 의해 도시된 시간에 예측된다. 특히, 여기에 서술된 시스템들 및 기술들은 머리 포즈가 발생하기 전에 (K) 머리 포즈(106)를 예측할 수 있다. 명확성을 위해, 입력 (H) 포즈들의 세트는:
Figure pat00004
[3]로서 표현되고,
그리고
(K) 실측 포즈들의 세트는:
Figure pat00005
[4]로서 표현된다.
일반적으로, 포즈 예측 알고리즘(108)은 아래에 서술된 알고리즘 중 일부 또는 전부를 단독으로 또는 조합하여 나타낼 수 있다. 여기에서 사용된, 용어 "머리 포즈(head pose)"는 세계 공간에서의 사용자의 머리 위치 및/또는 방향을 나타낼 수 있다. 여기에서 사용되는 용어 "세계 공간(world space)"은 사용자가 거주하는 물리적 공간을 의미한다. 여기에서 서술된 시스템들 및 기술들은 시각적 콘텐츠(예를 들어, AR 콘텐츠, MR 콘텐츠 등)가 모델링되고 디스플레이되는 가상 공간과 물리적 공간 사이의 대응을 생성 및 추적하기 위해 세계 공간을 이용할 수 있다. 여기서 사용되는 MTP 지연은 사용자 움직임이 디스플레이 화면에 완전히 반영되는데 사용되는 시간을 나타낸다. 예를 들어, 사용자가 움직임을 수행할 때 사용자가 사용하는 VR 헤드셋 화면에 사용자 움직임을 반영하는 데 걸리는 시간이 100 밀리 초인 경우 MTP 지연은 100 밀리 초이다.
일부 구현들에서, 여기에 서술된 구현은 비-VR 및 비-AR 환경에서 사용될 수 있다. 예를 들어, 6-DoF 포즈 추적을 사용하는 임의의 전자 디바이스 또는 추적 시스템은 여기에 서술된 RNN 예측 기술들 및 네트워크들을 활용할 수 있다. 예를 들어, 적어도 하나의 카메라로 콘텐츠를 캡처하는 모바일 디바이스를 가지고 걸어 다니는 사용자는, 예를 들어, 모바일 디바이스 IMU를 통해 추적될 수 있다. 추적은 사용자를 위한 콘텐츠의 예측 디스플레이를 가능하게 할 수 있는 역사적 시퀀스 포즈들 또는 움직임들로 사용될 수 있다.
도 2는 여기에서 서술된 구현들에 따른 예시적인 머리 포즈 예측 시스템(200)의 블록도이다. 시스템(200)은 AR/VR 가능 디바이스(202)와 같은 전자 디바이스에 액세스하는 사용자의 머리 포즈를 예측할 수 있다. 여기에서 사용되는 포즈는 위치, 방향 또는 둘 다를 지칭할 수 있다. 머리 포즈 예측 시스템(200)은, 예를 들어, 세계 공간에서 VR, AR 및/또는 MR 콘텐츠에 액세스하는 동안 사용자 이동 및 조작 디바이스(202)에 대한 전자 디바이스(202)에 대한 머리 포즈 추적 및 예측을 제공할 수 있다.
AR/VR 디바이스(202)는, 가상 현실(VR), 증강 현실(AR) 및/또는 혼합 현실(MR) 환경을 생성할 수 있고, 그리고 가상 콘텐츠를 적절하게 렌더링하기 위해 머리 포즈 예측들을 제공할 수 있는 예시적인 전자 디바이스이다. 디바이스(202)는, 예를 들어, 네트워크(205)를 통해 컴퓨팅 디바이스(204)(예를 들어, 서버 또는 다른 디바이스)로부터 제공되는 콘텐츠(예를 들어, AR/VR/MR 콘텐츠)에 액세스하는 사용자에 의해 세계 공간에서 사용될 수 있다. AR/VR/MR 콘텐츠에 액세스하는 것은, 컴퓨팅 디바이스(204)로부터, AR/VR 디바이스(202) 상의 로컬 메모리로부터 또는 네트워크(205)에 연결되거나 또는 액세스를 갖는 다른 디바이스(도시되지 않음)로부터 VR, AR 및/또는 MR 콘텐츠를 생성, 수정, 이동 및/또는 선택하는 것을 포함할 수 있다.
도 2에 도시된 것처럼, AR/VR 디바이스(202)는 사용자 인터페이스 시스템 (206)을 포함한다. 사용자 인터페이스 시스템(206)은 적어도 출력 디바이스(208) 및 입력 디바이스(210)를 포함한다. 출력 디바이스(208)는, 예를 들어, 시각적 출력을 위한 디스플레이, 오디오 출력을 위한 스피커 등을 포함할 수 있다. 입력 디바이스(210)는, 예를 들어, 촉각적인 사용자 입력들을 수신할 수 있는 터치 입력 디바이스, 핸드 컨트롤러, 모바일 디바이스, 가청 사용자 입력들을 수신할 수 있는 마이크 등을 포함할 수 있다.
AR/VR 디바이스(202)는 또한 임의의 수의 센서들 및/또는 디바이스들을 포함할 수 있다. 예를 들어, AR/VR 디바이스(202)는 추적 시스템(212)을 포함한다. 시스템(212)은, 예를 들어, 광 센서들, IMU(inertial measurement unit) 센서들(214), 오디오 센서들(216), 이미지 센서들(218), 머리 포즈 검출기들(220), 노멀라이저들(221), 카메라들(222), 거리/근접 센서들(도시되지 않음), 위치 센서들(도시되지 않음), 및/또는 다른 센서들 및/또는 센서들의 상이한 조합(들)을 포함(또는 액세스)할 수 있다. 시스템(212)에 의해 액세스되는 일부 센서들은 AR/VR 디바이스(202)의 위치 검출 및 추적을 제공할 수 있다. 시스템(212)의 센서들 중 일부는 사용자 인터페이스 시스템(206)의 컴포넌트 상에 디스플레이하기 위해 물리적 환경의 이미지들의 캡처를 제공할 수 있다.
IMU 센서(214)는 AR/VR 디바이스(202) 또는 VRAR/주변 장치(248)에 대해 각속도 및 선형 가속도를 검출하거나 측정하는 기능을 할 수 있다. 이후, 시스템(200)은 IMU 센서(214)에 의해 취해진 측정들에 기초하여 3D 공간에서 3D 배향을 계산 및/또는 추정할 수 있다. IMU 센서(214)는 하나 이상의 가속도계, 자이로스코프, 자력계 및 기타 이러한 센서를 포함할 수 있다. 일반적으로, IMU 센서(214)는, 예를 들어, AR/VR 디바이스(202)의 모션, 이동, 속도 및/또는 가속도를 검출할 수 있다. 일부 구현들에서, 예를 들어, AR/VR 디바이스(202)를 사용하는 사용자와 관련된 포즈(예를 들어, 머리 포즈)는, IMU 센서(214) 및/또는 머리 포즈 검출기(220)에 의해 제공된 데이터에 기초하여 검출 및/또는 추정될 수 있다. 추정된 포즈에 기초하여, 시스템(200)은, 예를 들어, 디바이스가 이동함에 따라 AR/VR 디바이스(202)의 변경된 포즈를 반영하기 위해 AR/VR 디바이스(202)의 스크린 상에 묘사된 콘텐츠를 업데이트할 수 있다. 일부 구현들에서, 추정된 포즈는, 예를 들어, 머리 포즈 예측 시스템(224)을 사용하여 미래 포즈 및/또는 머리 포즈를 예측하기 위해 알고리즘 및 다른 데이터와 결합될 수 있다.
이미지 센서들(218)은 카메라 캡처와 관련된 배경 데이터의 변화를 검출할 수 있다. 카메라들(222)은 후면 캡처 모드 및 전면 캡처 모드를 포함할 수 있다. 일부 구현들에서, 카메라들(222)은 대신 모바일 디바이스/스마트 폰에서와 같이 단일 카메라를 포함할 수 있다. 전면 캡처 모드는 배경 풍경을 포함하여 사용자를 캡처할 수 있다. 시스템(200)은 사용자가 AR/VR 디바이스(202)와 함께 이동할 때 포즈 변화를 검출하고 포즈 변화들에 대응하는 위치에서 AR/VR 콘텐츠를 적절하게 묘사하기 위해 사용될 수 있다.
AR/VR 디바이스(202)는 또한 머리 포즈 예측 시스템(224)을 포함할 수 있다. 시스템(224)은 인코더/디코더 모델(230) 및 상태 전파 모델(232)을 포함하나 이에 제한되지 않는 하나 이상의 RNN(recurrent neural network)들(226), 예측 알고리즘들(228)을 포함(또는 액세스)할 수 있다.
RNN들(226)은 내부 상태(예를 들어, 메모리)를 이용하여 AR/VR 경험에서 머리 자세를 이동하고 변경하는 사용자의 시퀀스와 같은 입력들의 시퀀스를 처리할 수 있다. 일부 구현들에서, RNN들(226)은 유한 임펄스 반복 네트워크 또는 무한 임펄스 반복 네트워크일 수 있다. 일부 구현들에서, RNN들(226)은 다중 계층들을 갖는 깊은 RNN들일 수 있다. RNN들(226)은 LSMT 아키텍처(234) 또는 GRU 아키텍처(236) 중 하나 이상을 포함할 수 있다. 일부 구현들에서, 시스템(200)은 어느 아키텍처가 오류 및/또는 지연을 감소시키는지 결정하는 것에 기초하여 아키텍처들(234 및 236) 모두를 사용할 수 있다. 예측 알고리즘들(228)은 인코더/디코더 모델(230) 및 상태 전파 모델(232)을 포함할 수 있으며, 이들 각각은 아래의 도 4 내지 도 10에서 상세하게 서술된다.
신경망들(226)은, 예를 들어, 머리가 세계 공간에서 이동할 때 머리의 예측 된 위치를 모델링하기 위해 머리 포즈 위치들을 계산하기 위해 이미지들에서 작동하는 검출기들을 포함할 수 있다. 또한, 신경망들(226)은 미래로의 여러 시간 단계에서 머리 자세 위치들을 계산하도록 동작할 수 있다.
AR/VR 디바이스(202)는 또한 제어 시스템(240)을 포함할 수 있다. 제어 시스템(240)은, 예를 들어, 전력 제어 디바이스, 오디오 및 비디오 제어 디바이스, 광학 제어 디바이스, 및/또는 다른 그러한 디바이스들 및/또는 디바이스(들)의 상이한 조합(들)을 포함할 수 있다.
시스템들(206, 212, 224 및 240) 각각은 특정 구현에 따라 더 많거나 더 적은 디바이스들을 포함할 수 있다. AR/VR 디바이스(202)는 또한 하나 이상의 프로세서(예를 들어, 사용자 인터페이스 시스템(206), 시스템들(212 및 228), 제어 시스템(240), 메모리(244), 카메라(222) 및 통신 모듈(246)과 통신하는 CPU/GPU(242))를 포함할 수 있다. 통신 모듈(246)은 AR/VR 디바이스(202)와 다른 외부 디바이스들 사이의 통신을 제공할 수 있다. 프로세서들(242)은 특정 작업들을 수행하기 위해 명령어들(예를 들어, 컴퓨터 프로그램들)을 실행하도록 구성된다. 일부 구현들에서, 프로세서들(242) 중 적어도 하나는 머리 포즈 예측 시스템(224) 및 추적 시스템(212)으로부터 결정된 데이터에 기초하여 사용자 및/또는 AR/VR 디바이스와 관련된 머리 포즈를 식별(예를 들어, 예측)하기 위한 명령어들을 실행한다. 메모리(244)는 시스템(200)의 요소들 간의 통신들 및 상호 작용들을 통해 이용될 수 있다.
추가로, AR/VR 디바이스(202)는 하나 이상의 VR/AR/MR 주변 장치들(248)을 사용하거나 이에 대한 액세스를 가질 수 있다. 예시적인 주변 장치들(248)은 임의의 수의 제어기들, 컴퓨팅 디바이스들, 머리 장착형 디스플레이 디바이스들, 카메라들, 스피커들, 추적 시스템들, 및/또는 AR/VR 디바이스(202)와 통신하는 다른 디바이스를 포함할 수 있다.
일부 구현들에서, 여기에서 서술된 예측 알고리즘들 및 RNN들은 실행 및/또는 활용될 수 있으며, 그리고 입력들 및/출력들은, 예를 들어, 포즈 예측들을 생성하는데 사용하기 위해 네트워크(205)를 통해 스트리밍되거나 또는 제공될 수 있다. 일부 구현들에서, 여기에서 서술된 예측 알고리즘들 및 RNN들은 모바일 디바이스 시스템에서 실행 및/또는 활용될 수 있고, 그리고 입력들 및/또는 출력들은 포즈 예측들을 생성하는 데 사용하기 위해 모바일 디바이스 시스템에 의해 생성될 수 있다.
도 3a 내지 도 3b는 여기에서 서술된 구현들에 따른 예시적인 RNN(recurrent neural net)들(300A 및 300B)을 예시하는 다이어그램이다. 도 3a에서, RNN(300A)은 화살표(304)로 나타낸 바와 같이 상태가 신경망(302)으로 피드백되는 축소된 형태로 도시된다. 도 3b에 도시된 바와 같이, 도 3a는 RNN(300B)로 펼쳐진 형태로 보여진다. RNN(300B)는 RNN(300A)와 동일한 네트워크이지만, 대신 (K) 시간 단계들 동안 펼쳐진다. 따라서, 각 신경망 셀(302)(또는 302a, 302b, 302c) 내부의 파라미터들은 모든 시간 단계들에서 동일하다.
RNN들은 네트워크의 고유한 반복성으로 인해 모델 훈련 단계 동안 소실되는 기울기들을 나타낼 수 있다. 따라서, RNN들은 장거리 종속성들을 학습하는 데 어려움을 겪을 수 있다. 따라서, 여기에 서술된 시스템들 및 기술들은, 게이트들이라고 하는 유닛들을 통해 셀을 통한 정보의 흐름을 조절하도록, LSTM(Long-Short Term Memory) 아키텍처들 및 GRU(Gated Recurrent Unit) 아키텍처들과 같은 RNN 기반 신경망 셀들(예를 들어, 도 4의 셀(410))을 활용할 수 있다. 이러한 아키텍처들에는 입력 게이트, 출력 게이트 및 포겟 게이트가 있을 수 있으며, 각 게이트에는 훈련 단계 중에 학습된 파라미터들이 포함될 수 있다. LSTM RNN들 또는 GRU RNN들은 일련의 머리 포즈 데이터를 처리하는 컴퓨팅 디바이스로 기능할 수 있다. 시퀀스는 여기에 서술된 시스템이 특정 사용자에 대한 머리 움직임 역학을 학습할 수 있게 한다. 머리 움직임 역학 및 시퀀스는 미래에 대한 적어도 하나의 MTP(motion-to-photon) 간격(예를 들어, 시간 간격)에 대한 머리 포즈를 예측하는데 사용될 수 있다.
일부 구현들에서, 시스템(200)은 미래로의 하나 이상의 MTP에 대한 머리 포즈를 예측할 수 있다. 시스템(200)은 AR/VR 환경에서 가상 현실 장비를 운영하는 사용자의 머리 움직임 역학을 학습하기 위해 RNN들을 활용할 수 있다. 일부 구현들에서, 시스템(200)은 특정 애플리케이션에 대한 예측 정보를 학습하도록 RNN들을 훈련시킬 수 있다. 일부 구현들에서, 시스템(200)은 환경에 이용 가능한 각각의 AR/VR 애플리케이션에 대한 예측 정보를 학습하도록 RNN들을 훈련시킬 수 있다. 일부 구현들에서, 시스템(200)은 특정 사용자에 대한 예측 정보를 학습하도록 RNN들을 훈련시킬 수 있다. 일부 구현에서, 시스템(200)은 특정 AR/VR 애플리케이션들 및/또는 게임들에 대한 예측 정보를 학습하도록 RNN들을 훈련시킬 수 있으며, 이는, 각 애플리케이션 및/또는 게임(또는 애플리케이션 및/또는 게임 클래스)에 대해 서로 다른 머리 포즈 통계 및 네트워크 파라미터들을 가질 수 있으며, 그리고 RNN들은 서로 다른 통계 및 파라미터들을 학습할 수 있다.
도 4는 여기에 서술된 구현들에 따른 머리 포즈 예측 시스템에 대한 예시적인 모델 아키텍처(230)이다. 모델 아키텍처(230)는 인코더/디코더 모델(230)에 대한 추론 그래프를 나타낼 수 있다. 일부 구현들에서, 모델 아키텍처(230)는, LSTM의 다수의 활성화 유닛들(예를 들어, 셀들)(Na), 샘플들의 히스토리 크기/수(H), 예측 단계들의 수(K), 및 학습률을 포함하는 모델 하이퍼파라미터들을 이용한다.
도시된 바와 같이, 모델 아키텍처(230)는 인코더 부분(402) 및 디코더 부분(404)을 포함한다. 인코더 부분(402)은 적어도 LSTM 층(406) 및 완전 연결 층(408)을 포함한다. LSTM 층(406)은 완전 연결 층(408)에 연결된다. 각각의 LSTM 셀(예를 들어, 셀(410))은 RNN에 다수의 Na 활성 유닛들을 포함하며, 여기서 아래 첨자 "a"는 상태 텐서를 나타낸다. 완전 연결 층(408)은 수
Figure pat00006
출력들(예를 들어, 출력들
Figure pat00007
(412),
Figure pat00008
(414),
Figure pat00009
(416)) 및 포즈 피처들의 수에 대응하는 7개의 출력들에 대응하는 출력의 다수의 피처들(Nf)을 생성한다. 그러한 출력들(
Figure pat00010
(412),
Figure pat00011
(414),
Figure pat00012
(416))은 LSTM 층(406)에 대한 입력으로서 제공될 수 있다.
인코더 부분(402)은 이력 포즈 데이터에 대응하는 상태 벡터(
Figure pat00013
)를 포함한다. 이력 포즈 데이터는 포즈 샘플들(
Figure pat00014
)을 포함하고, 이는 사용자(420)의 이력 머리 위치들 또는 디바이스 포즈들(418)로부터 수집된다. 인코더 부분(402)의 출력은 LSTM 셀(
Figure pat00015
)(예를 들어, 셀(410))의 상태 및 제1 예측된 샘플(
Figure pat00016
)을 나타낸다.
일부 구현들에서, 시스템(200)은 균일한 시간 샘플을 사용하여 이력 포즈 데이터를 수집할 수 있다. 예를 들어, 머리 포즈 검출기(220)는 사용자의 움직임들에 따라 사용자의 머리 포즈를 검출할 수 있지만, 머리 포즈 예측 시스템(224)은 머리 포즈들의 일부(예 : 샘플링)를 사용할 수 있다. 머리 포즈 예측 시스템(224)은 균일한 샘플링 레이트로 머리 포즈들을 샘플링할 수 있다. 예를 들어, 머리 포즈 예측 시스템(224)은 샘플들 사이에서 약 2 내지 약 5 밀리 초로 샘플링할 수 있다.
일부 구현들에서, 머리 포즈 예측 시스템(224)은 불균일한 샘플링 레이트를 사용할 수 있다. 예를 들어, 머리 포즈 예측 시스템(224)은 제1 샘플링 레이트(예를 들어, 0.5 내지 1.5 밀리 초)로 머리 포즈들의 일부를 샘플링할 수 있고, 그리고 제2 샘플링 레이트(예를 들어, 90 내지 110 밀리 초)로 머리가 아닌 포즈들의 제2 부분을 샘플링한다. 이러한 샘플링 레이트들은 선택적 시간 입력들(t)(예 : (t)(440))에 의해 나타낸 바와 같이 각 셀에 대한 시간 입력으로서 제공될 수 있다. 일부 구현들에서, 불균일한 샘플링은 데이터가 균일한 속도로 샘플링하려고 시도하는 경우를 의미하지만, 노이즈 및 기타 기여자들로 인해 샘플들이 정확히 균일 한 간격으로 배치되지 않는다. 이후, 시스템에 대한 입력은 균일한 타임 스탬프들과 상이한 각 포즈의 타임 스탬프이다.
다시 도 4를 참조하면, 출력(
Figure pat00017
)(432) 및 제1 예측 샘플(
Figure pat00018
)은 디코더 부분(404)으로 전달된다. 디코더 부분(404)은 동일한 LSTM 셀 및 완전 연결 층(408)을 나타낼 수 있고, 이 완전 연결 층(408)은 인코더 부분(402)에 의해 이미 예측된 하나를 뺀 미리 정의된 수의 예측 단계들로 펼쳐진다. 일부 구현들에서, 인코더 부분(402) 및 디코더 부분(404)은 단일 RNN으로서 기능할 수 있다. 인코더의 상태 출력(예 :
Figure pat00019
)에는 이미 수집된 머리 포즈의 인코딩된 이력(예: 이력 포즈 데이터)을 포함한다. 디코더 부분(404)은 인코더 부분(402)의 상태 출력(예를 들어,
Figure pat00020
)을 수신할 수 있고 그리고 다음 예측 포즈를 디코딩(예를 들어, 결정)하기 위해 상태를 반복할 수 있다. 예를 들어, 입력이 디코더 부분(404)의 셀에 제공될 때마다, 계산된 출력은 피드백 루프들(422, 424 및 426)에 의해 도시된 바와 같이 다음 셀로 피드백될 수 있다.
모델 아키텍처(230)의 동작(도 2에 정의된 하드웨어 및 소프트웨어 사용)에서, 사용자(420)는 VR/AR 경험 동안 VR 헤드셋(421)을 이동시킴으로써 머리 포즈 입력(예를 들어, 움직임들(418))을 제공할 수 있다. 대안적으로, 또는 머리 움직임에 추가하여, 사용자는 움직임들(418)에 따라 모바일 디바이스(423)를 움직이거나 사용할 수 있다. 아키텍처(230)는 VR 헤드셋(421)으로부터의 머리 포즈 입력 및/또는 모바일 디바이스(423)로부터 획득된 포즈 입력을 이용할 수 있다. 예를 들어, 사용자(420)는 VR/AR 콘텐츠를 경험하는 동안 머리 포즈들을 생성하기 위해 VR/AR 디바이스(예를 들어, 머리 장착형 디스플레이, 모바일 디바이스 또는 기타 가상 지원 디바이스)에 액세스할 수 있다. 모델 아키텍처(230)(시스템(200)과 결합하여)는 추적 수단 또는 다른 감지 수단에 의해 머리 포즈 데이터를 수집할 수 있다. 수집된 머리 포즈 데이터(또는 일반적으로, 포즈 데이터)는 노멀라이저(221)에 의해 정규화될 수 있고 이력 포즈 데이터로서 사용하기 위해 인코더 부분(402)에 제공될 수 있다. 일반적으로 정규화에는 특정 기간 동안 수집된 다수의 이력 포즈 데이터 샘플들의 평균 및 분산이 포함될 수 있다. 이러한 정규화는 포즈 예측들이 라이브 AR/VR 경험 중에 발생하는 포즈의 변화들에 적응할 수 있도록 보장할 수 있다.
따라서, 인코더 부분은 미래의 머리 포즈들을 예측하기 위해 특정 VR/AR 경험에서 실제 이력 사용자 머리 포즈들로부터의 입력 머리 포즈들을 이용할 수 있다. 이력 헤드 포즈들은 정규화되어 각 시간 단계에 대해 LSTM 층(각 셀에서)(406)으로 직접 공급될 수 있다. 대조적으로, 디코더 부분(404)은 입력 포즈들을 갖지 않기 때문에(즉, 입력 포즈들이 아직 예측되지 않음), 모델 아키텍처(230)는 피드백 루프들(422, 424 및 426)에 의해 예시된 바와 같이 각각의 예측된 포즈를 이전시간 단계에서 LSTM 층의 다음 셀로 피드백한다. 특정 입력/출력이 도시되어 있지만, 여러 위치들에서 줄임표로 표시된 것처럼 임의의 수의 입력들/출력들이 모델 아키텍처(230)에 의해 사용될 수 있다.
일반적으로, 입력 머리 포즈는, 전술한 바와 같이, 머리 위치 및 쿼터니언으로 표현되는 머리 회전을 포함한다. 위치 값들의 범위들은 AR/VR 환경에서 사용자의 위치에 따라 달라질 수 있다. 이러한 범위들은 일반적으로 0과 1 사이에 있는 쿼터니언 값들과 상이하다. 따라서, 입력 피처들은 일반적으로 다른 범위들과 다른 통계들을 갖는다. 예를 들어, 요의 회전은 일반적으로 헤드 롤보다 분산이 더 크다. 따라서, 데이터 피처들은, 시스템(200)이 모든 피처들을 효율적으로 근사화 및/또는 예측하는 것을 학습할 수 있도록 정규화된다.
이러한 데이터 피처들을 정규화하기 위해, 노멀라이저(221)는 이력 머리 포즈 데이터(x1, ..., xH)를 정규화하도록 구성된다. 예를 들어, 정규화는 예를 들어 모델 아키텍처(230)에 제공된 각 입력에 대해 각 입력 포즈 히스토리 벡터(x1, ..., xH)에 대해 수행된다. 이 정규화는 추론 시간 및/또는 훈련을 위해 제공되는 이력 포즈 데이터에 적용된다. 노멀라이저(221)는 CPU/GPU(242) 및 메모리(244)를 사용하여 각각의 입력(과거의 머리 포즈 이력 벡터)을 이력 포즈 데이터의 각 특징에 대한 제로 평균 및 단위 분산으로 정규화할 수 있다. 일부 구현들에서, 최소/최대 정규화는 (최소, 최대) = (0,1) 범위에 사용되며 여기서 최소 및 최대는 이력 포즈 데이터(예 : 샘플 x1, ..., xH)를 기반으로 평가된다. 일부 구현들에서, 평균/분산 정규화는 평균 및 단위 분산을 0으로 만드는 데 사용되며, 평균 및 분산은 이력 포즈 데이터(예 : 샘플들(x1, ..., xH))를 기반으로 평가된다. 이후, 비-노멀라이저(223)는 평균 및 분산값들을 사용하여 정규화된 출력(예를 들어,
Figure pat00021
norm)에 역 정규화를 적용하고 그리고 예측된 출력 포즈(예를 들어,
Figure pat00022
)(430)를 획득할 수 있다.
훈련 손실을 위해, 시스템(200)은 머리 포즈(예를 들어, 위치 및 회전)에 대한 평균 제곱 오차(MSE) 손실을 사용할 수 있다. 일부 구현들에서, 시스템(200)은 머리 포즈(예를 들어, 위치 및 회전)에 대한 평균 절대 오차를 사용할 수 있다. 일부 구현들에서, 시스템(200)은 가중된 평균 제곱 오차를 사용할 수 있으며, 여기서 LSTM 층(408)(서로 다른 대기 시간에 대응)의 각 출력 단계는 서로 다르게 가중될 수 있다. 예를 들어, 이것은, 일반적인 지연들의 히스토그램이 일정하지 않지만, 다른 지연들보다 더 일반적인 일부 지연들이 있을 때 사용될 수 있다. 일부 구현들에서, 시스템(200)은 위치에 대한 평균 제곱 오차 및 회전에 대한 각도 오차를 사용할 수 있다. 일부 구현들에서, 시스템(200)은 (예를 들어, 눈 위치들에 대응하는) 가상 카메라 위치들의 장소에 기초하여 손실 함수를 사용할 수 있다. 이 손실 값은 위치 및 회전 오류를 하나의 3D 위치 측정(예 : 눈들의 3D 위치)으로 결합한다.
도 5는 여기에 서술된 구현들에 따른 도 4의 모델(230)을 사용하는 추론 동안 순차적인 샘플 선택을 나타내는 예시적인 그래프이다. 그래프(500)에 도시된 샘플링 접근법은 추론 동안 사용될 수 있다. 모델(230)에서, (H) 히스토리 포즈들의 창(502)은 미래의 포즈들을 예측하기 위해 사용된다. 작동 중, LSTM 셀의 입력 상태는 0으로 초기화된다. 윈도우가 다음 샘플 세트(예를 들어, 이 예에서 윈도우( 504), 윈도우(506) 및 윈도우(508))에 대해 선택될 때마다, 시스템(200)은 상태를 다시 0으로 초기화한다. 상태를 0으로 초기화하면, 각 특정 셀의 메모리가 하나의 윈도우 샘플에서 다른 윈도우 샘플로 전파되지 않는다. 이 접근법은 시스템(200)이 상기 도 4에 서술된 바와 같이 샘플들의 윈도우 당 이력 정규화를 사용할 수 있게 한다.
훈련 동안, 시스템(200)은 각 반복에서 훈련 데이터 세트의 균일한 커버리지를 달성하기 위해 각 반복에서 데이터 샘플들(및 그들의 H 이력)을 무작위로 선택할 수 있다. 도 6은 도 4의 모델의 훈련 동안 무작위 샘플 선택을 묘사하는 예시적인 그래프(600)이다. 예를 들어, 샘플들의 무작위 선택 및/또는 액세스는 각 샘플에 대한 제로 상태 초기화와 함께 포즈 트레이스에서 나올 수 있다. 샘플의 각 윈도우는 모델(230)을 사용하여 독립적으로 실행될 수 있다. 이러한 독립성으로 인해, 모델(230)은 무작위로 액세스된 샘플들의 윈도우들 또는 연속적으로 액세스된 샘플 윈도우들에서 실행될 수 있지만, 두 경우 모두, 상태는 0으로 초기화된다.
그래프(600)에 도시된 바와 같이, 시스템(200)은 데이터 샘플의 윈도우(예를 들어, 데이터 샘플의 윈도우(602), 데이터 샘플의 윈도우(604), 및/또는 데이터 샘플의 윈도우(606))를 무작위로 선택할 수 있다. 샘플들의 각 윈도우에 대해, 시스템(200)은 노멀라이저(221)를 사용하여 샘플들을 정규화할 수 있다. 이후, 예측자 상태는 0으로 설정될 수 있고, 그리고 머리 자세 예측 시스템(224)은, 인코더/디코더 모델(230) 또는 상태 전파 모델(232)에 대해 LSTM 아키텍처(234) 또는 GRU 아키텍처(236)를 구현함으로써 미래의 다음 포즈들을 예측할 수 있다.
도 7은 여기에 서술된 구현들에 따른 머리 포즈 예측 시스템에 대한 예시적인 모델 아키텍처(232)이다. 모델 아키텍처(232)는 상태 전파 알고리즘(232)에 대한 추론 그래프를 나타낼 수 있다. 일부 구현들에서, 모델 아키텍처(232)는, LSTM의 다수의 활성화 유닛들(예를 들어, 셀들)(Na), 샘플들의 히스토리 크기/수(H), 예측 단계들의 수(K), 및 학습률을 포함하는 모델 하이퍼파라미터들을 이용한다.
도시된 바와 같이, 모델 아키텍처(232)는 인코더 부분(702) 및 디코더 부분(704)을 포함한다. 인코더 부분(702)은 적어도 LSTM 층(706) 및 완전 연결 층(708)을 포함한다. LSTM 층(706)은 완전 연결 층(708)에 연결된다. 각각의 LSTM 셀(예를 들어, 셀(710))은 RNN에 다수의 Na 활성 유닛들을 포함하며, 여기서 아래 첨자 "a"는 상태 텐서를 나타낸다.
완전 연결 층(708)은 수
Figure pat00023
Figure pat00024
출력들(예를 들어,
Figure pat00025
(412),
Figure pat00026
(414),
Figure pat00027
(416)) 및 포즈 피처들의 수에 대응하는 7개의 출력들에 대응하는 출력의 다수의 피처들(Nf)을 생성한다. 디코더(
Figure pat00028
)에 대한 입력은 이전 샘플(
Figure pat00029
)에서 인코더를 실행하여 얻은 상태(
Figure pat00030
)를 고려한다. 인코더 부분(702)은 적어도 하나의 수집된 머리 포즈 샘플(
Figure pat00031
)(예를 들어, 이력 포즈 데이터)을 포함한다. 이력 포즈 데이터는 사용자(720)의 이력 머리 위치들/움직임들(718)로부터 수집된 사용자 머리 포즈들의 하나 이상의 입력 샘플들에 기초한다. 인코더 부분(702)의 출력은 LSTM 셀(
Figure pat00032
)(722)(예를 들어, 셀(710)에서) 및 예측된 샘플(
Figure pat00033
)(들)의 상태를 나타낸다.
일부 구현들에서, 시스템(200)은 균일한 시간 샘플을 사용하여 모델 아키텍처(232)에 대한 이력 헤드 포즈 데이터를 수집할 수 있다. 예를 들어, 머리 포즈 검출기(220)는 사용자(720)가 이동함에 따라 사용자(720)의 머리 포즈를 검출할 수 있지만, 머리 포즈 예측 시스템(224)은 머리 자세들의 일부(예 : 샘플링)를 사용할 수 있다. 머리 포즈 예측 시스템(224)은 균일한 샘플링 레이트에서 머리 포즈를 샘플링할 수 있다. 예를 들어, 머리 포즈 예측 시스템(224)은 샘플들 사이에서 약 2 내지 약 15 밀리 초로 샘플링할 수 있다.
일부 구현들에서, 머리 포즈 예측 시스템(224)은 불균일한 샘플링 레이트를 사용할 수 있다. 예를 들어, 머리 포즈 예측 시스템(224)은 제1 샘플링 레이트(예를 들어, 0.5 내지 1.5 밀리 초)로 머리 포즈들의 일부를 샘플링하고 그리고 제2 샘플링 레이트(예를 들어, 90 내지 110 밀리 초)로 다른 포즈들의 제2 부분을 샘플링할 수 있다. 이러한 샘플링 레이트들은 선택적 시간 입력들(t)(예 : (t) 724)에 의해 나타낸 바와 같이 각 셀에 대한 시간 입력으로 제공될 수 있다. 일부 구현들에서, 비 균일 샘플링은 데이터가 균일한 레이트로 샘플링을 시도하지만 노이즈 및 기타 기여자들로 인해 샘플들이 정확히 균일하게 간격을 두지 않는 경우를 나타낸다. 그때, 시스템에 대한 입력은 균일한 타임스탬프들과 상이한 각 포즈의 타임스탬프이다.
각 샘플에 대해 상태를 0으로 재설정하는 모델 아키텍처(230)와 대조적으로, 모델 아키텍처(232)는 이전의 이력 헤드 포즈 샘플로부터의 상태를 고려한다. 예를 들어, 모델 아키텍처(230)에서, H개의 이력 머리 포즈의 윈도우가 수집되어 미래의 포즈를 예측한다. LSTM 아키텍처의 입력 상태는 다른 샘플들을 고려하지 않고 각 샘플에 대해 0으로 초기화된다. 다음 샘플을 위해 윈도우를 선택하면, 상태가 0으로 초기화된다. 즉, 셀의 메모리는 하나의 윈도우 샘플에서 다른 윈도우 샘플로 전파되지 않는다. 이 접근법은, 시스템(200)이 전술한 바와 같이 샘플 당 이력 정규화를 사용할 수 있게 한다. 모델 아키텍처(232)에서, LSTM 상태는 대신 하나의 샘플에서 다음 샘플로 전파되며, 항상 0으로 초기화되지는 않는다. 그렇게 하기 위해, 시스템(200)은 주어진 머리 포즈 추적 내에서 연속적으로 샘플들을 선택 및/또는 액세스할 수 있다. 모델 아키텍처(232)의 이 예시의 사용에서, 상태는 전체 머리 포즈 추적의 시작에서 0으로 초기화된다. 일부 구현들에서, 여기에 서술된 모델 아키텍처(232) 및 시스템들은, 예를 들어, 시스템이 추적 데이터를 잃거나 또는 앱/세션이 사용자에 의해 일시 중지 된 경우 상태를 재설정할 수 있다.
다시 도 7를 참조하면, 상태(
Figure pat00034
)(722) 및 제1 예측된 샘플(
Figure pat00035
)은 디코더 부분(704)으로 전달된다. 디코더 부분(704)은 동일한 LSTM 셀 및 완전 연결 층(708)을 나타낼 수 있고, 이 완전 연결 층(708)은 인코더 부분(702)에 의해 이미 예측된 하나를 뺀 미리 정의된 수의 예측 단계들로 펼쳐진다. 일부 구현들에서, 인코더 부분(702) 및 디코더 부분(704)은 단일 RNN으로서 기능할 수 있다. 인코더의 상태 출력(예 :
Figure pat00036
(722))에는 이미 수집된 머리 포즈의 인코딩된 이력(예: 이력 포즈 데이터)을 포함한다. 디코더 부분(704)은 인코더 부분(702)의 상태 출력(예를 들어,
Figure pat00037
(722))을 수신할 수 있고 그리고 다음 예측 포즈를 디코딩(예를 들어, 결정)하기 위해 상태를 반복할 수 있다. 예를 들어, 입력이 디코더 부분(704)의 셀에 제공될 때마다, 계산된 출력은 피드백 루프들(726, 728 및 730)에 의해 도시된 바와 같이 다음 셀로 피드백될 수 있다.
모델 아키텍처(232)의 동작(도 2에 정의된 하드웨어 및 소프트웨어 사용)에서, 사용자(720)는 VR/AR 경험 동안 VR 헤드셋(721)을 이동시킴으로써 머리 포즈 입력(예를 들어, 움직임들(718))을 제공할 수 있다. 대안적으로, 또는 머리 움직임에 추가하여, 사용자는 움직임들(718)에 따라 모바일 디바이스(723)를 움직이거나 사용할 수 있다. 아키텍처(232)는 VR 헤드셋(721)으로부터의 머리 포즈 입력 및/또는 모바일 디바이스(723)로부터 획득된 포즈 입력을 이용할 수 있다. 예를 들어, 사용자(720)는 VR/AR 콘텐츠를 경험하는 동안 머리 포즈들을 생성하기 위해 VR/AR 디바이스(예를 들어, 머리 장착형 디스플레이, 모바일 디바이스 또는 기타 가상 지원 디바이스)에 액세스할 수 있다. 모델 아키텍처(232)(시스템(200)과 결합하여)는 추적 수단 또는 다른 감지 수단에 의해 머리 포즈 데이터를 수집할 수 있다.
인코더 부분은 미래의 머리 포즈들을 예측하기 위해 특정 VR/AR 경험에서 실제 이력 사용자 머리 포즈들로부터의 입력 머리 포즈들을 이용할 수 있다. 이력 헤드 포즈들은 각 시간 단계에 대해 LSTM 층(각 셀 732, 734, 736 등에서)으로 직접 공급될 수 있다. 디코더 부분(704)은 입력 포즈들을 갖지 않기 때문에(즉, 입력 포즈들이 아직 예측되지 않음), 모델 아키텍처(232)는 피드백 루프들(726, 728 및 730)에 의해 예시된 바와 같이 각각의 예측된 포즈를 이전시간 단계에서 LSTM 층의 다음 셀로 피드백한다. 특정 입력/출력이 도시되어 있지만, 여러 위치들에서 줄임표로 표시된 것처럼 임의의 수의 입력들/출력들이 모델 아키텍처(232)에 의해 사용될 수 있다.
디코더(704)는 머리 포즈 예측들을 생성하기 위해 임의의 수의 LSTM 셀들(예를 들어, 셀(732))을 사용할 수 있다. 예를 들어, 각 LSTM 셀은 시스템(200)에 의해 예측이 요청될 수 있는 총 시간(t)에 걸친 시간의 일부를 나타낼 수 있다. 즉, 총 시간이 예측이 요청된 시간(예 : 미래의 10 밀리 초)을 나타낼 수 있는 경우 특정 시간 단계(예 : 3 밀리 초마다)에 각 LSTM 셀에서 예측이 수행될 수 있다.
시스템(200)은 미래의 총 시간(t)의 알려진 끝에서 예측을 제공하기 위해 머리 포즈 예측(또는 모바일 디바이스(723)로부터의 손 포즈 위치)
Figure pat00038
(740)을 제공할 수 있다. 일부 구현들에서, 사용자 또는 시스템(200)은 예를 들어 총 시간(t) 미만 동안 머리 포즈 예측이 요청되는 것으로 결정되면 중간 머리 포즈를
Figure pat00039
(740)으로 출력할 수 있다.
일반적으로, 입력 머리 포즈는 전술한 바와 같이 쿼터니언으로 표현되는 머리 위치와 머리 회전을 포함한다. 위치 값들의 범위는 AR/VR 환경에서 사용자의 위치에 따라 달라질 수 있다. 이러한 범위들은 일반적으로 0과 1 사이에 있는 쿼터니언 값들과 상이하다. 따라서, 입력 피처들은 일반적으로 다른 범위와 다른 통계를 갖는다.
유사하게, 입력 포즈(예를 들어, 손 포즈, 모바일 디바이스 포즈)는 전술한 바와 같이 쿼터니언으로 표현되는 위치 및 회전을 포함할 수 있다. 위치 값들의 범위는 AR/VR 환경에서 사용자의 디바이스 또는 손 위치에 따라 달라질 수 있다. 이러한 범위들은 일반적으로 0과 1 사이에 있는 쿼터니언 값들과 상이하다. 따라서, 입력 피처들은 일반적으로 상이한 범위들과 상이한 통계들을 갖는다.
모델 아키텍처(230)와 달리, 모델 아키텍처(232)는 샘플 윈도우 단위로 정규화하지 않는다. 대신, 모델 아키텍처(232)는 위치와 회전 모두에서 손실을 균형있게 조정하는 손실 함수를 사용하면서 위치와 회전 모두에 대한 입력을 포함하는 모델을 구축할 수 있다. 일부 구현들에서, 모델 아키텍처(232)는 2개의 모델들을 구축할 수 있다. 예를 들어, 모델 아키텍처는 위치에 모델을 사용하고 회전에 모델을 사용할 수 있다. 각 모델은 별도로 학습될 수 있다.
아키텍처 모델(232)은 시간적 안정성을 보장하고 따라서 출력된 헤드 포즈 계산들 사이의 낮은 지터를 보장하도록 구성될 수 있다. 예를 들어, 모델(232)은 LSTM 셀(710)의 출력 상태(722)를 다음 포즈 샘플(즉, 새로운 이력 윈도우가 캡처될 때)의 셀에 대한 입력으로 사용한다. LSTM 상태는 이전 포즈 샘플들의 내부 메모리를 유지하므로 자연스럽게 일시적인 안정성을 강화한다. 모델 아키텍처(232)는 하나의 윈도우 샘플에서 다음 윈도우 샘플로 LSTM 입력 상태를 전파하도록 구성된다. 이 차이는 학습 및 추론을 위해 샘플들을 선택하는 방법에 영향을 미친다.
따라서, 일부 구현들에서, 모델 아키텍처(232)는 예측들에 시간적 안정성의 이점을 제공할 수 있으며, 이는 사용자에게 제시된 출력(예를 들어, 이미지 콘텐츠, 카메라 피드 등)에서 더 적은 지터로 이어질 수 있다. 모델 아키텍처(232)는 또한 모델 아키텍처(230)보다 더 낮은 계산 복잡도로 실행될 수 있다. 예를 들어, 모델 아키텍처(232)는 각각의 새로 수신된 헤드 포즈 샘플에서 하나의 인코더 LSTM 단계를 실행하는 반면, 모델 아키텍처(230)는 각각의 새로운 헤드 포즈 샘플에 대해 H 인코더 LSTM 단계들을 실행한다. 두 모델 아키텍처들(230 및 232) 모두 K 디코더 LSTM 단계들을 실행한다.
일부 구현들에서, 모델 아키텍처(230)는 더 많은 지터를 제공하지만, 모델 아키텍처(232)보다 더 낮은 평균 제곱 오차로 이어지는 이점을 제공한다. 또한, 모델 아키텍처(232)는 위치 좌표들 등에 대한 정규화를 수행하지 않을 수 있기 때문에, VR 헤드셋에서 수집된 데이터로부터 좌표계 위치의 변화는 적절한 머리 포즈를 결정하기 위해 사전 처리될 수 있다. 일부 구현들에서, 모델 아키텍처(232)는 동일한 파라미터들(예를 들어, 글로벌 정규화)로 모든 샘플들을 정규화함으로써 정규화를 수행할 수 있다.
지터를 줄이기 위해, 모델 아키텍처(232)에 대한 손실 함수에 추가 항들이 도입될 수 있다. 모델 아키텍처(232)의 손실 함수는 예측 오차 항, 평활도 항 및 포즈 변경 항을 포함하지만 이에 제한되지 않는 적어도 3개의 항들을 포함할 수 있다.
특히, 손실 함수는 평균 절대 오차 기법을 사용하여 결정되거나 평균 제곱 오차 기법을 사용하여 결정되는 예측 오차 항을 포함할 수 있다. 모델 아키텍처(232)에서, 인코더 부분(702) 및 디코더 부분(704) 모두로부터의 출력은 각각의 LSTM 단계에 사용된다. 이러한 손실 항은 식 [5]에서와 같이 정의된다.
Figure pat00040
[5]
여기서 2개의 합계 항들은 각각 (인코더(702) 및 디코더(704)에서) LSTM 셀들의 출력들에 대응한다. (H) 값은 특정 총 이력 기간 동안 수집된 샘플들의 수를 나타낸다. 예를 들어, 총 이력 시간이 100 밀리 초이고 샘플 간격이 5 밀리 초이면 (H) = 20이다. (K) 값은 예측된 샘플들의 수를 나타낸다. 예를 들어, 총 예측 시간이 100 밀리 초인 경우 5 밀리 초 간격의 예측 샘플들의 수는 20개의 샘플들이다.
Figure pat00041
값은 인코더(702)에서의 입력을 나타내고,
Figure pat00042
값은 인코더(702)에서의 출력을 나타낸다.
Figure pat00043
값은 예측 시간들에서의 실측 포즈 값들을 나타내고,
Figure pat00044
값은 디코더 (704)에서의 출력을 나타낸다.
또한, 모델 아키텍처(232)는 식 [6]에 도시된 바와 같이 예측된 연속적인 헤드 포즈 샘플들 사이의 절대 차이의 평균을 나타내는 평활도 비용에 대한 항을 포함할 수 있다.
Figure pat00045
[6]
여기서,
Figure pat00046
.
모델 아키텍처(232)는 또한 디코더(704)에서 각각의 예측된 포즈와 인코더 (702)에서 마지막으로 알려진 실제 포즈(예를 들어, (H)) 사이의 차이를 나타내는 포즈 변경 비용에 대한 항을 포함할 수 있다. 이 비용은, 포즈 변경 비용 항이 새로운 포즈가 마지막으로 알려진 포즈의 특정 범위 내에 있음을 보장하기 때문에 예측된 포즈의 오버 슈팅 및 언더 슈팅의 감소를 가능하게 하는 이점을 제공할 수 있다. 포즈 변경 비용은 식 [7]과 같이 표현할 수 있다.
Figure pat00047
[7]
다시
Figure pat00048
. 일부 구현들에서, RNN은 알려진 포즈 시퀀스의 데이터베이스에서 훈련되고, 그리고 이력 포즈 데이터는 VR 또는 AR 애플리케이션을 실행하는 모바일 디바이스와 관련된 순차적 포즈 데이터이다.
모델 아키텍처(232)를 사용하는 총 손실에 대한 용어는 식 [8]에 도시된 바와 같이 표현될 수 있다.
Figure pat00049
[8]
여기서
Figure pat00050
Figure pat00051
는 경험적으로 선택될 수 있거나 또는 기계 학습을 사용하여 조정될 수 있다.
도 8은 여기에 서술된 구현들에 따른 도 7의 모델을 사용하여 이전 상태를 전파하는 동안 훈련 동안 순차적인 샘플 선택을 나타내는 예시적인 그래프(800)이다. 이력 머리 포즈 데이터를 캡처하기 위해 임의의 시간 윈도우들을 선택할 수 있다. 도시된 바와 같이, 시스템(200)은 모델 아키텍처(232)를 훈련하는데 사용하도록 이력 헤드 포즈 날짜를 획득하기 위해 제1 시간 윈도우(802), 제2 시간 윈도우(804) 및 제3 시간 윈도우(806)를 선택했다. 각각의 윈도우는 연속적으로 샘플링된 이력 머리 포즈 데이터의 검색을 나타낼 수 있다. 따라서, 각 LSTM의 상태는 전체 포즈 추적 시작시 0으로 초기화되지만 각 샘플링 윈도우에서는 초기화되지 않는다.
윈도우(802)에 대해, 포즈는 LSTM 상태를 0으로 초기화함으로써 예측될 수 있다. 인코더로부터의 상태
Figure pat00052
는, 윈도우(802)를 처리한 후, 화살표(808)로 표시된 바와 같이 윈도우(804)로부터의 예측을 위한 초기 상태로서 전달될 수 있다. 유사하게, 윈도우(804)로부터의 이력 데이터를 사용하여 획득된 상태
Figure pat00053
는 화살표(810)로 표시된 바와 같이 제3 창에 대해 수행된 머리 포즈 예측에 대한 입력으로서 제공될 수 있다. 유사한 방식으로, 이력 데이터의 추가 윈도우들 및 입력으로서 이전 윈도우들에서 얻은 상태들을 사용하여 임의의 수의 머리 포즈 예측들을 계산할 수 있다.
시스템(200)은 RNN의 훈련 동안 그래프(800)를 사용할 수 있다. 머리 포즈들이 예측될 때, 위에서 언급된 손실 함수가 예측된 머리 포즈들을 기반으로 특정 콘텐츠의 재생을 결정하기 위해 계산되고 활용될 수 있도록 하기 위해 이력 포즈 데이터의 전체 윈도우를 훈련에 활용한다.
모델 아키텍처(232)에 대한 그래프(800)의 훈련 동안, 시스템(200)은 모델 아키텍처(230)로 수행될 수 있는 것처럼, 샘플들에 대한 랜덤 액세스를 수행하지 않는다. 대신, 모든 트레이스들(예 : 윈도우 위의 머리 포즈 샘플들)을 쌓을 수 있고 해당 스택에서 훈련을 실행할 수 있다. 이러한 예에서 배치 크기는 추적들 수이다. 각 반복은 모든 트레이스들에서 병렬로 모델을 실행할 수 있지만 샘플들을 통해 순차적으로 실행할 수 있다. 모든 샘플들이 수집되면 훈련이 완료된다.
일부 구현들에서, 트레이스들은 각각 동일한 크기의 연속 샘플들의 정렬된 부분들로 분할될 수 있다. 시스템(200)은 각 부분의 시작에서 상태를 0으로 초기화할 수 있다. 모델 아키텍처(232)에 대한 훈련은 트레이스들 및 부분들에 대한 모델 훈련을 함께 병렬화하여 트레이스들 수 x 부분들 수의 배치 크기로 이어질 수 있다.
도 9는, 여기에 서술된 구현들에 따른 도 7의 모델을 사용하여 이전 상태를 전파하는 동안 추론 동안 순차적인 샘플 선택을 나타내는 예시적인 그래프(900)이다. 이 예에서는, 윈도우의 마지막 샘플(즉, 최신 또는 마지막 수신된 샘플)에 대해 단일 LSTM 셀이 실행되기 때문에 (H) 이력 포즈 데이터의 전체 윈도우를 얻지 못한다. 이 추론 그래프(900)에서, 각 상태는 화살표들(908, 910, 912)로 표시된 것처럼 각각의 이전 상태를 사용하여 초기화된다.
일부 구현들에서, 여기에 서술된 모델들은 사용자가 머리, 손, 모바일 디바이스 및/또는 AR/VR 제어기의 일부 또는 전부를 위치시키고 방향을 지정할 수 있는 위치를 결정하기 위해 제어기 포즈 예측에 적용될 수 있다. 일부 구현들에서, 여기에 서술된 시스템들은 머리 움직임들과 제어기 움직임들 사이의 기존 상관들로 인한 전체 예측들의 개선을 제공하기 위해 머리 포즈 예측들을 제어기 포즈 예측들과 결합할 수 있다. 일부 구현들에서, 여기에 서술된 모델들은, 예를 들어, 실제 콘텐츠와 가상 콘텐츠 간의 정렬을 수정하기 위해 증강 현실의 비디오 통과에 적용될 수 있다. 일부 구현들에서, 머리 포즈가 사용되지 않을 수 있지만, 대신 모바일 디바이스 포즈가 본 발명 전반에 걸쳐 서술된 구현들에서 포즈 입력으로 대체될 수 있다.
도 10은 여기에 서술된 구현들에 따른 예측된 머리 포즈들에 기초하여 AR 또는 VR 또는 MR 경험으로 콘텐츠를 제공하는 프로세스(1000)의 구현을 다이어그램으로 나타낸 흐름도이다. 예를 들어, 프로세스(1000)는 이력 헤드 포즈 데이터 및 하나 이상의 반복적인 신경망에 기초하여 헤드의 포즈를 예측할 수 있다.
프로세스(1000)의 동작에서, 컴퓨팅 디바이스(202)는 사용자가 AR 환경에서 콘텐츠의 적절하고 시간이 정확한 배치를 수신하도록 사용자에 대한 머리 포즈들을 예측하기 위해 컴퓨터로 구현되는 프로세스들을 수행할 수 있다. 일반적으로, 컴퓨팅 디바이스(202)는 VR 또는 AR 환경을 정의하는 데이터를 수신할 수 있다. VR 또는 AR 환경에는 물리적 환경의 표현이 포함된다. 데이터는 VR 또는 AR 환경에서 복수의 객체들을 렌더링 및 합성/배치하기 위한 명령어들을 포함할 수 있다.
블록 1002에서, 프로세스(1000)는 증강 또는 가상 현실 경험에 대한 머리 포즈 예측에 대한 요청을 수신하는 것을 포함한다. 예를 들어, 사용자는 AR (또는 VR 또는 MR) 환경에 액세스할 수 있다. AR 또는 VR 환경에서 사용자에 의해 사용되는 시스템은 사용자 움직임들, 머리 위치들, 손 위치들, 디바이스 위치들(예를 들어, 모바일 디바이스) 및/또는 기타 추적 가능한 메트릭들을 결정하는 데 도움이 될 수 있다. 예를 들어, 시스템들은 다가오는 (예를 들어, 미래) 기간에 머리 포즈들의 예측을 수신함으로써 이익을 얻을 수 있다. 따라서, 프로세스(1000)는 사용자에게 콘텐츠를 디스플레이하기 위한 적절한 배치 및 시간 렌더링을 보장하기 위해 머리 포즈 예측들을 수행할 수 있다.
블록 1004에서, 프로세스(1000)는 AR/VR 경험과 연관된 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 식별하는 것을 포함한다. 적어도 하나의 위치 지시자는 도 1의 설명에서 식 [1]에 의해 정의된 바와 같이 3차원 머리 위치 벡터일 수 있다. 적어도 하나의 회전 지시자는 도 1의 설명에서 식 [2]에 의해 정의된 바와 같이 4차원 쿼터니언일 수 있다. 예를 들어, 디바이스(202)는 AR 또는 VR 또는 MR 경험을 사용하여 사용자의 머리 포즈들을 정의하는 포즈 데이터를 검색, 결정, 검출 또는 달리 액세스할 수 있다. 포즈 데이터는 AR 또는 VR 또는 MR 경험에 액세스하는 사용자에 대한 이력 포즈 데이터일 수 있다. 일부 구현들에서, 포즈 데이터는 이전에 AR 또는 VR 또는 MR 경험을 경험했거나 활용했던 다른 사용자들, 애플리케이션들, 시스템들 또는 데이터베이스들과 관련된 이력 포즈 데이터일 수 있다.
블록 1006에서, 프로세스(1000)는 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 RNN(226)과 같은 RNN에 제공하는 것을 포함한다. RNN은 LSTM 네트워크에 있는 복수의 LSTM 셀들 각각에 대한 장단기 기억(LSTM) 네트워크와 완전 연결(FC) 네트워크를 포함한다. 일부 구현들에서, 각각의 LSTM 셀은 (시계열에서) 이력 기간과 연관될 수 있다. 예를 들어, 인코더에서, 각 LSTM 셀은 이력 기간 동안 수집된 머리 포즈들에 대한 위치 및 회전 정보를 포함하는 이력 포즈 데이터를 사용한다. 이러한 데이터는 RNN 훈련에 사용될 수 있다.
블록 1008에서, 프로세스(1000)는 적어도 하나의 다가오는 기간 동안 AR 또는 VR 또는 MR 경험에 대한 머리 포즈 변화들에 대한 적어도 하나의 예측을 생성하기 위해 RNN을 사용하는 것을 포함한다. 예를 들어, 디바이스(202)는 RNN(226) 및 인코더/디코더 모델(230) 또는 상태 전파 모델(232)을 사용하여 장래에 한 번 이상의 머리 포즈들을 예측할 수 있다.
일부 구현들에서, 프로세스(100)는 적어도 하나의 예측에 기초하여 추가 후보 예측들을 생성하는 것을 포함할 수 있다. 예를 들어, 디바이스(202)에 연결되거나 디바이스(202)로부터 액세스 가능한 디바이스(202)(또는 다른 컴퓨팅 장치)는 사용자가 AR 또는 VR 또는 MR 환경을 사용할 때 실시간으로 사용될 수 있는 새로운 예측들을 계속 생성할 수 있다. 적어도 하나의 예측 및 추가(예를 들어, 새로운) 후보 예측들은, 디바이스(202)가 적어도 하나의 예측 및 추가 후보 예측 각각에 대한 평균 제곱 오차를 결정하는 오류 검사를 거칠 수 있다. 평균 제곱 오차는 특정 머리 포즈 예측을 폐기할지 여부를 나타낼 수 있다. 예를 들어, 머리 포즈 예측과 관련된 평균 제곱 오차가 임계 오차 수준보다 높은 것으로 결정되면, 시스템(200)은 AR 또는 VR 또는 MR 환경에 잘못된 머리 포즈 데이터를 왜곡하거나 부적절하게 제공하지 않도록 그 머리 포즈 예측을 폐기할 수 있다. 이것은 예측된 머리 포즈들이 예측된 머리 포즈들과 이전에 알려진 머리 포즈 사이의 경과 시간에 기초하여 이전에 알려진 머리 포즈의 합리적인 거리 내에 남아 있음을 보장할 수 있다.
일부 구현들에서, RNN은 다가오는 기간 내의 각각의 타임 스텝에 대응하는 각각의 LSTM 셀에 대한 상태인 다가오는 기간 내의 복수의 시간단계들 각각에 대해 인코딩하도록 구성된다. 즉, 시스템(200)은 다가오는 LSTM 상태들 및 머리 포즈 예측들을 계산할 때 이전 LSTM 상태들이 고려될 수 있음을 보장하기 위해 피드백 루프(예를 들어, 피드백 루프들(422, 424, 426, 726, 728 및 730))를 사용할 수 있다.
일부 구현들에서, RNN은 추가의 다가오는 기간들에서 머리 포즈 변화들에 대한 추가 예측들을 재귀적으로 결정하도록 구성된다. 예를 들어, 시스템(200)은 사용자가 AR 또는 VR 또는 MR 환경에서 이동할 때 머리 포즈 예측들을 계속적으로 결정하기 위해 모델 아키텍처(230) 또는 모델 아키텍처(232)를 사용할 수 있다. 예측들은 콘텐츠를 렌더링할 때 발생할 수 있는 MTP 지연 없이 AR 또는 VR 또는 MR 환경에서 실시간 콘텐츠를 제공하기 위해 활용될 수 있다.
블록 1010에서, 프로세스(1000)는 요청에 응답하여 적어도 하나의 예측을 제공하고 적어도 하나의 예측에 기초하여 증강 또는 가상 현실 경험에서 증강 또는 가상 현실 콘텐츠의 디스플레이를 촉발하는 것을 포함한다. 예를 들어, 예측 알고리즘(228)은 RNN의 다른 상태에 대한 입력으로서 하나 이상의 예측을 RNN(226)에 출력할 수 있다. 출력은 AR 또는 VR 환경에 액세스하는 사용자를 위해 적절한 시간과 위치에서 콘텐츠의 디스플레이를 촉발하는데 사용될 수 있다.
일부 구현들에서, 머리 포즈 예측에 대한 요청을 수신하는 것은 네트워크를 통해 클라이언트 디바이스로부터 이력 머리 포즈 데이터의 수신을 포함한다. 예를 들어, 머리 포즈 예측에 대한 요청은 네트워크(205)를 통해 수신될 수 있다. 머리 포즈 변화들에 대한 적어도 하나의 예측을 제공하는 것은 머리 포즈 변화들에 대한 적어도 하나의 예측에 기초하여 네트워크(205)를 통해 클라이언트 디바이스(예를 들어, 디바이스(204))에 AR 또는 VR 환경의 렌더링된 콘텐츠를 제공하는 것을 포함할 수 있다. 일부 구현들에서, 머리 포즈 변화들에 대한 적어도 하나의 예측을 제공하는 것은 머리 포즈 변화들에 대한 적어도 하나의 예측에 기초하여 네트워크를 통해 클라이언트 디바이스에 증강 현실 경험의 렌더링된 콘텐츠를 제공하는 것을 포함한다.
일부 구현들에서, 적어도 하나의 위치 지시자는 3차원 머리 위치 벡터이고 적어도 하나의 회전 지시자는 4차원 쿼터니언이다. 일부 구현들에서, 적어도 하나의 회전 지시자는 요, 피치 및 롤을 포함한다. 일부 구현들에서, 적어도 하나의 회전 지시자는 회전량을 나타내는 크기 및 회전축을 나타내는 방향을 갖는 3차원 벡터를 포함한다.
일부 구현들에서, RNN은 적어도 하나의 예측에 기초하여 추가 후보 예측을 생성하고 추가 후보 예측들 각각에 대한 평균 제곱 오차를 결정하도록 구성되며, 평균 제곱 오차는 각각의 추가 머리 포즈 예측을 폐기할지 여부를 나타낸다.
일부 구현들에서, RNN은 추가 다가오는 기간에 포즈 변경들(예를 들어, 머리 포즈 변경들, 디바이스 포즈 변경들 등)에 대한 추가 예측들을 재귀적으로 결정하도록 구성된다.
도 11은 여기에 서술된 구현들에 따른 AR 또는 VR 또는 MR 경험을 제공하기 위해 머리 포즈들을 예측하는 프로세스(1100)의 구현을 나타내는 흐름도이다. 예를 들어, 프로세스(1100)는 이력 헤드 포즈 데이터 및 하나 이상의 반복적인 신경망에 기초하여 사용자의 머리의 포즈를 예측할 수 있다. 일부 구현들에서, 프로세스 (1100)는 AR 또는 VR 경험을 운영하는 사용자가 보유한 모바일 디바이스의 포즈를 예측할 수 있다. 일부 구현들에서, 프로세스(1100)는 AR 또는 VR 경험을 운영하는 사용자의 다른 신체 부위의 포즈를 예측할 수 있다.
컴퓨팅 디바이스(202)는 VR 또는 AR 환경을 정의하는 데이터를 수신할 수 있다. AR 환경에는 물리적 환경의 표현이 포함된다. 데이터는 VR 또는 AR 환경에서 복수의 객체들을 렌더링하고 합성하기 위한 명령어들을 포함할 수 있다.
블록 1102에서, 프로세스(1100)는 VR 또는 AR 환경에서 사용자 움직임들에 대응하는 이력 머리 포즈 데이터를 획득하는 것을 포함한다. 예를 들어, 프로세스 (1100)는 사용자들, 애플리케이션들, 환경들 등과 관련된 이력 포즈 데이터를 추적, 검색 또는 획득할 수 있다. 일부 구현들에서, 이력 포즈 데이터는 VR 또는 AR 애플리케이션과 관련된 순차적 포즈 데이터이다.
블록 1104에서, 프로세스(1100)는 이력 포즈 데이터로부터 결정된 포즈 피처들을 포함하는 제1 이력 벡터 시퀀스를 생성하는 것을 포함한다. 예를 들어, 시스템(202)은 입력들의 제1 이력 벡터(
Figure pat00054
)를 결정하기 위해 RNN(234)으로서 LSTM 및 완전 연결된 네트워크와 함께 상태 전파 모델(232)을 사용할 수 있다(도 7 참조). 포즈 피처들에는 위치 및 회전의 변형들이 포함될 수 있다. 예를 들어, 포즈 피처들은 이력 포즈 데이터에 포함될 수 있으며, 가상 현실 환경에서의 사용자 움직임들에 대응할 수 있는 것은 사용자 움직임들과 관련된 속도 또는 가속도 측정들을 포함한다.
블록 1106에서, 프로세스(1100)는 RNN을 실행하는 제1 이력 벡터 시퀀스(
Figure pat00055
)를 사용하여 다가오는 기간(예를 들어, 미래로의 1, 2, 3 MTP)에 대한 제1 포즈 예측(
Figure pat00056
)(도 7 참조)을 생성하는 것을 포함한다. RNN은 임의의 수의 LSTM 셀들(710) 또는 다른 셀들 및 적어도 하나의 완전히 연결된 신경망 층(708)을 포함할 수 있다.
벡터 시퀀스는 입력으로서 제1 헤드 포즈 예측 및 복수의 LSTM 셀들 중 적어도 하나의 상태(이미 수집된 헤드 포즈들의 인코딩된 이력 포함)를 수신하는 것에 응답하여 출력될 수 있다. 일부 구현들에서,
Figure pat00057
는 임의의 수의 예측된 포즈들
Figure pat00058
로 이어질 수 있는 임의의 수의 LSTM 및 FC 반복들을 나타낸다. 도 7은 추가적인 상호 작용들 및 머리 포즈 예측들이 가능할 수 있음을 나타내는 타원을 묘사한다.
예를 들어, 블록 1108에서, 프로세스(1100)는 RNN 네트워크를 사용하여 제1 포즈 예측(
Figure pat00059
) 및 복수의 LSTM 셀들 중 적어도 하나의 상태(
Figure pat00060
)를 수신하는 것에 응답하여 후속 기간에 대한 복수의 추가 포즈 예측(
Figure pat00061
)을 재귀적으로 생성하는 것을 포함한다. 상기 RNN은 제1 머리 포즈 예측을 입력으로 수신하는 것에 응답하여 출력한다. 이러한 출력 벡터 시퀀스는 다가오는 기간 이후의 기간에 대한 복수의 후보 머리 포즈 예측들을 나타낼 수 있다.
일부 구현들에서, 프로세스(1100)는 다가오는 기간을 넘어서 대응하는 기간들에서 추가 포즈 예측들에 기초하여 가상 현실 콘텐츠를 디스플레이할 위치들을 결정하는 단계를 포함한다. 일부 구현들에서, 프로세스(100)는 가상 현실 환경에서 디스플레이하기 위한 가상 현실 콘텐츠의 렌더링을 촉발하는 것을 포함한다.
일부 구현들에서, 프로세스(1100)는 다가오는 기간을 넘어서 대응하는 기간들에서 포즈 예측들에 기초하여 가상 현실 콘텐츠를 디스플레이할 위치들을 결정하는 것을 포함할 수 있다. 예를 들어, 후보 머리 포즈 예측들은 실시간 AR 또는 VR 환경 사용에 매칭될 수 있으며, 예측들, 실시간 환경에 기반하여 AR 또는 VR 환경에서 프로비저닝(예 : 디스플레이)을 위해 콘텐츠가 촉발될 수 있다.
일부 구현들에서, 복수의 LSTM 셀들에서 각 LSTM 셀의 상태는 다음 순차 포즈 예측과 함께 RNN에 입력으로 제공되며, 그리고 복수의 추가 포즈 예측들은 복수의 LSTM 셀들 내의 각 LSTM 셀의 상태에 적어도 부분적으로 기초한다.
일부 구현들에서, 프로세스(1100)는 정규화 및 비정규화 프로세스들을 포함한다. 예를 들어, 인코더/디코더 모델(230)이 RNN으로 활용되는 경우, 제1 이력 벡터 시퀀스(
Figure pat00062
)는 도 4의 설명에서 상세히 서술된 바와 같이 계산된 평균값 및 계산된 분산값에 적어도 부분적으로 기초하여 정규화될 수 있다. 또한, 인코더/디코더 모델(230)을 RNN으로 활용하면, 출력 벡터 시퀀스(
Figure pat00063
)는 시스템(200)이 AR 또는 VR 콘텐츠를 디스플레이할 위치들을 결정하기 전에 계산된 평균값 및 계산된 분산값에 기초하여 비정규화될 수 있다.
일부 구현들에서, 제1 이력 벡터 시퀀스는 계산된 평균값 및 계산된 분산값에 적어도 부분적으로 기초하여 정규화된 RNN에 대한 입력을 나타낸다. 일부 구현들에서, 가상 현실 콘텐츠를 디스플레이할 위치들을 결정하기 전에 계산된 평균값 및 계산된 분산값에 기초하여 제1 포즈 예측 및 복수의 추가 포즈 예측들이 비정규 화된다.
일부 구현들에서, 복수의 LSTM 셀들에서 각각의 LSTM 셀의 특정 상태는 도 7에 도시된 바와 같이 제1 머리 포즈 예측과 함께 RNN에 대한 입력으로서 제공된다. 이 예에서, 복수의 후보 머리 포즈 예측들은 머리 포즈 예측들을 생성할 때 복수의 LSTM 셀들에서 각 LSTM 셀의 상태를 고려할 수 있다.
일부 구현들에서, RNN은 알려진 머리 포즈 시퀀스들의 데이터베이스에서 훈련되고, 그리고 RNN은 각 후보 다음 머리 포즈에 대한 확률 측정을 출력하기 위해 출력 벡터 시퀀스를 벡터 임베딩함으로써 복수의 후보 머리 포즈들을 예측하도록 구성된다. 이 확률 측정은 오류 처리와 함께 사용되어 예측된 각 머리 포즈에 오류가 없는지 확인할 수 있다.
일부 구현들에서, RNN은 도 7의 설명에서 상세히 서술된 바와 같이, 복수의 추가(예를 들어, 후보) 포즈 예측들 각각에 대한 평균 절대 오차, 평활도 비용 및 포즈 변경 비용을 정의하는 오류 함수를 결정하도록 구성된다. 오류 함수는 가상 현실 콘텐츠를 표시하기 위해 복수의 후보 머리 포즈 예측을 사용할 때 지터를 줄이기 위해 각 후보 머리 포즈 예측을 폐기할지 여부를 나타낼 수 있다. 일부 구현들에서, 여기에 서술된 시스템들은 RNN이 예측들과 실측값들 사이의 오류를 감소시키기 위해 훈련 목적을 위해 그러한 비용을 사용할 수 있게 할 수 있다. 일부 구현들에서, 추론 동안, 실측값들을 사용할 수 없다고 결정되면 시스템들에 의해 손실이 사용되지 않을 수 있다. 일부 구현들에서, 평활도 또는 포즈 변경 오류는 샘플들을 폐기하기 위해 여기에서 서술된 시스템들에 의해 사용될 수 있지만, 실측값들을 사용할 수 없다고 결정되는 경우 평균 절대 오류가 활용되지 않을 수 있다.
일부 구현들에서, 오류 함수는 복수의 추가 포즈 예측들 중 하나 이상과 관련된 검출된 각도 오류 또는 검출된 눈 위치 오류에 기초하여 결정된다. 일부 구현들에서, 오류 함수는 복수의 추가 포즈 예측들의 일부에 기초하여 가중된 오류를 나타낸다.
일부 구현들에서, 여기에 서술된 RNN들은 LSTM들(234) 대신에 GRU(Gated Recurrent Unit)들(236)을 대신 사용할 수 있다. 일부 구현들에서, 각도 오차 함수들(예를 들어, 예측에서 포즈 데이터와 함께 속도들을 사용)를 포함하지만 이에 제한되지 않는 상이한 또는 추가 입력 데이터가 사용될 수 있다.
일부 구현들에서, 시스템(200)은 여기에 서술된 RNN들 중 하나 이상을 사용하여 예측을 수행하기로 결정할 수 있다. 예를 들어, 시스템(200)은, 제1 복수의 장단기(LSTM) 셀들 및 제1 완전 연결(FC) 층을 포함하는 제1 반복 신경망(RNN) 및 제2 복수의 장단기(LSTM) 셀들 및 제2 완전 연결(FC) 층을 포함하는 제2 반복 신경망(RNN) 모두를 포함할 수 있다. 시스템(200)은, 적어도 하나의 처리 디바이스 및 실행될 때 프로세싱 디바이스로 하여금 동작들을 수행하도록 하는 명령어들을 저장하는 메모리를 또한 포함할 수 있고, 상기 동작들은, 임계 수준 미만의 움직임이 활용되고 있다고 결정하는 것에 응답하여 증강 또는 가상 현실 환경에 액세스하는 사용자에 대해 증강 현실 환경에서 사용자에 의해 활용되는 최대 이동 범위를 결정하는 단계, 임계 레벨 미만의 움직임이 활용되고 있다고 결정하는 것에 응답하여 다가오는 기간에 대한 머리 자세 예측을 결정하기 위해 제1 RNN을 선택하는 단계, 및 제2 RNN의 다음 LSTM 셀에 대한 입력으로서 각 LSTM 셀의 상태를 제공함으로써 다가오는 기간 동안 감소된 지터를 갖는 헤드 포즈 예측을 결정하기 위해 제2 RNN을 선택하는 단계를 포함한다. 일부 구현들에서, 제1 RNN은 머리 자세 예측에 적어도 부분적으로 기초하여 증강 현실 환경에서 사용되는 제어기의 포즈를 예측하도록 추가로 구성된다.
도 12는 여기에 서술된 기술들로 사용될 수 있는 예시적인 컴퓨터 디바이스(1200) 및 예시적인 모바일 컴퓨터 디바이스(1250)의 일례를 도시한다. 일반적으로, 여기에 서술된 디바이스들은 가상 현실, 증강 현실 또는 혼합 현실 환경의 임의의 또는 모든 양태들을 생성 및/또는 제공할 수 있다. 컴퓨터 디바이스(1200) 및/또는 모바일 컴퓨터 디바이스(1250)와 관련하여 서술된 피처들은 전술한 휴대용 컴퓨팅 디바이스들에 포함될 수 있다. 컴퓨팅 디바이스(1200)는 랩탑들, 데스크탑들, 워크스테이션들, 개인 정보 단말기(personal digital assistant)들, 서버들, 블레이드 서버들, 메인 프레임들 및 다른 적절한 컴퓨터들과 같은 다양한 형태들의 디지털 컴퓨터들을 나타내기 위해 의도된다. 컴퓨팅 디바이스(1250)는 개인 정보 단말기들, 셀룰러 폰들, 스마트 폰들 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태들의 모바일 디바이스들을 나타내기 위해 의도된다. 여기에 제시된 구성 요소들, 이들의 연결 및 관계, 및 이들의 기능은 단지 예시적인 것으로 의도되며, 본 명세서에 설명된 및/또는 청구된 본 발명의 구현예를 제한하려고 의도된 것이 아니다.
컴퓨팅 디바이스(1200)는 프로세서(1202), 메모리(1204), 저장 디바이스(1206), 메모리(1204) 및 고속 확장 포트(1210)에 연결된 고속 인터페이스(1208), 및 저속 버스(1214) 및 저장 디바이스(1206)에 연결된 저속 인터페이스(1212)를 포함한다. 구성 요소들(1202, 1204, 1206, 1208, 1210 및 1212) 각각은 다양한 버스를 사용하여 상호 연결되고, 공통 마더 보드에 또는 적절한 다른 방식으로 장착될 수 있다. 프로세서(1202)는, 메모리(1204) 또는 저장 디바이스(1206)에 저장된 명령어들을 포함하여, 컴퓨팅 디바이스(1200) 내에서 실행되는 명령어들을 처리하여, 고속 인터페이스(1208)에 결합된 디스플레이(1216)와 같은 외부 입력/출력 디바이스 상에 GUI를 위한 그래픽 정보를 디스플레이할 수 있다. 다른 구현들에서, 다수의 메모리들 및 메모리 유형들과 함께 다수의 프로세서들 및/또는 다수의 버스들이 적절히 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(1200)이 연결될 수 있고, 각 디바이스는 필요한 동작들(예를 들어, 서버 뱅크, 블레이드 서버들의 그룹 또는 다중 프로세서 시스템)의 일부들을 제공한다.
메모리(1204)는 컴퓨팅 디바이스(1200) 내에 정보를 저장한다. 일부 구현들에서, 메모리(1204)는 휘발성 메모리 유닛 또는 유닛들이다. 일부 구현들에서, 메모리(1204)는 비-휘발성 메모리 유닛 또는 유닛들이다. 메모리(1204)는 또한 자기 디스크 또는 광 디스크와 같은 다른 형태의 컴퓨터 판독 가능한 매체일 수 있다.
저장 디바이스(1206)는 컴퓨팅 디바이스(1200)를 위한 대용량 저장 디바이스를 제공할 수 있다. 일 구현에서, 저장 디바이스(1206)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성의 디바이스를 포함하는 디바이스의 어레이와 같은 컴퓨터-판독가능한 매체이거나 이 컴퓨터-판독가능한 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 매체에 유형적으로 구현될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 위에서 설명한 것과 같은 하나 이상의 방법을 수행하는 명령어들을 포함할 수 있다. 정보 매체는 메모리(1204), 저장 디바이스(1206), 또는 프로세서(1202)상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
고속 제어기(1208)는 컴퓨팅 디바이스(1200)에 대한 대역폭 집약적인 동작들을 관리하는 반면, 저속 제어기(1212)는 낮은 대역폭 집약적인 동작들을 관리한다. 이러한 기능 할당은 단지 예시적인 것이다. 일 구현에서, 고속 제어기(1208)는 메모리(1204), 디스플레이(1216)(예를 들어, 그래픽 프로세서 또는 가속기를 통해), 및 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는 고속 확장 포트들(1210)에 결합된다. 상기 구현에서, 저속 제어기(1212)는 저장 디바이스(1206) 및 저속 확장 포트(1214)에 결합된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)를 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스, 또는 예를 들어 네트워크 어댑터를 통해 라우터 또는 스위치와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(1200)는 도면에 도시된 바와 같이 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 이 컴퓨팅 디바이스는 표준 서버(1220)로서 구현되거나, 또는 이러한 서버들의 그룹으로 다수회 구현될 수 있다. 이는 또한, 랙 서버 시스템(1224)의 부분으로서 구현될 수 있다. 또한, 이 컴퓨팅 디바이스는 랩탑 컴퓨터(1222)와 같은 개인용 컴퓨터에서 구현될 수도 있다. 대안적으로, 컴퓨팅 디바이스(1200)로부터의 구성 요소들은 디바이스(1250)와 같은 모바일 디바이스(도시되지 않음) 내의 다른 구성 요소들과 결합될 수 있다. 이러한 디바이스들 각각은 하나 이상의 컴퓨팅 디바이스(1200, 1250)를 포함할 수 있고, 그리고 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(1200, 1250)로 구성될 수 있다.
컴퓨팅 디바이스(1250)는 다른 구성요소들 중 프로세서(1252), 메모리(1264), 디스플레이(1254)와 같은 입력/출력 디바이스, 통신 인터페이스(1266) 및 트랜시버(1268)를 포함한다. 디바이스(1250)는 추가적인 저장소를 제공하기 위해 마이크로 드라이브 또는 다른 디바이스와 같은 저장 디바이스를 또한 구비할 수 있다. 구성요소들(1250, 1252, 1264, 1254, 1266 및 1268) 각각은 다양한 버스들을 사용하여 상호 연결되며, 일부 구성 요소는 공통 마더보드 상에 또는 적절히 다른 방식으로 장착될 수 있다.
프로세서(1252)는 메모리(1264)에 저장된 명령어들을 포함하여 컴퓨팅 디바이스(1250) 내의 명령어들을 실행할 수 있다. 프로세서는 별도의 및 다수의 아날로그 및 디지털 프로세서를 포함하는 칩들의 칩셋(chipset)으로서 구현될 수 있다. 프로세서는, 예를 들어, 사용자 인터페이스들의 제어, 디바이스(1250)에 의해 실행되는 애플리케이션들, 및 디바이스(1250)에 의한 무선 통신과 같은 디바이스(1250)의 다른 구성 요소들의 조정을 제공할 수 있다.
프로세서(1252)는 제어 인터페이스(1258) 및 디스플레이(1254)에 결합된 디스플레이 인터페이스(1256)를 통해 사용자와 통신할 수 있다. 디스플레이(1254)는, 예를 들어, 박막 트랜지스터 액정 디스플레이(Thin-Film-Transistor Liquid Crystal Display: TFT LCD) 또는 유기 발광 다이오드(Organic Light Emitting Diode: OLED) 디스플레이 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(1256)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(1254)를 구동하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(1258)는 사용자로부터 명령을 수신하여 이 명령을 프로세서(1252)에 전달하기 위해 이들 명령을 변환할 수 있다. 또한, 외부 인터페이스(1262)는 프로세서(1252)와 통신하며 다른 디바이스들과 디바이스(1250)의 근거리 통신이 가능하도록 제공될 수 있다. 외부 인터페이스(1262)는, 예를 들어, 일부 구현들에서 유선 통신을 제공하거나, 또는 다른 구현들에서 무선 통신을 제공할 수 있으며, 다수의 인터페이스들은 또한 사용될 수 있다.
메모리(1264)는 컴퓨팅 디바이스(1250) 내에 정보를 저장한다. 메모리(1264)는 컴퓨터 판독 가능 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들 또는 비-휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로 구현될 수 있다. 확장 메모리(1274)는 또한 예를 들어 SIMM(Single In Line Memory Module) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(1272)를 통해 모바일 컴퓨팅 디바이스(1250)에 제공되고 연결될 수 있다. 이러한 확장 메모리(1274)는 디바이스(1250)를 위한 여분의 저장 공간을 제공할 수 있거나, 또는 디바이스(1250)를 위한 애플리케이션 또는 다른 정보를 더 저장할 수 있다. 구체적으로, 확장 메모리(1274)는 전술된 처리를 수행하거나 보충하기 위한 명령을 포함할 수 있고, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(1274)는 디바이스(1250)를 위한 보안 모듈로서 제공될 수 있고, 디바이스(1250)의 보안 사용을 가능하게 하는 명령으로 프로그래밍될 수 있다. 또한, 예를 들어 SIMM 카드 상에 식별 정보를 해킹할 수 없는 방식으로 배치하는 보안 애플리케이션이 추가적인 정보와 함께 SIMM 카드를 통해 제공될 수 있다.
메모리는, 예를 들어, 후술된 바와 같이, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 매체에 유형적으로 구현된다. 컴퓨터 프로그램 제품에는 실행시 위에서 설명한 것과 같은 하나 이상의 방법을 수행하는 명령어들이 포함된다. 정보 매체는 예를 들어 트랜시버(1268) 또는 외부 인터페이스(1262)를 통해 수신될 수 있는 메모리(1264), 확장 메모리(1274) 또는 프로세서(1252)상의 메모리와 같은 컴퓨터 또는 기계 판독 가능 매체이다.
모바일 컴퓨팅 디바이스(1250)는 필요한 경우 디지털 신호 처리 회로를 포함할 수 있는 통신 인터페이스(1266)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(1266)는 특히 GSM 음성 호출(Global System for Mobile communications), SMS(Short Message Service), EMS(Enhanced Messaging Service), 또는 MMS 메시징(Multimedia Messaging Service), CDMA(code division multiple access), TDMA(time division multiple access), PDC(Personal Digital Cellular), WCDMA(Wideband Code Division Multiple Access), CDMA2000 또는 GPRS(General Packet Radio Service)와 같은 다양한 모드들 또는 프로토콜들 하에서 통신을 제공할 수 있다. 이러한 통신은 예를 들어 무선 주파수를 사용하는 트랜시버(1268)를 통해 발생할 수 있다. 또한, 예를 들어 블루투스, Wi-Fi 또는 다른 이러한 트랜시버(도시되지 않음)를 사용하는 단거리 통신이 발생할 수 있다. 또한, GPS(Global Positioning System) 수신기 모듈(1270)은 디바이스(1250) 상에서 실행되는 애플리케이션들에 의해 적절히 사용될 수 있는 추가적인 네비게이션 관련 무선 데이터 및 위치 관련 무선 데이터를 디바이스(1250)에 제공할 수 있다.
모바일 컴퓨팅 디바이스(1250)는 또한 사용자로부터 발성된(spoken) 정보를 수신하고 이 발성된 정보를 사용 가능한 디지털 정보로 변환할 수 있는 오디오 코덱(1260)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(1260)은 또한 예를 들어 디바이스(1250)의 핸드셋 내 예를 들어 스피커를 통해, 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 음성 전화 호출로부터의 사운드를 포함할 수 있고, 기록된 사운드(예를 들어, 음성 메시지들, 음악 파일들 등)를 포함할 수 있고, 또한 디바이스(1250) 상에서 동작하는 애플리케이션들에 의해 생성된 사운드를 포함할 수도 있다.
디바이스(1250)는 도면에 도시된 바와 같이 다수의 다른 형태들로 구현될 수 있다. 예를 들어, 이 모바일 컴퓨팅 디바이스는 셀룰러 폰(1280)으로 구현될 수 있다. 이 컴퓨팅 디바이스는 또한 스마트 폰(1282), 개인 정보 단말기, 또는 다른 유사한 모바일 디바이스의 일부로서 구현될 수 있다.
여기에 서술된 시스템들 및 서술들의 다양한 구현들은, 디지털 전자 회로, 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합들로 실현될 수 있다. 구현들은 컴퓨터 프로그램 제품, 즉, 데이터 처리 장치, 예를 들어, 프로그래밍 가능한 프로세서, 컴퓨터 또는 여러 컴퓨터에 의해 실행되거나 데이터 처리 장치의 작동을 제어하기 위해 정보 매체, 예를 들어, 기계 판독 가능 저장 장치 또는 전파된 신호에 유형적으로 구현된 컴퓨터 프로그램으로 구현될 수 있다. 위에서 서술된 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 언어 또는 해석된 언어를 포함하여 모든 형태의 프로그래밍 언어로 작성될 수 있으며 독립 실행형 프로그램 또는 모듈, 구성 요소, 서브 루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 장치를 포함한 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트의 여러 컴퓨터에서 실행되도록 배포되거나 여러 사이트에 분산되고 통신 네트워크로 상호 연결될 수 있다.
방법 단계들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하는 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 프로세서에 의해 수행될 수 있다. 방법 단계들은 또한 FPGA (필드 프로그래밍 가능 게이트 어레이) 또는 ASIC (주문형 집적 회로)와 같은 특수 목적 논리 회로에 의해 수행될 수 있으며, 장치는 예를 들어 FPGA (필드 프로그래밍 가능 게이트 어레이) 또는 ASIC (주문형 집적 회로)와 같은 특수 목적 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 예로서, 범용 및 특수 목적의 마이크로 프로세서, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다에서 명령과 데이터를 수신한다. 컴퓨터의 요소들은 명령어들을 실행하기 위한 적어도 하나의 프로세서와 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들을 포함할 수 있다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광 자기 디스크 또는 광 디스크로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 포함하거나 작동 가능하게 결합될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구현하기에 적합한 정보 매체들은, 예를 들어, EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치를 포함하는 모든 형태의 비 휘발성 메모리; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크; 광 자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 여기에 서술된 시스템들 및 기술들은, 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT (cathode ray tube) 또는 LCD(liquid crystal display) 모니터), 및 키보드 및 사용자가 입력을 컴퓨터에 제공할 수 있는 포인팅 디바이스(예를 들어, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에 구현될 수 있다. 다른 종류의 디바이스들은 사용자와의 상호 작용을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공된 피드백은 임의의 형태의 감각 피드백(예를 들어, 시각적 피드백, 청각 피드백 또는 촉각 피드백)일 수 있고 그리고 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
구현들은 백엔드 구성 요소(예 : 데이터 서버)를 포함하거나 또는 미들웨어 구성 요소(예 : 애플리케이션 서버)를 포함하거나 또는 프런트 엔드 구성 요소(예를 들어, 사용자가 구현 또는 그러한 백엔드, 미들웨어 또는 프런트 엔드 구성 요소의 임의의 조합과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저가 있는 클라이언트 컴퓨터)를 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 구성요소들은, 예를 들어, 통신 네트워크와 같은 디지털 데이터 통신의 임의의 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 LAN(Local Area Network) 및 WAN(Wide Area Network)(예 : 인터넷)이 있다.
여기에 서술된 예시적인 실시예들에 기반한 컴퓨팅 디바이스는, 사용자 디바이스, 사용자 인터페이스(UI) 디바이스, 사용자 터미널, 클라이언트 디바이스 또는 고객 디바이스를 포함하여 사용자와 인터페이스하도록 구성된 하드웨어 및/또는 소프트웨어의 적절한 조합을 사용하여 구현될 수 있다. 컴퓨팅 디바이스는 예를 들어 랩톱 컴퓨터와 같은 휴대용 컴퓨팅 디바이스로 구현될 수 있다. 컴퓨팅 디바이스는, 예를 들어, PDA, 노트북 컴퓨터 또는 태블릿 컴퓨터와 같이 사용자와 인터페이스하도록 구성된 다른 유형의 휴대용 컴퓨팅 디바이스로 구현될 수 있다. 컴퓨팅 디바이스는, 예를 들어, PC와 같은 사용자와 인터페이스하도록 구성된 다른 유형의 컴퓨팅 디바이스로서 구현될 수 있다. 컴퓨팅 디바이스는 사용자와 인터페이스하고 이동 통신 네트워크를 포함하는 네트워크를 통한 무선 통신에 적합한 휴대용 통신 디바이스(예를 들어, 이동 전화, 스마트 전화, 무선 셀룰러 전화 등)로 구현될 수 있다.
컴퓨터 시스템(예 : 컴퓨팅 디바이스)은, 무선 주파수(RF), 마이크로파 주파수(MWF) 및/또는 적외선 주파수(IRF) 무선 통신 기술들 및 네트워크를 통한 통신에 적합한 프로토콜들을 포함한 알려진 무선 통신 기술들 및 프로토콜들을 사용하여 네트워크 서버와 설정된 통신 링크를 거쳐 네트워크를 통해 네트워크 서버와 무선으로 통신하도록 구성될 수 있다.
본 발명의 양태들에 따르면, 여기에 서술된 다양한 기술들의 구현들은 디지털 전자 회로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 구현들은, 데이터 처리 장치(예를 들어, 프로그램가능한 프로세서, 컴퓨터, 또는 다수의 컴퓨터들)에 의해 처리를 위해 또는 데이터 처리 장치의 동작을 제어하기 위해 컴퓨터 프로그램 제품(예를 들어, 정보 매체, 기계 판독 가능 저장 장치, 컴퓨터 판독 가능 매체, 유형 컴퓨터 판독 가능 매체에 유형적으로 구현된 컴퓨터 프로그램)으로 구현될 수 있다. 일부 구현들에서, 유형의 컴퓨터 판독 가능 저장 매체는 실행될 때 프로세서가 프로세스를 수행하게 하는 명령어들을 저장하도록 구성될 수 있다. 위에서 서술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 언어나 해석된 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있고, 그리고 독립 실행형 프로그램이나 모듈, 구성 요소, 서브 루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 장치를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트의 여러 컴퓨터에서 처리되도록 배포되거나 여러 사이트에 분산되고 통신 네트워크에 의해 상호 연결될 수 있다.
여기에 개시된 특정 구조적 및 기능적 세부 사항은 예시적인 실시예들을 설명하기 위한 목적에 불과하다. 그러나 본 발명의 실시예들은 여러 가지 다른 형태로 구현될 수 있으며 여기에서 설명하는 실시예들에만 한정되는 것은 아니다.
여기에 사용된 용어는 특정 실시예를 설명하기 위한 것이며 실시예를 제한하려는 의도가 아니다. 여기에 사용되는 바와 같이, 단수형 단어 및 상기는 문맥상 달리 명확하게 나타내지 않는 한 복수형도 포함하도록 의도된다. 본 명세서에서 사용될 때, "포함하다", "포함하는" 용어는 언급된 특징들, 단계들, 동작들, 요소들 및/또는 구성 요소들의 존재를 명시하지만, 그러나 하나 이상의 다른 기능들, 단계들, 동작들, 요소들, 구성 요소들 및/또는 그 그룹의 존재 또는 추가를 배제하지 않음이 또한 이해될 것이다.
요소가 다른 요소에 "결합", "연결" 또는 "반응" 또는 "위에"으로 언급될 때, 다른 요소에 직접 결합, 연결 또는 응답할 수 있거나, 또는 중간 요소가 존재할 수도 있음이 이해될 것이다. 대조적으로, 요소가 다른 요소에 "직접 결합", "직접 연결", 또는 "직접 반응" 또는 "직접"으로 언급되는 경우, 개입 요소가 존재하지 않다. 본 명세서에서 사용되는 용어 "및/또는"은 하나 이상의 연관된 열거 된 항목의 임의의 및 모든 조합을 포함한다.
"아래" 및 "위" 등과 같은 공간적으로 상대적인 용어들은, 도면에 도시된 바와 같이 다른 요소(들) 또는 특징(들)과 관련하여 하나의 요소 또는 특징을 서술하기 위해 설명의 용이함을 위해 본원에서 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시된 방향에 더하여 사용 또는 작동중인 디바이스의 다른 방향을 포함하도록 의도된 것임을 이해할 것이다. 예를 들어, 도면들의 디바이스가 뒤집힌 경우, 다른 요소 또는 피처들 "아래"로 서술된 요소들은 다른 요소들 또는 피처들 "위"로 향하게 된다. 따라서, "아래"라는 용어는 위와 아래의 방향을 모두 포함할 수 있다. 디바이스는 다른 방향(120도 또는 다른 방향으로 회전)이 될 수 있으며 여기에 사용된 공간적으로 상대적인 설명자는 그에 따라 해석될 수 있다.
개념의 예시적인 실시예들은 예시적인 실시예들의 이상화된 실시예들(및 중간 구조들)의 개략적 예시인 단면 예시들을 참조하여 여기에서 서술된다. 따라서, 예를 들어 제조 기술들 및/또는 공차들의 결과로서 그림의 모양으로부터의 변화가 예상된다. 따라서, 서술된 개념들의 예시적인 실시예들은 여기에 예시된 영역들의 특정 형태로 제한되는 것으로 해석되어서는 안되며, 예를 들어 제조에서 발생하는 형태의 편차를 포함해야 한다. 따라서, 도면들에 예시된 영역들은 본질적으로 개략적이고 그 형태는 디바이스의 영역의 실제 형태를 예시하기 위한 것이 아니며 예시적인 실시예들의 범위를 제한하려는 의도가 아니다.
"제 1", "제 2" 등의 용어가 본 명세서에서 다양한 요소를 설명하기 위해 사용될 수 있지만, 이들 요소는 이들 용어에 의해 제한되어서는 안된다는 것이 이해될 것이다. 이 용어들은 한 요소를 다른 요소와 구별하는 데만 사용된다. 따라서, "제 1" 요소는 본 실시예들의 교시에서 벗어나지 않고 "제 2" 요소로 지칭될 수 있다.
달리 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함하여 여기서 사용되는 모든 용어는 이러한 개념이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 또한, 일반적으로 사용되는 사전에 정의된 용어와 같은 용어들은 관련 기술의 맥락에서의 의미와 일치하는 의미를 갖는 것으로 해석되어야 하고 그리고/또는 여기에서 명시적으로 정의되지 않는 한 이상화되거나 지나치게 형식적인 의미로 해석되지 않을 것으로 이해될 것이다.
서술된 구현들의 특정 특징들이 본 명세서에 설명된 바와 같이 설명되었지만, 많은 수정들, 대체물들, 변경들 및 등가물이 이제 통상의 기술자에게 발생할 것이다. 따라서, 첨부된 청구 범위들은 구현의 범위 내에 있는 그러한 모든 수정들 및 변경들을 포함하도록 의도된 것임을 이해해야 한다. 그것들은 제한이 아닌 예로서만 제시되었으며, 형태와 세부 사항에서 다양한 변경이 이루어질 수 있음을 이해해야 한다. 본 명세서에 서술된 장치 및/또는 방법의 임의의 부분은 상호 배타적인 조합들을 제외하고 임의의 조합으로 조합될 수 있다. 본 명세서에 서술된 구현들은 서술된 상이한 구현들의 기능들, 구성 요소들 및/또는 특징들의 다양한 조합들 및/또는 하위 조합들을 포함할 수 있다.

Claims (20)

  1. 컴퓨터로 구현되는 방법으로서,
    증강 현실 경험을 위한 머리 포즈(head pose) 예측에 대한 요청을 수신하는 단계와;
    상기 증강 현실 경험과 관련된 적어도 하나의 위치 지시자(positional indicator) 및 적어도 하나의 회전 지시자(rotational indicator)를 식별하는 단계와;
    복수의 셀들을 포함하는 RNN(Recurrent Neural Network)에 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 제공하는 단계 - 상기 RNN은 상기 복수의 셀들 중 적어도 하나 및 적어도 하나의 완전 연결(FC) 층을 각각 포함하는 복수의 반복 단계들을 포함하고, 상기 복수의 셀들 중 적어도 일부는 이력 기간(historical time period)과 연관되며 - 와;
    적어도 하나의 다가오는 기간 동안 상기 증강 현실 경험에 대한 머리 포즈 변화들에 대응하는 적어도 하나의 포즈 예측을 생성하기 위해 상기 RNN을 사용하는 단계와; 그리고
    상기 요청에 응답하여 상기 적어도 하나의 포즈 예측을 제공하고 그리고 상기 적어도 하나의 포즈 예측에 기초하여 상기 증강 현실 경험에서 증강 현실 콘텐츠의 디스플레이를 촉발(trigger)하는 단계를 포함하는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 위치 지시자는 3차원 머리 위치 벡터이고 그리고 상기 적어도 하나의 회전 지시자는 4차원 쿼터니언(quaternion)인 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  3. 제1항에 있어서,
    상기 적어도 하나의 회전 지시자는:
    요, 피치 및 롤; 또는
    회전량을 나타내는 크기와 회전축을 나타내는 방향을 갖는 3차원 벡터를 포함하는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  4. 제1항에 있어서,
    상기 RNN은:
    상기 적어도 하나의 포즈 예측에 기초하여 추가 후보 예측들을 생성하고; 그리고
    상기 추가 후보 예측들 각각에 대한 평균 제곱 오차를 결정하도록 구성되며,
    상기 평균 제곱 오차는 각각의 추가 머리 포즈 예측을 폐기할지를 나타내는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  5. 제1항에 있어서,
    상기 RNN은 추가적인 다가오는 기간에서 머리 포즈 변화들에 대한 추가 예측들을 재귀적으로 결정하도록 구성되는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  6. 제1항에 있어서,
    상기 머리 포즈 예측에 대한 요청을 수신하는 단계는 네트워크를 통해 클라이언트 디바이스로부터 이력 머리 포즈 데이터의 수신을 포함하고; 그리고
    머리 포즈 변경들에 대한 적어도 하나의 포즈 예측을 제공하는 것은, 머리 포즈 변경들에 대한 상기 적어도 하나의 포즈 예측에 기초하여 상기 네트워크를 통해 상기 클라이언트 디바이스에 상기 증강 현실 경험에서 렌더링된 콘텐츠를 제공하는 것을 포함하는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  7. 가상 현실 환경에서 포즈들을 예측하기 위한 컴퓨터로 구현되는 방법으로서,
    상기 가상 현실 환경에서 사용자 움직임들에 대응하는 이력 포즈 데이터를 획득하는 단계와;
    상기 이력 포즈 데이터로부터 결정된 포즈 특징들을 포함하는 제1 이력 벡터 시퀀스를 생성하는 단계와;
    RNN(Recurrent Neural Network)을 실행하는 상기 제1 이력 벡터 시퀀스를 사용하여, 다가오는 기간에 대한 제1 포즈 예측을 결정하는 단계 - 상기 RNN은 복수의 LSTM(long short-term memory) 셀들 및 적어도 하나의 완전히 연결된 신경망을 포함하며 - 와;
    상기 RNN을 사용하여, 상기 제1 포즈 예측 및 상기 복수의 LSTM 셀들 중 적어도 하나의 상태를 수신하는 것에 응답하여 후속 기간 동안 복수의 추가 포즈 예측들을 재귀적으로 생성하는 단계를 포함하는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  8. 제7항에 있어서,
    상기 가상 현실 환경에서의 사용자 움직임들에 대응하는 상기 이력 포즈 데이터는 상기 사용자 움직임들과 관련된 속도 또는 가속도 측정들을 포함하는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  9. 제7항에 있어서,
    상기 다가오는 기간 이후의 해당 기간들에서 상기 추가 포즈 예측들에 기초하여 가상 현실 콘텐츠를 디스플레이할 위치를 결정하는 단계와; 그리고
    상기 가상 현실 환경에서 디스플레이하기 위해 상기 가상 현실 콘텐츠의 렌더링을 촉발하는 단계를 더 포함하는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  10. 제7항에 있어서,
    상기 제1 이력 벡터 시퀀스는 계산된 평균값 및 계산된 분산값에 적어도 부분적으로 기초하여 정규화된 RNN에 대한 입력을 나타내고; 그리고
    상기 제1 포즈 예측 및 상기 복수의 추가 포즈 예측들은 가상 현실 콘텐츠를 디스플레이할 위치들을 결정하기 전에 상기 계산된 평균값 및 상기 계산된 분산값에 기초하여 비정규화되는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  11. 제7항에 있어서,
    상기 복수의 LSTM 셀들 내의 각 LSTM 셀의 상태는 다음 순차적인 포즈 예측과 함께 상기 RNN에 대한 입력으로서 제공되고; 그리고
    상기 복수의 추가 포즈 예측들은 상기 복수의 LSTM 셀들에서 각각의 LSTM 셀의 상태에 적어도 부분적으로 기초하는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  12. 제7항에 있어서,
    상기 RNN은 알려진 포즈 시퀀스들의 데이터베이스에서 훈련되고, 그리고
    상기 이력 포즈 데이터는 가상 현실 애플리케이션을 실행하는 모바일 디바이스와 관련된 순차적 포즈 데이터인 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  13. 제7항에 있어서,
    상기 RNN은, 상기 복수의 추가 포즈 예측들 각각에 대한 평균 절대 오차, 평활도 비용 및 포즈 변경 비용을 정의하는 오차 함수를 결정하도록 구성되는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  14. 제13항에 있어서,
    상기 오차 함수는 검출된 각도 오차 또는 상기 복수의 추가 포즈 예측들 중 하나 이상과 관련된 검출된 눈 위치 오차에 기초하여 결정되거나; 또는
    상기 오차 함수는 상기 복수의 추가 포즈 예측들의 일부에 기초한 가중 오차를 나타내는 것을 특징으로 하는
    컴퓨터로 구현되는 방법.
  15. 비 일시적인 컴퓨터 판독 가능 매체에 유형적으로 구현되고 그리고 명령어들을 포함하는 컴퓨터 프로그램 제품으로서,
    상기 명령어들은 실행될 때 적어도 하나의 프로세서로 하여금,
    증강 현실 경험을 위한 포즈 예측에 대한 요청을 수신하고,
    상기 증강 현실 경험과 관련된 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 식별하고,
    복수의 셀들을 포함하는 RNN에 적어도 하나의 위치 지시자 및 적어도 하나의 회전 지시자를 제공하고, 상기 RNN은 상기 복수의 셀들 중 적어도 하나 및 적어도 하나의 완전 연결(FC) 층을 각각 포함하는 복수의 반복 단계들을 포함하고, 상기 복수의 셀들 중 적어도 일부는 이력 기간과 연관되며,
    적어도 하나의 다가오는 기간 동안 상기 증강 현실 경험에 대한 머리 포즈 변화들에 대응하는 적어도 하나의 포즈 예측을 생성하기 위해 상기 RNN을 사용하고, 그리고
    상기 요청에 응답하여 상기 적어도 하나의 포즈 예측을 제공하고 그리고 상기 적어도 하나의 포즈 예측에 기초하여 상기 증강 현실 경험에서 증강 현실 콘텐츠의 디스플레이를 촉발하도록 구성되는 것을 특징으로 하는
    컴퓨터 프로그램 제품.
  16. 제15항에 있어서,
    상기 RNN은:
    상기 적어도 하나의 예측에 기초하여 추가 후보 예측들을 생성하고; 그리고
    상기 추가 후보 예측들 각각에 대한 평균 제곱 오차를 결정하도록 구성되며,
    상기 평균 제곱 오차는 각각의 추가 포즈 예측을 폐기할지를 나타내는 것을 특징으로 하는
    컴퓨터 프로그램 제품.
  17. 제15항에 있어서,
    상기 적어도 하나의 회전 지시자는:
    회전량을 나타내는 크기와 회전축을 나타내는 방향을 갖는 3차원 벡터를 포함하는 것을 특징으로 하는
    컴퓨터 프로그램 제품.
  18. 제15항에 있어서,
    상기 적어도 하나의 위치 지시자는 3차원 머리 위치 벡터이고 그리고 상기 적어도 하나의 회전 지시자는 4차원 쿼터니언인 것을 특징으로 하는
    컴퓨터 프로그램 제품.
  19. 제15항에 있어서,
    상기 복수의 셀들은 LSTM(long short-term memory) 셀들이고 그리고 상기 RNN은 추가적인 다가오는 기간에서 머리 포즈 변화들에 대한 추가 예측들을 재귀적으로 결정하도록 구성되는 것을 특징으로 하는
    컴퓨터 프로그램 제품.
  20. 제19항에 있어서,
    상기 RNN은, 입력으로서 그리고 다가오는 기간 내의 복수의 시간 단계들 각각에 대해, 상기 다가오는 기간의 각 시간 단계에 대응하는, 복수의 LSTM 셀들에서 각각의 LSTM 셀에 대한 상태를 인코딩하도록 구성되는 것을 특징으로 하는
    컴퓨터 프로그램 제품.
KR1020200102496A 2019-08-20 2020-08-14 반복 신경망들을 통한 포즈 예측 KR102478026B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/545,803 US10989916B2 (en) 2019-08-20 2019-08-20 Pose prediction with recurrent neural networks
US16/545,803 2019-08-20

Publications (2)

Publication Number Publication Date
KR20210022498A true KR20210022498A (ko) 2021-03-03
KR102478026B1 KR102478026B1 (ko) 2022-12-15

Family

ID=72046776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200102496A KR102478026B1 (ko) 2019-08-20 2020-08-14 반복 신경망들을 통한 포즈 예측

Country Status (5)

Country Link
US (1) US10989916B2 (ko)
EP (1) EP3800528A1 (ko)
JP (1) JP6971359B2 (ko)
KR (1) KR102478026B1 (ko)
CN (1) CN111766948A (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021040010A1 (ja) * 2019-08-30 2021-03-04 ソニー株式会社 情報処理装置、制御方法
US11315326B2 (en) * 2019-10-15 2022-04-26 At&T Intellectual Property I, L.P. Extended reality anchor caching based on viewport prediction
US20210192681A1 (en) * 2019-12-18 2021-06-24 Ati Technologies Ulc Frame reprojection for virtual reality and augmented reality
US11353700B2 (en) * 2020-10-07 2022-06-07 Industrial Technology Research Institute Orientation predicting method, virtual reality headset and non-transitory computer-readable medium
CN112354171B (zh) * 2020-10-20 2023-08-25 上海恒润文化科技有限公司 一种轨道车及其执行机构的执行控制方法和装置
CN112702522B (zh) * 2020-12-25 2022-07-12 李灯 一种基于vr直播系统的自适应控制播放方法
KR102480451B1 (ko) * 2021-03-03 2022-12-23 (주)이머시브캐스트 Mtp 지연 감소를 위한 클라우드 vr 장치
KR102620876B1 (ko) * 2021-06-16 2024-01-05 한국과학기술원 안전 고리의 가설구조물 체결 여부 인식 방법 및 장치
DE112022003894T5 (de) * 2021-08-11 2024-05-29 Harman International Industries, Incorporated Verbessertes verfolgen des kopfes für dreidimensionales audio-rendering
CN114237393A (zh) * 2021-12-13 2022-03-25 北京航空航天大学 一种基于头动意图的vr画面刷新方法及系统
CN114246582A (zh) * 2021-12-20 2022-03-29 杭州慧光健康科技有限公司 基于长短期记忆神经网络的卧床人员检测系统及方法
CN114637412B (zh) * 2022-05-17 2022-08-02 广东控银实业有限公司 用于vr设备人物移动的摇杆控制方法和系统
US11977672B2 (en) * 2022-06-03 2024-05-07 Qualcomm Incorporated Distributed pose prediction
US20240169677A1 (en) * 2022-11-21 2024-05-23 Qualcomm Incorporated Future pose predictor for a controller
CN117636701A (zh) * 2023-10-19 2024-03-01 广州市信息技术职业学校 一种基于虚拟现实技术的胶囊填充机辅助培训系统
CN117455983B (zh) * 2023-12-26 2024-04-12 深圳市亿境虚拟现实技术有限公司 Vr手柄空间定位方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002086378A (ja) * 2000-09-08 2002-03-26 Sony Corp 脚式ロボットに対する動作教示システム及び動作教示方法
US20160077166A1 (en) * 2014-09-12 2016-03-17 InvenSense, Incorporated Systems and methods for orientation prediction
KR20180061956A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 눈 위치 예측 방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2973432A4 (en) * 2013-03-15 2016-08-31 Huntington Ingalls Inc METHOD AND SYSTEM FOR DEAMBIGUTING BASED AUGMENTED REALITY TRACKING DATA BASES
JP6197702B2 (ja) * 2014-03-10 2017-09-20 富士通株式会社 入力方法,プログラム及び入力装置
WO2018039269A1 (en) * 2016-08-22 2018-03-01 Magic Leap, Inc. Augmented reality display device with deep learning sensors
US11348274B2 (en) * 2017-01-23 2022-05-31 Oxford University Innovation Limited Determining the location of a mobile device
US10664993B1 (en) * 2017-03-13 2020-05-26 Occipital, Inc. System for determining a pose of an object
US10096125B1 (en) * 2017-04-07 2018-10-09 Adobe Systems Incorporated Forecasting multiple poses based on a graphical image
CN107517372B (zh) * 2017-08-17 2022-07-26 腾讯科技(深圳)有限公司 一种vr内容拍摄方法、相关设备及系统
WO2020023524A1 (en) * 2018-07-23 2020-01-30 Magic Leap, Inc. Method and system for resolving hemisphere ambiguity using a position vector

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002086378A (ja) * 2000-09-08 2002-03-26 Sony Corp 脚式ロボットに対する動作教示システム及び動作教示方法
US20160077166A1 (en) * 2014-09-12 2016-03-17 InvenSense, Incorporated Systems and methods for orientation prediction
KR20180061956A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 눈 위치 예측 방법 및 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
James Lin 등, Temporal KI: Data-Driven Pose Estimation for Virtual Reality, EECS Department, University of Califonia, Berkeley.(2019.05.17.)* *
YINGHAO HUANG 등, Deep Inertial Poser: Learning to Reconstruct Human Pose from Sparse Inertial Measurements in Real Time, ACM Graph.(2018.12.04.) *

Also Published As

Publication number Publication date
CN111766948A (zh) 2020-10-13
KR102478026B1 (ko) 2022-12-15
JP6971359B2 (ja) 2021-11-24
JP2021034021A (ja) 2021-03-01
US10989916B2 (en) 2021-04-27
EP3800528A1 (en) 2021-04-07
US20210055545A1 (en) 2021-02-25

Similar Documents

Publication Publication Date Title
KR102478026B1 (ko) 반복 신경망들을 통한 포즈 예측
US8737693B2 (en) Enhanced detection of gesture
US9377859B2 (en) Enhanced detection of circular engagement gesture
CA3104243C (en) Real-time animation generation using machine learning
US9235278B1 (en) Machine-learning based tap detection
RU2708027C1 (ru) Способ передачи движения субъекта из видео на анимированного персонажа
JP2015520471A (ja) ジェスチャー入力のための指先の場所特定
US11670056B2 (en) 6-DoF tracking using visual cues
JP2017523498A (ja) 効率的なフォレストセンシングに基づくアイトラッキング
CN114972958B (zh) 关键点检测方法、神经网络的训练方法、装置和设备
WO2021238866A1 (zh) 一种应用程序的显示方法、终端和计算机可读存储介质
US11335023B2 (en) Human pose estimation using neural networks and kinematic structure
CN115079832B (zh) 虚拟现实场景的显示处理方法及虚拟现实设备
US20240169677A1 (en) Future pose predictor for a controller
CN115061576B (zh) 用于虚拟现实场景的注视位置预测方法及虚拟现实设备
KR102617213B1 (ko) 소프트웨어 기반의 객체 트래킹 제공 방법 및 그를 위한 컴퓨팅 장치
US20240103610A1 (en) Egocentric human body pose tracking
WO2023239776A1 (en) Fast ar device pairing using depth predictions
WO2023250361A1 (en) Generating user interfaces displaying augmented reality graphics

Legal Events

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