KR20210062000A - 안경의 가상 시착 시스템 및 방법 - Google Patents

안경의 가상 시착 시스템 및 방법 Download PDF

Info

Publication number
KR20210062000A
KR20210062000A KR1020217006780A KR20217006780A KR20210062000A KR 20210062000 A KR20210062000 A KR 20210062000A KR 1020217006780 A KR1020217006780 A KR 1020217006780A KR 20217006780 A KR20217006780 A KR 20217006780A KR 20210062000 A KR20210062000 A KR 20210062000A
Authority
KR
South Korea
Prior art keywords
user
glasses
image
model
face
Prior art date
Application number
KR1020217006780A
Other languages
English (en)
Other versions
KR102399289B1 (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 잔드 인크
Priority to KR1020227016023A priority Critical patent/KR20220066991A/ko
Publication of KR20210062000A publication Critical patent/KR20210062000A/ko
Application granted granted Critical
Publication of KR102399289B1 publication Critical patent/KR102399289B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/56Cameras or camera modules comprising electronic image sensors; Control thereof provided with illuminating means
    • H04N5/2256
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/16Cloth
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

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

Abstract

주제 기술의 다양한 측면은 안경과 같은 물품의 가상 시착을 위한 시스템, 방법, 및 머신 판독 가능 매체에 관한 것이다. 가상 시착 인터페이스는 서버 또는 사용자 디바이스에서 구현될 수 있고, 안경의 3차원 모델과 사용자의 얼굴 및 머리의 3차원 모델 사이의 충돌 감지를 사용하여 가상 시착을 위한 안경의 올바른 크기 및 위치를 결정할 수 있다. 결정된 크기 및 위치로, 안경의 가상 표현이 사용자의 이미지에 중첩된다.

Description

안경의 가상 시착 시스템 및 방법
본 개시는 일반적으로 증강 현실에 관한 것이고, 보다 구체적으로는 안경의 가상 시착 시스템 및 방법에 관한 것이다.
가상 물체가 현실 세계의 물체의 이미지에 디지털 방식으로 오버레이되는 증강 현실 애플리케이션이 개발되었다. 경우에 따라서는, 게임 캐릭터와 같은 가상 물체가 사용자가 장면을 탐색하는 동안에 스마트폰 또는 태블릿에 의해 표시되는 장면의 이미지에 추가된다. 다른 경우에, 스마트폰 또는 태블릿의 사용자의 얼굴의 이미지에 만화 동물 얼굴 특징과 같은 만화 특징이 추가되고, 이 이미지는 스마트폰 또는 태블릿의 카메라에 의해 캡처된 것이다. 이러한 종래의 증강 현실 시스템에서, 가상 물체의 만화 같은 또는 비현실적인 특성은 현실 세계의 물체에 대한 가상 물체의 크기, 모양, 자세, 및 배치의 정확성에 상당한 여유를 준다.
본 개시는 안경테의 가상 시착(Virtual Try-On, VTO)을 위한 시스템을 제공한다. 개시된 시스템 및 방법은 VTO 인터페이스의 사용자가 물리적 안경테에 접근하지 않고서도 안경테가 얼굴에서 어떻게 보이는지 알 수 있게 한다. 개시된 시스템 및 방법에서, 사용자의 이미지가 카메라에 의해 캡처되고, 안경테의 가상 표현이 캡처된 이미지에 중첩되고, 합성 이미지가 사용자에게 다시 제시된다.
그러나, 현실적인 가상 시착 경험을 생성할 때 (ⅰ) 특정한 사용자의 고유한 얼굴 측정치 및 특성을 위한 안경테의 현실적인 크기 조정 및 (ⅱ) 사용자의 실제 3차원 얼굴에 놓이는 안경테의 현실적인 위치 지정을 포함하는 두 가지 주요 과제가 있다.
본 개시의 측면에 따르면, 이러한 과제 모두를 극복하는 시스템 및 방법이 제공된다. 예컨대, 이하에서 더 상세히 설명되는 바와 같이, 위에서 언급한 과제 (ⅰ)은 캡처된 이미지에서 사용자의 절대 크기 및 거리를 결정함으로써 적어도 부분적으로 극복될 수 있고, 위의 과제 (ⅱ)는 사용자의 얼굴 및 머리의 다양한 측면에 대한 3차원 위치 정보와 안경테의 3차원 모델을 반복적으로 교차시킴으로써 극복될 수 있다.
본 개시의 일부 측면에 따르면, 컴퓨터 구현 방법이 제공된다. 방법은 전자 디바이스의 카메라로 사용자의 얼굴의 이미지를 캡처하는 단계와, 전자 디바이스의 센서를 사용하여 사용자에 대한 3차원 위치 정보를 획득하는 단계와, 안경의 3차원 모델을 획득하는 단계와, 이미지 및 3차원 위치 정보에 기초하여 안경의 가상 표현의 위치를 결정하는 단계와, 이미지 및 3차원 위치 정보에 기초하여 안경의 가상 표현의 크기를 결정하는 단계와, 사용자의 이미지 및 결정된 크기 및 결정된 위치를 갖는 안경의 가상 표현을 포함하는 결합된 이미지를 전자 디바이스의 디스플레이로 표시하는 단계를 포함한다.
본 개시의 일부 측면에 따르면, 컴퓨터 구현 방법이 제공된다. 방법은 사용자의 얼굴의 이미지를 캡처하는 단계와, 이미지를 캡처할 때의 사용자의 3차원 모델을 획득하는 단계와, 안경의 3차원 모델을 획득하는 단계와, 이미지, 이미지를 캡처할 때의 사용자의 3차원 모델, 및 안경의 3차원 모델에 기초하여 안경의 가상 표현을 위한 크기 및 위치를 결정하는 단계와, 사용자의 얼굴의 이미지에 오버레이된 안경의 가상 표현을 결정된 크기로 그리고 결정된 위치에 표시하는 단계를 포함한다.
본 개시의 일부 측면에 따르면, 복수의 안경에 대한 3차원 모델을 저장하는 데이터베이스를 갖는 서버와, 사용자의 사용자 디바이스를 포함하는 시스템이 제공된다. 사용자 디바이스는 사용자 디바이스의 프로세서에 의해 실행되면 프로세서로 하여금 사용자의 얼굴의 이미지를 캡처하고, 사용자의 3차원 모델을 획득하고, 서버로부터 안경 중 선택된 하나의 3차원 모델을 획득하고, 이미지, 사용자의 3차원 모델, 및 안경 중 선택된 하나의 3차원 모델에 기초하여 안경 중 선택된 하나의 가상 표현을 위한 크기 및 위치를 결정하고, 사용자의 얼굴의 이미지에 오버레이된 안경 중 선택된 하나의 가상 표현을 결정된 크기로 그리고 결정된 위치에 표시를 위해 제공하게 하는 코드를 저장하는 메모리를 포함한다.
주제 기술의 다른 구성은 이하의 상세한 설명으로부터 당업자에게 용이하게 명백해질 것임이 이해되고, 주제 기술의 다양한 구성은 예시로서 도시되고 설명된다. 이해되는 바와 같이, 주제 기술은 다른 구성 및 상이한 구성이 가능하고 그 몇몇 세부사항은 주제 기술의 범위로부터 벗어나지 않고서 다양한 다른 측면에서 수정될 수 있다. 따라서, 도면 및 상세한 설명은 제한적이지 않고 본질적으로 예시적인 것으로 간주되어야 한다.
추가 이해를 제공하기 위해 포함되고 본 명세서에 통합되고 그 일부를 구성하는 첨부 도면은 개시된 실시예를 예시하고 설명과 함께 개시된 실시예의 원리를 설명하는 역할을 한다.
도 1은 본 개시의 일부 구현을 실행하기에 적합한 가상 시착을 위한 예시적인 아키텍처를 도시한다.
도 2는 본 개시의 특정한 측면에 따른, 가상 시착 인터페이스를 도시하는 개략도이다.
도 3은 본 개시의 특정한 측면에 따른, 예시적인 안경을 도시한다.
도 4는 본 개시의 특정한 측면에 따른, 사용자의 이미지에 안경의 가상 표현을 표시하는 가상 시착 인터페이스를 도시하는 개략도이다.
도 5는 본 개시의 특정한 측면에 따른, 얼굴 좌표 시스템을 도시하는 개략도이다.
도 6은 본 개시의 특정한 측면에 따른, 안경의 3차원 모델과 사용자의 3차원 모델의 박혀 있는 접촉을 도시하는 개략도이다.
도 7(a) 내지 도 7(d)는 본 개시의 특정한 측면에 따른, 가상 시착을 위한 예시적인 물리적 배치 동작 동안의 얼굴 좌표계에서의 안경의 3차원 모델에 대한 다양한 테스트 위치를 도시한다.
도 8(a) 내지 도 8(d)는 본 개시의 특정한 측면에 따른, 가상 시착을 위한 다른 예시적인 물리적 배치 동작 동안의 얼굴 좌표계에서의 안경의 3차원 모델에 대한 다양한 테스트 위치를 도시한다.
도 9는 본 개시의 특정한 측면에 따른, 사용자의 얼굴 또는 머리의 부분과 접촉하는 안경의 부분의 단면도를 도시한다.
도 10은 본 개시의 특정한 측면에 따른, 사용자의 얼굴 또는 머리의 부분을 압축하는 도 9의 안경의 부분의 단면도를 도시한다.
도 11은 본 개시의 특정한 측면에 따른, 안경의 가상 시착을 위한 예시적인 과정을 도시한다.
도 12는 본 개시의 특정한 측면에 따른, 안경의 가상 표현을 위한 위치를 결정하기 위한 예시적인 과정을 도시한다.
도 13은 본 개시의 특정한 측면에 따른, 사용자에 대한 절대 측정 위치를 획득하는 것을 도시하는 개략도이다.
도 14는 본 개시의 특정한 측면에 따른, 사용자의 3차원 모델의 2차원 렌더링을 도시하는 개략도이다.
도 15는 본 개시의 특정한 측면에 따른, 사용자에 대한 얼굴 랜드마크 절대 위치를 도시하는 개략도이다.
도 16은 본 개시의 특정한 측면에 따른, 도 1의 사용자 디바이스, 시착 서버, 및/또는 제3자 서버가 구현될 수 있는 예시적인 컴퓨터 시스템을 도시하는 블록도이다.
이하의 상세한 설명에서, 본 개시의 완전한 이해를 제공하기 위해 다수의 특정한 세부사항이 설명된다. 그러나, 본 개시의 실시예가 이러한 특정한 세부사항 중 일부 없이 실시될 수 있다는 것은 당업자에게 명백할 것이다. 다른 사례에서, 잘 알려진 구조 및 기술은 개시를 모호하게 하지 않도록 상세하게 도시되지 않았다.
일반적인 개요
가상 시착 시스템 및 방법이 여기에 개시된다. 가상 시착 시스템 및 방법은 사용자가 현실 세계의 안경 또는 테에 접근하지 않고서도 안경 또는 안경테가 현실 세계의 사용자의 얼굴에서 어떻게 보이는지 확인하는 데 특히 유용할 수 있다. 그러나, 여기에 설명된 시스템 및 방법은 안경 액세서리, 헤드웨어, 귀걸이, 다른 보디 피어싱 액세서리, 보석류, 의류 등의 가상 시착과 같은 사용자의 신체의 다른 부분에 있는 다른 물체의 가상 시착에도 적용될 수 있는 것이 이해되어야 한다. 여기에 개시된 가상 시착 시스템 및 방법은 사용자가 특정한 현실 세계 아이템이 사용자의 특정한 신체에 보이는 방식을 상상할 수 있게 한다.
그러나, 현실성이 부족하지 않은 VTO 구현을 제공하는 것이 어려울 수 있다는 것이 발견되었다. 일부 시나리오에서, VTO 시스템은 사용자에 대한 3차원 정보에 접근할 수 없기 때문에 이미지에서 사용자의 얼굴 특징에 대해 가상 안경을 얼마나 크게 만들지 추측할 수 있다. 이는 이미지로부터 사용자의 얼굴 특징의 물리적 크기를 추정하는 것이 간단하지 않기 때문이고, 특히 이미지 내의 또는 이미지에 대한 배율 기준이 없는 경우에는 더욱 그렇다. 일부 VTO 시스템은 가상 안경의 적절한 크기를 결정하기 위해 사용자의 머리가 평균 크기라고 가정할 수 있다. 그러나, 이러한 유형의 가정은 머리가 평균보다 작거나 큰 사용자에게 비현실적인 결과를 생성할 것이다.
더욱이, 2차원 이미지로부터 획득될 수 없는 3차원 정보 없이, VTO 시스템은 전형적인 사용자의 전형적인 얼굴 특징에 기초하여 고객의 얼굴에 안경이 어디에 놓이는지 추측할 수 있다. 그러나, 실제로, 특정한 안경이 특정한 사용자의 얼굴에 놓이는 방식의 특수성은 안경의 앞면의 정확한 모양 및 고객의 코와 콧등의 3차원 모양의 함수이다. 따라서, 전형적인 특징을 사용하면 가정된 전형적인 특징과 상이한 특징을 갖는 고객에게 비현실적인 결과가 발생할 것이다.
일부 시나리오에서, VTO 시스템은 사용자가 얼굴 측정치 또는 캡처된 이미지에서의 특정한 얼굴 특징의 식별자를 VTO 시스템에 입력하는 것과 같은 추가 정보를 제공하도록 요청할 수 있다. 그러나, 이러한 추가 사용자 입력은 부정확하고 바람직하지 않게 시간을 소모할 수 있고, 이로 인해 VTO 시스템의 사용자가 (예컨대, 경쟁 업체에 의해 제공되는 VTO 시스템에) VTO 인터페이스를 제공하는 애플리케이션 또는 웹사이트로부터 멀어질 수 있다.
주제 개시의 측면에 따라, 이미지에서의 사용자의 얼굴의 크기에 대한 정보를 구비한 사용자의 얼굴의 캡처된 이미지를 사용자의 얼굴의 3차원 표현과 함께 사용하여 특정한 사용자의 얼굴에 대한 현실 세계의 안경의 실제 모습의 사실적인 표현을 제공하는 VTO 시스템 및 방법이 제공된다. 캡처된 이미지에서의 사용자의 얼굴의 크기가 직접 측정되기 때문에, 여기에 설명된 VTO 시스템 및 방법은 사용자의 얼굴에 대한 올바른 상대적 크기로 안경의 가상 표현을 렌더링할 수 있다. 사용자의 얼굴의 이미지에 대한 안경의 가상 표현의 정확한 배치(예컨대, 위치 조정 및/또는 자세)는, 실제 사용자의 얼굴에 놓이는 것처럼, 이하에서 더 자세히 설명된다.
여기에 제공된 많은 예는 사용자의 디바이스 또는 물리적 특징이 식별 및/또는 저장되는 것으로 설명하지만, 각 사용자는 이러한 사용자 정보가 수집, 공유, 및/또는 저장되도록 명시적인 권한을 부여할 수 있다. 개시된 시스템에 통합된 프라이버시 통제를 사용하여 명시적인 권한이 부여될 수 있다. 각 사용자는 그러한 사용자 정보가 명시적인 동의하에 저장될 것이라는 통지를 받을 수 있고, 각 사용자는 언제든지 정보 저장을 종료할 수 있고, 저장된 사용자 정보를 삭제할 수 있다. 저장된 사용자 정보는 사용자 보안을 보호하기 위해 암호화될 수 있다. 여기에 설명된 일부 실시예는 임의의 그리고 모든 적용 가능한 주(state) 및/또는 연방(federal) 규정에 따라 원격 서버에 사용자의 생체 데이터를 임시 저장하는 것으로부터 이익을 얻을 수 있지만, 일반적으로 사용자의 생체 데이터는 사용자의 디바이스에서만 저장 및 처리되고, 현재 VTO 세션이 종료되면 폐기된다.
사용자는 언제든지 메모리로부터 사용자 정보를 삭제하고 또한/또는 사용자 정보가 메모리에 저장되지 않도록 할 수 있다. 또한, 사용자는 언제든지 적절한 프라이버시 설정을 조정하여 메모리에 저장된 사용자 정보의 유형을 선택적으로 제한하거나, (예컨대, 서버에서 원격으로가 아닌 사용자의 디바이스에서 로컬로) 사용자 정보가 저장되는 메모리를 선택할 수 있다. 많은 예에서, 사용자 정보는 사용자에 의해 명확히 제공되거나 지시되지 않는 한 사용자의 구체적인 신원(예컨대, 사용자의 이름)을 포함 및/또는 공유하지 않는다.
예시적인 시스템 아키텍처
도 1은 본 개시의 일부 구현을 실행하기에 적합한 안경의 가상 시착을 위한 예시적인 아키텍처(100)를 도시한다. 아키텍처(100)는 네트워크(150)를 통해 연결된 시착 서버(130) 및 사용자 디바이스(110)를 포함한다. 나타낸 바와 같이, 제3자 서버(140)도 네트워크(150)를 통해 시착 서버(130) 및/또는 사용자 디바이스(110)에 통신 가능하게 연결될 수 있다. 시착 서버(130)는 하나 이상의 사용자 디바이스(110)를 이용하여 가상으로 시착될 수 있는 물체와 관련된 정보의 데이터베이스(142)를 포함할 수 있다. 예컨대, 시착 서버(130)의 데이터베이스(142)는 (예컨대, 시착 서버 자체로부터, 실제 오프라인 상점으로부터, 또는 제3자 서버(140)와 같은 다른 서버로부터) 구매가 가능한 렌즈가 있거나 없는 다양한 안경테의 3차원 모델을 포함할 수 있다. 일부 구현에서, 시착 서버(130)는 서버의 프로세서에 의해 실행되면 프로세서로 하여금 여기에 설명된 시착 방법 및 동작을 수행하는 시착 인터페이스(예컨대, 시착 웹 인터페이스)를 제공하게 하는 코드를 저장할 수도 있다. 일부 구현에서, 시착 인터페이스를 위한 코드는 추가적으로 또는 대안적으로 하나 이상의 사용자 디바이스(110)에 저장될 수 있다. 이러한 구현에서, (예컨대, 사용자 디바이스에서 실행되는 시착 애플리케이션에 의해 생성된) 시착 인터페이스를 실행하는 사용자 디바이스는 시착 서버(130)로부터 안경의 3차원 모델을 획득하고 사용자 디바이스에서 여기에 설명된 시착 동작을 수행할 수 있다.
제3자 서버(140)는 시착 서버(130)에 3차원 표현이 저장되는 안경의 판매를 처리하는 서버를 포함할 수 있거나, 제3자 서버(140)는 (예컨대, 다른 물체의 3차원 모델을 데이터베이스(144)에 저장함으로써) 시착 서버(130) 및/또는 사용자 디바이스(110)에 의해 제공되는 시착 인터페이스를 사용하고 3차원 모델을 시착 서버(130) 및/또는 사용자 디바이스(110)에 제공하여 시착될 수 있는 다른 물체의 3차원 표현을 저장할 수 있다.
시착 서버(130)는 시착 인터페이스를 호스팅하고 또한/또는 안경 또는 다른 물체의 3차원 모델을 저장하기 위한 적절한 프로세서, 메모리, 및 통신 능력을 갖는 임의의 디바이스로 각각 구현될 수 있다. 사용자 디바이스(110)는, 예컨대, 데스크톱 컴퓨터, 랩톱 컴퓨터와 같은 모바일 컴퓨터, (예컨대, 전자책 단말기를 포함하는) 태블릿 컴퓨터, 모바일 전자 디바이스(예컨대, 스마트폰, 태블릿, 또는 PDA), 또는 적절한 이미징(예컨대, 가시광선 이미징 및/또는 적외선 이미징), 조명(예컨대, 가시광선 조명 및/또는 적외선 조명), 프로세서, 메모리, 및 가상 시착 인터페이스를 제공하기 위한 통신 기능을 갖는 임의의 다른 디바이스일 수 있다. 네트워크(150)는, 예컨대, 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷 등 중 어느 하나 이상을 포함할 수 있다. 또한, 네트워크(150)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메시 네트워크, 스타 버스 네트워크, 트리 또는 계층 네트워크 등을 포함하는 이하의 네트워크 토폴로지 중 어느 하나 이상을 포함할 수 있지만 이에 제한되지는 않는다.
예시적인 가상 시착(Virtual Try-On, VTO) 인터페이스
도 2는 사용자 디바이스(110) 중 하나에서 실행되는 가상 시착(VTO) 인터페이스(202)를 도시하는 개략도이다. 가상 시착 인터페이스(202)는 시착 서버(130) 중 하나와 같은 원격 디바이스에서 실행되는 코드에 기초한 웹 인터페이스이거나, 사용자 디바이스 자체에서 실행되는 로컬 가상 시착 애플리케이션일 수 있다.
도 2의 예에서, (예컨대, 사용자 디바이스(110)의 가시광선 카메라(205)를 사용하여) 사용자의 이미지(200)가 캡처되고 사용자 디바이스(110)의 디스플레이(201)에 표시된다. 사용자의 얼굴의 다양한 특징이 이미지(200)에서 식별될 수 있음을 알 수 있다. 예컨대, 사용자의 눈(206), 코(223), 및 머리카락(222)이 사용자 디바이스(110) 및/또는 시착 서버(130)에 의해 이미지(200)에서 보여지고 식별될 수 있다. 사용자의 코시작점(sellion)(208), 눈동자 중심(204), 상이저점(otobasion superius)(218), 윗눈확점(orbitale superius)(216), 미간(glabella)(225), 및/또는 코끝(pronasale)(210)과 같은 더 자세한 특징도 사용자 디바이스(110) 및/또는 시착 서버(130)에 보여지고 식별될 수 있다. 추가적으로 또는 대안적으로, 사용자 디바이스(110) 및/또는 시착 서버(130)에 의해 이미지(200)에서 보여지고 식별될 수 있는 다른 얼굴 랜드마크는 (예로서) 사용자의 안쪽눈구석점(endocanthion), 가쪽눈구석점(exocanthion), 귀구슬점(tragion), 광대활점(zygion), 윗눈꺼풀점(palpebrale superius), 아래눈꺼풀점(palpebrale inferius), 전두측두점(frontotemporale), 상악전면(maxillofrontalle), 안와점(orbitale), 귀구슬점(tragion), 코뿌리점(nasion), 및 턱끝점(menton)을 포함한다.
그러나, 이미지(200)는 이미지에서의 사용자의 임의의 특징의 크기 및/또는 절대 위치에 관한 정보를 포함하지 않는 2차원 이미지일 수 있다. 사용자의 이러한 특징 및/또는 다른 특징에 대한 3차원 위치 정보는 다른 카메라, (예컨대, 시각적 관성 주행 거리 측정을 위한) 모션 센서, 근접 센서, 비행 시간 센서, 레이저 거리계, 또는 카메라(205)의 시야에 있는 물체에 대한 3차원 위치 정보를 캡처할 수 있는 임의의 다른 센서와 같은 추가 센서(209)를 사용하여 획득될 수 있다. 하나의 예에서, 센서(209)는 카메라(205)로부터 공간적으로 오프셋되는 다른 가시광선 카메라로서 구현될 수 있어서 시차 정보(예컨대, 두 개의 스테레오 이미징 카메라(205, 209)에 의해 캡처된 이미지 사이의 시차 효과) 및 카메라 사이의 알려진 거리가 3차원 위치 정보를 제공할 수 있다. 다른 예에서, 3차원 위치 정보는 카메라(205) 및/또는 카메라로서 구현된 센서(209)에 대한 사용자의 움직임에 기초하한 운동으로부터 구조의 출현(structure-from-motion) 동작을 사용하여 생성될 수 있다.
다른 예에서, 센서(209)는 적외선 광원(207)에 의해 방출된 하나 이상의 적외선 빔의 반사와 같은 사용자의 얼굴 및/또는 머리로부터의 적외선 광을 캡처하는 적외선 카메라일 수 있다. 예컨대, 적외선 광원(207)은 사용자의 얼굴 및/또는 머리의 다양한 측정 위치에서 적외선 스팟을 생성하는 여러(예컨대, 수십, 수백, 또는 수천의) 적외선 빔을 방출할 수 있고, 그 반사 부분은 센서(209)에 의해 촬상될 수 있다. 캡처된 적외선 이미지에서의 적외선 스팟의 왜곡이, 각 적외선 스팟까지의 절대 거리를 결정하기 위해, 적외선 빔의 알려진 크기 및 모양과 함께 사용될 수 있다. 따라서, 센서(209)는, 카메라로서 구현되든 다른 3차원 센서로서 구현되든, (예컨대, 이미지(200)에서 대응하는 특징을 갖는 다양한 측정 위치의 절대 3차원 위치 사이의 거리를 결정함으로써) 이미지(200)에서의 사용자의 얼굴의 절대 크기 및/또는 사용자의 얼굴의 다양한 특징이 결정될 수 있게 한다.
사용자 디바이스(110)(및/또는 시착 서버(130))는 측정 지점 절대 3차원 위치(211), 측정 지점 절대 3차원 위치(211)에 기초한 사용자의 3차원 모델(213), 및/또는 얼굴 랜드마크 절대 위치(215)와 같은 사용자를 위한 3차원 위치 정보를 생성 및/또는 저장할 수 있다. 저장되는 3차원 위치 정보는 이미지(200)에서 대응하는 특징의 2차원 위치에 매핑된다. 얼굴 랜드마크 절대 위치(215)는 측정 지점 절대 3차원 위치(211)의 부분집합일 수 있고, 평균화된, 보간된, 또한/또는 결합된 측정 지점 절대 3차원 위치(211)일 수 있고, 또는 3차원 모델(213)에 기초하여 결정될 수 있다. 3차원 모델(213)은 측정 지점 절대 3차원 위치(211)에 기초하여 또는 측정 지점 절대 3차원 위치(211)로부터 추출되거나 생성된 얼굴 랜드마크 절대 위치(215)에 기초하여 생성될 수 있다. 다양한 구현에서, 3차원 모델(213) 및/또는 얼굴 랜드마크 절대 위치(215)는 사용자 디바이스(110)에 의해 서버에 제공되는 데이터(예컨대, 측정 지점 절대 3차원 위치(211))를 사용하여 사용자 디바이스(110) 또는 시착 서버(130)에서 생성될 수 있다.
이미지(200)에 표현된 사용자는 도 3의 안경(300)과 같은 사용자가 물리적으로 접근할 수 없는 물체를 시착하기를 원할 수 있다. 도 3에 나타낸 바와 같이, 안경(300)은 테(302) 및 테에 장착된 렌즈(304)와 같은 물리적 특징을 포함한다.
테(302)는 브리지(308), 코 패드(310), 다리(306), 말단부(316), 및 다리끝(이어피스)(309)을 포함한다. 코 패드(310)는 (예컨대, 아세테이트 테의 경우) 테에 형성될 수 있거나 (예컨대, 금속 또는 혼합 재질 테의 경우) 테로부터 연장되는 패드 암(예컨대, 조정 가능한 암)에 배치되는 별도의 패드일 수 있다. 테(302)의 다양한 부분은, 착용자의 특정한 특성에 따라, 착용자의 얼굴의 대응하는 부분과의 접촉점일 수 있다. 예컨대, 브리지(308)는 일반적으로 통합된 코 패드(310)를 갖는 아세테이트 테의 착용자의 코시작점(208)에 놓이는 반면, 통합된 코 패드는 사용자의 콧등 부분(212)에 놓인다. 다른 예에서, 패드 암에 코 패드가 있는 금속 테의 경우, 브리지(308)는 사용자의 피부로부터 떠 있거나 사용자의 상대적으로 높은 위치(예컨대, 미간(225))에 놓일 것이고, 안경은 코 패드(310)와 사용자의 콧등 부분(212) 사이의 접촉에 의해 주로 지지된다.
임의의 테 재질을 갖는, (예컨대, 렌즈(304) 아래의) 테의 하단부(314), 또는 가장자리가 없는 또는 부분적으로 가장자리가 없는 테를 갖는 안경의 렌즈(304)의 하단은 사용자와의 접촉으로부터 떠 있거나 사용자의 피부의 광대뼈 부분(214)에 놓일 수 있다. 유사하게, 임의의 테 재질을 갖는, 렌즈 위의 테의 부분(312)(또는 가장자리가 없는 테에 장착된 렌즈의 상단 부분)은 사용자와의 접촉으로부터 떠 있거나 눈썹, 윗눈확점(orbitale superius)(216), 또는 사용자의 피부의 근처의 부분에 놓일 수 있다. 유사하게, 임의의 테 재질을 갖는, 테(302)의 다리(306)는 상이저점(otobasion superius)(218)에 놓일 것이고 또한/또는 다리끝(309)의 부분은 사용자의 귀(220) 뒤에 있는 사용자의 머리의 부분에 놓일 수 있다. 안경(300)과 사용자의 얼굴 및 머리 사이의 접촉점은 매우 대칭적인 특징을 갖는 사용자의 경우에 사용자의 얼굴 및 머리의 좌측과 우측에서 대칭일 수 있고, 또는 하나 이상의 비대칭 특징을 갖는 사용자의 경우에 상이할 수 있다.
도 3에 언급된 안경(300)의 특징 및/또는 안경(300)의 다른 특징은 (예컨대, 주문 또는 구매 가능한 각 안경에 대해) 시착 서버(130)에 의해 저장되는 안경(300)의 3차원 모델에 의해 설명된다.
여기에 설명된 사용자의 얼굴 및/또는 머리의 3차원 모델은 기준점 및 수학적 함수가 사용자의 얼굴 및/또는 머리의 윤곽에 대응하는 경로를 따라 기준점을 연결하게 하는 파라미터를 갖는 파라미터화된 수학적 함수를 포함할 수 있다. 여기에 설명된 안경의 3차원 모델은 기준점 및 수학적 함수가 안경의 윤곽에 대응하는 경로를 따라 기준점을 연결하게 하는 파라미터를 갖는 파라미터화된 수학적 함수를 포함할 수 있다. 일부 시나리오에서는, 사용자의 얼굴 및/또는 머리, 및 안경의 통합된 3차원 모델이 생성될 수 있다.
이미지(200), 이미지 내의 사용자에 대한 3차원 위치 정보(예컨대, 도 2의 211, 213, 및/또는 215), 및 특정한 안경(300)의 3차원 모델이 획득되면, 안경(300)의 가상 표현이 이미지(200)에 오버레이될 수 있으므로 사용자는 특정한 안경(300)이 사용자의 특정한 얼굴 특징에 착용될 때에 실제 세계에서 어떻게 나타날 것인지를 볼 수 있다.
예컨대, 도 4는 사용자의 얼굴의 실제 크기에 대한 안경(300)의 실제 크기가 정확하게 표현되도록 크기가 조정된 안경(300)의 가상 표현(400)을 도시한다. 가상 표현(400)은 이미지에서의 사용자의 특징의 겉보기 크기와 일치하도록 크기가 조정된 것이 아니라, 사용자의 특징의 현실 세계의 크기와 일치하도록 크기가 조정된 것이 이해되어야 한다. 이러한 이유로, 안경(300)의 가상 표현(400)은, 실제 안경(300)이 현실 세계에서 사용자에게 너무 크거나 작다면, (크기가 사용자에게 대략 올바른 것으로 보이는 도 4의 예와 반대로) 사용자의 머리 및 얼굴 특징의 크기에 비해 너무 크거나 작게 보일 수 있다. 예컨대, 안경(300)이 성인용 크기의 안경이고 사용자가 어린이인 경우, 안경(300)의 가상 표현(400)은 이미지(200)에서 너무 크게 보일 것이다.
일부 구현에서, VTO 인터페이스(202)는 안경의 알려진 크기 및 3차원 위치 정보에 기초하여 잘못된 크기의 안경을 감지하여, 사용자에게 잘못된 크기를 알리고 또한/또는 더 적절한 크기일 수 있는 하나 이상의 상이한 안경을 시착하라고 추천할 수 있다.
도 4의 예에서, 안경(300)의 가상 표현(400)은 안경(300)이 현실 세계에서 사용자의 얼굴에 놓이는 것처럼 보이도록 사용자의 이미지에 대해 가상 표현(400)이 위치되고 크기가 조정된 구성으로 이미지(200)에 오버레이되어 표시된다. (도 4의 예에서와 같이 사용자의 얼굴의 이미지에 오버레이하여, 결정된 크기로 그리고 결정된 위치에) 안경의 가상 표현을 표시하는 것은 안경의 3차원 모델을 표시된 2차원 이미지에 대응하는 좌표계로 변환하는 것, 가상 표현(400)이 올바르게 나타나도록 2차원 이미지의 수정된 버전에서 각 화소에 대한 밝기 및 색상을 (예컨대, 변환된 안경의 색상, 크기, 및 모양에 기초하여) 결정하는 것, 그 화소에 대해 결정된 밝기 및 색상으로 수정된 이미지의 각 화소를 표시하기 위해 디바이스(110)의 디스플레이(201)의 표시 화소를 동작시키는 것을 포함할 수 있다.
도 4의 예에서, 안경(300)의 가상 표현(400)이 이미지(200)에 오버레이되어서 사용자의 콧등 부분(212)에 놓여 있고 코시작점(208) 위의 코시작점(208)과 떨어진 브리지(308)를 지지하는 코 패드(310)를 나타낸다. 사용자의 귀(220)의 상이저점(otobasion superius)(218)에 놓여 있는 다리(306)가 도시된다.
그러나, 특정한 안경(300)과 특정한 사용자의 얼굴 사이의 접촉점, 또는 접촉점의 조합은 특정한 안경이 특정한 사용자의 얼굴에 어떻게 놓일지 결정할 것이다. 따라서, 특정한 사용자의 이미지(200)에서의 안경(300)의 가상 표현(400)의 위치 및 자세를 결정하기 위해, 안경의 3차원 모델은 사용자에 대한 3차원 위치 정보(예컨대, 측정 지점 절대 3차원 위치(211), 3차원 모델(213), 및/또는 얼굴 랜드마크 절대 위치(215))와 함께 가상 장면에 배치될 수 있고, 두 개체가 교차하는지 여부를 결정하기 위해 테스트가 수행된다. 교차 테스트에서, 사용자 디바이스(110) 및/또는 서버(130)는 (측정 지점 절대 3차원 위치(211), 3차원 모델(213), 및/또는 얼굴 랜드마크 절대 위치(215)에 기초하여) 사용자의 얼굴의 표면에 대응하는 기하학적 표면이 임의의 지점에서 (안경의 3차원 모델에 기초하여) 안경의 외부 표면에 대응하는 기하학적 표면과 일치하는지 여부를 결정한다. 두 기하학적 표면이 일치하면, 접촉점, 또는 접촉점의 집합(예컨대, 두 기하학적 표면 사이의 하나 이상의 교차 곡선에 대응함)이 식별될 수 있다. 사용자에 대한 3차원 위치 정보에 대해 안경(300)의 3차원 모델의 상이한 위치 및/또는 자세로 반복적인 방식으로 다수의 교차 테스트가 수행되어, 올바른 접촉점의 집합을 식별하고, 특정한 사용자의 이미지(200)에서의 안경(300)의 가상 표현(400)의 올바른 위치 및 자세를 결정할 수 있다.
이러한 반복적인 교차 테스트는 물리적 배치 동작이라고 지칭될 수 있고, 고객이 실제로 안경을 얼굴에 놓을 때 발생하는 물리적 과정을 시뮬레이션하기 위해 수행될 수 있다.
물리적 배치 동작은 도 5에 나타낸 얼굴 좌표계와 같은 얼굴 좌표계를 지정하는 것을 포함할 수 있다. 도 5의 예에서, x축은 사용자의 좌측과 우측을 정의하는(예컨대, 사용자의 좌측과 우측 사이에서 연장되는) 축을 의미하고, 여기서 양의 x축은 원점으로부터 사용자의 좌측으로 확장된다. 도 5의 y축은 사용자의 머리의 상단과 하단을 정의하는(예컨대, 사용자의 머리의 상단과 하단 사이에서 연장되는) 축을 의미하고, 여기서 양의 y축은 원점으로부터 사용자의 머리의 상단을 향해 x축에 직교하여 연장된다. 나타낸 바와 같이, z축은 사용자의 머리의 앞과 뒤를 정의하는(예컨대, 사용자의 머리의 앞과 뒤 사이에서 연장되는) 축을 의미하고, 여기서 양의 z축은 x축과 y축에 직교하여 원점으로부터 사용자의 머리의 앞을 향해 연장된다.
물리적 배치 동작은 얼굴 좌표계의 원점으로서 작용하는 얼굴 랜드마크를 식별하는 것을 포함할 수 있다. 이런 식으로, 안경의 배치는 얼굴 좌표계의 원점으로부터의 오프셋으로서 설명될 수 있다. 하나의 특히 유용한 기준점은 코와 이마 사이에 형성된 각도의 가장 깊은 정중선 지점, 또는 사용자의 눈 사이의 "디벗(divot)"에서의 가장 깊은 지점을 의미하는 코시작점(sellion)(208)이다. 코시작점(208)의 위치는 이미지(200) 및/또는 사용자에 대한 3차원 위치 정보를 사용하여 사용자 디바이스(110) 및/또는 시착 서버(130)에 의해 식별될 수 있다. 물리적 배치 동작은 안경의 브리지(308)의 수평 중심에서의 최하단, 최후방 지점과 같은 안경 좌표계의 원점을 식별하는 것을 포함할 수 있다.
물리적 배치 동작은 가상 시착 동작을 수행하는 디바이스에서 이용 가능한 계산 리소스(예컨대, 처리 능력, 메모리, 및/또는 통신 대역폭)에 따라 다양한 수준의 복잡함과 현실감을 제공하도록 조정될 수 있다. 하나의 예에서, 물리적 배치 동작은 (ⅰ) 안경 좌표계의 원점과 얼굴 좌표계 사이의 x 오프셋을 0으로 설정하는 것, (ⅱ) 안경 좌표계의 원점과 얼굴 좌표계 사이의(예컨대, 코시작점과 안경 원점 사이의) 고정된 y 및 z 오프셋을 선택하는 것을 포함할 수 있다. 이 예에서, 고정된 y 및 z 오프셋은 테의 유형(예컨대, 아세테이트 또는 금속) 및/또는 사용자에 대한 얼굴 랜드마크의 집합의 위치에 기초하여 선택될 수 있다. 이 유형의 고정된 y 및 z 오프셋은 고객과 안경의 많은 조합에 대해 현실적인 결과를 제공하기 위해 낮은 계산 능력 또는 낮은 대역폭 시나리오에서 사용될 수 있지만, 모든 경우에 결과가 현실적이지는 않을 가능성이 있다. 예컨대, 경우에 따라, 고정된 y 및 z 오프셋으로 인해 안경 모델과 얼굴 모델 사이에 비현실적인 교차가 발생하여, 도 6에 나타낸 바와 같이 안경이 얼굴 "뒤"에 부적절하게 나타나거나 사용자의 얼굴 내에 박혀 있게 한다. 도 6의 예에서, 안경(300)의 가상 표현(400)의 부분(600)은 사용자의 얼굴 내에 부적절하게 박혀 있다. 다른 경우에는, 안경이 사용자의 얼굴 앞에 비현실적으로 떠 있는 것처럼 보일 수 있다.
보다 현실적인 시착 경험을 제공하기 위해, 물리적 배치 동작은 하나 이상의 반복적인 교차 동작을 포함할 수 있다. 두 세트의 반복적인 교차 동작을 도시하는 예가 도 7(a) 내지 도 7(d) 및 도 8(a) 내지 도 8(d)에 나타내어진다.
도 7(a) 내지 도 7(d)는 단단한 앞면을 갖고 착용될 때 일반적으로 코시작점에 대해 밀어올려지는 아세테이트 테의 배치에 사용될 수 있는 고정된 z 오프셋(예컨대, 여러 테스트 위치에서의 공통 z 오프셋) 및 가변 y 오프셋을 사용하는 반복적인 교차 동작을 도시한다. 도 7(a) 내지 도 7(d)의 예에서, 얼굴 좌표계에서의 안경의 3차원 모델의 여러 테스트 위치가 도시되고, 각각은 안경(300)의 3차원 모델의 원점과 0으로 설정된 얼굴 좌표계의 원점 사이에서 x 오프셋을 갖는다. 두 원점 사이의(예컨대, 코시작점과 안경 원점 사이의) 고정된 z 오프셋이 (예컨대, 안경과 코시작점 사이의 미리 결정된 전형적인 분리에 기초하여) 선택될 수 있다. 안경(300)의 가상 표현(400)의 최종 위치에 대한 최종 y 오프셋을 결정하기 위해, y 오프셋은 안경이 얼굴과 접촉하게 하는 y 오프셋의 값을 찾기 위한 여러 테스트 위치를 생성하도록 변경될 수 있다. 도 7(a) 내지 도 7(d)의 예에서, 얼굴 좌표계에서의 4개의 예시적인 테스트 위치의 각각은 y축을 따른 상이한 y 오프셋, x축을 따른 제로 x 오프셋, z축을 따른 공통 z 오프셋을 갖는다.
도 7(a)의 예에서, 제 1 테스트 위치(예컨대, 고정된 z 오프셋 및 제로 x 오프셋을 갖는 제 1 y 오프셋)가 선택되었다. 그러나, 이 제 1 테스트 위치에서, 안경(300)의 3차원 모델은 사용자의 얼굴의 3차원 표현(예컨대, 3차원 위치 정보)에 부분적으로 박혀 있고, 이는 표시되는 경우, 나타낸 바와 같이 안경(300)의 가상 표현(400)이 사용자의 얼굴의 이미지 내로 사라지게 할 것이다. 이러한 박힘은 안경(300)의 3차원 모델과 사용자의 얼굴의 3차원 표현 사이의 충돌 감지 동작을 포함하는 교차 동작을 수행함으로써 (예컨대, 사용자 디바이스(110) 또는 시착 서버(130)에 의해) 감지될 수 있다.
도 7(a)에 나타낸 유형의 박힌 접촉이 감지되면, 안경(300)의 3차원 모델은 도 7(b)에 도시된 바와 같이 (예컨대, 동일한 공통 z 오프셋 및 제로 x 오프셋을 갖는 새로운 y 오프셋에서의) 새로운 테스트 위치로 이동될 수 있다. 예컨대, 새로운 테스트 위치는 점진적으로 상이한 새로운 테스트 위치이거나 (예컨대, 새로운 위치에서 다른 충돌 감지 동작으로 결정된 바와 같이) 안경(300)의 3차원 모델과 사용자의 얼굴의 3차원 표현 사이에 접촉이 없는 새로운 테스트 위치일 수 있다. 새로운 테스트 위치는 초기 전환 증분을 설명하는 파라미터에 대응할 수 있다.
도 7(b)의 예에서와 같이 안경(300)의 3차원 모델과 사용자의 얼굴의 3차원 표현 사이에 접촉이 없다고 (예컨대, 사용자 디바이스(110) 또는 시착 서버(130)에 의해) 결정된 경우, 다른 새로운 테스트 위치(예컨대, 다른 새로운 y 오프셋)는, 예컨대, 이진 검색 동작 또는 당업자에 의해 이해되는 다른 검색 알고리즘을 사용하여 결정될 수 있고, 다른 교차(예컨대, 충돌 감지) 동작이 다음의 새로운 테스트 위치에서 수행된다. 예컨대, 도 7(c)의 예에서, 새로운 y 오프셋은 도 7(b)의 y 오프셋과 제로 y 오프셋 사이의 대략 중간에 있다. 그러나, 도 7(c)에 나타낸 테스트 위치에서, (예컨대, 도 7(c)의 새로운 위치에서 다른 충돌 감지 동작을 수행함으로써 결정되는 바와 같이) 사용자 디바이스(110) 또는 시착 서버(130)는 안경(300)의 3차원 모델과 사용자의 얼굴의 3차원 표현 사이에 여전히 접촉이 없다고 결정할 수 있다.
물리적 배치 동작은 (예컨대, 도 7(d)에 도시된 바와 같이) 사용자의 얼굴의 3차원 표현에서의 안경(300)의 3차원 모델에 대한 올바른 정지 위치가 식별될 때까지 하나 이상의 추가 y 오프셋(예컨대, 각각 이진 검색 알고리즘을 사용하여 결정됨)에서의 하나 이상의 추가 충돌 감지(교차) 동작을 포함한다. 올바른 정지 위치는 안경(300)의 3차원 모델이 비접촉 위치로부터 이동하면서 사용자의 얼굴의 3차원 표현과 임의의 접촉을 하는 첫 번째 위치일 수 있다. 그러나, 일부 시나리오에서, 물리적 배치 동작은 첫 번째 접촉이 안경이 사용자의 얼굴에서 안정되는 정지 접촉인지 또는 첫 번째 접촉이 불안정한 접촉인지를 결정하는 것과 같은 추가 동작을 포함할 수 있다.
예컨대, 첫 번째 접촉이 브리지(308)와 사용자의 코시작점(208) 사이 또는 코 패드(310)와 사용자의 콧등 부분(212) 사이의 접촉이라면, 접촉은 안정된 접촉 또는 정지 접촉으로 결정될 수 있다. 그러나, 일부 시나리오에서, 첫 번째 접촉은 브리지(308) 또는 코 패드(310)와 접촉하기 전의 사용자의 얼굴과 테(302)의 하단부(314) 사이의 접촉일 수 있고, 이는 불안정한 접촉을 나타낼 수 있다(예컨대, 안경이, 떨어지거나 미끄러지는 동안 또는 그 이후에 하단부(314)와의 접촉이 유지되는지 여부에 관계 없이, 브리지(308) 또는 코 패드(310) 중 적어도 하나가 사용자와 접촉하는 다른 위치로 떨어지거나 미끄러질 가능성이 있기 때문이다).
추가 위치에서의 추가 교차가 첫 번째 접촉 후에 수행되는 경우, 박힘을 방지하기 위해 또한/또는 적어도 하나의 다른 접촉점이 사용자의 얼굴에 대한 안경의 위치를 제어할 때까지 첫 번째 접촉점의 분리를 방지하기 위해 (예컨대, 코 패드 또는 브리지가 접촉할 때까지 사용자의 얼굴을 따라 테의 하단부가 미끄러지는 것을 시뮬레이션함으로써) 추가 위치가 선택될 수 있다.
도 8(a) 내지 도 8(d)는 (예컨대, 사용자가 나중에 올바른 y 오프셋을 획득하기 위해 현실 세계에서 코 패드를 조정하여, 배치 동작 중에 올바른 y 오프셋이 가정되고 고정되도록 할 수 있기 때문에) 배치에서의 보다 유연함을 허용하는 조정 가능한 코 패드를 갖는 금속 및/또는 혼합 재질 테의 배치에 사용될 수 있는 고정된 y 오프셋(예컨대, 모든 테스트 위치에 대한 공통 y 오프셋) 및 가변 z 오프셋을 사용하는 반복적인 교차 동작을 도시한다. 도 8(a) 내지 도 8(d)의 예에서, 얼굴 좌표계에서의 4개의 테스트 위치의 각각은 z축을 따른 상이한 z 오프셋, x축을 따른 제로 x 오프셋, 및 y축을 따른 공통 y 오프셋을 갖는다.
도 8(a)의 예에서, 제 1 테스트 위치(예컨대, 고정된 y 및 제로 x 오프셋을 갖는 제 1 z 오프셋)가 선택되었다. 그러나, 이 제 1 테스트 위치에서, 안경(300)의 3차원 모델은 사용자의 얼굴의 3차원 표현에 박혀 있고, 이는 표시되는 경우, 나타낸 바와 같이 안경(300)의 가상 표현(400)의 적어도 일부분이 사용자의 얼굴 내로 사라지게 할 것이다. 이러한 박힘은 안경(300)의 3차원 모델과 사용자의 얼굴의 3차원 표현 사이의 충돌 감지 동작을 포함하는 교차 동작을 수행함으로써 (예컨대, 사용자 디바이스(110) 또는 시착 서버(130)에 의해) 감지될 수 있다.
도 8(a)에 나타낸 유형의 박힌 접촉이 감지되면, 안경(300)의 3차원 모델은 도 8(b)에 도시된 바와 같이 (예컨대, 새로운 z 오프셋에서의) 새로운 테스트 위치로 이동될 수 있다. 예컨대, 새로운 테스트 위치는 점진적으로 상이한 새로운 테스트 위치이거나 (예컨대, 새로운 위치에서 다른 충돌 감지 동작으로 결정된 바와 같이) 안경(300)의 3차원 모델과 사용자의 얼굴의 3차원 표현 사이에 접촉이 없는 새로운 테스트 위치일 수 있다.
도 8(b)의 예에서와 같이 안경(300)의 3차원 모델과 사용자의 얼굴의 3차원 표현 사이에 접촉이 없다고 (예컨대, 사용자 디바이스(110) 또는 시착 서버(130)에 의해) 결정되는 경우, 다른 새로운 테스트 위치(예컨대, 다른 새로운 z 오프셋)가, 예컨대, 이진 검색 알고리즘 또는 당업자에 의해 이해되는 다른 검색 알고리즘을 사용하여 결정될 수 있고, 다른 교차(예컨대, 충돌 감지) 동작이 다음의 새로운 테스트 위치에서 수행된다. 예컨대, 도 8(c)의 예에서, 새로운 z 오프셋은 도 8(b)의 z 오프셋과 제로 z 오프셋 사이의 대략 중간에 있다. 그러나, 도 8(c)에 나타낸 테스트 위치에서, (예컨대, 도 8(c)의 새로운 테스트 위치에서 다른 충돌 감지 동작을 수행함으로써 결정되는 바와 같이) 사용자 디바이스(110) 또는 시착 서버(130)는 안경(300)의 3차원 모델과 사용자의 얼굴의 3차원 표현 사이에 여전히 접촉이 없다고 결정할 수 있다.
물리적 배치 동작은 (예컨대, 도 8(d)에 도시된 바와 같이) 사용자의 얼굴의 3차원 표현에서의 안경(300)의 3차원 모델에 대한 올바른 정지 위치가 식별될 때까지 하나 이상의 추가 z 오프셋(예컨대, 각각 이진 검색 알고리즘을 사용하여 결정됨)에서의 하나 이상의 추가 충돌 감지(교차) 동작을 포함한다. 올바른 정지 위치는 안경(300)의 3차원 모델이 비접촉 위치로부터 이동하면서 사용자의 얼굴의 3차원 표현과 임의의 접촉을 하는 위치일 수 있다. 그러나, 일부 시나리오에서, 물리적 배치 동작은 첫 번째 접촉이 안경이 사용자의 얼굴에서 안정되는 정지 접촉인지 또는 첫 번째 접촉이 여기에 설명된 불안정한 접촉인지를 결정하는 것과 같은 추가 동작을 포함할 수 있다.
도 7(d) 및 도 8(d)의 예에서, 안경 모델이 얼굴 모델과 정확하게 접촉하여 위치하기 때문에, 가상 표현(400)이 이미지(200)에 오버레이될 때 그들 사이에 비현실적인 교차가 없을 것이다. 도 7(a) 내지 도 7(d) 및 도 8(a) 내지 도 8(d)의 y 및 z 변형이 각각 개별적으로 도시되지만, 일부 시나리오에서는, 반복적인 교차 동작이 얼굴 좌표계의 x, y, 및/또는 z 방향에서 안경의 3차원 모델의 테스트 위치의 변화와 함께 수행될 수 있다.
일부 시착 동작에서, 안경(300)의 추가 특징(예컨대, 테(302)의 질량, 유연성, 재질, 및/또는 다른 특성, 및/또는 렌즈(304)의 질량, 배율, 및/또는 다른 특성), 및/또는 사용자의 추가 특징(예컨대, 사용자의 피부의 탄력성, 사용자의 머리의 경사각, 다양한 얼굴 특징의 상대 돌출 거리 등)이 최종 위치를 결정하기 위해 3차원 모델 및/또는 교차 동작에 통합되는 고충실도 위치 개선 동작이 수행될 수 있다. 예컨대, (예컨대, 도 7(a) 내지 도 7(d) 및 도 8(a) 내지 도 8(d)와 관련하여 위에 설명된 과정을 사용하여) 테(302) 또는 사용자의 피부의 어떠한 변형도 없는 정지 접촉 위치가 먼저 설정될 수 있고, 그 다음에는 중력의 힘과 방향, 테의 질량과 유연성, 및/또는 사용자의 피부의 유연성이 통합되어 개선된 정지 위치를 결정하는 고충실도 위치 개선 동작이 이어진다.
예컨대, 도 9는 접촉 위치(904)에서 사용자의 피부의 부분(902)과 정지 접촉하고 있는 안경(300)의 부분(900)의 단면도를 도시한다. 부분(900)은 접촉 위치(904)가 코시작점(208)에 또는 그 근처에 있도록 사용자의 코의 부분을 표현하는 부분(902)과 접촉하는 브리지(308)의 부분을 표현할 수 있다. 다른 예에서, 부분(900)은 사용자의 얼굴의 광대뼈 부분(214)을 표현하는 부분(902)과 접촉하는 테(302)의 하단부(314)의 일부를 표현할 수 있고, 여기서 테는 하나 이상의 다른 위치에서 사용자의 얼굴 및/또는 머리에 놓여 있다. 도 9에 도시된 정지 접촉 배치는 일부 시나리오에서 가상 표현(400)의 표시를 위한 안경(300)의 3차원 모델의 최종 위치로서 사용될 수 있다. 그러나, 고충실도 위치 개선 동작에서, 중력의 힘이 현실 세계에서 부분(900)을 사용자의 피부의 부분(902)에 누를 수 있다고 결정될 수 있다.
예컨대, 도 10에 도시된 바와 같이, 사용자 디바이스(110) 및/또는 시착 서버(130)는 중력의 방향(1000), 안경(300)의 질량, 사용자의 피부의 부분(902)의 윤곽 모양(1004), 및 사용자의 피부의 유연성을 결정하여, 안경의 무게로 인해 발생할 부분(902)의 일부 또는 전부의 압박(1006)을 결정할 수 있다. 이미지(200) 및/또는 안경(300)의 가상 표현(400)의 위치는 압박(1006)이 그 특정한 안경에 대해 발생할 것임을 사용자에게 나타내도록 수정될 수 있다.
이러한 고충실도 동작은 사용자의 얼굴 또는 머리에 대한 안경의 움직임(예컨대, 느슨한 착용감과 기울어진 머리로 인한 움직임, 사용자의 머리의 앞뒤 또는 위아래 움직임으로 인한 움직임, 중력으로 인한 사용자의 코 아래로의 테의 미끄러짐, 안경의 가상 표현의 위치의 사용자의 손에 의한 조정 등)을 시뮬레이션하여 특정한 안경이 착용되는 동안 어떻게 사용자에게 맞고 또한/또는 움직이는지에 관한 더 많은 정보를 사용자에게 제공하기 위해 사용될 수도 있다.
도 11은 하나 이상의 구현에 따라, 안경의 가상 시착을 위한 예시적인 과정의 흐름도를 도시한다. 설명을 위해, 도 11의 과정은 도 1 및 도 2의 하나 이상의 디바이스를 참조하여(특히 시착 서버(130) 및/또는 사용자 디바이스(110)를 참조하여) 여기에 주로 설명되고, 이는 도 1의 서버(130) 및/또는 사용자 디바이스(110)의 하나 이상의 프로세서에 의해 실행될 수 있다. 그러나, 도 11의 과정은 서버(130) 및/또는 사용자 디바이스(110)로 제한되지 않고, 과정의 하나 이상의 블록(또는 동작)은 다른 적합한 디바이스의 하나 이상의 다른 구성요소에 의해 수행될 수 있다. 또한 설명을 위해, 도 11의 과정의 블록은 여기서 연속적으로 또는 선형적으로 발생하는 것으로 설명된다. 그러나, 도 11의 과정의 여러 블록은 병렬로 발생할 수 있다. 또한, 도 11의 과정의 블록은 도시된 순서로 수행될 필요가 없고 또한/또는 도 11의 과정의 하나 이상의 블록은 수행될 필요가 없고 또한/또는 다른 동작에 의해 대체될 수 있다.
블록 1100에서, 사용자의 이미지가 획득될 수 있다. 예컨대, 도 2의 이미지(200)와 같은 이미지가 사용자 디바이스(110)의 카메라(205)와 같은 카메라를 사용하여 캡처될 수 있다.
블록 1102에서, 사용자에 대한 3차원 위치 정보가 획득될 수 있다. 예컨대, 3차원 위치 정보는 여기에 설명된 측정 지점 절대 3차원 위치(211), 측정 지점 절대 3차원 위치(211)에 기초한 사용자의 3차원 모델(213), 및/또는 얼굴 랜드마크 절대 위치(215)를 포함할 수 있다. 3차원 위치 정보는, 예컨대, 센서(209)와 같은 추가 센서 및/또는 광원(207)과 같은 광원을 사용하여 획득될 수 있다(예컨대, 도 2 및 도 13 참조).
블록 1104에서, 안경(300)과 같은 안경의 3차원 모델이 획득된다. 안경의 3차원 모델은 모델의 데이터베이스(예컨대, 도 1의 데이터베이스(142) 중 하나)로부터 획득될 수 있고, 각각은 현실 세계의 안경에 대응하고, 모델은 시착 서버(130) 또는 다른 서버에 저장된다. 안경의 3차원 모델을 획득하는 것은 (예컨대, 사용자 디바이스에서 시착 동작이 수행되는 경우) 서버로부터 사용자 디바이스(110)에 안경의 3차원 모델을 다운로드하는 것을 포함할 수 있다.
블록 1106에서, 안경의 디지털 표현을 위한 위치 및/또는 자세가 이미지, 사용자에 대한 3차원 위치 정보, 및/또는 안경의 3차원 모델에 기초하여 결정된다. 안경의 디지털 표현을 위한 위치 및/또는 자세를 결정하는 것은, 예컨대, 도 7(a) 내지 도 7(d) 및 도 8(a) 내지 도 8(d)와 관련하여 위에서 설명되고 도 12와 관련하여 이하에 더 설명되는 물리적 배치 동작을 수행하는 것을 포함할 수 있다. 물리적 배치 동작은 하나 이상의 반복적인 충돌 감지(교차) 및 이진 위치 검색 동작의 조합을 포함할 수 있고, 하나 이상의 고충실도 위치 개선 동작을 포함할 수 있다.
블록 1108에서, 안경의 가상 표현을 위한 크기가 이미지, 사용자에 대한 3차원 위치 정보, 및/또는 안경의 3차원 모델에 기초하여 결정된다. 결정된 크기는 사용자의 얼굴에 대한 안경의 현실 세계의 크기에 정확하게 대응하는 이미지 화소 단위의 화소 크기일 수 있다. 예컨대, 크기를 결정하는 것은 3차원 위치 정보를 사용하여 사용자의 얼굴의 물리적 크기를 결정하는 것, 이미지 및 결정된 물리적 크기를 사용하여 이미지 화소에서의 사용자의 얼굴의 크기를 결정하는 것, 결정된 물리적 크기 및 이미지 화소에서의 사용자의 얼굴의 크기를 사용하여 이미지에서의 각 이미지 화소에 대한 화소 크기를 결정하는 것, 및 안경의 알려진 크기 및 결정된 화소 크기에 기초하여, 결정된 위치 및/또는 자세에 대한 (예컨대, 화소에서의) 안경의 가상 표현의 크기를 결정하는 것을 포함할 수 있다.
블록 1110에서, 예컨대, 결정된 크기, 위치 및/또는 자세를 갖는 안경의 가상 표현이, 예컨대, 도 4에 도시된 바와 같이 표시를 위해 사용자의 이미지에 오버레이되는 결합된 이미지가 (예컨대, 사용자 디바이스(110)의 디스플레이(201)를 사용하여) 표시된다.
도 12는 하나 이상의 구현에 따라, 도 11의 블록 1108과 관련하여 설명된 안경의 가상 표현의 위치 및/또는 자세의 결정을 위한 예시적인 과정의 흐름도를 도시한다. 설명을 위해, 도 12의 과정은 도 1 및 도 2의 하나 이상의 디바이스를 참조하여(특히 시착 서버(130) 및/또는 사용자 디바이스(110)를 참조하여) 여기서 주로 설명되고, 이는 서버(130) 및/또는 사용자 디바이스(110)의 하나 이상의 프로세서에 의해 실행될 수 있다. 그러나, 도 12의 과정은 서버(130) 및/또는 사용자 디바이스(110)로 제한되지 않고, 과정의 하나 이상의 블록(또는 동작)은 다른 적합한 디바이스의 하나 이상의 다른 구성요소에 의해 수행될 수 있다. 또한 설명을 위해, 도 12의 과정의 블록은 여기서 연속적으로 또는 선형적으로 발생하는 것으로 설명된다. 그러나, 도 12의 과정의 여러 블록은 병렬로 발생할 수 있다. 또한, 도 12의 과정의 블록은 도시된 순서로 수행될 필요가 없고 또한/또는 도 12의 과정의 하나 이상의 블록은 수행될 필요가 없고 또한/또는 다른 동작에 의해 대체될 수 있다.
블록 1200에서, 사용자에 대한 3차원 위치 정보에 대한 안경의 3차원 모델의 초기 위치(예컨대, 초기 테스트 위치)가 식별된다. 초기 위치는 도 7(a) 또는 도 8(a)와 관련하여 위에서 설명된 바와 같이 제로 x 오프셋 및 고정된 y 또는 z 오프셋을 가질 수 있다.
블록 1202에서, 사용자 디바이스(110) 및/또는 시착 서버(130)는 안경의 3차원 모델이 사용자에 대한 3차원 위치 정보와 교차하는지 여부를 결정한다. 안경의 3차원 모델이 사용자에 대한 3차원 위치 정보와 교차하는지 여부를 결정하는 것은 (예컨대, 안경의 3차원 모델이 초기 위치에서 측정 위치(211), 3차원 모델(213), 또는 얼굴 랜드마크 위치(215) 중 하나와 교차하는지 여부를 결정함으로써) 안경의 3차원 모델과 사용자에 대한 3차원 위치 정보 사이의 충돌 감지 동작을 수행하는 것을 포함할 수 있다.
교차가 없는 것으로(예컨대, 안경의 가상 표현이 이미지(200)에서 사용자의 얼굴로부터 떠 있는 것으로 보인다고) 결정되면, 블록 1204에서, 안경의 3차원 모델에 대한 새로운 테스트 위치가 (얼굴 좌표계에서) 결정될 수 있다. 새로운 테스트 위치를 결정하는 것은 이진 위치 검색 동작을 수행하는 것, 안경의 3차원 모델을 얼굴 좌표계의 원점을 향해 점진적으로 이동시키는 것, 또는 다른 방법으로 (예컨대, 의사 무작위로(pseudo-randomly)) 새로운 테스트 위치를 결정하는 것을 포함할 수 있다. 새로운 테스트 위치의 식별 후에, 블록 1202의 동작이 새로운 테스트 위치를 이용하여 반복될 수 있다.
안경의 3차원 모델이 사용자에 대한 3차원 위치 정보와 교차하는 것으로 (블록 1204에서) 결정되면, 사용자 디바이스(110) 및/또는 시착 서버(130)는, 블록 1206에서, 교차가 (예컨대, 도 7(d), 도 8(d), 및 도 9에 도시된) 접촉 교차인지 또는 (예컨대, 도 6, 도 7(a), 및 도 8(a)에 도시된) 박힌 교차인지 결정한다. 접촉 교차는 단일 접촉점을 감지하거나, (예로서) 모든 접촉점이 두 모델의 바깥쪽 가장자리에 있다고 결정함으로써 결정될 수 있다. 박힌 교차는 3차원 모델 중 하나의 내부 지점이 다른 모델의 부분과 접촉하고 있다고 결정함으로써 결정될 수 있다.
교차가 (예컨대, 도 6, 도 7(a), 및 도 8(a)에 도시된) 박힌 교차인 것으로 (블록 1206에서) 결정되면, 블록 1208에서, 안경의 3차원 모델에 대한 새로운 테스트 위치가 (얼굴 좌표계에서) 결정될 수 있다. 새로운 테스트 위치를 결정하는 것은 이진 위치 검색 동작을 수행하는 것, 안경의 3차원 모델을 얼굴 좌표계의 원점을 향해 점진적으로 이동시키는 것, 또는 다른 방법으로 (예컨대, 의사 무작위로) 새로운 테스트 위치를 결정하는 것을 포함할 수 있다. 블록 1208에서의 새로운 테스트 위치의 식별 이후에, 블록 1202의 동작이 새로운 테스트 위치를 이용하여 반복될 수 있다.
교차가 (예컨대, 도 7(d), 도 8(d), 및 도 9에 도시된) 접촉 교차인 것으로 (블록 1206에서) 결정되면, 사용자 디바이스(110) 및/또는 시착 서버(130)는 직접 블록 1214로 진행하여 블록 1110에서의 표시를 위한 최종 위치로서 현재 테스트 위치를 식별하거나, 또는 블록 1210에서, 사용자 디바이스(110) 및/또는 시착 서버(130)는 접촉 위치가 정지 접촉 위치(예컨대, 불안정한 접촉 위치)인지 여부를 결정할 수 있다. 예컨대, 접촉 교차는 브리지(308)와 사용자의 코시작점(208) 사이 또는 코 패드(310)와 사용자의 콧등 부분(212) 사이의 접촉을 포함할 수 있고, 이 경우 접촉은 안정된 접촉 또는 정지 접촉으로 결정될 수 있다. 다른 예에서, 접촉 교차는 브리지(308) 또는 코 패드(310)와 접촉하기 전의 테(302)의 하단부(314) 사이의 접촉일 수 있고, 이는 불안정한 접촉을 나타낼 수 있다.
블록 1210에서, 접촉 교차가 정지 접촉이 아닌 것으로 결정되면, 사용자 디바이스(110) 및/또는 시착 서버(130)는 안경의 3차원 모델에 대한 새로운 테스트 위치가 (얼굴 좌표계에서) 결정되는 블록 1204로 돌아갈 수 있다. 블록 1206에서 접촉 교차의 감지 후에 추가 테스트 위치가 사용되는 경우, 이진 검색 또는 다른 사전 접촉 알고리즘을 사용하여 추가 테스트 위치가 선택될 수 있거나, 또는 (예컨대, 코 패드 또는 브리지가 접촉할 때까지 사용자의 얼굴을 따라 테의 하단부를 가상으로 슬라이딩함으로써) 적어도 하나의 다른 접촉점이 사용자의 얼굴에 대한 안경의 위치를 제어할 때까지 박힘을 방지하고 또한/또는 접촉 교차의 접촉점의 분리를 방지하기 위해 선택될 수 있다. 새로운 테스트 위치의 식별 후에, 블록 1202, 블록 1206, 및 블록 1210의 동작은 새로운 테스트 위치를 이용하여 반복될 수 있거나, 또는 접촉을 유지하고 박힘을 방지하기 위해 새로운 테스트 위치가 선택된 경우, 사용자 디바이스(110) 및/또는 시착 서버(130)는 새로운 테스트 위치와 함께 블록 1210으로 직접 돌아갈 수 있다.
교차가 (예컨대, 도 7(d), 도 8(d), 및 도 9에 도시된) 접촉 교차인 것으로 (블록 1210에서) 결정되면, 사용자 디바이스(110) 및/또는 시착 서버(130)는 직접 블록 1214로 진행하여 블록 1110에서의 표시를 위한 최종 위치로서 현재 테스트 위치를 식별할 수 있거나, 또는 블록 1212에서, 사용자 디바이스(110) 및/또는 시착 서버(130)는 (예컨대, 도 10과 관련하여 위에서 설명된 바와 같이) 고충실도 위치 개선 동작을 수행할 수 있다.
블록 1210에서, 얼굴 좌표계에서의 안경의 3차원 모델의 현재 위치 및 자세는 (예컨대, 위의 도 4의 예에서와 같이) 블록 1110에서의 가상 표현(400)의 표시를 위한 최종 위치로서 식별될 수 있다.
다양한 예가 도 5에 나타낸 바와 같이 얼굴 좌표계에서 수행되는 것으로 여기에 설명되지만, 다양한 물리적 배치 동작 중 임의의 하나가 임의의 좌표계에서(예컨대, 안경 좌표계 또는 다른 좌표계에서) 수행될 수 있다는 것이 이해되어야 한다.
사용자 디바이스(110) 및/또는 시착 서버(130)는 캡처된 이미지(200)에서의 사용자에 대한 측정 지점 절대 3차원 위치(211), 측정 지점 절대 3차원 위치(211)에 기초한 사용자의 3차원 모델(213), 및/또는 얼굴 랜드마크 절대 위치(215)를 획득, 생성, 및/또는 저장할 수 있다는 것이, 예컨대, 도 1, 도 2, 도 11, 및 도 12와 관련하여 위에서 설명되었다. 도 13, 도 14, 및 도 15는, 각각, 측정 지점 절대 3차원 위치(211), 측정 지점 절대 3차원 위치(211)에 기초한 사용자의 3차원 모델(213), 및 얼굴 랜드마크 절대 위치(215)를 도시한다.
도 13은 도 1의 3차원 센서(209)에 대한 하나의 예시적인 구현에서, (예컨대, 광원(207)을 사용하는) 사용자 디바이스(110)가 사용자의 얼굴의 다양한 입사 위치(1302)로부터 반사되는 적외선 빔(1300)과 같은 여러 광 빔을 생성할 수 있는 방법을 도시한다. 각각의 빔(1300)은 입사 위치(1302)에서 그 위치까지의 거리 및 그 위치에서의 표면의 모양에 의해 결정되는 크기 및 왜곡을 갖는 스팟을 생성한다. 빔(1300)에 대한 알려진 빔 크기 및 (이 예에서 적외선 센서로서 구현되는) 센서(209)에 의해 캡처된 스팟의 적외선 이미지를 사용하면, 각 입사 위치(1302)까지의 거리가 결정될 수 있다. 각각의 입사 위치(1302)는 측정 지점 절대 3차원 위치(211)를 표현할 수 있다.
도 14는 측정 지점 절대 3차원 위치(211)에 기초한 (예컨대, 이미지(200)를 캡처하였을 때의) 사용자의 3차원 모델(213)의 2차원 렌더링(1400)을 도시한다. 렌더링(1400)은 기준점 및/또는 모델을 정의하는 기준점을 연결하는 수학적 함수에 의해 정의된 점 및/또는 선을 그림으로써 생성될 수 있다. 모델이 보기 위해서 렌더링되었는지 여부와 관계없이, 기준점, 수학적 함수, 수학적 함수에 대한 파라미터 값, 및/또는 다른 모델 데이터를 저장함으로써 모델이 저장될 수 있다. 모델 자체는 어느 모델도 렌더링하지 않고서 안경(300)의 3차원 모델과 교차될 수 있다.
도 15는 다양한 얼굴 랜드마크 절대 위치(215)의 표현(1500)을 도시한다. 얼굴 랜드마크 절대 위치(215)는 다양한 얼굴 랜드마크에서의 측정 지점 절대 3차원 위치(211)의 선택된 부분집합일 수 있거나, 또는 두 개 이상의 측정 지점 절대 3차원 위치(211)로부터 평균화되거나 보간될 수 있거나, 또는 3차원 모델(213)로부터 유도되거나 추출될 수 있다. 얼굴 랜드마크 절대 위치(215)가 측정 지점 절대 3차원 위치(211)로부터 (예컨대, 평균화, 보간, 또는 다른 조합을 통해) 직접 유도되는 일부 시나리오에서, 3차원 모델(213)은 입력 데이터 점으로서 얼굴 랜드마크 절대 위치(215)에 기초하여 생성될 수 있다. 절대 3차원 위치가 결정될 수 있는 얼굴 랜드마크는 코시작점(sellion), 안쪽눈구석점(endocanthion), 가쪽눈구석점(exocanthion), 귀구슬점(tragion), 광대활점(zygion), 상이저점(otobasion superius), 윗눈확점(orbitale superius), 윗눈꺼풀점(palpebrale superius), 아래눈꺼풀점(palpebrale inferius), 눈동자의 중심점, 미간(glabella), 전두측두점(frontotemporale), 상악전면(maxillofrontalle), 안와점(orbitale), 귀구슬점(tragion), 코뿌리점(nasion), 코끝(pronasale), 및 턱끝점(menton)을 포함하지만 이들로 제한되지 않는다.
하드웨어 개요
도 16은 도 1의 사용자 디바이스(110), 시착 서버(들)(130), 및/또는 제3자 서버(140)가 구현될 수 있는 예시적인 컴퓨터 시스템(1600)을 도시하는 블록도이다. 특정한 측면에서, 컴퓨터 시스템(1600)은 전용 서버에서, 또는 다른 개체에 통합되거나, 다수의 개체에 걸쳐 분산되어, 하드웨어 또는 소프트웨어와 하드웨어의 조합을 사용하여 구현될 수 있다.
컴퓨터 시스템(1600)은 정보를 전달하기 위한 버스(1608) 또는 다른 통신 메커니즘, 및 정보를 처리하기 위한 버스(1608)와 연결된 프로세서(1602)를 포함한다. 예로서, 컴퓨터 시스템(1600)은 하나 이상의 프로세서(1602)로 구현될 수 있다. 프로세서(1602)는 범용 마이크로프로세서, 마이크로컨트롤러, DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), PLD(Programmable Logic Device), 컨트롤러, 상태 머신, 게이트 로직, 개별 하드웨어 구성요소, 또는 정보의 계산 또는 다른 조작을 수행할 수 있는 임의의 다른 적합한 개체일 수 있다.
컴퓨터 시스템(1600)은, 하드웨어 외에, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예컨대, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 RAM(Random Access Memory), 플래시 메모리, ROM(Read Only Memory), PROM(Programmable Read-Only Memory), EPROM(Erasable PROM), 레지스터, 하드 디스크, 이동식 디스크, CD-ROM, DVD, 또는 정보 및 프로세서(1602)에 의해 실행될 명령을 저장하기 위한 버스(1608)에 연결된 임의의 다른 적합한 저장 디바이스와 같은 포함된 메모리에 저장된 그들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 프로세서(1602) 및 메모리(1604)는 특수 목적 논리 회로에 의해 보충되거나 특수 목적 논리 회로에 통합될 수 있다.
명령은 메모리(1604)에 저장되고 하나 이상의 컴퓨터 프로그램 제품, 즉, 컴퓨터 시스템(1600)에 의한 실행을 위한, 또는 컴퓨터 시스템(1600)의 동작을 제어하기 위한 컴퓨터 판독 가능 매체에 인코딩된 컴퓨터 프로그램 명령의 하나 이상의 모듈에서 구현될 수 있고, 데이터 지향 언어(예컨대, SQL, dBase), 시스템 언어(예컨대, C, Objective-C, C++, Assembly), 아키텍처 언어(예컨대, Java, .NET), 및 응용 언어(예컨대, PHP, Ruby, Perl, Python)와 같은 컴퓨터 언어를 포함하지만 이에 제한되지 않는 당업자에게 잘 알려진 임의의 방법에 따라 구현될 수 있다. 명령은 배열 언어, 관점 지향 언어, 어셈블리 언어, 저작 언어, 명령 라인 인터페이스 언어, 컴파일형 언어, 컨커런트 언어, 중괄호 언어, 데이터플로 언어, 데이터 구조 언어, 선언형 언어, 에서테릭 언어, 확장 언어, 4세대 언어, 함수형 언어, 대화형 언어, 인터프리터 언어, 반복 언어, 목록 기반 언어, 작은 언어, 논리형 언어, 기계어, 매크로 언어, 메타프로그래밍 언어, 멀티패러다임 언어, 수치 해석, 비 영어 기반 언어, 객체 지향 클래스 기반 언어, 객체 지향 프로토타입 기반 언어, 오프사이드 규칙 언어, 절차 언어, 반사 언어, 규칙 기반 언어, 스크립팅 언어, 스택 기반 언어, 동기 언어, 구문 처리 언어, 시각적 언어, wirth 언어, 및 xml 기반 언어와 같은 컴퓨터 언어로도 구현될 수 있다. 메모리(1604)는 프로세서(1602)에 의해 실행될 명령의 실행 동안 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수도 있다.
여기서 논의되는 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 다른 프로그램 또는 데이터(예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트)를 보유하는 파일의 부분, 해당 프로그램 전용의 단일 파일, 또는 여러 조정된 파일(예컨대, 하나 이상의 모듈, 하위 프로그램, 또는 코드의 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 장소에 위치하거나 여러 장소에 걸쳐 분산되고 통신 네트워크에 의해 상호 연결되는 여러 컴퓨터에서 실행되도록 배포될 수 있다. 본 명세서에 설명된 과정 및 논리 흐름은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능을 수행하기 위한 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 프로세서에 의해 수행될 수 있다.
컴퓨터 시스템(1600)은 정보 및 명령을 저장하기 위한 버스(1608)에 연결된 자기 디스크 또는 광 디스크와 같은 데이터 저장 디바이스(1606)를 더 포함한다. 컴퓨터 시스템(1600)은 입력/출력 모듈(1610)을 통해 다양한 디바이스에 연결될 수 있다. 입력/출력 모듈(1610)은 임의의 입력/출력 모듈일 수 있다. 예시적인 입력/출력 모듈(1610)은 USB 포트와 같은 데이터 포트를 포함한다. 입력/출력 모듈(1610)은 통신 모듈(1612)에 연결되도록 구성된다. 예시적인 통신 모듈(1612)은 이더넷 카드 및 모뎀과 같은 네트워킹 인터페이스 카드를 포함한다. 특정한 측면에서, 입력/출력 모듈(1610)은 입력 디바이스(1614) 및/또는 출력 디바이스(1616)와 같은 복수의 디바이스에 연결되도록 구성된다. 예시적인 입력 디바이스(1614)는 사용자가 컴퓨터 시스템(1600)에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)를 포함한다. 촉각 입력 디바이스, 시각 입력 디바이스, 오디오 입력 디바이스, 또는 뇌-컴퓨터 인터페이스 디바이스와 같은 다른 종류의 입력 디바이스(1614)도 사용자와의 상호 작용을 제공하기 위해 사용될 수 있다. 예컨대, 사용자에게 제공되는 피드백은 모든 형태의 감각 피드백, 예컨대, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성, 촉각, 또는 뇌파 입력을 포함하는 모든 형태로 수신될 수 있다. 예시적인 출력 디바이스(1616)는 사용자에게 정보를 표시하기 위한 LCD(액정 디스플레이) 또는 발광 다이오드(LED) 디스플레이와 같은 표시 디바이스를 포함한다.
본 개시의 한 측면에 따르면, 사용자 디바이스(110), 시착 서버(130), 및/또는 제3자 서버(140)는 프로세서(1602)가 메모리(1604)에 포함된 하나 이상의 명령의 하나 이상의 시퀀스를 실행하는 것에 응답하여 컴퓨터 시스템(1600)을 사용하여 구현될 수 있다. 이러한 명령은 데이터 저장 디바이스(1606)와 같은 다른 머신 판독 가능 매체로부터 메모리(1604)에 판독될 수 있다. 메인 메모리(1604)에 포함된 명령의 시퀀스의 실행은 프로세서(1602)가 여기에 설명된 과정 스텝을 수행하게 한다. 다중 처리 배열에서의 하나 이상의 프로세서는 메모리(1604)에 포함된 명령의 시퀀스를 실행하기 위해 채용될 수도 있다. 대안적인 측면에서, 본 개시의 다양한 측면을 구현하기 위해 배선 회로가 소프트웨어 명령 대신에 또는 소프트웨어 명령과 조합하여 사용될 수 있다. 따라서, 본 개시의 측면은 하드웨어 회로 및 소프트웨어의 임의의 특정한 조합으로 제한되지 않는다.
본 명세서에 설명된 주제의 다양한 측면은 (예컨대, 데이터 서버로서) 후단부 구성요소를 포함하거나, 미들웨어 구성요소(예컨대, 응용 서버)를 포함하거나, 전단부 구성요소, 예컨대, 사용자가 본 명세서에 설명된 주제의 구현, 또는 하나 이상의 이러한 후단부, 미들웨어, 또는 전단부 구성요소의 임의의 조합과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터를 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성요소는 디지털 데이터 통신의 모든 형태 또는 매체(예컨대, 통신 네트워크)에 의해 상호 연결될 수 있다. 통신 네트워크(예컨대, 네트워크(150))는, 예컨대, LAN, WAN, 인터넷 등 중 임의의 하나 이상을 포함할 수 있다. 또한, 통신 네트워크는, 예컨대, 버스 네트워크, 스타 네트워크, 링 네트워크, 메시 네트워크, 스타 버스 네트워크, 트리 또는 계층 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있지만 이에 제한되지는 않는다. 통신 모듈은, 예컨대, 모뎀 또는 이더넷 카드일 수 있다.
컴퓨터 시스템(1600)은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 떨어져 있고 전형적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 컴퓨터 시스템(1600)은, 예컨대, 데스크톱 컴퓨터, 랩톱 컴퓨터, 또는 태블릿 컴퓨터일 수 있지만 이에 제한되지는 않는다. 컴퓨터 시스템(1600)은 다른 디바이스, 예컨대, 제한 없이, 모바일 전화, PDA, 모바일 오디오 플레이어, GPS(Global Positioning System) 수신기, 비디오 게임 콘솔, 및/또는 텔레비전 셋톱박스에 내장될 수도 있다.
여기에 사용된 "머신 판독 가능 저장 매체" 또는 "컴퓨터 판독 가능 매체"라는 용어는 실행을 위해 프로세서(1602)에 명령을 제공하는 데 참여하는 임의의 매체 또는 매체들을 지칭한다. 이러한 매체는 비 휘발성 매체, 휘발성 매체, 및 송신 매체를 포함하지만 이에 제한되지 않는 많은 형태를 취할 수 있다. 비 휘발성 매체는, 예컨대, 데이터 저장 디바이스(1606)와 같은 광학 또는 자기 디스크를 포함한다. 휘발성 매체는 메모리(1604)와 같은 동적 메모리를 포함한다. 송신 매체는 버스(1608)를 구성하는 와이어를 포함하는 동축 케이블, 구리선, 및 광섬유를 포함한다. 머신 판독 가능 매체의 일반적인 형태는, 예컨대, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프, 임의의 다른 자기 매체, CD-ROM, DVD, 임의의 다른 광학 매체, 펀치 카드, 종이 테이프, 구멍의 패턴을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH EPROM, 임의의 다른 메모리 칩 또는 카트리지, 또는 컴퓨터가 읽을 수 있는 임의의 다른 매체를 포함한다. 머신 판독 가능 저장 매체는 머신 판독 가능 저장 디바이스, 머신 판독 가능 저장 기판, 메모리 디바이스, 머신 판독 가능 전파 신호에 영향을 미치는 조성물, 또는 이들 중 하나 이상의 조합일 수 있다.
여기에 사용된, 임의의 항목을 분리하기 위해 "및" 또는 "또는"이라는 용어와 함께, 일련의 항목 앞에 나오는 "적어도 하나의"라는 문구는 목록의 각 구성요소(즉, 각 항목)가 아닌 전체 목록을 수식한다. "적어도 하나의"라는 문구는 적어도 하나의 항목의 선택을 필요로 하지 않고, 오히려, 그 문구는 항목 중 임의의 하나의 적어도 하나, 및/또는 항목의 임의의 조합의 적어도 하나, 및/또는 항목의 각각의 적어도 하나를 포함하는 의미를 허용한다. 예로서, "A, B, 및 C 중 적어도 하나" 또는 "A, B, 또는 C 중 적어도 하나"라는 문구는 각각 오직 A, 오직 B, 또는 오직 C를 지칭하거나, A, B, 및 C의 임의의 조합을 지칭하거나, 또한/또는 A, B, 및 C의 각각의 적어도 하나를 지칭한다.
"포함한다", "갖는다" 등의 용어가 설명 또는 청구범위에서 사용되는 한, "포함한다"는 청구항에서 과도기적 단어로서 채용될 때 해석되기 때문에 이러한 용어는 "포함한다"라는 용어와 유사한 방식으로 포괄적이도록 의도된다. "예시적인"이라는 단어는 여기서 "예, 사례, 또는 예시의 역할을 한다"를 의미하기 위해 사용된다. 여기서 "예시적인" 것으로 설명된 임의의 실시예는 반드시 다른 실시예보다 바람직하거나 유리한 것으로 해석될 필요는 없다.
단수형의 요소에 대한 언급은 구체적으로 언급되지 않는 한 "하나만"을 의미하는 것이 아니라 "하나 이상"을 의미하도록 의도된다. 당업자에게 알려져 있거나 나중에 알려지게 되는 본 개시 전체에 걸쳐 설명된 다양한 구성의 요소에 대한 모든 구조적 및 기능적 등가물은 여기에 참조에 의해 명시적으로 포함되고 주제 기술에 포함되도록 의도된다. 또한, 여기에 개시된 어떠한 것도 이러한 개시가 상기 설명에서 명시적으로 언급되었는지 여부에 관계없이 대중을 위한 것으로 의도되지 않는다.
본 명세서는 많은 세부사항을 포함하지만, 이들은 청구될 수 있는 범위에 대한 제한으로서 해석되어서는 안 되고, 주제의 특정한 구현의 설명으로서 해석되어야 한다. 별도의 실시예의 맥락에서 본 명세서에서 설명되는 특정한 특징은 단일 실시 예에서 조합하여 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명되는 다양한 특징은 여러 실시예에서 개별적으로 또는 임의의 적합한 하위조합으로 구현될 수도 있다. 또한, 특징은 특정한 조합으로 작용하는 것으로서 위에서 설명될 수 있고 초기에 그렇게 청구될 수도 있지만, 청구된 조합으로부터의 하나 이상의 특징은 경우에 따라 조합으로부터 삭제될 수 있고, 청구된 조합은 하위조합 또는 하위 조합의 변형에 대한 것일 수 있다.
본 명세서의 주제가 특정한 측면과 관련하여 설명되었지만, 다른 측면이 구현될 수 있고 이하의 청구범위의 범위 내에 있다. 예컨대, 동작은 특정한 순서로 도면에 도시되어 있지만, 이는, 바람직한 결과를 달성하기 위해, 그러한 동작이 나타낸 특정한 순서로 또는 순차적인 순서로 수행되거나, 모든 예시된 동작이 수행될 것을 요구하는 것으로서 이해되어서는 안 된다. 청구범위에 언급된 동작은 상이한 순서로 수행될 수 있고 여전히 바람직한 결과를 얻을 수 있다. 하나의 예로서, 첨부된 도면에 도시된 과정은, 바람직한 결과를 달성하기 위해, 나타낸 특정한 순서, 또는 순차적인 순서를 반드시 필요로 하지는 않는다. 특정한 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 위에서 설명된 측면에서의 다양한 시스템 구성요소의 분리는 모든 측면에서 이러한 분리를 요구하는 것으로서 이해되어서는 안 되고, 설명된 프로그램 구성요소 및 시스템은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 여러 소프트웨어 제품으로 패키지화될 수 있음을 이해해야 한다. 다른 변형은 이하의 청구범위의 범위 내에 있다.

Claims (23)

  1. 전자 디바이스의 카메라로 사용자의 얼굴의 이미지를 캡처하는 단계와,
    상기 전자 디바이스의 센서를 사용하여 상기 사용자에 대한 3차원 위치 정보를 획득하는 단계와,
    안경의 3차원 모델을 획득하는 단계와,
    상기 이미지 및 상기 3차원 위치 정보에 기초하여 상기 안경의 가상 표현의 위치를 결정하는 단계와,
    상기 이미지 및 상기 3차원 위치 정보에 기초하여 상기 안경의 상기 가상 표현의 크기를 결정하는 단계와,
    상기 사용자의 상기 이미지 및 상기 결정된 크기 및 상기 결정된 위치를 갖는 상기 안경의 상기 가상 표현을 포함하는 결합된 이미지를 상기 전자 디바이스의 디스플레이로 표시하는 단계를 포함하는
    컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 안경의 상기 가상 표현의 상기 크기 및 상기 위치는, 상기 안경이 상기 사용자의 상기 얼굴에 물리적으로 배치되는 경우에 나타나는 것처럼, 상기 결합된 이미지에서 상기 안경의 상기 크기 및 상기 안경의 상기 위치를 정확하게 표현하기 위해 각각 결정되는
    컴퓨터 구현 방법.
  3. 제 2 항에 있어서,
    상기 크기를 결정하는 단계는,
    상기 3차원 위치 정보를 사용하여 상기 사용자의 상기 얼굴의 물리적 크기를 결정하는 단계와,
    상기 이미지 및 상기 결정된 물리적 크기를 사용하여 이미지 화소에서의 상기 사용자의 상기 얼굴의 크기를 결정하는 단계와,
    상기 결정된 물리적 크기 및 이미지 화소에서의 상기 사용자의 상기 얼굴의 상기 크기를 사용하여 상기 이미지에서의 각 이미지 화소에 대한 화소 크기를 결정하는 단계와,
    상기 안경의 알려진 크기 및 상기 결정된 화소 크기에 기초하여 상기 안경의 상기 가상 표현의 상기 크기를 결정하는 단계를 포함하는
    컴퓨터 구현 방법.
  4. 제 3 항에 있어서,
    상기 안경의 상기 가상 표현의 상기 위치를 결정하는 단계는 상기 안경의 상기 3차원 모델을 상기 사용자에 대한 상기 3차원 위치 정보와 교차시키는 단계를 포함하는
    컴퓨터 구현 방법.
  5. 제 4 항에 있어서,
    상기 교차시키는 단계는 상기 안경의 상기 3차원 모델과 상기 사용자에 대한 상기 3차원 위치 정보 사이에서 적어도 하나의 충돌 감지 동작을 수행하는 단계를 포함하는
    컴퓨터 구현 방법.
  6. 제 5 항에 있어서,
    상기 적어도 하나의 충돌 감지 동작을 수행하는 단계는, 상기 안경의 상기 3차원 모델에 대한 대응하는 복수의 위치에서, 상기 안경의 상기 3차원 모델과 상기 사용자에 대한 상기 3차원 위치 정보 사이에서 복수의 충돌 감지 동작을 반복적으로 수행하는 단계를 포함하는
    컴퓨터 구현 방법.
  7. 제 6 항에 있어서,
    상기 복수의 충돌 감지 동작을 반복적으로 수행하는 단계는 이진 검색 동작을 사용하여 상기 복수의 위치를 반복적으로 결정하는 단계를 포함하는
    컴퓨터 구현 방법.
  8. 제 5 항에 있어서,
    상기 사용자에 대한 상기 3차원 위치 정보는 복수의 측정 지점 절대 3차원 위치, 상기 사용자의 3차원 모델, 및 복수의 얼굴 랜드마크 절대 위치 중 적어도 하나를 포함하는
    컴퓨터 구현 방법.
  9. 제 8 항에 있어서,
    상기 센서는 추가 카메라를 포함하고,
    상기 방법은,
    상기 전자 디바이스의 광원으로, 적어도 일부가 상기 사용자의 상기 얼굴로 향하는 복수의 광선을 생성하는 단계와,
    상기 광선의 상기 적어도 일부가 상기 사용자의 상기 얼굴로 향하는 동안, 상기 추가 카메라를 사용하여 두 번째 이미지를 캡처하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  10. 제 9 항에 있어서,
    상기 캡처된 두 번째 이미지에서의 상기 광선의 상기 적어도 일부의 반사에 기초하여 상기 복수의 측정 지점 절대 3차원 위치를 결정하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  11. 제 1 항에 있어서,
    상기 센서는 추가 카메라를 포함하고,
    상기 방법은,
    상기 추가 카메라를 사용하여 상기 사용자의 추가 이미지를 캡처하는 단계와,
    상기 카메라와 상기 추가 카메라 사이의 알려진 거리 및 상기 이미지와 상기 추가 이미지 사이의 시차 효과에 기초하여 상기 사용자에 대한 상기 3차원 위치 정보를 생성하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  12. 제 1 항에 있어서,
    상기 센서는 비행 시간 센서, 레이저 거리계, 모션 센서, 근접 센서, 구조화된 광 센서, 및 추가 카메라 중 적어도 하나를 포함하는
    컴퓨터 구현 방법.
  13. 사용자의 얼굴의 이미지를 캡처하는 단계와,
    상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델을 획득하는 단계와,
    안경의 3차원 모델을 획득하는 단계와,
    상기 이미지, 상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델, 및 상기 안경의 3차원 모델에 기초하여 상기 안경의 가상 표현을 위한 크기 및 위치를 결정하는 단계와,
    상기 사용자의 상기 얼굴의 상기 이미지에 오버레이된 상기 안경의 상기 가상 표현을 상기 결정된 크기로 그리고 상기 결정된 위치에 표시하는 단계를 포함하는
    컴퓨터 구현 방법.
  14. 제 13 항에 있어서,
    상기 가상 표현의 상기 위치를 결정하는 단계는 상기 사용자의 3차원 모델과 상기 안경의 3차원 모델 사이에서 복수의 충돌 감지 동작을 수행하는 단계를 포함하고, 얼굴 좌표계에서의 복수의 테스트 위치에서의 상기 안경의 3차원 모델은 상기 사용자의 3차원 모델에서의 얼굴 랜드마크에서 원점을 갖는
    컴퓨터 구현 방법.
  15. 제 14 항에 있어서,
    상기 얼굴 좌표계의 상기 원점은 상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델의 코시작점(sellion)에 있고,
    상기 얼굴 좌표계의 x축은 상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델의 좌측과 우측 사이에서 연장되고, 여기서 양의 x축은 상기 원점으로부터 상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델의 상기 좌측을 향해 연장되고,
    상기 얼굴 좌표계의 y축은 상기 x축에 직교하여 그리고 상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델의 상단과 하단 사이에서 연장되고, 여기서 양의 y축은 상기 원점으로부터 상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델의 상기 상단을 향해 연장되고,
    z축은 상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델의 앞과 뒤 사이에서 상기 x축 및 상기 y축에 직교하여 연장되고, 여기서 양의 z축은 상기 원점으로부터 상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델의 상기 앞을 향해 연장되는
    컴퓨터 구현 방법.
  16. 제 15 항에 있어서,
    상기 얼굴 좌표계에서의 상기 복수의 테스트 위치의 각각은 상기 y축을 따른 상이한 y 오프셋, 상기 x축을 따른 제로 x 오프셋, 및 상기 z축을 따른 공통 z 오프셋을 갖는
    컴퓨터 구현 방법.
  17. 제 16 항에 있어서,
    상기 안경은 아세테이트 테를 포함하는
    컴퓨터 구현 방법.
  18. 제 15 항에 있어서,
    상기 얼굴 좌표계에서의 상기 복수의 테스트 위치의 각각은 상기 z축을 따른 상이한 z 오프셋, 상기 x축을 따른 제로 x 오프셋, 및 상기 y축을 따른 공통 y 오프셋을 갖는
    컴퓨터 구현 방법.
  19. 제 18 항에 있어서,
    상기 안경은 금속 테로부터 연장되는 조정 가능한 암에 코 패드를 갖는 상기 금속 테를 포함하는
    컴퓨터 구현 방법.
  20. 제 14 항에 있어서,
    상기 복수의 테스트 위치는 상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델이 상기 안경의 3차원 모델과 접촉하지 않는 적어도 하나의 테스트 위치를 포함하고, 상기 가상 표현의 위치를 결정하는 단계는 상기 얼굴 좌표계의 상기 원점을 향해 상기 테스트 위치를 반복적으로 이동시키는 단계와 상기 이미지를 캡처할 때의 상기 사용자의 3차원 모델과 상기 안경의 3차원 모델 사이의 첫 번째 접촉이 감지될 때까지 상기 복수의 충돌 감지 동작을 수행하는 단계를 포함하는
    컴퓨터 구현 방법.
  21. 제 13 항에 있어서,
    복수의 안경에 대한 3차원 모델을 서버에서 저장하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  22. 제 21 항에 있어서,
    상기 사용자의 3차원 모델 및 상기 안경의 3차원 모델에 기초하여, 상기 안경이 상기 사용자에 대해 잘못된 크기라고 결정하는 단계와,
    상기 사용자의 3차원 모델에 기초하여 상기 안경 중 상이한 하나를 식별하는 단계와,
    상기 안경 중 상기 식별된 상이한 하나에 대한 추천을 제공하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  23. 복수의 안경에 대한 3차원 모델을 저장하는 데이터베이스를 갖는 서버와,
    사용자의 사용자 디바이스를 포함하고,
    상기 사용자 디바이스는, 상기 사용자 디바이스의 프로세서에 의해 실행되면, 상기 프로세서로 하여금,
    상기 사용자의 얼굴의 이미지를 캡처하고,
    상기 사용자의 3차원 모델을 획득하고,
    상기 서버로부터 상기 안경 중 선택된 하나의 3차원 모델을 획득하고,
    상기 이미지, 상기 사용자의 3차원 모델, 및 상기 안경 중 상기 선택된 하나의 3차원 모델에 기초하여 상기 안경 중 상기 선택된 하나의 가상 표현을 위한 크기 및 위치를 결정하고,
    상기 사용자의 상기 얼굴의 상기 이미지에 오버레이된 상기 안경 중 상기 선택된 하나의 상기 가상 표현을 상기 결정된 크기로 그리고 상기 결정된 위치에 표시를 위해 제공하게 하는 코드를 저장하는 메모리를 포함하는
    시스템.
KR1020217006780A 2019-01-04 2019-12-21 안경의 가상 시착 시스템 및 방법 KR102399289B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227016023A KR20220066991A (ko) 2019-01-04 2019-12-21 안경의 가상 시착 시스템 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/239,745 2019-01-04
US16/239,745 US10825260B2 (en) 2019-01-04 2019-01-04 Virtual try-on systems and methods for spectacles
PCT/US2019/068200 WO2020142295A1 (en) 2019-01-04 2019-12-21 Virtual try-on systems and methods for spectacles

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227016023A Division KR20220066991A (ko) 2019-01-04 2019-12-21 안경의 가상 시착 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20210062000A true KR20210062000A (ko) 2021-05-28
KR102399289B1 KR102399289B1 (ko) 2022-05-17

Family

ID=69374370

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227016023A KR20220066991A (ko) 2019-01-04 2019-12-21 안경의 가상 시착 시스템 및 방법
KR1020217006780A KR102399289B1 (ko) 2019-01-04 2019-12-21 안경의 가상 시착 시스템 및 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227016023A KR20220066991A (ko) 2019-01-04 2019-12-21 안경의 가상 시착 시스템 및 방법

Country Status (11)

Country Link
US (3) US10825260B2 (ko)
EP (1) EP3830799A1 (ko)
JP (1) JP7109655B2 (ko)
KR (2) KR20220066991A (ko)
CN (1) CN113168733B (ko)
AU (2) AU2019419376B2 (ko)
CA (1) CA3112222A1 (ko)
IL (1) IL281827B1 (ko)
MX (2) MX2021002233A (ko)
TW (1) TWI755671B (ko)
WO (1) WO2020142295A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10825260B2 (en) * 2019-01-04 2020-11-03 Jand, Inc. Virtual try-on systems and methods for spectacles
US10866716B2 (en) * 2019-04-04 2020-12-15 Wheesearch, Inc. System and method for providing highly personalized information regarding products and services
US11676347B2 (en) 2020-04-15 2023-06-13 Warby Parker Inc. Virtual try-on systems for spectacles using reference frames
CN112328084A (zh) * 2020-11-12 2021-02-05 北京态璞信息科技有限公司 一种三维虚拟眼镜的定位方法、装置及电子设备
EP4006628A1 (de) * 2020-11-27 2022-06-01 Fielmann Ventures GmbH Computerimplementiertes verfahren zum bereitstellen und platzieren einer brille sowie zur zentrierung von gläsern der brille
GB202100314D0 (en) * 2021-01-11 2021-02-24 Cubitts Kx Ltd Frame adjustment systems
US11439257B1 (en) * 2021-02-24 2022-09-13 Richard H. Weiland, JR. Photographic mirror assembly
TWI770874B (zh) * 2021-03-15 2022-07-11 楷思諾科技服務有限公司 使用點擊及捲動以顯示模擬影像之方法
US20220300728A1 (en) * 2021-03-22 2022-09-22 Snap Inc. True size eyewear experience in real time
US11562548B2 (en) * 2021-03-22 2023-01-24 Snap Inc. True size eyewear in real time
WO2022261489A1 (en) * 2021-06-10 2022-12-15 EyesMatch Ltd. System and method for digital measurements of subjects
FR3124069A1 (fr) * 2021-06-18 2022-12-23 Acep France Procédé d’essayage de lunettes virtuelles
FR3124070B1 (fr) * 2021-06-18 2023-05-19 Acep France Procédé de simulation de produits optiques
DE102021129171B3 (de) * 2021-11-09 2023-04-06 YOU MAWO GmbH Verfahren, system und computerprogramm zur virtuellen voraussage eines realen sitzes eines realen brillengestells am kopf einer person mit individueller kopfgeometrie
JP7095849B1 (ja) * 2021-11-26 2022-07-05 アイジャパン株式会社 アイウェア仮想試着システム、アイウェア選定システム、アイウェア試着システムおよびアイウェア分類システム
CN114581635B (zh) * 2022-03-03 2023-03-24 上海涞秋医疗科技有限责任公司 一种基于HoloLens眼镜的定位方法及系统
US20240005387A1 (en) * 2022-07-01 2024-01-04 Warby Parker Inc. Systems and methods for spectacle removal and virtual try-on
CN115981467B (zh) * 2022-12-27 2023-09-01 北京字跳网络技术有限公司 一种图像合成参数确定方法、图像合成方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108196A (ja) * 2000-10-03 2002-04-10 Matsushita Electric Works Ltd 避難仮想体験システム
JP2010171646A (ja) * 2009-01-21 2010-08-05 Sony Corp 信号処理装置、画像表示装置、信号処理方法およびコンピュータプログラム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7016824B2 (en) * 2001-02-06 2006-03-21 Geometrix, Inc. Interactive try-on platform for eyeglasses
US20110071804A1 (en) * 2007-02-21 2011-03-24 Yiling Xie Method And The Associated Mechanism For 3-D Simulation Stored-Image Database-Driven Spectacle Frame Fitting Services Over Public Network
US20130088490A1 (en) * 2011-04-04 2013-04-11 Aaron Rasmussen Method for eyewear fitting, recommendation, and customization using collision detection
TWI433049B (zh) * 2011-04-07 2014-04-01 Claridy Solutions Inc 眼鏡虛擬試戴互動服務系統與方法
EP3401879B1 (fr) 2012-03-19 2021-02-17 Fittingbox Procédé de modélisation d'un objet tridimensionnel à partir d'images bidimensionnelles de cet objet prises sous différents angles
US9286715B2 (en) * 2012-05-23 2016-03-15 Glasses.Com Inc. Systems and methods for adjusting a virtual try-on
US20130335416A1 (en) * 2012-05-23 2013-12-19 1-800 Contacts, Inc. Systems and methods for generating a 3-d model of a virtual try-on product
US9470911B2 (en) * 2013-08-22 2016-10-18 Bespoke, Inc. Method and system to create products
WO2015172115A1 (en) * 2014-05-08 2015-11-12 Glasses.Com Inc. Systems and methods for scaling an object
CN104217350B (zh) * 2014-06-17 2017-03-22 北京京东尚科信息技术有限公司 实现虚拟试戴的方法和装置
CN104408764B (zh) * 2014-11-07 2017-05-24 成都好视界眼镜有限公司 眼镜虚拟试戴方法、装置及系统
US9817248B2 (en) * 2014-12-23 2017-11-14 Multimedia Image Solution Limited Method of virtually trying on eyeglasses
CN107408315B (zh) * 2015-02-23 2021-12-07 Fittingbox公司 用于实时、物理准确且逼真的眼镜试戴的流程和方法
US10244175B2 (en) * 2015-03-09 2019-03-26 Apple Inc. Automatic cropping of video content
CN104809638B (zh) * 2015-05-20 2018-04-06 成都通甲优博科技有限责任公司 一种基于移动终端的眼镜虚拟试戴方法和系统
CN108884568B (zh) 2016-03-31 2020-06-02 富士胶片株式会社 导电性层叠体的制造方法、层叠体及导电性层叠体
FR3053509B1 (fr) 2016-06-30 2019-08-16 Fittingbox Procede d’occultation d’un objet dans une image ou une video et procede de realite augmentee associe
US9990780B2 (en) * 2016-10-03 2018-06-05 Ditto Technologies, Inc. Using computed facial feature points to position a product model relative to a model of a face
US10082682B2 (en) * 2016-12-08 2018-09-25 Perfect Vision Technology (Hk) Ltd. Methods and systems for measuring human faces for fitting, selecting, and optimizing eyeglasses
US10777018B2 (en) * 2017-05-17 2020-09-15 Bespoke, Inc. Systems and methods for determining the scale of human anatomy from images
EP3410178A1 (de) 2017-06-01 2018-12-05 Carl Zeiss Vision International GmbH Verfahren, vorrichtung und computerprogramm zum virtuellen anpassen einer brillenfassung
CN107330969A (zh) * 2017-06-07 2017-11-07 深圳市易尚展示股份有限公司 眼镜虚拟三维试戴方法和眼镜虚拟三维试戴系统
CN109583285B (zh) * 2017-09-29 2023-03-07 阿里巴巴集团控股有限公司 对象识别方法
US10643383B2 (en) * 2017-11-27 2020-05-05 Fotonation Limited Systems and methods for 3D facial modeling
US10501048B2 (en) * 2018-01-19 2019-12-10 Ford Global Technologies, Llc Seatbelt buckling detection
US10825260B2 (en) 2019-01-04 2020-11-03 Jand, Inc. Virtual try-on systems and methods for spectacles
US11488239B2 (en) * 2019-08-26 2022-11-01 Warby Parker Inc. Virtual fitting systems and methods for spectacles
US20220207539A1 (en) * 2020-12-24 2022-06-30 Jand, Inc. System and method for predicting a fit quality for a head wearable device and uses thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002108196A (ja) * 2000-10-03 2002-04-10 Matsushita Electric Works Ltd 避難仮想体験システム
JP2010171646A (ja) * 2009-01-21 2010-08-05 Sony Corp 信号処理装置、画像表示装置、信号処理方法およびコンピュータプログラム

Also Published As

Publication number Publication date
AU2019419376B2 (en) 2021-05-27
IL281827B1 (en) 2024-03-01
EP3830799A1 (en) 2021-06-09
KR102399289B1 (ko) 2022-05-17
JP2021534516A (ja) 2021-12-09
US11783557B2 (en) 2023-10-10
AU2019419376A1 (en) 2021-04-01
AU2021215179B2 (en) 2023-03-09
US10825260B2 (en) 2020-11-03
US20200219326A1 (en) 2020-07-09
AU2021215179A1 (en) 2021-09-02
IL281827A (en) 2021-05-31
US20220101621A1 (en) 2022-03-31
MX2021002233A (es) 2022-08-03
KR20220066991A (ko) 2022-05-24
CN113168733A (zh) 2021-07-23
TWI755671B (zh) 2022-02-21
TW202040348A (zh) 2020-11-01
CA3112222A1 (en) 2020-07-09
WO2020142295A1 (en) 2020-07-09
MX2022006782A (es) 2022-07-11
US20210049830A1 (en) 2021-02-18
CN113168733B (zh) 2023-07-28
US11200753B2 (en) 2021-12-14
JP7109655B2 (ja) 2022-07-29

Similar Documents

Publication Publication Date Title
KR102399289B1 (ko) 안경의 가상 시착 시스템 및 방법
US11579694B2 (en) Eye image selection
AU2020336048B2 (en) Virtual fitting systems and methods for spectacles
US9842246B2 (en) Fitting glasses frames to a user
US9990780B2 (en) Using computed facial feature points to position a product model relative to a model of a face
CN115803750B (zh) 使用参考框架的眼镜的虚拟试戴系统
US10685457B2 (en) Systems and methods for visualizing eyewear on a user

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