[go: up one dir, main page]

JP7713949B2 - ライブフィッティングを含む眼鏡フレームのフィッティング - Google Patents

ライブフィッティングを含む眼鏡フレームのフィッティング

Info

Publication number
JP7713949B2
JP7713949B2 JP2022550785A JP2022550785A JP7713949B2 JP 7713949 B2 JP7713949 B2 JP 7713949B2 JP 2022550785 A JP2022550785 A JP 2022550785A JP 2022550785 A JP2022550785 A JP 2022550785A JP 7713949 B2 JP7713949 B2 JP 7713949B2
Authority
JP
Japan
Prior art keywords
user
face
model
image
points
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2022550785A
Other languages
English (en)
Other versions
JP2023515517A (ja
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 JP2023515517A publication Critical patent/JP2023515517A/ja
Application granted granted Critical
Publication of JP7713949B2 publication Critical patent/JP7713949B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G02OPTICS
    • G02CSPECTACLES; SUNGLASSES OR GOGGLES INSOFAR AS THEY HAVE THE SAME FEATURES AS SPECTACLES; CONTACT LENSES
    • G02C13/00Assembling; Repairing; Cleaning
    • G02C13/003Measuring during assembly or fitting of spectacles
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/751Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • G06V40/171Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/12Acquisition of 3D measurements of objects

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)
  • Oral & Maxillofacial Surgery (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Optics & Photonics (AREA)
  • Ophthalmology & Optometry (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)
  • Eyeglasses (AREA)

Description

〔関連出願の参照〕
本出願は、米国特許仮出願62/979,968号(LIVE FITTING OF GLASSES FRAMES、2020年2月21日)に対する優先権を主張し、これは、あらゆる目的のために参照により本明細書に組み込まれる。
パーソナルアクセサリなどのアイテムについて決断をするとき、消費者は、一般的に、そのアイテムが消費者の人にどのように見えるかを視覚化したいと思う。現実世界では、消費者はアイテムを試着するであろう。例えば、眼鏡を購入する人は、眼鏡店へ何度も足を運び、眼鏡フレーム及びレンズの適合を確認する必要がある。その際、バーチャルで試着できれば、より便利であろう。しかしながら、従来の技術では、処理遅延及び他の技術的課題により、実際の試着に匹敵する体験はできない。実体験に近い形で仮想的に試着できるようにすることが望まれる。
本発明の様々な実施形態は、以下の詳細な説明及び添付の図面に開示されている。
眼鏡フレームのライブフィッティングのためのシステムの一実施形態を示すブロック図である。 眼鏡フレームの仮想フィッティングのためのクライアントデバイスの一実施形態を示すブロック図である。 眼鏡フレームの仮想フィッティングのためのサーバの一実施形態を示すブロック図である。 眼鏡を試着するためのプロセスの一実施形態を示すフローチャートである。 ユーザの頭部の画像を取得するプロセスの一実施形態を示すフローチャートである。 眼鏡のライブフィッティングのプロセスの一実施形態を示すフローチャートである。 眼鏡フレームの対応画像を生成するためのプロセスの一実施形態を示すフローチャートである。 比較的粗いモデルを使用して頭部モデルをスケーリングするプロセスの一実施形態を示すフローチャートである。 比較的微細なモデルを使用して頭部モデルをスケーリングするプロセスの一実施形態を示すフローチャートである。 頭部モデルをスケーリング及び生成するプロセスの一実施形態を示すフローチャートである。 いくつかの実施形態において得られるフレーム適合グラフィカルユーザインターフェースの一例を示す図である。 いくつかの実施形態において得られるフレームスケールグラフィカルユーザインターフェースの一例を示す図である。 いくつかの実施形態において取得される所望の及びキャプチャされた顔の角度(facial angles、顔角)のグラフィカルユーザインターフェースの一例を示す図である。 いくつかの実施形態において得られる分割スクリーングラフィカルユーザインターフェースの一例を示す図である。 いくつかの実施形態において取得される様々な眼鏡フレームを表示するためのグラフィカルユーザインターフェースの一例を示す図である。 いくつかの実施形態において取得された挿入(inset、インセット)を有するグラフィカルユーザインターフェースの一例を示す図である。
本発明は、プロセス、装置、システム、合成物(composition of matter)、コンピュータ可読記憶媒体上に具現化されたコンピュータプログラム製品、及び/又はプロセッサ、例えばプロセッサに結合されたメモリ上に記憶され、及び/又はそれによって提供される命令を実行するように構成されたプロセッサを含む多くの方法で実施することができる。本明細書では、これらの実装形態、又は本発明が取り得る任意の他の形態は、技術(techniques、技法)と呼ばれ得る。一般に、開示されるプロセスのステップの順序は、本発明の範囲内で変更され得る。特に明記しない限り、タスクを実行するように構成されるものとして説明されるプロセッサ又はメモリなどの構成要素は、所与の時間にタスクを実行するように一時的に構成される一般的な構成要素として実装されてもよく、又はタスクを実行するように製造される特定の構成要素として実装されてもよい。本明細書で使用する「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された1つ又は複数のデバイス、回路、及び/又は処理コアを指す。
本発明の1つ又は複数の実施形態の詳細な説明を、本発明の原理を示す添付の図とともに以下に提供する。本発明は、そのような実施形態に関連して説明されるが、本発明は、いかなる実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、多数の代替形態、修正形態、及び均等物を包含する。以下の説明では、本発明の完全な理解を提供するために、多数の具体的な詳細が述べられる。これらの詳細は、例示を目的として提供され、本発明は、これらの具体的な詳細のいくつか又はすべてを伴わずに、特許請求の範囲に従って実施され得る。明確にするために、本発明に関連する技術分野で知られている技術的資料は、本発明が不必要に不明瞭にならないように、詳細に記載していない。
本明細書で使用する「ライブフィッティング」又は「ライブ試着」という用語は、シミュレーションを実質的に瞬時に表示することによって、人の身体上のオブジェクトの配置をシミュレートすることを指す。「ビデオフィッティング」又は「ビデオ試着」という用語は、シミュレーションをいくらかの遅延の後に表示することによって、人の身体上のオブジェクトの配置をシミュレートすることを指す。ライブフィッティングの一例としては、人がカメラを見ているのと実質的に同じタイミングで、人の顔に眼鏡フレームを配置し、眼鏡をかけた状態で鏡を見ているような体験を提供することが挙げられる。ビデオフィッティングの一例は、人の顔の1つ又は複数の画像をアップロードし、人の顔への眼鏡の配置を決定し、及び人の顔に配置された眼鏡の結果画像又は一連の画像(ビデオ)を表示することである。
開示される眼鏡フレームのライブフィッティングのための技術は、ユーザに以下の経験を提供する。仮想の「鏡」がユーザの電子デバイス画面上に表示されるので、ユーザは、選択されたフレームのペア(pair)で拡張された鏡の中の自分自身を見ることができる。次いで、ユーザは、様々な異なるフレームを順次試着すことができる。
ビデオ試着技術と比較して、「ライブ試着」又は「仮想鏡」スタイルの眼鏡試着は、選択したフレームのペアを顔のイメージにリアルタイムでレンダリングして、ユーザの顔をより即座に見ることができる。様々な実施形態において、ユーザは、選択された眼鏡を自分の顔ですぐに見ることができる。彼らは、望むように頭を回すことによって異なる角度からどのように見えるかを見るためにライブ体験に従事することができる。ユーザが頭を動かすと、眼鏡も同じように動き、実際に眼鏡を着用した場合にユーザがどのように見えるかをシミュレートする。随意に、ユーザは、異なるフレームのペアを選択してもよく、ユーザの顔のライブレンダリングされた画像は、新たに選択された眼鏡を着用した状態で表示されるであろう。
ユーザが頭を動かしている間、この技術は、ユーザの顔及び頭のサイズ及び形状に関する情報を収集している。様々な視覚的合図がインターフェースの一部として提供され、システムが、ユーザの頭及び顔の正確な表現に、その表現の適切なスケール/サイズを含めて到達するために必要とされる量の情報を収集するために、様々な方法で動くようにユーザに促す。正確なスケール/サイズを決定する方法の例は、本明細書でさらに説明される。どれだけの情報が収集されたか、及びどれだけの情報が依然として必要とされるかを示すために、視覚的合図を提供することができる。例えば、視覚的合図は、高品質で正確な仮想試着ビューをレンダリングするのに充分な情報が取得されたときを示す。
図1は、眼鏡フレームのライブフィッティングのためのシステムの一実施形態を示すブロック図である。簡単にするために、本システムは、眼鏡フレームのライブフィッティング用と称される。システムによって生成されたデータは、眼鏡フレームのビデオフィッティングのためにライブフィッティングデータを使用することを含む、様々な他の用途において使用され得る。
この例では、システム100は、クライアントデバイス104と、ネットワーク106と、サーバ108とを含む。クライアントデバイス104は、ネットワーク106を介してサーバ108に結合される。ネットワーク106は、高速データネットワーク及び/又は電気通信ネットワークを含み得る。ユーザ102は、製品を「試着」するためにクライアントデバイスと対話してもよく、例えば、本明細書でさらに説明する技術に従って、デバイスを介してユーザの身体のユーザ画像を提供し、ユーザの身体に対する製品の仮想フィッティングを表示することができる。
クライアントデバイス104は、ユーザ102にユーザインターフェースを提供するように構成される。例えば、クライアントデバイス104は、デバイスのカメラによってキャプチャされたユーザの画像などの入力を受信するか、又はユーザ102によるクライアントデバイスとのユーザインタラクションを観察してもよい。クライアントデバイスによって収集された情報の少なくともいくつかに基づいて、ユーザの身体上に製品を配置するシミュレーションがユーザに出力される。
様々な実施形態では、クライアントデバイスは、カメラ、深度センサ、ライダセンサ(lidar sensor)、他のセンサ、又は複数のセンサの組み合わせなどの入力コンポーネントを含む。カメラは、身体的特徴が判定され得るユーザの画像を観察及び/又はキャプチャ(捕捉)するように構成されてもよい。ユーザは、本明細書でさらに説明されるように、カメラを操作するように、又はカメラに対してポーズをとるように指示されてもよい。入力コンポーネントによって収集された情報は、推奨を行うために使用及び/又は記憶され得る。
サーバ108は、入力画像から身体的特徴を決定し、身体的特徴と製品との間の相関を決定し、ユーザの顔に眼鏡フレームをフィッティングするなど、入力画像と統合された製品の1つ又は複数の画像を出力するように構成される。サーバ108は、クライアントデバイス104から遠隔(remote)であってもよく、インターネットなどのネットワーク106を介してアクセス可能であってもよい。図2及び3に関してさらに説明したように、様々な機能性が、クライアント又はサーバのいずれかにおいて具現化されてもよい。例えば、従来サーバに関連付けられた機能は、サーバによって実行されるだけでなく、クライアントによっても/代替的に実行されてもよく、その逆もまた同様である。出力は、ユーザ体験が製品のライブフィッティングであるように、ユーザが入力画像を提供した後、(もしあれば)非常にわずかな遅延でユーザに提供することができ、その結果、ユーザ体験は、製品のライブフィッティングになる。ユーザの顔への製品の仮想フィッティングは、多くの用途を有する。例えば、眼鏡(eyewear)、化粧品、宝飾品などの顔用アクセサリーを仮想的に試着する用途がある。簡略化のため、本明細書の実施例は、主に、ユーザの顔/頭への眼鏡フレームのライブフィッティングを説明するが、これは、限定することを意図せず、本技術は、他のタイプのアクセサリーの試着に適用されてもよく、ビデオフィッティングに適用されてもよい(例えば、いくらかの遅延を有してもよい)。
図2は、眼鏡フレームの仮想フィッティングのためのクライアントデバイスの一実施形態を示すブロック図である。いくつかの実施形態では、図1のクライアントデバイス104は、図2の例を使用して実装される。
この例では、クライアントデバイスは、画像記憶装置(storage、ストレージ)202と、眼鏡フレーム情報記憶装置204と、3Dモデル記憶装置214と、粗いモデル生成器(coarse model generator)206と、フィッティングエンジン216と、レンダリングエンジン212とを含む。クライアントデバイスは、例に示されるものよりも追加的、異なる、及び/又はより少ないコンポーネントで実装され得る。画像記憶装置202、眼鏡フレーム情報記憶装置204、及び3Dモデル記憶装置214の各々は、1つ又は複数のタイプの記憶媒体を使用して実装され得る。モデル生成器206、フィッティングエンジン216、及びレンダリングエンジン212の各々は、ハードウェア及び/又はソフトウェアを使用して実装され得る。
画像記憶装置202は、画像のセットを記憶するように構成される。画像は、RGB画像及び深度画像を含むが、それらに限定されず、様々なフォーマット又は異なるタイプであり得る。いくつかの実施形態では、画像の各セットは、図4に関してさらに説明されるように、記録されたビデオ又はユーザの顔の様々な向きの一連のスナップショットと関連付けられる。いくつかの実施形態では、画像の各セットは、セット全体又はセットの個々の画像に関連するデータとともに記憶される。様々な実施形態では、ユーザ画像の少なくともサブセットは、ローカル及び/又は遠隔に記憶され、例えば、記憶のためにサーバ108に送信されてもよい。
カメラ218は、ユーザの画像をキャプチャするように構成される。キャプチャされた画像は、202において記憶され、身体的特徴を決定するために使用され得る。図1に関して説明したように、カメラは、ユーザの頭部のモデルを生成するのに役立つ深度センサなどの様々なセンサを有することができる。深度センサを有するカメラの例は、いくつかのiPhones(登録商標)で入手可能なTrue Depth(登録商標)カメラである。カメラのハードウェアによっては、RGB画像及び深度画像を含むが、それらに限定されない様々なフォーマット及びタイプの画像及びデータを取り込むことができる。
画像は、関連する内部(intrinsic、固有)情報及び/又は外部(extrinsic)情報を有し得る。内部情報及び外部情報は、第三者(例えば、クライアントデバイスアプリケーション)によって生成されるか、又は図3に関してさらに説明するように生成することができる。様々な実施形態では、第三者によって提供される内部情報及び外部情報はさらに、図3の308及び310に関して説明される技術を使用して処理することができる。情報は、デバイスにおいてローカルに生成することができ、又はサーバによってリモートに生成することができる。
粗いモデル生成器206は、画像の各セットに関連するユーザの顔の数学的3Dモデルを決定するように構成される。粗いモデル生成器は、モバイルデバイスに固有(native)のものなどの第三者メッシュモデルを使用して実装され得る。iOS(登録商標)で利用可能なモデルI/Oフレームワークは、そのような例の1つである。様々な実施形態では、モデルは、ローカルにモデルを生成する代わりに、又はローカルモデル情報を補完するために、遠隔サーバ108から取得することができる。モデル生成器は、図3に示されるものと区別するためにここでは「粗い」モデル生成器と呼ばれるが、モデル生成器206は、使用される技術及び利用可能な処理リソースに応じて、モデル生成器306によって生成されるものと少なくとも同じ粒度(granularity)を有するモデルを生成するように構成され得る。
フィッティングエンジン216(比較エンジンと呼ばれることもある)は、(例えば、3Dモデル記憶装置に記憶される)ユーザの顔の3Dモデルと眼鏡フレームの3Dモデルとの間の適合を決定するように構成される。いくつかの実施形態では、フィッティングエンジンは、ユーザの顔の粗いモデルを処理する。例えば、粗い3Dモデルは、帽子、眼鏡、顔ひげ(facial hair)などのオブジェクト又は特徴を粗いモデル上に自動的に配置するための指示(例えば、提案又は手掛かり)を提供する。配置は、追加のランドマークを決定することによって改善することができる。例えば、粗いモデルが耳の接合点を欠いている場合、フィッティングエンジンは、図3の306に関してさらに説明するように、それらの点を決定することができる。
眼鏡フレーム情報記憶装置204は、様々な眼鏡フレームに関連する情報を記憶するように構成される。例えば、眼鏡フレームに関連する情報は、フレームの様々なエリア(例えば、ブリッジ長、レンズ直径、テンプル距離)の測定値、様々な(R,t)ペアに対応する眼鏡フレームのレンダリング、様々な(R,t)パラメータについて眼鏡画像をレンダリングするために使用され得る眼鏡フレームの3Dモデルの数学的表現、価格、識別子、モデル番号、カテゴリ、タイプ、眼鏡フレーム素材、ブランド、部品番号を含んでもよい。いくつかの実施形態では、各眼鏡フレームの3Dモデルは、例えば、眼鏡フレームの様々な位置/部分を画定する3Dポイントのセット、例えば、ブリッジポイントのペアとテンプル屈曲ポイントのペアの1つ以上を含む。様々な実施形態では、眼鏡の2D画像がクライアントデバイスで生成される。他の実施形態では、眼鏡の2D画像が、図1の108等のサーバによって生成され、クライアントデバイスに送信される。
レンダリングエンジン212は、画像上にオーバーレイされる眼鏡フレームの2D画像をレンダリングするように構成される。例えば、選択された眼鏡フレームは、眼鏡フレーム情報記憶装置204に情報が記憶されている眼鏡フレームであってもよい。例えば、眼鏡フレームがオーバーレイされるべき画像は、画像記憶装置202に記憶された画像セットの一部として記憶されてもよい。いくつかの実施形態では、レンダリングエンジン212は、画像セットの少なくとも一つのサブセットの各々について、(例えば、ユーザによって選択された)眼鏡フレームをレンダリングするように構成される。様々な実施形態において、眼鏡フレームがオーバーレイされる画像は、カメラから供給される。いくつかの実施形態では、レンダリングエンジン212は、眼鏡フレームが3D顔(例えば、ユーザの顔の3Dモデル又は別の3D顔の3Dモデル)上に置かれた後の眼鏡フレームの3Dモデルを、画像に対応する(R,t)ペアなどの外部情報によって、変換するように構成される。(R,t)ペアは、ユーザの顔に関連付けられた画像セットの画像について決定された外部情報の例であり、Rは回転行列であり、tは308に関してさらに説明されるようにその画像に対応する並進ベクトルである。いくつかの実施形態では、レンダリングエンジン212はまた、オクルージョンボディを使用して変換された眼鏡フレームに対してオクルージョンカリング(occlusion culling)を実行するように構成される。(R,t)ペアと関連付けられた向き及び並進(平行移動)におけるオクルージョン眼鏡フレームは、その向き/並進におけるオクルージョンボディによって視界から隠された特定の部分を除外する。画像にレンダリングされた眼鏡フレームは、画像に対応する向き及び並進で眼鏡フレームを示すべきであり、クライアントデバイスにおけるユーザへの画像セットの再生において、その画像上にオーバーレイされ得る。
図3は、眼鏡フレームの仮想フィッティングのためのサーバの一実施形態を示すブロック図である。いくつかの実施形態では、図1のサーバ108は、図3の例を使用して実装される。この例では、サーバは、画像記憶装置302と、眼鏡フレーム情報記憶装置304と、3Dモデル記憶装置314と、モデル生成器306と、フィッティングエンジン316と、外部情報生成器308と、内部情報生成器310と、レンダリングエンジン312とを含む。サーバは、例示したものよりも追加的に、異なる、及び/又はより少ないコンポーネントで実装され得る。クライアント200及びサーバ300に関して説明される機能は、いずれかのデバイスにおいて具現化され得る。例えば、206によって生成された粗いモデルは、クライアント上でローカルに処理(例えば、改善)されてもよく、又は更なる処理のためにサーバ300に送信されてもよい。画像記憶装置302、眼鏡フレーム情報記憶装置304、及び3Dモデル記憶装置314の各々は、1つ又は複数のタイプの記憶媒体を使用して実装され得る。モデル生成器306、フィッティングエンジン316、外部情報生成器308、内部情報生成器310、及びレンダリングエンジン312の各々は、ハードウェア及び/又はソフトウェアを使用して実装され得る。コンポーネントの各々は、別段の記載がない限り、図2におけるそれらの対応物と同様である。
モデル生成器306は、画像の各セットに関連付けられたユーザの顔の数学的3Dモデルを決定するように構成される。モデル生成器306は、ゼロから、又はモデル生成器206によって生成された粗いモデルに基づいて、3Dモデルを生成するように構成され得る。様々な実施形態では、モデル生成器は、図9のプロセスを実行して3Dモデルを生成するように構成される。例えば、ユーザの顔の数学的3Dモデル(すなわち、3D空間におけるユーザの顔の数学的モデル)を原点に設定することができる。いくつかの実施形態では、ユーザの顔の3Dモデルは、関連付けられた画像セットからのユーザの顔の特徴(例えば、その位置)と関連付けられた基準点のセットを定義する3D空間内の点のセットを含む。基準点の例は、ユーザの眼の端点、ユーザの眉の端点、ユーザの鼻梁、ユーザの耳接合点、及びユーザの鼻の先端を含む。いくつかの実施形態では、ユーザの顔について決定された数学的3Dモデルは、関連付けられた画像セットからユーザの顔の特徴と関連付けられた基準点のセットに基づいて決定されるM行列と呼ばれる。いくつかの実施形態では、モデル生成器306は、画像セットについて決定されたM行列を、画像記憶装置302におけるセットとともに記憶するように構成される。いくつかの実施形態では、モデル生成器306は、ユーザの顔の3Dモデルを3Dモデル記憶装置314に記憶するように構成される。モデル生成器306は、図9のプロセスを実行するように構成され得る。
外部情報生成器308及び内部情報生成器310は、ライブ試着又はビデオ試着に使用可能な情報を生成するように構成される。図2に関して説明したように、情報は第三者から取得されてもよく、情報は第三者情報を基に生成することができ、又は以下のように生成されてもよい。
外部情報生成器308は、画像セットの少なくとも一つのサブセットの各々について外部情報のセットを決定するように構成される。例えば、画像セットは、画像記憶装置302に記憶されてもよい。様々な実施形態では、画像セットの画像に対応する外部情報セットは、その特定の画像におけるユーザの顔の正しい外観をもたらすために必要とされる画像セットについて決定されるユーザの顔の3Dモデルの向き及び並進のうちの1つ以上を記述する。いくつかの実施形態では、ユーザの顔に関連する画像セットの画像について決定された外部情報セットは、(R,t)ペアと呼ばれ、ここでRは回転行列であり、tはその画像に対応する並進ベクトルである。このように、画像セットの画像に対応する(R,t)ペアは、画像セットに対応するM行列(ユーザの顔の3Dを表す)(R×M+1)を、その(R,t)ペアに関連する画像に示されるユーザの顔の適切な向き及び並進に変換することができる。いくつかの実施形態では、外部情報生成器308は、画像セットの少なくとも一つのサブセットの各々について決定された(R,t)ペアを、画像記憶装置302におけるセットとともに記憶するように構成される。
内部情報生成器310は、画像セットの記録に関連するカメラの内部情報セットを生成するように構成される。例えば、カメラは、画像記憶装置302に記憶された画像セットを記録するために使用される。様々な実施形態では、カメラに対応する内部情報セットは、カメラに関連付けられるパラメータのセットを記述する。例えば、カメラのブランド又はタイプは、デバイス200によって送信することができる。別の例として、カメラに関連するパラメータは焦点距離を含む。いくつかの実施形態では、カメラに関連する内部情報のセットは、ユーザの異なる画像間のスケーリング基準オブジェクト上の点を画像内のスケーリング基準オブジェクトと相関させ、カメラ較正技術を用いてカメラの内部パラメータを表す内部情報セットを計算することによって見出される。いくつかの実施形態では、カメラに関連する内部情報のセットは、スケーリング基準を必要としない自動較正の技術を用いて求められる。いくつかの実施形態では、カメラに関連付けられる内部情報セットは、I行列と呼ばれる。いくつかの実施形態では、I行列は、特定の画像に対応する(R,t)ペアによって変換されたユーザの顔の3Dモデルバージョンをカメラの焦点面の2D表面に投影する。言い換えれば、I×(R×M+1)により、画像に対応するM行列及び(R,t)ペアによって決定される向き及び並進における3Dモデルが、2D表面上に投影されることになる。2D表面への投影は、カメラから見たユーザの顔のビューである。いくつかの実施形態では、内部情報生成器310は、画像記憶装置302において、画像セットに関連付けられるカメラについて決定されたI行列を記憶するように構成される。
いくつかの実施形態では、フィッティングエンジン316は、特定のユーザに関連付けられた「理想的な眼鏡」3Dポイントセットに含まれる計算されたブリッジポイントのセットを決定するように構成される。様々な実施形態では、特定のユーザに関連付けられた「理想的な眼鏡」3Dポイントセットは、眼鏡フレームの3Dモデルとユーザの顔の3Dモデルとの間の所望の位置合わせ又は適合を決定するために使用することができるマーカを含む。いくつかの実施形態では、計算されたブリッジポイントのセットを決定する際に、フィッティングエンジン316は、ユーザの顔の3Dモデルに含まれる3Dポイントのセットからの少なくとも3つのポイントを使用して3D空間内の平面を決定するように構成される。例えば、平面は、ユーザの顔の3Dモデルからの2つの眼の内側の隅及び2つの耳接合点を使用して決定される。フィッティングエンジン316は、平面に平行なベクトルを決定するように構成され、このベクトルは、「顔面法線」と呼ばれることがある。顔面法線に沿った2つの内側の眉点の中点と2つの眼の内側の隅の中点との間の距離が計算され、「眉zデルタ」と呼ばれることがある。フィッティングエンジン316は、眉zデルタに所定の係数を乗算することによって「ブリッジシフト」値を決定するように構成される。例えば、係数は1.0に近く、発見的に(heuristically)に計算された。フィッティングエンジン316は、ユーザの顔の3Dモデルの2つの眼の内側の隅の各々を、ブリッジシフト値だけ顔の法線方向にカメラに向かって移動させることによって、計算されたブリッジポイントのセットを決定するように構成される。いくつかの実施形態では、フィッティングエンジン316はまた、2つの内側の眉点の中点と2つの眼の内側の隅の中点との間の距離及び所定の係数の関数として決定される垂直シフトを決定するように構成される。
いくつかの実施形態では、計算されたブリッジポイントのセットは、垂直シフトに基づいて、2つの内側の眉点の中点と2つの眼の内側の隅の中点との間の距離に沿って更に移動させられる。いくつかの実施形態では、理想的な眼鏡3Dポイントセットに含まれる他の3Dポイントは、2つのテンプル屈曲点であり、フィッティングエンジン316は、ユーザの顔の3Dモデルの2つの耳接合点に等しくなるように設定されるように構成される。いくつかの実施形態では、ユーザの顔の3Dモデルに対する眼鏡フレームの3Dモデルの初期配置は、理想的な眼鏡3Dポイントセットの、2つのブリッジポイント及び/又は2つのテンプル屈曲点を用いて決定することができる。いくつかの実施形態では、フィッティングエンジン316は、眼鏡フレームの3Dモデルのブリッジポイント間の線を、ユーザに関連付けられる理想的な眼鏡3Dポイントセットの計算されたブリッジポイント間の線と位置合わせすることによって、初期配置を決定するように構成される。次に、眼鏡フレームの3Dモデルのブリッジポイントは、フィッティングエンジン316によって、眼鏡フレームの3Dモデルのブリッジポイントと、ユーザに関連付けられる理想的な眼鏡3Dポイントセットの計算されたブリッジポイントの両方の中点が同じ位置又は互いの所定の距離内にあるように位置決めされる。次いで、眼鏡フレームの3Dモデルのブリッジポイントを固定し、眼鏡フレームの3Dモデルのテンプル屈曲点は、眼鏡フレームの3Dモデルのテンプル屈曲点がユーザの顔の3Dモデルの耳接合点と一致するか、又は所定の距離内にあるように、軸となる重複ブリッジ線を中心として回転させる。上述したように、いくつかの実施形態では、ユーザの顔の3Dモデルの耳接合点は、ユーザに関連する理想的な眼鏡3Dポイントセットのテンプル屈曲点と呼ばれることがある。
いくつかの実施形態では、ユーザの顔の3Dモデルに対する眼鏡フレームの3Dモデルの初期配置の決定の後又は代替として、フィッティングエンジン316は、ユーザに関連付けられる3D空間内の鼻曲線ポイントセットを決定するように構成される。ユーザに関連付けられる鼻曲線ポイントセットは、ユーザの顔の3Dモデルに対する眼鏡フレームの3Dモデルの配置を決定するために、又は理想的な眼鏡3Dポイントセットを使用して決定されたユーザの顔の3Dモデルに対する眼鏡フレームの3Dモデルの初期配置を修正するために使用され得る。いくつかの実施形態では、フィッティングエンジン316は、ユーザの顔の3Dモデルに対応するように所定の3D顔をモーフィング(morphing)することによって、3D空間内の鼻曲線ポイントセットを決定するように構成される。いくつかの実施形態では、所定の3D顔は、一般的な顔の3Dモデルを含む。いくつかの実施形態では、所定の3D顔は、鼻曲線に沿った点の所定のセットを含む。いくつかの実施形態では、ユーザの顔の3Dモデルに対応するように所定の3D顔をモーフィングすることは、ユーザの顔の3Dモデル上の対応する位置に合致するか又はより近くなるように所定の3D顔の対応する位置/頂点(及びそれらそれぞれの近隣頂点)を移動させることを含む。所定の3D顔がモーフィングされた後、鼻曲線に沿った点の所定のセットもモーフィングの結果として移動される。したがって、所定の3D顔がモーフィングされた後、所定の3D顔の鼻曲線に沿った点の所定のセットの3D空間内の更新された位置は、ユーザに関連するモーフィングされた鼻曲線の3Dポイントのモーフィングされたセットと呼ばれる。
いくつかの実施形態では、鼻曲線等の領域/特徴は、3Dポイント(マーカ又は頂点とも呼ばれる)を使用し、以下のように領域を頂点のセットに適合させることによって、3D顔モデル又は粗いモデルから決定され得る。典型的には、粗い頭部モデル及び3D頭部モデルの頂点インデックスの順序付けは、固定である。言い換えれば、フィッティングエンジンは、鼻曲線などの領域にどの頂点がほぼ対応するのかをあらかじめ記録しておくことができる。これらの頂点は、モデル生成中に微妙に位置が変わることがあり、曲線上できれいに揃わないことがある。鼻曲線を生成する1つのアプローチは、頭部メッシュ上の予め記録された頂点を選択することによって、3Dポイントセットを生成することである。次いで、平面をこれらの3Dポイントにフィッティングすることができる。言い換えれば、フィッティングエンジンは、これらの3Dポイントによってカバーされる空間に最も近似する平面を見つける。次いで、フィッティングエンジンは、その平面上のこれらの点の投影を求める。これにより、フィッティング中に使用することができるきれいで正確な鼻曲線が得られる。
いくつかの実施形態では、フィッティングエンジン316は、眼鏡フレームの3Dモデルのブリッジポイントに最も近い、ユーザに関連付けられた鼻曲点のモーフィングされたセットのうち、2つの隣接するポイント間のセグメントを決定し、このセグメントの法線(これは、「鼻曲率法線」と呼ばれることもある)を計算することによって、ユーザの顔の3Dモデルに対する眼鏡フレームの3Dモデルの初期配置を修正するように構成される。次いで、フィッティングエンジン316は、眼鏡フレームの3Dモデルのブリッジポイントがセグメントの所定の距離内になるまで、眼鏡フレームの3Dモデルを鼻曲率法線に沿ってこのセグメントに向けて位置決めするように構成される。いくつかの実施形態では、フィッティングエンジン316は、眼鏡フレームの3Dモデルのテンプル屈曲点を曲げて、ユーザの顔の3Dモデルの耳接合点と位置合わせするようにさらに構成される。
図4は、眼鏡を試着するためのプロセスの一実施形態を示すフローチャートである。このプロセスは、システム100によって実施することができる。このプロセスは、ライブ試着又はビデオ試着のために実行することができる。
図示の例では、プロセスは、ユーザの頭部の画像セットを取得することによって開始される(402)。例えば、ユーザがデバイスのカメラをオンにすると、ユーザの顔が仮想ミラーとして画面に表示される。様々な異なる角度からユーザの顔の画像を収集することにより、ユーザの頭部及び顔の3Dモデルを再構築するための入力が提供される。
いくつかの実施形態では、ユーザは、自分の顔に表示される眼鏡フレームの組み合わせを選択することができる。ユーザは、頭及び顔を動かすことができ、眼鏡の位置及び向きは、顔の動きを追跡し、顔の動きに対して適切な位置に留まるように継続的に更新される。
プロセスは、ユーザの頭部の初期配向を決定する(404)。例えば、プロセスは、ユーザの頭部が傾いているか、前方を向いているかなどを決定することができる。ユーザの頭部の向きは、様々な方法で決定することができる。例えば、プロセスは、ユーザの頭部の画像セットを使用して顔のランドマークセットを決定し、ランドマークを使用して向きを決定することができる。図2及び図3に関して更に説明するように、ランドマークは、ブリッジポイント、眼の隅、耳の接合点などの顔の特徴であり得る。別の例として、向きは、図9に関して説明するように、第三者(例えば、ARKit)によって提供される深度画像及び姿勢情報を使用することによって決定され得る。
プロセスは、ユーザの頭部の初期モデルを取得する(406)。ユーザの頭部の初期/デフォルトモデルは、様々な方法で生成されてもよい。例えば、モデルは第三者から得ることができる(例えば、図2に関して説明した粗いモデル)。別の例として、モデルは、サーバから取得されてもよい(例えば、図3に関して説明した3Dモデル)。さらに別の例として、モデルは、過去のユーザの顔に基づいて生成されてもよい。「過去の」ユーザの顔は、所定の期間(例えば、最近の顔は、最後の数時間、数日、数週間などである。)内に保存された画像から生成された統計モデルであってもよい。
3Dモデルの精度は、異なる角度からの顔の2Dカラー画像及び顔の対応する深度センサ情報の形態で収集される付加的な情報によって向上する。様々な実施形態では、プロセスは、満足のいく3Dモデルを構築するために充分な情報を得る方法として、ユーザの頭部を左から右に回すようにユーザに指示する。非限定的な例として、必要とされる精度の3Dモデルを作成するのに充分なのは約10フレームである。3Dモデルの形状のより高い精度は、3D空間における眼鏡の位置及び角度を含む、ユーザの頭部への眼鏡のより良好なフィッティングを可能にする。より高い精度はまた、顔/頭に装着したときに眼鏡のどの部分が見えるか、及び眼鏡のどの部分が鼻又は耳などの顔の特徴によって見えなくなるのかのより良い分析を可能にする。
3Dモデルにおけるより精度はまた、図8B又は図9のプロセスを使用してスケールを決定することによって3Dモデルにおいて「スケール」が確立されると、ユーザの顔及び頭部のより正確な測定に寄与する。本明細書でさらに説明するように、図8Bのプロセスは、顔/頭部上のいくつかの2点間の距離の尺度を決定する。測定されるこの第1の距離は、典型的には、顔の正面図における瞳孔間の距離であり、これは、瞳孔間距離又はPDとして知られている。仮想3D空間におけるこれらの2点間の距離を知ることで、その空間における任意の他の2点間の距離を計算することができる。関心のある他の尺度としては、顔の幅、鼻梁の幅、鼻の中心と各瞳孔との間の距離(デュアルPD)なども計算できる。
スケーリングされた3D頭部と、頭部にフィットされた(既知のスケールを有する)眼鏡の3Dモデルとを含む追加の測定値も計算することができる。テンプル長(眼鏡のテンプルアームのヒンジからテンプルが置かれる耳接合点までの距離)は一例である。
プロセスは、初期配向に対応するユーザの頭部の初期モデルを変換する(408)。例えば、頭部のモデルを3D空間内で回転させ、初期配向に対応させることができる。
プロセスは、眼鏡フレームのユーザ選択を受信する(410)。ユーザは、図14に関してさらに説明するように、いくつかのセレクション(選択)から特定の眼鏡フレームを選択することによって、ユーザインターフェースを介して選択を提供してもよい。
プロセスは、ユーザの頭部の変換されたモデルを眼鏡フレームのモデルと組み合わせる(412)。ユーザの頭部と眼鏡フレームとの組み合わせは、鼻梁、テンプルなどの顔のランドマーク上での眼鏡のスケール及び配置の現実的な視覚化を含む、眼鏡がユーザの頭部上でどのように見えるかの正確な表現を提供する。従来技術と比較して、この組み合わせは、不正確なオクルージョンを低減/排除するので、より現実的である。オクルージョンとは、3D空間において前景オブジェクトが背景オブジェクトの手前にあるため、画像中の前景オブジェクトが背景オブジェクトを隠してしまうことである。正しいオクルージョンは、顔の一部の後ろに眼鏡の部分を適切に隠すので、より現実的に頭部に装着された眼鏡を表す。不正確なオクルージョンの原因は、とりわけ、ユーザの頭部モデル又は眼鏡フレームモデルが正確に組み合わされないとき、頭部姿勢が特定の画像に対して正確に決定されないとき(外部(R,t)が正確でないとき)に、特に眼鏡が頭部と交差又は接触する部分の頭部モデルが不正確であることに起因する。眼鏡の頭部へのフィッティングは、3D頭部モデルの精度に依存するため、頭部モデルが不正確だとフィッティングも不正確となる。したがって、より良好な頭部モデルは、より正確なオクルージョンを実現し、よりリアルな試着体験をユーザに提供するであろう。
プロセスは、ユーザの頭部の変換されたモデルと眼鏡フレームのモデルとの組合せに少なくとも部分的に基づいて眼鏡フレームの画像を生成する(414)。眼鏡フレームの画像は2Dであるため、後でユーザの頭部の2D画像上に提示することができる。様々な実施形態では、眼鏡フレームの画像は、特定の条件が満たされることに応じて更新することができる。例えば、ユーザの顔の特徴が、不正確なスケールのために眼鏡フレームの初期2D画像によってカバーされない場合、初期2D画像は、モデルが改善されるにつれて、より正確なスケールを反映するように、1つ以上の次元でフレームを伸張、拡大するように変更することが可能である。
プロセスは、ユーザの頭部の画像セットの少なくとも1つの画像上に、眼鏡フレームの画像を重ね合わせることを含むプレゼンテーションを提供する(416)。プレゼンテーションは、図10~15に示されるもの等のユーザインターフェース上に出力することができる。
図5は、ユーザの頭部の画像を取得するためのプロセスの一実施形態を示すフローチャートである。このプロセスは、図4の402などの別のプロセスの一部として実行され得る。このプロセスは、システム100によって実施することができる。
図示の例では、プロセスは、ユーザの頭部の画像セットを受信することによって開始する(502)。様々な実施形態では、ユーザは、所望の画像を取得するために自分の頭部を動かすように指示され得る。例えば、ユーザは、ユーザインターフェースを介して、前向き画像を撮影し、次いで、その頭部を左に回転させ、次いで、その頭部を右に回転させるように、又はある方向から別の方向にゆっくりと回転させるように命令されてもよい。ユーザの動きが速すぎたり遅すぎたりする場合、ユーザは、速度を落としたり速めたりするように指示されてもよい。
プロセスは、ユーザの頭部の画像及び関連情報のセットを記憶する(504)。関連情報は、深度データ等のセンサデータを含んでもよい。画像及び関連情報は、後に、本明細書でさらに説明するように、ユーザの頭部のモデルを構築するために、又は他の目的で使用されてもよい。
プロセスは、停止するかどうかを判定する(506)。例えば、充分な画像(枚数、画質等)が撮影された場合には、プロセスは、停止条件が満たされたと判定する。停止条件が満たされない場合、プロセスは502に戻り、さらなる画像を受信する。そうでない場合、停止条件が満たされる場合、プロセスは終了する。
ユーザの頭部の画像を取得するためのユーザインターフェースのいくつかの例が、図10~12に示される。
図6は、眼鏡のライブフィッティングのためのプロセスの一実施形態を示すフローチャートである。このプロセスは、図4などの別のプロセスの一部として実行され得る。このプロセスは、システム100によって実施することができる。図示の例では、プロセスは、ユーザの顔の現在のモデルを更新することに関連するイベントを決定することによって開始する(602)。
プロセスは、ユーザの顔の履歴記録フレームのセットを使用して、イベントに応答してユーザの顔の現在のモデルを更新する(604)。例えば、ユーザの顔の履歴記録フレームのセットは、図4の402において取得されたもの、又は現在の記録セッションの前に取得された画像であり得る。
プロセスは、ユーザの顔の新たに記録されたフレームを取得する(606)。プロセスは、ユーザの画像をキャプチャするようにデバイス上のカメラに命令することによって、新しく記録されたフレームを取得し得る。図10~図12に示すようなユーザインターフェースを介してユーザにフィードバックを提供して、所望の画像をキャプチャするために頭を動かすようにユーザに指示することができる。
プロセスは、ユーザの顔の現在のモデルを使用して、眼鏡フレームの対応する画像を生成する(608)。例示的プロセスは、図8A、図8B、及び図9でさらに説明される。
プロセスは、ユーザの顔の新しく記録されたフレームの上に眼鏡フレームの画像を提示する(610)。画像を提示する例は、図4の416である。
ユーザの顔の現在のモデルは、新しい顔のランドマーク又は最近の履歴画像に関連付けられる深度センサデータ等の新しい情報が利用可能であるときに更新することができる。様々な実施形態では、所望の密度又は精度のモデルを生成するために、所定数の姿勢(poses)が必要とされる。しかしながら、ユーザは、時として、頭を早く回し過ぎて、姿勢が完全にキャプチャされないことがある。姿勢が完全にキャプチャされていない場合、ユーザは、姿勢がキャプチャされ得る位置に戻るように促される。図12に関連してさらに説明するように、フィードバックは、GUI上又は別の形式(例えば、音又は触覚フィードバック)で提供され、ユーザに所望の方向を向くように促すことができる。
図7は、眼鏡フレームの対応する画像を生成するためのプロセスの一実施形態を示すフローチャートである。このプロセスは、図6の608などの別のプロセスの一部として実行され得る。このプロセスは、システム100によって実施することができる。例えば、このプロセスは、ユーザの顔の初期モデルが形成された後にユーザが追加の画像を提供する場合に実行されてもよい。
図示の例では、プロセスは、ユーザの顔の現在の向きを取得することによって開始する(702)。現在の向きを決定する例は404である。様々な実施形態では、現在の向きは、深度センサデータを含む、ユーザの顔の新たに記録されたフレームに基づいて判定することができる。様々な実施形態では、向きは、デバイスから取得することができる。デバイス又は第三者によって提供される向きは、向きを改善するために、直接使用されるか、又はさらに処理されることができる。
プロセスは、現在の向きに対応するユーザの顔の現在のモデルを変換する(704)。ユーザの顔の3Dモデルは、現在の向きに対応するように配向されることができる。スケーリングは、図8A、図8B、及び図9に関して本明細書でさらに説明するように、ユーザの顔の現在のモデルを効率的かつ正確に変換するために実行することができる。
プロセスは、ユーザの顔の変換されたモデルを眼鏡フレームのモデルと組み合わせる(706)。変換された頭部のモデルを眼鏡フレームのモデルと組み合わせた例は412である。
プロセスは、組み合わせに少なくとも部分的に基づいて眼鏡フレームの現在の画像を生成する(708)。変換された頭部のモデルを眼鏡フレームのモデルと組み合わせた例は414である。
プロセスは、頭部の変換されたモデルと眼鏡フレームのモデルとの組合せに少なくとも部分的に基づいて眼鏡フレームの現在の画像を生成する(708)。様々な実施形態では、眼鏡フレームの現在の画像は、ユーザが眼鏡フレームを試着していることを示すためにユーザの頭部に表示されるのに適した2D画像である。2D画像は、ユーザの顔と組み合わされると、アーチファクト(artifacts)及びオクルージョンが除去されるように生成され得る。
以下の図(図8A、図8B、及び図9)は、比較的粗い頭部モデル又は比較的細かい頭部モデルのいずれかを使用してスケールを決定するいくつかの例を示す。
図8Aは、比較的粗いモデルを使用して頭部モデルをスケーリングするためのプロセスの一実施形態を図示する、フローチャートである。このプロセスは、図7の704などの別のプロセスの一部として実行され得る。このプロセスは、206によって生成されたモデルなどの粗いモデルを使用してシステム100によって実装され得る。
様々な実施形態では、ユーザの顔の真のスケール及びPD(瞳孔間距離)を決定することができる。例えば、真のスケール及びPDは、1つ以上のRGBカメラ画像、1つ以上の真の深度画像、及びARKitによって提供される3Dジオメトリから、iOS(登録商標)デバイス上で判定することができる。同じ概念はまた、Android(登録商標)デバイス又は3Dジオメトリの深度画像及び較正情報が取得され得る他のプラットフォームにも適用することができる。
プロセスは、2次元(2D)RGB画像及び深度画像を受信することによって開始する(802)。2D RGBは、ユーザの頭部のRGB画像セットに含まれ得る。3D深度画像の一例は、真の深度画像である。様々な実施形態では、プロセスは、APIを介して2D RGB画像及び/又は深度画像を取得する。
オブジェクトの3Dモデルが与えられると、オブジェクトのモデル空間座標を2D画像空間にマッピングすることができる。マッピングの一例は以下の通りである。
[x,y,1]=P[X,Y,Z,1]
ここで、x,yは2D座標であり、P,V,Mはそれぞれ投影行列(射影行列)、ビュー行列、モデル行列であり、X,Y,Zは3Dモデル空間座標である。
モデル行列は、(スケールレス)モデル空間内の座標を実世界座標系に移動させる。次いで、ビュー行列は、オブジェクトがカメラ座標系において表されるように、並進及び回転動作を提供する。顔追跡がオンにされると、ARKitは、顔が低解像度の不正確なメッシュ(数個の頂点)によって表されるモデル空間における顔の表現を提供する。さらに、P行列、V行列、及びM行列も提供され、したがって、ピクセル座標とモデルメッシュ頂点との間のマッピングを得ることができる。(焦点距離及び光学中心から得られる)P行列を仮定すると、画像上の任意の点は、その点の深度情報が利用可能である場合、カメラ座標系(実世界寸法,real world dimensions)において表されることができる。深度センサを備えたデバイスの場合、較正は、様々な実施形態において、深度画像が解像度の差でのみRGB画像に登録されるように行われる。いくつかの実施形態では、解像度の差はない。
プロセスは、2D RGB画像内の2D特徴に関連する座標を見つける(804)。2D特徴の例は、眼の虹彩であり、したがって、座標は、虹彩座標である。2D特徴座標は、機械学習を使用して見つけることができる。2Dにおける虹彩座標は、3Dにおける虹彩点を決定するために使用することができ、虹彩点間の距離は、瞳孔距離を与える。様々な実施形態では、Apple(登録商標)によるARKitの例を使用して、虹彩座標(x、y、z)は、左眼及び右眼のそれぞれに対してARKitを使用することによって判定される。これは、デバイスセンサ情報から決定することができる。
プロセスは、2D RGB画像と深度画像との間の解像度マッピングと、求められた2D特徴座標とを使用して、深度画像内の3D特徴座標を決定する(806)。虹彩点がRGB画像上で決定されると、深度画像から深度情報を得ることができ(場合によっては虹彩点の近傍で何らかの追加処理を行う)、この深度値を投影行列からの焦点距離及び光学中心情報と組み合わせて、虹彩点を実世界寸法で3D座標系で表現することができる。
投影行列は、以下の形式を有する(ARKitから得ることができる)。
投影行列、深度画像内の虹彩座標、深度値、及び深度画像解像度が与えられると、以下の式を用いて、虹彩点を実世界の寸法を持つ3次元座標系で表現することができる。
a=深度_投影_行列[0,0]
c=深度_投影_行列[0,2]
f=深度_投影_行列[l,l]
g=深度_投影_行列[1,2]
m=深度_投影_行列[2,2]
n=深度_投影_行列[2,3]

z=深度_画像[int(マーカ_深度_座標[0]),int(マーカ_深度_座標[1])]
H、W=深度_画像_高さ_以下の深度画像

Y_クリップ=1-(int(マーカ_深度_座標[0])/(H/2.0))
X_クリップ=(int(マーカ_深度_座標[1])/(W/2.0))-1
Z=-z
X=(X_クリップ(-Z)-cZ)/a
Y=(y_クリップ(-Z)-gZ)/f
プロセスは、3D特徴座標を使用して2D空間における実寸法の特徴ペア距離を決定する(808)。例えば、真のPDは、3D特徴座標を使用して決定することができる。実寸法は、ユーザの頭部上の眼鏡フレームの配置を正確に示すのに有用である。
図8Bは、比較的微細なモデルを使用して頭部モデルをスケーリングするためのプロセスの一実施形態を図示するフローチャートである。このプロセスは、図7の704などの別のプロセスの一部として実行され得る。このプロセスは、306(206)によって生成されるような粗いモデルを使用してシステム100によって実装され得る。図8Aのプロセスと比較して、より正確なスケールを決定することができるが、より多くの計算能力を必要とし得る。
頭部回転シーケンス(RGB画像)及びシングルスケール画像(真の深さ及びRGB)が与えられると、頭部の3D再構成のためのスケール(正確な高解像度メッシュは、「Dittoメッシュ」とも呼ばれる)を得ることができる。1つのアプローチは、虹彩点を3D頭部に投影し、3D虹彩間距離を使用して頭部をスケーリングすることである。しかしながら、これは、メッシュ上の2点のみを使用し、非投影(unprojection)又は虹彩検出に誤差がある場合、正確ではない場合がある。別のアプローチは、顔の複数の特徴点を使用し、非投影(3D Dittoメッシュ上の位置)上のペアワイズ距離、及びARKit情報に基づいて3D表現を通して得られるペアワイズ距離を計算することである。同じペアに対応する2つの距離のスケール比は、様々な実施形態において、すべてのペアにわたって一定であると予想される。このスケール比は、以下のように複数のペアを使用することによって、又は代替として、図9に説明されるプロセスを使用することによって推定することができる。
プロセスは、RGB画像に対応する外部情報を使用して3D特徴座標を得るために、深度画像における3D特徴座標を3D頭部モデルに非投影にすることから始まる(812)。3D特徴座標の例としては、虹彩座標が挙げられる。3D頭部モデルの例としては、モデル生成器306によって生成される比較的微細なモデルが挙げられる。ここでは示されていないが、プロセスは、モデル生成器306によって生成されたものなどの3Dメッシュ(ユーザの頭部のモデル)、真の深度(例えば、ARKit)情報、及び/又はカメラ内部情報を受信することによって、図8Aのプロセスのような入力を事前に受信することができる。例えば、カメラエクストリンシックスを使用して、プロセスは、Ditto空間内の3D座標で定義される非投影を使用して、Dittoメッシュ(3D頭部モデル)内の左眼を取得する。同様に、右眼も取得することができる。
プロセスは、3D特徴座標を使用して第1の特徴ペア距離を決定する(814)。第1の特徴ペア距離は、Dittoメッシュに基づく。第1の特徴ペア距離は、ユーザの頭部のDittoメッシュモデルにおける位置上のペアワイズ距離である。
プロセスは、真の深度画像を使用して第2の特徴ペア距離を決定する(816)。第2の特徴ペア距離は、ARKit情報に基づく。第2の特徴ペア距離は、真の深度情報から得られるペアワイズ距離である。
プロセスは、第1の特徴ペア距離と第2の特徴ペア距離との比としてスケール係数を決定する(818)。例えば、第1の特徴ペア距離は、スケール係数(スケール比とも呼ばれる)を得るために、第2の特徴ペア距離によって比較(例えば、除算)される。スケール係数は一定であると予想されるが、それらが正確に同じでなければ、平均を取ることができる。スケール係数は、PD及び真のスケールを決定するために使用され得る。
シングルスケール画像(RGB+真の深度)を使用することによって3D再構成にスケールを追加するためのARKit及び深度情報の使用について説明した。これらの概念は、真の深度デバイス上でライブ試着体験を提供するように拡張することができる。深度画像が与えられると、RGB画像、投影行列、及びビュー行列(カメラエクストリンシックス)、顔の高精度メッシュを決定/取得できる(例えば、現在の方法をDitto 3D再構成アルゴリズムなどの既知の方法に拡張する)。次いで、各新しい画像(RGB及び/又は深度画像+エクストリンシックス)を所与として、初期メッシュ及び所与のエクストリンシックスを精緻化し、正確なライブ試着又はビデオ試着体験をユーザに提供することができる。
図9は、頭部モデルをスケーリング及び生成するためのプロセスの一実施形態を示すフローチャートである。このプロセスは、図7の704などの別のプロセスの一部として実行され得る。このプロセスは、504の画像セット及び関連情報などのカメラ情報を使用してシステム100によって実施することができる。このプロセスは、図8A及び図8Bで説明したプロセスの代替である。様々な実施形態では、ARKit等のフレームワークによって提供される姿勢情報に加えて、キャプチャされる深度画像及びRGB画像は、実寸法を有する頭部メッシュを生成するために使用される。1つの利点は、ビデオ試着(オフライン処理)/改善されたライブ試着を組み込むことによって、既存の情報(姿勢、粗い頭部モデル)を活用し、後で構築することができることである。これは、カメラ情報及び姿勢情報を決定する必要がなくなることによって処理時間を短縮する。
プロセスは、1つ又は複数のRGB画像、1つ又は複数の深度センサ画像、姿勢情報、及びカメライントリニックス(intrinsics)を受信することによって開始する(902)。この情報は、深度センサを有するデバイスによって、及びARKitなどのネイティブフレームワークによって提供されるライブラリを介して生成され得る。例えば、ARKitは、画像に対するエクストリンシックス(extrinsics)であるコアード(coard)頭部モデル及び姿勢情報を提供する。深度センサを有するカメラは、標準RGB画像に対応する深度画像を生成することができる。カメライントリニックスとは、焦点距離などの情報を指す。
プロセスは、カメライントリニックスを使用して、各深度センサ画像内の各ポイントについて実際のスケールにおける3Dポイントを生成する(904)。カメライントリニックスは、カメラの特性に関する情報を提供し、これは、深度センサ画像からの点を実際のスケールにおける3Dポイントにマッピングするために使用することができる。図8Aのプロセス(又はその一部)は、画像内のすべての点/ピクセル(必ずしも虹彩点だけではない)を処理することによって3Dポイントを生成するために適用することができる。
プロセスは、姿勢情報を使用して、画像からの3Dポイントを実際のスケールを持つ点群にマージする(906)。点群は、3D頭部モデルの大まかな領域又は構造を表す。
プロセスは、記憶装置からの過去の頭部スキャンを使用して、点群の形状に合致する実際のスケールを有するユーザの顔のモデルを生成する(908)。生成されたモデルは、ユーザの頭部に対してきれいで正確である。クリーンで正確なユーザの頭部モデルを得るために、スキャン履歴(historical scans)が3D点群に登録される。頭部スキャン履歴は、スキャン履歴のセットを使用することによって集約された統計モデルであり得る。
スケーリング(例えば、図8A、図8B、又は図9のプロセスの結果)を使用して、3D空間における3D頭部モデル(Dittoメッシュ)のサイズを生成又は修正することができる。スケーリングされた頭部は、選択された眼鏡フレーム(例えば、608によって使用される)の2D画像を生成するために使用され得る。
以下の図は、いくつかのグラフィカルユーザインターフェース(GUI)を示す。GUIは、ライブフィッティングプロセスの様々なステップに対応して、図1のクライアントデバイス104のディスプレイ上にレンダリングされ得る。
図10は、いくつかの実施形態において得られるフレーム適合グラフィカルユーザインターフェースの一例を示す。このGUIは、眼鏡フレームがユーザの顔にどの程度良好に適合するかを伝える。眼鏡が最初に顔に(ユーザの顔に関する充分な画像データを収集する前に、)拡張されるとき、特定の眼鏡が様々なエリア(顔の幅、光学中心、鼻梁、及びテンプル)にどのように適合するかを正確に確認するのに充分な顔データが収集されない場合がある。
ユーザが左右に回転すると、顔データが収集されて処理され、頭部の3D理解(ユーザーの顔の3Dモデルの構築)が行われ、各部位にわたる適合を正確に評価することができるようになる。
-図示のように、GUIは、以下のうちの1つ又は複数を伝える。
-適合のための顔要素(ブリッジ、テンプルなど)を強調する。
-特定の顔領域に対する適合が処理されているかどうかを示し、及び/又は完了した処理の程度を示す。
-適合が処理されると、スコア(例えば、赤色、黄色、緑色、ここでは、グレースケール勾配によって表される)が表示されて、眼鏡が特定の顔要素に適合する(適切(suitable)である)度合いを示す。
図11は、いくつかの実施形態で得られるフレームスケールグラフィカルユーザインターフェースの一例を示す。このGUIは、ユーザの顔に対する眼鏡フレームのスケールを伝える。眼鏡が最初に顔上に拡張されるとき、スケール(ユーザの顔に対するフレームの相対的なサイズ)を正確に確認するのに充分な顔データが収集されない可能性がある。様々な実施形態では、眼鏡は、フレームが小さすぎたり大きすぎたりしても、ユーザの顔(1100)に適合するように見えるように、「理想的な」サイズとして最初に表示される。眼鏡の真のスケールは、追加のユーザの顔画像が取得された後に決定することができる(1102)。ユーザの顔のスケール/真のサイズを決定する方法の一例は、図8A、図8B、及び図9に関して説明される。ここで、ユーザが頭を左から右に動かしている間(破線)、眼鏡はユーザの顔をたどり、ユーザ体験は鏡を見ているようなものである。ユーザが回転し、より多くの顔データが収集されるにつれて、眼鏡は、正しいサイズに拡大縮小し、顔により正確に着座/適合する(1104)。ここでは、フレームは、初期の「理想的な」サイズよりも大きいことが判明している。
図12は、いくつかの実施形態において取得される所望の及びキャプチャされた顔角グラフィカルユーザインターフェースの一例を示す。このGUIは、成功裏にキャプチャされた顔の角度及び/又はキャプチャされることが望まれる顔の角度を伝える(例えば、所望の角度はまだ完全には処理されていない)。眼鏡が最初に顔の上に拡張されるとき、特定の眼鏡がキーエリア(key areas)(顔の幅、視覚的中心(optical center)、鼻梁、及びテンプル)にどのように適合するかを正確に確認するのに充分な顔面データが収集されない場合がある。ユーザが左右に回転するにつれて、顔データが収集され、頭部の3D理解を得るために処理されて(ユーザの顔の3Dモデルを構築して)、エリア全体にわたる適合を正確に評価することができる。サイドターンは、クリップ(例えば、ビデオフレーム)をキャプチャし、これにより次に、フレームが拡張されるときに、ユーザがキーアングル(key angles)で自分自身を見ることを可能にする。
GUIは、以下のうちの1つ又は複数を伝える。
-第1の部分では、ユーザが試着している眼鏡フレームを有するユーザの顔の画像を表示する。第2の部分(この例では底部のストリップ)では、キャプチャされた所望の顔の角度を表示する。
-所望の角度を示すインジケータがキャプチャされているが、依然として処理中である(1200)。最初に、前方を向いた画像が望まれるので、インジケータ(円形矢印)は、これがキャプチャされている画像であることを示す。画像がキャプチャされると、インジケータはキャプチャされた画像に置き換えられる(1202)。
-ストリップ内に眼鏡をかけていないユーザの初期(前向き)画像(1202)。
-ストリップ内のガイダンスは、使用者に左右に、又は一方向もしくは別の方向(例えば、左1204~1208又は右1210)に回転するように促す。
-所望の角度が処理されるときの眼鏡をかけないユーザの画像は、1202~1210の下のストリップに示される。
図13は、いくつかの実施形態において得られる分割画面グラフィカルユーザインターフェースの一例を示す。このGUIにより、ユーザは、画面のある部分でのライブ試着と画面の別の部分でのビデオ試着の両方を見ることができる。様々な実施形態では、デフォルト表示はライブ試着(リアルタイムで顔に拡張されたフレーム)である。ユーザが必要な角度をキャプチャするために回転すると、画像はビデオベースの試着のために処理される。処理中は分割画面が表示される。処理が完了すると、ビデオ試着が見えるようになる。ユーザは、ライブ試着とビデオ試着とを切り替えるためにスライダをドラッグすることができる。
図14は、いくつかの実施形態において取得された様々な眼鏡フレームを表示するためのグラフィカルユーザインターフェースの一例を示す。このGUIは、ライブ試着及び/又はビデオ試着のために使用することができる。
例えば、ライブ試着の場合、初期画面はライブ試着(リアルタイムで顔に拡張されたフレーム)である。ストリップには、他の選択された又は推奨されたフレームもライブ試着として表示する。様々な実施形態では、メイン試着及びストリップ試着は、同じライブフィード(live feeds)であるが、異なるフレームを特徴とする。ユーザは、ストリップを上下にスワイプして、異なるフレームを見ることができる。
例えば、ビデオ試着の場合、初期画面はライブ試着(リアルタイムで顔に拡張されたフレーム)である。ストリップには、ビデオ試着として、その他に選択されたフレームまたは推奨フレームが表示される。試着が処理されると、ストリップが現れる。各ビデオ試着は、独立して操作(interacted)することができる。ユーザは、ストリップを上下にスワイプして、異なるフレームを見ることができる。
図15は、いくつかの実施形態において取得された挿入を有するグラフィカルユーザインターフェースの一例を示す図である。眼鏡が最初に顔の上に拡張されるとき、特定の眼鏡がキーエリア(顔の幅、視覚的中心、鼻梁、及びテンプル)にどのように適合するかを正確に確認するのに充分な顔面データが収集されない場合がある。ユーザが左右に回転すると、顔データが収集され、頭部の3D理解を得るために処理されて(ユーザの顔の3Dモデルを構築する)、エリア全体にわたる適合を正確に評価することができる。
加えて、サイドターンは、クリップ(ビデオフレーム)をキャプチャし、これにより、次に、フレームが拡張されるときに、ユーザがキーアングルで自分自身を見ることを可能にする。
GUIは、以下のうちの1つ又は複数を伝える。
-初期画面は、ライブ試着(リアルタイムで顔に拡張されたフレーム)である(1500)。
-挿入画像は、必要なフレームが受信され処理された範囲を表す処理されたビデオ試着を示す。
-ビデオ試着が処理されるにつれて、挿入画像はより明瞭になる(1500~1506の進行)。
本明細書に開示される技術は、異なる眼鏡をかけた頭部及び顔の異なる姿勢を伴うライブ仮想ミラーセッションからの様々な画像及び画像シーケンスを保存する能力を含む、従来のライブ試着製品を上回る多くの利点を有する。本明細書で開示される技術は、異なるフレームを着用したユーザの自然な動きを表す画像シーケンスを作成する能力を提供する。様々な実施形態では、フィッティング情報、(一連の)画像及び同等物が、セッションから保存され、ライブセッションが終了した後でも、追加の異なるタイプのフレームをユーザに示すために使用される。
本明細書に開示される技術は、眼鏡プロセス/システム用の他のタイプのビデオ試着と統合することができる。このビデオ試着アプローチは、新しい眼鏡を購入することに関心がある人々が、異なる眼鏡のペアでどのように見えるかを確認するための非常に有用な方法であることが証明されている。この使用のケースでは、ユーザは、画像を記録し、分析のためにアップロードし、次いで、記録された画像が保存され、ユーザの顔の3D再構成を作成するために使用される。これらの画像は、後で使用するために保存され、顔の3Dモデルは、ユーザの要求に応じて、様々な異なる眼鏡フレームを利用するその後のレンダリング要求のために保存される。
前述の実施形態は、理解を明確にする目的である程度詳細に説明されているが、本発明は、提供される詳細に限定されるものではない。本発明を実施するための多くの代替方法が存在する。開示された実施形態は、例示的なものであり、限定的なものではない。

Claims (22)

  1. システムであって、プロセッサが、
    ユーザの顔の現在のモデルを更新することに関連するイベントを決定し、
    前記イベントに応答して、前記ユーザの顔の履歴記録フレームのセットを使用して前記ユーザの顔の前記現在のモデルを更新し、
    前記ユーザの顔の新しく記録されたフレームを取得し、
    前記ユーザの顔の前記現在のモデルからの少なくとも3つのポイントを使用して顔の法線ベクトルを決定し、
    前記ユーザの顔の前記現在のモデルからの2つの眉点と2つの眼の内側の隅に基づいてブリッジシフト値を決定し、
    前記顔の法線ベクトルと前記ブリッジシフト値に基づいて、計算されたブリッジポイントのセットを決定し、
    前記計算されたブリッジポイントのセットに基づいて、前記ユーザの顔の前記現在のモデルを使用して、眼鏡フレームの対応する画像を生成し、
    前記ユーザの顔の前記新しく記録されたフレームの上に前記眼鏡フレームの画像を提示するように構成されるプロセッサと、
    前記プロセッサに結合され、前記プロセッサに命令を提供するように構成されるメモリとを備える、システム。
  2. 前記イベントは、経過時間、閾値を満たす前記新しく記録されたフレームの数、又は前記ユーザの顔の検出された向きに少なくとも部分的に基づくことを特徴とする、請求項1に記載のシステム。
  3. 前記ユーザの顔の前記履歴記録フレームのセットは、時間閾値内の記録フレームを含む、請求項1に記載のシステム。
  4. 前記ユーザの顔の前記現在のモデルは、デバイスによって収集された深度センサデータから取得される、請求項1に記載のシステム。
  5. 前記ユーザの顔の前記現在のモデルは、過去のユーザの顔に少なくとも部分的に基づいて生成される、請求項1に記載のシステム。
  6. 前記ユーザの顔の前記現在のモデルを以下のステップにより更新することをさらに含むシステムであって、
    前記ユーザの顔の現在の向きを取得するステップと、
    前記現在の向きに対応する前記ユーザの顔の前記現在のモデルを変換するステップと、
    前記ユーザの顔の変換されたモデルを前記眼鏡フレームのモデルと組み合わせるステップと、
    前記ユーザの顔の変換されたモデルと前記眼鏡フレームのモデルとの前記組み合わせに少なくとも部分的に基づいて前記眼鏡フレームの現在の画像を生成するステップと、
    により更新することをさらに含む、請求項1に記載のシステム。
  7. 前記現在の向きに対応する前記ユーザの顔の前記現在のモデルを変換することは、以下のステップにより前記ユーザの顔をスケーリングすることを含む、システムであって、
    2次元(2D)RGB画像及び深度画像を受信するステップと、
    前記2D RGB画像における2D特徴に関連する座標を求めるステップと、
    前記2D RGB画像及び前記深度画像と見出された前記2D特徴に関連する座標との間の解像度マッピングを使用して、前記深度画像における3D特徴座標を決定するステップと、
    前記3D特徴座標を使用して、2D空間における実寸法特徴ペア距離を決定するステップと、
    を含む、請求項6に記載のシステム。
  8. 前記現在の向きに対応する前記ユーザの顔の前記現在のモデルを変換することは、以下のステップにより、前記ユーザの顔をスケーリングすることを含むシステムであって、
    2次元(2D)RGB画像及び深度画像を受信するステップと、
    前記深度画像における3D特徴座標を3D頭部モデルに非投影にして、RGB画像に対応する外部情報を使用して3D特徴座標を取得するステップと、
    前記3D特徴座標を使用して第1の特徴ペア距離を決定するステップと、
    前記深度画像を使用して第2の特徴ペア距離を決定するステップと、
    スケール係数を、前記第1の特徴ペア距離及び前記第2の特徴ペア距離の比率として決定するステップと、
    により、前記ユーザの顔をスケーリングすることを含む、請求項6に記載のシステム。
  9. 前記現在の向きに対応する前記ユーザの顔の前記現在のモデルを変換することは、以下のステップにより前記ユーザの顔をスケーリングすることを含むシステムであって、
    1つ以上のRGB画像、1つ以上の深度センサ画像、姿勢情報、及びカメライントリニックスを受信するステップと、
    各深度センサ画像における各ポイントについて、カメライントリニックスを使用して、実際のスケールで3Dポイントを生成するステップと、
    姿勢情報を使用して、画像からの3Dポイントを実際のスケールで点群にマージするステップと、
    記憶装置からの履歴頭部スキャンを使用して、前記点群の形状に合致する実際のスケールで前記ユーザの顔のモデルを生成するステップと、
    生成された前記ユーザの顔の前記モデルを使用して、前記眼鏡フレームの対応する画像を生成するステップと、により前記ユーザの顔をスケーリングすることを含む、請求項6に記載のシステム。
  10. 前記ユーザの顔のフレームを記録するように構成されるカメラを含むシステムであって、前記カメラは、少なくとも1つの深度センサを含む前記カメラをさらに含む、請求項1に記載のシステム。
  11. 前記ユーザの顔の前記新しく記録されたフレームの上に前記眼鏡フレームの画像を提示することは、グラフィカルユーザインターフェース内の前記ユーザの顔の前記新しく記録されたフレーム上に前記眼鏡フレームの画像をレンダリングすることを含む、請求項1に記載のシステム。
  12. 前記ユーザの顔の前記新たに記録されたフレームを取得することは、キャプチャされた顔の角度及びまだ完全に処理されていない顔の角度のうちの少なくとも1つに関するフィードバックを前記ユーザに表示することを含む、請求項1に記載のシステム。
  13. 前記プロセッサは、前記ユーザの顔の少なくとも1つのエリアに対する適合度に関する情報を提示するようにさらに構成されることを特徴とする、請求項1に記載のシステム。
  14. 前記ユーザの顔の前記新しく記録されたフレームを取得することと、前記ユーザの顔の前記新しく記録されたフレーム上に前記眼鏡フレームの前記画像を提示することとは、実質的に同時に実行されることを特徴とする、請求項1に記載のシステム。
  15. 前記プロセッサは、前記ユーザの顔の以前に記録されたフレーム上に前記眼鏡フレームの画像を提示するようにさらに構成されることを特徴とする、請求項1に記載のシステム。
  16. 前記ユーザの顔の以前に記録されたフレーム上の前記眼鏡フレームの前記画像と、前記ユーザの顔の前記新たに記録されたフレーム上の前記眼鏡フレームの前記画像とが、並べて提示されることを特徴とする、請求項15に記載のシステム。
  17. 前記プロセッサは、
    前記眼鏡フレームのセレクションの中から特定の前記眼鏡フレームのユーザ選択を受信し、
    前記ユーザの顔の前記新しく記録されたフレーム上に特定の前記眼鏡フレームの前記画像を提示するようにさらに構成される、請求項1に記載のシステム。
  18. 前記プロセッサは、前記ユーザの顔の前記新しく記録されたフレームを取得する進捗状況を出力するようにさらに構成されることを特徴とする、請求項1に記載のシステム。
  19. プロセッサは、ユーザの頭部の画像セットを取得し、
    前記ユーザの頭部の初期配向を決定し、
    前記ユーザの頭部の初期モデルを取得し、
    前記初期配向に対応する前記ユーザの頭部の前記初期モデルを変換し、
    眼鏡フレームのユーザ選択を受信し、
    前記ユーザの頭部の変換モデルからの少なくとも3つのポイントを使用して、顔の法線ベクトルを決定し、
    前記ユーザの頭部の前記変換モデルからの2つの眉点と2つの眼の内側の隅に基づいて、ブリッジシフト値を決定し、
    前記顔の法線ベクトルと前記ブリッジシフト値に基づいて、計算されたブリッジポイントのセットを決定し、
    前記計算されたブリッジポイントのセットに基づいて、前記ユーザの頭部の変換されたモデルを前記眼鏡フレームのモデルと組み合わせ、
    前記ユーザの頭部の変換されたモデルと前記眼鏡フレームのモデルとの組み合わせに少なくとも部分的に基づいて前記眼鏡フレームの画像を生成し、
    前記ユーザの頭部の画像セットの少なくとも1つの画像上に前記眼鏡フレームの画像をオーバーレイすることを含むプレゼンテーションを提供するように構成されるプロセッサと、
    前記プロセッサに結合され、前記プロセッサに命令を提供するように構成されるメモリと、を備えるシステム。
  20. プロセッサは、
    1つ以上のRGB画像、1つ以上の深度センサ画像、姿勢情報、及びカメライントリニックスを受信し、
    各深度センサ画像における各ポイントについて、カメライントリニックスを使用して、実際のスケールで3Dポイントを生成し、
    姿勢情報を使用して、画像からの3Dポイントを実際のスケールで点群にマージし、
    記憶装置からの履歴頭部スキャンを使用して、前記点群の形状に合致する実際のスケールで3D頭部モデルを生成し、
    前記3D頭部モデルからの少なくとも3つのポイントを使用して顔の法線ベクトルを決定し
    前記3D頭部モデルからの2つの眉点と2つの眼の内側の隅に基づいてブリッジシフト値を決定し
    前記顔の法線ベクトルと前記ブリッジシフト値に基づいて、計算されたブリッジポイントのセットを決定し
    生成された前記3D頭部モデル及び前記計算されたブリッジポイントのセットを使用して、眼鏡フレームの対応する画像を生成するように構成されるプロセッサと、
    前記プロセッサに結合され、前記プロセッサに命令を提供するように構成されたメモリと、を備えるシステム。
  21. ユーザの顔の現在のモデルを更新することに関連するイベントを決定するステップと、
    前記イベントに応答して、前記ユーザの顔の履歴記録フレームセットを使用して、前記ユーザの顔の前記現在のモデルを更新するステップと、
    前記ユーザの顔の新たに記録されたフレームを取得するステップと、
    前記ユーザの顔の前記現在のモデルを使用して、眼鏡フレームの対応する画像を生成するステップと、
    前記ユーザの顔の前記現在のモデルからの少なくとも3つのポイントを使用して顔の法線ベクトルを決定し、
    前記ユーザの顔の前記現在のモデルからの2つの眉点と2つの眼の内側の隅に基づいてブリッジシフト値を決定し、
    前記顔の法線ベクトルと前記ブリッジシフト値に基づいて、計算されたブリッジポイントのセットを決定し、
    前記計算されたブリッジポイントのセットに基づいて、前記ユーザの顔の前記新しく記録されたフレーム上に前記眼鏡フレームの画像を提示するステップと、を含む方法。
  22. 非一時的なコンピュータ可読媒体において具現化されたコンピュータプログラム製品であって、ユーザの顔の現在のモデルを更新することに関連するイベントを決定し、
    前記イベントに応答して、前記ユーザの顔の履歴記録フレームセットを使用して、前記ユーザの顔の前記現在のモデルを更新し、
    前記ユーザの顔の新たに記録されたフレームを取得し、
    前記ユーザの顔の前記現在のモデルを使用して、眼鏡フレームの対応する画像を生成し、
    前記ユーザの顔の前記現在のモデルからの少なくとも3つのポイントを使用して顔の法線ベクトルを決定し、
    前記ユーザの顔の前記現在のモデルからの2つの眉点と2つの眼の内側の隅に基づいてブリッジシフト値を決定し、
    前記顔の法線ベクトルと前記ブリッジシフト値に基づいて、計算されたブリッジポイントのセットを決定し、
    前記計算されたブリッジポイントのセットに基づいて、前記ユーザの顔の前記新しく記録されたフレーム上に前記眼鏡フレームの画像を提示するためのコンピュータ命令を含む、非一時的なコンピュータ可読媒体において具現化されたコンピュータプログラム製品。
JP2022550785A 2020-02-21 2021-02-19 ライブフィッティングを含む眼鏡フレームのフィッティング Active JP7713949B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062979968P 2020-02-21 2020-02-21
US62/979,968 2020-02-21
PCT/US2021/018891 WO2021168336A1 (en) 2020-02-21 2021-02-19 Fitting of glasses frames including live fitting

Publications (2)

Publication Number Publication Date
JP2023515517A JP2023515517A (ja) 2023-04-13
JP7713949B2 true JP7713949B2 (ja) 2025-07-28

Family

ID=77367178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022550785A Active JP7713949B2 (ja) 2020-02-21 2021-02-19 ライブフィッティングを含む眼鏡フレームのフィッティング

Country Status (7)

Country Link
US (1) US11960146B2 (ja)
EP (1) EP4106984A4 (ja)
JP (1) JP7713949B2 (ja)
AU (1) AU2021224864A1 (ja)
CA (1) CA3171478A1 (ja)
IL (1) IL295775A (ja)
WO (1) WO2021168336A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949648B1 (en) * 2018-01-23 2021-03-16 Snap Inc. Region-based stabilized face tracking
US20220343406A1 (en) * 2021-04-23 2022-10-27 Yixian Gu Exact-Frame-Fit technology using FD and PD to control try-on model image rendering at online eyeglasses e-commerce website and Web-development application
CN114419703A (zh) * 2021-12-31 2022-04-29 北京怡和嘉业医疗科技股份有限公司 面罩的虚拟佩戴方法、装置、终端设备及可读存储介质
US20230230331A1 (en) * 2022-01-03 2023-07-20 Qualcomm Incorporated Prior based generation of three-dimensional models
CN114355627B (zh) * 2022-01-05 2023-06-30 北京蜂巢世纪科技有限公司 一种镜腿长度调整方法、装置、电子设备及存储介质
CN114489404A (zh) * 2022-01-27 2022-05-13 北京字跳网络技术有限公司 一种页面交互方法、装置、设备以及存储介质
US12136178B2 (en) * 2022-02-09 2024-11-05 Google Llc Validation of modeling and simulation of virtual try-on of wearable device
US12008711B2 (en) * 2022-02-09 2024-06-11 Google Llc Determining display gazability and placement of virtual try-on glasses using optometric measurements
WO2023215397A1 (en) * 2022-05-03 2023-11-09 Ditto Technologies, Inc. Systems and methods for scaling using estimated facial features

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060078172A1 (en) 2004-06-03 2006-04-13 Arizona Board Of Regents, A Body Corporate Of The State Of Arizona 3D face authentication and recognition based on bilateral symmetry analysis
US20160035133A1 (en) 2014-07-31 2016-02-04 Ulsee Inc. 2d image-based 3d glasses virtual try-on system
US20160217609A1 (en) 2015-01-22 2016-07-28 Ditto Technologies, Inc. Rendering glasses shadows
JP2016537716A (ja) 2013-08-22 2016-12-01 ビスポーク, インコーポレイテッド カスタム製品を創作するための方法及びシステム

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845641A (en) 1986-09-19 1989-07-04 Hoya Corporation Method of forming a synthetic image in simulation system for attachment of spectacles
FR2719463B1 (fr) 1994-05-03 1996-07-26 Essilor Int Procédé de métrologie optique.
JP3250184B2 (ja) 1998-02-03 2002-01-28 剛 西郷 眼鏡装用シミュレーションシステム
JP3342423B2 (ja) 1998-10-09 2002-11-11 ホーヤ株式会社 眼光学系のシミュレーション装置
US6583792B1 (en) 1999-11-09 2003-06-24 Newag Digital, Llc System and method for accurately displaying superimposed images
US7016824B2 (en) 2001-02-06 2006-03-21 Geometrix, Inc. Interactive try-on platform for eyeglasses
US20040062520A1 (en) * 2002-09-27 2004-04-01 Koninklijke Philips Electronics N.V. Enhanced commercial detection through fusion of video and audio signatures
EP2072004A1 (en) 2007-12-19 2009-06-24 Essilor International (Compagnie Generale D'optique) Method of simulating blur in digitally processed images
EP2037314B1 (en) 2007-12-28 2021-12-01 Essilor International A method and computer means for choosing spectacle lenses adapted to a frame
EP2028529B1 (en) 2007-12-28 2020-09-09 Essilor International Method of calculating an optical system according to a given spectacle frame
JP2010108475A (ja) 2008-10-03 2010-05-13 Sony Corp 画像処理装置および方法、プログラム、並びに記録媒体
WO2010119183A1 (fr) 2009-04-17 2010-10-21 Essilor International (Compagnie Générale d'Optique) Procédé de détermination d'une lentille ophtalmique
FR2955409B1 (fr) 2010-01-18 2015-07-03 Fittingbox Procede d'integration d'un objet virtuel dans des photographies ou video en temps reel
FR2957511B1 (fr) 2010-03-19 2021-09-24 Fittingbox Procede et dispositif de mesure de distance inter-pupillaire
FR2971873B1 (fr) 2011-02-22 2014-01-03 Fittingbox Procede de detection d'un ensemble predefini de points caracteristiques d'un visage
EP2689396A4 (en) * 2011-03-21 2015-06-03 Intel Corp PROCESS FOR ADVANCED CHANGES WITH 3D FACE MODELING AND MARKING ALIGNMENT
WO2013027755A1 (ja) 2011-08-24 2013-02-28 Hoya株式会社 眼鏡装用シミュレーション方法、プログラム、装置、眼鏡レンズ発注システム及び眼鏡レンズの製造方法
FR2980681A3 (fr) 2011-09-29 2013-04-05 Fittingbox Procede de determination des mesures oculaires et optiques d'interet pour la fabrication et le montage de verre de lunettes correcteurs, a l'aide d'une camera en contexte non controle
US9236024B2 (en) 2011-12-06 2016-01-12 Glasses.Com Inc. Systems and methods for obtaining a pupillary distance measurement using a mobile computing device
EP2629140B1 (en) 2012-02-16 2019-08-14 Hoya Corporation Simulation system for wearing spectacles, simulation device for wearing spectacles and simulation program for wearing spectacles
US11263823B2 (en) * 2012-02-24 2022-03-01 Matterport, Inc. Employing three-dimensional (3D) data predicted from two-dimensional (2D) images using neural networks for 3D modeling applications and other applications
FR2987919B1 (fr) 2012-03-08 2014-03-07 Essilor Int Procede d'estimation d'une distance separant une paire de lunettes et un oeil du porteur de la paire de lunettes
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
US9311746B2 (en) 2012-05-23 2016-04-12 Glasses.Com Inc. Systems and methods for generating a 3-D model of a virtual try-on product
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
US9286715B2 (en) 2012-05-23 2016-03-15 Glasses.Com Inc. Systems and methods for adjusting a virtual try-on
US9483853B2 (en) 2012-05-23 2016-11-01 Glasses.Com Inc. Systems and methods to display rendered images
US9967555B2 (en) 2012-05-25 2018-05-08 Hoya Corporation Simulation device
EP2886040B1 (en) 2012-08-20 2018-01-10 HOYA Corporation Simulation device, simulation system, simulation method and simulation program
KR101748976B1 (ko) 2013-02-06 2017-06-19 호야 가부시키가이샤 시뮬레이션 시스템, 시뮬레이션 장치 및 상품 설명 보조 방법
ES2886136T3 (es) 2013-06-06 2021-12-16 6 OVER 6 VISION Ltd Sistema para la medición del error de refracción de un ojo basado en la medición subjetiva de distancias
FR3008805B3 (fr) 2013-07-16 2015-11-06 Fittingbox Procede de determination de mesures oculaires avec un capteur grand public
US9342877B2 (en) 2013-08-22 2016-05-17 Glasses.Com Inc. Scaling a three dimensional model using a reflection of a mobile device
US9774839B2 (en) 2013-08-30 2017-09-26 Glasses.Com Inc. Systems and methods for color correction of images captured using a mobile computing device
FR3012952B1 (fr) 2013-11-08 2015-11-06 Essilor Int Methode de determination d'au moins un parametre de conception optique d'une lentille ophtalmique progressive
FR3013132B1 (fr) 2013-11-08 2017-01-20 Essilor Int Methode de determination d'au moins un parametre de conception optique pour une lentille ophtalmique progressive
FR3016052B1 (fr) 2014-01-02 2018-03-30 Essilor International Procede de determination d'une definition geometrique d'un equipement optique personnalise
FR3016050B1 (fr) 2014-01-02 2017-12-08 Essilor Int Procede d’ajustage d’une monture de lunettes predeterminee pour son utilisation par un porteur donne
WO2015172097A1 (en) 2014-05-08 2015-11-12 Glasses.Com Inc. Systems and methods for determining pupillary distance and scale
AU2015255730A1 (en) 2014-05-08 2016-11-24 Luxottica Retail North America Inc. Systems and methods for scaling an object
FR3021204A1 (fr) 2014-05-20 2015-11-27 Essilor Int Procede de determination d'au moins un parametre de comportement visuel d'un individu
FR3021443B1 (fr) 2014-05-20 2017-10-13 Essilor Int Procede de construction d'un modele du visage d'un individu, procede et dispositif d'analyse de posture utilisant un tel modele
CN107408315B (zh) 2015-02-23 2021-12-07 Fittingbox公司 用于实时、物理准确且逼真的眼镜试戴的流程和方法
EP3295146B1 (en) 2015-05-10 2024-03-13 6 Over 6 Vision Ltd Apparatus, system and method of determining one or more optical parameters of a lens
US10670494B2 (en) 2015-05-10 2020-06-02 6 Over 6 Vision Ltd. Apparatus, system and method of determining one or more optical parameters of a lens
CN107847128B (zh) 2015-05-11 2020-11-10 6超越6视觉有限公司 确定瞳孔距离的装置、系统和方法
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
US11852559B2 (en) 2019-01-10 2023-12-26 6 Over 6 Vision Ltd. Apparatus, system, and method of determining one or more parameters of a lens
IL285096B2 (en) 2019-01-24 2025-09-01 6 OVER 6 VISION Ltd Device, system and method for determining one or more refractive error parameters of an eye under examination
JP7055762B2 (ja) * 2019-03-05 2022-04-18 アルパイン株式会社 顔特徴部検出装置、顔特徴部検出方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060078172A1 (en) 2004-06-03 2006-04-13 Arizona Board Of Regents, A Body Corporate Of The State Of Arizona 3D face authentication and recognition based on bilateral symmetry analysis
JP2016537716A (ja) 2013-08-22 2016-12-01 ビスポーク, インコーポレイテッド カスタム製品を創作するための方法及びシステム
US20160035133A1 (en) 2014-07-31 2016-02-04 Ulsee Inc. 2d image-based 3d glasses virtual try-on system
US20160217609A1 (en) 2015-01-22 2016-07-28 Ditto Technologies, Inc. Rendering glasses shadows

Also Published As

Publication number Publication date
US20210264684A1 (en) 2021-08-26
AU2021224864A1 (en) 2022-09-29
EP4106984A1 (en) 2022-12-28
CA3171478A1 (en) 2021-08-26
US11960146B2 (en) 2024-04-16
WO2021168336A1 (en) 2021-08-26
EP4106984A4 (en) 2024-03-20
JP2023515517A (ja) 2023-04-13
IL295775A (en) 2022-10-01

Similar Documents

Publication Publication Date Title
JP7713949B2 (ja) ライブフィッティングを含む眼鏡フレームのフィッティング
US11783557B2 (en) Virtual try-on systems and methods for spectacles
US9990780B2 (en) Using computed facial feature points to position a product model relative to a model of a face
JP4473754B2 (ja) 仮想試着装置
CN105210093B (zh) 捕获和显示外观的装置、系统和方法
JP2023516678A (ja) マルチビュー画像からのエンドツーエンド場面再構築のためのシステムおよび方法
KR101560508B1 (ko) 3차원 이미지 모델 조정을 위한 방법 및 장치
CN110648274B (zh) 鱼眼图像的生成方法及装置
US20140168217A1 (en) Method of fitting virtual item using human body model and system for providing fitting service of virtual item
EP3101624A1 (en) Image processing method and image processing device
US20120194513A1 (en) Image processing apparatus and method with three-dimensional model creation capability, and recording medium
CN118071968B (zh) 一种基于ar技术的智能交互深展示方法及系统
US20200160556A1 (en) Systems and methods for visualizing eyewear on a user
TWI433049B (zh) 眼鏡虛擬試戴互動服務系統與方法
CN119156632A (zh) 基于预估面部特征的缩放系统和方法
EP2462564B1 (en) Representation of complex and/or deformable objects, and virtual fitting of wearable objects
CN112561784A (zh) 图像合成方法、装置、电子设备及存储介质
CN113115024B (zh) 一种3d信息采集设备
CN119620855A (zh) 轨迹获取方法、装置和系统
JP4781981B2 (ja) 動画像生成方法及びシステム
EP4227731A1 (en) Method and mobile device for determining a visual point of a person
CN121056730A (zh) 图像处理方法、装置及电子设备
CN120429056A (zh) 显示控制方法及装置、计算机程序产品和电子设备
WO2002063568A1 (fr) Procede et systeme de creation de mouvements virtuels et coordonnes par enchainement de points de vue

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20241009

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241022

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20250122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20250324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250407

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250617

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250715

R150 Certificate of patent or registration of utility model

Ref document number: 7713949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150