KR102506738B1 - 눈 텍스처 인페인팅 - Google Patents

눈 텍스처 인페인팅 Download PDF

Info

Publication number
KR102506738B1
KR102506738B1 KR1020217005544A KR20217005544A KR102506738B1 KR 102506738 B1 KR102506738 B1 KR 102506738B1 KR 1020217005544 A KR1020217005544 A KR 1020217005544A KR 20217005544 A KR20217005544 A KR 20217005544A KR 102506738 B1 KR102506738 B1 KR 102506738B1
Authority
KR
South Korea
Prior art keywords
region
iris
texture
interest
images
Prior art date
Application number
KR1020217005544A
Other languages
English (en)
Other versions
KR20210036949A (ko
Inventor
천 차오
원 장
멍레이 차이
린제 루오
Original Assignee
스냅 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 스냅 인코포레이티드 filed Critical 스냅 인코포레이티드
Publication of KR20210036949A publication Critical patent/KR20210036949A/ko
Application granted granted Critical
Publication of KR102506738B1 publication Critical patent/KR102506738B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • 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/18Eye characteristics, e.g. of the iris
    • G06T5/005
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • 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/18Eye characteristics, e.g. of the iris
    • G06V40/193Preprocessing; Feature extraction

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Ophthalmology & Optometry (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Image Processing (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하기 위한 시스템들, 디바이스들, 매체들, 및 방법들이 제시된다. 시스템들 및 방법들은 이미지들의 세트가 컴퓨팅 디바이스에서 캡처됨에 따라 이미지들의 세트에 액세스한다. 시스템들 및 방법들은, 이미지들의 세트의 일부분 내에서, 눈을 포함하는 관심 영역을 결정하고, 관심 영역으로부터 홍채 영역을 추출한다. 시스템들 및 방법들은 관심 영역 내의 공막 영역을 세그먼트화하고, 홍채 영역 및 공막 영역에 기초하여 눈에 대한 텍스처를 생성한다.

Description

눈 텍스처 인페인팅
본 출원은 2018년 7월 31일에 출원된 미국 특허 출원 일련 번호 제16/051,083호의 우선권의 이익을 주장하며, 이 출원의 우선권의 이익은 이로써 주장되며, 그 내용은 전체가 본 명세서에 참조로 포함된다.
본 개시내용의 실시예들은 일반적으로 이미지 스트림 내에서의 객체 식별 및 조작에 관한 것이다. 제한으로서가 아니라, 더 구체적으로, 본 개시내용은 이미지 또는 비디오 스트림 내에 제시된 객체들을 식별, 모델링, 및 추적하기 위한 시스템들 및 방법들을 다룬다.
원격통신 애플리케이션 및 디바이스는, 텍스트, 이미지, 사운드 녹음, 및/또는 비디오 녹화와 같은 다양한 매체를 이용하여 다중 사용자 사이에서 통신을 제공할 수 있다. 예를 들어, 화상 회의는, 2명 이상의 개인이 소프트웨어 애플리케이션, 원격통신 디바이스, 및 원격통신 네트워크의 조합을 이용하여 서로 통신하는 것을 허용한다. 원격통신 디바이스는 또한, 비디오 스트림을 녹화하여 통신 네트워크를 통해 메시지로서 송신할 수 있다. 종종, 비디오-기반 원격통신 애플리케이션은 사용자로 하여금 네트워크를 통해 대면 채팅할 수 있게 한다. 현행의 시스템들을 이용하여, 비디오 채팅에서의 사용자들은 스크린을 향하여 지향된 관심을 가질 수 있고, 따라서 사용자들이 서로에게 관심을 기울이지 않는다는 인상을 제공할 수 있다. 비디오 녹화를 수반하는 일부 애플리케이션들은 비디오 내에서 묘사된 양태들의 모델링을 가능하게 한다. 종종 이러한 시스템들은 비디오의 실시간 모델링 또는 실시간 조작을 가능하게 하지 않는다. 게다가, 원격통신 및 기타 컴퓨터 애플리케이션들은 사용자가 물리적 제스처 또는 마우스와 같은 디바이스를 사용하여 애플리케이션과 상호작용하는 사용자 인터페이스를 활용한다. 이러한 원격통신 애플리케이션들은 사용자가 애플리케이션을 제어할 수 있는 방식에 있어서 종종 제한적이다; 또한, 이들은 사용자 인터페이스의 어떤 부분이 사용자의 주의를 끌고 있는지를 판정할 방법을 제공하지 못한다.
첨부된 도면들의 다양한 것들은 본 개시내용의 예시적인 실시예를 나타낼 뿐이고 그 범위를 제한하는 것으로서 간주해서는 안 된다.
도 1은 일부 예시적인 실시예들에 따른 네트워크화된 시스템을 예시하는 블록도이다.
도 2는 일부 예시적인 실시예들에 따른 객체 모델링 시스템을 예시하는 도면이다.
도 3은 일부 예시적인 실시예들에 따른, 비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하기 위한 예시적인 방법을 예시하는 흐름도이다.
도 4는 일부 예시적인 실시예들에 따른, 비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하기 위한 예시적인 방법을 예시하는 흐름도이다.
도 5는 일부 예시적인 실시예들에 따른, 비디오 스트림 내의 객체의 텍스처 모델을 추적하기 위한 예시적인 방법을 예시하는 흐름도이다.
도 6은 일부 예시적인 실시예들에 따른, 비디오 스트림 내의 객체의 텍스처 모델을 추적하기 위한 예시적인 방법을 예시하는 흐름도이다.
도 7은 일부 예시적인 실시예들에 따른, 예시적인 모바일 디바이스 및 모바일 운영 체제 인터페이스를 묘사하는 사용자 인터페이스 도면이다.
도 8은 일부 예시적인 실시예들에 따른, 머신상에 설치될 수 있는 소프트웨어 아키텍처의 예를 예시하는 블록도이다.
도 9는 예시적인 실시예에 따른, 머신으로 하여금 본 명세서에서 논의된 방법들 중 임의의 것을 수행하게 야기하기 위한 명령어 세트가 그 내에서 실행될 수 있는 컴퓨터 시스템 형태의 머신의 도식적 표현을 제시하는 블록도이다.
본 명세서에서 제공된 서두는 편의를 위한 것일 뿐이며 사용된 용어들의 범위 또는 의미에 반드시 영향을 주는 것은 아니다.
이하의 설명은 본 개시내용의 실시예들을 예시하는 시스템, 방법, 기술, 명령어 시퀀스, 및 컴퓨팅 머신 프로그램 제품을 포함한다. 이하의 설명에서, 설명 목적을 위해, 수많은 구체적인 상세사항이 본 발명의 주제의 다양한 실시예에 대한 이해를 제공하기 위해 제시된다. 그러나, 본 기술분야의 통상의 기술자에게는, 본 발명의 주제의 실시예들은 이러한 구체적인 상세사항 없이도 실시될 수 있다는 것이 명백할 것이다. 일반적으로, 공지된 명령어 인스턴스, 프로토콜, 구조, 및 기술은 반드시 상세하게 도시되지는 않는다.
본 개시내용의 일 양태에서, 사용자는 애플리케이션을 연다. 애플리케이션은 카메라에 액세스하여 카메라의 시계(field of view) 내의 이미지들을 캡처한다. 예로서, 카메라는 사용자 얼굴의 이미지들의 비디오 스트림 또는 그룹을 캡처할 수 있다. 그 다음, 시스템들 및 방법들은 사용자의 눈들과 같은 관심 객체들을 식별한다. 시스템은 눈의 모델을 생성하고 사용자의 시선을 추적하여, 사용자가 사용자 인터페이스상에서 어디를 보고 있는지를 결정한다. 그 다음, 시스템은 사용자의 시선 위치, 관심 객체의 양태들(예를 들어, 눈의 컬러), 관심 객체의 양태들 또는 특성들을 변경하거나, 또는 사용자의 모델, 아바타, 또는 애니메이션을 생성하는데 이용될 수 있다.
본 개시내용의 일 양태에서, 비디오 스트림 내에서 객체 텍스처들 및 모델들의 생성을 가능하게 하는 시스템들 및 방법들이 개시된다. 시스템들 및 방법들은 또한 비디오 스트림 내의 객체들을 추적하기 위해 사용될 수 있다. 본 명세서에 설명된 시스템들 및 방법들은 비디오 스트림 내의 객체의 물리적으로 정확한 모델링, 위치 결정, 및 추적을 생성하는 물리적 기반 방법을 설명한다. 본 명세서에 설명된 시스템들은 비디오 스트림으로부터 물리적 정보를 추적하고 추출하기 위해 객체들의 3차원 표현들과의 텍스처들 또는 모델들의 조합을 가능하게 한다. 예를 들어, 본 명세서에 설명된 방법들 및 시스템들은 얼굴에 묘사된 눈들의 모델링 및 추적을 가능하게 한다. 눈들이 추적됨에 따라, 본 명세서에서 설명된 시스템들 및 방법들은 물리적 시선 방향의 결정 및 추적을 가능하게 한다. 시스템들 및 방법들은 또한 모델링된 또는 텍스처링된 객체를 사용하여 비디오 스트림의 수정을 가능하게 한다. 본 시스템들 및 방법들은 일부 이전 시스템들이 그러하듯이 2차원 이미지들로 제한되지는 않는다. 게다가, 본 명세서에 설명된 시스템들 및 방법들은 객체 모델링 및 객체 추적에 있어서 증가된 정확도를 제공한다. 본 명세서에 설명된 특정 실시예들은 시선 검출 및 추적에 있어서 증가된 정확도를 제공한다. 본 명세서에서 설명된 일부 실시예들은, 비디오 스트림이 캡처되고 있을 때 비디오 스트림 내에서의 실시간 시선 추적을 가능케 하여, 이전 시스템의 능력을 개선하고 그것을 넘어갈 수 있다. 유사하게, 본 명세서에서 설명된 일부 실시예들은, 시선 방향을 포함하여, 객체의 실시간 정확한 수정을 가능하게 한다.
상기의 내용은 하나의 구체적인 예이다. 본 개시내용의 다양한 실시예들은 비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하고 객체들을 추적하기 위한 디바이스들 및 디바이스의 하나 이상의 프로세서에 의한 명령어들에 관한 것이다. 객체 텍스처들을 생성하는 객체 모델링 시스템이 설명된다. 객체 모델링 시스템은 생성된 객체 텍스처들을 사용하여 비디오 스트림 또는 이미지들의 세트 내의 이미지들을 수정할 수 있다. 객체 모델링 시스템은 또한 2차원 모델, 3차원 모델, 생성된 객체 텍스처들, 및 이들의 조합을 사용하여 객체들을 추적할 수 있다.
도 1은 일 실시예에 따른, 네트워크를 통해 데이터를 교환하기 위해 구성된 클라이언트-서버 아키텍처를 갖는 네트워크 시스템(100)을 묘사하는 네트워크도이다. 예를 들어, 네트워크 시스템(100)은 클라이언트들이 네트워크 시스템(100) 내에서 통신하고 데이터를 교환하는 메시징 시스템일 수 있다. 데이터는 네트워크 시스템(100) 및 그 사용자들과 연관된 다양한 기능(예를 들어, 텍스트 및 미디어 통신의 전송 및 수신, 지리위치의 결정 등) 및 양태들(예를 들어, 통신 데이터의 전송, 통신 세션의 표시의 수신 및 송신 등)에 관련될 수 있다. 클라이언트-서버 아키텍처로서 본 명세서에서 예시되지만, 다른 실시예들은 피어-투-피어(peer-to-peer) 또는 분산 네트워크 환경들과 같은 다른 네트워크 아키텍처들을 포함할 수 있다.
도 1에서 도시된 바와 같이, 네트워크 시스템(100)은 소셜 메시징 시스템(130)을 포함한다. 소셜 메시징 시스템(130)은 일반적으로 인터페이스 계층(124), 애플리케이션 로직 계층(126), 및 데이터 계층(128)으로 구성되는 3단 아키텍처(three-tiered architecture)에 기초한다. 관련된 컴퓨터 및 인터넷 관련 분야의 통상의 기술자에 의해 이해되는 바와 같이, 도 1에 도시된 각각의 컴포넌트 또는 엔진은, 명령어들을 실행하고, 하드웨어-구현된 컴포넌트 또는 엔진을 형성하며, 명령어들의 실행시, 특정한 세트의 기능들을 실행하도록 구성된 특수 목적 머신으로서 행위하기 위한 한 세트의 실행가능한 소프트웨어 명령어들 및 대응하는 하드웨어(예를 들어, 메모리 및 프로세서)를 나타낸다. 불필요한 상세사항으로 본 발명의 주제를 모호하게 하는 것을 피하기 위해, 본 발명의 주제에 대한 이해를 전달하는 것과 밀접한 관계가 없는 다양한 기능 컴포넌트들 및 엔진은 도 1에서 생략되었다. 물론, 본 명세서에서 구체적으로 설명되지 않은 추가적인 기능을 용이하게 하기 위해, 도 1에 예시된 것처럼, 추가적인 기능 컴포넌트 및 엔진이 소셜 메시징 시스템과 함께 이용될 수 있다. 더욱이, 도 1에 묘사된 다양한 기능 컴포넌트들 및 엔진들은 단일의 서버 컴퓨터 또는 클라이언트 디바이스상에 상주하거나, 또는 다양한 배열로 몇 개의 서버 컴퓨터 또는 클라이언트 디바이스에 걸쳐 분산될 수 있다. 또한, 소셜 메시징 시스템(130)이 도 1에서는 3단 아키텍처로서 묘사되어 있지만, 본 발명의 주제는 결코 이러한 아키텍처로만 제한되지 않는다.
도 1에 도시된 바와 같이, 인터페이스 계층(124)은, 클라이언트 애플리케이션(들)(112)을 실행하는 클라이언트 디바이스(110) 및 제3자 애플리케이션(들)(122)을 실행하는 제3자 서버(들)(120)와 같은 다양한 클라이언트 컴퓨팅 디바이스 및 서버로부터 요청들을 수신하는 인터페이스 컴포넌트(들)(예를 들어, 웹 서버)(140)로 구성된다. 수신된 요청들에 응답하여, 인터페이스 컴포넌트(들)(140)는 적절한 응답들을 네트워크(104)를 통해 요청 디바이스들에 통신한다. 예를 들어, 인터페이스 컴포넌트(들)(140)는 HTTP(Hypertext Transfer Protocol) 요청들, 또는 다른 웹 기반 API(Application Programming Interface) 요청들과 같은 요청들을 수신할 수 있다.
클라이언트 디바이스(110)는, 특정한 플랫폼이 매우 다양한 모바일 컴퓨팅 디바이스 및 모바일 특유의 운영 체제(예를 들어, IOSTM, ANDROIDTM, WINDOWS® PHONE) 중 임의의 것을 포함하도록 개발된 종래의 웹 브라우저 애플리케이션 또는 애플리케이션들(또한 "앱"이라고도 함)을 실행할 수 있다. 또한, 일부 예시적인 실시예들에서, 클라이언트 디바이스(110)는, 객체 모델링 시스템(160)의 컴포넌트들이 객체 모델링 시스템(160)의 동작들에 관한 특정한 세트의 기능들을 수행하기 위해 클라이언트 디바이스(110)를 구성하도록 객체 모델링 시스템(160)의 전부 또는 일부를 형성한다.
예에서, 클라이언트 디바이스(110)는 클라이언트 애플리케이션(들)(112)을 실행하고 있다. 클라이언트 애플리케이션(들)(112)은, 사용자(106)에게 정보를 제시하고 소셜 메시징 시스템(130)과 정보를 교환하기 위해 네트워크(104)를 통해 통신하는 기능을 제공할 수 있다. 또한, 일부 예들에서, 클라이언트 디바이스(110)는 객체 모델링 시스템(160)의 기능을 실행하여 비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하고 객체들을 추적한다.
각각의 클라이언트 디바이스(110)는 소셜 메시징 시스템(130), 다른 클라이언트 디바이스들, 및 제3 자 서버(들)(120)에 액세스하기 위해 적어도 디스플레이 및 네트워크(104)와의 통신 능력들을 포함하는 컴퓨팅 디바이스를 포함할 수 있다. 클라이언트 디바이스(110)는, 원격 디바이스, 워크스테이션, 컴퓨터, 범용 컴퓨터, 인터넷 어플라이언스, 핸드헬드 디바이스, 무선 디바이스, 휴대용 디바이스, 웨어러블 컴퓨터, 셀룰러 또는 모바일 전화, 개인 휴대 정보 단말기(PDA), 스마트폰, 태블릿, 울트라북, 넷북, 랩톱, 데스크톱, 멀티 프로세서 시스템, 마이크로프로세서 기반 또는 프로그래머블 가전 제품, 게임 콘솔, 셋탑 박스, 네트워크 PC, 미니 컴퓨터 등을 포함하지만, 이것으로만 제한되는 것은 아니다. 사용자(106)는 사람, 머신, 또는 클라이언트 디바이스(110)와 상호작용하는 기타 수단일 수 있다. 일부 실시예들에서, 사용자(106)는 클라이언트 디바이스(110)를 통해 소셜 메시징 시스템(130)과 상호작용한다. 사용자(106)는 네트워크화된 시스템(100)의 일부가 아닐 수 있지만, 클라이언트 디바이스들(110)과 연관될 수 있다.
도 1에서 도시된 바와 같이, 데이터 계층(128)은 정보 저장 레포지토리들 또는 데이터베이스(들)(134)에 대한 액세스를 용이하게 하는 데이터베이스 서버(들)(132)를 가진다. 데이터베이스(들)(134)는, 멤버 프로파일 데이터, 소셜 그래프 데이터(예를 들어, 소셜 메시징 시스템(130)의 멤버들 사이의 관계), 이미지 수정 선호도 데이터, 액세스가능성 데이터, 및 기타의 사용자 데이터와 같은 데이터를 저장하는 저장 디바이스이다.
개개인은 소셜 메시징 시스템(130)의 멤버가 되기 위하여 소셜 메시징 시스템(130)에 등록할 수 있다. 일단 등록되고 나면, 멤버는 소셜 메시징 시스템(130)상에서 소셜 네트워크 관계(예를 들어, 친구, 팔로워, 또는 연락처)를 형성할 수 있고, 소셜 메시징 시스템(130)에 의해 제공되는 광범위한 애플리케이션과 상호작용할 수 있다.
애플리케이션 로직 계층(126)은 다양한 애플리케이션 로직 컴포넌트(150)를 포함하며, 이것은 인터페이스 컴포넌트(들)(140)와 연계하여, 데이터 계층(128)에서의 다양한 데이터 소스 또는 데이터 서비스로부터 검색된 데이터를 갖는 다양한 사용자 인터페이스를 생성한다. 개개의 애플리케이션 로직 컴포넌트(150)는, 소셜 메시징 시스템(130)의 다양한 애플리케이션, 서비스 및 피처들과 연관된 기능을 구현하는데 이용될 수 있다. 예를 들어, 소셜 메시징 애플리케이션은 애플리케이션 로직 컴포넌트들(150)의 적어도 일부분으로 구현될 수 있다. 소셜 메시징 애플리케이션은, 클라이언트 디바이스들(110)의 사용자들이 텍스트와 사진 및 비디오와 같은 미디어 콘텐츠를 포함하는 메시지를 송수신하기 위한 메시징 메커니즘을 제공한다. 클라이언트 디바이스(110)는 (예를 들어, 제한된 또는 무제한의) 명시된 시간 기간 동안 소셜 메시징 애플리케이션으로부터의 메시지를 액세스하고 볼 수 있다. 한 예에서, 특정한 메시지는, 특정한 메시지가 처음 액세스될 때 시작하는 (예를 들어, 메시지 전송자에 의해 특정된) 미리 정의된 지속기간 동안 메시지 수신자에게 액세스 가능할 수 있다. 미리 정의된 지속기간이 경과한 후에, 메시지는 삭제되고 더 이상 메시지 수신자에게 액세스 가능할 수 없다. 물론, 다른 애플리케이션 및 서비스들은 그들 자신의 애플리케이션 로직 컴포넌트(150)에서 별개로 구현될 수 있다.
도 1에 예시된 바와 같이, 소셜 메시징 시스템(130)은 비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하고 객체들을 추적할 수 있는 객체 모델링 시스템(160)의 적어도 일부분을 포함할 수 있다. 유사하게, 클라이언트 디바이스(110)는 전술한 바와 같이 객체 모델링 시스템(160)의 적어도 일부분을 포함한다. 다른 예들에서, 클라이언트 디바이스(110)는 객체 모델링 시스템(160)의 전체를 포함할 수 있다. 클라이언트 디바이스(110)가 객체 모델링 시스템(160)의 일부분(또는 전부)을 포함하는 경우, 클라이언트 디바이스(110)는 단독으로 또는 소셜 메시징 시스템(130)과 협력하여 본 명세서에 설명된 객체 모델링 시스템(160)의 기능을 제공할 수 있다.
일부 실시예들에서, 소셜 메시징 시스템(130)은, 콘텐츠(예를 들어, 비디오 클립 또는 이미지)가 시청 시간 또는 시청 완료와 같은 삭제 트리거 이벤트에 뒤이어 삭제되는 단기 통신을 가능케 하는 단기 메시지 시스템일 수 있다. 이러한 실시예들에서, 디바이스는, 단기 메시지의 양태들을 생성, 전송, 수신 또는 디스플레이하는 것 중의 임의의 것의 맥락 내에서 본 명세서에서 설명된 다양한 컴포넌트들을 이용한다. 예를 들어, 객체 모델링 시스템(160)을 구현하는 디바이스는 비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하고 객체들을 추적할 수 있다. 디바이스는 비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하고, 단기 메시지, 메시징 애플리케이션, 엔터테인먼트 애플리케이션, 원격회의 애플리케이션, 증강 현실 애플리케이션, 또는 임의의 다른 적절한 애플리케이션에 대한 콘텐츠의 생성의 일부로서 객체들을 추적할 수 있다.
도 2에서, 다양한 실시예에서, 객체 모델링 시스템(160)은 독립형 시스템으로서 구현되거나 클라이언트 디바이스(110)와 연계하여 구현될 수 있고, 반드시 소셜 메시징 시스템(130)에 포함되는 것은 아니다. 객체 모델링 시스템(160)은 액세스 컴포넌트(210), 식별 컴포넌트(220), 추출 컴포넌트(230), 텍스처 컴포넌트(240), 추적 컴포넌트(250), 및 수정 컴포넌트(260)를 포함하는 것으로 도시되어 있다. 컴포넌트들(210 내지 260)의 전부 또는 일부는, 예를 들어, 네트워크 결합, 공유된 메모리 등을 통해 서로 통신한다. 컴포넌트들(210 내지 260)의 각각의 컴포넌트는 단일 컴포넌트로서 구현되거나, 다른 컴포넌트들 내에 조합되거나, 또는 복수의 컴포넌트로 더 세분될 수 있다. 예시적인 실시예들과 관련이 없는 다른 컴포넌트들도 역시 포함될 수 있지만, 도시되지는 않는다.
도 3은 일부 예시적인 실시예들에 따른, 비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하기 위한 예시적인 방법(300)을 예시하는 흐름도이다. 방법(300)의 동작들은, 객체 모델링 시스템(160)의 컴포넌트들에 의해 수행될 수 있고, 예시의 목적으로 이하에서 설명된다.
동작(310)에서, 액세스 컴포넌트(210)는 한 세트의 이미지를 수신하거나 그렇지 않으면 액세스한다. 이미지들의 세트의 적어도 일부는 얼굴의 적어도 일부분을 묘사할 수 있다. 액세스 컴포넌트(210)는 이미지들이 컴퓨팅 디바이스에서 캡처되고 있음에 따라 이미지들의 세트에 액세스할 수 있다. 일부 실시예들에서, 액세스 컴포넌트(210)는 클라이언트 디바이스(110)와 연관된 이미지 캡처 디바이스에 의해 캡처되고 애플리케이션의 사용자 인터페이스상에 제시되는 비디오 스트림으로서 하나 이상의 이미지를 수신한다. 액세스 컴포넌트(210)는 액세스 컴포넌트(210)를 포함하는 하드웨어의 일부분으로서 이미지 캡처 디바이스를 포함할 수 있다. 이들 실시예들에서, 액세스 컴포넌트(210)는 이미지 캡처 디바이스에 의해 캡처된 하나 이상의 이미지 또는 비디오 스트림을 직접 수신한다. 일부 경우들에서, 액세스 컴포넌트(210)는 아래에 더 상세히 설명되는 바와 같이, 하나 이상의 이미지 또는 비디오 스트림(예를 들어, 비디오 스트림을 포함하는 이미지들의 세트)의 전부 또는 일부를 객체 모델링 시스템(160)의 하나 이상의 컴포넌트에 전달한다.
동작(320)에서, 식별 컴포넌트(220)는 이미지들의 세트의 적어도 일부분 내의 관심 영역을 결정한다. 일부 실시예들에서, 식별 컴포넌트(220)는 이미지들의 세트 내의 얼굴에 묘사된 눈 또는 한 쌍의 눈을 포함하는 관심 영역을 결정한다. 일부 실시예들에서, 식별 컴포넌트(220)는 얼굴 랜드마크 추적을 이용하여 관심 영역을 결정한다. 관심 영역은 얼굴의 지정된 특징, 특성, 또는 속성과 연관될 수 있다. 예를 들어, 식별 컴포넌트(220)는 식별될 지정된 특징이 눈이라고 결정할 수 있다. 식별 컴포넌트(220)는, 눈과 연관된 이미지들의 세트 중 이미지들의 적어도 일부분 내에서 하나 이상의 얼굴 랜드마크를 식별할 수 있다. 그 다음, 식별 컴포넌트(220)는 눈과 연관된 하나 이상의 얼굴 랜드마크를 둘러싸는 영역을 결정할 수 있다. 일부 실시예들에서, 식별 컴포넌트(220)는 객체(예를 들어, 얼굴)에 묘사된 복수의 특징, 특성, 또는 속성을 둘러싸는 하나 이상의 이미지의 일부분으로서 관심 영역을 결정한다. 예를 들어, 식별 컴포넌트(220)는, 양쪽 눈, 양쪽 눈썹, 양쪽 입술, 명시된 주름, 이들의 조합, 또는 기타 임의의 적절한 특징을 둘러싸는 얼굴의 일부분으로서 관심 영역을 결정할 수 있다. 유사하게, 식별 컴포넌트(220)는 소다 용기상의 라벨, 동물의 특징들, 자동차의 특징들, 또는 이미지들의 세트의 적어도 일부분 내에 묘사된 적합한 객체의 임의의 다른 특징들, 특성들, 또는 양태들과 같은, 얼굴 이외의 객체상의 관심 영역을 결정할 수 있다.
동작(330)에서, 추출 컴포넌트(230)는 관심 영역 또는 관심 영역 내의 객체의 일부분을 추출한다. 추출 컴포넌트(230)는 관심 영역의 일부분을 세그먼트화하고 관심 영역의 나머지 부분들을 적어도 일시적으로 무시함으로써 관심 영역 내의 객체상의 관심 영역의 일부분을 추출할 수 있다. 일부 실시예들에서, 추출 컴포넌트(230)는 관심 영역으로부터 홍채 영역을 추출한다. 홍채 영역은 이미지들의 세트의 적어도 일부분에 묘사된 적어도 하나의 홍채에 대응할 수 있다.
일부 예들에서, 추출 컴포넌트(230)는 원하는 객체(예를 들어, 눈 내의 홍채)의 윤곽선, 에지, 또는 기타의 경계에 근접한 관심 영역의 일부분을 선택함으로써 관심 영역의 일부분(예를 들어, 홍채 영역)을 추출한다. 이전에, 그 동안에, 또는 이후에(예를 들어, 초기 식별 또는 추출 이후에), 추출 컴포넌트(230)는 관심 영역의 일부분 내의 객체의 하나 이상의 가려지거나, 방해받거나, 또는 기타 방식으로 숨겨진 부분을 식별할 수 있다. 추출 컴포넌트(230)는 가려진 부분들에 대응하는 객체의 가시적 섹션들을 결정하고, 가시적 섹션들로부터 가려진 부분들로 하나 이상의 컬러, 텍스처, 패턴, 또는 다른 시각적 양태들을 변환할 수 있다. 일단 시각적 양태들이 변환되면, 추출 컴포넌트(230)는 관심 영역의 완성된 객체 또는 그 일부분을 추출할 수 있다. 추출 컴포넌트(230)는 이후 객체의 가려진 부분에 대해 이루어진 수정들을 복귀시킬 수 있다.
동작(340)에서, 추출 컴포넌트(230)는 관심 영역의 영역을 세그먼트화한다. 관심 영역의 세그먼트화된 영역은 동작(330)에 관해 전술된 관심 영역의 추출된 부분을 둘러싸는 관심 영역의 일부분 또는 섹션일 수 있다. 일부 실시예들에서, 추출 컴포넌트(230)는 관심 영역 내의 공막(sclera) 영역을 세그먼트화한다. 공막 영역은 이미지들의 세트의 적어도 일부분에 묘사된 적어도 하나의 눈의 공막에 대응할 수 있다.
세그먼트화된 영역이 공막인 경우, 추출 컴포넌트(230)는 공막에 대응하는 관심 영역의 일부분을 결정함으로써 공막 영역을 세그먼트화한다. 일부 실시예들에서, 추출 컴포넌트(230)는 관심 영역 내의 초기 컬러 분포를 식별함으로써 공막을 결정한다. 추출 컴포넌트(230)는 실질적으로 유사한 초기 컬러 분포를 갖는 컬러 영역들 사이에 연장되는 에지들을 식별할 수 있다. 예를 들어, 추출 컴포넌트(230)는 피부 톤(skin tone)을 갖는 제1 컬러 영역(예를 들어, 관심 영역 내의 눈꺼풀), 홍채 톤을 갖는 제2 컬러 영역(예를 들어, 관심 영역 내의 홍채 또는 동공), 및 눈의 공막에 대해 적합한 범위 내의 초기 컬러 분포를 갖는 제3 컬러 영역을 식별할 수 있다. 추출 컴포넌트(230)는 제1 컬러 영역, 제2 컬러 영역, 및 제3 컬러 영역 사이에서 연장되는 에지들을 결정할 수 있다. 에지들은 컬러 경계들을 나타낼 수 있다.
그 다음, 추출 컴포넌트(230)는 공막 영역에 대한 최종 컬러 분포를 결정하거나 계산한다. 최종 컬러 분포는 공막 영역에 대한 우세 컬러 및 공막 영역에 대한 하나 이상의 컬러 변동을 결정할 수 있다. 우세 컬러는 백색의 변하는 음영들 또는 색조들일 수 있고, 컬러 변동들은 적색 음영들 또는 색조들(예를 들어, 정맥) 및 인간 공막에 공통적인 다른 변동들을 포함할 수 있다. 일부 경우들에서, 우세 컬러 및 컬러 변동들은 컬러 히스토그램(예를 들어, RGB)으로서 생성될 수 있다. 그 다음, 추출 컴포넌트(230)는 공막 영역 및 공막 영역의 컬러 분포를 텍스처 컴포넌트(240)에 전달할 수 있다. 그 다음, 텍스처 컴포넌트(240)는 공막 텍스처를 생성하기 위한 컬러 히스토그램의 컬러 채널들을 매칭할 수 있다.
동작(350)에서, 텍스처 컴포넌트(240)는 동작(330)에서 추출된 관심 영역의 일부분 및 동작(340)에서 추출된 관심 영역의 영역에 기초하여 관심 영역 내의 객체에 대한 텍스처를 생성한다. 일부 실시예들에서, 텍스처 컴포넌트(240)는 홍채 영역 및 공막 영역에 기초하여 눈에 대한 텍스처를 생성한다. 텍스처 컴포넌트(240)는 홍채 영역 및 공막 영역의 컬러들과 텍스처들을 조합함으로써 텍스처를 생성할 수 있다. 일부 실시예들에서, 텍스처 컴포넌트(240)는 공막 템플릿들의 세트 또는 공막 텍스처들을 포함하는 눈 템플릿들의 세트로부터의 공막 템플릿에 공막 영역을 매칭시킴으로써 텍스처를 생성한다. 그 다음, 텍스처 컴포넌트(240)는 동작(330)에서 추출된 홍채 영역에 대한 홍채 텍스처의 컬러, 컬러 분포, 또는 텍스처와 매칭되도록 눈 템플릿의 홍채 영역을 수정함으로써 텍스처를 생성할 수 있다. 이러한 실시예들에서, 텍스처 컴포넌트(240)는 이전부터 존재하는 텍스처 모델을 수정함으로써 텍스처를 생성할 수 있다. 텍스처를 생성하든 텍스처 템플릿 또는 모델을 수정하든 간에, 텍스처 컴포넌트(240)는 홍채, 공막, 및 동공의 속성 및 특성과 매칭되도록 텍스처를 생성한다.
일부 실시예들에서, 텍스처 컴포넌트(240)는 홍채 영역에 대한 홍채 텍스처를 생성함으로써 눈 텍스처를 생성한다. 텍스처는 홍채 영역으로부터 선택된 적어도 하나 이상의 컬러 패치에 기초할 수 있다. 홍채 텍스처는 홍채 영역 및 홍채의 가려진 부분들에 매핑된 컬러 패치들을 포함할 수 있다. 일부 실시예들에서, 텍스처 컴포넌트(240)는 실제 홍채 영역으로부터 홍채 텍스처를 생성한다. 텍스처 컴포넌트(240)는 또한 홍채 영역의 컬러 및 컬러 변동들을 홍채 템플릿들의 세트로부터 선택된 홍채 템플릿에 매칭하거나 근사화함으로써 홍채 텍스처를 생성할 수 있다.
텍스처 컴포넌트(240)는 미리 결정된 공막 텍스처들의 세트로부터 공막 텍스처를 선택할 수 있다. 공막 텍스처는 공막 영역의 컬러 분포에 기초하여 선택될 수 있다. 일부 실시예들에서, 텍스처 컴포넌트(240)는, 공막 영역의 우세 컬러, 하나 이상의 컬러 변동, 또는 이들의 조합 중 하나 이상을 공막 템플릿에 매칭 또는 근사화함으로써 공막 텍스처를 선택한다. 공막 템플릿은 이미지들의 세트를 수신하기 전에 생성된 공막 템플릿들의 세트로부터 선택될 수 있다. 일부 실시예들에서, 텍스처 컴포넌트(240)는 공막 영역의 컬러 분포의 우세 컬러에 기초하여 공막 템플릿들의 세트 중 공막 템플릿들의 서브세트에 대한 공막 영역의 초기 매칭을 수행한다. 그 다음, 텍스처 컴포넌트(240)는, 공막 영역의 하나 이상의 컬러 변동 내의 하나 이상의 컬러 변동 또는 패턴을 매칭 또는 근사화하는, 공막 템플릿들의 서브세트의, 공막 템플릿으로서의 공막 텍스처를 선택할 수 있다.
텍스처 컴포넌트(240)는 홍채 영역에 근접한 공막 텍스처의 일부분과 홍채 텍스처의 에지를 혼합할 수 있다. 텍스처 컴포넌트(240)는 홍채 영역을 컬러 좌표 또는 컬러 좌표 값들의 세트로부터 이미지 좌표 또는 이미지 좌표 값들의 세트로 변경하면서 홍채 텍스처의 에지를 혼합할 수 있다. 텍스처 컴포넌트(240)는 2개의 텍스처가 만나는 교차점에서 홍채 텍스처 및 공막 텍스처의 컬러들을 혼합할 수 있다. 일부 실시예들에서, 더 현실적인 눈 텍스처에 대해 홍채 텍스처를 둘러싸는 선명한 에지를 제거하기 위해 홍채 텍스처 및 공막 텍스처 각각에 대해 임계값(예를 들어, 동적 또는 미리 정의된 픽셀 거리)이 혼합될 수 있다. 텍스처는 이미지들의 세트 내에 위치되고 이미지들의 세트 내에 묘사된 얼굴의 눈들을 대체할 때 정확할 수 있고 자연스럽거나 현실적으로 보일 수 있다. 텍스처는 또한 디지털 아바타, 애니메이션, 또는 사람 또는 동물의 다른 표현 내에 삽입될 수 있다. 이미지들의 세트에 대해 설명되었지만, 일부 실시예들에서, 텍스처는 단일 이미지로부터 생성될 수 있다. 단일 이미지 및 텍스처는 전술한 바와 같이 얼굴로부터 생성된 모델들 및 텍스처들에 기초하여 애니메이션화될 수 있는 디지털 아바타를 만들기 위해 사용될 수 있다. 또한, 텍스처는 컬러들(예를 들어, 눈 컬러 또는 공막 컬러), 치수들 또는 비율들(예를 들어, 형상 및 크기), 또는 임의의 다른 적절한 모델링된 또는 텍스처링된 특성들 또는 속성들을 변경하도록 수정될 수 있다.
도 4는 일부 예시적인 실시예들에 따른, 비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하기 위한 예시적인 방법(400)을 예시하는 흐름도이다. 방법(400)의 동작들은 객체 모델링 시스템(160)의 컴포넌트들에 의해 수행될 수 있다. 일부 예들에서, 방법(400)의 특정 동작들은, 이하에서 더 상세히 설명되는 바와 같이, 방법(300)의 하나 이상의 동작을 이용하여 또는 방법(300)의 하나 이상의 동작의 서브동작들로서 수행될 수 있다. 예를 들어, 방법(400)의 동작들 중 적어도 일부는 전술된 방법(300)의 동작(330)의 일부로서 또는 그 실행에 응답하여 수행될 수 있다.
동작(410)에서, 추출 컴포넌트(230)는 관심 영역 내의 홍채에 대한 원형 영역을 생성한다. 원형 영역은 원형 윤곽으로서 생성될 수 있다. 원형 윤곽은 관심 영역에서 홍채 주위에 위치할 수 있다. 일부 경우들에서, 원형 영역은 원의 근사이다. 예를 들어, 원형 영역은 타원형, 타원체, 또는 원과 유사한 다른 윤곽일 수 있다.
일부 실시예들에서, 추출 컴포넌트(230)는 관심 영역 내의 홍채의 에지의 적어도 일부분을 식별함으로써 원형 영역을 생성한다. 추출 컴포넌트(230)는 원형 형상을 결정할 수 있다. 원형 형상은 홍채의 에지의 부분에 기초하여 크기가 정해질 수 있다. 일부 실시예들에서, 추출 컴포넌트는 홍채의 직경 또는 원주 중 하나 이상을 결정한다. 원주는 하나 이상의 눈꺼풀에 의해 가려질 수 있는 홍채의 일부분을 포함하여, 홍채의 추정된 영역에 기초하여 결정될 수 있다. 추출 컴포넌트(230)는 임의의 적절한 측정 단위(예를 들어, 밀리미터, 인치, 픽셀 등)로 직경 또는 원주(예를 들어, 홍채 측정)를 결정할 수 있다. 그 다음, 추출 컴포넌트(230)는 홍채 측정과 매칭되거나 이것을 근사화하는 치수 또는 측정을 갖는 원형 형상을 생성할 수 있다.
추출 컴포넌트(230)는 원형 형상을 홍채의 에지 부분과 정렬시킬 수 있다. 일부 실시예들에서, 추출 컴포넌트(230)는, 원형 형상의 적어도 일부분이 홍채 영역과 교차하거나 접촉하도록, 관심 영역 내에서 원형 형상을 이동시킬 수 있다. 추출 컴포넌트(230)는 또한, 원형 형상의 적어도 일부분이 홍채 영역과 교차하거나 접촉하도록, 관심 영역 내의 원형 형상의 크기, 형상 또는 치수 중 하나 이상을 크기조정하거나 기타 방식으로 변경할 수 있다. 일부 실시예들에서, 추출 컴포넌트(230)는 원형 형상을 눈꺼풀에 의해 가려지지 않은 홍채의 부분들과 정렬한다. 추출 컴포넌트(230)는 또한 홍채 영역에 대한 좌표계를 극 좌표계로 변환하여, 홍채 영역의 중심을 원점으로 취할 수 있다. 추출 컴포넌트(230)는 정렬된 원형 형상 내에 포함된 관심 영역의 부분을 추출 또는 세그먼트화할 수 있다.
동작(420)에서, 추출 컴포넌트(230)는 홍채의 미지 영역을 식별한다. 미지 영역은 눈의 눈꺼풀에 의해 차단된 홍채의 일부분에 대응할 수 있다. 일부 실시예들에서, 추출 컴포넌트(230)는 원형 형상 또는 세그먼트화된 홍채 영역 내의 하나 이상의 컬러 영역을 결정함으로써 미지 영역을 식별한다. 그 다음, 추출 컴포넌트(230)는 컬러 영역들을 홍채 컬러들의 세트 및 눈꺼풀 컬러들의 세트 중 하나 이상과 연관된 컬러들과 비교할 수 있다. 추출 컴포넌트(230)는 홍채의 미지 영역을, 눈꺼풀 컬러와 매칭되거나 근사화하는 컬러를 갖는 홍채 영역의 부분들로서 식별할 수 있다. 일부 실시예들에서, 추출 컴포넌트(230)는 홍채 컬러들의 세트 중 홍채 컬러와 매칭되거나 근사화하는 컬러를 갖는 홍채 영역의 부분들을 식별한다. 홍채 컬러 또는 동공 컬러와 매칭되거나 근사화하지 않는 홍채 영역의 부분들은 홍채의 미지 영역들로서 선택되거나 다른 경우에는 식별될 수 있다.
동작(430)에서, 추출 컴포넌트(230)는 원형 영역 내의 하나 이상의 컬러 패치를 결정한다. 하나 이상의 컬러 패치는 홍채의 컬러 부분에 대응할 수 있다. 일부 실시예들에서, 추출 컴포넌트(230)는 홍채 컬러와 매칭 또는 근사화하거나, 눈꺼풀 컬러와 매칭 또는 근사화하는데 실패하거나, 특정된 컬러 값들의 범위 내의 값들(예를 들어, 색조, 채도, 또는 컬러 값들)을 갖거나, 다른 경우에는 홍채의 일부로서 식별되는 하나 이상의 컬러 패치를 선택한다. 추출 컴포넌트(230)는 정사각형 영역, 원형 영역, 타원형 영역, 또는 홍채에 존재하는 하나 이상의 컬러를 캡처하기 위한 임의의 다른 적절한 형상을 이용하여 하나 이상의 컬러 패치를 샘플링할 수 있다.
동작(440)에서, 추출 컴포넌트(230)는 컬러 패치들을 미지 영역으로 변환한다. 일부 실시예들에서, 추출 컴포넌트(230)는 복제, 복사 및 붙여넣기, 또는 홍채의 컬러를 홍채 영역 내의 미지 영역상으로 복제하기 위한 다른 컬러 변환들에 의해 컬러 패치들을 미지 영역으로 변환한다. 일부 실시예들에서, 추출 컴포넌트(230)는 패치 매칭 인페인팅 알고리즘(patch match inpainting algorithm)을 이용하여 홍채 컬러를 미지 영역으로 변환한다. 예를 들어, 추출 컴포넌트(230)는 컬러 패치들을 변환하기 위해 미지 영역들 내에서 유사 영역들을 결정할 수 있다. 그 다음, 추출 컴포넌트(230)는 컬러 패치로 유사 영역의 일부를 커버할 수 있다. 컬러 패치는 홍채로부터 선택되고 그리고 정의된 형상 또는 치수(예를 들어, 미리 정의된 또는 동적 픽셀 치수를 갖는 컬러의 원형 또는 정사각형 패치)를 커버하는 컬러 또는 컬러들일 수 있다.
추출 컴포넌트(230)는 하나 이상의 컬러 패치로 미지 영역을 커버할 수 있다. 일부 실시예들에서, 추출 컴포넌트(230)는 복수의 컬러 패치 사이에서 순환하여 미지 영역을 커버하거나, 단일 컬러 패치를 복제하거나, 미지 영역의 지정된 영역들을 단일 또는 복수의 컬러 패치와 매칭하거나, 이들의 조합, 또는 임의의 다른 적절한 인페인팅 방법 또는 알고리즘을 수행할 수 있다. 예를 들어, 추출 컴포넌트(230)는 미지 영역에 근접한 홍채의 영역들로부터 선택된 컬러 패치들, 미지 영역에 대향하여 위치된 컬러 패치들, 또는 미지 영역과 유사한 통계를 갖는 또는 미지 영역 주변에 있는 컬러 패치들로 미지 영역의 부분들을 커버할 수 있다. 변환은 변환 전에 이미지 위치들을 컬러 좌표계에 매핑함으로써 수행될 수 있다. 그 다음, 추출 컴포넌트(230)는 미지 영역에 대한 이미지들의 세트 내의 위치들을 미지 영역의 부분들을 인페인팅하기 위해 사용되는 컬러 패치들과 매칭시킬 수 있다.
동작(450)에서, 추출 컴포넌트(230)는 미지 영역이 변환된 하나 이상의 컬러 패치로 채워져 있는지를 결정한다. 추출 컴포넌트(230)는 홍채 영역의 어떤 추가 부분들도 눈꺼풀 컬러와 일치하지 않는다고 판정함으로써 미지 영역이 채워져 있다고 결정할 수 있다. 일부 실시예들에서, 추출 컴포넌트(230)는 미지 영역에 대한 이미지 위치들을 식별함으로써 미지 영역이 채워져 있다는 것을 결정한다. 그 다음, 추출 컴포넌트(230)는 미지 영역과 연관된 이미지 위치들 각각이 원래의 컬러를 대체하는, 홍채 영역으로부터 변환된 컬러를 갖는 것을 결정할 수 있다. 특정 실시예들 또는 예들로 설명되었지만, 추출 컴포넌트(230)는 임의의 적절한 메트릭, 수단, 또는 알고리즘을 사용하여 미지 영역이 채워진 것을 결정할 수 있다는 것을 이해해야 한다.
동작(460)에서, 추출 컴포넌트(230)는 컬러 패치들을 변환하기 전에 관심 영역을 이미지에 대한 원래의 컬러 좌표계로 복귀시킨다. 일부 실시예들에서, 추출 컴포넌트(230)는 추출된 홍채 영역의 일부분을 폐기하여, 홍채의 치수, 컬러, 및 배치를 나타내는 데이터 또는 메타데이터를 보유할 수 있다. 추출 컴포넌트(230)는 대표 데이터를 하나 이상의 컴포넌트에 전달하여, 추출된 홍채 또는 대표 데이터를 이용하여 이미지들의 세트의 추적 또는 수정을 수행할 수 있다. 일부 실시예들에서, 추출 컴포넌트(230)는 컬러 패치 인페인팅 및 컬러 패치 인페인팅을 위한 이미지 위치들의 매핑을 보유하면서 관심 영역을 원래의 컬러 좌표계 및 이미지 좌표계로 복귀시킨다.
도 5는 비디오 스트림 내의 객체의 텍스처 모델을 추적하는 예시적인 방법(500)을 예시하는 흐름도를 묘사한다. 방법(500)의 동작들은 객체 모델링 시스템(160)의 컴포넌트들에 의해 수행될 수 있다. 일부 경우들에서, 방법(500)의 특정 동작들은, 이하에서 더 상세히 설명되는 바와 같이, 방법(300) 또는 방법(400)의 하나 이상의 동작, 또는 방법(300) 또는 방법(400)의 하나 이상의 동작의 하위 동작들을 이용하여 수행될 수 있다. 예를 들어, 방법(500)의 동작들은 방법들(300 또는 400)의 동작들 중 적어도 일부 내에서 또는 그 후에 수행될 수 있다.
동작(510)에서, 추적 컴포넌트(250)는 관심 영역 내의 포인트를 식별한다. 일부 실시예들에서, 추적 컴포넌트(250)는 포인트를 관심 영역 내의 동공 위치로서 식별한다. 일부 실시예들에서, 동공 위치는 홍채 영역 및 공막 영역에 기초하여 결정된다. 추적 컴포넌트(250)는 동공 위치를 홍채 영역 내의 중심점 또는 홍채 영역의 검은 부분 내의 중심점으로서 결정할 수 있다.
동작(520)에서, 추적 컴포넌트(250)는 눈에 대한 제1 초점을 결정한다. 일부 실시예들에서, 제1 초점은 동공 위치에 기초한다. 추적 컴포넌트(250)는 동공 위치 및 공막 영역 내의 하나 이상의 포인트로부터의 동공 위치의 거리에 기초하여 제1 초점을 결정할 수 있다. 예를 들어, 추적 컴포넌트(250)는 공막 영역의 에지에 기초한 눈의 좌측 코너 또는 우측 코너에 대한 동공 로케이션의 위치에 기초하여 제1 초점을 결정할 수 있다. 추적 컴포넌트(250)는 또한 하나 이상의 얼굴 랜드마크에 기초하여 제1 초점을 결정할 수 있다. 예를 들어, 추적 컴포넌트(250)는 눈의 하나 이상의 코너, 눈꺼풀을 따른 하나 이상의 포인트, 코와 연관된 하나 이상의 포인트, 입과 연관된 하나 이상의 포인트, 눈썹과 연관된 하나 이상의 포인트, 이들의 조합, 또는 이미지들의 세트 중 이미지들의 적어도 일부분에 존재하는 임의의 다른 적절한 얼굴 랜드마크에 기초하여 제1 초점을 결정할 수 있다.
동작(530)에서, 수정 컴포넌트(260)는 눈이 제1 초점을 제2 초점으로 변경하기 위해 텍스처의 일부분을 수정한다. 일부 실시예들에서, 제2 초점은 제1 초점의 위치와 상이한 위치로 지향된다. 수정 컴포넌트(260)는 위에서 설명된 방법(300)의 동작(350)에서 생성된 텍스처로 동공, 홍채, 및 공막 중 하나 이상의 적어도 일부분을 대체할 수 있다. 일부 실시예들에서, 수정 컴포넌트(260)는 전체 눈을 동작(350)에서 생성된 눈 텍스처로 대체한다. 그 다음, 눈 텍스처는 얼굴과 독립적으로 또는 얼굴의 방향, 자세, 각도, 또는 다른 오리엔테이션과 협력하여 제2 초점에 지향될 수 있다. 눈 텍스처는 또한 폐색(occlusion)들에 대해 조정하기 위해 사용될 수 있다.
동공, 홍채, 및 공막의 일부분을 대체하는 텍스처는 동작(510)에서 식별된 포인트와 상이한 이미지 위치에 위치된 중심점을 갖는 동공을 가질 수 있다. 예를 들어, 얼굴이 원격 회의에 등장하고 제1 초점이 카메라 대신에 스크린에서 지향되는 경우, 수정 컴포넌트(260)는 제1 초점으로부터 제2 초점으로 초점을 조절하도록 눈의 적어도 일부분 또는 전체를 대체하여, 이미지들의 세트 내의 눈들이 원격 회의 참가자의 얼굴을 캡처하는 카메라를 향해 지향되는 것으로 보이도록 할 수 있다. 유사하게, 메시징, 엔터테인먼트, 또는 아바타 생성 컴포넌트에서, 수정 컴포넌트(260)는 동작(350)에서 생성된 텍스처를 사용하여, 눈을 수정하여, 사용자 인터페이스에 묘사된 증강 현실 요소, 비디오 스트림에 등장하는 캐릭터, 비디오 게임의 일부분, 또는 임의의 다른 적절한 방향에서 보는 것으로 보이도록 할 수 있다.
도 6은 일부 예시적인 실시예들에 따른, 비디오 스트림 내의 객체의 텍스처 모델을 추적하기 위한 예시적인 방법(600)을 예시하는 흐름도를 묘사한다. 방법(600)의 동작들은 객체 모델링 시스템(160)의 컴포넌트들에 의해 수행될 수 있다. 일부 경우들에서, 방법(600)의 특정 동작들은, 이하에서 더 상세히 설명되는 바와 같이, 방법(300), 방법(400), 또는 방법(500) 중 하나 이상의 동작, 또는 방법들(300, 400, 또는 500) 중 하나 이상의 것의 하나 이상의 동작의 하위 동작들을 이용하여 수행될 수 있다. 예를 들어, 방법(600)의 동작들은 방법(600)의 동작들 또는 하위 동작들의 일부로서 수행될 수 있다. 예를 들어, 방법(600)의 동작들은 또한 방법들(300 또는 400)의 동작들 중 적어도 일부 내에서 또는 그 후에 수행될 수 있다.
동작(610)에서, 추적 컴포넌트(250)는 이미지들의 세트 내에 묘사된 얼굴에 대한 얼굴 랜드마크들의 세트를 결정한다. 일부 실시예들에서, 추적 컴포넌트(250)는 동작(310)에서 전술된 이미지들의 세트 내의 얼굴을 식별함으로써 얼굴 랜드마크들의 세트를 결정한다. 추적 컴포넌트(250)는 이미지들의 세트 내의 얼굴상의 알려진 얼굴 랜드마크들을 식별할 수 있다. 예를 들어, 알려진 얼굴 랜드마크들은, 눈들에 대한 코너 포인트들, 코에 대한 하나 이상의 포인트, 입에 대한 하나 이상의 포인트, 눈썹상의 하나 이상의 포인트, 턱상의 하나 이상의 포인트, 이들의 조합, 및 기타 임의의 적절한 얼굴 랜드마크 포인트를 포함할 수 있다. 얼굴 랜드마크 포인트들은 하나의 얼굴을 또 다른 얼굴과 구별하기 위해 사용될 수 있는 얼굴 내에 묘사된 하나 이상의 포인트, 픽셀, 특성, 속성, 특징, 또는 다른 요소일 수 있다. 일부 실시예들에서, 추적 컴포넌트(250)는, 얼굴 추적 또는 얼굴 분석 동작, 알고리즘, 또는 프로그램에 흔하게 이용되는, 이미지들의 세트 내의 얼굴상의 얼굴 랜드마크 포인트들을 결정한다. 일부 실시예들에서, 얼굴 랜드마크들(예를 들어, 알려진 얼굴 랜드마크들 및 랜드마크들의 상대적 위치들)은 추적 컴포넌트(250)에 대한 입력으로서 수신될 수 있다. 그 다음, 추적 컴포넌트(250)는 이미지들의 세트 내의 얼굴에 대한 얼굴 랜드마크들을 정렬 또는 식별할 수 있다.
동작(620)에서, 추적 컴포넌트(250)는 이미지들의 세트 내에 묘사된 얼굴에 대한 얼굴 모델을 결정한다. 일부 실시예들에서, 얼굴 모델은 눈들의 3차원 표현을 갖는다. 일부 실시예들에서, 3차원 얼굴 모델은 사람 얼굴에 대한 얼굴 랜드마크의 3차원 위치를 나타내는 메시일 수 있다. 일부 실시예들에서, 추적 컴포넌트(250)는 얼굴 랜드마크들 및 이미지들의 세트와 함께 메시(예를 들어, 3차원 얼굴 모델)를 입력으로서 취할 수 있다. 얼굴 모델은 얼굴에 대한 얼굴 랜드마크들의 세트의 적어도 일부분과 정렬될 수 있다. 일부 실시예들에서, 추적 컴포넌트(250)는 메시상의 포인트들을 공통 평면에서의 또는 얼굴 랜드마크 포인트들에 근접한 얼굴 랜드마크들과 정렬시킨다. 예를 들어, 추적 컴포넌트(250)는 이미지들의 세트 내의 눈들의 코너들에 대한 얼굴 랜드마크 포인트들에 대한 메시의 포인트들을 정렬시킬 수 있다.
메시는 안구 모델을 위치 결정하고 그 생성을 개시하는데 이용될 수 있다. 예를 들어, 메시는 앞서 설명된 동작(350)에서 발생된 텍스처에 대해 증강(예컨대, 3차원 양태를 제공)하기 위해 사용될 수 있다. 일부 실시예들에서, 텍스처 컴포넌트는 메시의 하나 이상의 정점을 선택하고(240), 이미지들의 세트 내에 묘사된 눈들에 대한 바이오메트릭 정보를 나타내는 하나 이상의 포인트를 식별하고, 및 텍스처를 얼굴 랜드마크들 및 메시의 정점들 중 하나 이상의 것에 스케일링한다.
동작(630)에서, 추적 컴포넌트(250)는 관심 영역 내의 동공 위치를 식별한다. 동공 위치는 홍채 영역 및 공막 영역에 기초하여 결정될 수 있다. 일부 실시예들에서, 추적 컴포넌트(250)는 동공 위치를 이미지들의 세트 내의 동공의 2차원 위치(예를 들어, 홍채 영역 내의 동공 내의 중심점)로서 식별한다. 그 다음, 추적 컴포넌트(250)는 동공 위치로부터 이미지들의 세트를 캡처하는 카메라의 중심까지의 라인을 그리거나 식별할 수 있다. 라인은 수학식 1: Ax+By+C=0을 사용하여 식별될 수 있다. 일부 실시예들에서, 라인은 메시를 통해 통과하고, 메시상의 하나 이상의 포인트, 하나 이상의 얼굴 랜드마크 포인트, 및 카메라의 시야의 중심의 상대적 위치들에 기초하여 정렬된다. 추적 컴포넌트(250)는 카메라의 시야 내의 좌표계와의 메시 및 얼굴 랜드마크들의 정렬에 기초하여 라인을 그릴 수 있다. 일부 예들에서, 추적 컴포넌트(250)는 얼굴 랜드마크 포인트들의 상대적 위치들을 이용하여 2차원 평면상의 라인의 결과를 체크할 수 있다. 그 다음, 추적 컴포넌트(250)는 라인을 눈의 3차원 표현(예컨대, 동작(350)에서 생성되고 메시를 사용하여 수정된 텍스처)의 중심에 링크시킬 수 있다. 그 다음, 라인의 좌표는 눈에 대한 3차원 텍스처에 기초하여 각도 좌표로 변환될 수 있다.
일부 실시예들에서, 추적 컴포넌트(250)는 눈 방정식, 수학식 2: (x - xc)2 + (y - yc)2 + (z - zc)2 = R2와 조합하여 라인 방정식(예를 들어, 수학식 1)을 사용한다. 수학식 2에서, xc, yc, 및 zc는 눈의 중심을 나타내고, R은 눈의 반경을 나타낸다. 수학식 1 및 수학식 2를 푸는 것은 교차에 대한 좌표를 제공한다. 교차의 좌표는 시선 방향을 계산하는데 이용될 수 있다. 시선 방향은 이미지들의 세트를 캡처하는데 이용되는 카메라의 시야에 대해 계산될 수 있다.
동작(640)에서, 추적 컴포넌트(250)는 동공 위치 및 얼굴 모델에 기초하여 눈의 초점을 추적한다. 일부 실시예들에서, 초점은 프레임별로 추적된다. 추적 컴포넌트(250)는 눈이 존재하는 각각의 프레임에 대해 3차원 공간 내에서 눈의 시선(예를 들어, 각각의 눈에 대한 초점)을 추적한다. 예를 들어, 눈이 가려질 때(예를 들어, 눈꺼풀을 깜빡일 때), 추적 컴포넌트(250)는 초점을 추적하지 않거나 시선 방향을 계산하지 않을 수 있다. 일부 실시예들에서, 시선 방향은 수정 컴포넌트(260)에 의해 수정될 수 있다. 시선 방향은 또한 사용자가 주의를 기울이고 있는 사용자 인터페이스의 부분들을 결정하기 위해 추적될 수 있다. 일부 실시예들에서, 시선 방향은 사용자 인터페이스의 동작을 제어하고, 사용자에 대한 관심 영역들을 식별하며, 및 기타의 적절한 응용을 위해 이용될 수 있다.
모듈, 컴포넌트, 및 로직
특정 실시예들은, 여기서 로직 또는 다수의 컴포넌트, 모듈 또는 메커니즘을 포함하는 것으로서 설명된다. 컴포넌트들은 하드웨어 컴포넌트들을 구성할 수 있다. "하드웨어 모듈"은, 특정의 동작을 수행할 수 있는 유형 유닛(tangible unit)이며, 특정의 물리적 방식으로 구성되거나 배열될 수 있다. 다양한 예시적인 실시예에서, 컴퓨터 시스템(예를 들어, 독립형 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하드웨어 컴포넌트(예를 들어, 적어도 하나의 하드웨어 프로세서, 프로세서, 또는 프로세서 그룹)는, 본 명세서에서 설명된 특정의 동작들을 수행하도록 동작하는 하드웨어 컴포넌트로서 소프트웨어(예를 들어, 애플리케이션 또는 애플리케이션 부분)에 의해 구성된다.
일부 실시예들에서, 하드웨어 컴포넌트는, 기계적으로, 전자적으로, 또는 이들의 임의의 적절한 조합으로 구현된다. 예를 들어, 하드웨어 컴포넌트는 특정의 동작들을 수행하도록 영구적으로 구성된 전용 회로 또는 로직을 포함할 수 있다. 예를 들어, 하드웨어 컴포넌트는, FPGA(Field-Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit) 등의 특수 목적 프로세서일 수 있다. 하드웨어 컴포넌트는 또한, 특정 동작들을 수행하도록 소프트웨어에 의해 일시적으로 구성된 프로그래머블 로직 또는 회로를 포함할 수 있다. 예를 들어, 하드웨어 컴포넌트는, 범용 프로세서 또는 다른 프로그래머블 프로세서 내에 포함된 소프트웨어를 포함할 수 있다. 기계적으로, 전용 및 영구적으로 구성된 회로로, 또는 일시적으로 구성된 회로(예를 들어, 소프트웨어에 의해 구성됨)로 하드웨어 컴포넌트를 구현하려는 결정은 비용 및 시간 고려사항에 의해 좌우된다는 것을 이해할 것이다.
따라서, "하드웨어 컴포넌트"라는 구문은, 특정 방식으로 동작하거나 본 명세서에서 설명된 특정 동작들을 수행하도록 물리적으로 구성되거나, 영구적으로 구성되거나(예를 들어, 하드와이어드(hardwired)), 또는 일시적으로 구성된(예를 들어, 프로그래밍된) 엔티티라면 무엇이든, 유형 엔티티(tangible entity)를 포괄하는 것으로 이해되어야 한다. 본 명세서에서 사용될 때, "하드웨어-구현된 컴포넌트"란 하드웨어 컴포넌트를 말한다. 하드웨어 컴포넌트들이 일시적으로 구성되는(예를 들어, 프로그래밍되는) 실시예들을 고려할 때, 하드웨어 컴포넌트들 각각은 시간상 임의의 한 인스턴스에서 구성되거나 인스턴스화될 필요는 없다. 예를 들어, 하드웨어 컴포넌트가 특수 목적 프로세서가 되도록 소프트웨어에 의해 구성된 범용 프로세서를 포함하는 경우에, 범용 프로세서는 상이한 시간들에서 (예를 들어, 상이한 하드웨어 컴포넌트들을 포함하는) 제각기 상이한 특수 목적 프로세서들로서 구성될 수 있다. 소프트웨어는, 그에 따라 특정한 프로세서 또는 프로세서들을 구성하여, 예를 들어, 한 시간 인스턴스에서는 특정한 하드웨어 컴포넌트를 구성하고 상이한 시간 인스턴스에서는 상이한 하드웨어 컴포넌트를 구성할 수 있다.
하드웨어 컴포넌트들은 다른 하드웨어 컴포넌트들에 정보를 제공하고 그들로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 컴포넌트들은 통신가능하게 결합된 것으로 간주될 수 있다. 복수의 하드웨어 컴포넌트가 동시에 존재하는 경우, 통신은 하드웨어 컴포넌트들 중 2개 이상의 것 사이에서 또는 그 중에서 (예를 들어, 적절한 회로 및 버스를 통한) 신호 전송을 통해 달성될 수 있다. 다수의 하드웨어 컴포넌트들이 상이한 시간들에서 구성되거나 인스턴스화되는 실시예들에서, 그러한 하드웨어 컴포넌트들 사이의 통신은, 예를 들어, 다수의 하드웨어 컴포넌트들이 액세스하는 메모리 구조들 내의 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 컴포넌트는 어떤 동작을 수행하고 그 동작의 출력을 이것이 통신가능하게 결합된 메모리 디바이스에 저장한다. 그 다음, 추가의 하드웨어 컴포넌트는, 나중에, 메모리 디바이스에 액세스하여 저장된 출력을 검색 및 처리할 수 있다. 하드웨어 컴포넌트는 또한, 입력 또는 출력 디바이스들과의 통신을 개시할 수 있고, 자원(예를 들어, 정보 모음)에 대해 동작할 수 있다.
본 명세서에서 설명된 예시적인 방법들의 다양한 동작들은, 적어도 부분적으로, 관련 동작들을 수행하도록 (예를 들어, 소프트웨어에 의해) 일시적으로 구성되거나 영구적으로 구성된 프로세서들에 의해 수행될 수 있다. 일시적으로 또는 영구적으로 구성되어 있는지에 관계없이, 이러한 프로세서들은 본 명세서에서 설명된 동작 또는 기능을 수행하도록 동작하는 프로세서-구현된 컴포넌트들을 구성한다. 본 명세서에서 사용될 때, "프로세서-구현된 컴포넌트"란 프로세서를 이용하여 구현된 하드웨어 컴포넌트를 말한다.
유사하게, 본 명세서에서 설명된 방법들은 하드웨어의 한 예인 특정 프로세서 또는 프로세서들에 의해 적어도 부분적으로 프로세서-구현될 수 있다. 예를 들어, 방법의 동작들 중 적어도 일부는 프로세서들 또는 프로세서-구현된 컴포넌트들에 의해 수행될 수 있다. 게다가, 프로세서들은 또한, "클라우드 컴퓨팅" 환경에서 또는 "서비스로서의 소프트웨어(software as a service, SaaS)"로서 관련 동작들의 수행을 지원하도록 동작할 수 있다. 예를 들어, 동작들 중 적어도 일부는, (프로세서들을 포함하는 머신의 예로서의) 컴퓨터들의 그룹에 의해 수행될 수 있고, 이들 동작들은 네트워크(예를 들어, 인터넷)를 통해 및 적절한 인터페이스(예를 들어, 애플리케이션 프로그램 인터페이스(API))를 통해 액세스가능하다.
특정 동작들의 수행은 단일 머신 내에 상주할 뿐만 아니라 다수의 머신에 걸쳐 배치된 프로세서들 사이에 분산될 수 있다. 일부 예시적인 실시예들에서, 프로세서들 또는 프로세서-구현된 컴포넌트들은 단일의 지리적 로케이션에(예를 들어, 가정 환경, 사무실 환경, 또는 서버 팜 내에) 위치된다. 다른 예시적인 실시예에서, 프로세서들 또는 프로세서-구현된 컴포넌트들은 다수의 지리적 로케이션에 걸쳐 분산된다.
응용
도 7은, 일부 실시예들에 따른, 모바일 운영 체제(예를 들어, IOSTM, ANDROIDTM, WINDOWS® Phone 또는 기타의 모바일 운영 체제)를 실행하는 예시적인 모바일 디바이스(700)를 예시한다. 일 실시예에서, 모바일 디바이스(700)는 사용자(702)로부터 촉각 데이터를 수신하도록 동작가능한 터치 스크린을 포함한다. 예를 들어, 사용자(702)는 모바일 디바이스(700)를 물리적으로 터치(704)할 수 있고, 터치(704)에 응답하여, 모바일 디바이스(700)는 터치 위치, 터치 힘, 또는 제스처 움직임과 같은 촉각 데이터를 결정할 수 있다. 다양한 예시적인 실시예들에서, 모바일 디바이스(700)는 애플리케이션을 론칭하거나 그렇지 않으면 모바일 디바이스(700)의 다양한 양태를 관리하도록 동작가능한 홈 스크린(706)(예를 들어, IOSTM상의 Springboard)을 디스플레이한다. 일부 예시적인 실시예들에서, 홈 스크린(706)은, 배터리 수명, 접속성, 또는 기타의 하드웨어 상태 등의 상태 정보를 제공한다. 사용자(702)는 각자의 사용자 인터페이스 요소에 의해 점유된 영역을 터치함으로써 사용자 인터페이스 요소들을 활성화할 수 있다. 이러한 방식으로, 사용자(702)는 모바일 디바이스(700)의 애플리케이션들과 상호작용한다. 예를 들어, 홈 스크린(706)에 포함된 특정한 아이콘에 의해 점유된 영역을 터치하는 것은 그 특정한 아이콘에 대응하는 애플리케이션의 론칭을 야기한다.
도 7에 도시된 바와 같이, 모바일 디바이스(700)는 이미징 디바이스(708)를 포함한다. 이미징 디바이스(708)는, 비디오 스트림 또는 하나 이상의 연속적인 이미지를 캡처할 수 있는 모바일 디바이스(700)에 결합된 카메라 또는 기타 임의의 디바이스일 수 있다. 이미징 디바이스(708)는 객체 모델링 시스템(160) 또는 선택가능한 사용자 인터페이스 요소에 의해 트리거되어 비디오 스트림 또는 일련의 이미지들의 캡처를 개시하고 비디오 스트림 또는 일련의 이미지들을 본 개시내용에서 설명된 하나 이상의 방법에 따라 처리하기 위해 객체 모델링 시스템(160)에 전달할 수 있다.
네이티브 애플리케이션(예를 들어, Objective-C, Swift, 또는 IOSTM 상에서 실행되는 다른 적절한 언어로 프로그래밍된 애플리케이션, 또는 ANDROIDTM에서 실행되는 Java로 프로그래밍된 애플리케이션), 모바일 웹 애플리케이션(예를 들어, HTML5(Hypertext Markup Language-5)로 작성된 애플리케이션), 또는 하이브리드 애플리케이션(예를 들어, HTML5 세션을 론칭하는 네이티브 쉘 애플리케이션)과 같은 많은 다양한 애플리케이션들("앱"이라고도 함)이 모바일 디바이스(700)상에서 실행될 수 있다. 예를 들어, 모바일 디바이스(700)는, 메시징 앱, 오디오 레코딩 앱, 카메라 앱, 북 리더 앱, 미디어 앱, 피트니스 앱, 파일 관리 앱, 위치 앱(location app), 브라우저 앱, 설정 앱, 연락처 앱, 전화 통화 앱, 또는 다른 앱들(예를 들어, 게임 앱, 소셜 네트워킹 앱, 바이오메트릭 모니터링 앱)을 포함한다. 또 다른 예에서, 모바일 디바이스(700)는, 일부 실시예들과 일관되어, 사용자들이 미디어 콘텐츠를 포함하는 단기적 메시지(ephemeral message)를 교환할 수 있게 하는 SNAPCHAT®와 같은 소셜 메시징 앱(710)을 포함한다. 이 예에서, 소셜 메시징 앱(710)은 본 명세서에서 설명된 실시예들의 양태들을 포함할 수 있다. 예를 들어, 일부 실시예들에서, 소셜 메시징 앱(710)은 사용자 및 소셜 메시징 앱(710)에 의해 생성된 임시 미디어 갤러리(ephemeral gallery of media)를 포함한다. 이러한 갤러리는, 사용자에 의해 게시되고 사용자의 연락처(예를 들어, "친구")가 볼 수 있는 비디오 또는 사진으로 구성될 수 있다. 대안으로서, 공개 갤러리는, 애플리케이션의 임의의 사용자들로부터의 (및 모든 사용자에 의해 액세스가능한) 미디어로 구성된 소셜 메시징 앱(710)의 관리자들에 의해 생성될 수 있다. 역시 또 다른 실시예에서, 소셜 메시징 앱(710)은, 소셜 메시징 애플리케이션의 플랫폼상의 발행자에 의해 생성되고 임의의 사용자에 의해 액세스될 수 있는 기사 및 기타 콘텐츠로 구성된 "잡지" 피처를 포함할 수 있다. 이러한 환경들 또는 플랫폼들 중 임의의 것은 본 발명의 주제의 개념들을 구현하기 위해 사용될 수 있다.
일부 실시예들에서, 단기적 메시지 시스템은, 시청 시간 또는 시청 완료와 같은 삭제 트리거 이벤트에 후속하여 삭제되는 단기적 비디오 클립 또는 이미지를 갖는 메시지를 포함할 수 있다. 이러한 실시예들에서, 객체 모델링 시스템(160)을 구현하는 디바이스는 비디오 스트림 내의 객체들에 대한 텍스처 모델들을 생성하고 단기적 메시지 내의 객체들을 추적하며, 단기적 메시지 시스템을 사용하여 단기적 메시지를 또 다른 디바이스로 송신할 수 있다.
소프트웨어 아키텍처
도 8은 전술한 디바이스들상에 설치될 수 있는 소프트웨어(802)의 아키텍처를 예시하는 블록도(800)이다. 도 8은 소프트웨어 아키텍처의 비제한적인 예일 뿐이며, 본 명세서에 설명된 기능을 용이하게 하기 위해 많은 다른 아키텍처들이 구현될 수 있다는 것을 알 것이다. 다양한 실시예들에서, 소프트웨어(802)는 프로세서들(910), 메모리(930), 및 I/O 컴포넌트들(950)을 포함하는 도 9의 머신(900)과 같은 하드웨어에 의해 구현된다. 이러한 예시적인 아키텍처에서, 소프트웨어(802)는 각각의 계층이 특정한 기능을 제공할 수 있는 계층들의 스택으로서 개념화될 수 있다. 예를 들어, 소프트웨어(802)는 운영 체제(804), 라이브러리들(806), 프레임워크들(808), 및 애플리케이션들(810)과 같은 계층들을 포함한다. 동작상, 애플리케이션들(810)은 소프트웨어 스택을 통해 애플리케이션 프로그래밍 인터페이스(API) 호출들(812)을 호출하고, 일부 실시예들에 부합하여 API 호출들(812)에 응답하여 메시지들(814)을 수신한다.
다양한 구현들에서, 운영 체제(804)는 하드웨어 자원을 관리하고 공통 서비스를 제공한다. 운영 체제(804)는, 예를 들어, 커널(820), 서비스들(822), 및 드라이버들(824)을 포함한다. 커널(820)은 일부 실시예들에 부합하는 하드웨어와 기타의 소프트웨어 계층들 사이의 추상화 계층(abstraction layer)으로서 기능한다. 예를 들어, 커널(820)은, 다른 무엇보다도, 메모리 관리, 프로세서 관리(예를 들어, 스케줄링), 컴포넌트 관리, 네트워킹, 및 보안 설정을 제공한다. 서비스(822)는 다른 소프트웨어 계층들에 대한 다른 공통 서비스를 제공할 수 있다. 일부 실시예들에 따르면, 드라이버들(824)은 기저 하드웨어(underlying hardware)를 제어하거나 그와 인터페이싱하는 것을 담당한다. 예를 들어, 드라이버(824)는, 디스플레이 드라이버, 카메라 드라이버, 블루투스® 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예를 들어, USB 드라이버), Wi-Fi® 드라이버, 오디오 드라이버, 전력 관리 드라이버 등을 포함할 수 있다.
일부 실시예들에서, 라이브러리(806)는 애플리케이션(810)에 의해 활용되는 로우 레벨 공통 인프라스트럭처를 제공한다. 라이브러리(806)는, 메모리 할당 함수, 문자열 조작 함수, 수학 함수 등의 함수를 제공할 수 있는 시스템 라이브러리(830)(예를 들어, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리(806)는, 미디어 라이브러리(예를 들어, MPEG4(Moving Picture Experts Group-4), H.264 또는 AVC(Advanced Video Coding), MP3(Moving Picture Experts Group Layer-3), AAC(Advanced Audio Coding), AMR(Adaptive Multi-Rate) 오디오 코덱, JPEG 또는 JPG(Joint Photographic Experts Group), PNG(Portable Network Graphics) 등의 다양의 미디어 포맷의 프리젠테이션과 조작을 지원하는 라이브러리들), 그래픽 라이브러리(예를 들어, 그래픽 콘텐츠를 디스플레이상에서 2차원(2D) 및 3차원(3D)으로 렌더링하는데 이용되는 OpenGL 프레임워크), 데이터베이스 라이브러리(예를 들어, 다양한 관계형 데이터베이스 기능을 제공하는 SQLite), 웹 라이브러리(예를 들어, 웹 브라우징 기능을 제공하는 WebKit) 등의 API 라이브러리(832)를 포함할 수 있다. 라이브러리들(806)은 또한 많은 다른 API들을 애플리케이션들(810)에 제공하기 위해 매우 다양한 다른 라이브러리들(834)을 포함할 수 있다.
프레임워크(808)는 일부 실시예들에 따라 애플리케이션(810)에 의해 활용될 수 있는 하이 레벨 공통 인프라스트럭처를 제공한다. 예를 들어, 프레임워크(808)는 다양한 그래픽 사용자 인터페이스(graphic user interface, GUI) 기능, 하이 레벨 자원 관리, 하이 레벨 로케이션 서비스 등을 제공한다. 프레임워크(808)는 애플리케이션(810)에 의해 활용될 수 있는 광범위한 스펙트럼의 다른 API들을 제공할 수 있으며, 그 중 일부는 특정한 운영 체제 또는 플랫폼에 특유할 수 있다.
예시적 실시예에서, 애플리케이션들(810)은, 홈 애플리케이션(850), 연락처 애플리케이션(852), 브라우저 애플리케이션(854), 북 리더 애플리케이션(856), 로케이션 애플리케이션(858), 미디어 애플리케이션(860), 메시징 애플리케이션(862), 게임 애플리케이션(864), 및 제3자 애플리케이션(866)과 같은 광범위한 다른 애플리케이션들을 포함한다. 일부 실시예들에 따르면, 애플리케이션(810)은 프로그램에서 정의된 기능들을 실행하는 프로그램이다. 객체 지향형 프로그래밍 언어(Objective-C, Java 또는 C++) 또는 절차형 프로그래밍 언어(예를 들어, C 또는 어셈블리 언어) 등의 다양한 방식으로 구조화된 다양한 프로그래밍 언어가 애플리케이션(810)을 생성하기 위해 이용될 수 있다. 구체적인 예에서, 제3자 애플리케이션(866)(예를 들어, 특정 플랫폼의 공급자 이외의 엔티티에 의해 ANDROIDTM 또는 IOSTM SDK(software development kit)를 사용하여 개발되는 애플리케이션)은, IOSTM, ANDROIDTM, WINDOWS® PHONE, 또는 또 다른 모바일 운영 체제들과 같은 모바일 운영 체제상에서 실행되는 모바일 소프트웨어일 수 있다. 이 예에서, 제3자 애플리케이션(866)은 본 명세서에 설명된 기능을 용이하게 하기 위해 운영 체제(804)에 의해 제공되는 API 호출들(812)을 호출할 수 있다.
예시적 머신 아키텍처 및 머신 판독가능 매체
도 9는, 머신 판독가능 매체(예를 들어, 비일시적인 머신 판독가능 저장 매체)로부터 명령어들(예를 들어, 프로세서 실행가능한 명령어들)을 판독하여 본 명세서에서 논의된 방법론들 중 임의의 것을 수행할 수 있는, 일부 실시예들에 따른 머신(900)의 컴포넌트들을 예시하는 블록도이다. 구체적으로, 도 9는 예시적인 형태의 컴퓨터 시스템으로 된 머신(900)의 도식적 표현을 도시하며, 그 내부에서, 머신(900)으로 하여금 본 명세서에서 논의된 방법론들 중 임의의 것을 수행하게 야기하기 위한 명령어들(916)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱, 또는 기타 실행가능한 코드)이 실행될 수 있다. 대안적인 실시예에서, 머신(900)은 독립형 디바이스로서 동작하거나 다른 머신에 결합(예를 들어, 네트워크화)될 수 있다. 네트워크화된 배치(networked deployment)에서, 머신(900)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 능력으로, 또는 피어-투-피어(또는 분산) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신(900)은 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(personal computer, PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋톱 박스(set-top box, STB), 개인 정보 단말(personal digital assistant, PDA), 엔터테인먼트 미디어 시스템, 셀룰러 전화, 스마트폰, 모바일 디바이스, 웨어러블 디바이스(예컨대, 스마트 시계), 스마트 홈 디바이스(예컨대, 스마트 기기), 다른 스마트 디바이스들, 웹 기기, 네트워크 라우터, 네트워크 스위치, 네트워크 브릿지, 또는 머신(900)에 의해 취해질 액션들을 특정하는 명령어들(916)을 순차적으로 또는 이와 다르게 실행할 수 있는 임의의 머신을 포함할 수 있는데, 이것으로만 제한되지는 않는다. 또한, 단일 머신(900)만이 예시되지만, 용어 "머신"은 또한 본 명세서에서 논의된 방법론들 중 임의의 것을 수행하기 위해 명령어들(916)을 개별적으로 또는 공동으로 실행하는 머신들(900)의 모음을 포함하는 것으로 취해져야 할 것이다.
다양한 실시예들에서, 머신(900)은 버스(902)를 통해 서로 통신하도록 구성될 수 있는 프로세서들(910), 메모리(930), 및 I/O 컴포넌트들(950)을 포함한다. 예시적 실시예에서, 프로세서들(910)(예컨대, 중앙 처리 유닛(Central Processing Unit, CPU), 축소 명령어 세트 컴퓨팅(Reduced Instruction Set Computing, RISC) 프로세서, 복합 명령어 세트 컴퓨팅(Complex Instruction Set Computing, CISC) 프로세서, 그래픽 처리 유닛(Graphics Processing Unit, GPU), 디지털 신호 프로세서(Digital Signal Processor, DSP), 주문형 집적 회로(Application Specific Integrated Circuit, ASIC), 무선-주파수 집적 회로(Radio-Frequency Integrated Circuit, RFIC), 또 다른 프로세서, 또는 그 임의의 적절한 조합)은 예를 들어, 명령어들(916)을 실행할 수 있는 프로세서(912) 및 프로세서(914)를 포함한다. "프로세서(processor)"라는 용어는 명령어들(916)을 동시에 실행할 수 있는 2개 이상의 독립적 프로세서("코어들(cores)"이라고 또한 지칭됨)을 포함할 수 있는 멀티-코어 프로세서들을 포함하는 것으로 의도된다. 도 9가 다중 프로세서(910)를 도시하지만, 머신(900)은 단일 코어를 갖는 단일 프로세서, 다중 코어를 갖는 단일 프로세서(예를 들어, 멀티-코어 프로세서), 단일 코어를 갖는 다중 프로세서, 다중 코어를 갖는 다중 프로세서, 또는 이들의 임의의 조합을 포함할 수 있다.
일부 실시예들에 따르면, 메모리(930)는 버스(902)를 통해 프로세서들(910)에 액세스가능한 메인 메모리(932), 정적 메모리(934), 및 저장 유닛(936)을 포함한다. 저장 유닛(936)은 본 명세서에 설명된 방법론들 또는 기능들 중 임의의 것을 구현하는 명령어들(916)이 저장되어 있는 머신 판독가능 매체(938)를 포함할 수 있다. 명령어(916)들은 또한, 머신(900)에 의한 그 실행 동안에, 완전히 또는 적어도 부분적으로, 메인 메모리(932) 내에, 정적 메모리(934) 내에, 프로세서(910)들 중 적어도 하나 내에 (예를 들어, 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적절한 조합 내에 상주할 수 있다. 따라서, 다양한 실시예들에서, 메인 메모리(932), 정적 메모리(934), 및 프로세서들(910)은 머신 판독가능 매체(938)로 간주된다.
본 명세서에서 사용되는 바와 같이, "메모리(memory)"라는 용어는, 일시적으로 또는 영구적으로 데이터를 저장할 수 있는 머신 판독가능 매체(938)를 지칭하며, 이에 제한되는 것은 아니지만, RAM(random-access memory), ROM(read-only memory), 버퍼 메모리, 플래시 메모리, 및 캐시 메모리를 포함하는 것으로 취해질 수 있다. 머신 판독가능 매체(938)는 예시적인 실시예에서 단일 매체인 것으로 도시되지만, "머신 판독가능 매체(machine-readable medium)"라는 용어는 명령어들(916)을 저장할 수 있는 단일의 매체 또는 다수의 매체(예를 들어, 중앙집중형 또는 분산형 데이터베이스, 또는 연관된 캐시들 및 서버들)를 포함하는 것으로 취해져야 한다. "머신 판독가능 매체"라는 용어는, 명령어들이 머신(900)의 프로세서들(예를 들어, 프로세서들(910))에 의해 실행될 때, 머신(900)으로 하여금 본 명세서에 설명된 방법론들 중 임의의 것을 수행하게 야기하도록, 머신(예를 들어, 머신(900))에 의한 실행을 위한 명령어들(예를 들어, 명령어들(916))을 저장할 수 있는 임의의 매체 또는 다수의 매체의 조합을 포함하는 것으로 또한 간주되어야 할 것이다. 따라서, "머신 판독가능 매체"는 단일 저장 장치 또는 디바이스뿐만 아니라 다수의 저장 장치 또는 디바이스를 포함하는 "클라우드 기반" 저장 시스템 또는 저장 네트워크를 지칭한다. 따라서 "머신 판독가능 매체"라는 용어는 솔리드 스테이트 메모리(예를 들어, 플래시 메모리), 광학 매체, 자기 매체, 다른 비휘발성 메모리(예를 들어, 소거 가능 프로그래머블 판독 전용 메모리(EPROM)), 또는 이들의 임의의 적합한 조합으로 된 형태의 데이터 레포지토리들을 포함하는 것으로 취해질 것이지만, 이들로만 제한되지는 않는다. "머신 판독가능 매체"라는 용어는 본질적으로 법령에 근거하지 않은 신호들(non-statutory signals)을 구체적으로 배제한다.
I/O 컴포넌트들(950)은, 입력을 수신하고, 출력을 제공하며, 출력을 생성하고, 정보를 송신하며, 정보를 교환하고, 측정치를 캡처하고, 및 등등을 수행하는 매우 다양한 컴포넌트를 포함한다. 일반적으로, I/O 컴포넌트들(950)은 도 9에 도시되지 않은 많은 다른 컴포넌트들을 포함할 수 있다는 것을 알 것이다. I/O 컴포넌트들(950)은 단지 이하의 논의를 간소화하기 위해 기능에 따라 그룹화되어 있고, 이러한 그룹화는 어떠한 방식으로든 제한하는 것이 아니다. 다양한 예시적인 실시예들에서, I/O 컴포넌트들(950)은 출력 컴포넌트들(952) 및 입력 컴포넌트들(954)을 포함한다. 출력 컴포넌트들(952)은, 시각적 컴포넌트들(예를 들어, 플라즈마 디스플레이 패널(PDP), 발광 다이오드(LED) 디스플레이, 액정 디스플레이(LCD), 프로젝터, 또는 CRT(cathode ray tube) 등의 디스플레이), 음향 컴포넌트(예를 들어, 스피커), 햅틱 컴포넌트(예를 들어, 진동 모터), 기타의 신호 생성기, 및 등등을 포함한다. 입력 컴포넌트들(954)은 알파뉴메릭 입력 컴포넌트들(예컨대, 키보드, 알파뉴메릭 입력을 수신하도록 구성된 터치 스크린, 포토-광 키보드(photo-optical keyboard), 또는 다른 알파뉴메릭 입력 컴포넌트들), 포인트 기반 입력 컴포넌트들(예컨대, 마우스, 터치패드, 트랙볼, 조이스틱, 움직임 센서, 또는 다른 포인팅 도구들), 촉각 입력 컴포넌트들(예컨대, 물리적 버튼, 터치들 또는 터치 제스처들의 로케이션 및 힘을 제공하는 터치 스크린, 또는 다른 촉각 입력 컴포넌트들), 오디오 입력 컴포넌트들(예컨대, 마이크로폰), 및 그와 유사한 것을 포함한다.
일부 추가의 예시적인 실시예에서, I/O 컴포넌트들(950)은, 넓은 범위의 다른 컴포넌트들 중에서도, 바이오메트릭 컴포넌트(956), 움직임 컴포넌트(958), 환경 컴포넌트(960), 또는 위치 컴포넌트(962)를 포함한다. 예를 들어, 바이오메트릭 컴포넌트(956)는, 표현(예를 들어, 손 표현, 얼굴 표정, 음성 표현, 몸짓, 또는 입 제스처)을 검출하고, 생체신호(예를 들어, 혈압, 심박수, 체온, 땀 또는 뇌파)를 측정하고, 사람을 식별(예를 들어, 음성 식별, 망막 식별, 얼굴 식별, 지문 식별, 또는 뇌파계 기반 식별)하는 컴포넌트들을 포함한다. 움직임 컴포넌트(958)는, 가속도 센서 컴포넌트(예를 들어, 가속도계), 중력 센서 컴포넌트, 회전 센서 컴포넌트(예를 들어, 자이로스코프) 등을 포함한다. 환경 컴포넌트(960)는, 예를 들어, 조명 센서 컴포넌트(예를 들어, 광도계), 온도 센서 컴포넌트(예를 들어, 주변 온도를 검출하는 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(예를 들어, 기압계), 음향 센서 컴포넌트(예를 들어, 배경 잡음을 검출하는 마이크로폰), 근접 센서 컴포넌트(예를 들어, 근처의 물체를 검출하는 적외선 센서), 가스 센서 컴포넌트(예를 들어, 머신 후각 검출 센서, 안전을 위해 위험한 가스의 농도를 검출하거나 대기 중의 오염 물질을 측정하는 가스 검출 센서), 또는 주변의 물리적 환경에 대응하는 표시, 측정치, 또는 신호를 제공할 수 있는 기타의 컴포넌트들을 포함한다. 위치 컴포넌트(962)는, 로케이션 센서 컴포넌트(예를 들어, GPS 수신기 컴포넌트), 고도 센서 컴포넌트(고도가 도출될 수 있는 기압을 검출하는 고도계 또는 기압계), 오리엔테이션 센서 컴포넌트(예를 들어, 자력계) 등을 포함한다.
통신은 매우 다양한 기술을 이용하여 구현될 수 있다. I/O 컴포넌트들(950)은 머신(900)을 제각기 커플링(982) 및 커플링(972)을 통해 네트워크(980) 또는 디바이스들(970)에 결합하도록 동작가능한 통신 컴포넌트들(964)을 포함할 수 있다. 예를 들어, 통신 컴포넌트들(964)은 네트워크 인터페이스 컴포넌트 또는 네트워크(980)와 인터페이스하기 위한 또 다른 적합한 디바이스를 포함한다. 추가의 예들에서, 통신 컴포넌트들(964)은 유선 통신 컴포넌트들, 무선 통신 컴포넌트들, 셀룰러 통신 컴포넌트들, 근접장 통신(Near Field Communication, NFC) 컴포넌트들, 블루투스® 컴포넌트들(예컨대, 블루투스® 로우 에너지), WI-FI® 컴포넌트들, 및 다른 양상(modality)들을 통해 통신을 제공하기 위한 다른 통신 컴포넌트들을 포함한다. 디바이스(970)는, 또 다른 머신 또는 임의의 다양한 주변 디바이스(예를 들어, USB(Universal Serial Bus)를 통해 결합된 주변 디바이스)일 수 있다.
게다가, 일부 실시예들에서, 통신 컴포넌트들(964)은 식별자들을 검출하거나 식별자들을 검출하도록 동작가능한 컴포넌트들을 포함한다. 예를 들어, 통신 컴포넌트들(964)은 RFID(Radio Frequency Identification) 태그 판독기 컴포넌트들, NFC 스마트 태그 검출 컴포넌트들, 광학 판독기 컴포넌트들[예를 들어, UPC(Universal Product Code) 바코드와 같은 1차원 바코드들, QR(Quick Response) 코드, Aztec Code, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS(Uniform Commercial Code Reduced Space Symbology)-2D 바코드들과 같은 다차원 바코드들, 및 다른 광학 코드들을 검출하는 센서], 음향 검출 컴포넌트들(예를 들어, 태그된 오디오 신호들을 식별하는 마이크로폰들), 또는 이들의 임의의 적합한 조합을 포함한다. 게다가, 인터넷 프로토콜(IP) 지오-로케이션(geo-location)을 통한 로케이션, WI-FI® 신호 삼각측량을 통한 로케이션, 특정한 로케이션을 표시할 수 있는 블루투스® 또는 NFC 비콘 신호(beacon signal)를 검출하는 것을 통한 로케이션 등과 같은 다양한 정보가 통신 컴포넌트들(964)을 통해 도출될 수 있다.
송신 매체
다양한 예시적인 실시예들에서, 네트워크(980)의 부분들은, 애드혹 네트워크, 인트라넷, 엑스트라넷, 가상 사설망(VPN), 근거리 통신망(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 도시권 통신망(metropolitan area network, MAN), 인터넷, 인터넷의 부분, PSTN(Public Switched Telephone Network)의 부분, POTS(plain old telephone service) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, WI-FI® 네트워크, 또 다른 유형의 네트워크, 또는 둘 이상의 그러한 네트워크들의 조합일 수 있다. 예를 들어, 네트워크(980) 또는 네트워크(980)의 일부는 무선 또는 셀룰러 네트워크를 포함할 수 있고, 커플링(982)은 CDMA(Code Division Multiple Access) 접속, GSM(Global System for Mobile communications) 접속, 또는 또 다른 유형의 셀룰러 또는 무선 커플링일 수 있다. 이 예에서, 커플링(982)은, 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data rates for GSM Evolution) 기술, 3G, 4G(fourth generation wireless) 네트워크, UMTS(Universal Mobile Telecommunications System), HSPA(High Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution) 표준을 포함한 3GPP(third Generation Partnership Project), 다양한 표준 설정 기구에 의해 정의된 기타의 것들, 기타의 장거리 프로토콜, 또는 기타의 데이터 전송 기술과 같은 다양한 유형의 데이터 전송 기술들 중 임의의 것을 구현할 수 있다.
예시적 실시예들에서, 명령어들(916)은 네트워크 인터페이스 디바이스(예컨대, 통신 컴포넌트들(964) 내에 포함된 네트워크 인터페이스 컴포넌트)를 통해 송신 매체를 이용하여, 그리고 다수의 공지된 전송 프로토콜들(예컨대, 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol, HTTP)) 중 임의의 하나를 사용하여 네트워크(980)를 통해서 송신되거나 수신된다. 유사하게, 다른 예시적인 실시예에서, 명령어(916)들은 디바이스(970)에 대한 커플링(972)(예를 들어, 피어-투-피어 커플링)을 통해 송신 매체를 이용하여 송신되거나 수신된다. "송신 매체(transmission medium)"라는 용어는 머신(900)에 의한 실행을 위해 명령어들(916)을 저장, 인코딩, 또는 운반할 수 있는 임의의 무형의 매체를 포함하는 것으로 취해질 것이고, 디지털 또는 아날로그 통신 신호들 또는 이러한 소프트웨어의 통신을 용이하게 하는 다른 무형의 매체를 포함한다.
또한, 머신 판독가능 매체(938)는, 전파 신호(propagating signal)를 구현하지 않는다는 점에서 비일시적이다(다시 말해서, 임의의 일시적 신호를 갖지 않는다). 그러나, 머신 판독가능 매체(938)를 "비일시적"으로 라벨링하는 것은 매체가 이동할 수 없다는 것을 의미하는 것으로 해석해서는 안 된다; 매체는 하나의 물리적 위치로부터 또 다른 물리적 위치로 이송가능한 것으로 간주되어야 한다. 게다가, 머신 판독가능 매체(938)는 유형(tangible)이므로, 매체는 머신 판독가능 디바이스인 것으로 간주될 수 있다.
용어
본 명세서 전체에 걸쳐, 복수형 인스턴스(plural instance)는 단일 인스턴스로서 기술된 컴포넌트들, 동작들 또는 구조들을 구현할 수 있다. 방법의 개개의 동작들이 별개의 동작들로서 예시되고 설명되지만, 개개의 동작들은 동시에 수행될 수 있고, 동작들이 예시된 순서로만 수행될 것을 요구하지 않는다. 예시적인 구성에서 별개의 컴포넌트들로서 제시된 구조 및 기능은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 유사하게, 단일 컴포넌트로서 제시된 구조 및 기능은 별개의 컴포넌트들로서 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 본 명세서의 발명의 주제 범위 내에 있다.
비록 본 발명의 주제에 대한 개요가 특정한 예시적인 실시예들을 참조하여 설명되었지만, 본 개시내용의 실시예들의 더 넓은 범위를 벗어나지 않으면서 이들 실시예들에 대한 다양한 수정 및 변경이 이루어질 수 있다. 본 발명의 주제의 이러한 실시예들은, 단지 편의를 위해 그리고 실제로 둘 이상이 개시된다면 임의의 단일 개시내용 또는 발명의 개념으로 본 출원의 범위를 자발적으로 제한하도록 의도하지 않고 "발명(invention)"이라는 용어에 의해 개별적으로 또는 집합적으로 본 명세서에서 지칭될 수 있다.
본 명세서에 예시된 실시예들은 본 기술분야의 통상의 기술자가 개시된 교시를 실시할 수 있게 하도록 충분히 상세하게 설명되었다. 이로부터 다른 실시예들이 사용되고 도출될 수 있어서, 구조적 및 논리적 치환들 및 변경들이 본 개시내용의 범위로부터 벗어남 없이 만들어질 수 있다. 따라서, 본 상세한 설명은 제한적인 의미로 간주되어서는 안되며, 다양한 실시예들의 범위는 첨부된 청구항들과 이러한 청구항들의 균등물의 전체 범위에 의해서만 정의된다.
본 명세서에서 사용되는 바와 같이, "또는(or)"이라는 용어는 포괄적인 또는 배타적인 의미로 해석될 수 있다. 더구나, 복수의 인스턴스가 단일 인스턴스로서 본 명세서에서 설명된 리소스들, 동작들, 또는 구조들에 대해 제공될 수 있다. 추가로, 다양한 자원, 동작, 컴포넌트, 엔진 및 데이터 저장소들 사이의 경계는 다소 임의적이며, 특정한 동작은 특정한 예시적인 구성의 정황에서 예시된다. 기능의 다른 할당들을 구상해 볼 수 있고 본 개시내용의 다양한 실시예의 범위 내에 있을 수 있다. 일반적으로, 예시적인 구성들에서의 별개의 자원들로서 제시된 구조들 및 기능은 조합된 구조 또는 자원으로서 구현될 수 있다. 유사하게, 단일 자원으로서 제시된 구조 및 기능은 별개의 자원으로서 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 첨부된 청구항들에 의해 표현되는 본 개시내용의 실시예들의 범위 내에 있다. 따라서, 본 명세서 및 도면들은 한정적인 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (20)

  1. 방법으로서:
    하나 이상의 프로세서에 의해, 이미지들의 세트가 컴퓨팅 디바이스에서 캡처됨에 따라 상기 이미지들의 세트에 액세스하는 단계;
    상기 이미지들의 세트의 일부분 내에서, 눈을 포함하는 관심 영역을 결정하는 단계;
    상기 하나 이상의 프로세서에 의해, 상기 관심 영역으로부터 홍채 영역을 추출하는 단계 - 상기 홍채 영역은 상기 이미지들의 세트의 적어도 일부분에 묘사된 적어도 하나의 홍채에 대응함 -;
    상기 하나 이상의 프로세서에 의해, 상기 관심 영역 내의 공막(sclera) 영역을 세그먼트화하는 단계 - 상기 공막 영역은 상기 이미지들의 세트의 적어도 일부분에 묘사된 적어도 하나의 눈의 공막에 대응함 -; 및
    상기 하나 이상의 프로세서에 의해, 상기 홍채 영역 및 상기 공막 영역에 기초하여 상기 눈에 대한 텍스처를 생성하는 단계를 포함하고,
    상기 눈에 대한 텍스처를 생성하는 단계는:
    상기 홍채 영역에 대한 홍채 텍스처를 생성하는 단계 - 상기 텍스처는 상기 홍채 영역으로부터 선택된 적어도 하나 이상의 컬러 패치에 기초함 -;
    미리 결정된 공막 텍스처들의 세트로부터 공막 텍스처를 선택하는 단계 - 상기 공막 텍스처는 상기 공막 영역의 컬러 분포에 기초하여 선택됨 -; 및
    상기 홍채 영역에 근접한 상기 공막 텍스처의 일부분과 상기 홍채 텍스처의 에지를 혼합하는 단계를 추가로 포함하는 방법.
  2. 제1항에 있어서,
    상기 홍채 영역을 추출하는 단계는:
    상기 관심 영역 내의 상기 홍채에 대한 원형 영역을 생성하는 단계;
    상기 홍채의 미지 영역을 식별하는 단계 - 상기 미지 영역은 눈꺼풀에 의해 차단된 상기 홍채의 일부분에 대응함 -;
    상기 원형 영역 내의 하나 이상의 컬러 패치를 결정하는 단계 - 상기 하나 이상의 컬러 패치는 상기 홍채의 컬러화된 부분에 대응함 -; 및
    상기 컬러 패치들을 상기 미지 영역으로 변환하는 단계를 추가로 포함하는 방법.
  3. 제2항에 있어서,
    상기 원형 영역을 생성하는 단계는:
    상기 관심 영역 내의 상기 홍채의 에지의 적어도 일부분을 식별하는 단계;
    상기 홍채의 에지의 일부분에 기초하여 크기가 정해진 원형 형상을 결정하는 단계; 및
    상기 원형 형상을 상기 홍채의 에지의 일부분과 정렬시키는 단계를 추가로 포함하는 방법.
  4. 제2항에 있어서,
    상기 미지 영역이 상기 변환된 하나 이상의 컬러 패치로 채워져 있는 것을 결정하는 단계; 및
    상기 컬러 패치들을 변환하기 전에 상기 관심 영역을 상기 이미지에 대한 원래의 컬러 좌표계로 복귀시키는 단계를 추가로 포함하는 방법.
  5. 제1항에 있어서,
    상기 공막 영역을 세그먼트화하는 단계는:
    상기 공막에 대응하는 상기 관심 영역의 일부분을 결정하는 단계; 및
    상기 공막 영역에 대한 컬러 분포를 결정하는 단계를 추가로 포함하는 방법.
  6. 삭제
  7. 제1항에 있어서,
    상기 관심 영역 내의 동공 위치를 식별하는 단계 - 상기 동공 위치는 상기 홍채 영역 및 상기 공막 영역에 기초하여 결정됨 -;
    눈에 대한 제1 초점을 결정하는 단계 - 상기 제1 초점은 상기 동공 위치에 기초함 -; 및
    상기 제1 초점을 제2 초점으로 변경하기 위해 상기 눈에 대한 상기 텍스처의 일부분을 수정하는 단계 - 상기 제2 초점은 상기 제1 초점의 위치와는 상이한 위치로 지향됨 - 를 추가로 포함하는 방법.
  8. 제1항에 있어서,
    상기 이미지들의 세트 내에 묘사된 얼굴에 대한 얼굴 랜드마크들의 세트를 결정하는 단계;
    상기 이미지들의 세트 내에 묘사된 상기 얼굴에 대한 얼굴 모델을 결정하는 단계 - 상기 얼굴 모델은 상기 눈들의 3차원 표현을 갖고, 상기 얼굴에 대한 얼굴 랜드마크들의 세트의 적어도 일부분과 정렬됨 -;
    상기 관심 영역 내의 동공 위치를 식별하는 단계 - 상기 동공 위치는 상기 홍채 영역 및 상기 공막 영역에 기초하여 결정됨 -; 및
    상기 동공 위치 및 상기 얼굴 모델에 기초하여 상기 눈의 초점을 추적하는 단계를 추가로 포함하는 방법.
  9. 시스템으로서:
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행될 때, 상기 하나 이상의 프로세서로 하여금 동작들을 수행하게 야기하는 프로세서 실행가능 명령어들을 저장하는 비일시적 프로세서 판독가능 저장 매체를 포함하고, 상기 동작들은:
    이미지들의 세트가 컴퓨팅 디바이스에서 캡처됨에 따라 상기 이미지들의 세트에 액세스하는 동작;
    상기 이미지들의 세트의 일부분 내에서, 눈을 포함하는 관심 영역을 결정하는 동작;
    상기 관심 영역으로부터 홍채 영역을 추출하는 동작 - 상기 홍채 영역은 상기 이미지들의 세트의 적어도 일부분에 묘사된 적어도 하나의 홍채에 대응함 -;
    상기 관심 영역 내의 공막 영역을 세그먼트화하는 동작 - 상기 공막 영역은 상기 이미지들의 세트의 적어도 일부분에 묘사된 적어도 하나의 눈의 공막에 대응함 -; 및
    상기 홍채 영역 및 상기 공막 영역에 기초하여 상기 눈에 대한 텍스처를 생성하는 동작을 포함하고,
    상기 눈에 대한 텍스처를 생성하는 동작은:
    상기 홍채 영역에 대한 홍채 텍스처를 생성하는 동작 - 상기 텍스처는 상기 홍채 영역으로부터 선택된 적어도 하나 이상의 컬러 패치에 기초함 -;
    미리 결정된 공막 텍스처들의 세트로부터 공막 텍스처를 선택하는 동작 - 상기 공막 텍스처는 상기 공막 영역의 컬러 분포에 기초하여 선택됨 -; 및
    상기 홍채 영역에 근접한 상기 공막 텍스처의 일부분과 상기 홍채 텍스처의 에지를 혼합하는 동작을 추가로 포함하는 시스템.
  10. 제9항에 있어서,
    상기 홍채 영역을 추출하는 동작은:
    상기 관심 영역 내의 상기 홍채에 대한 원형 영역을 생성하는 동작;
    상기 홍채의 미지 영역을 식별하는 동작 - 상기 미지 영역은 눈꺼풀에 의해 차단된 상기 홍채의 일부분에 대응함 -;
    상기 원형 영역 내의 하나 이상의 컬러 패치를 결정하는 동작 - 상기 하나 이상의 컬러 패치는 상기 홍채의 컬러화된 부분에 대응함 -; 및
    상기 컬러 패치들을 상기 미지 영역으로 변환하는 동작을 추가로 포함하는 시스템.
  11. 제10항에 있어서,
    상기 원형 영역을 생성하는 동작은:
    상기 관심 영역 내의 상기 홍채의 에지의 적어도 일부분을 식별하는 동작;
    상기 홍채의 에지의 일부분에 기초하여 크기가 정해진 원형 형상을 결정하는 동작; 및
    상기 원형 형상을 상기 홍채의 에지의 일부분과 정렬시키는 동작을 추가로 포함하는 시스템.
  12. 삭제
  13. 제9항에 있어서,
    상기 동작들은:
    상기 관심 영역 내의 동공 위치를 식별하는 동작 - 상기 동공 위치는 상기 홍채 영역 및 상기 공막 영역에 기초하여 결정됨 -;
    눈에 대한 제1 초점을 결정하는 동작 - 상기 제1 초점은 상기 동공 위치에 기초함 -; 및
    상기 제1 초점을 제2 초점으로 변경하기 위해 상기 눈에 대한 상기 텍스처의 일부분을 수정하는 동작 - 상기 제2 초점은 상기 제1 초점의 위치와는 상이한 위치로 지향됨 - 을 추가로 포함하는 시스템.
  14. 제9항에 있어서,
    상기 동작들은:
    상기 이미지들의 세트 내에 묘사된 얼굴에 대한 얼굴 랜드마크들의 세트를 결정하는 동작;
    상기 이미지들의 세트 내에 묘사된 상기 얼굴에 대한 얼굴 모델을 결정하는 동작 - 상기 얼굴 모델은 상기 눈들의 3차원 표현을 갖고, 상기 얼굴에 대한 상기 얼굴 랜드마크들의 세트의 적어도 일부분과 정렬됨 -;
    상기 관심 영역 내의 동공 위치를 식별하는 동작 - 상기 동공 위치는 상기 홍채 영역 및 상기 공막 영역에 기초하여 결정됨 -; 및
    상기 동공 위치 및 상기 얼굴 모델에 기초하여 상기 눈의 초점을 추적하는 동작을 추가로 포함하는 시스템.
  15. 프로세서 실행가능 명령어들을 저장하는 비일시적 프로세서 판독가능 저장 매체로서,
    상기 명령어들은 머신의 프로세서에 의해 실행될 때 상기 머신으로 하여금 동작들을 수행하게 야기하고, 상기 동작들은:
    이미지들의 세트가 컴퓨팅 디바이스에서 캡처됨에 따라 상기 이미지들의 세트에 액세스하는 동작;
    상기 이미지들의 세트의 일부분 내에서, 눈을 포함하는 관심 영역을 결정하는 동작;
    상기 관심 영역으로부터 홍채 영역을 추출하는 동작 - 상기 홍채 영역은 상기 이미지들의 세트의 적어도 일부분에 묘사된 적어도 하나의 홍채에 대응함 -;
    상기 관심 영역 내의 공막 영역을 세그먼트화하는 동작 - 상기 공막 영역은 상기 이미지들의 세트의 적어도 일부분에 묘사된 적어도 하나의 눈의 공막에 대응함 -; 및
    상기 홍채 영역 및 상기 공막 영역에 기초하여 상기 눈에 대한 텍스처를 생성하는 동작을 포함하고,
    상기 눈에 대한 텍스처를 생성하는 동작은:
    상기 홍채 영역에 대한 홍채 텍스처를 생성하는 동작 - 상기 텍스처는 상기 홍채 영역으로부터 선택된 적어도 하나 이상의 컬러 패치에 기초함 -;
    미리 결정된 공막 텍스처들의 세트로부터 공막 텍스처를 선택하는 동작 - 상기 공막 텍스처는 상기 공막 영역의 컬러 분포에 기초하여 선택됨 -; 및
    상기 홍채 영역에 근접한 상기 공막 텍스처의 일부분과 상기 홍채 텍스처의 에지를 혼합하는 동작을 추가로 포함하는 비일시적 프로세서 판독가능 저장 매체.
  16. 제15항에 있어서,
    상기 홍채 영역을 추출하는 동작은:
    상기 관심 영역 내의 상기 홍채에 대한 원형 영역을 생성하는 동작;
    상기 홍채의 미지 영역을 식별하는 동작 - 상기 미지 영역은 눈꺼풀에 의해 차단된 상기 홍채의 일부분에 대응함 -;
    상기 원형 영역 내의 하나 이상의 컬러 패치를 결정하는 동작 - 상기 하나 이상의 컬러 패치는 상기 홍채의 컬러화된 부분에 대응함 -; 및
    상기 컬러 패치들을 상기 미지 영역으로 변환하는 동작을 추가로 포함하는 비일시적 프로세서 판독가능 저장 매체.
  17. 제16항에 있어서,
    상기 원형 영역을 생성하는 동작은:
    상기 관심 영역 내의 상기 홍채의 에지의 적어도 일부분을 식별하는 동작;
    상기 홍채의 에지의 일부분에 기초하여 크기가 정해진 원형 형상을 결정하는 동작; 및
    상기 원형 형상을 상기 홍채의 에지의 일부분과 정렬시키는 동작을 추가로 포함하는 비일시적 프로세서 판독가능 저장 매체.
  18. 삭제
  19. 제15항에 있어서,
    상기 동작들은:
    상기 관심 영역 내의 동공 위치를 식별하는 동작 - 상기 동공 위치는 상기 홍채 영역 및 상기 공막 영역에 기초하여 결정됨 -;
    눈에 대한 제1 초점을 결정하는 동작 - 상기 제1 초점은 상기 동공 위치에 기초함 -; 및
    상기 제1 초점을 제2 초점으로 변경하기 위해 상기 눈에 대한 상기 텍스처의 일부분을 수정하는 동작 - 상기 제2 초점은 상기 제1 초점의 위치와는 상이한 위치로 지향됨 - 를 추가로 포함하는 비일시적 프로세서 판독가능 저장 매체.
  20. 제15항에 있어서,
    상기 동작들은:
    상기 이미지들의 세트 내에 묘사된 얼굴에 대한 얼굴 랜드마크들의 세트를 결정하는 동작;
    상기 이미지들의 세트 내에 묘사된 상기 얼굴에 대한 얼굴 모델을 결정하는 동작 - 상기 얼굴 모델은 상기 눈들의 3차원 표현을 갖고, 상기 얼굴에 대한 상기 얼굴 랜드마크들의 세트의 적어도 일부분과 정렬됨 -;
    상기 관심 영역 내의 동공 위치를 식별하는 동작 - 상기 동공 위치는 상기 홍채 영역 및 상기 공막 영역에 기초하여 결정됨 -; 및
    상기 동공 위치 및 상기 얼굴 모델에 기초하여 상기 눈의 초점을 추적하는 동작을 추가로 포함하는 비일시적 프로세서 판독가능 저장 매체.
KR1020217005544A 2018-07-31 2019-07-30 눈 텍스처 인페인팅 KR102506738B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/051,083 US11074675B2 (en) 2018-07-31 2018-07-31 Eye texture inpainting
US16/051,083 2018-07-31
PCT/US2019/044161 WO2020028378A1 (en) 2018-07-31 2019-07-30 Eye texture inpainting

Publications (2)

Publication Number Publication Date
KR20210036949A KR20210036949A (ko) 2021-04-05
KR102506738B1 true KR102506738B1 (ko) 2023-03-07

Family

ID=67659974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217005544A KR102506738B1 (ko) 2018-07-31 2019-07-30 눈 텍스처 인페인팅

Country Status (5)

Country Link
US (2) US11074675B2 (ko)
EP (1) EP3830746A1 (ko)
KR (1) KR102506738B1 (ko)
CN (1) CN112513875B (ko)
WO (1) WO2020028378A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11074675B2 (en) 2018-07-31 2021-07-27 Snap Inc. Eye texture inpainting
US11010951B1 (en) * 2020-01-09 2021-05-18 Facebook Technologies, Llc Explicit eye model for avatar
US11625873B2 (en) 2020-03-30 2023-04-11 Snap Inc. Personalized media overlay recommendation
US11818286B2 (en) * 2020-03-30 2023-11-14 Snap Inc. Avatar recommendation and reply
US11360733B2 (en) 2020-09-10 2022-06-14 Snap Inc. Colocated shared augmented reality without shared backend
US11854129B2 (en) * 2020-11-17 2023-12-26 Bria Artificial Intelligence Ltd. Generating visual content consistent with aspects of a visual language
US20230090662A1 (en) * 2021-08-27 2023-03-23 Transfolio, Llc Systems and methods for modeling realistic eye color
CN117523649B (zh) * 2024-01-04 2024-03-15 成都科瑞特电气自动化有限公司 矿用虹膜安全识别检测方法、系统、介质及终端

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037276A (ja) 2007-07-31 2009-02-19 Konami Digital Entertainment:Kk 画像表示装置、画像表示方法、ならびに、プログラム

Family Cites Families (187)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US116598A (en) 1871-07-04 Improvement in furnaces for puddling iron
US7859551B2 (en) 1993-10-15 2010-12-28 Bulman Richard L Object customization and presentation system
US5880731A (en) 1995-12-14 1999-03-09 Microsoft Corporation Use of avatars with automatic gesturing and bounded interaction in on-line chat session
US6023270A (en) 1997-11-17 2000-02-08 International Business Machines Corporation Delivery of objects in a virtual world using a descriptive container
US6842779B1 (en) 1998-03-11 2005-01-11 Yasuo Nishizawa Agent accessory tool cooperating with integrated application on WEB server by HTTP protocol
US20020067362A1 (en) 1998-11-06 2002-06-06 Agostino Nocera Luciano Pasquale Method and system generating an avatar animation transform using a neutral face image
US6223165B1 (en) 1999-03-22 2001-04-24 Keen.Com, Incorporated Method and apparatus to connect consumer to expert
US6772195B1 (en) 1999-10-29 2004-08-03 Electronic Arts, Inc. Chat clusters for a virtual world application
JP2001230601A (ja) 2000-02-15 2001-08-24 Toyota Motor Corp 導波管およびその伝送特性調整方法
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
JP4469476B2 (ja) * 2000-08-09 2010-05-26 パナソニック株式会社 眼位置検出方法および眼位置検出装置
US20050206610A1 (en) 2000-09-29 2005-09-22 Gary Gerard Cordelli Computer-"reflected" (avatar) mirror
US8117281B2 (en) 2006-11-02 2012-02-14 Addnclick, Inc. Using internet content as a means to establish live social networks by linking internet users to each other who are simultaneously engaged in the same and/or similar content
US6910186B2 (en) 2000-12-08 2005-06-21 Kyunam Kim Graphic chatting with organizational avatars
US7925703B2 (en) 2000-12-26 2011-04-12 Numedeon, Inc. Graphical interactive interface for immersive online communities
US7634103B2 (en) * 2001-10-01 2009-12-15 L'oreal S.A. Analysis using a three-dimensional facial image
EP1495447A1 (en) 2002-03-26 2005-01-12 KIM, So-Woon System and method for 3-dimension simulation of glasses
KR100493525B1 (ko) 2002-05-03 2005-06-07 안현기 아바타 메일 제공시스템 및 방법
US8495503B2 (en) 2002-06-27 2013-07-23 International Business Machines Corporation Indicating the context of a communication
US7636755B2 (en) 2002-11-21 2009-12-22 Aol Llc Multiple avatar personalities
EP1431810A1 (de) * 2002-12-16 2004-06-23 Agfa-Gevaert AG Verfahren zur automatischen Bestimmung von Farbdichte-Korrekturwerten für die Wiedergabe von digitalen Bilddaten
US7347551B2 (en) * 2003-02-13 2008-03-25 Fergason Patent Properties, Llc Optical system for monitoring eye movement
US20070168863A1 (en) 2003-03-03 2007-07-19 Aol Llc Interacting avatars in an instant messaging communication session
US20070113181A1 (en) 2003-03-03 2007-05-17 Blattner Patrick D Using avatars to communicate real-time information
US20040179037A1 (en) 2003-03-03 2004-09-16 Blattner Patrick D. Using avatars to communicate context out-of-band
KR20040091331A (ko) 2003-04-21 2004-10-28 홍지선 자연어처리기술을 이용하여 입력된 문자메시지와 그 문장내용에 상응하는 아바타 표현 방법 및 시스템
KR100762629B1 (ko) 2003-08-26 2007-10-01 삼성전자주식회사 휴대단말기의 백업서비스 처리방법
US7342587B2 (en) 2004-10-12 2008-03-11 Imvu, Inc. Computer-implemented system and method for home page customization and e-commerce support
US7468729B1 (en) 2004-12-21 2008-12-23 Aol Llc, A Delaware Limited Liability Company Using an avatar to generate user profile information
KR100714192B1 (ko) 2005-04-08 2007-05-02 엔에이치엔(주) 노출 부위가 가변되는 아바타 제공 시스템 및 그 방법
US20060294465A1 (en) 2005-06-22 2006-12-28 Comverse, Inc. Method and system for creating and distributing mobile avatars
US8963926B2 (en) 2006-07-11 2015-02-24 Pandoodle Corporation User customized animated video and method for making the same
US7775885B2 (en) 2005-10-14 2010-08-17 Leviathan Entertainment, Llc Event-driven alteration of avatars
BRPI0620945B1 (pt) 2005-12-31 2018-11-27 Tencent Tech Shenzhen Co Ltd método de exibição de um avatar 3-d e sistema de exibição de um avatar 3-d
US20070176921A1 (en) 2006-01-27 2007-08-02 Koji Iwasaki System of developing urban landscape by using electronic data
US20100011422A1 (en) 2006-02-16 2010-01-14 Wee-World Limited Portable account information
EP2016562A4 (en) 2006-05-07 2010-01-06 Sony Computer Entertainment Inc METHOD FOR IMPLEMENTING AFFECTIVE PROPERTIES IN A COMPUTER GENERATED AVATAR DURING A COMPUTER GAME
WO2007134402A1 (en) 2006-05-24 2007-11-29 Mor(F) Dynamics Pty Ltd Instant messaging system
US8121356B2 (en) * 2006-09-15 2012-02-21 Identix Incorporated Long distance multimodal biometric system and method
US20080158222A1 (en) 2006-12-29 2008-07-03 Motorola, Inc. Apparatus and Methods for Selecting and Customizing Avatars for Interactive Kiosks
US8504926B2 (en) 2007-01-17 2013-08-06 Lupus Labs Ug Model based avatars for virtual presence
GB2447094B (en) 2007-03-01 2010-03-10 Sony Comp Entertainment Europe Entertainment device and method
GB0703974D0 (en) 2007-03-01 2007-04-11 Sony Comp Entertainment Europe Entertainment device
CN101669090A (zh) 2007-04-26 2010-03-10 福特全球技术公司 情绪提示系统和方法
CN101071457B (zh) 2007-04-28 2010-05-26 腾讯科技(深圳)有限公司 一种网络游戏中改变角色形象的方法、装置以及服务器
WO2008141125A1 (en) * 2007-05-10 2008-11-20 The Trustees Of Columbia University In The City Of New York Methods and systems for creating speech-enabled avatars
US8130219B2 (en) 2007-06-11 2012-03-06 Autodesk, Inc. Metadata for avatar generation in virtual environments
GB2450757A (en) 2007-07-06 2009-01-07 Sony Comp Entertainment Europe Avatar customisation, transmission and reception
US20090016617A1 (en) 2007-07-13 2009-01-15 Samsung Electronics Co., Ltd. Sender dependent messaging viewer
US8726194B2 (en) 2007-07-27 2014-05-13 Qualcomm Incorporated Item selection using enhanced control
US8146005B2 (en) 2007-08-07 2012-03-27 International Business Machines Corporation Creating a customized avatar that reflects a user's distinguishable attributes
JP2009049639A (ja) 2007-08-17 2009-03-05 Fujifilm Corp 撮影装置
US20090055484A1 (en) 2007-08-20 2009-02-26 Thanh Vuong System and method for representation of electronic mail users using avatars
US20090070688A1 (en) 2007-09-07 2009-03-12 Motorola, Inc. Method and apparatus for managing interactions
US8924250B2 (en) 2007-09-13 2014-12-30 International Business Machines Corporation Advertising in virtual environments based on crowd statistics
WO2009046342A1 (en) 2007-10-04 2009-04-09 Playspan, Inc. Apparatus and method for virtual world item searching
US20090106672A1 (en) 2007-10-18 2009-04-23 Sony Ericsson Mobile Communications Ab Virtual world avatar activity governed by person's real life activity
US8892999B2 (en) 2007-11-30 2014-11-18 Nike, Inc. Interactive avatar for social network services
US8151191B2 (en) 2007-12-07 2012-04-03 International Business Machines Corporation Managing objectionable material in 3D immersive virtual worlds
US20090158170A1 (en) 2007-12-14 2009-06-18 Rajesh Narayanan Automatic profile-based avatar generation
US20090177976A1 (en) 2008-01-09 2009-07-09 Bokor Brian R Managing and presenting avatar mood effects in a virtual world
US8495505B2 (en) 2008-01-10 2013-07-23 International Business Machines Corporation Perspective based tagging and visualization of avatars in a virtual world
WO2009101153A2 (en) 2008-02-13 2009-08-20 Ubisoft Entertainment S.A. Live-action image capture
WO2009111472A2 (en) 2008-03-03 2009-09-11 Nike, Inc. Interactive athletic equipment system
US9744466B2 (en) 2008-03-13 2017-08-29 Mattel, Inc. Widgetized avatar and a method and system of creating and using same
US8832552B2 (en) 2008-04-03 2014-09-09 Nokia Corporation Automated selection of avatar characteristics for groups
US20090265604A1 (en) 2008-04-21 2009-10-22 Microsoft Corporation Graphical representation of social network vitality
US20090300525A1 (en) 2008-05-27 2009-12-03 Jolliff Maria Elena Romera Method and system for automatically updating avatar to indicate user's status
US20090303984A1 (en) 2008-06-09 2009-12-10 Clark Jason T System and method for private conversation in a public space of a virtual world
US8095878B2 (en) 2008-06-23 2012-01-10 International Business Machines Corporation Method for spell check based upon target and presence of avatars within a virtual environment
US8839327B2 (en) 2008-06-25 2014-09-16 At&T Intellectual Property Ii, Lp Method and apparatus for presenting media programs
WO2010000300A1 (en) 2008-06-30 2010-01-07 Accenture Global Services Gmbh Gaming system
US20120246585A9 (en) 2008-07-14 2012-09-27 Microsoft Corporation System for editing an avatar
WO2010014633A1 (en) 2008-07-28 2010-02-04 Breakthrough Performancetech, Llc Systems and methods for computerized interactive skill training
JP2010033305A (ja) * 2008-07-29 2010-02-12 Hitachi Ltd 画像情報処理方法、及び装置
US8384719B2 (en) 2008-08-01 2013-02-26 Microsoft Corporation Avatar items and animations
US8832201B2 (en) 2008-08-18 2014-09-09 International Business Machines Corporation Method, system and program product for providing selective enhanced privacy and control features to one or more portions of an electronic message
US8648865B2 (en) 2008-09-26 2014-02-11 International Business Machines Corporation Variable rendering of virtual universe avatars
US8108774B2 (en) 2008-09-26 2012-01-31 International Business Machines Corporation Avatar appearance transformation in a virtual universe
US8869197B2 (en) 2008-10-01 2014-10-21 At&T Intellectual Property I, Lp Presentation of an avatar in a media communication system
US8683354B2 (en) 2008-10-16 2014-03-25 At&T Intellectual Property I, L.P. System and method for distributing an avatar
US20100115426A1 (en) 2008-11-05 2010-05-06 Yahoo! Inc. Avatar environments
US8745152B2 (en) 2008-11-06 2014-06-03 Disney Enterprises, Inc. System and method for server-side avatar pre-rendering
US8458601B2 (en) 2008-12-04 2013-06-04 International Business Machines Corporation System and method for item inquiry and information presentation via standard communication paths
AU2009330607B2 (en) 2008-12-04 2015-04-09 Cubic Corporation System and methods for dynamically injecting expression information into an animated facial mesh
US8280119B2 (en) * 2008-12-05 2012-10-02 Honeywell International Inc. Iris recognition system using quality metrics
US20100162149A1 (en) 2008-12-24 2010-06-24 At&T Intellectual Property I, L.P. Systems and Methods to Provide Location Information
US8768014B2 (en) * 2009-01-14 2014-07-01 Indiana University Research And Technology Corp. System and method for identifying a person with reference to a sclera image
US9105014B2 (en) 2009-02-03 2015-08-11 International Business Machines Corporation Interactive avatar in messaging environment
KR101558553B1 (ko) 2009-02-18 2015-10-08 삼성전자 주식회사 아바타 얼굴 표정 제어장치
US20100227682A1 (en) 2009-03-04 2010-09-09 Microsoft Corporation Awarding of avatar items in video game environment
US20110093780A1 (en) 2009-10-16 2011-04-21 Microsoft Corporation Advertising avatar
KR20110070056A (ko) 2009-12-18 2011-06-24 한국전자통신연구원 사용자 맞춤형 고품질 3d 아바타 생성 방법 및 그 장치
TWI434227B (zh) 2009-12-29 2014-04-11 Ind Tech Res Inst 動畫產生系統及方法
US8484158B2 (en) 2010-02-01 2013-07-09 International Business Machines Corporation Managing information about avatars across virtual worlds
US20110239136A1 (en) 2010-03-10 2011-09-29 Oddmobb, Inc. Instantiating widgets into a virtual social venue
US9086776B2 (en) 2010-03-29 2015-07-21 Microsoft Technology Licensing, Llc Modifying avatar attributes
TWI439960B (zh) 2010-04-07 2014-06-01 Apple Inc 虛擬使用者編輯環境
US8692830B2 (en) 2010-06-01 2014-04-08 Apple Inc. Automatic avatar creation
US8564621B2 (en) 2010-08-11 2013-10-22 International Business Machines Corporation Replicating changes between corresponding objects
JP2012065263A (ja) 2010-09-17 2012-03-29 Olympus Imaging Corp 撮影機器
KR101514327B1 (ko) 2010-11-04 2015-04-22 한국전자통신연구원 얼굴 아바타 생성 장치 및 방법
US20120124458A1 (en) 2010-11-17 2012-05-17 Nazareno Brier Cruzada Social networking website & web-based system for collecting & presenting real-time user generated information on parties & events.
US20120130717A1 (en) 2010-11-19 2012-05-24 Microsoft Corporation Real-time Animation for an Expressive Avatar
KR20120059994A (ko) 2010-12-01 2012-06-11 삼성전자주식회사 표정 제어점을 이용한 아바타 제어 장치 및 방법
KR101445263B1 (ko) 2010-12-22 2014-09-30 주식회사 케이티 맞춤형 콘텐츠 제공 시스템 및 방법
US9839844B2 (en) 2011-03-01 2017-12-12 Disney Enterprises, Inc. Sprite strip renderer
WO2012126135A1 (en) 2011-03-21 2012-09-27 Intel Corporation Method of augmented makeover with 3d face modeling and landmark alignment
US9330483B2 (en) 2011-04-11 2016-05-03 Intel Corporation Avatar facial expression techniques
US20130103760A1 (en) 2011-04-11 2013-04-25 Robert K. Golding Location-sensitive virtual identity system, apparatus, method and computer-readable medium
US8989786B2 (en) 2011-04-21 2015-03-24 Walking Thumbs, Llc System and method for graphical expression during text messaging communications
US9241184B2 (en) 2011-06-01 2016-01-19 At&T Intellectual Property I, L.P. Clothing visualization
KR101608253B1 (ko) 2011-08-09 2016-04-01 인텔 코포레이션 이미지 기반 멀티 뷰 3d 얼굴 생성
KR20130022434A (ko) 2011-08-22 2013-03-07 (주)아이디피쉬 통신단말장치의 감정 컨텐츠 서비스 장치 및 방법, 이를 위한 감정 인지 장치 및 방법, 이를 이용한 감정 컨텐츠를 생성하고 정합하는 장치 및 방법
US20130249948A1 (en) 2011-08-26 2013-09-26 Reincloud Corporation Providing interactive travel content at a display device
US8559980B2 (en) 2011-09-02 2013-10-15 John J. Pujol Method and system for integrated messaging and location services
US8879801B2 (en) * 2011-10-03 2014-11-04 Qualcomm Incorporated Image-based head position tracking method and system
US8890926B2 (en) 2011-11-02 2014-11-18 Microsoft Corporation Automatic identification and representation of most relevant people in meetings
US9782680B2 (en) 2011-12-09 2017-10-10 Futurewei Technologies, Inc. Persistent customized social media environment
US9398262B2 (en) 2011-12-29 2016-07-19 Intel Corporation Communication using avatar
US8810513B2 (en) 2012-02-02 2014-08-19 Kodak Alaris Inc. Method for controlling interactive display system
CN103300815B (zh) 2012-03-15 2015-05-13 凹凸电子(武汉)有限公司 眼球关注点确定方法、装置和系统
US10702773B2 (en) 2012-03-30 2020-07-07 Videx, Inc. Systems and methods for providing an interactive avatar
US9402057B2 (en) 2012-04-02 2016-07-26 Argela Yazilim ve Bilisim Teknolojileri San. ve Tic. A.S. Interactive avatars for telecommunication systems
US9357174B2 (en) 2012-04-09 2016-05-31 Intel Corporation System and method for avatar management and selection
US9101312B2 (en) * 2012-04-18 2015-08-11 TBI Diagnostics LLC System for the physiological evaluation of brain function
WO2013166588A1 (en) 2012-05-08 2013-11-14 Bitstrips Inc. System and method for adaptable avatars
JP5497931B2 (ja) 2012-05-30 2014-05-21 株式会社コナミデジタルエンタテインメント アプリケーション装置、アプリケーション装置の制御方法、及びプログラム
AU2013206649A1 (en) 2012-07-05 2014-01-23 Aristocrat Technologies Australia Pty Limited A gaming system and a method of gaming
US20140125678A1 (en) 2012-07-11 2014-05-08 GeriJoy Inc. Virtual Companion
WO2014031899A1 (en) 2012-08-22 2014-02-27 Goldrun Corporation Augmented reality virtual content platform apparatuses, methods and systems
US9461876B2 (en) 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
WO2014036708A1 (en) 2012-09-06 2014-03-13 Intel Corporation System and method for avatar creation and synchronization
US9314692B2 (en) 2012-09-21 2016-04-19 Luxand, Inc. Method of creating avatar from user submitted image
US9746990B2 (en) 2012-09-28 2017-08-29 Intel Corporation Selectively augmenting communications transmitted by a communication device
US9501942B2 (en) 2012-10-09 2016-11-22 Kc Holdings I Personalized avatar responsive to user physical state and context
US20140129343A1 (en) 2012-11-08 2014-05-08 Microsoft Corporation Dynamic targeted advertising avatar
US9256860B2 (en) 2012-12-07 2016-02-09 International Business Machines Corporation Tracking participation in a shared media session
US9990373B2 (en) 2013-02-06 2018-06-05 John A. Fortkort Creation and geospatial placement of avatars based on real-world interactions
US9378564B2 (en) * 2013-03-01 2016-06-28 Colormodules Inc. Methods for color correcting digital images and devices thereof
EP2976749A4 (en) 2013-03-20 2016-10-26 Intel Corp AVATAR-BASED TRANSMISSION PROTOCOLS, SYMBOL GENERATION AND PUPPET ANIMATION
WO2014153689A1 (en) 2013-03-29 2014-10-02 Intel Corporation Avatar animation, social networking and touch screen applications
WO2014194439A1 (en) 2013-06-04 2014-12-11 Intel Corporation Avatar-based video encoding
US9378576B2 (en) 2013-06-07 2016-06-28 Faceshift Ag Online modeling for real-time facial animation
US9177410B2 (en) 2013-08-09 2015-11-03 Ayla Mandel System and method for creating avatars or animated sequences using human body features extracted from a still image
US9706040B2 (en) 2013-10-31 2017-07-11 Udayakumar Kadirvel System and method for facilitating communication via interaction with an avatar
US9508197B2 (en) 2013-11-01 2016-11-29 Microsoft Technology Licensing, Llc Generating an avatar from real time image data
WO2015070416A1 (en) 2013-11-14 2015-05-21 Intel Corporation Mechanism for facilitating dynamic simulation of avatars corresponding to changing user performances as detected at computing devices
US9361510B2 (en) 2013-12-13 2016-06-07 Intel Corporation Efficient facial landmark tracking using online shape regression method
KR101569268B1 (ko) * 2014-01-02 2015-11-13 아이리텍 잉크 얼굴 구성요소 거리를 이용한 홍채인식용 이미지 획득 장치 및 방법
US9848113B2 (en) * 2014-02-21 2017-12-19 Samsung Electronics Co., Ltd. Multi-band biometric camera system having iris color recognition
US9544257B2 (en) 2014-04-04 2017-01-10 Blackberry Limited System and method for conducting private messaging
US10254831B2 (en) * 2014-04-08 2019-04-09 Umoove Services Ltd. System and method for detecting a gaze of a viewer
US9503845B2 (en) 2014-04-17 2016-11-22 Paypal, Inc. Image customization to enhance transaction experience
US20170080346A1 (en) 2014-05-01 2017-03-23 Mohamad Abbas Methods and systems relating to personalized evolving avatars
US9824271B2 (en) * 2014-06-25 2017-11-21 Kodak Alaris Inc. Adaptable eye artifact identification and correction system
US20160134840A1 (en) 2014-07-28 2016-05-12 Alexa Margaret McCulloch Avatar-Mediated Telepresence Systems with Enhanced Filtering
CN107004287B (zh) 2014-11-05 2020-10-23 英特尔公司 化身视频装置和方法
CN107077750A (zh) 2014-12-11 2017-08-18 英特尔公司 化身选择机制
JP6462386B2 (ja) 2015-02-05 2019-01-30 任天堂株式会社 プログラム、通信端末及び表示方法
KR102146398B1 (ko) * 2015-07-14 2020-08-20 삼성전자주식회사 3차원 컨텐츠 생성 장치 및 그 3차원 컨텐츠 생성 방법
US20170087473A1 (en) 2015-09-29 2017-03-30 Sportsworld, Inc. Virtual environments for managing and interacting with virtual sports leagues
US9830708B1 (en) * 2015-10-15 2017-11-28 Snap Inc. Image segmentation of a video stream
JP6885935B2 (ja) * 2015-10-16 2021-06-16 マジック リープ, インコーポレイテッドMagic Leap,Inc. 眼の特徴を用いる眼ポーズ識別
US20170118145A1 (en) 2015-10-21 2017-04-27 Futurefly Ltd. Method of using emoji to control and enrich 3d chat environments
US10475225B2 (en) 2015-12-18 2019-11-12 Intel Corporation Avatar animation system
US20170199855A1 (en) 2016-01-11 2017-07-13 BuilderFish, LLC System and method for providing a time-based presentation of a user-navigable project model
US9911073B1 (en) 2016-03-18 2018-03-06 Snap Inc. Facial patterns for optical barcodes
CN108139799B (zh) * 2016-04-22 2022-01-14 深圳市大疆创新科技有限公司 基于用户的兴趣区(roi)处理图像数据的系统和方法
US20170312634A1 (en) 2016-04-28 2017-11-02 Uraniom System and method for personalized avatar generation, especially for computer games
US11112963B2 (en) 2016-05-18 2021-09-07 Apple Inc. Devices, methods, and graphical user interfaces for messaging
US10657701B2 (en) 2016-06-30 2020-05-19 Sony Interactive Entertainment Inc. Dynamic entering and leaving of virtual-reality environments navigated by different HMD users
US10217265B2 (en) * 2016-07-07 2019-02-26 Disney Enterprises, Inc. Methods and systems of generating a parametric eye model
US10573048B2 (en) 2016-07-25 2020-02-25 Oath Inc. Emotional reaction sharing
US20180047200A1 (en) 2016-08-11 2018-02-15 Jibjab Media Inc. Combining user images and computer-generated illustrations to produce personalized animated digital avatars
KR102596477B1 (ko) 2016-09-23 2023-11-02 애플 인크. 아바타 생성 및 편집
US10432559B2 (en) 2016-10-24 2019-10-01 Snap Inc. Generating and displaying customized avatars in electronic messages
US10242503B2 (en) 2017-01-09 2019-03-26 Snap Inc. Surface aware lens
US10242477B1 (en) 2017-01-16 2019-03-26 Snap Inc. Coded vision system
KR102544062B1 (ko) * 2017-02-21 2023-06-16 삼성전자주식회사 가상 이미지 표시 방법, 저장 매체 및 이를 위한 전자 장치
EP3602399B1 (en) * 2017-03-24 2022-10-05 Magic Leap, Inc. Accumulation and confidence assignment of iris codes
US11263924B2 (en) * 2017-03-31 2022-03-01 Cae Healthcare Canada Inc. Artificial eye system
US11893647B2 (en) 2017-04-27 2024-02-06 Snap Inc. Location-based virtual avatars
US10949872B2 (en) 2017-04-28 2021-03-16 Snap Inc. Methods and systems for server generation of interactive advertising with content collections
US9980100B1 (en) 2017-08-31 2018-05-22 Snap Inc. Device location based on machine learning classifications
US10657695B2 (en) 2017-10-30 2020-05-19 Snap Inc. Animated chat presence
US11074675B2 (en) 2018-07-31 2021-07-27 Snap Inc. Eye texture inpainting

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009037276A (ja) 2007-07-31 2009-02-19 Konami Digital Entertainment:Kk 画像表示装置、画像表示方法、ならびに、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
C. Wang et al., 'Realtime 3D eye gaze animation using a single RGB Carmera,' ACM Transactions on Graphics, 35(4), July 2016 (2016.07.11.)

Also Published As

Publication number Publication date
US20210319540A1 (en) 2021-10-14
US11468544B2 (en) 2022-10-11
WO2020028378A1 (en) 2020-02-06
US20200043145A1 (en) 2020-02-06
CN112513875B (zh) 2024-03-08
EP3830746A1 (en) 2021-06-09
US11074675B2 (en) 2021-07-27
KR20210036949A (ko) 2021-04-05
CN112513875A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
US11557075B2 (en) Body pose estimation
KR102506738B1 (ko) 눈 텍스처 인페인팅
US10984569B2 (en) Avatar based ideogram generation
US10402689B1 (en) Generating an image mask using machine learning
CN109716781B (zh) 用于视频流的实时绘制的系统、装置、介质和方法
CN107851319B (zh) 区域增强现实持久性标签对象
KR20180126561A (ko) 자동화된 아바타 생성
US11551425B2 (en) Modifying multiple objects within a video stream
CN115956255A (zh) 使用广角成像设备的3d重建
US11960653B2 (en) Controlling augmented reality effects through multi-modal human interaction
US11562548B2 (en) True size eyewear in real time
US20230069614A1 (en) High-definition real-time view synthesis
US20220373791A1 (en) Automatic media capture using biometric sensor data
CN118135643A (zh) 眼部纹理修复

Legal Events

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