KR20230162927A - 인간의 시야 범위로부터의 자기중심적 포즈 추정 - Google Patents

인간의 시야 범위로부터의 자기중심적 포즈 추정 Download PDF

Info

Publication number
KR20230162927A
KR20230162927A KR1020237028694A KR20237028694A KR20230162927A KR 20230162927 A KR20230162927 A KR 20230162927A KR 1020237028694 A KR1020237028694 A KR 1020237028694A KR 20237028694 A KR20237028694 A KR 20237028694A KR 20230162927 A KR20230162927 A KR 20230162927A
Authority
KR
South Korea
Prior art keywords
pose
user
dimensional
motion
features
Prior art date
Application number
KR1020237028694A
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
Priority claimed from US17/475,063 external-priority patent/US20220319041A1/en
Application filed by 메타 플랫폼즈 테크놀로지스, 엘엘씨 filed Critical 메타 플랫폼즈 테크놀로지스, 엘엘씨
Publication of KR20230162927A publication Critical patent/KR20230162927A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • 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
    • 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
    • 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
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B2027/0178Eyeglass type
    • 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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Optics & Photonics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

일 실시형태에서, 컴퓨팅 시스템은 사용자가 착용한 헤드셋 상의 카메라에 의해 사용자의 신체 부위를 캡처하는 이미지를 캡처할 수 있다. 시스템은 캡처된 이미지에 기초하여 사용자의 모션 히스토리를 인코딩하는 모션 피처를 결정할 수 있다. 시스템은 이미지에서 사용자의 신체 부위에 대응하는 전경 픽셀을 검출할 수 있다. 시스템은 전경 픽셀에 기초하여 카메라에 의해 캡처된 사용자의 신체 부위를 인코딩하는 형상 피처를 결정할 수 있다. 시스템은 모션 피처 및 형상 피처에 기초하여 사용자의 3차원 신체 포즈 및 3차원 머리 포즈를 결정할 수 있다. 시스템은 사용자의 3차원 머리 포즈 및 전경 픽셀에 기초하여 포즈 볼륨 표현을 생성할 수 있다. 시스템은 3차원 신체 포즈 및 포즈 볼륨 표현에 기초하여 사용자의 정제된 3차원 신체 포즈를 결정할 수 있다.

Description

인간의 시야 범위로부터의 자기중심적 포즈 추정
본 개시는 일반적으로 인간-컴퓨터 상호작용 기술, 특히 사용자 신체 포즈 추적에 관한 것이다.
인공 현실은 가상 현실(VR), 증강 현실(AR), 혼합 현실(mixed reality; MR), 하이브리드 현실(hybrid reality), 또는 이들의 일부 조합 및/또는 파생물을 포함할 수 있는 사용자에게 표시하기 전에 어떤 방식으로든 조정된 현실의 한 형태이다. 인공 현실 콘텐트는 완전히 생성된 콘텐트 또는 캡처된 콘텐트(예컨대, 현실 세계 사진)와 결합되어 생성된 콘텐트를 포함할 수 있다. 인공 현실 콘텐트는 비디오, 오디오, 햅틱 피드백, 또는 이들의 일부 조합을 포함할 수 있으며, 이들 중 임의의 것이 단일 채널 또는 다중 채널(예컨대, 시청자에게 3차원 효과를 생성하는 스테레오 비디오)로 제시될 수 있다. 인공 현실은, 예를 들어 인공 현실에서 콘텐트를 생성하는 데 사용되는 그리고/또는 인공 현실에서(예컨대, 활동을 수행하는) 사용되는 애플리케이션, 제품, 액세서리, 서비스, 또는 이들의 일부 조합과 연관될 수 있다. 인공 현실 콘텐트를 제공하는 인공 현실 시스템은 호스트 컴퓨터 시스템에 접속된 HMD(Head Mounted Display), 독립형 HMD, 모바일 디바이스, 또는 컴퓨팅 시스템, 또는 한 명 이상의 시청자에게 인공 현실 콘텐츠를 제공할 수 있는 임의의 다른 하드웨어 플랫폼을 포함하는 다수의 플랫폼 상에서 구현될 수 있다.
현재 AR/VR 시스템은 자기 센서 및 관성 센서와 같은 비광학 센서를 사용하여 사용자의 신체 포즈를 결정할 수 있다. 그러나, 이러한 센서는 사용자의 신체에 부착해야 할 수 있으며 사용자가 착용하는 데 거슬리고 불편할 수 있다. 또는, 기존 시스템은 머리에 장착된 탑다운(top-down) 카메라를 사용하여 착용자의 신체 포즈를 추정할 수 있다. 그러나, 이러한 탑다운 카메라는 돌출되어 카메라를 착용하는 사용자에게 불편할 수 있다.
본 개시는 전술한 결점 및 단점 중 일부 또는 전부를 적어도 부분적으로 해결하고자 한다.
본 개시의 제1 양태에 따르면, 컴퓨팅 시스템에 의해, 사용자가 착용한 헤드셋 상의 카메라에 의해 상기 카메라를 착용하는 상기 사용자의 신체 부위의 적어도 일부를 캡처하는 하나 이상의 이미지를 캡처하는 단계; 상기 카메라에 의한 상기 하나 이상의 캡처된 이미지에 기초하여, 상기 사용자의 신체의 모션 히스토리(motion history)를 인코딩하는 복수의 모션 피처(motion feature)를 결정하는 단계; 상기 하나 이상의 이미지에서, 상기 사용자의 상기 신체 부위의 일부에 대응하는 전경 픽셀(foreground pixel)을 검출하는 단계; 상기 전경 픽셀에 기초하여, 상기 카메라에 의해 캡처된 상기 사용자의 상기 신체 부위의 일부를 인코딩하는 복수의 형상 피처를 결정하는 단계; 상기 복수의 모션 피처 및 상기 복수의 형상 피처에 기초하여, 상기 사용자의 3차원 신체 포즈 및 3차원 머리 포즈를 결정하는 단계; 상기 사용자의 상기 3차원 머리 포즈 및 전경 픽셀에 기초하여 포즈 볼륨 표현(pose volume representation)을 생성하는 단계; 및 상기 포즈 볼륨 표현 및 상기 3차원 신체 포즈에 기초하여 상기 사용자의 정제된 3차원 신체 포즈(refined three-dimensional body pose)를 결정하는 단계를 포함하는, 방법이 제공된다.
일부 실시형태에서, 상기 사용자의 상기 정제된 3차원 신체 포즈는 상기 사용자의 상기 신체의 상기 모션 히스토리를 인코딩한 상기 복수의 모션 피처에 기초하여 결정될 수 있다.
일부 실시형태에서, 상기 카메라의 시야(field of view)는 전방(front-facing)일 수 있고, 상기 카메라에 의해 캡처된 상기 하나 이상의 이미지는 어안 이미지(fisheye image)일 수 있고, 상기 사용자의 신체 부위의 일부는 상기 사용자의 손, 팔, 발, 또는 다리를 포함할 수 있다.
일부 실시형태에서, 상기 헤드셋은 사용자의 머리에 착용될 수 있고, 상기 헤드셋과 연관된 하나 이상의 IMU를 사용하여 IMU 데이터를 수집하는 단계를 더 포함하고, 상기 복수의 모션 피처는 상기 카메라에 의해 캡처된 상기 하나 이상의 이미지 및 상기 IMU 데이터에 기초하여 결정될 수 있다.
일부 실시형태에서, 상기 방법은 동시 위치측정 및 지도화(simultaneous localization and mapping; SLAM) 모듈에 상기 IMU 데이터 및 상기 하나 이상의 이미지를 제공하는(feeding) 단계; 및 상기 동시 위치측정 및 지도화 모듈을 사용하여, 상기 IMU 데이터 및 상기 하나 이상의 이미지에 기초하여 하나 이상의 모션 히스토리 표현을 결정하는 단계를 더 포함하고, 상기 복수의 모션 피처는 상기 하나 이상의 모션 히스토리 표현에 기초하여 결정될 수 있다.
일부 실시형태에서, 각각의 모션 히스토리 표현은 미리 결정된 시간 기간에 걸친 복수의 벡터를 포함할 수 있고, 상기 복수의 벡터의 각각의 벡터는 상기 사용자의 높이(height), 3차원 회전(rotation), 또는 3차원 병진이동(translation)과 연관된 파라미터를 포함할 수 있다.
일부 실시형태에서, 상기 복수의 모션 피처는 모션 피처 모델을 사용하여 결정될 수 있고, 상기 모션 피처 모델은 모션 히스토리 표현으로부터 모션 피처를 추출하도록 트레이닝된 뉴럴 네트워크 모델을 포함할 수 있다.
일부 실시형태에서, 상기 방법은, 전경-배경 분할 모듈에 상기 하나 이상의 이미지를 제공하는 단계; 및 상기 전경-배경 분할 모듈을 사용하여 상기 하나 이상의 이미지 중 각각의 이미지에 대한 전경 마스크를 결정하는 단계를 더 포함할 수 있고, 상기 전경 마스크는 상기 사용자의 신체 부위의 일부와 연관된 상기 전경 픽셀을 포함할 수 있고, 상기 복수의 형상 피처는 상기 전경 픽셀에 기초하여 결정될 수 있다.
일부 실시형태에서, 복수의 형상 피처는 형상 피처 모델을 사용하여 결정될 수 있고, 상기 형상 피처 모델은 이미지의 전경 마스크로부터 형상 피처를 추출하도록 트레이닝된 뉴럴 네트워크 모델을 포함할 수 있다.
일부 실시형태에서, 상기 방법은, 상기 복수의 모션 피처와 상기 복수의 형상 피처의 가중치를 밸런싱(balancing)하는 단계; 및 상기 밸런싱된 가중치에 기초하여, 퓨전 모듈(fusion module)에 상기 복수의 모션 피처 및 상기 복수의 형상 피처를 제공하는 단계를 더 포함할 수 있고, 상기 사용자의 상기 3차원 신체 포즈 및 상기 3차원 머리 포즈는 상기 퓨전 모듈에 의해 결정될 수 있다.
일부 실시형태에서, 상기 포즈 볼륨 표현은 상기 사용자의 상기 3차원 신체 포즈 및 상기 3차원 머리 포즈에 대한 3차원 신체 형상 엔벨로프(three-dimensional body shape envelope)에 대응할 수 있다.
일부 실시형태에서, 상기 포즈 볼륨 표현은 상기 사용자의 상기 전경 픽셀을 3차원 큐빅 공간(three-dimensional cubic space)으로 역투영(back-projecting)함으로써 생성될 수 있다.
일부 실시형태에서, 상기 전경 픽셀은 상기 3차원 신체 포즈와 상기 3차원 머리 포즈를 서로 일관되게 유지하는 제약 하에서 상기 3차원 큐빅 공간으로 역투영될 수 있다.
일부 실시형태에서, 상기 방법은, 상기 하나 이상의 이미지의 상기 포즈 볼륨 표현, 상기 복수의 모션 피처, 및 상기 전경 픽셀을 3차원 포즈 정제 모델에 제공하는 단계를 더 포함할 수 있고, 상기 사용자의 상기 정제된 3차원 신체 포즈는 상기 3차원 포즈 정제 모델에 의해 결정될 수 있다.
일부 실시형태에서, 상기 3차원 포즈 정제 모델은 상기 포즈 볼륨 표현으로부터 피처를 추출하기 위한 3차원 뉴럴 네트워크를 포함할 수 있고, 상기 포즈 볼륨 표현으로부터의 상기 추출된 피처는 상기 복수의 모션 피처 및 상기 3차원 신체 포즈와 연결될(concatenated) 수 있다.
일부 실시형태에서, 상기 3차원 포즈 정제 모델은 상기 복수의 모션 피처 및 상기 3차원 신체 포즈와 연결된 상기 포즈 볼륨 표현으로부터 추출된 피처를 정제 회귀 네트워크에 제공하는 단계를 더 포함할 수 있는 정제 회귀 네트워크(refinement regression network)를 포함할 수 있고, 상기 사용자의 상기 정제된 3차원 신체 포즈는 상기 정제 회귀 네트워크에 의해 출력될 수 있다.
일부 실시형태에서, 상기 정제된 3차원 신체 포즈는 실시간으로 결정될 수 있고, 상기 방법은 상기 사용자의 상기 정제된 3차원 신체 포즈에 기초하여 상기 사용자에 대한 아바타(avatar)를 생성하는 단계; 및 디스플레이 상에 상기 아바타를 디스플레이하는 단계를 더 포함할 수 있다.
일부 실시형태에서, 상기 방법은 상기 사용자의 상기 정제된 3차원 신체 포즈에 기초하여 스테레오 사운드 신호를 생성하는 단계; 및 상기 스테레오 사운드 신호에 기초한 스테레오 어쿠스틱 사운드를 상기 사용자에게 재생하는 단계를 더 포함할 수 있다.
본 개시의 제2 양태에 따르면, 사용자가 착용한 헤드셋 상의 카메라에 의해 상기 카메라를 착용하는 상기 사용자의 신체 부위의 적어도 일부를 캡처하는 하나 이상의 이미지를 캡처하고; 상기 카메라에 의한 상기 하나 이상의 캡처된 이미지에 기초하여, 상기 사용자의 신체의 모션 히스토리(motion history)를 인코딩하는 복수의 모션 피처(motion feature)를 결정하고; 상기 하나 이상의 이미지에서, 상기 사용자의 상기 신체 부위의 일부에 대응하는 전경 픽셀(foreground pixel)을 검출하고; 상기 전경 픽셀에 기초하여, 상기 카메라에 의해 캡처된 상기 사용자의 상기 신체 부위의 일부를 인코딩하는 복수의 형상 피처를 결정하고; 상기 복수의 모션 피처 및 상기 복수의 형상 피처에 기초하여, 상기 사용자의 3차원 신체 포즈 및 3차원 머리 포즈를 결정하고; 상기 사용자의 상기 3차원 머리 포즈 및 전경 픽셀에 기초하여 포즈 볼륨 표현(pose volume representation)을 생성하고; 상기 포즈 볼륨 표현 및 상기 3차원 신체 포즈에 기초하여 상기 사용자의 정제된 3차원 신체 포즈(refined three-dimensional body pose)를 결정하도록 동작 가능한 소프트웨어를 구현하는 하나 이상의 컴퓨터 판독 가능 비일시적 저장 매체가 제공된다.
본 개시의 제3 양태에 따르면, 명령어를 구현하는 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체; 및 상기 저장 매체에 커플링되고 상기 명령어를 실행하도록 동작 가능한 하나 이상의 프로세서를 포함하는 시스템이 제공되고, 상기 명령어는, 사용자가 착용한 헤드셋 상의 카메라에 의해 상기 카메라를 착용하는 상기 사용자의 신체 부위의 적어도 일부를 캡처하는 하나 이상의 이미지를 캡처하고; 상기 카메라에 의한 상기 하나 이상의 캡처된 이미지에 기초하여, 상기 사용자의 신체의 모션 히스토리(motion history)를 인코딩하는 복수의 모션 피처(motion feature)를 결정하고; 상기 하나 이상의 이미지에서, 상기 사용자의 상기 신체 부위의 일부에 대응하는 전경 픽셀(foreground pixel)을 검출하고; 상기 전경 픽셀에 기초하여, 상기 카메라에 의해 캡처된 상기 사용자의 상기 신체 부위의 일부를 인코딩하는 복수의 형상 피처를 결정하고; 상기 복수의 모션 피처 및 상기 복수의 형상 피처에 기초하여, 상기 사용자의 3차원 신체 포즈 및 3차원 머리 포즈를 결정하고; 상기 사용자의 상기 3차원 머리 포즈 및 전경 픽셀에 기초하여 포즈 볼륨 표현(pose volume representation)을 생성하고; 상기 포즈 볼륨 표현 및 상기 3차원 신체 포즈에 기초하여 상기 사용자의 정제된 3차원 신체 포즈(refined three-dimensional body pose)를 결정하기 위한 것이다.
여기에 개시된 실시형태는 예시일 뿐이며, 본 개시의 범위는 이것에 한정되지 않는다. 특정 실시형태는, 위에서 개시된 실시형태의 콤포넌트, 엘리먼트, 피처, 기능, 동작, 또는 단계의 전체 또는 일부를 포함하거나 전혀 포함하지 않을 수 있다. 본 발명에 따른 실시형태는 특히 방법, 저장 매체, 시스템, 및 컴퓨터 프로그램 제품에 관한 첨부된 청구범위에 개시되며, 하나의 청구범위 카테고리 예컨대 방법에서 언급된 임의의 피처는 다른 청구범위 카테고리 예컨대 시스템에서 청구될 수 있다. 첨부된 청구범위의 종속성 또는 참조는 형식적인 이유로만 선택된다. 그러나, 임의의 이전 청구범위(특히 다중 종속성)를 고의적으로 참조하여 발생한 모든 주제(subject matter)도 청구될 수 있으므로, 청구범위와 그 피처의 모든 조합이 공개되고 첨부된 청구범위에서 선택된 종속성에 관계없이 청구될 수 있다. 청구될 수 있는 주제는 첨부된 청구범위에 기재된 바와 같은 피처의 조합뿐만 아니라 청구범위의 피처의 임의의 다른 조합을 포함하며, 여기서 청구범위에 언급된 각 피처는 임의의 다른 피처 또는 청구범위의 다른 피처의 조합과 결합될 수 있다. 또한, 여기에 설명되거나 묘사된 실시형태 및 피처 중 임의의 것은 별도의 청구범위에서 및/또는 여기에 설명 또는 묘사된 임의의 실시형태 또는 피처 또는 첨부된 청구범위의 임의의 피처와 임의의 조합으로 청구될 수 있다.
본 개시의 하나 이상의 양태 또는 실시형태로의 통합에 적합한 것으로 여기에서 설명된 임의의 피처들은 본 개시의 임의의 및 모든 양태 및 실시양태에 걸쳐 일반화할 수 있도록 의도된다는 것이 이해될 것이다. 본 개시의 다른 양태들은 본 개시의 설명, 청구범위, 및 도면에 비추어 당업자에 의해 이해될 수 있다. 전술한 일반적인 설명 및 다음의 상세한 설명은 예시적이고 설명적일 뿐이며 청구범위를 제한하지 않는다.
도 1a는 전방 카메라를 가진 예시적 인공 현실 시스템을 도시한다.
도 1b는 전방 카메라를 가진 예시적 증강 현실 시스템을 도시한다.
도 2는 인간 시야 범위에 기초하여 사용자의 신체 포즈 및 머리 포즈의 예시적 추정 결과를 도시한다.
도 3a는 예시적 시스템 아키텍쳐를 도시한다.
도 3b는 정제 스테이지(refinement stage)에 대한 예시적 프로세스를 도시한다.
도 4는 예시적 모션 히스토리 이미지 및 대응하는 인간 포즈를 도시한다.
도 5는 예시적 전경 이미지 및 대응하는 포즈 볼륨 표현을 도시한다.
도 6은 합성 사람 모델에 기초하여 생성된 예시적 트레이닝 샘플을 도시한다.
도 7은 모션-온리 방법(motion-only method)의 그라운드 트루스 데이터(ground truth data) 및 신체 포즈 추정 결과와 비교하는 예시적 신체 포즈 추정 결과를 도시한다.
도 8a-8b는 예시적인 결과 및 추정된 자기-머리-포즈 및 카메라 SLAM에 기초한 전역 좌표계에서의 추정된 자기-포즈를 재배치하는 것을 도시한다.
도 9는 사용자가 착용한 카메라에 의해 캡처된 이미지에 기초하여 사용자의 전체 신체 포즈를 결정하는 예시적 방법을 도시한다.
도 10은 예시적 컴퓨터 시스템을 도시한다.
본원에 기술된 특정 실시형태는 사용자의 3D 신체 포즈 및 머리 포즈를 추정하기 위해 머리 모션 데이터 및 가시적 신체 부위 이미지 모두를 사용하는 시스템 및 방법에 관한 것이다. 방법은 2개의 스테이지를 포함할 수 있다. 제1 스테이지에서, 시스템은 사용자의 머리의 어안 이미지 및 IMU 데이터에 기초하여 3D 신체 포즈 및 머리 포즈의 초기 추정 결과를 결정할 수 있다. 제2 스테이지에서, 시스템은 포즈 볼륨 표현에 기초하여 제1 스테이지의 추정 결과를 정제할(refine) 수 있다. 제1 스테이지에서의 초기 3D 신체 포즈 및 머리 포즈를 추정하기 위해, 시스템은 사용자의 머리 포즈에 대한 모션 히스토리 이미지를 생성하기 위한 SLAM(simultaneous localization and mapping) 기술을 사용할 수 있다. 모션 히스토리 이미지는 시간에 걸친 사용자의 머리의 회전(예컨대, 3×3 행렬로 표현된 바와 같음), 병진이동(x, y, z), 및 (예컨대, 지면에 대한) 높이를 표현하기 위한 벡터를 포함하는 사용자의 머리 모션 데이터의 2D 표현일 수 있다. 시스템은 모션 히스토리 이미지를 생성하기 위해 SLAM 모듈에 HDM 카메라의 어안 이미지 및 사용자의 머리 모션의 IMU 데이터를 제공할 수 있다. 이어서, 시스템은 모션 히스토리 이미지로부터 모션 피처 벡터를 추출하도록 트레이닝될 수 있는 모션 피처 네트워크에 모션 히스토리 이미지를 제공할 수 있다. 동시에, 시스템은 픽셀 레벨에서 이미지의 전경과 배경을 분할하도록 트레이닝될 수 있는 전경 형상 분할 네트워크에 어안 이미지를 제공할 수 있다. 전경/배경 분할 결과는 전경 이미지의 형상 피처 벡터를 추출하도록 트레이닝될 수 있는 형상 피처 추출 네트워크에 제공될 수 있다. 이어서, 시스템은 사용자의 초기 3D 신체 포즈 및 머리 포즈를 결정하기 위해 퓨전 네트워크를 사용하여 모션 피처 벡터와 형상 피처 벡터를 융합할(fuse) 수 있다. 융합 전에, 시스템은 벡터 길이를 제어함으로써 2개 타입의 벡터의 가중치를 제어하기 위해 밸런서(balancer)(예컨대, 완전히 연결된 네트워크)를 사용할 수 있다.
제1 스테이지에서 결정된 초기 3D 신체 포즈 및 머리 포즈를 정제하기 위해, 시스템은 포즈 볼륨 표현(예컨대, 41×41×41 3D 행렬)을 생성하기 위해 3D 공간(2m×2m×2m 볼륨)으로 전경 픽셀을 역투영할 수 있다. 포즈 볼륨 표현은 현재 머리 포즈 및 신체 형상 추정을 위한 3D 신체 형상 엔벨로프를 명시적으로 표현할 수 있다. 특정 실시형태에서, 포즈 볼륨 표현은 하나 이상의 피처 벡터를 포함하거나 3D 볼륨 공간에 임베딩(embedding)할 수 있다. 포즈 볼륨 표현은 뉴럴 네트워크 또는 다른 머신 러닝 모델에 의해 생성될 수 있다. 이어서, 시스템은 피처 추출을 위해 3D CNN에 포즈 볼륨 표현을 제공한다. 추출된 피처는 평탄화되고(flattened) 모션 피처(모션 히스토리 이미지로부터 추출됨) 및 초기 3D 포즈 추정과 연결될 수 있으며, 그런 다음 3D 신체 포즈 추정을 위해 완전히 연결된 정제 회귀 네트워크에 제공된다. 정제 회귀 네트워크는 퓨전 네트워크와 유사한 구조를 가질 수 있지만 신체 포즈 추정을 출력만 할 수 있다. 사용자 신체의 3D 지오메트리(geometry)를 직접 캡처하는 명시적인 3D 표현을 통해, 시스템은 보다 정확한 신체 포즈 추정을 달성할 수 있다. 트레이닝 프로세스를 위해 시스템은 합성 트레이닝 데이터를 생성할 수 있다. 시스템은 먼저 스켈레톤(skeleton)을 사람 메쉬 모델(person mesh model)로 리타겟팅(re-targeting)하여 애니메이션을 생성할 수 있다. 이어서, 시스템은 (예컨대, 눈 포지션에서 또는 각 사람의 2개의 눈 사이에) 하나 이상의 전방 어안 카메라를 부착하고 애니메이션에서의 가상 카메라 포즈 및 포지션 히스토리를 사용하여 모션 히스토리 맵을 생성할 수 있다. 이어서, 시스템은 등거리 어안 모델로 카메라 뷰(camera view)를 렌더링할 수 있다. 결과적으로, 시스템은 자기 포즈 추정 모델을 트레이닝하고 검증하기 위한 고품질 데이터를 제공한다.
도 1a는 컨트롤러(106)를 가진 예시적 가상 현실 시스템(100A)을 도시한다. 특정 실시형태에서, 가상 현실 시스템(100A)은 헤드 마운트형 헤드셋(104), 컨트롤러(106), 및 컴퓨팅 시스템(108)을 포함할 수 있다. 사용자(102)는 사용자(102)에게 가상 인공 현실 콘텐트를 디스플레이할 수 있는 헤드 마운트형 헤드셋(104)을 착용할 수 있다. 헤드셋(104)은 사용자(102)에게 오디오 인공 현실 콘텐트를 제공할 수 있는 오디오 디바이스를 포함할 수 있다. 특정 실시형태에서, 헤드셋(104)은 환경의 이미지 및 비디오를 캡처할 수 있는 하나 이상의 카메라를 포함할 수 있다. 예컨대, 헤드셋(104)은 사용자(102) 전방의 이미지를 캡처하기 위한 전방 카메라(105A 및 105B)를 포함할 수있고 사용자의 신체의 이미지를 캡처하기 위한 하나 이상의 하향 카메라(downward facing camera)(미도시)를 포함할 수 있다. 헤드셋(104)은 사용자(102)의 이향운동 거리(vergence distance)를 결정하기 위한 눈 추적 시스템을 포함할 수 있다. 헤드셋(104)은 헤드 마운트형 디스플레이(head-mounted display; HMD)로 지칭될 수 있다. 컨트롤러(106)는 트랙패드 및 하나 이상의 버튼을 포함할 수 있다. 컨트롤러(106)는 사용자(102)로부터 입력을 수신하고 컴퓨팅 시스템(108)에 입력을 릴레이(relay)할 수 있다. 컨트롤러(106)는 또한 사용자(102)에게 햅틱 피드백을 제공할 수 있다. 컴퓨팅 시스템(108)은 케이블 또는 무선 통신 연결을 통해 헤드셋(104) 및 컨트롤러(106)에 연결될 수 있다. 컴퓨팅 시스템(108)은 사용자(102)에게 인공 현실 콘텐트를 제공하기 위해 헤드셋(104) 및 컨트롤러(106)를 제어할 수 있고, 사용자(102)로부터 입력을 수신할 수 있다. 컴퓨팅 시스템(108)은 독립 호스트 컴퓨터 시스템, 헤드셋(104)과 통합된 온보드 컴퓨터 시스템, 모바일 디바이스, 또는 인공 현실 콘텐트를 제공하고 사용자(102)로부터 입력을 수신할 수 있는 임의의 다른 하드웨어 플랫폼일 수 있다.
도 1b는 예시적 증강 현실 시스템(100B)을 도시한다. 증강 현실 시스템(100B)은 프레임(112), 하나 이상의 디스플레이(114A 및 114B), 및 컴퓨팅 시스템(120) 등을 포함하는 헤드 마운트형 디스플레이(HMD)(110)(예컨대, AR 안경)를 포함할 수 있다. 디스플레이(114)는 HMD(110)를 착용한 사용자가 디스플레이(114A 및 114B)를 통해 현실 세계를 볼 수 있도록 투명하거나 반투명할 수 있고, 동시에 시각적 인공 현실 콘텐트를 사용자에게 디스플레이할 수 있다. HMD(110)는 사용자에게 오디오 인공 현실 콘텐트를 제공할 수 있는 오디오 디바이스를 포함할 수 있다. 특정 실시형태에서, HMD(110)는 주변 환경의 이미지 및 비디오를 캡처할 수 있는 하나 이상의 카메라(예컨대 117A 및 117B)를 포함할 수 있다. HMD(110)는 HMD(110)를 착용한 사용자의 이향 이동(vergence movement)을 추적하기 위한 눈 추적 시스템을 포함할 수 있다. 증강 현실 시스템(100B)은 트랙패드 및 하나 이상의 버튼을 가진 컨트롤러(미도시)를 더 포함할 수 있다. 컨트롤러는 사용자로부터 입력을 수신하고 컴퓨팅 시스템(120)에 입력을 릴레이할 수 있다. 컨트롤러는 사용자에게 햅틱 피드백을 제공할 수 있다. 컴퓨팅 시스템(120)은 케이블 또는 무선 통신 연결을 통해 HMD(110) 및 컨트롤러에 연결될 수 있다. 컴퓨팅 시스템(120)은 HMD(110) 및 컨트롤러를 제어하여 사용자에게 증강 현실 콘텐트를 제공하고 사용자로부터 입력을 수신할 수 있다. 컴퓨팅 시스템(120)은 독립 호스트 컴퓨터 시스템, HMD(110)와 통합된 온보드 컴퓨터 시스템, 모바일 디바이스, 또는 사용자에게 인공 현실 콘텐트를 제공하고 사용자로부터 입력을 수신할 수 있는 임의의 다른 하드웨어 플랫폼일 수 있다.
현재 AR/VR 시스템은 자기 센서 및 관성 센서와 같은 비광학 센서를 사용하여 사용자의 신체 포즈를 결정할 수 있다. 그러나, 이러한 센서는 사용자의 신체에 부착해야 할 수 있으며 사용자가 착용하는 데 거슬리고 불편할 수 있다. 또는, 기존 시스템은 머리에 장착된 탑다운(top-down) 카메라를 사용하여 착용자의 신체 포즈를 추정할 수 있다. 그러나, 이러한 탑다운 카메라는 돌출되어 카메라를 착용하는 사용자에게 불편할 수 있다.
이러한 문제점을 해결하기 위해, 적어도 부분적으로, 시스템의 특정 실시형태는 사용자의 신체 포즈를 추정하기 위해 더 자연스러운 인간 시야 범위를 사용할 수 있다. 카메라 착용자는 주변 뷰(peripheral view에서 보일 수 있으며, 머리 포즈에 따라 착용자는 보이지 않게 되거나 제한된 부분적 뷰를 갖는다. 이것은 전방 카메라를 구비한 AR/VR 안경과 같은 사용자 중심의 웨어러블 디바이스를 위한 현실적인 시야일 수 있다. 시스템은 카메라 SLAM의 동적 피처와 신체 형상 이미지 모두의 장점을 취하는 딥 러닝 시스템을 사용하여, 3D 머리 포즈, 3D 신체 포즈, 피겨/그라운드 분할(figure/ground separation)를 모두 동시에 계산하고, 포즈 속성 전반에 걸쳐 특정 지오메트리 일관성을 명시적으로 강화한다. 예컨대, 시스템은 사용자의 3D 신체 포즈 및 머리 포즈를 추정하기 위해 머리 모션 데이터 및 가시적인 신체 부위 이미지 모두를 사용할 수 있다. 방법은 2개의 스테이지를 포함할 수 있다. 제1 스테이지에서, 시스템은 사용자의 머리의 관성 측정 유닛(inertial measurement unit; IMU) 데이터 및 어안 이미지에 기초하여 3D 신체 포즈 및 머리 포즈의 초기 추정 결과를 결정할 수 있다. 제2 스테이지에서, 시스템은 포즈 볼륨 표현에 기초하여 제1 스테이지의 추정 결과를 정제할 수 있다.
제1 스테이지에서의 초기 3D 신체 포즈 및 머리 포즈를 추정하기 위해, 시스템은 사용자의 머리 포즈에 대한 모션 히스토리 이미지를 생성하기 위한 SLAM(simultaneous localization and mapping) 기술을 사용할 수 있다. 시스템은 모션 히스토리 이미지를 생성하기 위해 SLAM 모듈에 HDM 카메라의 어안 이미지 및 사용자의 머리 모션의 IMU 데이터를 제공할 수 있다. 이어서, 시스템은 모션 히스토리 이미지로부터 모션 피처 벡터를 추출하도록 트레이닝된 모션 피처 네트워크에 모션 히스토리 이미지를 제공할 수 있다. 동시에, 시스템은 픽셀 레벨로 이미지의 전경 및 배경을 분할하도록 트레이닝된 전경 형상 분할 네트워크에 어안 이미지를 제공할 수 있다. 전경/배경 분할 결과는 전경 이미지의 형상 피처 벡터를 추출하도록 트레이닝된 형상 피처 추출 네트워크에 제공될 수 있다. 이어서, 시스템은 사용자의 초기 3D 신체 포즈 및 머리 포즈를 결정하기 위해 퓨전 네트워크를 사용하여 모션 피처 벡터와 형상 피처 벡터를 융합할(fuse) 수 있다. 융합 전에, 시스템은 벡터 길이를 제어함으로써 2개 타입의 벡터의 가중치를 제어하기 위해 밸런서(balancer)(예컨대, 완전히 연결된 네트워크)를 사용할 수 있다. 제1 스테이지에서 결정된 초기 3D 신체 포즈 및 머리 포즈를 정제하기 위해, 시스템은 포즈 볼륨 표현(예컨대, 41×41×41 3D 행렬)을 생성하기 위해 3D 공간(2m×2m×2m 볼륨)으로 전경 픽셀을 역투영할 수 있다. 포즈 볼륨 표현은 현재 머리 포즈 및 신체 형상 추정을 위한 3D 신체 형상 엔벨로프를 명시적으로 표현할 수 있다. 이어서, 시스템은 피처 추출을 위해 3D CNN에 포즈 볼륨 표현을 제공할 수 있다. 추출된 피처는 평탄화되고 모션 피처(모션 히스토리 이미지로부터 추출됨) 및 초기 3D 포즈 추정과 연결될 수 있으며, 그런 다음 3D 신체 포즈 추정을 위해 완전히 연결된 정제 회귀 네트워크에 제공될 수 있다. 정제 회귀 네트워크는 퓨전 네트워크와 유사한 구조를 가질 수 있지만 신체 포즈 추정을 출력만 할 수 있다. 사용자 신체의 3D 지오메트리(geometry)를 직접 캡처하는 명시적인 3D 표현을 통해, 시스템은 보다 정확한 신체 포즈 추정을 달성할 수 있다.
특정 실시형태에서, AV/VR 시스템은 인간 눈과 유사한 시야를 가진 착용자의 얼굴에 근접한 카메라를 가질 수 있다. 대부분의 경우, 카메라는 주변 뷰에서만 착용자의 손과 신체의 일부 다른 부분을 볼 수 있다. 상당한 시간 동안, 카메라는 착용자를 전혀 보지 못할 수 있다(예컨대, 착용자가 위를 쳐다볼 때). 특정 실시형태에서, 시스템은 착용자가 카메라의 FOV에 보이는지 여부에 관계없이 사용자의 신체 포즈의 강건한 추정을 결정하기 위해 카메라 모션 데이터 및 보이는 신체 부위 모두를 사용할 수 있다. 시스템은 사용자의 신체 포즈를 추정하기 위해 카메라 SLAM으로부터 획득한 동적 모션 정보와 간헐적으로 보이는 신체 부위를 모두 사용할 수 있다. 사용자의 신체 포즈를 예측하는 것에 추가적으로, 시스템은 자기 중심적 뷰(ego-centric view)에서 사용자의 피겨-그라운드 분할(figure-ground segmentation) 및 3D 머리 포즈를 계산할 수 있다. 머리와 신체 포즈의 결합 추정으로 인해, 시스템은 추론 중에 기하학적 일관성을 유지할 수 있어, 결과를 더욱 개선하고 시스템이 카메라 SLAM 정보가 있는 전역 좌표계로 사용자의 전체 신체 포즈를 재배치할 수 있다. 또한, 시스템은 착용자가 카메라의 시야에서 볼 수 없게 하거나 부분적으로 볼 수 있게 할 수 있다. 딥 러닝을 사용함으로써, 시스템은, 포즈 속성에 걸쳐 지오메트리 일관성을 유지하면서, 사용자의 3D 머리 포즈, 3D 신체 포즈, 및 피겨/그라운드 분할 모두를 동시에 계산할 수 있다. 특정 실시형태에서, 시스템은 모델을 트레이닝하기 위해 모캡 데이터(mocap data)를 포함하는 기존 데이터세트를 활용할 수 있다. 이러한 모캡 데이터는 신체 관절 움직임만 캡처할 수 있으며 자기중심적 비디오를 포함하지 않을 수 있다. 시스템은 포즈 변경과 연관된 동적 정보와 가상 뷰 자기중심적 이미지를 합성하여 트레이닝 데이터를 생성할 수 있다. 트레이닝을 위해 합성된 데이터를 사용함으로써, 시스템은 큰 새로운 데이터 세트를 수집하고 주석을 달지 않고도 견고하게 트레이닝될 수 있다. 2개의 스테이지 프로세스를 사용함으로써, 시스템은 높은 정확도를 유지하면서 실시간으로 사용자의 신체 포즈 및 머리 포즈를 추정할 수 있다.
도 2는 인간 시야 범위에 기초한 사용자의 신체 포즈 및 머리 포즈의 예시적 추정 결과(200)를 도시한다. 특정 실시형태에서, 헤드 마운트형 전방 어안 카메라는 착용자를 거의 볼 수 없으며 착용자가 주변 뷰에서 보일 때 보이는 신체 부위가 제한될 수 있다. 도 2에서, 제1 행은 신체 부위 분할 결과를 나타낸다. 제2 행은 모션 히스토리 이미지를 나타낸다. 제3 행은 착용자의 추정된 신체 포즈 및 머리 포즈를 나타낸다. 제4 행은 착용자의 신체 포즈와 머리 포즈의 그라운드 트루스(ground truth)를 나타낸다. 도 2에 도시된 바와 같이, 시스템은 착용자의 신체 포즈 및 머리 포즈를 효과적으로 그리고 정확하게 결정할 수 있다. 특정 실시형태에서, 각각의 시간 인스턴스(t)에서 전방 헤드 마운트형 어안 카메라의 비디오 프레임{It}의 주어진 시퀀스가 주어지면, 시스템은 자기 헤드 포즈(Ht) 및 3D 자기 신체 포즈(Bt)를 추정할 수 있다.
Bt는 N×3 신체 키포인트 행렬일 수 있고, Ht는 2×3 머리 배향 행렬일 수 있다. 본 개시에서, 용어 “자기 신체 포즈(ego-body-pose)”는 카메라 또는 카메라를 가진 헤드 마운트형 디바이스의 착용자의 전체 신체 포즈(신체 포즈 및 머리 포즈를 포함함)를 지칭할 수 있다. 도 1에 도시된 바와 같이, 힙 라인이 x-z 평면에 평행하도록 수평으로 회전되고 힙 라인 중심이 원점에 있을 수 있도록 자기 신체 포즈는 로컬 좌표계에서 규정될 수 있다. 자기 헤드 포즈는 2개의 벡터: 대향 방향(facing direction)(f) 및 머리의 포인팅 방향의 상부(top)(u)를 포함할 수 있다. 머리 포즈와 신체 포즈를 함께 추정하는 것은, 카메라 SLAM을 사용하여 신체 포즈를 전역 좌표계로 변환하는 것을 가능하게 한다. 시스템은 효율적이고 정확한 딥 러닝 모델을 사용함으로써 실시간 자기 포즈 추정을 목표로 할 수 있다. 특정 실시형태에서, 시스템은 약 180도 FOV를 갖는 헤드 마운트형 전방 어안 카메라에 의해 구동될 수 있다. 동기가 부여되고 인간의 시야 범위와 유사하게, 카메라는 대부분 착용자 앞의 장면에 포커싱할 수 있으며 주변 뷰를 통해 착용자의 신체 부위를 최소한으로 볼 수 있다. 이러한 설정에서, 머리 모션 또는 보이는 부분 이미지만을 사용하는 자기 포즈 추정은 신뢰할 수 없다. 특정 실시형태에서, 시스템은 이들 정보 스트림(예를 들어, IMU 데이터 및 어안 카메라 비디오) 모두를 이용하고 조합을 효율적으로 최적화할 수 있다.
도 3a는 예시적 시스템 아키텍처(300A)를 도시한다. 특정 실시형태에서, 시스템 아키텍처(300)는 2개의 스테이지: 초기 추정 스테이지(310) 및 정제 스테이지(320)를 포함할 수 있다. 초기 추정 스테이지(310)는 다수의 브랜치를 포함할 수 있다. 하나의 브랜치에서, 어안 비디오(302) 및 선택적 IMU 데이터(301)는 전역 좌표계에서 카메라 포즈 및 포지션을 추출하기 위해 사용될 수 있다. 시스템은 카메라 모션 및 포지션을 모션 히스토리 이미지(312)로 표시되는 컴팩트한 표현으로 변환할 수 있는 SLAM 모듈(311)에 선택적 IMU 데이터(301) 및 어안 비디오(302)를 제공할 수 있다. 모션 히스토리 이미지(예컨대, 312)는 머리의 3D 회전(예컨대, 3×3 행렬로 표현됨), 3D 공간(예컨대, x, y, z)에서의 머리의 병진이동, 및 지면에 대한 사용자의 머리의 높이를 포함하는 3D 공간에서의 사용자의 머리 모션의 표현일 수 있다. 특정 실시형태에서, 모션 히스토리 이미지는 미리 결정된 시간 기간에 걸친 사용자의 머리 3D 회전, 병진이동, 및 높이에 관련된 다수의 파라미터(예컨대, 13개 파라미터)를 포함하는 다수의 벡터를 포함할 수 있다. 사용자의 머리에 카메라가 고정되기 때문에, 카메라의 모션은 사용자의 머리 모션에 대응할 수 있다.
특정 실시형태에서, 시스템은, 사용자의 머리 모션에 관한 동적 피처를 추출하기 위해 모션 히스토리 이미지(312)를 프로세싱할 수 있는 모션 피처 네트워크(313)에 모션 히스토리 이미지(312)를 제공할 수 있다. 다른 브랜치에서, 시스템은 착용자의 전경 형상을 추출할 수 있는 전경 형상 네트워크(317)에 어안 비디오를 제공할 수 있다. 착용자의 전경 형상은 (전방인) 어안 카메라의 FOV 내에 있는 사용자의 하나 이상의 신체 부위를 포함할 수 있다. 착용자의 전경 형상은 전경 형상 분할 네트워크(317)에 의해 어안 비디오(302)의 이미지로부터 (예컨대, 픽셀 레벨로) 분할되는 전경 이미지에 표현될 수 있다. 시스템은 키포인트에 기초한 방법과 상이한 사용자의 신체 형상을 추적하기 위한 분할 방법을 사용할 수 있다. 사용자의 신체의 대부분이 헤드 마운트형 카메라의 FOV 내에 있지 않기 때문에, 시스템은 사용자의 신체 포즈를 결정하기 위한 충분한 수의 키포인트를 결정할 수 없을 수 있다. 분할 방식을 사용하여 결정된 전경 신체 형상 이미지는 사용자의 신체 포즈를 결정하기 위해 사용될 수 있는 공간 정보를 제공할 수 있으며, 기존의 키포인트 기반 방법보다 더 많은 정보를 제공할 수 있다. 시스템이 신체 형상을 추적하기 때문에 시스템은 예를 들어 카메라 이미지에서 팔이 보일 때 팔 포즈를 제공하는 바와 같은 사용 가능한 이미지 데이터를 보다 효율적이고 효과적으로 사용할 수 있다.
이어서, 시스템은, 전경 이미지로부터 사용자의 신체 형상 피처를 추출하도록 트레이닝된 형상 피처 네트워크(318)에 추출된 전경 이미지를 전송할 수 있다. 형상 피처 네트워크(318)는 전경 형상 이미지로부터 형상 피처를 추출할 수 있다. 모션 히스토리 이미지(312)로부터 모션 피처 네트워크(313)에 의해 추출된 모션 피처(338) 및 전경 형상 이미지로부터 형상 피처 네트워크(318)에 의해 추출된 형상 피처는 퓨전 모듈(314)에 제공될 수 있다. 모션 피처(338)는 모션 히스토리 이미지로부터 추출되는 바와 같은 사용자의 모션 히스토리에 관한 정보를 포함할 수 있다. 시스템은 밸런서(balancer)(319)를 사용하여 이들 2개의 브랜치에 의해 출력된 동적 모션 피처 및 형상 피처의 가중치를 밸런싱하고, 밸런싱된 모션 피처 및 형상 피처를 퓨전 모듈(314)에 제공할 수 있다. 시스템은 전경 이미지로부터 추출된 신체 형상 피처를 사용자의 신체 포즈의 인디케이터(indicator)로서 사용할 수 있다. 시스템은 최종 결과에 대한 상대적인 중요도에 기초하여 모션 피처와 형상 피처의 가중치를 동적으로 밸런싱한다. 시스템은 2개 타입의 벡터의 길이를 제어함으로써 사용자의 신체 형상(예컨대, 엔벨로프)에 관련된 파라미터를 포함하는 벡터에 의해 표현될 수 있는 형상 피처와 사용자의 신체/머리 모션에 관련된 파라미터를 포함하는 벡터로 표현될 수 있는 모션 피처의 가중치를 밸런싱할 수 있다. 사용자가 움직일 때, 신체 형상 이미지보다 모션 데이터가 더 유용할 수 있다. 그러나, 형상 피처는 사용자의 상부 신체 포즈(예컨대, 팔뚝 포즈)를 결정하기 위해 더 중요할 수 있다. 모션이 최소일 때(예컨대, 사용자가 거의 정적일 때) 형상 피처는 신체 포즈, 특히 상부 신체 포즈를 파악하는 데 중요할 수 있다. 밸런서는 현재 사용 가능한 데이터를 기반으로 어떤 피처가 더 중요한지 결정할 수 있는 트레이닝된 뉴럴 네트워크일 수 있다. 뉴럴 네트워크는 간단하고 빠르며 사용자가 AR/VR 시스템을 사용할 때 실시간으로 실행하기 위해 전력을 덜 소모할 수 있다. 퓨전 모듈(314)은 초기 신체 포즈(315) 및 초기 머리 포즈 추정(316)을 포함하는 자기 포즈 추정을 출력할 수 있다.
도 3b는 정제 스테이지(320)에 대한 예시적 프로세스(300B)를 도시한다. 특정 실시형태에서, 초기 신체/머리 포즈 추정이 결정된 후에, 시스템은 초기 추정 스테이지(310)의 초기 신체/머리 포즈 추정 결과를 정제하기 위한 정제 스테이지(320)를 사용할 수 있다. 시스템은 포즈 볼륨 표현(321)에 기초하여 사용자의 정제된 3D 포즈(323)를 결정하기 위해 3D 포즈 정제 모델(322)을 사용할 수 있다. 시스템은 우선 분할된 전경 마스크(전경 픽셀을 포함함)를 3D 볼륨 공간으로 역투영함으로써 포즈 볼륨을 결정할 수 있다. 시스템은 뉴럴 네트워크 또는 다른 머신 러닝 모델을 사용하여 포즈 볼륨을 나타내는 포즈 볼륨 표현을 생성할 수 있다. SLAM으로부터의 직접적인 머리 포즈는 전체 신체 부위와 관련이 없을 수 있다. 초기 추정 스테이지(320)에서, SLAM에 기초하여 결정된 사용자의 머리 포즈는 사용자의 신체 포즈에 관하여 로컬라이징될(localized) 필요가 있다. 제1 스테이지의 네트워크 출력은 전체 신체 부위에 대한 머리 포즈일 수 있다. 시스템은 로컬 시스템에서 추정된 머리 포즈와 SLAM에 의한 전역 머리 포즈 데이터를 사용하여 전체 신체 포즈를 다시 전역 시스템으로 전달할 수 있다. 시스템은 포즈 볼륨 표현(321)을 생성하기 위해 사용자의 신체 포즈의 초기 추정 결과(315)와 2D 전경 분할 마스크(339)를 결합할 수 있다. 시스템은 신체 포즈와 머리 포즈가 서로 일관되게 유지하는 제약을 사용하여 포즈 볼륨 표현(321)을 생성할 수 있다. 볼륨은 키 포인트에 기초하지 않고 카메라 배향에 기초할 수 있다. 3D 포즈 볼륨 표현을 생성하기 위해 시스템은 광선(ray)을 공간에 그리고 인수(argument) 2D 신체 형상을 3D 공간에 캐스팅할(cast) 수 있다. 초기 스테이지의 끝에서, 시스템은 머리 포즈 및 전경 분할에 기초하여 신체/머리 포즈의 초기 추정을 가질 수 있다. 2D 신체 형상을 3D 공간에 투영함으로써, 시스템은 3D 공간에서 신체 부위가 있는 위치를 나타내는 3D 거친 표현(3D rough representation)을 가질 수 있다. 포즈 볼륨 표현(321)은 전경 이미지 픽셀을 3D 큐빅 볼륨으로 역투영함으로써 생성될 수 있다(예컨대, 도 5의 우측 열에 도시된 바와 같은 2m×2m×2m 볼륨). 포즈 볼륨 표현(321)은 41×41×41 3D 행렬일 수 있다. 포즈 볼륨 표현(321)은 현재 신체/머리 포즈 및 신체 형상 추정에 대한 3D 신체 형상 엔벨로프를 명시적으로 나타낼 수 있다. 이어서, 시스템은 피처 추출을 위해 포즈 볼륨 표현(321)을 3D 컨볼루션 뉴럴 네트워크(3D convolutional neural network)(331)에 제공할 수 있다. 추출된 피처는 평탄화되어 모션 히스토리 이미지 및 초기 3D 신체 포즈 추정(315)으로부터 추출된 모션 피처와 연결될 수 있다. 이어서, 시스템은 3D 신체 포즈 추정에 대한 완전히 연결된 정제 회귀 네트워크(333)에 연결된 피처를 제공할 수 있다. 정제 회귀 네트워크(333)는 퓨전 네트워크(314)와 유사한 구조를 가질 수 있지만 신체 포즈 추정을 출력만 할 수 있다. 사용자의 신체의 3D 지오메트리를 직접 캡처하는 명시적 3D 포즈 볼륨 표현(321)에 의해, 시스템은 초기 신체 포즈 추정 결과보다 더 정확한 신체 포즈 추정인 정제된 3D 신체 포즈(323)를 제공할 수 있다.
도 4는 예시적 모션 히스토리 이미지 및 대응하는 인간 포즈를 도시한다. 특정 실시형태에서, 모션 히스토리 이미지는 장면 구조에 대해 불변이며 미리 결정된 시간 기간에 걸친 회전, 병진이동, 및 높이 변화를 특성화할 수 있는 표현일 수 있다. 일부 예시적 모션 히스토리 이미지는 도 4의 제2 행에 예시되어 있다. 각각의 시점(t)에서, 시스템은 카메라 포즈 및 SLAM으로부터의 포지션을 사용하여 이전 시점(t-1)으로부터 증분 카메라 회전(Rt) 및 변환(dt)을 계산할 수 있다. 시스템은 Rt - I3×3을 모션 표현에 통합할 수 있으며, 여기서 I는 항등 행렬(identity matrix)이다. 시스템은 착용자의 향하는 배향(facing orientation)에 불변하도록 변환(dt)을 각 시점(t)에서 카메라 로컬 시스템으로 변환할 수 있다. 알 수 없는 스케일링 팩터(scaling factor)를 제거하기 위해, 시스템은 착용자의 높이 추정치를 사용하여 추가로 스케일링할 수 있다. 변환되고 정규화된 dt로 표시될 수 있다. SLAM에 기초하여, 시스템은 착용자가 서 있다가 쪼그려 앉는 것을 사용하여 사람의 높이와 지면의 대략적인 포지션을 추출하는 보정 절차를 사용할 수 있다.
특정 실시형태에서, Rt 및 dt는 정적인 서 있는 포즈와 앉은 포즈를 구별하기에 충분하지 않을 수 있다. 장면 컨텍스트 이미지가 도움이 될 수 있지만, 사람 높이의 큰 변화에 민감할 수 있다. 예를 들어, 어린이의 서 있는 시점은 성인이 앉아 있는 시점과 비슷할 수 있다. 이 문제를 해결하기 위해, 시스템은 모션 표현에서 사람의 서 있는 포즈(예컨대, gt로 표시됨)에 대한 카메라의 높이를 사용할 수 있다. 시스템은 움직임 피처(R, d, g)를 시간에 따라 집계하여 모션 히스토리 이미지를 구성할 수 있다. 시스템은 평탄화된 Rt - I3×3, 스케일링된 전이 벡터 , 및 스케일링된 상대 높이 c(gt - m)를 연결할 수 있으며, 여기서 a = 15; m = 0.5; 및 c = 0.3이다. 도 4는 대응하는 인간 포즈를 갖는 모션 히스토리 이미지의 예를 도시한다. 모션 히스토리 이미지는 주기적 또는/및 비주기적 움직임 모두에서의 포즈 변경의 다이나믹을 캡처할 수 있다. 시스템은 모션 히스토리 이미지로부터 피처를 추출하기 위해 딥 네트워크(deep network) 예컨대 모션 피처 네트워크를 사용할 수 있다. 특정 실시형태에서, 모션 히스토리 이미지는 미리 결정된 시간 기간에 걸쳐 13개의 파라미터 값을 각각 포함하는 다수의 벡터를 포함할 수 있다. 파라미터는 3D 회전(예컨대, 3×3 행렬로 표시됨), 3D 병진이동 (x, y, z), 및 시간에 걸친 사용자의 높이(예컨대, 지면에 대한)에 대응할 수 있다. 특정 실시형태에서, 모션 피처 네트워크는 입력/출력 채널, 커널 사이즈(kernel size), 스트라이드(stride), 및 패딩(padding)에 대한 컨볼루션 계층(convolution layer)에 대한 파라미터를 가질 수 있다. 맥스 풀링 계층(max-pooling layer)에 대하여, 파라미터는 커널 사이즈, 스트라이드, 및 패딩일 수 있다. 도 4에서의 모션 히스토리 이미지는 오직 머리 데이터로부터 추출될 수 있다. 각각의 모션 히스토리 이미지는 XYZ 3D 공간에서의 표면에 의해 표현될 수 있다. 표면의 각 포지션은 특정 파라미터(예컨대, 사용자 머리 높이, 머리 회전, 머리 병진이동)의 값을 가질 수 있다. Y 치수는 상이한 파라미터들(예컨대, 13개의 파라미터)에 대한 것일 수 있고, X 치수는 시간에 대응할 수 있다.
대부분의 시간에, 시스템이 광학 모션 흐름 방법을 사용하는 경우 장면 구조는 모션 피처의 결과에 영향을 미칠 수 있다. 광학 모션 흐름 방법을 사용하는 대신, 시스템은 광학 모션 흐름 방법보다 더 견고한 사용자 모션을 결정하기 위한 SLAM을 사용할 수 있다. 이에 따라, 시스템은 장면에서의 환경 변화와 무관하게 동일 모션에 대한 동일 모션 피처를 제공할 수 있다. SLAM은 사용자의 머리 포즈를 결정할 수 있고 동시에 3D 장면을 추출할 수 있다. 시스템은 카메라 포즈의 회전 및 병진이동에 기초하여 사용자의 머리 모션을 결정할 수 있다. 시스템은 사용자의 신체 포즈 및 모션을 결정하기 위한 단서(clue)로서 사용자의 머리 모션을 사용할 수 있다. 그러나, 상이한 신체 포즈가 유사한 머리 포즈 또는 모션과 연관될 수 있다. 따라서, 시스템은 사용자의 신체 포즈를 결정하기 위해 지면 레벨에 대한 카메라의 높이 정보를 더 사용할 수 있다. 본 명세서의 이하의 섹션에서 논의되는 바와 같이, 시스템은 인간과 유사한 시야 공간인 180도 FOV의 전방 카메라에 의해 캡처된 IMU 데이터 및 이미지에 기초하여 사용자의 신체 포즈 및 머리 포즈를 동시에 결정할 수 있다. 시스템은 사용자의 신체 포즈와 머리 포즈가 서로 일관되게 유지되는 제약 하에서 사용자의 신체/머리 포즈를 결정할 수 있다.
특정 실시형태에서, 시스템은 머리 모션 데이터를 사용하는 것에 추가적으로 사용자의 신체 포즈를 추정하기 위해 착용자의 전경 형상을 사용할 수 있다. 착용자의 전경 형상은 자기 머리 포즈 및 자기 신체 포즈와 밀접하게 결합될 수 있으며 상부 신체 포즈를 명확하게 하는 데 특히 유용할 수 있다. 이를 위해 시스템은 신체 형상을 추출하기 위한 기존의 키포인트 추출 방식과 상이한 효율적인 방법을 사용할 수 있다. 이 문제를 해결하기 위해 전경 신체 형상이 더 적합한 표현일 수 있다. 인간의 시야 범위에서, 착용자의 신체는 종종 카메라의 FOV에서 거의 보이지 않을 수 있으며 눈에 보이는 키포인트가 거의 없을 수 있다. 따라서, 키포인트 추정은 전체 형상 추출보다 더 어려울 수 있다. 이러한 설정에서, 전경 신체 형상은 격리된 키포인트보다 가능한 신체 포즈에 관한 더 많은 정보를 포함할 수 있다. 예를 들어, 두 손과 팔의 일부만 보이는 경우, 키포인트는 손 위치만 제공할 수 있는 반면, 전경 신체 형상은 팔이 공간에 어떻게 위치하는지를 나타낼 수도 있다. 전경 형상은 보다 효율적으로 계산될 수 있으므로 실시간 애플리케이션에 더 적합할 수 있다.
특정 실시형태에서, 형상 네트워크는 완전히 컨벌루션일 수 있고 따라서 공간 불변 추정을 생성하기 위한 입력으로서 어안 비디오를 직접 사용할 수 있다. 제한 없이 예로서, 형상 네트워크는 바이리니어 업샘플링 계층(bilinear up-sampling layer)을 포함할 수 있다. 타겟 해상도는 256×256일 수 있다. 네트워크 계층은 채널 치수(channel dimension)를 따라 서로 다른 스케일로부터 피처들을 연결할 수 있다. 착용자 전경은 대부분 이미지의 하부 부분에 집중될 수 있고 팔은 종종 특정 영역에 나타나기 때문에, 분할 네트워크는 공간적으로 다양할 수 있다. 이를 위해 시스템은 정규화된 x 및 y 좌표 맵이라는 두 개의 공간 그리드를 축소하고, 깊이 차원을 따라 입력 이미지와 연결하여 256×256×5 텐서(tensor)를 생성할 수 있다. 이러한 추가 공간 맵은 트레이닝 및 추론 중에 카메라 FOV에서 사람 전경 분할의 구조 및 위치의 공간 우선 순위를 네트워크에 통합하는 데 도움이 될 수 있다. 공간 맵은 오경보를 감소시키기 위해 사용될 뿐만 아니라 전경에서 누락된 검출을 수정하기 위해서도 사용될 수 있다. 특정 실시형태에서, 전경 확률 맵에 대한 임계값은 최종 전경 형상 표현을 획득하기 위해 0.5일 수 있다. 이어서, 전경 형상은 피처 추출을 위해 작은 컨볼루션 뉴럴 네트워크에 전달될(passed) 수 있다.
특정 실시형태에서, 시스템은 (1) 모션 피처 네트워크에 의해 모션 히스토리 이미지로부터 추출된 동적 피처(예를 들어, 모션 피처)와 (2) 형상 피처 네트워크에 의해 추출된 형상 피처를 융합하여 강건한 자기 포즈 추정을 결정할 수 있다. 특정 실시형태에서, 시스템은 그것들을 직접 연결하고 회귀 네트워크를 통해 연결을 프로세싱할 수 있다. 특정 실시형태에서, 시스템은, 연결(concatenation)을 수행하기 전에, 형상 피처의 치수를 감소시키기 위해 완전히 연결된 네트워크[예컨대, 도 3에서의 밸런서(319)]를 사용하여 2개의 피처 세트를 밸런싱할 수 있다. 밸런서는 피처 세트들 사이의 가중치를 암묵적으로 밸런싱할 수 있다. 특정 실시형태에서, 형상 피처는 낮은 치수(예컨대, 16 치수)일 수 있고, 움직임 피처는 길 수 있다(예컨대, 512 치수). 입력이 짧으면, 시스템은 시스템에 연결된 완전 연결 계층(fully connected layer)에서의 더 적은 뉴런을 필요로 할 수 있고, 이에 따라 출력에 대한 적은 보팅 파워(voting power)를 가질 수 있다. 이 방식은 노이즈가 있는 형상 관찰을 부드럽게 하는 효과도 가질 수 있다. 이러한 조정이 완료되면, 밸런싱된 형상 피처와 연결된 모션 피처가 포즈 벡터와 2개의 머리 배향 벡터를 추론하기 위해 완전히 연결된 3개의 네트워크에 제공될 수 있다.
도 5는 예시적 전경 이미지(예컨대, 510, 530) 및 대응하는 볼륨 표현(예컨대, 521A-B, 541A-B)을 도시한다. 특정 실시형태에서, 시스템은 초기 추정 결과를 정제하고 정제된 전체 신체 3D 포즈를 결정하기 위한 3D 접근법을 사용할 수 있다. 3D 접근법은 포즈 볼륨 표현에 기초할 수 있다. 자기 포즈에 대한 추정이 주어지면, 시스템은 초기 포즈 추정 결과로부터의 머리 포즈 추정을 고정시키고 전체 신체 3D 포즈를 재추정하는 것에 의해 이것을 정제할 수 있다. 제1 스테이지로부터의 전경 형상 추정 및 머리/카메라 포즈를 사용하여, 시스템은 도 5에 도시된 바와 같이, 미리 결정된 사이즈(예컨대, 2m×2m×2m 볼륨)을 가진 큐빅 볼륨 공간에 전경 픽셀을 역투영함으로써 3D 볼륨을 구성할 수 있다. 볼륨은 41×41×41 사이즈의 3차원 행렬로 이산화될(discretized) 수 있다. 시스템은 복셀(voxel)이 착용자 전경에 투영되는 경우 값 1을 할당하고 그렇지 않으면 0을 할당할 수 있다. 볼륨은 현재 머리 포즈 및 신체 형상 추정에 대응하는 3D 신체 형상 엔벨로프를 명시적으로 나타낼 수 있다. 이어서, 시스템은 피처 추출을 위해 3D CNN에 3D 포즈 볼륨 표현을 전달할 수 있다. 얻어진 피처는 평탄화되어 모션 피처와 연결될 수 있고, 이어서 초기 3D 포즈 추정은 3D 포즈 추정을 위한 완전히 연결된 네트워크에 제공될 수 있다. 정제 회귀 네트워크는, 입력이 초기 3D 키포인트 추정을 포함할 수도 있고 출력이 오직 신체 포즈 추정일 수 있는 퓨전 네트워크와 유사한 구조를 가질 수 있다. 시스템은 정제된 3D 포즈를 볼륨에 오버레이(overlay)할 수 있다. 3D 지오메트리를 직접 캡처한 이 명시적 3D 표현에 의해, 시스템은 더 정확한 신체 포즈 추정을 제공할 수 있다. 실시예로서, 전경 마스크(510)를 갖는 전경 이미지는 착용자의 오른손과 팔(511) 및 왼손(512)을 포함할 수 있다. 시스템은 3D 큐빅 볼륨에 추출된 정보를 역투영할 수 있다. 재구성된 포즈 볼륨(예컨대, 521A 및 521B)은 포즈 볼륨 표현(520)의 큐빅 볼륨 공간 내의 그림자 영역에 의해 표현될 수 있다. 정제된 포즈 추정(522)은 도트의 세트에 의해 표현될 수 있다. 다른 실시예로서, 전경 마스크(630)를 갖는 전경 이미지는 착용자의 오른손(532) 및 왼손(531)을 포함할 수 있다. 시스템은 3D 큐빅 볼륨에 추출된 정보를 역투영할 수 있다. 재구성 포즈 볼륨(예컨대, 541A 및 541B)은 포즈 볼륨 표현(540)에서의 그림자 영역에 의해 표현될 수 있다. 정제된 포즈 추정(541)은 더 어두운 도트의 세트에 의해 표현될 수 있다.
특정 실시형태에서, 시스템은 우선, 초기 추정 스테이지에 대한 모델을 트레이닝할 수 있다. 그리고 트레이닝 데이터 결과에 대한 추정에 따라, 시스템은 후속적으로 정제의 제2 스테이지에 대한 모델을 트레이닝할 수 있다. 특정 실시형태에서, 시스템은 신체 키포인트 및 머리 배향 추정에서의 에러를 정량화하기 위해 L1 기준(norm)을 사용할 수 있다.
(1)
여기서, b 및 bg는 평탄화된 신체 키포인트 3D 좌표 및 그 그라운드 트루스이고, h는 머리 배향 벡터(벡터 f와 u의 연결)이고, hg는 그것의 대응하는 그라운드 트루스이다. 일반화를 개선하기 위해, 시스템은 회귀 결과의 구조를 제한하는 여러 정규화 용어를 추가로 포함할 수 있다. 2개의 머리 배향 벡터는 직교한다. 시스템은 하기의 손실 함수를 사용하여 L0를 최소화할 수 있다.
(2)
여기서, ·는 2개의 벡터의 내적이고, |·|는 L2 기준(norm)이다. 인간 신체는 대칭이고 2개의 사이드는 본질적으로 동일 길이를 갖기 때문에, 시스템은 신체 길이 대칭 제약을 강화할 수 있다. l(i) 및 l(j)를 한 쌍의 대칭 뼈 길이라고 하고, 대칭 뼈 집합을 P라고 한다. 시스템은 LS를 최소화하기 위해 하기 수학식을 사용할 수 있다.
(3)
시스템은 또한, 머리 포즈, 신체 포즈, 및 신체 형상 맵의 일관성을 강화할 수 있다. 머리 포즈로부터, 시스템은 카메라 로컬 좌표계를 계산할 수 있다. 등거리 어안 카메라 모델을 사용하여, (xk, yk), k = 1 이라고 하고, K는 3D 신체 키포인트의 2D 투영이다. 시스템은 LC를 최소화하기 위해 하기 수학식을 사용할 수 있다.
(4)
여기서 D는 이진 신체 형상 맵의 거리 변환이고, q는 절단 임계값(예컨대, 20픽셀)이다. α, β를 0.01로 설정하고 γ를 0.001로 설정하면, 최종 손실 함수는 하기 수학식이 될 수 있다.
(5)
정제 스테이지의 경우 머리 벡터 관련 용어가 손실로부터 제거될 수 있다는 점은 주목할 만하다. 특정 실시형태에서, 시스템은 카메라 뷰를 추정하기 위해 3D 포즈를 역투영할 수 있고, 이것은 전경 추정에 피팅되어야 한다. 예컨대, 이미지에서 사용자의 손이 보이는 경우, 시스템이 카메라 뷰에 이 픽셀들을 투영할 때, 투영은 이미지 및 영역의 내부에 있어야 한다.
도 6은 합성 사람 모델에 기초하여 생성된 예시적 트레이닝 샘플을 도시한다. 특정 실시형태에서, 동기화된 헤드 마운트형 카메라 비디오와 대응하는 “매칭된” 신체 모캡 데이터의 큰 세트를 캡처하는 것이 어려울 수 있기 때문에, 시스템은 합성 트레이닝 데이터를 생성하기 위해 총 2538 CMU 모캡 시퀀스 및 블렌더를 사용할 수 있다. 특정 실시형태에서, 시퀀스는 수백 개의 상이한 서브젝트(subject)를 포함할 수 있고, 전체 길이는 대략 10 시간이 될 수 있다. 각각의 모캡 시퀀스에 대하여, 시스템은 합성 데이터를 생성하기 위해 190개의 상이한 메쉬 모델로부터 사람 메쉬를 무작위로 선택할 수 있다. 한정이 아닌 예로서, 도 6에서의 제1 행은 합성 사람 모델에 대한 예를 도시한다. 도 6의 제2 행은 합성 사람 모델에 기초하여 생성된 예시적 트레이닝 샘플을 도시한다. 모델은 인간 모델에 기초하여 생성되는 합성 메쉬(예컨대, 605, 606, 607, 608, 609)에 의해 표현될 수 있다. 시스템은 합성 모델의 머리 상에 가상 카메라를 부착할 수 있고 카메라 FOV에 대하여 로컬 좌표계[예컨대, X 방향(601), Y 방향(602), 및 Z 방향(603)]를 정의할 수 있다. 이어서, 시스템은, 신체 포즈 추정 모델을 트레이닝하도록 사용될 수 있는 트레이닝 샘플을 생성하기 위해, 합성 모델의 신체 포즈(예컨대, 605, 606, 607, 608, 609)를 변경하고 착용자의 신체 부위(예컨대, 팔, 손, 또는/및 발)를 캡처하기 위해 카메라를 사용할 수 있다. 모델의 각각의 신체 포즈는 도 6에서의 도트에 의해 표현되는 바와 같이 키포인트(예컨대, 604)의 수와 연관될 수 있다. 특정 신체 포즈와 연관되는 키포인트는 그 신체 포즈를 정확하게 기술하고 표현하기 위해 사용될 수 있다. 트레이닝 샘플을 생성하는데 사용되는 신체 포즈는 트레이닝 프로세스에 대한 그라운드 트루스로서 사용될 수 있다. 합성 모델의 신체 포즈에 따라, 가상 카메라에 의해 캡처된 이미지는 상이한 신체 부위를 포함할 수 있다. 예컨대, 캡처된 이미지는 착용자의 손과 발(예컨대, 610, 620, 630, 640, 652) 또는 팔과 손(예컨대, 653)을 포함할 수 있다. 시스템은 트레이닝 동안 랜더링된 사람 이미지의 알파 채널에서의 전경 이미지를 사용할 수 있다.
특정 실시형태에서, 시스템은 다수이 스텝을 포함하는 합성 프로세스를 사용하여 트레이닝 데이터 샘플을 생성할 수 있다. 시스템은 우선, 애니메이션을 생성하기 위해 모캡 데이터에서의 스켈레톤을 사람 메쉬 모델에 리타겟팅할 수 있다. 시스템은 각 사람 모델의 2개의 눈 사이에 가상 전방 어안 카메라를 견고하게 부착할 수 있다. 시스템은 애니메이션에서의 포지션 히스토리 및 가상 카메라 포즈를 사용하여 모션 히스토리 맵을 계산할 수 있다. 이러한 카메라 설정을 사용하여, 시스템은 등가 어안 모델로 카메라 뷰를 렌더링할 수 있다. 렌더링된 이미지의 알파 채널은 사람의 전경 마스크를 제공할 수 있다. 이 설정에서 카메라의 -Z축 및 Y축이 두 개의 머리 배향 벡터와 정렬된다는 점에 주목할 필요가 있다. 전반적으로, 이것은 트레이닝을 강화하고 제안된 자기 포즈 심층 모델을 검증하기 위한 고품질 데이터를 제공할 수 있다. 마지막으로, 이 합성된 데이터는 장면과 착용자의 외모에 대해 변하지 않기 때문에, 시스템은 일반화 가능한 모델을 트레이닝하기 위한 고품질 데이터를 생성하기 위해 데이터를 사용할 수 있다.
도 7은 모션 온리 방법(motion-only method)의 신체 포즈 추정 결과 및 그라운드 트루스 데이터에 비교하는 예시적 신체 포즈 추정 결과(700)를 도시한다. 특정 실시형태에서, 시스템은 자기 포즈 추정 정확도를 정량화하기 위해 신체 및 머리 포즈 추정 에러를 사용할 수 있다. 신체 포즈 추정 에러는 정규화된 좌표계에서 추정된 3D 키포인트와 그라운드 트루스 키포인트 사이의 평균 유클리드 거리(average Euclidean distance)일 수 있다. 트레이닝 및 테스트 중에 그라운드 트루스 3D 신체 포즈는 약 170 cm의 신체 높이를 갖도록 정규화될 수 있다. 머리 포즈 추정 에러는 그라운드 트루스 방향과 2개의 추정된 머리 배향 사이의 각도에 의해 정량화될 수 있다. 특정 실시형태에서, 시스템은, 예컨대, xr-에고포즈 방법(xr-egopose method), dp-에고포즈 방법(dp-egopose method), 모션 온리 방법(motion-only method), 쉐이프 온리 방법(shape-only method), 스테이지1 온리 방법(stage1-only method), 노 하이트 방법(no-height method), 스테이지1 RNN 방법(stage1-RNN method), 핸드 맵 방법(hand-map method) 등을 포함하는 다른 방법보다 더 정확한 포즈 추정을 제공할 수 있다. 예컨대, 도 7의 제1 행은, 본 명세서에 개시된 방법 및 프로세스를 테스트하기 위해 사용되는 그라운드 트루스 신체 포즈의 그룹을 나타낸다. 도 7의 제2 행은 신체 포즈 추정 결과를 나타낸다. 도 7의 제3 행은 모션 온리 방법의 신체 포즈 추정 결과를 나타낸다. 도 7에 도시된 바와 같이, 제2 행에 예시된 신체 포즈는 모션 온리 방법에 의한 신체 포즈 추정 결과보다 제1 행에 예시된 그라운드 트루스 신체 포즈에 더 근접한다. 본 명세서에 개시된 방법 및 프로세스는 모션 온리 방법보다 더 정확한 신체 포즈 추정 결과를 제공할 수 있다.
도 8a 및 도 8b는 추정된 자기 머리 포즈 및 카메라 SLAM에 기초하여 전역 좌표계에서의 추정된 자기 포즈를 재배치하는 예시적 결과(800A 및 800B)를 도시한다. 도 8a의 예시적 결과는 원래 프레임 속도의 0.25배이다. 도 8b의 예시적 결과는 원래 프레임 속도의 0.0625배이다. 특정 실시형태에서, 2 스테이지 딥 러닝 방법은 신체 형상 피처 및 새로운 모션 히스토리 이미지 피처를 활용할 수 있다. 시스템은 지오메트리 제약을 명시적으로 적용하면서 동시에 머리와 신체 포즈를 모두 추정할 수 있다. 시스템은 합성 데이터 소스를 사용하는 동안 더 나은 성능을 제공하고 카메라 설정의 변화에 더 견고할 수 있으므로 대규모 새로운 데이터 세트를 다시 수집하는 것을 회피할 수 있다. 이 시스템은 실시간으로 작동할 수 있으며 AR 및 VR의 자기 중심적 경험 및 애플리케이션을 위한 실시간 신체 포즈 추정을 제공할 수 있다.
특정 실시형태에서, 시스템은, 사용자가 (예컨대, VR/AR 헤드셋 상의) 카메라를 착용하는 동안 실시간으로 사용자의 초기 신체/머리 포즈 및 사용자의 정제된 신체/머리 포즈를 결정할 수 있다. 예를 들어, 사용자는 전화 회의를 위해 AR/VR 헤드셋을 사용할 수 있다. 시스템에 의해 결정된 바와 같은 사용자의 실시간 신체/머리 포즈에 기초하여 시스템은 사용자에 대한 아바타를 생성할 수 있다. 시스템은 카메라를 착용한 사용자와 통신하는 다른 사용자에게 아바타를 디스플레이할 수 있다. 따라서, 서로 원격으로 통신하는 사용자들은 서로의 실시간 신체 포즈를 볼 수 있다. 다른 실시예에서, AR/VR 게임을 플레이하는 사용자들은 상이한 신체 포즈 또는 머리 포즈를 사용하는 게임 장면과 상호작용할 수 있다. 시스템은 사용자의 신체에 부착된 외부 센서를 사용하지 않고 AR/VR 헤드셋 상의 전방 카메라를 사용하여 사용자의 신체/머리 포즈를 결정할 수 있다. 사용자는 가상 환경에서의 게임 장면과 상호작용하기 위해 상이한 신체/머리 포즈 및 모션을 사용할 수 있다.
다른 실시예로서, 시스템은 가상 환경에서의 사용자에 대하여 사실적인 사운드 효과를 합성하기 이해 실시간으로 결정되는 사용자의 신체/머리 포즈를 사용할 수 있다. 시스템은 3D 가상 환경에 사용자를 배치할 수 있다. 시스템은 가상 환경에서 사운드 소스에 대한 사용자의 신체/머리 포즈에 기초하여 사실적인 사운드 효과를 합성할 수 있다. 사용자가 자신의 신체 및/또는 머리를 움직일 때, 시스템은 사용자의 실시간 신체/머리 포즈에 기초하여 사용자에 대한 사운드 재합성할 수 있다. 동시에, 시스템은 가상 환경에서 아바타를 제어하여 사용자에 대한 사실적인 AR/VR 경험을 용이하게 하기 위해 사용자의 실시간 신체/머리 포즈를 사용할 수 있다.
특정 실시형태에서, 본 명세서에 개시된 방법, 프로세스, 및 시스템은 AR 시스템 또는 VR 시스템에 적용될 수 있다. 한정이 아닌 예로서, VR 헤드셋에는 하나 이상의 카메라가 장착될 수 있다. VR 헤드셋의 사이즈로 인해 카메라가 사용면으로부터 돌출될 수 있다. VR 헤드셋에 장착된 일부 카메라는 사용자 앞의 영역을 커버하는 시야로 전방을 향할 수 있다. VR 헤드셋에 장착된 일부 카메라는 사용자의 신체의 전방측을 커버하는 시야로 하방을 향할 수 있다. VR 헤드셋의 전방 카메라(forward-facing camera) 및/또는 하방 카메라(downward-facing camera)는 사용자의 신체의 부위(예컨대, 팔, 손, 발, 다리, 바디 트렁크(body trunk) 등)를 캡처할 수 있다. VR 헤드셋에 장착된 카메라에 의해 캡처된 이미지는 사용자의 얼굴에 대한 카메라의 거리, 카메라의 대면 방향(facing direction), 및 카메라의 시야에 따라 달라질 수 있다. 특정 실시형태에서, 본 명세서에 개시된 방법, 프로세스, 및 시스템은 AR 헤드셋의 카메라보다 사용자의 얼굴로부터 더 멀리 있는 포지션에 장착된 카메라를 갖는 VR 헤드셋에 대하여 특별히 구성될 수 있다. 예컨대, 시스템에 사용된 머신 러닝 모델(예컨대, CNN 네트워크)은, 사용자의 얼굴까지의 미리 결정된 임계 거리보다 더 큰 거리로 헤드셋 상에 장착된 카메라에 의해 캡처된 샘플 이미지를 사용하여 트레이닝될 수 있다.
한정이 아닌 다른 실시예로서, AR 헤드셋에는 하나 이상의 카메라가 장착될 수 있다. AR 헤드셋의 사이즈(예컨대, AR 헤드셋은 VR 헤드셋보다 더 얇을 수 있음)로 인해, AR 헤드셋에 장착된 카메라는 사용자의 얼굴에 더 가까울 수 있다. AR 헤드셋에 장착된 일부 카메라는 사용자 앞의 영역을 커버하는 시야로 전방을 향할 수 있다. AR 헤드셋에 장착된 일부 카메라는 사용자의 신체의 전방측을 커버하는 시야로 하방을 향할 수 있다. AR 헤드셋의 전방 카메라(forward-facing camera) 및/또는 하방 카메라(downward-facing camera)는 사용자의 신체의 부위(예컨대, 팔, 손, 발, 다리, 바디 트렁크(body trunk) 등)를 캡처할 수 있다. AR 헤드셋에 장착된 카메라에 의해 캡처된 이미지는 사용자의 얼굴에 대한 카메라의 거리, 카메라의 대면 방향(facing directiion), 및 카메라의 시야에 따라 달라질 수 있다. 특정 실시형태에서, 본 명세서에 개시된 방법, 프로세스, 및 시스템은 AR 헤드셋보다 사용자의 얼굴에 더 가까운 포지션에 장착된 카메라를 가진 AR 헤드셋에 대하여 특별히 구성될 수 있다. 예컨대, 시스템에 사용된 머신 러닝 모델(예컨대, CNN 네트워크)은, 사용자의 얼굴까지의 미리 결정된 임계 거리보다 작은 거리로 헤드셋에 장착된 카메라에 의해 캡처된 샘플 이미지를 사용하여 트레이닝될 수 있다. VR 헤드셋에 장착된 카메라에 비해, AR 헤드셋에 장착된 카메라는, 카메라가 사용자의 얼굴에 비교적 더 가까운 포지션에 장착되기 때문에(그리고 이에 따라 사용자의 신체의 전방에 있는 손, 팔, 발, 다리 등의 사용자의 신체 부위에 대하여 비교적 뒤에 있음), 사용자 신체의 더 큰 부위를 캡처할 수 있다.
도 9는 사용자가 착용한 카메라에 의해 캡처된 이미지에 기초하여 사용자의 전체 신체 포즈를 결정하는 예시적 방법(900)을 도시한다. 방법은 단계 910에서 시작할 수 있고, 컴퓨팅 시스템은 사용자가 착용한 헤드셋 상의 카메라에 의해, 카메라를 착용한 사용자의 신체 부위의 적어도 일부를 캡처하는 하나 이상의 이미지를 캡처할 수 있다. 단계 920에서, 시스템은 카메라에 의해 캡처된 하나 이상의 이미지에 기초하여, 사용자의 신체의 모션 히스토리를 인코딩하는 다수의 모션 피처를 결정할 수 있다. 단계 930에서, 시스템은 하나 이상의 이미지에서 사용자의 신체 부위의 일부에 대응하는 전경 픽셀을 검출할 수 있다. 단계 940에서, 시스템은 전경 픽셀에 기초하여, 카메라에 의해 캡처된 사용자의 신체 부위의 일부를 인코딩하는 다수의 형상 피처를 결정할 수 있다. 단계 950에서, 시스템은 형상 피처 및 모션 피처에 기초하여 사용자의 3차원 신체 포즈 및 3차원 머리 포즈를 결정할 수 있다. 단계 960에서, 시스템은 사용자의 3차원 머리 포즈 및 전경 픽셀에 기초하여 포즈 볼륨 표현을 생성할 수 있다. 단계 970에서, 시스템은 3차원 신체 포즈 및 포즈 볼륨 표현에 기초하여 사용자의 정제된 3차원 신체 포즈를 결정할 수 있다.
특정 실시형태에서, 사용자의 정제된 3차원 신체 포즈는 사용자의 신체의 모션 히스토리를 인코딩하는 모션 피처에 기초하여 결정될 수 있다. 특정 실시형태에서, 카메라의 시야는 전방일 수 있다. 카메라에 의해 캡처된 하나 이상의 이미지는 어안 이미지일 수 있다. 사용자의 신체 부위의 일부는 사용자의 손, 팔, 발, 또는 다리를 포함할 수 있다. 특정 실시형태에서, 헤드셋은 사용자의 손에 착용될 수 있다. 시스템은 헤드셋과 연관된 하나 이상의 IMU를 사용하여 IMU 데이터를 수집할 수 있다. 모션 피처는 카메라에 의해 캡처된 하나 이상의 이미지 및 IMU 데이터에 기초하여 결정될 수 있다. 특정 실시형태에서, 시스템은 동시 위치측정 및 지도화(simultaneous localization and mapping; SLAM) 모듈에 하나 이상의 이미지 및 IMU 데이터를 제공할 수 있다. 시스템은, 동시 위치측정 및 지도화 모듈을 사용하여 하나 이상의 이미지 및 IMU 데이터에 기초하여 하나 이상의 모션 히스토리 표현을 결정할 수 있다. 모션 피처는 하나 이상의 모션 히스토리 표현에 기초하여 결정될 수 있다. 특정 실시형태에서, 각각의 모션 히스토리 표현은 미리 결정된 시간 기간에 걸쳐 다수의 벡터를 포함할 수 있다. 벡터들 중 각각의 벡터는 3차원 회전, 3차원 병진이동, 또는 사용자의 높이와 연관된 파라미터를 포함할 수 있다.
특정 실시형태에서, 모션 피처는 모션 피처 모델을 사용하여 결정될 수 있다. 모션 피처 모델은 모션 히스토리 표현으로부터 모션 피처를 추출하도록 트레이닝된 뉴럴 네트워크 모델을 포함할 수 있다. 특정 실시형태에서, 시스템은 전경 배경 분할 모듈에 하나 이상의 이미지를 제공할 수 있다. 시스템은 전경 배경 분할 모듈을 사용하여 하나 이상의 이미지 중 각각의 이미지에 대한 전경 마스크를 결정할 수 있다. 젼경 마스크는 사용자의 신체 부위의 일부와 연관된 전경 픽셀을 포함할 수 있다. 형상 피처는 전경 픽셀에 기초하여 결정될 수 있다. 특정 실시형태에서, 형상 피처는 형상 피처 모델을 사용하여 결정될 수 있다. 형상 피처 모델은 이미지의 전경 마스크로부터 형상 피처를 추출하도록 트레이닝된 뉴럴 네트워크 모델을 포함할 수 있다.
특정 실시형태에서, 시스템은 모션 피처와 형상 피처의 가중치를 밸런싱할 수 있다. 시스템은 밸런싱된 가중치에 기초하여 퓨전 모듈에 모션 피처 및 형상 피처를 제공할 수 있다. 사용자의 3차원 신체 포즈 및 3차원 머리 포즈는 퓨전 모듈에 의해 결정될 수 있다. 특정 실시형태에서, 포즈 볼륨 표현은 사용자의 3차원 신체 포즈 및 3차원 머리 포즈에 대한 3차원 신체 형상 엔벨로프에 대응할 수 있다. 특정 실시형태에서, 포즈 볼륨 표현은 3차원 큐빅 공간에 사용자의 전경 픽셀을 역투영함으로써 생성될 수 있다. 특정 실시형태에서, 전경 픽셀은, 3차원 신체 포즈와 3차원 머리 포즈를 서로 일관성있게 유지하는 제약 하에서 3차원 큐빅 공간에 역투영될 수 있다. 특정 실시형태에서, 시스템은 3차원 포즈 정제 모델에 하나 이상의 이미지의 포즈 볼륨 표현, 모션 피처, 및 전경 픽셀을 제공할 수 있다. 사용자의 정제된 3차원 신체 포즈는 3차원 포즈 정제 모델에 의해 결정될 수 있다.
특정 실시형태에서, 3차원 포즈 정제 모델은 포즈 볼륨 표현으로부터 피처를 추출하기 위한 3차원 뉴럴 네트워크를 포함할 수 있다. 포즈 볼륨 표현으로부터 추출된 피처는 3차원 신체 포즈 및 모션 피처와 연결될 수 있다. 특정 실시형태에서, 3차원 포즈 정제 모델은 정제 회귀 네트워크를 포함할 수 있다. 시스템은 3차원 신체 포즈 및 모션 피처와 연결된 포즈 볼륨 표현으로부터 추출된 피처를 정제 회귀 네트워크에 제공할 수 있다. 사용자의 정제된 3차원 신체 포즈는 정제 회귀 네트워크에 의해 출력될 수 있다. 특정 실시형태에서, 정제된 3차원 신체 포즈는 실시간으로 결정될 수 있다. 시스템은 사용자의 정제된 3차원 신체 포즈에 기초하여 사용자에 대한 아바타를 생성할 수 있다. 시스템은 디스플레이 상에 아바타를 디스플레이할 수 있다. 특정 실시형태에서, 시스템은 사용자의 정제된 3차원 신체 포즈에 기초하여 스테레오 사운드 신호를 생성할 수 있다. 시스템은 사용자에 대하여 스테레오 사운드 신호에 기초한 스테레오 어쿠스틱 사운드를 재생할 수 있다.
특정 실시형태는 적합한 경우 도 9의 방법의 하나 이상의 단계를 반복할 수 있다. 본 개시는 특정 순서로 발생하는 도 9의 방법의 특정 단계를 설명하고 예시하지만, 본 개시는 임의의 적합한 순서로 발생하는 도 9의 방법의 임의의 적합한 단계를 고려한다. 또한, 도 9의 방법의 특정 단계들을 포함하는 사용자가 착용한 카메라에 의해 캡처된 이미지에 기초하여 사용자의 전체 신체 포즈를 결정하는 예시적 방법을 본 명세서가 설명하고 예시하였지만, 본 명세서는, 적합한 도 9의 방법의 단계들 전부, 일부를 포함하거나 전혀 포함하지 않을 수 있는 임의의 적합한 단계를 포함하는 사용자가 착용한 카메라에 의해 캡처된 이미지에 기초하여 사용자의 전체 신체 포즈를 결정하는 임의의 적합한 방법을 고려한다. 또한, 본 개시는 도 9의 방법의 특정 단계들을 수행하는 특정 콤포넌트, 디바이스, 또는 시스템을 설명하고 예시하지만, 본 개시는 도 9의 방법의 임의의 적합한 단계들을 수행하는 임의의 적합한 콤포넌트, 디바이스, 또는 시스템의 임의의 적합한 조합을 고려한다.
특정 실시형태에서, 온라인 소셜 네트워크의 콘텐트 오브젝트 중 하나 이상은 프라이버시 설정과 연관될 수 있다. 오브젝트에 대한 프라이버시 설정(또는 “액세스 설정”)은 임의의 적합한 방식으로, 예컨대 오브젝트와 연관되어, 인가 서버 상의 인덱스에, 다른 적합한 방식으로 또는 이들의 조합으로 저장될 수 있다. 오브젝트의 프라이버시 설정은 온라인 소셜 네트워크를 사용하여 오브젝트(또는 오브젝트와 연관된 특정 정보)에 액세스(예컨대, 보기 또는 공유)하는 방법을 지정할 수 있다. 오브젝트에 대한 프라이버시 설정에서 특정 사용자가 해당 오브젝트에 액세스할 수 있도록 허용하는 경우, 해당 오브젝트는 해당 사용자에 대해 "보이는(visible)" 것으로 설명될 수 있다. 한정이 아닌 예로서, 온라인 소셜 네트워크의 사용자는 사용자 프로필 페이지의 업무 경험 정보에 액세스할 수 있는 사용자 세트를 식별하는 사용자 프로필 페이지에 대한 프라이버시 설정을 지정할 수 있고, 이에 따라 다른 사용자가 정보에 액세스하지 못하도록 배제된다. 특정 실시형태에서, 프라이버시 설정은 오브젝트와 연관된 특정 정보에 액세스하도록 허용되지 않아야 하는 사용자의 “차단 리스트(blocked list)”를 지정할 수 있다. 즉, 차단 목록은 오브젝트가 표시되지 않는 하나 이상의 사용자 또는 엔터티를 지정할 수 있다. 한정이 아닌 예로서, 사용자는 사용자와 연관된 포토 앨범에 액세스할 수 없는 사용자 세트를 지정할 수 있고, 이에 따라 해당 사용자가 포토 앨범에 액세스하지 못하도록 배제될 수 있다(또한 가능하면 사용자 세트 내에 있지 않은 특정 사용자가 포토 앨범에 액세스할 수 있음). 특정 실시형태에서, 프라이버시 설정은 특정 소셜 그래프 엘리먼트(social-graph element)와 연관될 수 있다. 노드 또는 에지(edge)와 같은 소셜 그래프 엘리먼트의 프라이버시 설정은, 소셜 그래프 엘리먼트, 소셜 그래프 엘리먼트와 연관된 정보, 또는 소셜 그래프 엘리먼트와 연관된 콘텐트 오브젝트가 온라인 소셜 네트워크를 사용하여 액세스될 수 있는 방법을 지정할 수 있다. 한정이 아닌 예로서, 특정 포토에 대응하는 특정 컨셉 노드(concept node)(#04)는, 포토에 태깅된(tagged) 사용자 및 그 친구에 의해서만 포토가 액세스될 수 있는 것으로 지정하는 프라이버시 설정을 가질 수 있다. 특정 실시형태에서, 프라이버시 설정은 사용자가 자신의 행동을 소셜 네트워킹 시스템에 로깅하거나 다른 시스템(예컨대, 써드파티 시스템)과 공유하는 것을 옵트인(opt in) 또는 옵트아웃(opt out)하도록 허용할 수 있다. 특정 실시형태에서, 오브젝트와 연관된 프라이버시 설정은 허용된 액세스 또는 액세스 거부의 임의의 적합한 세분성(granularity)을 지정할 수 있다. 한정이 아닌 실시예로서, 특정 사용자들(예컨대, 나만, 내 룸메이트, 및 내 상사), 특정 분리도 내의 사용자(예컨대, 친구 또는 친구의 친구), 사용자 그룹(예컨대, 게이밍 클럽, 가족), 사용자 네트워크(예컨대, 특정 고용주의 직원, 특정 대학의 학생 또는 졸업생), 모든 사용자(“공개”), 사용자 없음(“비공개”), 써드파티 시스템의 사용자, 특정 애플리케이션(예컨대, 써드파티 애플리케이션, 외부 웹사이트), 다른 적합한 사용자 또는 엔티티, 또는 이들의 임의의 조합에 대해 액세스 또는 액세스 거부가 지정될 수 있다. 본 명세서는 특정 방식으로 특정 프라이버시 설정을 사용하는 것을 설명하지만, 본 명세서는 임의의 적합한 방식으로 임의의 적합한 프라이버시 설정을 사용하는 것을 고려한다.
특정 실시형태에서, 하나 이상의 서버는 프라이버시 설정을 시행하기 위한 인가/프라이버시 서버일 수 있다. 데이터 저장소에 저장된 특정 오브젝트에 대한 사용자(또는 다른 엔티티)로부터의 요청에 응답하여, 소셜 네트워킹 시스템은 오브젝트에 대한 요청을 데이터 저장소에 전송할 수 있다. 인가 서버가 오브젝트와 연관된 프라이버시 설정에 기초하여 사용자가 오브젝트에 액세스하도록 인가된 것으로 결정하는 경우, 요청이 요청과 연관된 사용자를 식별할 수 있고, 사용자(또는 사용자의 클라이언트 서버)에게만 전송될 수 있다. 요청하는 사용자에게 오브젝트에 대한 액세스가 인가되지 않은 경우, 인가 서버는 요청된 오브젝트가 데이터 저장소로부터 리트리브되지 않도록 하거나 요청된 오브젝트가 사용자에게 전송되지 않도록 할 수 있다. 검색 쿼리 컨텍스트에서, 오브젝트는 쿼리 사용자가 오브젝트에 액세스하도록 인가되는 경우에만 검색 결과로서 생성될 수 있다. 즉, 오브젝트는 쿼리 사용자에게 표시되는 가시성(visibility)을 가져야 한다. 오브젝트가 사용자에게 보이지 않는 가시성을 갖는 경우, 오브젝트는 검색 결과로부터 배제될 수 있다. 본 명세서는 특정 방식으로 프라이버시 설정을 시행하는 것을 설명하지만, 본 명세서는 임의의 적합한 방식으로 프라이버시 설정을 시행하는 것을 고려한다.
도 10는 예시적 컴퓨터 시스템(1000)을 도시한다. 특정 실시형태에서, 하나 이상의 컴퓨터 시스템(1000)은 여기에 설명되거나 예시된 하나 이상의 방법의 하나 이상의 단계를 수행한다. 특정 실시형태에서, 하나 이상의 컴퓨터 시스템(1000)은 여기에 설명되거나 예시된 기능을 제공한다. 특정 실시형태에서, 하나 이상의 컴퓨터 시스템(1000)에서 실행되는 소프트웨어는 여기에 설명되거나 예시된 하나 이상의 방법의 하나 이상의 단계를 수행하거나, 여기에 설명되거나 예시된 기능을 제공한다. 특정 실시형태는 하나 이상의 컴퓨터 시스템(1000)의 하나 이상의 부분을 포함한다. 여기서 컴퓨터 시스템에 대한 언급은 컴퓨팅 디바이스를 포함할 수 있으며, 적합한 경우 그 반대도 가능하다. 또한, 컴퓨터 시스템에 대한 언급은 적합한 경우 하나 이상의 컴퓨터 시스템을 포함할 수 있다.
본 개시는 임의의 적합한 수의 컴퓨터 시스템(1000)을 고려한다. 본 개시는 임의의 적합한 물리적 형태를 취하는 컴퓨터 시스템(1000)을 고려한다. 제한 없이 예로서, 컴퓨터 시스템(1000)은 임베디드 컴퓨터 시스템, 시스템 온 칩(system-on-chip; SOC), 단일 보드 컴퓨터 시스템(single-board computer system; SBC)[예를 들어, 컴퓨터 온 모듈(COM) 또는 시스템 온 모듈(SOM)], 데스크탑 컴퓨터 시스템, 랩톱 또는 노트북 컴퓨터 시스템, 대화형 키오스크, 메인프레임, 컴퓨터 시스템의 메쉬, 모바일 폰, PDA(PERSONAL DIGITAL ASSISTANT), 서버, 태블릿 컴퓨터 시스템, 증강/가상 현실 디바이스, 또는 이들 중 둘 이상의 조합일 수 있다. 적합한 경우, 컴퓨터 시스템(1000)은 하나 이상의 컴퓨터 시스템(1000)을 포함하고; 단일하거나 분산되어 있고; 다수의 위치에 걸쳐 있고; 다수의 머신에 걸쳐 있고; 다수의 데이터 센터에 걸쳐 있고; 또는 하나 이상의 네트워크에 하나 이상의 클라우드 콤포넌트를 포함할 수 있는 클라우드에 상주할 수 있다. 적합한 경우, 하나 이상의 컴퓨터 시스템(1000)은 실질적인 공간적 또는 시간적 제한 없이 본 개시에 기술되거나 예시된 하나 이상의 방법의 하나 이상의 단계를 수행할 수 있다. 예로서 그리고 제한 없이, 하나 이상의 컴퓨터 시스템(1000)은 실시간으로 또는 배치 모드로 본 개시에 기술되거나 예시된 하나 이상의 방법의 하나 이상의 단계를 수행할 수 있다. 하나 이상의 컴퓨터 시스템(1000)은 적합한 경우, 상이한 시간에 또는 상이한 위치에서 본 개시에 기술되거나 도시된 하나 이상의 방법의 하나 이상의 단계를 수행할 수 있다.
특정 실시형태에서, 컴퓨터 시스템(1000)은 프로세서(1002), 메모리(1004), 스토리지(1006), 입력/출력(I/O) 인터페이스(1008), 통신 인터페이스(1010), 및 버스(1012)를 포함한다. 본 개시는 특정 배열로 특정 개수의 특정 콤포넌트를 갖는 특정 컴퓨터 시스템을 설명하고 도시하지만, 본 개시는 임의의 적합한 배열로 임의의 적합한 콤포넌트를 임의로 갖는 임의의 적합한 컴퓨터 시스템을 고려한다.
특정 실시형태에서, 프로세서(1002)는 컴퓨터 프로그램을 구성하는 것과 같은 명령어를 실행하기 위한 하드웨어를 포함한다. 예로서 제한 없이, 명령어를 실행하기 위해 프로세서(1002)는 내부 레지스터, 내부 캐시, 메모리(1004), 또는 스토리지(1006)로부터 명령어를 리트리브(또는 페치)할 수 있고; 명령어들을 디코딩하고 실행하고; 그런 다음 하나 이상의 결과를 내부 레지스터, 내부 캐시, 메모리(1004), 또는 스토리지(1006)에 기록한다. 특정 실시형태에서, 프로세서(1002)는 데이터, 명령어, 또는 어드레스에 대한 하나 이상의 내부 캐시를 포함할 수 있다. 본 개시는 적합한 경우, 임의의 적합한 수의 임의의 적합한 내부 캐시를 포함하는 프로세서(1002)를 고려한다. 제한 없이 예로서, 프로세서(1002)는 하나 이상의 명령어 캐시, 하나 이상의 데이터 캐시, 및 하나 이상의 TLB(translation lookaside buffer)를 포함할 수 있다. 명령어 캐시 내에 있는 명령어는 메모리(1004) 또는 스토리지(1006) 내에 있는 명령어의 사본일 수 있으며, 명령어 캐시는 프로세서(1002)에 의한 이러한 명령어의 리트리브 속도를 높일 수 있다. 데이터 캐시 내의 데이터는 프로세서(1002)에서 실행되는 명령어가 작동하기 위한 메모리(1004) 또는 스토리지(1006) 내의 데이터; 프로세서(1002)에서 실행되는 후속 명령어에 의한 액세스를 위해 또는 메모리(1004) 또는 스토리지(1006)에 기록하기 위해 프로세서(1002)에서 실행된 이전 명령어의 결과; 또는 다른 적합한 데이터의 사본일 수 있다. 데이터 캐시는 프로세서(1002)에 의한 판독 또는 기록 동작의 속도를 높일 수 있다. TLB는 프로세서(1002)에 대한 가상 주소 변환 속도를 높일 수 있다. 특정 실시형태에서, 프로세서(1002)는 데이터, 명령어, 또는 어드레스에 대한 하나 이상의 내부 레지스터를 포함할 수 있다. 본 개시는 적합한 경우, 임의의 적합한 수의 임의의 적합한 내부 레지스터를 포함하는 프로세서(1002)를 고려한다. 적합한 경우, 프로세서(1002)는 하나 이상의 산술 논리 유닛(arithmetic logic unit; ALU)을 포함할 수 있으며; 멀티 코어 프로세서일 수 있고; 또는 하나 이상의 프로세서(1002)를 포함할 수 있다. 본 개시는 특정 프로세서를 설명하고 예시하지만, 본 개시는 임의의 적합한 프로세서를 고려한다.
특정 실시형태에서, 메모리(1004)는 프로세서(1002)가 실행할 명령어 또는 프로세서(1002)가 동작할 데이터를 저장하기 위한 메인 메모리를 포함한다. 제한 없이 예로서, 컴퓨터 시스템(1000)은 스토리지(1006) 또는 다른 소스(예를 들어, 다른 컴퓨터 시스템(1000))로부터 메모리(1004)로 명령어를 로드할 수 있다. 프로세서(1002)는 메모리(1004)로부터 내부 레지스터 또는 내부 캐시로 명령어를 로드할 수 있다. 명령어를 실행하기 위해, 프로세서(1002)는 내부 레지스터 또는 내부 캐시로부터 명령어를 리트리브하고 이들을 디코딩할 수 있다. 명령어의 실행 중 또는 실행 후에, 프로세서(1002)는 하나 이상의 결과(중간 또는 최종 결과일 수 있음)를 내부 레지스터 또는 내부 캐시에 기록할 수 있다. 그런 다음 프로세서(1002)는 이러한 결과 중 하나 이상을 메모리(1004)에 기록할 수 있다. 특정 실시형태에서, 프로세서(1002)는 하나 이상의 내부 레지스터 또는 내부 캐시 또는 메모리(1004)[스토리지(1006) 또는 다른 곳에 대한 반대로]에서 명령어만을 실행하고, 하나 이상의 내부 레지스터 또는 내부 캐시 또는 메모리(1004)[스토리지(1006) 또는 다른 곳에 대한 반대로]에서 데이터에 대해서만 동작한다. 하나 이상의 메모리 버스(각각 어드레스 버스 및 데이터 버스를 포함할 수 있음)는 프로세서(1002)를 메모리(1004)에 커플링할 수 있다. 버스(1012)는 후술하는 바와 같이 하나 이상의 메모리 버스를 포함할 수 있다. 특정 실시형태에서, 하나 이상의 메모리 관리 유닛(memory management unit; MMU)은 프로세서(1002)와 메모리(1004) 사이에 상주하고 프로세서(1002)에 의해 요청된 메모리(1004)에 대한 액세스를 용이하게 한다. 특정 실시형태에서, 메모리(1004)는 랜덤 액세스 메모리(random access memory; RAM)를 포함한다. 이 RAM은 적합한 경우 휘발성 메모리일 수 있다. 적합한 경우 이 RAM은 DRAM(동적 RAM) 또는 SRAM(정적 RAM)일 수 있다. 또한 적합한 경우 이 RAM은 단일 포트 또는 다중 포트 RAM일 수 있다. 본 개시는 임의의 적합한 RAM을 고려한다. 메모리(1004)는 적합한 경우 하나 이상의 메모리(1004)를 포함할 수 있다. 본 개시는 특정 메모리를 설명하고 예시하지만, 본 개시는 임의의 적합한 메모리를 고려한다.
특정 실시형태에서, 스토리지(1006)는 데이터 또는 명령어를 위한 대용량 스토리지를 포함한다. 제한 없이 예로서, 스토리지(1006)는 하드 디스크 드라이브(HDD), 플로피 디스크 드라이브, 플래시 메모리, 광 디스크, 자기 광 디스크, 자기 테이프, 또는 범용 직렬 버스(USB) 드라이브, 또는 이들 중 2개 이상의 조합을 포함할 수 있다. 스토리지(1006)는 적합한 경우 착탈식 또는 비착탈식(또는 고정식) 미디어를 포함할 수 있다. 스토리지(1006)는 적합한 경우 컴퓨터 시스템(1000)의 내부 또는 외부에 있을 수 있다. 특정 실시형태에서, 스토리지(1006)는 비휘발성 고체 상태 메모리이다. 특정 실시형태에서, 스토리지(1006)는 리드 온리 메모리(read-only memory; ROM)를 포함한다. 적합한 경우, 이 ROM은 마스크 프로그래밍 ROM(mask-programmed ROM), 프로그램 가능 ROM(programmable ROM; PROM), 소거 가능 PROM(erasable PROM; EPROM), 전기적 소거 가능 PROM(electrically erasable PROM; EEPROM), 전기적 변경 가능 ROM(electrically alterable ROM; EAROM) 또는 플래시 메모리 또는 이들 중 둘 이상의 조합일 수 있다. 본 개시는 임의의 적합한 물리적 형태를 취하는 대용량 스토리지(1006)를 고려한다. 스토리지(1006)는 적합한 경우 프로세서(1002)와 스토리지(1006) 사이의 통신을 용이하게 하는 하나 이상의 스토리지 제어 유닛을 포함할 수 있다. 적합한 경우, 스토리지(1006)는 하나 이상의 스토리지(1006)를 포함할 수 있다. 본 개시는 특정 스토리지를 설명하고 예시하지만, 본 개시는 임의의 적합한 스토리지를 고려한다.
특정 실시형태에서, I/O 인터페이스(1008)는 컴퓨터 시스템(1000)과 하나 이상의 I/O 디바이스들과의 사이의 통신을 위한 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어, 또는 둘 다를 포함한다. 컴퓨터 시스템(1000)은 적합한 경우 이들 I/O 디바이스들 중 하나 이상을 포함할 수 있다. 이들 I/O 디바이스들 중 하나 이상은 사람과 컴퓨터 시스템(1000) 사이의 통신을 가능하게 할 수 있다. 제한 없이 예로서, I/O 디바이스는, 키보드, 키패드, 마이크로폰, 모니터, 마우스, 프린터, 스캐너, 스피커, 스틸 카메라, 스타일러스, 태블릿, 터치 스크린, 트랙볼, 비디오 카메라, 다른 적합한 I/O 디바이스, 또는 이들 중 둘 이상의 조합을 포함할 수 있다. I/O 디바이스는 하나 이상의 센서를 포함할 수 있다. 본 개시는 임의의 적합한 I/O 디바이스 및 이들을 위한 임의의 적합한 I/O 인터페이스(1008)를 고려한다. 적합한 경우, I/O 인터페이스(1008)는 프로세서(1002)가 이들 I/O 디바이스들 중 하나 이상을 구동하게 할 수 있는 하나 이상의 디바이스 또는 소프트웨어 드라이버를 포함할 수 있다. I/O 인터페이스(1008)는 적합한 경우 하나 이상의 I/O 인터페이스(1008)를 포함할 수 있다. 본 개시는 특정 I/O 인터페이스를 설명하고 예시하지만, 본 개시는 임의의 적합한 I/O 인터페이스를 고려한다.
특정 실시형태에서, 통신 인터페이스(1010)는 컴퓨터 시스템(1000)과 하나 이상의 다른 컴퓨터 시스템(1000) 또는 하나 이상의 네트워크와의 사이의 통신(예컨대 패킷 기반 통신)을 위해 하나 이상의 인터페이스를 제공하는 하드웨어, 소프트웨어, 또는 둘 다를 포함한다. 제한 없이 예로서, 통신 인터페이스(1010)는, 다른 유선 기반 네트워크 또는 Ethernet과의 통신을 위한 네트워크 인터페이스 컨트롤러(network interface controller; NIC) 또는 네트워크 어뎁터, 또는 WI-FI 네트워크와 같은 무선 네트워크와의 통신을 위한 무선 어뎁터 또는 무선 NIC(WNIC)를 포함할 수 있다. 본 개시는 임의의 적합한 네트워크 및 이것을 위한 임의의 적합한 통신 인터페이스(1010)를 고려한다. 제한 없이 예로서, 컴퓨터 시스템(1000)은, ad hoc 네트워크, PAN(personal area network), LAN(local area network), WAN(wide area network), MAN(metropolitan area network), 또는 인터넷의 하나 이상의 부분, 또는 이들 중 둘 이상의 조합과 통신할 수 있다. 이들 네트워크들 중 하나 이상의 하나 이상의 부분은 유선 또는 무선일 수 있다. 실시예로서, 컴퓨터 시스템(1000)은, 무선 PAN(WPAN)(예컨대, BLUETOOTH WPAN), WI-FI 네트워크, WI-MAX 네트워크, 셀룰러 텔레폰 네트워크[예컨대, GSM(Global System for Mobile Communications) 네트워크 등], 또는 다른 적합한 무선 네트워크, 또는 이들 중 둘 이상의 조합과 통신할 수 있다. 컴퓨터 시스템(1000)은 적합한 경우 이 네트워크들 중 임의의 네트워크를 위한 임의의 적합한 통신 인터페이스(1010)를 포함할 수 있다. 통신 인터페이스(1010)는 적합한 경우 하나 이상의 통신 인터페이스(1010)를 포함할 수 있다. 본 개시는 특정 통신 인터페이스를 설명하고 예시하지만, 본 개시는 임의의 적합한 통신 인터페이스를 고려한다.
특정 실시형태에서, 버스(1012)는 컴퓨터 시스템(1000)의 콤포넌트들을 서로 커플링하는 하드웨어, 소프트웨어, 또는 둘 다를 포함한다. 제안 없이 예로서, 버스(1012)는, AGP(Accelerated Graphics Port) 또는 다른 그래픽 버스, EISA(Enhanced Industry Standard Architecture) 버스, FSB(front-side bus), HYPERTRANSPORT (HT) 상호접속부, ISA(Industry Standard Architecture) 버스, INFINIBAND 상호접속부, LPC(low-pin-count) 버스, 메모리 버스, MCA(Micro Channel Architecture) 버스, PCI(Peripheral Component Interconnect) 버스, PCIe(PCI-Express) 버스, SATA(serial advanced technology attachment) 버스, VLB(Video Electronics Standards Association local) 버스, 또는 다른 적합한 버스, 또는 이들 중 둘 이상의 조합을 포함할 수 있다. 버스(1012)는 적합한 경우 하나 이상의 버스(1012)를 포함할 수 있다. 본 개시는 특정 버스를 설명하고 예시하지만, 본 개시는 임의의 적합한 버스를 고려한다.
여기서, 컴퓨터 판독 가능 비일시적 스토리지 매체 또는 매체들은, 적합한 경우, 하나 이상의 반도체 기반 또는 다른 집적 회로(IC)[FPGA(field-programmable gate array) 또는 ASIC(application-specific IC) 등], HDD(hard disk drive), HHD(hybrid hard drive), 광학 디스크, ODD(optical disc drive), 자기 광학 디스크, 자기 광학 드라이브, 플로피 디스켓, FDD(floppy disk drive), 자기 테이프, SSD(solid-state drive), RAM 드라이브, SECURE DIGITAL 카드 또는 드라이브, 임의의 다른 적합한 컴퓨터 판독 가능 비일시적 스토리지 매체, 또는 이들 중 둘 이상의 임의의 적합한 조합을 포함할 수 있다. 컴퓨터 판독 가능 비일시적 스토리지 매체는 휘발성, 비휘발성, 또는 적절한 경우 휘발성과 비휘발성의 조합일 수 있다.
여기서 "또는"은 달리 명시적으로 나타내거나 문맥상 달리 나타내지 않는 한 포괄적이며 배타적이지 않다. 따라서, 본 명세서에서 "A 또는 B"는 달리 명시적으로 나타내거나 문맥상 다르게 나타내지 않는 한 "A, B 또는 둘 모두"를 의미한다. 더욱이, "및"은 달리 명시적으로 나타내거나 문맥에 의해 달리 나타내지 않는 한 공동 및 여러 개이다. 따라서, 본 명세서에서 "A 및 B"는 달리 명시적으로 나타내거나 문맥상 달리 나타내지 않는 한 "A 및 B, 공동으로 또는 개별적으로"를 의미한다.
본 개시의 범위는 통상의 기술자가 이해할 수 있는 본 명세서에 기술되거나 예시된 예시적인 실시형태에 대한 모든 변경, 대체, 정정, 변형, 및 수정을 포함한다. 본 개시의 범위는 본 명세서에 기술되거나 도시된 예시적인 실시형태에 제한되지 않는다. 더욱이, 본 개시가 특정 콤포넌트, 엘리먼트, 피처, 기능, 동작 또는 단계를 포함하는 것으로 본 명세서의 각각의 실시형태를 설명하고 예시하지만, 이들 실시형태 중 임의의 것은 콤포넌트, 엘리먼트, 피처, 기능, 동작,또는 통상의 기술자가 이해할 수 있는 본 명세서의 어느 곳에서나 설명되거나 예시된 단계의 임의의 조합 또는 순열을 포함할 수 있다. 또한, 특정 기능을 수행하도록 적응되고, 배열되고, 가능하고, 구성되고, 인에이블되고, 동작가능하거나 동작 가능해지는 장치 또는 시스템 또는 장치 또는 시스템의 콤포넌트에 대한 첨부된 청구범위에서의 참조는, 특정 기능이 활성화되고, 턴온되고, 또는 잠금해제되는지와 무관하게 장치, 시스템, 또는 콤포넌트가 이렇게 적응되고 배열되고, 가능하게 되고, 구성되고, 인에이블되고, 동작가능하거나 동작 가능해지는 장치, 시스템, 콤포넌트를 포함한다. 추가로, 본 명세서는 특정한 이점을 제공하는 것으로 특정 실시형태를 설명하거나 예시하지만, 특정 실시형태는 이러한 이점을 제공하지 않거나, 일부 또는 전부를 제공할 수 있다.

Claims (20)

  1. 방법으로서,
    컴퓨팅 시스템에 의해,
    사용자가 착용한 헤드셋 상의 카메라에 의해 상기 카메라를 착용하는 상기 사용자의 신체 부위의 적어도 일부를 캡처하는 하나 이상의 이미지를 캡처하는 단계;
    상기 카메라에 의한 상기 하나 이상의 캡처된 이미지에 기초하여, 상기 사용자의 신체의 모션 히스토리(motion history)를 인코딩하는 복수의 모션 피처(motion feature)를 결정하는 단계;
    상기 하나 이상의 이미지에서, 상기 사용자의 상기 신체 부위의 일부에 대응하는 전경 픽셀(foreground pixel)을 검출하는 단계;
    상기 전경 픽셀에 기초하여, 상기 카메라에 의해 캡처된 상기 사용자의 상기 신체 부위의 일부를 인코딩하는 복수의 형상 피처를 결정하는 단계;
    상기 복수의 모션 피처 및 상기 복수의 형상 피처에 기초하여, 상기 사용자의 3차원 신체 포즈 및 3차원 머리 포즈를 결정하는 단계;
    상기 사용자의 상기 3차원 머리 포즈 및 전경 픽셀에 기초하여 포즈 볼륨 표현(pose volume representation)을 생성하는 단계; 및
    상기 포즈 볼륨 표현 및 상기 3차원 신체 포즈에 기초하여 상기 사용자의 정제된 3차원 신체 포즈(refined three-dimensional body pose)를 결정하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 사용자의 상기 정제된 3차원 신체 포즈는 상기 사용자의 상기 신체의 상기 모션 히스토리를 인코딩한 상기 복수의 모션 피처에 기초하여 결정되는 것인, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 카메라의 시야(field of view)는 전방(front-facing)이고, 상기 카메라에 의해 캡처된 상기 하나 이상의 이미지는 어안 이미지(fisheye image)이고, 상기 사용자의 신체 부위의 일부는 상기 사용자의 손, 팔, 발, 또는 다리를 포함하는 것인, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 헤드셋은 사용자의 머리에 착용되고,
    상기 헤드셋과 연관된 하나 이상의 IMU를 사용하여 IMU 데이터를 수집하는 단계를 더 포함하고, 상기 복수의 모션 피처는 상기 카메라에 의해 캡처된 상기 하나 이상의 이미지 및 상기 IMU 데이터에 기초하여 결정되는 것인, 방법.
  5. 제4항에 있어서,
    동시 위치측정 및 지도화(simultaneous localization and mapping; SLAM) 모듈에 상기 IMU 데이터 및 상기 하나 이상의 이미지를 제공하는(feeding) 단계; 및
    상기 동시 위치측정 및 지도화 모듈을 사용하여, 상기 IMU 데이터 및 상기 하나 이상의 이미지에 기초하여 하나 이상의 모션 히스토리 표현을 결정하는 단계
    를 더 포함하고,
    상기 복수의 모션 피처는 상기 하나 이상의 모션 히스토리 표현에 기초하여 결정되는 것인, 방법.
  6. 제5항에 있어서,
    각각의 모션 히스토리 표현은 미리 결정된 시간 기간에 걸친 복수의 벡터를 포함하고, 상기 복수의 벡터의 각각의 벡터는 상기 사용자의 높이(height), 3차원 회전(rotation), 또는 3차원 병진이동(translation)과 연관된 파라미터를 포함하는 것인, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 복수의 모션 피처는 모션 피처 모델을 사용하여 결정되고, 상기 모션 피처 모델은 모션 히스토리 표현으로부터 모션 피처를 추출하도록 트레이닝된 뉴럴 네트워크 모델을 포함하는 것인, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    전경-배경 분할 모듈에 상기 하나 이상의 이미지를 제공하는 단계; 및
    상기 전경-배경 분할 모듈을 사용하여 상기 하나 이상의 이미지 중 각각의 이미지에 대한 전경 마스크를 결정하는 단계
    를 더 포함하고,
    상기 전경 마스크는 상기 사용자의 신체 부위의 일부와 연관된 상기 전경 픽셀을 포함하고, 상기 복수의 형상 피처는 상기 전경 픽셀에 기초하여 결정되는 것인, 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 복수의 형상 피처는 형상 피처 모델을 사용하여 결정되고, 상기 형상 피처 모델은 이미지의 전경 마스크로부터 형상 피처를 추출하도록 트레이닝된 뉴럴 네트워크 모델을 포함하는 것인, 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 복수의 모션 피처와 상기 복수의 형상 피처의 가중치를 밸런싱(balancing)하는 단계; 및
    상기 밸런싱된 가중치에 기초하여, 퓨전 모듈(fusion module)에 상기 복수의 모션 피처 및 상기 복수의 형상 피처를 제공하는 단계
    를 더 포함하고,
    상기 사용자의 상기 3차원 신체 포즈 및 상기 3차원 머리 포즈는 상기 퓨전 모듈에 의해 결정되는 것인, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 포즈 볼륨 표현은 상기 사용자의 상기 3차원 신체 포즈 및 상기 3차원 머리 포즈에 대한 3차원 신체 형상 엔벨로프(three-dimensional body shape envelope)에 대응하는 것인, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 포즈 볼륨 표현은 상기 사용자의 상기 전경 픽셀을 3차원 큐빅 공간(three-dimensional cubic space)으로 역투영(back-projecting)함으로써 생성되는 것인, 방법.
  13. 제12항에 있어서,
    상기 전경 픽셀은 상기 3차원 신체 포즈와 상기 3차원 머리 포즈를 서로 일관되게 유지하는 제약 하에서 상기 3차원 큐빅 공간으로 역투영되는 것인, 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서,
    상기 하나 이상의 이미지의 상기 포즈 볼륨 표현, 상기 복수의 모션 피처, 및 상기 전경 픽셀을 3차원 포즈 정제 모델에 제공하는 단계를 더 포함하고,
    상기 사용자의 상기 정제된 3차원 신체 포즈는 상기 3차원 포즈 정제 모델에 의해 결정되는 것인, 방법.
  15. 제14항에 있어서,
    상기 3차원 포즈 정제 모델은 상기 포즈 볼륨 표현으로부터 피처를 추출하기 위한 3차원 뉴럴 네트워크를 포함하고, 상기 포즈 볼륨 표현으로부터의 상기 추출된 피처는 상기 복수의 모션 피처 및 상기 3차원 신체 포즈와 연결되는(concatenated) 것인, 방법.
  16. 제14항 또는 제15항에 있어서,
    상기 3차원 포즈 정제 모델은 정제 회귀 네트워크(refinement regression network)를 포함하고,
    상기 복수의 모션 피처 및 상기 3차원 신체 포즈와 연결된 상기 포즈 볼륨 표현으로부터 추출된 피처를 상기 정제 회귀 네트워크에 제공하는 단계를 더 포함하고,
    상기 사용자의 상기 정제된 3차원 신체 포즈는 상기 정제 회귀 네트워크에 의해 출력되는 것인, 방법.
  17. 제1항 내지 제16항 중 어느 한 항에 있어서,
    상기 정제된 3차원 신체 포즈는 실시간으로 결정되고,
    상기 사용자의 상기 정제된 3차원 신체 포즈에 기초하여 상기 사용자에 대한 아바타(avatar)를 생성하는 단계; 및
    디스플레이 상에 상기 아바타를 디스플레이하는 단계
    를 더 포함하는, 방법.
  18. 제1항 내지 제17항 중 어느 한 항에 있어서,
    상기 사용자의 상기 정제된 3차원 신체 포즈에 기초하여 스테레오 사운드 신호를 생성하는 단계; 및
    상기 스테레오 사운드 신호에 기초한 스테레오 어쿠스틱 사운드를 상기 사용자에게 재생하는 단계
    를 더 포함하는, 방법.
  19. 소프트웨어를 구현하는 하나 이상의 컴퓨터 판독 가능 비일시적 저장 매체로서, 상기 소프트웨어는 실행시,
    사용자가 착용한 헤드셋 상의 카메라에 의해 상기 카메라를 착용하는 상기 사용자의 신체 부위의 적어도 일부를 캡처하는 하나 이상의 이미지를 캡처하고;
    상기 카메라에 의한 상기 하나 이상의 캡처된 이미지에 기초하여, 상기 사용자의 신체의 모션 히스토리(motion history)를 인코딩하는 복수의 모션 피처(motion feature)를 결정하고;
    상기 하나 이상의 이미지에서, 상기 사용자의 상기 신체 부위의 일부에 대응하는 전경 픽셀(foreground pixel)을 검출하고;
    상기 전경 픽셀에 기초하여, 상기 카메라에 의해 캡처된 상기 사용자의 상기 신체 부위의 일부를 인코딩하는 복수의 형상 피처를 결정하고;
    상기 복수의 모션 피처 및 상기 복수의 형상 피처에 기초하여, 상기 사용자의 3차원 신체 포즈 및 3차원 머리 포즈를 결정하고;
    상기 사용자의 상기 3차원 머리 포즈 및 전경 픽셀에 기초하여 포즈 볼륨 표현(pose volume representation)을 생성하고;
    상기 포즈 볼륨 표현 및 상기 3차원 신체 포즈에 기초하여 상기 사용자의 정제된 3차원 신체 포즈(refined three-dimensional body pose)를 결정하도록
    동작 가능한 것인, 하나 이상의 컴퓨터 판독 가능 비일시적 저장 매체.
  20. 시스템으로서,
    명령어를 구현하는 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체; 및
    상기 저장 매체에 커플링되고 상기 명령어를 실행하도록 동작 가능한 하나 이상의 프로세서
    를 포함하고, 상기 명령어는,
    사용자가 착용한 헤드셋 상의 카메라에 의해 상기 카메라를 착용하는 상기 사용자의 신체 부위의 적어도 일부를 캡처하는 하나 이상의 이미지를 캡처하고;
    상기 카메라에 의한 상기 하나 이상의 캡처된 이미지에 기초하여, 상기 사용자의 신체의 모션 히스토리(motion history)를 인코딩하는 복수의 모션 피처(motion feature)를 결정하고;
    상기 하나 이상의 이미지에서, 상기 사용자의 상기 신체 부위의 일부에 대응하는 전경 픽셀(foreground pixel)을 검출하고;
    상기 전경 픽셀에 기초하여, 상기 카메라에 의해 캡처된 상기 사용자의 상기 신체 부위의 일부를 인코딩하는 복수의 형상 피처를 결정하고;
    상기 복수의 모션 피처 및 상기 복수의 형상 피처에 기초하여, 상기 사용자의 3차원 신체 포즈 및 3차원 머리 포즈를 결정하고;
    상기 사용자의 상기 3차원 머리 포즈 및 전경 픽셀에 기초하여 포즈 볼륨 표현(pose volume representation)을 생성하고;
    상기 포즈 볼륨 표현 및 상기 3차원 신체 포즈에 기초하여 상기 사용자의 정제된 3차원 신체 포즈(refined three-dimensional body pose)를 결정하기
    위한 것인, 시스템.
KR1020237028694A 2021-03-31 2022-03-29 인간의 시야 범위로부터의 자기중심적 포즈 추정 KR20230162927A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163169012P 2021-03-31 2021-03-31
US63/169,012 2021-03-31
US17/475,063 US20220319041A1 (en) 2021-03-31 2021-09-14 Egocentric pose estimation from human vision span
US17/475,063 2021-09-14
PCT/US2022/022282 WO2022212325A1 (en) 2021-03-31 2022-03-29 Egocentric pose estimation from human vision span

Publications (1)

Publication Number Publication Date
KR20230162927A true KR20230162927A (ko) 2023-11-29

Family

ID=81597807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237028694A KR20230162927A (ko) 2021-03-31 2022-03-29 인간의 시야 범위로부터의 자기중심적 포즈 추정

Country Status (5)

Country Link
EP (1) EP4315248A1 (ko)
JP (1) JP2024513637A (ko)
KR (1) KR20230162927A (ko)
TW (1) TW202240538A (ko)
WO (1) WO2022212325A1 (ko)

Also Published As

Publication number Publication date
TW202240538A (zh) 2022-10-16
EP4315248A1 (en) 2024-02-07
JP2024513637A (ja) 2024-03-27
WO2022212325A1 (en) 2022-10-06

Similar Documents

Publication Publication Date Title
US11238644B2 (en) Image processing method and apparatus, storage medium, and computer device
CN114072846A (zh) 动画化来自头戴式装置相机的虚拟形象
US11010951B1 (en) Explicit eye model for avatar
CN111985268B (zh) 一种人脸驱动动画的方法和装置
US11451758B1 (en) Systems, methods, and media for colorizing grayscale images
US11507203B1 (en) Body pose estimation using self-tracked controllers
US11288543B1 (en) Systems and methods for depth refinement using machine learning
US11335077B1 (en) Generating and modifying representations of dynamic objects in an artificial reality environment
US20220319041A1 (en) Egocentric pose estimation from human vision span
US11887267B2 (en) Generating and modifying representations of hands in an artificial reality environment
US12033270B2 (en) Systems and methods for generating stabilized images of a real environment in artificial reality
CN116261706A (zh) 用于使用融合数据进行对象跟踪的系统和方法
US11715272B2 (en) 3D reconstruction of a moving object
US11615594B2 (en) Systems and methods for reconstruction of dense depth maps
US11423616B1 (en) Systems and methods for rendering avatar with high resolution geometry
KR20230162927A (ko) 인간의 시야 범위로부터의 자기중심적 포즈 추정
US11410387B1 (en) Systems, methods, and media for generating visualization of physical environment in artificial reality
CN117121057A (zh) 基于人类视觉范围的以自我为中心的姿态估计
US20240062425A1 (en) Automatic Colorization of Grayscale Stereo Images
US12039668B2 (en) Digital garment generation
US20230245322A1 (en) Reconstructing A Three-Dimensional Scene
US20240312253A1 (en) Systems and methods for predicting elbow joint poses