KR20230097163A - 자동입체 텔레프레즌스 시스템들을 위한 3차원(3d) 얼굴 피처 추적 - Google Patents

자동입체 텔레프레즌스 시스템들을 위한 3차원(3d) 얼굴 피처 추적 Download PDF

Info

Publication number
KR20230097163A
KR20230097163A KR1020237018648A KR20237018648A KR20230097163A KR 20230097163 A KR20230097163 A KR 20230097163A KR 1020237018648 A KR1020237018648 A KR 1020237018648A KR 20237018648 A KR20237018648 A KR 20237018648A KR 20230097163 A KR20230097163 A KR 20230097163A
Authority
KR
South Korea
Prior art keywords
facial feature
location
landmarks
facial
image
Prior art date
Application number
KR1020237018648A
Other languages
English (en)
Inventor
사샤 해버링
제이슨 로렌스
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20230097163A publication Critical patent/KR20230097163A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/174Facial expression recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • G06V40/171Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/30Noise filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • G06V40/167Detection; Localisation; Normalisation using comparisons between temporally consecutive images
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/001Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background
    • G09G3/003Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes using specific devices not provided for in groups G09G3/02 - G09G3/36, e.g. using an intermediate record carrier such as a film slide; Projection systems; Display of non-alphanumerical information, solely or in combination with alphanumerical information, e.g. digital display on projected diapositive as background to produce spatial visual effects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/157Conference systems defining a virtual conference space and using avatars or agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2354/00Aspects of interface with display user

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Processing Or Creating Images (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

방법은 복수의 카메라들을 사용하여 적어도 하나의 이미지를 캡처하는 단계, 적어도 하나의 이미지와 연관된 복수의 얼굴 피처들을 식별하는 단계, 복수의 얼굴 피처들 중 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계, 적어도 하나의 얼굴 피처의 위치를 3차원(3D) 위치로 변환하는 단계, 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계, 및 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 평면 패널 디스플레이에, 3D 이미지를 렌더링하는 단계를 포함한다.

Description

자동입체 텔레프레즌스 시스템들을 위한 3차원(3D) 얼굴 피처 추적
실시예들은 일반적으로 디스플레이에서 제시하기 위한 콘텐츠를 생성하는데 사용되는 방법들, 디바이스들 및 알고리즘들에 관한 것이다.
3차원(3D) 텔레프레즌스 시스템들은 비디오를 디스플레이하고 오디오를 투사할 위치를 결정하기 위해 사용자의 머리에 대한 3D 포즈 정보에 의존할 수 있다. 3D 포즈 정보는 정확해야 한다. 예를 들어, 일부 시스템들은 정확할 수 있지만 사용자가 3D 마커 볼들을 착용해야 한다. 또한, 이러한 시스템들은 하드웨어 설치 공간이 커서 매우 비싸다. 다른 시스템들은 예를 들어 게임용으로 사용할 수 있는 소형 소비자 등급 디바이스들을 사용할 수 있다. 하지만, 이러한 시스템들은 3D 텔레프레즌스 시스템의 요구 사항들을 충족하지 못하는 정확도와 속도를 가지고 있다. 웨어러블 디바이스들(예: 3D 마커 볼들, 헤드 마운트 디스플레이 등) 없이도 3D 텔레프레즌스 시스템에서 사용할 수 있는 원하는 정확도 및 속도 성능을 갖춘 3D 포즈 정보 시스템이 필요하다.
일반적인 양태에서, 디바이스, 시스템, 비일시적 컴퓨터 판독가능 매체(컴퓨터 시스템에서 실행될 수 있는 컴퓨터 실행가능 프로그램 코드가 저장되어 있음) 및/또는 방법은 복수의 카메라들을 사용하여 적어도 하나의 이미지를 캡처하는 단계, 적어도 하나의 이미지와 연관된 복수의 얼굴 피처들을 식별하는 단계, 복수의 얼굴 피처들 중 적어도 하나의 얼굴 피처의 위치를 안정화(stabilizing)하는 단계; 적어도 하나의 얼굴 피처의 위치를 3차원(3D) 위치로 변환하는 단계, 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계, 및 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 평면 패널 디스플레이에 3D 이미지를 렌더링하는 단계를 포함하는 방법으로 프로세스를 수행할 수 있다.
구현예들은 다음 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 적어도 하나의 이미지는 두 개 이상의 이미지들을 포함할 수 있으며, 두 개 이상의 이미지들은 동일한 카메라에 의해 순차적으로 캡처되거나 두 개 이상의 카메라들에 의해 동시에 캡처될 수 있다. 복수의 얼굴 피처들을 식별하는 단계는 적어도 하나의 이미지와 연관된 얼굴을 식별하는 단계, 얼굴 상의 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계, 및 위치를 복수의 랜드마크들 각각과 연관시키는 단계를 포함할 수 있다. 복수의 얼굴 피처들을 식별하는 단계는 적어도 하나의 이미지와 연관된 제1 얼굴을 식별하는 단계, 적어도 하나의 이미지와 연관된 제2 얼굴을 식별하는 단계, 제1 얼굴 상의 복수의 얼굴 피처들에 대응하는 제1 복수의 랜드마크를 생성하는 단계, 제2 얼굴 상의 복수의 얼굴 피처들에 대응하는 제2 복수의 랜드마크를 생성하는 단계, 제1 위치를 제1 복수의 랜드마크들 각각과 연관시키는 단계 및 제2 위치를 제2 복수의 랜드마크들 각각과 연관시키는 단계를 포함할 수 있다.
적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는, 적어도 하나의 이미지 중 적어도 2개로부터 얼굴 피처를 선택하는 단계, 얼굴 피처와 연관된 적어도 2개의 랜드마크들을 선택하는 단계, 및 적어도 2개의 랜드마크들의 위치를 평균화하는 단계를 포함할 수 있다. 적어도 하나의 얼굴 피처의 위치는, 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계, 복수의 랜드마크들의 서브세트를 선택하는 단계, 및 복수의 랜드마크들의 서브세트의 각각의 랜드마크의 위치와 연관된 속도에 기초하여 얼굴의 움직임을 결정하는 단계를 포함할 수 있고, 그리고 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는 얼굴의 움직임에 기초한다. 적어도 하나의 얼굴 피처의 위치를 3D 위치로 변환하는 단계는 3개 이상의 복수의 카메라들에 의해 캡처된 이미지들을 사용하여 생성된 위치 데이터에 기초하여 적어도 하나의 얼굴 피처의 위치를 삼각측량하는 단계를 포함할 수 있다.
방법은 적어도 하나의 얼굴 피처의 3D 위치와 연관된 노이즈를 감소시키기 위해 적어도 하나의 얼굴 피처의 3D 위치에 이중 지수 필터(double exponential)를 적용하는 단계를 더 포함할 수 있다. 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계는, 적어도 하나의 얼굴 피처의 3D 위치의 시퀀스에 이중 지수 필터를 적용하는 단계, 및 시간 영(0) 이전의 3D 위치의 이중 지수 필터링된 시퀀스에 기초하여 영(0)보다 큰 시간에서 값을 선택하는 단계를 포함할 수 있다. 방법은 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 오디오를 생성하는 단계를 더 포함할 수 있다.
일반적인 양태에서, 디바이스, 시스템, 비일시적 컴퓨터 판독가능 매체(컴퓨터 시스템에서 실행될 수 있는 컴퓨터 실행가능 프로그램 코드가 저장되어 있음) 및/또는 방법은 복수의 컴퓨터 명령어들을 나타내는 코드 세그먼트들을 포함하는 메모리 및 코드 세그먼트들을 실행하도록 구성된 프로세서를 포함하는 디바이스로 프로세스를 수행할 수 있고, 컴퓨터 명령어들은 복수의 카메라들을 사용하여 적어도 하나의 이미지를 캡처하는 단계, 적어도 하나의 이미지와 연관된 복수의 얼굴 피처들을 식별하는 단계, 복수의 얼굴 피처들 중 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계, 적어도 하나의 얼굴 피처의 위치를 3차원(3D) 위치로 변환하는 단계, 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계 및 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 평면 패널 디스플레이에 3D 이미지를 렌더링하는 단계를 포함한다.
구현예들은 다음 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 적어도 하나의 이미지는 두 개 이상의 이미지들을 포함할 수 있으며, 두 개 이상의 이미지들은 동일한 카메라에 의해 순차적으로 캡처되거나 두 개 이상의 카메라들에 의해 동시에 캡처될 수 있다. 복수의 얼굴 피처들을 식별하는 단계는 적어도 하나의 이미지와 연관된 얼굴을 식별하는 단계, 얼굴 상의 상기 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계, 및 위치를 상기 복수의 랜드마크들 각각과 연관시키는 단계를 포함할 수 있다. 복수의 얼굴 피처들을 식별하는 단계는 적어도 하나의 이미지와 연관된 제1 얼굴을 식별하는 단계, 적어도 하나의 이미지와 연관된 제2 얼굴을 식별하는 단계, 제1 얼굴 상의 복수의 얼굴 피처들에 대응하는 제1 복수의 랜드마크들을 생성하는 단계, 제2 얼굴 상의 복수의 얼굴 피처들에 대응하는 제2 복수의 랜드마크들을 생성하는 단계, 제1 위치를 제1 복수의 랜드마크들 각각과 연관시키는 단계 및 제2 위치를 제2 복수의 랜드마크들 각각과 연관시키는 단계를 포함할 수 있다.
적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는, 적어도 하나의 이미지 중 적어도 2개로부터 얼굴 피처를 선택하는 단계, 얼굴 피처와 연관된 적어도 2개의 랜드마크들을 선택하는 단계 및 적어도 2개의 랜드마크들의 위치를 평균화하는 단계를 포함할 수 있다. 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는, 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계, 복수의 랜드마크들의 서브세트를 선택하는 단계 및 복수의 랜드마크들의 서브세트의 각각의 랜드마크의 위치와 연관된 속도에 기초하여 얼굴의 움직임을 결정하는 단계를 포함할 수 있고, 그리고 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는 얼굴의 움직임에 기초한다. 적어도 하나의 얼굴 피처의 위치를 3D 위치로 변환하는 단계는 3개 이상의 복수의 카메라들에 의해 캡처된 이미지들을 사용하여 생성된 위치 데이터에 기초하여 적어도 하나의 얼굴 피처의 위치를 삼각측량하는 단계를 포함할 수 있다.
컴퓨터 명령어들은 적어도 하나의 얼굴 피처의 3D 위치와 연관된 노이즈를 감소시키기 위해 적어도 하나의 얼굴 피처의 3D 위치에 이중 지수 필터를 적용하는 단계를 더 포함할 수 있다. 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계는, 적어도 하나의 얼굴 피처의 3D 위치의 시퀀스에 이중 지수 필터를 적용하는 단계, 및 시간 영(0) 이전의 3D 위치의 이중 지수 필터링된 시퀀스에 기초하여 영(0)보다 큰 시간에서 값을 선택하는 단계를 포함할 수 있다. 방법은 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 오디오를 생성하는 단계를 더 포함할 수 있다.
예시적인 실시예들은 아래에 제공된 상세한 설명 및 첨부된 도면들로부터 보다 완전히 이해될 것이며, 여기서 유사한 요소들은 유사한 참조 번호들로 표시되며, 이는 단지 예시로서 제공되므로 따라서 예시적인 실시예들을 제한하지 않는다.
도 1은 적어도 하나의 예시적인 구현예에 따라, 디스플레이 디바이스에 콘텐츠를 디스플레이하기 위한 예시적인 3D 콘텐츠 시스템을 나타내는 블록도이다.
도 2는 적어도 하나의 예시적인 구현예에 따라, 디스플레이 디바이스에서 렌더링하기 위한 콘텐츠를 모델링하기 위한 예시적인 시스템의 블록도이다.
도 3은 적어도 하나의 예시적인 실시예에 따라 얼굴 피처들을 추적하고 얼굴 피처들에 기초하여 포지션(들)을 결정하는 시스템의 블록도를 도시한다.
도 4는 적어도 하나의 예시적인 실시예에 따른 얼굴 피처 포지션들을 그림으로 도시한다.
도 5는 적어도 하나의 예시적인 실시예에 따라 얼굴 피처들을 추적하고 얼굴 피처들에 기초하여 포지션을 결정하는 방법의 블록도를 도시한다.
도 6은 적어도 하나의 예시적인 실시예에 따른 컴퓨터 디바이스 및 모바일 컴퓨터 디바이스의 예를 도시한다.
이들 도면들은 특정한 예시적인 실시예들에서 활용되는 방법들, 구조 및/또는 재료들의 일반적인 특성들을 예시하고 아래 제공된 설명을 보충하기 위한 것임을 주목해야 한다. 그러나, 이들 도면들은 축척이 아니며 임의의 주어진 실시예의 정확한 구조적 또는 성능 특성들을 정확하게 반영하지 않을 수 있으며 예시적인 실시예들에 포함된 값들 또는 속성들의 범위를 정의하거나 제한하는 것으로 해석되어서는 안 된다. 예를 들어, 분자, 층, 영역 및/또는 구조적 요소의 상대적인 두께 및 위치는 명확성을 위해 축소되거나 과장될 수 있다. 다양한 도면들에서 유사하거나 동일한 참조 번호들을 사용하는 것은 유사하거나 동일한 요소 또는 피처의 존재를 나타내기 위한 것이다.
웨어러블 디바이스들(예: 헤드 마운트 디스플레이(HMD)들)을 사용하지 않는 증강 현실 및 가상 현실(AR/VR) 시스템들, 예를 들어 고정식 3D 디스플레이를 사용하는 자동 입체/무안경 텔레프레즌스 시스템들은 사용자의 얼굴 피처들(예: 눈과 귀)의 정확한 최근 3D 포즈에 의존할 수 있다. 예를 들어, 이러한 시스템들(예: 3D 텔레프레즌스 시스템들)에서, 정확한 눈(eye) 추적을 사용하여 가상 카메라를 포지셔닝하고 별도의 왼쪽 및 오른쪽 스테레오 이미지들을 왼쪽 눈과 오른쪽 눈에 각각 투사함으로써 디스플레이된 장면을 수정할 수 있다. 이러한 시스템들은 헤드폰들 없이 공간 오디오를 얻기 위해 오디오 출력 및 입력을 정확하게 프로세싱하기 위해 귀(ear) 추적을 사용할 수도 있다. 대신, 이러한 시스템들은 예를 들어 한 쌍의 고정 스피커를 사용할 수 있다.
3D 텔레프레즌스 시스템들에서 얼굴 피처 추적 시스템들은 적어도 빠르고, 지연 시간이 짧고, 노이즈와 지터가 낮고, 마커가 없어야 한다. 예를 들어 빠른 추적 시스템은 120Hz 디스플레이 시스템에서 8.33ms마다 업데이트할 수 있어야 한다. 지연 시간이 짧은 추적 시스템은 스크린의 업데이트된 렌더링이 현재 사용자의 포지션과 일치하도록 사용자 위치를 리포트해야 한다. 그렇지 않으면, 지연 시간이 너무 길면 사용자들이 현기증을 느끼고 심각한 시각적 아티팩트들을 경험할 수 있다. 낮은 노이지 및 지터 추적 시스템은 시각적 불편함을 초래할 수 있는 장면 흔들림을 최소화해야 한다. 마커 없는 추적 시스템은 사용자가 사용자에게 부착된 디바이스들의 불편함 없이(예: 바람직하지 않은 사용자 경험 없이) 텔레프레즌스 시스템에 참여할 수 있도록 해야 한다.
예시적은 구현예들은 웨어러블 디바이스들(예: HMD, 마커들 등)을 사용하지 않고 사용자(예: 3D 텔레프레즌스 시스템의 사용자)의 얼굴 피처들을 정확하고 비용 효율적으로 추적하는 시스템을 포함할 수 있다. 이러한 얼굴 피처 추적 시스템은 적어도 하나의 카메라(예: 흑백 카메라, 적외선 카메라 등)를 사용하여 일정한 간격들로 이미지들을 캡처할 수 있다. 일정한 간격들은 짧을 수 있다(예: 6ms 미만, 8ms 미만, 10ms 미만 등). 이미지들은 얼굴들 및 얼굴 피처들을 찾고 가상 카메라 포지션, 디스플레이 포지션, 오디오 포지션 등을 생성하는 데 사용될 수 있다. 추적 시스템의 장점은 사용자가 얼굴 피처 추적(사용자 경험 향상)을 위해 디바이스들을 착용할 필요가 없고, 추적 시스템이 피처를 신속하게 획득할 수 있으며, 추적 시스템에는 정확한(예: 최소 노이즈) 포지션 정보를 생성하기 위한 소프트웨어가 포함되어 있다는 것이다.
도 1은 본 명세서 전반에 걸쳐 설명된 구현예들에 따라, 입체 디스플레이 디바이스에서 콘텐츠를 캡처하고 디스플레이하기 위한 예시적인 3D 콘텐츠 시스템(100)을 도시하는 블록도이다. 3D 콘텐츠 시스템(100)은 예를 들어, 3D 비디오 컨퍼런스 통신들(예: 3D 텔레프레즌스 세션들)을 수행하기 위해 다수의 사용자들에 의해 사용될 수 있다. 일반적으로, 도 1의 시스템은 비디오 컨퍼런스 동안 사용자들의 비디오 및/또는 이미지들을 캡처하고 여기에 설명된 시스템들 및 기법들을 사용하여 가상 카메라, 디스플레이 및 오디오 포지션들을 생성하는 데 사용될 수 있다. 시스템(100)은 비디오 컨퍼런스를 개선하는 방식으로 비디오 및 오디오 콘텐츠를 투사하는 데 사용될 수 있기 때문에 본 명세서에 기술된 포지션 생성 시스템들 및 기법들의 사용으로부터 이익을 얻을 수 있다. 예를 들어, 비디오를 투사하여 뷰어의 포지션에 기초하여 3D 비디오를 렌더링하고 비디오 컨퍼런스 참가자들의 포지션에 기초하여 오디오를 투사할 수 있다.
도 1에 도시된 바와 같이, 3D 콘텐츠 시스템(100)은 제1 사용자(102)와 제2 사용자(104)에 의해 사용되고 있다. 예를 들어, 사용자들(102 및 104)은 3D 텔레프레즌스 세션에 참여하기 위해 3D 콘텐츠 시스템(100)을 사용하고 있다. 그러한 예에서, 3D 콘텐츠 시스템(100)은 사용자들(102 및 104) 각각이 서로의 매우 현실적이고 시각적으로 일치하는 표현을 볼 수 있게 하여, 사용자가 서로 물리적으로 존재하는 것과 유사한 방식으로 상호작용하는 것을 용이하게 한다.
각 사용자(102, 104)는 대응하는 3D 시스템을 가질 수 있다. 여기서, 사용자(102)는 3D 시스템(106)을 갖고, 사용자(104)는 3D 시스템(108)을 갖는다. 3D 시스템들(106, 108)은 3D 디스플레이를 위한 이미지들 캡처, 이미지 정보 프로세싱 및 제시, 오디오 정보 프로세싱 및 제시를 포함하지만 이에 제한되지 않는 3D 콘텐츠와 관련된 기능을 제공할 수 있다. 3D 시스템(106) 및/또는 3D 시스템(108)은 하나의 유닛으로 통합된 센싱 디바이스들의 집합을 구성할 수 있다. 3D 시스템(106) 및/또는 3D 시스템(108)은 도 3을 참조하여 설명된 일부 또는 모든 구성요소들을 포함할 수 있다.
3D 시스템들(106, 108)은 3D 정보의 캡처, 프로세싱, 전송, 포지셔닝 또는 수신 및/또는 3D 콘텐츠의 프리젠테이션과 관련된 다수의 구성요소들을 포함할 수 있다. 3D 시스템들(106, 108)은 3D 프리젠테이션에 포함될 이미지들에 대한 이미지 콘텐츠를 캡처하기 위한 및/또는 얼굴 및 얼굴 피처들을 캡처하기 위한 하나 이상의 카메라들을 포함할 수 있다. 여기서, 3D 시스템(106)은 카메라들(116, 118)을 포함한다. 예를 들어, 카메라(116) 및/또는 카메라(118)는 필수적으로 3D 시스템(106)의 하우징 내에 배치될 수 있으므로, 각각의 카메라(116 및/또는 118)의 대물렌즈 또는 렌즈들이 하우징의 하나 이상의 개구부를 통해 이미지 콘텐츠를 캡처하도록 한다. 일부 구현예들에서, 카메라(116 및/또는 118)는 (예: 3D 시스템(106)에 대한 유선 및/또는 무선 연결을 갖는) 독립형 디바이스의 형태와 같이 하우징으로부터 분리될 수 있다. 도 1에 도시된 바와 같이, 적어도 하나의 카메라(114, 114' 및/또는 114')는 3D 시스템(106)에 (예: 유선 및/또는 무선 연결로) 통신적으로 결합될 수 있는 독립형 디바이스들로서 하우징으로부터 분리된 것으로 도시되어 있다.
예시적인 구현예에서, 복수의 카메라들을 사용하여 적어도 하나의 이미지를 캡처할 수 있다. 복수의 카메라들은 2개 이상의 이미지들을 캡처하는 데 사용될 수 있다. 예를 들어, 동일한 카메라로 2 개 이상의 이미지들을 순차적으로 캡처할 수 있다(예: 추적을 위해). 2개 이상의 카메라들로 2개 이상의 이미지들을 동시에 캡처할 수 있다(예: 삼각 측량에 사용).
카메라들(114, 114', 114", 116 및 118)은 사용자(예: 사용자(102))의 충분히 대표적인 뷰를 포착하도록 포지셔닝 및/또는 배향될 수 있다. 카메라들(114, 114', 114", 116 및 118)은 일반적으로 사용자(102)를 위한 3D 디스플레이(110)의 뷰를 가리지 않지만, 카메라들(114, 114', 114", 116 및 118)의 배치는 임의로 선택될 수 있다. 예를 들어, 카메라들(116, 118) 중 하나는 사용자(102)의 얼굴 위 어딘가에 포지셔닝될 수 있고 다른 하나는 얼굴 아래 어딘가에 포지셔닝될 수 있다. 카메라들(114, 114' 및/또는 114")은 3D 시스템(106)의 왼쪽, 오른쪽 및/또는 위에 배치될 수 있다. 예를 들어, 카메라들(116, 118) 중 하나는 사용자(102)의 얼굴 오른쪽 어딘가에 포지셔닝될 수 있고 다른 하나는 얼굴 왼쪽 어딘가에 포지셔닝될 수 있다. 3D 시스템(108)은 예를 들어, 카메라들(120, 122, 134, 134' 및/또는 134")을 포함하는 유사한 방식을 포함할 수 있다. 추가 카메라들도 가능하다. 예를 들어, 세 번째 카메라는 디스플레이(110) 근처 또는 뒤에 배치될 수 있다.
3D 콘텐츠 시스템(100)은 하나 이상의 2D 또는 3D 디스플레이들을 포함할 수 있다. 여기서, 3D 시스템(106)을 위한 3D 디스플레이(110)가 제공되고, 3D 시스템(108)을 위한 3D 디스플레이(112)가 제공된다. 3D 디스플레이들(110, 112)은 각각의 뷰어(여기서는 예를 들어, 사용자(102) 또는 사용자(104))에게 자동입체 뷰를 제공하기 위해 다수의 유형의 3D 디스플레이 기술 중 어느 하나를 사용할 수 있다. 일부 구현예들에서, 3D 디스플레이들(110, 112)은 독립형 유닛(예: 자체 지지되거나 벽에 매달려 있음)일 수 있다. 일부 구현예들에서, 3D 디스플레이들(110, 112)은 웨어러블 기술(예: 컨트롤러, 헤드 마운트 디스플레이 등)을 포함하거나 액세스할 수 있다.
일반적으로, 디스플레이들(110, 112)과 같은 3D 디스플레이들은 헤드 마운트 디스플레이(HMD) 디바이스를 사용하지 않고 실제 세계에서 물리적 객체들의 3D 광학 특성들에 근접한 이미지를 제공할 수 있다. 일반적으로, 본 명세서에 기술된 디스플레이들은 평면 패널 디스플레이들, 렌티큘러 렌즈들(예: 마이크로렌즈 어레이들), 및/또는 디스플레이와 연관된 다수의 상이한 뷰잉 영역들로 이미지를 재지향시키기 위한 시차 배리어를 포함한다.
일부 구현예들에서, 디스플레이들(110, 112)은 고해상도 및 무안경 렌티큘러 3차원(3D) 디스플레이를 포함하는 평면 패널 디스플레이일 수 있다. 예를 들어, 디스플레이들(110, 112)은 디스플레이의 마이크로렌즈들에 결합된(예: 본딩된) 유리 스페이서를 갖는 복수의 렌즈들(예: 마이크로렌즈들)을 포함하는 마이크로렌즈들 어레이(미도시)를 포함할 수 있다. 마이크로렌즈들은 선택된 뷰잉 포지션에서 디스플레이 사용자의 왼쪽 눈이 픽셀들의 제1 세트를 볼 수 있는 반면, 사용자의 오른쪽 눈이 픽셀들의 제2 세트를 볼 수 있도록 설계될 수 있다(예: 제2 픽셀 세트가 제1 픽셀 세트와 상호 배타적인 경우).
일부 예시적인 3D 디스플레이들에서, 이러한 디스플레이들에 의해 제공되는 이미지 콘텐츠(예: 사용자들, 객체들 등)의 3D 뷰를 제공하는 단일 위치가 있을 수 있다. 사용자는 단일 위치에 앉아 적절한 시차, 약간의 왜곡 및 현실적인 3D 이미지들을 경험할 수 있다. 사용자가 다른 물리적 위치로 이동(또는 머리 포지션 또는 시선 포지션을 변경)하는 경우, 이미지 콘텐츠(예: 사용자, 사용자가 착용한 객체들 및/또는 다른 객체들)는 현실적이지 않고 2D로 나타나거나 왜곡되기 시작할 수 있다. 따라서, 여기에 설명된 기법들은 현실적인 3D의 생성을 가능하게 하기 위해 사용자 포지션(예: 사용자 눈)을 정확하게 결정하는 것을 가능하게 할 수 있다. 본 명세서에 기술된 시스템들 및 기법들은 디스플레이로부터 투사된 이미지 콘텐츠를 재구성하여 사용자가 이동할 수 있지만 여전히 적절한 시차, 낮은 왜곡률 및 현실적인 3D 이미지를 실시간으로 경험할 수 있도록 할 수 있다. 따라서, 본 명세서에 기술된 시스템들 및 기법들은 사용자가 3D 디스플레이를 보는 동안 발생하는 임의의 사용자 움직임에 관계없이 사용자에게 디스플레이하기 위한 객체인 3D 이미지 콘텐츠를 유지하고 제공하는 이점을 제공한다.
도 1에 도시된 바와 같이, 3D 콘텐츠 시스템(100)은 하나 이상의 네트워크들에 연결될 수 있다. 여기서, 네트워크(132)는 3D 시스템(106) 및 3D 시스템(108)에 연결된다. 네트워크(132)는 단지 두 가지 예를 들자면, 공개적으로 이용 가능한 네트워크(예: 인터넷) 또는 사설 네트워크일 수 있다. 네트워크(132)는 유선, 무선 또는 이 둘의 조합일 수 있다. 네트워크(132)는 하나 이상의 서버들(미도시)을 포함하지만 이에 제한되지 않는 하나 이상의 다른 디바이스들 또는 시스템들을 포함하거나 사용할 수 있다.
3D 시스템들(106, 108)은 얼굴 파인더(finder)/인식 도구들을 포함할 수 있다. 3D 시스템들(106, 108)은 얼굴 피처 추출기 도구들을 포함할 수 있다. 예를 들어, 3D 시스템들(106, 108)은 이미지에서 얼굴들을 식별하고 얼굴 피처들 및 얼굴 피처들의 포지션(또는 x, y, z 위치)을 추출하도록 구성된 기계 학습(ML) 도구(예: 소프트웨어)를 포함할 수 있다. 이미지(들)는 카메라들(114, 114', 114", 116 및/또는 118(3D 시스템(106)용) 및 카메라들(120, 122, 134, 134' 및/또는 134"(3D 시스템(108)용))을 사용하여 캡처될 수 있다.
3D 시스템들(106, 108)은 3D 프리젠테이션에서 사용될 깊이 데이터를 캡처하기 위한 하나 이상의 깊이 센서들을 포함할 수 있다. 이러한 깊이 센서들은 3D 디스플레이에 장면을 정확하게 표현하기 위해 3D 시스템들(106 및/또는 108)에 의해 캡처된 장면들을 특성화하는 데 사용되는 3D 콘텐츠 시스템(100)의 깊이 캡처 구성요소의 일부로 간주될 수 있다. 또한, 시스템은 뷰어의 머리의 포지션과 배향을 추적할 수 있으므로, 뷰어의 현재 뷰포인트에 대응하는 모습으로 3D 프리젠테이션을 렌더링할 수 있다. 여기서, 3D 시스템(106)은 깊이 센서(124)를 포함한다. 유사한 방식으로, 3D 시스템(108)은 깊이 센서(126)를 포함할 수 있다. 다수의 유형들의 깊이 센싱 또는 깊이 캡처를 사용하여 깊이 데이터를 생성할 수 있다.
일부 구현예들에서, 보조 스테레오 깊이 캡처가 수행된다. 예를 들어, 장면은 광들의 점들을 사용하여 조명될 수 있고, 스테레오 매칭은 두 대의 각각의 카메라들 사이에 수행할 수 있다. 이 조명은 선택한 파장 또는 파장 범위의 파동을 사용하여 수행할 수 있다. 예를 들어 적외선(IR) 광이 사용될 수 있다. 일부 구현예들에서, 깊이 센서들은 예를 들어 2D 디바이스들에서 뷰들을 생성할 때 활용되지 않을 수 있다. 깊이 데이터는 깊이 센서(예: 깊이 센서(124))와 장면 내 객체 사이의 거리를 반영하는 장면에 관한 임의의 정보를 포함하거나 기초로 할 수 있다. 깊이 데이터는 장면 내 객체에 대응하는 이미지의 콘텐츠에 대해 객체까지의 거리(또는 깊이)를 반영한다. 예를 들어, 카메라(들)와 깊이 센서 사이의 공간적 관계는 알려질 수 있고, 이미지들에 대한 깊이 데이터를 생성하기 위해 깊이 센서로부터의 신호들과 카메라(들)로부터의 이미지들을 상관시키기 위해 사용될 수 있다.
3D 콘텐츠 시스템(100)에 의해 캡처된 이미지들은 프로세싱된 후 3D 프레젠테이션으로 디스플레이될 수 있다. 도 1의 예에 묘사된 바와 같이, 객체(안경(104"))가 있는 3D 이미지(104')가 3D 디스플레이(110)에 제시된다. 이와 같이, 사용자(102)는 3D 이미지(104') 및 안경(104")을 사용자(102)로부터 멀리 떨어져 있을 수 있는 사용자(104)의 3D 표현으로 인식할 수 있다. 3D 이미지(102')는 3D 디스플레이(112)에 제시된다. 이와 같이, 사용자(104)는 3D 이미지(102')를 사용자(102)의 3D 표현으로 인지할 수 있다.
3D 콘텐츠 시스템(100)은 참가자들(예: 사용자들(102, 104))이 서로 및/또는 다른 사람들과 오디오 통신에 참여하게 할 수 있다. 일부 구현예들에서, 3D 시스템(106)은 스피커 및 마이크로폰(미도시)을 포함한다. 예를 들어, 3D 시스템(108)은 유사하게 스피커 및 마이크로폰을 포함할 수 있다. 이와 같이, 3D 콘텐츠 시스템(100)은 사용자(102 및 104)가 서로 및/또는 다른 사람과의 3D 텔레프레즌스 세션에 참여하게 할 수 있다.
도 2는 본 명세서 전반에 걸쳐 설명된 구현예들에 따라, 3D 디스플레이 디바이스에서 렌더링하기 위한 콘텐츠를 모델링하기 위한 예시적인 시스템(200)의 블록도이다. 시스템(200)은 여기에 설명된 하나 이상의 구현예들로서 기능하거나 그 안에 포함될 수 있고/있거나 여기에 설명된 3D 프로세싱, 모델링 또는 프리젠테이션의 하나 이상의 예시들의 동작(들)을 수행하는 데 사용될 수 있다. 전체 시스템(200) 및/또는 그 개별 구성요소들 중 하나 이상은 여기에 설명된 하나 이상의 예시들에 따라 구현될 수 있다.
시스템(200)은 하나 이상의 3D 시스템들(202)을 포함한다. 도시된 예에서, 3D 시스템들(202A, 202B 내지 202N)이 도시되며, 인덱스 N은 임의의 숫자를 나타낸다. 3D 시스템(202)은 3D 프리젠테이션을 위한 시각 및 오디오 정보의 캡처를 제공하고 프로세싱을 위해 3D 정보를 전달할 수 있다. 이러한 3D 정보에는 장면의 이미지들, 장면에 대한 깊이 데이터 및 장면의 오디오가 포함될 수 있다. 예를 들어, 3D 시스템(202)은 3D 시스템(106) 및 3D 디스플레이(110)(도 1)로서 기능하거나 그 내에 포함될 수 있다.
시스템(200)은 카메라들(204)로 나타나는 바와 같이 다수의 카메라들을 포함할 수 있다. 일반적인 디지털 카메라들, 흑백 카메라들 및/또는 적외선 카메라들에 사용되는 이미지 센서들의 유형들과 같은 모든 유형의 광 센싱 기술을 이미지들의 캡처에 사용할 수 있다. 카메라들(204)은 동일한 유형 또는 상이한 유형들일 수 있다. 카메라 위치들은 예를 들어, 3D 시스템(106)과 같은 3D 시스템 상의(또는 외부에 있는) 임의의 위치 내에 배치될 수 있다.
시스템(202A)은 깊이 센서(206)를 포함한다. 일부 구현예들에서, 깊이 센서(206)는 IR 신호들을 장면으로 전파하고 응답 신호들을 검출하는 방식으로 동작한다. 예를 들어, 깊이 센서(206)는 빔(128A-B 및/또는 130A-B)을 생성 및/또는 검출할 수 있다.
시스템(202A)은 또한 적어도 하나의 마이크로폰(208) 및 스피커(210)를 포함한다. 예를 들어, 이들은 사용자가 착용하는 헤드 마운트 디스플레이에 통합될 수 있다. 일부 구현예들에서, 마이크로폰(208) 및 스피커(210)는 3D 시스템(106)의 일부일 수 있고 헤드 마운트 디스플레이의 일부가 아닐 수 있다.
시스템(202)은 입체 방식으로 3D 이미지들을 제시할 수 있는 3D 디스플레이(212)를 추가로 포함한다. 일부 구현예들에서, 3D 디스플레이(212)는 독립형 디스플레이일 수 있고 일부 다른 구현예들에서 3D 디스플레이(212)는 3D 프리젠테이션을 경험하기 위해 사용자가 착용하도록 구성된 헤드 마운트 디스플레이 유닛에 포함될 수 있다. 일부 구현예들에서, 3D 디스플레이(212)는 시차 배리어 기술을 사용하여 동작한다. 예를 들어, 시차 배리어는 스크린과 뷰어 사이에 배치되는 필수적으로 불투명한 재료(예: 불투명 필름)의 평행한 수직 줄무늬를 포함할 수 있다. 뷰어의 각 눈 사이의 시차 때문에, 스크린의 상이한 부분들(예: 서로 다른 픽셀)은 각각의 왼쪽 눈과 오른쪽 눈에 의해 보일 수 있다. 일부 구현예들에서, 3D 디스플레이(212)는 렌티큘러 렌즈를 사용하여 동작한다. 예를 들어, 렌즈들의 행을 스크린 앞에 번갈아 배치할 수 있으며, 각 행은 스크린에서 보는 뷰어의 왼쪽 눈과 오른쪽 눈을 향해 광을 조준한다.
시스템(202A)은 추적 및 포지션(214) 블록을 포함한다. 추적 및 포지션(214) 블록은 룸에서 사용자의 위치를 추적하도록 구성될 수 있다. 일부 구현예들에서, 추적 및 포지션(214) 블록은 사용자의 눈의 위치를 추적할 수 있다. 일부 구현예들에서, 추적 및 포지션(214) 블럭은 사용자 머리의 위치를 추적할 수 있다. 추적 및 포지션(214) 블록은 시스템(202) 내에서 사용자들, 마이크로폰들, 카메라 등의 포지션을 결정하도록 구성될 수 있다. 일부 구현예들에서, 추적 및 포지션(214) 블록은 사용자의 얼굴 및/또는 얼굴 피처들에 기초하여 가상 포지션들을 생성하도록 구성될 수 있다. 예를 들어, 추적 및 포지션(214) 블록은 사용자의 얼굴 및/또는 얼굴 피처들에 기초하여 가상 카메라의 포지션을 생성하도록 구성될 수 있다. 일부 구현예들에서, 추적 및 포지션(214) 블록은 카메라들(114, 114’, 114”, 116 및/또는 118)(3D 시스템(106)용) 및 카메라들(120, 122, 134, 134’ 및/또는 134”(3D 시스템(108)용))을 사용하여 구현될 수 있다. 추적 및 포지션(214) 블록은 3D 시스템(들)(202) 내에서 본 개시에 설명된 방법들 및 기법들을 구현하도록 구성될 수 있다.
시스템(200)은 데이터 프로세싱, 데이터 모델링, 데이터 조정 및/또는 데이터 전송의 특정 작업들을 수행할 수 있는 서버(216)를 포함할 수 있다. 서버(216) 및/또는 그 구성요소들은 도 6을 참조하여 설명된 일부 또는 모든 구성요소들을 포함할 수 있다.
서버(216)는 하나 이상의 방식들로 3D 정보를 렌더링하는 것을 담당할 수 있는 3D 콘텐츠 생성기(218)를 포함한다. 이것은 (예: 3D 시스템(202A)으로부터) 3D 콘텐츠 수신, 3D 콘텐츠 프로세싱 및/또는 (프로세싱된) 3D 콘텐츠를 다른 참가자에게(예: 다른 3D 시스템들(202)로) 포워딩하는 것을 포함할 수 있다.
3D 콘텐츠 생성기(218)에 의해 수행되는 기능들의 일부 양태들은 쉐이더(shader)(218)에 의한 성능을 위해 구현될 수 있다. 쉐이더(218)는 이미지들의 특정 부분들에 관한 쉐이딩을 적용하고, 쉐이딩이 제공되었거나 제공될 이미지들과 관련된 다른 서비스들을 수행할 책임이 있을 수 있다. 예를 들어, 쉐이더(218)는 3D 시스템(들)(202)에 의해 생성될 수 있는 일부 아티팩트들을 상쇄하거나 숨기는 데 사용될 수 있다.
쉐이딩은 이미지 내 객체, 표면 및/또는 다각형의 컬러를 포함하되 이에 제한되지 않는 이미지 콘텐츠의 모습을 정의하는 하나 이상의 파라미터들을 나타낸다. 일부 구현예들에서, 이미지 콘텐츠 부분(들)이 뷰어에게 보여지는 방식을 변경하기 위해 이미지 콘텐츠의 하나 이상의 부분들에 대해 쉐이딩을 적용하거나 조정할 수 있다. 예를 들어, 이미지 콘텐츠 부분(들)을 더 어둡게, 더 밝게, 투명하게 만들기 위해 쉐이딩을 적용/조정할 수 있다.
3D 콘텐츠 생성기(218)는 깊이 프로세싱 구성요소(220)를 포함할 수 있다. 일부 구현예들에서, 깊이 프로세싱 구성요소(220)는 해당 콘텐츠와 연관된 하나 이상의 깊이 값들에 기초하고 하나 이상의 수신된 입력들(예: 콘텐츠 모델 입력)에 기초하여 이미지 콘텐츠에 쉐이딩(예: 더 어둡게, 더 밝게, 투명하게 등)을 적용할 수 있다.
3D 콘텐츠 생성기(218)는 각도 프로세싱 구성요소(222)를 포함할 수 있다. 일부 구현예들에서, 각도 프로세싱 구성요소(222)는 이미지 콘텐츠를 캡처하는 카메라에 대한 콘텐츠의 배향(예: 각도)에 기초하여 이미지 콘텐츠에 쉐이딩을 적용할 수 있다. 예를 들어, 쉐이딩은 미리 정해진 임계값 이상의 각도로 카메라 각도에서 멀어지는 콘텐츠에 적용될 수 있다. 이는 예를 들면, 각도 프로세싱 구성요소(222)가 표면이 카메라로부터 멀어짐에 따라 밝기가 감소되고 희미해지게 할 수 있다.
3D 콘텐츠 생성기(218)는 렌더러(renderer) 모듈(224)을 포함한다. 렌더러 모듈(224)은 하나 이상의 3D 시스템(들)(202)에 콘텐츠를 렌더링할 수 있다. 렌더러 모듈(224)은 예를 들어, 시스템(202)에 디스플레이될 수 있는 출력/합성 이미지를 렌더링할 수 있다.
도 2에 도시된 바와 같이, 서버(216)는 또한 하나 이상의 방식들로 3D 정보를 모델링할 책임이 있는 3D 콘텐츠 모델러(230)를 포함한다. 이것은 (예: 3D 시스템(202A)으로부터) 3D 콘텐츠 수신, 3D 콘텐츠 프로세싱 및/또는 (프로세싱된) 3D 콘텐츠를 다른 참여자에게(예: 다른 3D 시스템들(202)로) 포워딩하는 것을 포함할 수 있다. 3D 콘텐츠 모델러(230)는 이하에서 더 상세히 설명되는 바와 같이 객체들을 모델링하기 위해 아키텍처(400)를 활용할 수 있다.
포즈(pose)들(232)은 캡처된 콘텐츠(예: 객체들, 장면들 등)와 연관된 포즈를 나타낼 수 있다. 일부 구현예들에서, 포즈들(232)은 시스템(100 및/또는 200)(예: 카메라들(114, 114’, 114”, 116 및/또는 118)(3D 시스템(106)용) 및/또는 카메라들(120, 122, 134, 134’ 및/또는 134”)(3D 시스템(108)용)를 사용하여 구현되는)과 연관된 추적 시스템에 의해 검출 및/또는 그렇지 않으면 결정될 수 있다. 그러한 추적 시스템은 센서들, 카메라들, 검출기들, 및/또는 사용자의 전부 또는 일부의 위치를 추적하기 위한 마커들을 포함할 수 있다. 일부 구현예들에서, 추적 시스템은 룸에서 사용자의 위치를 추적할 수 있다. 일부 구현예들에서, 추적 시스템은 사용자의 눈 위치를 추적할 수 있다. 일부 구현예들에서, 추적 시스템은 사용자의 머리 위치를 추적할 수 있다.
일부 구현예들에서, 추적 시스템은 예를 들어, 적절한 깊이와 시차로 이미지들을 디스플레이하기 위해 디스플레이 디바이스(212)에 대한 사용자의 위치(또는 사용자의 눈 또는 머리의 위치)를 추적할 수 있다. 일부 구현예들에서, 사용자와 연관된 머리 위치가 검출되고, 예를 들어 마이크로렌즈들(미도시)울 통해 디스플레이 디바이스(212)의 사용자에게 이미지들을 동시에 투사하기 위한 방향으로서 사용될 수 있다.
카테고리들(234)은 특정 객체들(236)에 대한 분류를 나타낼 수 있다. 예를 들어, 카테고리(234)는 안경일 수 있고 객체는 파란색 안경, 투명 안경, 원형 안경 등일 수 있다. 모든 카테고리 및 개체는 여기에 설명된 모델들로 나타낼 수 있다. 카테고리(234)는 객체들(236)에 대한 생성 모델을 트레이닝하기 위한 기준으로 사용될 수 있다. 일부 구현예들에서, 카테고리(234)는 상이한 뷰포인트들에서 3D 객체 카테고리를 합성적으로 렌더링하는 데 사용할 수 있는 데이터 세트를 나타낼 수 있으며, 이를 통해 동일한 카테고리의 다수의 객체들에 대한 실측 포즈들, 컬러 공간 이미지들 및 마스크들의 세트에 액세스할 수 있다.
3차원(3D) 프록시 지오메트리들(238)은 객체들의 세트의 (대략적인) 지오메트리 근사치와 각 객체 지오메트리에 매핑된 하나 이상의 객체들의 잠재 텍스처(239)를 모두 나타낸다. 대략적인 지오메트리 및 매핑된 잠재 텍스처(239)는 객체들의 카테고리에서 하나 이상의 객체들의 이미지들을 생성하는 데 사용될 수 있다. 예를 들어, 본 명세서에 기술된 시스템들 및 기법들은 잠재 텍스처(239)를 타겟 뷰포인트에 렌더링하고 디스플레이에 타겟 이미지를 생성하기 위해 신경 렌더링 네트워크(예: 차동 지연 렌더링 신경 네트워크)에 액세스함으로써 3D 텔레프레즌스 디스플레이를 위한 객체를 생성할 수 있다. 그러한 잠재 텍스처(239)를 학습하기 위해, 본 명세서에 기술된 시스템들은 신경 텍스처들의 저차원 잠재 공간 및 공유 지연 신경 렌더링 네트워크를 학습할 수 있다. 잠재 공간은 객체들의 클래스의 모든 인스턴스들을 포함하고 객체들의 인스턴스들의 보간을 허용하여 몇 가지 뷰포인트들에서 객체의 인스턴스의 재구성을 가능하게 할 수 있다.
신경 텍스처들(244)은 이미지 캡처 프로세스의 일부로서 트레이닝되는 학습된 피처 맵들(240)을 나타낸다. 예를 들어, 객체가 캡처되면, 객체에 대한 피처 맵(240) 및 3D 프록시 지오메트리(238)를 사용하여 신경 텍스처(244)가 생성될 수 있다. 동작 중에, 시스템(200)은 특정 객체(또는 장면)에 대한 신경 텍스처(244)를 생성하고 그 객체에 대한 3D 프록시 지오메트리(238)의 상부에 맵으로서 저장할 수 있다. 예를 들어, 신경 텍스처들은 식별된 카테고리의 각 인스턴스와 연관된 잠재 코드 및 포즈와 연관된 뷰에 기초하여 생성될 수 있다.
지오메트릭 근사치들(246)은 객체 지오메트리에 대한 모양 기반 프록시를 나타낼 수 있다. 지오메트릭 근사치들(246)은 메쉬 기반, 모양 기반(예: 삼각형, 마름모형, 정사각형 등), 객체의 자유 형태 버전들일 수 있다.
신경 렌더러(250)는 예를 들어, 신경 네트워크를 활용하여 렌더링하는 객체 및/또는 장면의 중간 표현을 생성할 수 있다. 신경 텍스처들(244)은 신경 렌더러(250)와 함께 동작하는 신경 네트워크(242)과 같은 5레이어 U-Net과 함께 텍스처 맵(예: 피처 맵(240))의 피처들을 공동으로 학습하는 데 사용될 수 있다. 신경 렌더러(250)는 예를 들어, 객체-별 콘볼루션 네트워크를 사용하여 실제 모습(예: 실측 정보)과 확산 재투사 사이의 차이를 모델링함으로써 뷰 의존적 효과들을 통합할 수 있다. 이러한 효과들은 장면 지식을 기반으로 예측하기 어려울 수 있으므로 GAN 기반 손실 함수들을 사용하여 현실적인 출력을 렌더링할 수 있다.
RGB 컬러 채널(252)(예: 컬러 이미지)은 3개의 출력 채널들을 나타낸다. 예를 들어, 3개의 출력 채널들은 컬러 이미지를 나타내는 적색 채널, 녹색 채널 및 청색 채널(예: RGB)을 포함할 수 있다. 일부 구현예들에서, 컬러 채널(252)은 특정 이미지에 대해 렌더링될 컬러들을 나타내는 YUV 맵일 수 있다. 일부 구현예들에서, 컬러 채널(252)은 CIE 맵일 수 있다. 일부 구현예들에서, 컬러 채널(252)은 ITP 맵일 수 있다.
알파(α)(254) 오버레이될 때 특정 픽셀 컬러들이 다른 픽셀들과 병합되는 방식을 객체의 임의의 수의 픽셀에 대해 나타내는 출력 채널(예: 마스크)을 나타낸다. 일부 구현예들에서, 알파(254)는 객체의 투명도 레벨(예: 반투명도, 불투명도 등)를 정의하는 마스크를 나타낸다.
위의 예시적인 구성요소들은 네트워크(260)(도 1의 네트워크(132)와 유사하거나 동일할 수 있음)를 통해 하나 이상의 3D 시스템들(202)과 통신할 수 있는 서버(216)에서 구현되는 것으로 설명된다. 일부 구현예들에서, 3D 콘텐츠 생성기(216) 및/또는 그 구성요소들은 3D 시스템들(202)의 일부 또는 전부에서 대신 또는 추가로 구현될 수 있다. 예를 들어, 전술한 모델링 및/또는 프로세싱은 3D 정보를 하나 이상의 수신 시스템들로 포워딩하기 전에 3D 정보를 발생시키는 시스템에 의해 수행될 수 있다. 다른 예로, 발신 시스템은 이미지들, 모델링 데이터, 깊이 데이터 및/또는 대응하는 정보를 하나 이상의 수신 시스템들로 포워딩할 수 있으며, 수신 시스템은 전술한 프로세싱을 수행할 수 있다. 이러한 접근 방식들을 조합하여 사용할 수 있다.
이와 같이, 시스템(200)은 카메라들(예: 카메라들(204)), 깊이 센서(예: 깊이 센서(206)) 및 메모리에 저장된 명령어들을 실행하는 프로세서를 갖는 3D 콘텐츠 생성기(예: 3D 콘텐츠 생성기(218))를 포함하는 시스템의 예이다. 이러한 명령어들은 프로세서가 3D 정보에 포함된 깊이 데이터를 사용하여(예: 깊이 프로세싱 구성요소(220)를 통해) 3D 정보에 포함된 장면의 이미지들에서 이미지 콘텐츠를 식별하게 할 수 있다. 이미지 콘텐츠는 기준을 만족하는 깊이 값과 연관되는 것으로 식별될 수 있다. 프로세서는 예를 들어, 합성 이미지(256)를 적절하게 묘사하기 위해 3D 콘텐츠 생성기(218)에 제공될 수 있는 3D 콘텐츠 모델러(230)에 의해 생성된 모델을 적용함으로써 수정된 3D 정보를 생성할 수 있다.
합성 이미지(256)는 사용자 머리의 추적된 위치에 적어도 부분적으로 기초하여 디스플레이(예: 디스플레이(212))에 액세스하는 사용자와 연관된 두 눈에 대한 적절한 시차 및 뷰잉 구성을 갖는 특정 객체(236)의 3D 입체 이미지를 표현한다. 합성 이미지(256)의 적어도 일부는 예를 들어, 사용자가 디스플레이를 보는 동안 머리 위치를 이동할 때마다 시스템(200)을 사용하여 3D 콘텐츠 모델러(230)로부터의 출력에 기초하여 결정될 수 있다. 일부 구현예들에서, 합성 이미지(256)는 객체(236) 및 다른 객체들, 사용자들, 또는 객체(236)를 캡처하는 뷰 내의 이미지 콘텐츠를 나타낸다.
일부 구현예들에서, 시스템들(202 및 216)의 프로세서들(미도시)은 그래픽 프로세싱 유닛(GPU)을 포함(또는 이와 통신)할 수 있다. 동작 시, 프로세서들은 메모리, 스토리지, 및 기타 프로세서(예: CPU)를 포함할 수 있다(또는 액세스할 수 있다). 그래픽 및 이미지 생성을 용이하게 하기 위해, 프로세서는 GPU와 통신하여 디스플레이 디바이스(예: 디스플레이 디바이스(212))에 이미지들을 디스플레이할 수 있다. CPU와 GPU는 PCI, AGP 또는 PCI-Express와 같은 고속 버스를 통해 연결될 수 있다. GPU는 HDMI, DVI 또는 디스플레이 포트와 같은 다른 고속 인터페이스를 통해 디스플레이에 연결될 수 있다. 일반적으로, GPU는 이미지 콘텐츠를 픽셀 형태로 렌더링할 수 있다. 디스플레이 디바이스(212)는 GPU로부터 이미지 콘텐츠를 수신할 수 있고 디스플레이 스크린 상에 이미지 콘텐츠를 디스플레이할 수 있다.
도 3은 적어도 하나의 예시적인 실시예에 따라 얼굴 피처들을 추적하고 얼굴 피처들에 기초하여 포지션(들)을 결정하는 시스템의 블록도를 도시한다. 도 3에 도시된 바와 같이, 시스템(300)은 피처 추적기(305) 블록, 3D 피처 삼각측량(325) 블록, 예측을 포함하는 이중 지수 필터(330) 블록, 가상 카메라 포지션(335) 블록, 디스플레이 포지션(340) 블록 및 오디오 포지션(345) 블록을 포함한다. 피처 추적기(305) 블록은 카메라(310) 블록, 2D 얼굴 피처 추출(315) 블록 및 2D 피처 스태빌라이저(stabilizer)(320) 블록을 포함한다. 예시적인 구현예들은 복수의 피처 추적기들(피처 추적기(305-1) 블록, 피처 추적기(305-2) 블록, 피처 추적기(305-3) 블록, 피처 추적기(305-4) 블록, ... 및 피처 추적기(305-n) 블록으로 도시됨)을 포함할 수 있다. 예시적인 구현예들은 적어도 2개의 피처 추적기들(305)을 사용하는 것을 포함할 수 있다. 예를 들어, 구현예들은 4개 미만의 피처 추적기들(305)을 사용하는 시스템들과 비교하여 정확도를 최적화(예: 증가)하고 노이즈를 최적화(예: 감소)하고 캡처 볼륨을 최적화(예: 확장)하기 위해 4개의 피처 추적기들(305)을 사용할 수 있다.
카메라(310)는 초당 120프레임으로 동작하는 흑백 카메라일 수 있다. 2개 이상의 카메라들을 사용할 때, 카메라들(310)은 하드웨어 트리거에 연결되어 카메라들(310)이 동시에 시동하도록 할 수 있다. 결과 이미지 프레임들은 프레임 세트라고 할 수 있으며 프레임 세트의 각 프레임은 동일한 시점에 촬영된다. 카메라(310)는 흑백 카메라와 유사한 동작 특성들을 갖는 적외선 카메라일 수도 있다. 카메라(310)는 흑백 카메라와 적외선 카메라들의 조합일 수 있다. 카메라(310)는 3D 콘텐츠 시스템에서 고정된 카메라(예: 카메라(116, 118, 120, 122))일 수 있다. 카메라(310)는 3D 콘텐츠 시스템(예: 카메라(114, 114’, 114”, 134, 134’, 134”))에 결합된 독립형 카메라일 수 있다. 카메라(310)는 고정형 및 독립형 카메라들의 조합일 수 있다. 복수의 카메라는 복수의 피처 추적기들(305)에서 구현될 수 있다.
2D 얼굴 피처 추출(315)은 카메라(310)를 사용하여 캡처된 이미지에서 얼굴 피처들을 추출하도록 구성될 수 있다. 따라서, 2D 얼굴 피처 추출(315)은 사용자(예: 3D 텔레프레즌스 통신의 참가자)의 얼굴을 식별하고 식별된 얼굴의 얼굴 피처들을 추출하도록 구성될 수 있다. 얼굴 검출기(얼굴 파인더, 얼굴 로케이터 등)는 이미지에서 얼굴들을 식별하도록 구성될 수 있다. 얼굴 검출기는 소프트웨어 애플리케이션에서 함수 호출로 구현될 수 있다. 함수 호출은 얼굴 위치의 직사각형 좌표를 반환할 수 있다. 이미지에 두 명 이상의 사용자가 있는 경우 얼굴 검출기가 단일 얼굴을 분리하도록 구성할 수 있다.
식별된 얼굴로부터 얼굴 피처들을 추출할 수 있다. 얼굴 피처들은 2D ML 알고리즘 또는 모델을 사용하여 추출할 수 있다. 얼굴 피처 추출기는 소프트웨어 애플리케이션에서 함수 호출로 구현될 수 있다. 함수 호출은 얼굴의 얼굴 랜드마크들(또는 키 포인트들)의 위치를 반환할 수 있다. 얼굴 랜드마크들은 눈, 입, 귀 등을 포함할 수 있다. 얼굴 인식 및 얼굴 피처 추출은 얼굴 랜드마크들을 반환하는 단일 함수 호출로 구현될 수 있다.
도 4는 얼굴 피처 포지션들을 그림으로 도시한다. 즉, 도 4는 랜드마크들에 숫자를 사용하는 것을 그림으로 표현한 것이다. 예를 들어 숫자 0과 1은 각각 왼쪽 눈과 오른쪽 눈의 동공이 될 수 있다. 얼굴 피처 추출기는 랜드마크 번호와 픽셀 번호를 포함하는 두 가지 변수들을 출력할 수 있다. 픽셀 번호는 이미지의 해상도(예: 픽셀들의 수)를 기초로 할 수 있다. 예를 들어 이미지의 해상도는 2048x1536(예: 3메가픽셀 카메라)일 수 있다. 그러므로, 이미지는 3,145,728픽셀을 가질 수 있으며 제1 픽셀은 이미지의 왼쪽 상단 모서리에 있고 마지막 픽셀은 이미지의 오른쪽 하단 모서리에 있다.
예시적인 2개의 변수 랜드마크 출력은 (1, 123456)일 수 있으며, 이는 123456번째 픽셀인 우측 눈 동공으로서 랜드마크를 식별할 수 있다. 픽셀 포지션(예: 123456)은 원하는 경우 x-포지션 및 y-포지션에 매핑될 수 있다(예: 일부 계산에 사용). 얼굴 피처 추출기는 2D 좌표계를 사용하여 이미지(예: 2048x1526 이미지)에서 랜드마크 번호, x-포지션 및 y-포지션을 포함하는 트리플을 출력할 수 있다. 예를 들어, 트리플(1, 23, 218)은 x-포지션이 23이고 y-포지션이 218인 오른쪽 눈 동공으로 랜드마크를 식별할 수 있다. 이들은 얼굴 랜드마크의 포지션을 찾기 위한 두 가지 가능한 예일 뿐이다.
적어도 하나의 예시적인 구현예에서, 사용자(예: 3D 텔레프레즌스 통신의 참가자)의 눈은 관심의 랜드마크일 수 있다. 눈은 사용자 머리의 포즈를 나타낼 수 있기 때문에 관심의 랜드마크가 될 수 있다. 사용자가 보고 있는 위치는 관심이 없을 수 있다. 따라서 동공(예: 랜드마크 0 및 랜드마크 1)은 사용자의 머리의 포즈를 나타내는 데 사용할 수 없다. 그러나 사용자의 안와(eye socket)는 사용자 머리의 포즈를 나타내기 위해 사용될 수 있다. 예를 들어, 랜드마크들(402, 414, 406, 410)은 왼쪽 눈의 포지션을 나타낼 수 있고, 랜드마크들(404, 416, 408, 412)은 오른쪽 눈의 포지션을 나타낼 수 있다. 랜드마크(예: 402, 414, 406 및 410)들 각각에는 위치가 있다. 다수의 위치들을 사용하여 평균 위치(예: 눈 중심)를 만들 수 있다. 그러나 랜드마크 위치들의 다른 수학적 조합이 가능하다. 예를 들어, 랜드마크 위치에 가중, 정규, 평균, 보간(예: 중간점 또는 중간점이 아닌 보간)등을 부여할 수 있다.
적어도 하나의 예시적인 구현예에서, 사용자의 귀는 관심의 랜드마크가 될 수 있다. 따라서, 랜드마크(418) 및 랜드마크(420)는 각각 왼쪽 귀 및 오른쪽 귀의 포지션을 나타내는 관심 랜드마크들일 수 있다.
도 3으로 돌아가면, 2D 피처 스태빌라이저(320)는 랜드마크와 연관된 노이즈를 감소시키도록 구성될 수 있다. 예를 들어, 2D 피처를 안정화하기 위해 2D 피처 위치들(예: 랜드마크 위치들)에 필터를 적용할 수 있다. 예시적인 구현예에서, 필터는 눈의 위치(예: 랜드마크들(402, 414, 406, 410) 및 랜드마크들(404, 416, 408, 412))와 연관된 노이즈를 감소시키기 위해 적용될 수 있다. 적어도 하나의 예시적인 구현예에서, 피처 안정화를 위해 최소 두 개의 이미지들이 사용된다.
예시적인 구현예에서, (예: 2D 피처의 위치로서) 눈을 안정화하는 것은 각각의 눈 주위 랜드마크들의 위치를 평균화함으로써 각각의 눈의 중심을 결정하는 것을 포함할 수 있다. 두 개 이상의 랜드마크들과 연관된 노이즈가 상관 관계가 없을 수 있기 때문에 눈 주위의 랜드마크들을 평균화하면 이러한 랜드마크들과 연관된 노이즈를 줄일 수 있다.
얼굴 피처(예: 눈)의 위치 안정화는 얼굴의 움직임에 기초할 수 있다. 얼굴의 움직임(예: 속도)을 사용하여 노이즈를 더 줄일 수 있다. 모든 얼굴 랜드마크들의 세트가 생성될 수 있으며(도 4 참조) 실질적으로 안정적인 얼굴 랜드마크들의 서브세트가 결정된다. 예를 들어, 특히 노이즈가 많은 랜드마크들을 제외할 수 있다. 예를 들어, 귀와 뺨은 높은 수준의 노이즈와 부정확성을 나타낼 수 있다. 따라서, 귀(예: 랜드마크(418) 및 랜드마크(420)) 및 뺨(예: 랜드마크(436) 및 랜드마크(438))과 연관된 랜드마크들은 얼굴 랜드마크들의 실질적으로 안정적인 서브세트를 생성하기 위해 제외될 수 있다. 얼굴의 평균 움직임을 결정하는 것은 얼굴 랜드마크들의 서브세트의 평균 2D 속도를 계산하는 것을 포함할 수 있다. 안와가 얼굴의 나머지 부분에 대해 고정되어 있다는 점을 고려할 때, 얼굴의 평균 속도는 안와의 평균 속도에 가까워야 한다. 따라서 평균화된 눈 중심의 속도와 얼굴 랜드마크 서브세트의 평균 속도가 추가될 수 있다. 평균화된 눈 중심과 얼굴 랜드마크들의 서브세트의 평균 속도는 미리 선택된 가중치 세트와 함께 추가될 수 있다. 예를 들어 얼굴 속도에 90%의 가중치를 부여하고 눈 중심 속도에 10%의 가중치를 부여할 수 있다. 안정화된 눈 피처들은 눈의 원래 위치(예: 랜드마크(402, 414, 406, 410) 및 랜드마크(404, 416, 408, 412)) 및 계산된 평균 속도에 기초할 수 있다.
3D 피처 삼각측량(325)은 랜드마크의 3D 포지션을 획득하도록 구성될 수 있다. 즉, 얼굴 피처의 2D 위치(또는 포지션)는 3차원(3D) 위치(또는 포지션)로 변환될 수 있다. 예시적인 구현예에서, 카메라들(예: 카메라들(114, 114’, 114”, 116, 118)) 및 3D 디스플레이(예: 디스플레이(110, 112))의 위치 및 배향(다른 카메라 및/또는 디스플레이에 대해)이 알려져 있다(예: 3D 텔레프레즌스 시스템을 설정할 때 캘리브레이션의 사용을 통해). 얼굴 피처(예: 랜드마크)를 포함하는 이미지를 캡처하는 데 사용되는 각 카메라에 대한 2D 이미지 공간의 X 및 Y 좌표가 결정될 수 있다. 각 카메라 랜드마크 쌍에 대해 광선을 생성할 수 있다. 예를 들어, 각 카메라에 대한 랜드마크(예: 눈)의 픽셀 위치에서 발생하는 광선을 그릴 수 있다(예: 소프트웨어에서 함수 호출 사용). 4대의 카메라들에 대해, 4개의 광선을 생성할 수 있다. 광선들(예: 4개의 광선들)에 기초하여 랜드마크의 3D 위치를 결정할 수 있다. 예를 들어, 광선이 교차하는 위치(또는 교차에 접근하는 위치)는 랜드마크(예: 왼쪽 눈)의 3D 위치를 나타낼 수 있다.
예측을 포함하는 이중 지수 필터(330)는 3D 랜드마크와 연관된 노이즈를 감소시키도록 구성될 수 있다. 예측을 포함하는 이중 지수 필터(330)는 또한 3D 랜드마크의 미래 포지션을 예측(또는 예측하는 데 사용)하도록 구성될 수 있다. 2D 피처 스태빌라이저(320)를 사용하여 랜드마크 노이즈를 줄였지만, 3D 랜드마크 위치(또는 포지션)와 연관된 일부 잔류 노이즈가 있을 수 있다. 잔류 노이즈는 예를 들어, 환경 컨디션들 또는 사용자의 측면(예: 안경, 수염 등)에 의해 증폭될 수 있다. 예측을 포함하는 이중 지수 필터(330)는 이 잔류 노이즈를 감소시키도록 구성될 수 있다.
예시적인 구현예에서, 대역 변경 필터는 n0에서 n1까지 각 축(x, y 및 z)에 대한 대역을 정의할 수 있으므로, 너비는 n1-n0이다. 새로운 값이 n0보다 작으면, n0을 새로운 값으로, n1을 n0+너비로 설정할 수 있다. 그렇지 않고, 새로운 값이 n1을 초과하면, n1은 새로운 값으로 설정되고 n0은 n1-너비로 설정된다. 새로운 값이 n0과 n1 사이에 있으면, 아무 것도 변경되지 않는다. 리포트된 실제 값은 밴드의 중심((n0+n1)/2)일 수 있다. 대역 변경 필터는 지터를 제거할 수 있다. 그러나, 대역이 넓을수록 신호가 덜 반응할 수 있고, 잠재적인 오류가 더 높을 수 있다. 따라서 밴드는 가능한 한 좁아야 한다.
3차원 텔레프레즌스 시스템에서, 추적 디스플레이 시스템에는 고유한 지연 시간이 있을 수 있다. 지연 시간은 사용자의 새로운 포지션을 캡처하는 광자(photon)들이 머리 추적 카메라들에 의해 수신되는 시간부터 새로 계산된 포지션이 렌더러로 전송되고 궁극적으로 디스플레이의 픽셀이 행별로 변경되는 디스플레이로 전송되는 시간까지일 수 있다. 어떤 경우에는 지연이 약 60밀리초일 수 있다. 따라서 사용자의 움직임을 이용하여 정확한 위치를 예측하여 장면을 렌더링하고 자동 스테레오 디스플레이를 통해 스테레오 이미지를 사용자의 눈에 정확하게 투사할 수 있다. 예측을 포함하는 이중 지수 필터 (330)는 미래를 예측하기 위해(예: 랜드마크의 미래 위치를 예측하기 위해) 사용되는 트렌드(trend) 신호를 포함할 수 있다.
대역 변경 필터의 출력은 추가 노이즈로부터 신호를 더욱 평활화하고 미래의 신호를 예측하는 이중 지수 필터에 대한 입력이 될 수 있다. 이중 지수 필터는 지수 필터의 2회 재귀적 적용일 수 있다. 이중 지수 평활화는 입력 데이터(예: 일련의 데이터)의 트렌드를 설명하기 위한 용어를 사용할 수 있다. 항(term)은 지수 평활화의 결과로 업데이트될 수 있는 기울기 구성요소일 수 있다.
관찰 데이터 시퀀스(예: 3D 랜드마크 위치 또는 포지션)는 시간 t = 0에서 시작하여, x t 로 나타낼 수 있다. 시간 t에 대한 평활화 값은 s t 일 수 있고 시간 t에서의 트렌드 추정치는 b t 일 수 있다. 출력은 F t + m 일 수 있으며 시간 t까지의 데이터에 기초하여 시간 m > 0 에서 값 x t + m 의 추정치는 다음과 같다:
Figure pct00001
지수 평활화(예: 선형 지수 평활화)에 다른 알고리즘들을 사용할 수 있다. 예시적인 구현예에서, 랜드마크(예: 얼굴 피처)의 위치에 대한 현재 값은 x t 일 수 있고 랜드마크의 미래 위치에 대한 값은 F t + m 으로 예측될 수 있다. 즉, 얼굴 피처(예: 랜드마크)의 미래 위치를 예측하는 것은 시간 영(0) 이전의 3D 위치의 이중 지수 필터링된 시퀀스에 기초하여 (예: 시간 t까지의 데이터에 기초하여) 시간 영(0)보다 큰 시간(예: 시간 m > 0)에서 값(예: F t + m )을 선택하는 것을 포함할 수 있다.
가상 카메라 포지션(335), 디스플레이 포지션(340) 및 오디오 포지션(345)은 디스플레이 구동에 사용될 수 있는 바이너리로서, 가상 장면을 표현하기 위한 (예: 왼쪽 눈 장면 및 오른쪽 눈 장면에 대한 포지션을 결정하기 위한) 렌더러에 대한 입력으로서, 그리고 오디오를 투사하기 위해 (예: 왼쪽 귀와 오른쪽 귀 사이의 스테레오 발란스를 결정하기 위해) 사용될 수 있는 바이너리로서, 랜드마크의 위치에 대한 현재 값 및/또는 랜드마크의 미래 위치에 대한 값을 추적 프로세스를 위한 데이터로서 사용할 수 있다.
도 3에 대한 상기 설명은 단일 얼굴의 포지션을 식별하고 결정하기 위한 것이다. 그러나 예시적인 구현예들은 통신에서 단일 참가자의 포지션을 식별하고 결정하는 것으로 제한되지 않는다. 즉, 두 명 이상의 참가자들을 식별하고 위치를 파악할 수 있다. 따라서, 예시적인 구현예들은 3D 디스플레이 및 3D 렌더링 시스템 구동 및/또는 오디오 시스템 구동을 위해 각각의 얼굴의 눈, 귀 및/또는 입과 함께 둘 이상의 얼굴의 포지션을 식별 및 결정하는 것을 포함할 수 있다.
3D 렌더링은 3D 이미지 렌더링 시스템을 사용하여 원하는 뷰의 포인트(POV)(예: 얼굴의 위치로 결정됨)에서 3D 장면을 렌더링하는 것을 포함할 수 있다. 예를 들어, 본 명세서에 기술된 머리 추적 기법들은 디스플레이를 보고 있는 각 사용자의 2개의 POV(왼쪽 및 오른쪽 눈에 대해 하나씩)들을 결정하는 데 사용될 수 있다. 그런 다음 이러한 뷰포인트들은 장면을 렌더링하기 위해 3D 렌더링 시스템에 대한 입력이 될 수 있다. 또한 자동 스테레오 디스플레이들은 각 사용자의 왼쪽 눈과 오른쪽 눈을 위한 이미지들을 가져와 개별 스크린 픽셀들에 매핑해야 할 수 있다. LCD 패널(예: 렌티큘러 패널 아래)에 렌더링된 결과 이미지는 많은 이미지들이 함께 인터리브된 것처럼 나타날 수 있다. 매핑은 렌즈들의 광학적 특성들(예: 픽셀이 보이는 공간에서 광선에 매핑되는 방식)에 의해 결정될 수 있다. 자동 스테레오 디스플레이는 뷰어의 왼쪽 및 오른쪽 눈에 별도의 이미지를 제공할 수 있는 임의의 자동 스테레오 디스플레이를 포함할 수 있다. 이러한 유형의 디스플레이 중 하나는 LCD 패널 앞에 렌티큘라 렌즈 어레이를 작은 거리로 오프셋하여 배치함으로서 얻을 수 있다.
도 5는 적어도 하나의 예시적인 실시예에 따른 방법의 블록도를 예시한다. 도 5와 관련하여 설명된 단계들은 장치와 연관된 메모리(예: 도 1 및 2에 도시된 바와 같이)에 저장되고 장치와 연관된 적어도 하나의 프로세서(예: 적어도 하나의 프로세서)에 의해 실행되는 소프트웨어 코드의 실행으로 인해 수행될 수 있다. 하지만, 특수 목적 프로세서로 구현된 시스템과 같은 대안적인 실시예들이 고려된다. 아래 설명된 단계들은 프로세서에 의해 실행되는 것으로 설명되지만, 단계들이 반드시 동일한 프로세서에 의해 실행되는 것은 아니다. 즉, 적어도 하나의 프로세서는 도 5와 관련하여 아래에 기술된 단계들을 실행할 수 있다.
도 5는 적어도 하나의 예시적인 실시예에 따라 얼굴 피처들을 추적하고 얼굴 피처들에 기초하여 포지션(들)을 결정하는 방법의 블록도를 도시한다. 얼굴 피처들을 추적하고 얼굴 피처들에 기초하여 포지션(들)을 결정하는 방법은 3D 텔레프레즌스 통신을 수행하는 동안(예: 3D 텔레프레즌스 시스템에서) 반복적으로 트리거될 수 있다. 도 5에 도시된 바와 같이, 단계(S505)에서 2차원(2D) 이미지(들)가 캡처된다. 예를 들어, 3차원 텔레프레즌스 시스템에서 복수의 카메라들을 사용할 수 있다. 도 1을 참조하면, 이미지(들)는 카메라들(114, 114’, 114”, 116 및/또는 118(3D 시스템(106)용) 및 카메라들(120, 122, 134, 134’ 및/또는 134”(3D 시스템(108)용))을 사용하여 캡처될 수 있다.
단계(S510)에서 얼굴(들)이 검출된다. 예를 들어, 캡처된 이미지들은 얼굴 검출 알고리즘에 대한 입력으로 사용될 수 있다. 이미지에서 얼굴들을 식별하도록 얼굴 검출기(얼굴 파인더, 얼굴 로케이터 등) 알고리즘을 구성할 수 있다. 얼굴 검출기 알고리즘은 소프트웨어 애플리케이션에서 함수 호출로 구현될 수 있다. 함수 호출은 얼굴 위치의 직사각형 좌표를 반환할 수 있다. 얼굴 검출기 알고리즘은 기계 학습 알고리즘 또는 모델일 수 있다. 얼굴 검출기 알고리즘은 이미지에 둘 이상의 사용자가 있는 경우 단일 얼굴을 분리하도록 구성할 수 있다. 얼굴은 3D 텔레프레즌스 시스템을 사용하여 통신 참가자와 연결할 수 있다.
단계(S515)에서 얼굴 피처들이 식별된다. 예를 들어 검출된 얼굴(들)과 연관된 피처들을 식별할 수 있다. 얼굴 피처들은 2D ML 알고리즘 또는 모델을 사용하여 추출될 수 있다. 얼굴 피처 추출기는 소프트웨어 애플리케이션에서 함수 호출로 구현될 수 있다. 함수 호출은 얼굴의 얼굴 랜드마크들(또는 키 포인트들)의 위치를 반환할 수 있다. 얼굴 랜드마크들은 눈, 입, 귀 등을 포함할 수 있다. 얼굴 인식 및 얼굴 피처 추출은 얼굴 랜드마크들을 반환하는 단일 함수 호출로 구현될 수 있다. 얼굴 피처들을 식별하는 것은 도 4와 관련하여 위에서 더 상세히 설명된다.
단계(S520)에서 얼굴 피처들이 안정화된다. 예를 들어 얼굴 피처들을 안정화하면 얼굴 피처를 나타내는 랜드마크와 연관된 노이즈를 줄일 수 있다. 예를 들어, 2D 피처를 안정화하기 위해 2D 피처 위치들(예: 랜드마크 위치들)에 필터를 적용할 수 있다. 예시적인 구현예에서, 필터는 눈의 위치(예: 랜드마크들(402, 414, 406, 410) 및 랜드마크들(404, 416, 408, 412))과 연관된 노이즈를 감소시키기 위해 적용될 수 있다. 적어도 하나의 예시적인 구현예에서, 피처 안정화를 위해 적어도 2개의 이미지들이 사용된다.
예시적인 구현예에서, (예를 들어, 2D 피처로서) 눈을 안정화하는 것은 각각의 눈 주위의 랜드마크들을 평균화함으로써 각각의 눈의 중심을 결정하는 것을 포함할 수 있다. 두 개 이상의 랜드마크들과 연관된 노이즈가 상관 관계가 없을 수 있기 때문에 눈 주위의 랜드마크들을 평균화하면 이러한 랜드마크들과 연관된 노이즈를 줄일 수 있다.
얼굴의 움직임(예: 속도)은 노이즈를 더 줄이기 위해 사용될 수 있다. 얼굴의 움직임을 결정하는 것은 얼굴 랜드마크들의 서브세트의 평균 2D 속도를 계산하는 것을 포함할 수 있다. 안와가 얼굴의 나머지 부분에 대해 고정되어 있다는 점을 고려할 때, 얼굴의 움직임은 안와의 움직임에 가까워야 한다. 따라서 평균화된 눈 중심의 속도와 얼굴 랜드마크들의 서브세트의 평균 속도가 추가될 수 있다. 평균화된 눈 중심과 얼굴 랜드마크들의 서브세트의 평균 속도는 미리 선택된 가중치들의 세트와 함께 추가될 수 있다. 예를 들어 얼굴 속도에 90%의 가중치를 부여하고 눈 중심 속도에 10%의 가중치를 부여할 수 있다. 안정화된 눈 피처들은 눈의 원래 위치(예: 랜드마크들(402, 414, 406, 410) 및 랜드마크들(404, 416, 408, 412)) 및 계산된 평균 속도를 기초로 할 수 있다.
단계(S525)에서 2D 피처들은 3D 피처들로 변환된다. 예를 들어, 2D 얼굴 피처 위치들은 삼각측량 기법을 사용하여 3D 얼굴 피처 위치들로 변환될 수 있다. 예시적인 구현예에서, 카메라(예: 카메라들(114, 114', 114', 116, 118)) 및 3D 디스플레이(예: 디스플레이(110, 112))의 위치 및 배향(다른 카메라 및/또는 디스플레이와 관련)이 알려져 있다(예: 3D 텔레프레즌스 시스템을 설정할 때 보정 사용). 얼굴 피처(예: 랜드마크)를 포함하는 이미지를 캡처하는 데 사용되는 각 카메라에 대한 2D 이미지 공간의 X 및 Y 좌표가 결정될 수 있다. 각 카메라 랜드마크 쌍에 대해 광선을 생성할 수 있다. 예를 들어, 각 카메라에 대한 랜드마크(예: 눈)의 픽셀 위치에서 발생하는 광선을 그릴 수 있다(예: 소프트웨어에서 함수 호출 사용). 4대의 카메라들에 대해 4개의 광선들이 생성될 수 있다. 광선들(예: 4개의 광선)에 기초하여 랜드마크의 3D 위치를 결정할 수 있다. 예를 들어 광선들이 교차하는 위치(또는 교차에 접근하는 위치)는 랜드마크(예: 왼쪽 눈)의 3D 위치를 나타낼 수 있다.
단계(S530)에서 3D 피처들이 필터링된다. 예를 들어, 위에서 더 자세히 설명한 바와 같이 이중 지수 필터를 사용하여 3D 랜드마크와 연관된 노이즈를 줄일 수 있다. 예측을 포함하는 이중 지수 필터(330)는 또한 3D 랜드마크의 미래 포지션을 예측(또는 예측하는 데 사용)하도록 구성될 수 있다. 2D 특징 스태빌라이저(320)를 사용하여 랜드마크 노이즈를 줄였지만, 3D 랜드마크 위치(또는 포지션)와 연관된 일부 잔류 노이즈가 있을 수 있다. 잔류 노이즈는 예를 들어 환경 컨디션들 또는 사용자의 측면(예: 안경, 수염 등)에 의해 증폭될 수 있다. 예측을 포함하는 이중 지수 필터(330)는 이 잔류 노이즈를 줄이고 3D 랜드마크의 미래 위치를 예측하도록 구성될 수 있다.
카메라 포지션, 디스플레이 포지션 및 오디오 포지션은 디스플레이 구동에 사용될 수 있는 바이너리로서, 가상 장면을 표현하기 위한 (예: 왼쪽 눈 장면 및 오른쪽 눈 장면에 대한 포지션을 결정하기 위한) 렌더러에 대한 입력으로서, 그리고 오디오를 투사하기 위해 (예: 왼쪽 귀와 오른쪽 귀 사이의 스테레오 발란스를 결정하기 위해) 사용될 수 있는 바이너리로서, 랜드마크의 위치에 대한 현재 값 및/또는 랜드마크의 미래 위치에 대한 값을 추적 프로세스를 위한 데이터로서 사용할 수 있다.
따라서, 단계(S535)에서 눈과 연관된 랜드마크의 위치에 기초하여 추적 프로세스를 사용하여 가상 카메라 포지션을 결정한다. 추적 프로세스는 예측된 눈의 포지션을 기초할 수 있다. 단계(S540)에서는 눈과 연관된 랜드마크의 위치에 기초하여 추적 프로세스를 사용하여 디스플레이 포지션이 결정된다. 추적 프로세스는 예측된 눈의 포지션에 기초할 수 있다. 단계(S545)에서 귀와 연관된 랜드마크의 위치에 기초하여 추적 프로세스를 사용하여 오디오 위치가 결정된다. 추적 프로세스는 예측된 귀의 포지션에 기초할 수 있다. 랜드마크 위치는 이중 지수 필터링되어 미래 랜드마크 포지션을 예측하는 데 사용되는 3D 랜드마크 포지션일 수 있다.
일반적인 양태에서, 디바이스, 시스템, 비일시적 컴퓨터 판독가능 매체(컴퓨터 시스템에서 실행될 수 있는 컴퓨터 실행가능 프로그램 코드가 저장되어 있음) 및/또는 방법은 복수의 카메라들을 사용하여 적어도 하나의 이미지를 캡처하는 단계, 적어도 하나의 이미지와 연관된 복수의 얼굴 피처들을 식별하는 단계, 복수의 얼굴 피처들 중 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계, 적어도 하나의 얼굴 피처의 위치를 3차원(3D) 위치로 변환하는 단계, 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계; 및 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 평면 패널 디스플레이에 3D 이미지를 렌더링하는 단계를 포함하는 방법으로 프로세스를 수행할 수 있다.
구현예들은 다음 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 적어도 하나의 이미지는 두 개 이상의 이미지들을 포함할 수 있으며, 두 개 이상의 이미지들은 동일한 카메라에 의해 순차적으로 캡처되거나 두 개 이상의 카메라들에 의해 동시에 캡처될 수 있다. 복수의 얼굴 피처들을 식별하는 단계는 적어도 하나의 이미지와 연관된 얼굴을 식별하는 단계, 얼굴 상의 상기 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계, 및 위치를 상기 복수의 랜드마크들 각각과 연관시키는 단계를 포함할 수 있다. 복수의 얼굴 피처들을 식별하는 단계는 적어도 하나의 이미지와 연관된 제1 얼굴을 식별하는 단계, 적어도 하나의 이미지와 연관된 제2 얼굴을 식별하는 단계, 제1 얼굴 상의 복수의 얼굴 피처들에 대응하는 제1 복수의 랜드마크들을 생성하는 단계, 제2 얼굴 상의 복수의 얼굴 피처들에 대응하는 제2 복수의 랜드마크들을 생성하는 단계, 제1 위치를 제1 복수의 랜드마크들 각각과 연관시키는 단계 및 제2 위치를 제2 복수의 랜드마크들 각각과 연관시키는 단계를 포함할 수 있다.
적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는, 적어도 하나의 이미지 중 적어도 2개로부터 얼굴 피처를 선택하는 단계, 얼굴 피처와 연관된 적어도 2개의 랜드마크들을 선택하는 단계, 및 적어도 2개의 랜드마크들의 위치를 평균화하는 단계를 포함할 수 있다. 적어도 하나의 얼굴 피처의 위치는, 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계, 복수의 랜드마크들의 서브세트를 선택하는 단계, 및 복수의 랜드마크들의 서브세트의 각각의 랜드마크의 위치와 연관된 속도에 기초하여 얼굴의 움직임을 결정하는 단계를 포함할 수 있고, 그리고 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는 얼굴의 움직임에 기초한다. 적어도 하나의 얼굴 피처의 위치를 3D 위치로 변환하는 단계는 3개 이상의 복수의 카메라들에 의해 캡처된 이미지들을 사용하여 생성된 위치 데이터에 기초하여 적어도 하나의 얼굴 피처의 위치를 삼각측량하는 단계를 포함할 수 있다.
방법은 적어도 하나의 얼굴 피처의 3D 위치와 연관된 노이즈를 감소시키기 위해 적어도 하나의 얼굴 피처의 3D 위치에 이중 지수 필터를 적용하는 단계를 더 포함할 수 있다. 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계는, 적어도 하나의 얼굴 피처의 3D 위치의 시퀀스에 이중 지수 필터를 적용하는 단계, 및 시간 영(0) 이전의 3D 위치의 이중 지수 필터링된 시퀀스에 기초하여 영(0)보다 큰 시간에서 값을 선택하는 단계를 포함할 수 있다. 방법은 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 오디오를 생성하는 단계를 더 포함할 수 있다.
일반적인 양태에서, 디바이스, 시스템, 비일시적 컴퓨터 판독가능 매체(컴퓨터 시스템에서 실행될 수 있는 컴퓨터 실행가능 프로그램 코드가 저장되어 있음) 및/또는 방법은 복수의 컴퓨터 명령어들을 나타내는 코드 세그먼트들을 포함하는 메모리; 및 코드 세그먼트들을 실행하도록 구성된 프로세서를 포함하는 디바이스로 프로세스를 수행할 수 있고, 컴퓨터 명령어들은 복수의 카메라들을 사용하여 적어도 하나의 이미지를 캡처하는 단계, 적어도 하나의 이미지와 연관된 복수의 얼굴 피처들을 식별하는 단계, 복수의 얼굴 피처들 중 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계, 적어도 하나의 얼굴 피처의 위치를 3차원(3D) 위치로 변환하는 단계, 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계; 및 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 평면 패널 디스플레이에 3D 이미지를 렌더링하는 단계를 포함한다.
구현예들은 다음 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 적어도 하나의 이미지는 두 개 이상의 이미지들을 포함할 수 있으며, 두 개 이상의 이미지들은 동일한 카메라에 의해 순차적으로 캡처되거나 두 개 이상의 카메라들에 의해 동시에 캡처될 수 있다. 복수의 얼굴 피처들을 식별하는 단계는 적어도 하나의 이미지와 연관된 얼굴을 식별하는 단계, 얼굴 상의 상기 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계, 및 위치를 상기 복수의 랜드마크들 각각과 연관시키는 단계를 포함할 수 있다. 복수의 얼굴 피처들을 식별하는 단계는 적어도 하나의 이미지와 연관된 제1 얼굴을 식별하는 단계, 적어도 하나의 이미지와 연관된 제2 얼굴을 식별하는 단계, 제1 얼굴 상의 복수의 얼굴 피처들에 대응하는 제1 복수의 랜드마크들을 생성하는 단계, 제2 얼굴 상의 복수의 얼굴 피처들에 대응하는 제2 복수의 랜드마크들을 생성하는 단계, 제1 위치를 제1 복수의 랜드마크들 각각과 연관시키는 단계 및 제2 위치를 제2 복수의 랜드마크들 각각과 연관시키는 단계를 포함할 수 있다.
적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는, 적어도 하나의 이미지 중 적어도 2개로부터 얼굴 피처를 선택하는 단계, 얼굴 피처와 연관된 적어도 2개의 랜드마크들을 선택하는 단계 및 적어도 2개의 랜드마크들의 위치를 평균화하는 단계를 포함할 수 있다. 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는, 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계, 복수의 랜드마크들의 서브세트를 선택하는 단계 및 복수의 랜드마크들의 서브세트의 각각의 랜드마크의 위치와 연관된 속도에 기초하여 얼굴의 움직임을 결정하는 단계를 포함할 수 있고, 그리고 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는 얼굴의 움직임에 기초한다. 적어도 하나의 얼굴 피처의 위치를 3차원3D 위치로 변환하는 단계는 3개 이상의 복수의 카메라들에 의해 캡처된 이미지들을 사용하여 생성된 위치 데이터에 기초하여 적어도 하나의 얼굴 피처의 위치를 삼각측량하는 단계를 포함할 수 있다.
컴퓨터 명령어들은 적어도 하나의 얼굴 피처의 3D 위치와 연관된 노이즈를 감소시키기 위해 적어도 하나의 얼굴 피처의 3D 위치에 이중 지수 필터를 적용하는 단계를 더 포함할 수 있다. 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계는, 적어도 하나의 얼굴 피처의 3D 위치의 시퀀스에 이중 지수 필터를 적용하는 단계, 및 시간 영(0) 이전의 3D 위치의 이중 지수 필터링된 시퀀스에 기초하여 영(0)보다 큰 시간에서 값을 선택하는 단계를 포함할 수 있다. 방법은 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 오디오를 생성하는 단계를 더 포함할 수 있다.
도 6은 여기에 설명된 기법들과 함께 사용될 수 있는 컴퓨터 디바이스(600) 및 모바일 컴퓨터 디바이스(650)의 예를 도시한다. 컴퓨팅 디바이스(600)는 랩탑, 데스크탑, 워크스테이션, 개인 디지털 어시스턴트, 서버, 블레이드 서버, 메인프레임 및 기타 적절한 컴퓨터들과 같은 다양한 형태의 디지털 컴퓨터를 나타내도록 고안된다. 컴퓨팅 디바이스(650)는 개인 디지털 어시스턴트, 셀룰러 전화, 스마트폰 및 기타 유사한 컴퓨팅 디바이스들과 같은 다양한 형태의 모바일 디바이스들을 나타내도록 고안된다. 여기에 표시된 구성요소, 연결 및 관계, 기능은 예시일 뿐이며 이 문서에서 설명 및/또는 청구된 발명의 구현을 제한하지 않는다.
컴퓨팅 디바이스(600)는 프로세서(602), 메모리(604), 스토리지 디바이스(606), 메모리(604) 및 고속 확장 포트(610)에 연결되는 고속 인터페이스(608), 및 저속 버스(614) 및 스토리지 디바이스 (606)에 연결되는 저속 인터페이스(612)를 포함한다. 구성요소들(602, 604, 606, 608, 610 및 612) 각각은 다양한 버스를 사용하여 상호 연결되며, 공통 마더보드 또는 적절한 다른 방식들로 장착될 수 있다. 프로세서(602)는 고속 인터페이스(608)에 결합된 디스플레이(616)와 같은 외부 입력/출력 디바이스에 GUI에 대한 그래픽 정보를 디스플레이하기 위해 메모리(604) 또는 스토리지 디바이스(606)에 저장된 명령어들을 포함하여 컴퓨팅 디바이스(600) 내에서 실행하기 위한 명령어들을 프로세싱할 수 있다. 다른 구현예들에서, 다중 프로세서 및/또는 다중 버스는 다중 메모리 및 메모리 유형과 함께 적절하게 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(600)이 연결될 수 있으며, 각각의 디바이스는 필요한 동작들(예: 서버 뱅크, 블레이드 서버 그룹 또는 다중 프로세서 시스템)의 일부를 제공한다.
메모리(604)는 컴퓨팅 디바이스(600) 내에 정보를 저장한다. 일 구현예에서, 메모리(604)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현예에서, 메모리(604)는 비휘발성 메모리 유닛 또는 유닛들이다. 메모리(604)는 또한 자기 또는 광학 디스크와 같은 다른 형태의 컴퓨터 판독가능 매체일 수 있다.
스토리지 디바이스(606)는 컴퓨팅 디바이스(600)에 대용량 스토리지를 제공할 수 있다. 일 구현예에서, 스토리지 디바이스(606)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 기타 유사한 솔리드 스테이트 메모리 디바이스, 또는 스토리지 영역 네트워크 또는 기타 구성의 디바이스들을 포함하는 디바이스들의 어레이와 같은 컴퓨터 판독가능 매체일 수 있거나 이를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에 가시적으로 구현될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 위에서 설명한 것과 같은 하나 이상의 방법을 수행하는 명령을어들을 포함할 수 있다. 정보 캐리어는 메모리(604), 스토리지 디바이스(606) 또는 프로세서(602)의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이다.
고속 컨트롤러(608)는 컴퓨팅 디바이스(600)에 대한 대역폭 집약적 동작들을 관리하는 반면, 저속 컨트롤러(612)는 더 낮은 대역폭 집약적 동작들을 관리한다. 이러한 기능의 할당은 단지 예시일 뿐이다. 일 구현예에서, 고속 컨트롤러(608)는 메모리(604), 디스플레이(616)(예: 그래픽 프로세서 또는 가속기를 통해) 및 다양한 확장 카드(미도시)를 수용할 수 있는 고속 확장 포트(610)에 결합된다. 구현예에서, 저속 컨트롤러(612)는 스토리지 디바이스(606) 및 저속 확장 포트(614)에 결합된다. 다양한 통신 포트들(예: USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 디바이스, 스캐너와 같은 하나 이상의 입력/출력 디바이스 또는 예를 들어 네트워크 어댑터를 통해 스위치 또는 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(600)는 도면에 도시된 바와 같이 다양한 형태로 구현될 수 있다. 예를 들어, 표준 서버(620)로 구현되거나 이러한 서버 그룹에서 여러 번 구현될 수 있다. 랙 서버 시스템(624)의 일부로 구현될 수도 있다. 또한, 랩탑 컴퓨터(622)와 같은 개인용 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(600)로부터의 구성요소들은 디바이스(650)와 같은 모바일 디바이스(미도시)의 다른 구성요소들과 결합될 수 있다. 이러한 디바이스들 각각은 하나 이상의 컴퓨팅 디바이스(600, 650)를 포함할 수 있고, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(600, 650)로 구성될 수 있다.
컴퓨팅 디바이스(650)는 다른 구성요소들 중에서 프로세서(652), 메모리(664), 디스플레이(654)와 같은 입력/출력 디바이스, 통신 인터페이스(666) 및 트랜시버(668)를 포함한다. 디바이스(650)에는 추가 스토리지를 제공하기 위해 마이크로드라이브 또는 기타 디바이스와 같은 스토리지 디바이스가 제공될 수도 있다. 구성요소들(650, 652, 664, 654, 666 및 668) 각각은 다양한 버스들을 사용하여 상호 연결되며, 일부 구성요소들은 공통 마더보드 또는 적절한 다른 방식으로 장착될 수 있다.
프로세서(652)는 메모리(664)에 저장된 명령어들을 포함하여 컴퓨팅 디바이스(650) 내의 명령어들을 실행할 수 있다. 프로세서는 별도의 다중 아날로그 및 디지털 프로세서를 포함하는 칩 세트로 구현될 수 있다. 프로세서는 예를 들어 사용자 인터페이스의 제어, 디바이스(650)에 의해 실행되는 애플리케이션들 및 디바이스(650)에 의한 무선 통신과 같은 디바이스(650)의 다른 구성요소들의 조정을 제공할 수 있다.
프로세서(652)는 제어 인터페이스(658) 및 디스플레이(654)에 연결된 디스플레이 인터페이스(656)를 통해 사용자와 통신할 수 있다. 디스플레이(654)는 예를 들어 TFT LCD(박막-트랜지스터 액정 디스플레이) 또는 OLED(유기 발광 다이오드) 디스플레이 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(656)는 디스플레이(654)를 구동하여 그래픽 및 기타 정보를 사용자에게 제공하기 위한 적절한 회로를 포함할 수 있다. 제어 인터페이스(658)는 사용자로부터 명령들을 수신하고 프로세서(652)에 제출하기 위해 명령들을 변환할 수 있다. 또한, 외부 인터페이스(662)는 프로세서(652)와 통신하도록 제공되어 다른 디바이스들과 디바이스(650)의 근거리 통신을 가능하게 할 수 있다. 외부 인터페이스(662)는 예를 들어 일부 구현에서는 유선 통신을 위해, 또는 다른 구현에서는 무선 통신을 위해 제공할 수 있고, 다수의 인터페이스들이 또한 사용될 수 있다.
메모리(664)는 컴퓨팅 디바이스(650) 내에 정보를 저장한다. 메모리(664)는 컴퓨터 판독가능 매체 또는 미디어, 휘발성 메모리 유닛 또는 유닛들 또는 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로 구현될 수 있다. 확장 메모리(674)는 또한 제공될 수 있고 예를 들어 SIMM(단일 인라인 메모리 모듈) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(672)를 통해 디바이스(650)에 연결될 수 있다. 이러한 확장 메모리(674)는 디바이스(650)에 추가 저장 공간을 제공하거나 디바이스(650)에 대한 애플리케이션들 또는 기타 정보를 저장할 수도 있다. 구체적으로, 확장 메모리(674)는 위에서 설명한 프로세스를 수행하거나 보완하기 위한 명령을 포함할 수 있으며 보안 정보도 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(674)는 디바이스(650)를 위한 보안 모듈로서 제공될 수 있고 디바이스(650)의 안전한 사용을 허용하는 명령어들로 프로그램될 수 있다. 또한 보안 애플리케이션은 SIMM 카드를 통해 해킹 불가능한 방식으로 SIMM 카드에 식별 정보를 배치하는 것과 같은 추가 정보와 함께 제공될 수 있다.
메모리는 예를 들어 아래에서 논의되는 바와 같이 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품은 정보 캐리어에 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때 위에서 설명한 것과 같은 하나 이상의 방법을 수행하는 명령어들을 포함한다. 정보 캐리어는 메모리(664), 확장 메모리(674) 또는 프로세서(652)의 메모리와 같은 컴퓨터 또는 기계 판독가능 매체이며, 예를 들어 트랜시버(668) 또는 외부 인터페이스(662)를 통해 수신될 수 있다.
디바이스(650)는 필요한 경우 디지털 시그널 프로세서 회로를 포함할 수 있는 통신 인터페이스(666)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(666)는 특히 GSM 보이스 콜, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 모드 또는 프로토콜 하에서 통신을 제공할 수 있다. 이러한 통신은 예를 들어 무선 주파수 송수신기(668)를 통해 발생할 수 있다. 또한, 블루투스, Wi-Fi 또는 기타 트랜시버(미도시)를 사용하는 것과 같은 근거리 통신이 발생할 수 있다. 또한, GPS(글로벌 포지셔닝 시스템) 수신기 모듈(670)은 디바이스(650)에서 실행되는 애플리케이션들에 의해 적절하게 사용될 수 있는 추가적인 내비게이션 및 위치 관련 무선 데이터를 장치(650)에 제공할 수 있다.
디바이스(650)는 또한 오디오 코덱(660)을 사용하여 청각적으로 통신할 수 있으며, 이는 사용자로부터 음성 정보를 수신하고 이를 사용 가능한 디지털 정보로 변환할 수 있다. 마찬가지로 오디오 코덱(660)은 예를 들어 디바이스(650)의 핸드셋에서와 같이 스피커를 통해 사용자를 위한 가청 사운드를 생성할 수 있다. 그러한 사운드는 보이스 전화 통화로부터의 사운드를 포함할 수 있고, 레코딩된 사운드(예: 보이스 메시지, 음악 파일 등)를 포함할 수 있고, 또한 디바이스(650)에서 동작하는 애플리케이션들에 의해 생성된 사운드를 포함할 수 있다.
컴퓨팅 디바이스(650)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 셀룰러 전화기(680)로 구현될 수 있다. 또한 스마트폰(682), 개인 디지털 어시스턴트 또는 기타 유사한 모바일 디바이스의 일부로 구현될 수도 있다.
예시적인 실시예들은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 이들을 실시할 수 있는 예를 도면에 예시하고 여기에서 상세하게 설명하고자 한다. 그러나 예시적인 실시예들을 개시된 특정 형태로 제한하려는 의도가 없으며, 반대로 예시적인 실시예들은 청구범위의 범위 내에 있는 모든 수정, 등가물 및 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명 전체에 걸쳐 유사한 번호들은 유사한 요소들을 지칭한다.
여기에 설명된 시스템들 및 기법들의 다양한 구현예들은 디지털 전자 회로, 집적 회로, 특별히 설계된 ASIC(응용 프로그램 특정 집적 회로)들, 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 스토리지 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고 데이터 및 명령어들을 전송하도록 결합된 특수 또는 범용일 수 있는, 적어도 하나의 프로그래밍가능한 프로세서를 포함하는 프로그래밍가능한 시스템에서 실행가능 및/또는 해석가능한 하나 이상의 컴퓨터 프로그램들에서의 구현예를 포함할 수 있다. 여기에 설명된 시스템들 및 기법들의 다양한 구현예들은 회로, 모듈, 블록 또는 소프트웨어와 하드웨어 측면들을 결합할 수 있는 시스템으로 실현될 수 있고/있거나 일반적으로 여기에서 언급될 수 있다. 예를 들어, 모듈은 프로세서(예: 실리콘 기판, GaAs 기판 등에 형성된 프로세서) 또는 일부 다른 프로그래밍가능한 데이터 프로세싱 장치에서 실행되는 기능들/액션들/컴퓨터 프로그램 명령어들을 포함할 수 있다.
상기 예시적인 실시예들 중 일부는 흐름도로서 묘사된 프로세스 또는 방법으로 설명된다. 순서도는 동작들을 순차적 프로세스로 설명하지만 많은 동작들이 병렬로, 동시에 또는 동시에 수행될 수 있다. 또한 동작들의 순서를 다시 정렬할 수 있다. 동작들이 완료되면 프로세스가 종료될 수 있지만 그림에 포함되지 않은 추가 단계들이 있을 수도 있다. 프로세스는 방법들, 기능들, 절차들, 서브루틴들, 서브프로그램들 등에 해당할 수 있다.
위에서 논의된 방법들 중 일부는 흐름도에 의해 예시되며 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 설명 언어 또는 이들의 조합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로코드로 구현될 때, 필요한 작업들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 기계 또는 저장 매체와 같은 컴퓨터 판독가능 매체에 저장될 수 있다. 프로세서(들)는 필요한 작업들을 수행할 수 있다.
본 명세서에 개시된 특정 구조적 및 기능적 세부 사항들은 단지 예시적인 실시예들을 설명하기 위한 대표적인 것일 뿐이다. 그러나 예시적인 실시예들은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예들에만 한정되는 것으로 해석되어서는 안 된다.
제1, 제2 등의 용어들이 본 명세서에서 다양한 요소들을 설명하기 위해 사용될 수 있지만, 이들 요소들이 이러한 용어들에 의해 제한되어서는 안된다는 것이 이해될 것이다. 이 용어들은 한 요소를 다른 요소와 구별하는 데에만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 본 명세서에서 사용되는 바와 같이, 및/또는 용어는 연관된 나열된 항목들 중 하나 이상의 임의의 및 모든 조합을 포함한다.
어떤 구성요소가 다른 구성요소와 연결 또는 결합된다고 할 때, 다른 구성요소와 직접 연결 또는 결합될 수도 있고 중간에 다른 구성요소가 존재할 수도 있음을 이해할 것이다. 반대로 어떤 요소가 다른 요소와 직접 연결되어 있거나 직접 결합되어 있다고 할 때는, 중간에 요소가 존재하지 않는다. 요소들 간의 관계를 설명하는 데 사용되는 다른 단어는 유사한 방식으로 해석되어야 한다(예: 사이 대 직접 사이, 인접 대 직접 인접 등).
본 출원에서 사용한 용어는 단지 특정한 실시예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 본 명세서에서 사용된 바와 같이, 단수형 a, an 및 the는 문맥상 명백하게 달리 나타내지 않는 한 복수형도 포함하는 것으로 의도된다. 구성하다, 구성하는, 포함하다 및/또는 포함하는 용어는 본 명세서에서 사용될 때, 명시된 특징들, 정수들(integers), 단계들, 동작들, 요소들 및/또는 구성요소들의 존재를 지정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 구성요소들 및/또는 그 그룹들의 존재 또는 추가를 배제하지 않는다는 것이 추가로 이해될 것이다.
또한 일부 대안적인 구현예에서, 언급된 기능들/액션들은 도면에 언급된 순서를 벗어나 발생할 수 있음에 유의해야 한다. 예를 들어 연속으로 표시된 두 그림들은 관련된 기능/액션들에 따라 사실상 동시에 실행되거나 때때로 반대 순서로 실행될 수 있다.
다르게 정의되지 않는 한, 본 명세서에서 사용되는 모든 용어들(기술적 과학적 용어들 포함)은 실시예들이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 용어들, 예를 들어 일반적으로 사용되는 사전들에 정의된 용어들은 관련 기술의 맥락에서 그 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명시적으로 정의되지 않는 한 이상화되거나 지나치게 형식적인 의미로 해석되지 않을 것임을 또한 이해할 것이다.
상기 예시적인 실시예들의 일부 및 대응하는 상세한 설명은 소프트웨어, 또는 알고리즘들 및 컴퓨터 메모리 내의 데이터 비트들에 대한 동작의 상징적 표현들의 관점에서 제시된다. 이러한 설명들 및 표현들은 당업자가 그들의 작업의 요지를 다른 당업자에게 효과적으로 전달하는 것이다. 여기에서 사용되는 용어와 일반적으로 사용되는 알고리즘은 원하는 결과로 이어지는 단계들의 자체 일관성 있는 시퀀스로 간주된다. 단계들은 물리량의 물리적 조작이 필요한 단계이다. 반드시 그런 것은 아니지만 일반적으로 이러한 양들은 저장, 전송, 결합, 비교 및 기타 조작이 가능한 광학적, 전기적 또는 자기적 신호들의 형태를 취한다. 이러한 신호들을 비트, 값, 요소, 기호, 문자, 용어, 숫자 등으로 참조하는 것이 주로 일반적인 사용상의 이유로 때때로 편리한 것으로 입증되었다.
위의 예시적인 실시예에서, 프로그램 모듈들 또는 기능 프로세스들로 구현될 수 있는 동작들 및 동작들의 상징적 표현들(예: 흐름도의 형태)에 대한 참조는 특정 작업들을 수행하거나 특정 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 객체들, 구성요소들, 데이터 구조들 등을 포함하며, 기존 구조 요소들에서 기존 하드웨어를 사용하여 설명 및/또는 구현될 수 있다. 이러한 기존 하드웨어는 하나 이상의 중앙 프로세싱 유닛(CPU)들, 디지털 시그널 프로세서(DSP)들, 애플리케이션 특정 집적 회로들, 필드 프로그래밍 가능 게이트 어레이(FPGA)들 컴퓨터들 등을 포함할 수 있다.
그러나 이러한 모든 용어들과 유사한 용어들은 적절한 물리량과 연관되어야 하며 이러한 양에 적용되는 편리한 레이블일 뿐이라는 점을 염두에 두어야 한다. 달리 구체적으로 언급되지 않는 한, 또는 논의에서 명백한 바와 같이, 프로세싱 또는 컴퓨팅 또는 계산 또는 표시의 결정 등과 같은 용어들은 컴퓨터 시스템 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스를 말하며, 컴퓨터 시스템의 레지스터들 및 메모리들 내에서 물리적, 전자적 양으로 표현된 데이터를 컴퓨터 시스템 메모리들 또는 레지스터들 또는 기타 정보 저장, 전송 또는 표시 디바이스들 내에서 물리적 양으로 유사하게 표현된 다른 데이터로 변환한다.
또한 예시적인 실시예의 소프트웨어 구현 양태들은 일반적으로 어떤 형태의 비일시적 프로그램 저장 매체에 인코딩되거나 어떤 유형의 전송 매체를 통해 구현된다는 점에 유의하자. 프로그램 저장 매체는 자기(예: 플로피 디스크 또는 하드 드라이브) 또는 광학(예: 컴팩트 디스크 읽기 전용 메모리 또는 CD ROM)일 수 있으며 읽기 전용 또는 임의 액세스일 수 있다. 유사하게, 전송 매체는 트위스트 와이어 쌍, 동축 케이블, 광섬유, 또는 당업계에 공지된 일부 다른 적절한 전송 매체일 수 있다. 예시적인 실시예들은 임의의 주어진 구현의 이러한 양태들에 의해 제한되지 않는다.
마지막으로, 첨부된 청구범위는 본 명세서에 기술된 특징들의 특정 조합들을 제시하지만, 본 발명의 범위는 이하 청구되는 특정 조합들로 제한되지 않으며, 대신에 특정 조합이 이때 첨부된 청구범위에 구체적으로 열거되었는지 여부에 관계없이 본 명세서에 개시된 특징들 또는 실시예들의 임의의 조합을 포함하도록 확장된다는 점에 유의해야 한다.

Claims (22)

  1. 방법으로서,
    복수의 카메라들을 사용하여 적어도 하나의 이미지를 캡처하는 단계;
    상기 적어도 하나의 이미지와 연관된 복수의 얼굴 피처들을 식별하는 단계;
    상기 복수의 얼굴 피처들 중 적어도 하나의 얼굴 피처의 위치를 안정화(stabilizing)하는 단계;
    상기 적어도 하나의 얼굴 피처의 위치를 3차원(3D) 위치로 변환하는 단계;
    상기 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계; 및
    상기 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 평면 패널 디스플레이에 3D 이미지를 렌더링하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 이미지는 2개 이상의 이미지들을 포함하고, 그리고
    상기 2개 이상의 이미지들이 동일한 카메라에 의해 순차적으로 또는 2개 이상의 카메라들에 의해 동시에 캡처되는, 방법.
  3. 제1항에 있어서,
    상기 복수의 얼굴 피처들을 식별하는 단계는,
    상기 적어도 하나의 이미지와 연관된 얼굴을 식별하는 단계,
    상기 얼굴 상의 상기 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계, 및
    위치를 상기 복수의 랜드마크들 각각과 연관시키는 단계를 포함하는, 방법.
  4. 제1항에 있어서,
    상기 복수의 얼굴 피처들을 식별하는 단계는,
    상기 적어도 하나의 이미지와 연관된 제1 얼굴을 식별하는 단계,
    상기 적어도 하나의 이미지와 연관된 제2 얼굴을 식별하는 단계,
    상기 제1 얼굴 상의 상기 복수의 얼굴 피처들에 대응하는 제1 복수의 랜드마크를 생성하는 단계,
    상기 제2 얼굴 상의 상기 복수의 얼굴 피처들에 대응하는 제2 복수의 랜드마크를 생성하는 단계,
    제1 위치를 상기 제1 복수의 랜드마크들 각각과 연관시키는 단계, 및
    제2 위치를 상기 제2 복수의 랜드마크들 각각과 연관시키는 단계를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는,
    상기 적어도 하나의 이미지 중 적어도 2개로부터 얼굴 피처를 선택하는 단계,
    상기 얼굴 피처와 연관된 적어도 2개의 랜드마크들을 선택하는 단계, 및
    상기 적어도 2개의 랜드마크들의 위치를 평균화하는 단계를 포함하는, 방법.
  6. 제1항에 있어서,
    상기 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는,
    상기 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계,
    상기 복수의 랜드마크들의 서브세트를 선택하는 단계, 및
    상기 복수의 랜드마크들의 서브세트의 각각의 랜드마크의 위치와 연관된 속도에 기초하여 얼굴의 움직임을 결정하는 단계를 포함하고, 그리고
    상기 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는 상기 얼굴의 움직임에 기초하는, 방법.
  7. 제1항에 있어서,
    상기 적어도 하나의 얼굴 피처의 위치를 3D 위치로 변환하는 단계는,
    3개 이상의 복수의 카메라들에 의해 캡처된 이미지들을 사용하여 생성된 위치 데이터에 기초하여 상기 적어도 하나의 얼굴 피처의 위치를 삼각측량하는 단계를 포함하는, 방법.
  8. 제1항에 있어서,
    상기 적어도 하나의 얼굴 피처의 3D 위치와 연관된 노이즈를 감소시키기 위해 상기 적어도 하나의 얼굴 피처의 3D 위치에 이중 지수(double exponential) 필터를 적용하는 단계를 더 포함하는 방법.
  9. 제1항에 있어서,
    상기 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계는,
    상기 적어도 하나의 얼굴 피처의 3D 위치의 시퀀스에 이중 지수 필터를 적용하는 단계, 및
    시간 영(0) 이전의 상기 3D 위치의 이중 지수 필터링된 시퀀스에 기초하여 영(0)보다 큰 시간에서 값을 선택하는, 방법.
  10. 제1항에 있어서,
    상기 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 오디오를 생성하는 단계를 더 포함하는, 방법.
  11. 3차원(3D) 콘텐츠 시스템으로서,
    복수의 컴퓨터 명령어들을 나타내는 코드 세그먼트들을 포함하는 메모리; 및
    상기 코드 세그먼트들을 실행하도록 구성된 프로세서를 포함하고, 상기 컴퓨터 명령어들은:
    복수의 카메라들을 사용하여 적어도 하나의 이미지를 캡처하는 단계;
    상기 적어도 하나의 이미지와 연관된 복수의 얼굴 피처들을 식별하는 단계;
    상기 복수의 얼굴 피처들 중 적어도 하나의 얼굴 피처의 위치를 안정화(stabilizing)하는 단계;
    상기 적어도 하나의 얼굴 피처의 위치를 3차원(3D) 위치로 변환하는 단계;
    상기 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계; 및
    상기 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 평면 패널 디스플레이에 3D 이미지를 렌더링하는 단계를 포함하는, 3D 콘텐츠 시스템.
  12. 제11항에 있어서,
    상기 적어도 하나의 이미지는 2개 이상의 이미지들을 포함하고, 그리고
    상기 2개 이상의 이미지들이 동일한 카메라에 의해 순차적으로 또는 2개 이상의 카메라들에 의해 동시에 캡처되는, 3D 콘텐츠 시스템.
  13. 제11항에 있어서,
    상기 복수의 얼굴 피처들을 식별하는 단계는,
    상기 적어도 하나의 이미지와 연관된 얼굴을 식별하는 단계,
    상기 얼굴 상의 상기 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계, 및
    위치를 상기 복수의 랜드마크들 각각과 연관시키는 단계를 포함하는, 3D 콘텐츠 시스템.
  14. 제11항에 있어서,
    상기 복수의 얼굴 피처들을 식별하는 단계는,
    상기 적어도 하나의 이미지와 연관된 제1 얼굴을 식별하는 단계,
    상기 적어도 하나의 이미지와 연관된 제2 얼굴을 식별하는 단계,
    상기 제1 얼굴 상의 상기 복수의 얼굴 피처들에 대응하는 제1 복수의 랜드마크들을 생성하는 단계,
    상기 제2 얼굴 상의 상기 복수의 얼굴 피처들에 대응하는 제2 복수의 랜드마크들을 생성하는 단계,
    제1 위치를 상기 제1 복수의 랜드마크들 각각과 연관시키는 단계, 및
    제2 위치를 상기 제2 복수의 랜드마크들 각각과 연관시키는 단계를 포함하는, 3D 콘텐츠 시스템.
  15. 제11항에 있어서,
    상기 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는,
    상기 적어도 하나의 이미지 중 적어도 2개로부터 얼굴 피처를 선택하는 단계,
    상기 얼굴 피처와 연관된 적어도 2개의 랜드마크들을 선택하는 단계, 및
    상기 적어도 2개의 랜드마크들의 위치를 평균화하는 단계를 포함하는, 3D 콘텐츠 시스템.
  16. 제11항에 있어서,
    상기 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는,
    상기 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계,
    상기 복수의 랜드마크들의 서브세트를 선택하는 단계, 및
    상기 복수의 랜드마크들의 서브세트의 각각의 랜드마크의 위치와 연관된 속도에 기초하여 얼굴의 움직임을 결정하는 단계를 포함하고, 그리고
    상기 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는 상기 얼굴의 움직임에 기초하는, 3D 콘텐츠 시스템.
  17. 제11항에 있어서,
    상기 적어도 하나의 얼굴 피처의 위치를 3D 위치로 변환하는 단계는,
    3개 이상의 복수의 카메라들에 의해 캡처된 이미지들을 사용하여 생성된 위치 데이터에 기초하여 상기 적어도 하나의 얼굴 피처의 위치를 삼각측량하는 단계를 포함하는, 3D 콘텐츠 시스템.
  18. 제10항에 있어서,
    상기 컴퓨터 명령어들은 상기 적어도 하나의 얼굴 피처의 3D 위치와 연관된 노이즈를 감소시키기 위해 상기 적어도 하나의 얼굴 피처의 3D 위치에 이중 지수(double exponential) 필터를 적용하는 단계를 더 포함하는, 3D 콘텐츠 시스템.
  19. 제11항에 있어서,
    상기 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계는,
    상기 적어도 하나의 얼굴 피처의 3D 위치의 시퀀스에 이중 지수 필터를 적용하는 단계, 및
    시간 영(0) 이전의 상기 3D 위치의 이중 지수 필터링된 시퀀스에 기초하여 영(0)보다 큰 시간에서 값을 선택하는, 3D 콘텐츠 시스템.
  20. 제11항에 있어서,
    상기 컴퓨터 명령어들은 상기 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 오디오를 생성하는 단계를 더 포함하는, 3D 콘텐츠 시스템.
  21. 컴퓨터 실행가능 프로그램 코드가 저장된 비일시적 컴퓨터 판독가능 저장 매체에 있어서, 상기 컴퓨터 실행가능 프로그램 코드는 컴퓨터 시스템에서 실행될 때, 상기 컴퓨터 시스템으로 하여금 방법을 수행하게 하고, 상기 방법은:
    복수의 카메라들을 사용하여 적어도 하나의 이미지를 캡처하는 단계;
    상기 적어도 하나의 이미지와 연관된 복수의 얼굴 피처들을 식별하는 단계;
    상기 복수의 얼굴 피처들 중 적어도 하나의 얼굴 피처의 위치를 안정화(stabilizing)하는 단계;
    상기 적어도 하나의 얼굴 피처의 위치를 3차원(3D) 위치로 변환하는 단계;
    상기 적어도 하나의 얼굴 피처의 3D 위치와 연관된 노이즈를 감소시키기 위해 상기 적어도 하나의 얼굴 피처의 3D 위치에 이중 지수(double exponential) 필터를 적용하는 단계;
    상기 적어도 하나의 얼굴 피처의 미래 위치를 예측하는 단계; 및
    상기 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 평면 패널 디스플레이에 3D 이미지를 렌더링하기 위한 디스플레이 포지션을 결정하는 단계; 및
    상기 적어도 하나의 얼굴 피처의 미래 위치를 사용하여 오디오를 생성하기 위한 오디오 포지션을 결정하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 저장 매체.
  22. 제21항에 있어서,
    상기 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는,
    상기 복수의 얼굴 피처들에 대응하는 복수의 랜드마크들을 생성하는 단계,
    상기 복수의 랜드마크들의 서브세트를 선택하는 단계, 및
    상기 복수의 랜드마크들의 서브세트의 각각의 랜드마크의 위치와 연관된 속도에 기초하여 얼굴의 움직임을 결정하는 단계를 포함하고, 그리고
    상기 적어도 하나의 얼굴 피처의 위치를 안정화하는 단계는 상기 얼굴의 움직임에 기초하는, 비일시적 컴퓨터 판독가능 저장 매체.
KR1020237018648A 2020-11-30 2020-11-30 자동입체 텔레프레즌스 시스템들을 위한 3차원(3d) 얼굴 피처 추적 KR20230097163A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/070831 WO2022115119A1 (en) 2020-11-30 2020-11-30 Three-dimensional (3d) facial feature tracking for autostereoscopic telepresence systems

Publications (1)

Publication Number Publication Date
KR20230097163A true KR20230097163A (ko) 2023-06-30

Family

ID=74141997

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237018648A KR20230097163A (ko) 2020-11-30 2020-11-30 자동입체 텔레프레즌스 시스템들을 위한 3차원(3d) 얼굴 피처 추적

Country Status (6)

Country Link
US (1) US20230316810A1 (ko)
EP (1) EP4252412A1 (ko)
JP (1) JP2023551864A (ko)
KR (1) KR20230097163A (ko)
CN (1) CN116508066A (ko)
WO (1) WO2022115119A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023242846A1 (en) * 2022-06-16 2023-12-21 Looq Sensing Technologies Ltd. Virtualization of sensors for a multi-participant interactive session
US20240121377A1 (en) * 2022-10-06 2024-04-11 Blink Technologies Inc. Multi-user gaze-tracking for personalized rendering from a 3d display

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9684953B2 (en) * 2012-02-27 2017-06-20 Eth Zurich Method and system for image processing in video conferencing
US9348411B2 (en) * 2013-05-24 2016-05-24 Microsoft Technology Licensing, Llc Object display with visual verisimilitude
US20180077430A1 (en) * 2016-09-09 2018-03-15 Barrie Hansen Cloned Video Streaming
US10171738B1 (en) * 2018-05-04 2019-01-01 Google Llc Stabilizing video to reduce camera and face movement

Also Published As

Publication number Publication date
WO2022115119A1 (en) 2022-06-02
US20230316810A1 (en) 2023-10-05
EP4252412A1 (en) 2023-10-04
CN116508066A (zh) 2023-07-28
JP2023551864A (ja) 2023-12-13

Similar Documents

Publication Publication Date Title
KR102417177B1 (ko) 인사이드-아웃 위치, 사용자 신체 및 환경 추적을 갖는 가상 및 혼합 현실을 위한 머리 장착 디스플레이
US10269177B2 (en) Headset removal in virtual, augmented, and mixed reality using an eye gaze database
US11710287B2 (en) Generative latent textured proxies for object category modeling
CN108885342B (zh) 虚拟图像生成系统及其操作方法
US11854230B2 (en) Physical keyboard tracking
KR102612529B1 (ko) 신규 뷰 합성을 위한 신경 블렌딩
US11353955B1 (en) Systems and methods for using scene understanding for calibrating eye tracking
US11720996B2 (en) Camera-based transparent display
CN105611267B (zh) 现实世界和虚拟世界图像基于深度和色度信息的合并
US11922602B2 (en) Virtual, augmented, and mixed reality systems and methods
US20230316810A1 (en) Three-dimensional (3d) facial feature tracking for autostereoscopic telepresence systems
US20230396750A1 (en) Dynamic resolution of depth conflicts in telepresence
US11386614B2 (en) Shading images in three-dimensional content system
Thatte et al. Real-World Virtual Reality With Head-Motion Parallax
KR20240057994A (ko) 입체 디스플레이 콘텐츠를 생성하기 위한 방법 및 장치