(57)【要約】【課題】眼鏡などのアイテムの仮想試着のためのシステム、方法及び機械可読媒体に関する。【解決手段】  仮想試着インターフェースは、サーバ又はユーザデバイスにおいて実施され得るものであり、眼鏡の３次元モデルとユーザの顔の３次元モデルとの間の衝突検出を用いて仮想試着のための眼鏡の正しいサイズ及び位置を決定する。決定されたサイズ及び位置によって、眼鏡の仮想表現が、ユーザの画像に重畳される。【選択図】図４
2021534516.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータによって実行される方法であって、
電子デバイスのカメラによってユーザの顔の画像を撮影するステップと、
前記電子デバイスのセンサを用いて、前記ユーザの３次元位置情報を取得するステップと、
眼鏡の３次元モデルを取得するステップと、
前記画像及び前記３次元位置情報に基づいて前記眼鏡の仮想表現の位置を決定するステップと、
前記画像及び前記３次元位置情報に基づいて前記眼鏡の前記仮想表現のサイズを決定するステップと、
前記電子デバイスのディスプレイによって、前記ユーザの前記画像及び前記眼鏡の前記仮想表現を含む合成画像を前記決定されたサイズ及び前記決定された位置で表示するステップと
を備える、前記コンピュータによって実行される方法。
【請求項２】
前記眼鏡の前記仮想表現の前記サイズ及び前記位置は、前記眼鏡が前記ユーザの前記顔上に物理的に載置されて見えるように、前記合成画像において前記眼鏡の前記サイズ及び前記眼鏡の前記位置を正確に表すようにそれぞれ決定される、請求項１に記載のコンピュータによって実行される方法。
【請求項３】
前記サイズを決定するステップは、
前記３次元位置情報を用いて、前記ユーザの前記顔の物理的サイズを決定するステップと、
前記画像及び前記決定された物理的サイズを用いて、画像画素における前記ユーザの前記顔のサイズを決定するステップと、
前記決定された物理的サイズ及び画像画素における前記ユーザの前記顔の前記サイズを用いて前記画像における各画像画素についての画素サイズを決定するステップと、
前記眼鏡の既知のサイズ及び前記決定された画素サイズに基づいて、前記眼鏡の前記仮想表現の前記サイズを決定するステップと
を備える、請求項２に記載のコンピュータによって実行される方法。
【請求項４】
前記眼鏡の前記仮想表現の前記位置を決定するステップが、前記眼鏡の前記３次元モデルを前記ユーザの前記３次元位置情報と交差させるステップを備える、請求項３に記載のコンピュータによって実行される方法。
【請求項５】
前記交差させるステップが、前記眼鏡の前記３次元モデルと前記ユーザの前記３次元位置情報との間の少なくとも１回の衝突検出動作を実行するステップを備える、請求項４に記載のコンピュータによって実行される方法。
【請求項６】
前記少なくとも１回の衝突検出動作を実行するステップが、前記眼鏡の前記３次元モデルについての対応する複数の位置において、前記眼鏡の前記３次元モデルと前記ユーザの前記３次元位置情報との間の複数回の衝突検出動作を反復的に実行するステップを備える、請求項５に記載のコンピュータによって実行される方法。
【請求項７】
前記複数回の衝突検出動作を反復的に実施するステップが、二分探索動作を用いて前記複数の位置を反復的に決定するステップを備える、請求項６に記載のコンピュータによって実行される方法。
【請求項８】
前記ユーザについての前記３次元位置情報は、複数の測定点絶対３次元位置、前記ユーザの３次元モデル及び複数の顔ランドマーク絶対位置のうちの、少なくとも１つを備える、請求項５に記載のコンピュータによって実行される方法。
【請求項９】
前記センサが追加のカメラを備え、前記方法は、
前記電子デバイスの光源によって、少なくとも一部が前記ユーザの前記顔に向けられる複数の光ビームを生成するステップと、
前記光ビームの前記少なくとも一部が前記ユーザの前記顔に向けられつつ、前記追加のカメラを用いて第２の画像を撮影するステップと
をさらに備える請求項８に記載のコンピュータによって実行される方法。
【請求項１０】
前記撮影された第２の画像における前記光ビームの前記少なくとも一部の反射に基づいて前記複数の測定点絶対３次元位置を決定するステップをさらに備える請求項９に記載のコンピュータによって実行される方法。
【請求項１１】
前記センサが追加のカメラを備え、前記方法が、
前記追加のカメラ用いて前記ユーザの追加の画像を撮影するステップと、
前記カメラと前記追加のカメラとの間の既知の距離及び前記画像と前記追加の画像との間の視差効果に基づいて前記ユーザについての前記３次元位置情報を生成するステップと
をさらに備える請求項１に記載のコンピュータによって実行される方法。
【請求項１２】
前記センサが、タイム・オブ・フライトセンサ、レーザ測距装置、モーションセンサ、近接センサ、構造化光センサ及び追加のカメラのうちの少なくとも１つを備える、請求項１に記載のコンピュータによって実行される方法。
【請求項１３】
コンピュータによって実行される方法であって、
ユーザの顔の画像を撮影するステップと、
前記画像の撮影時の前記ユーザの３次元モデルを取得するステップと、
眼鏡の３次元モデルを取得するステップと、
前記画像、前記画像の撮影時の前記ユーザの前記３次元モデル及び前記眼鏡の前記３次元モデルに基づいて前記眼鏡の仮想表現のためのサイズ及び位置を決定するステップと、
前記眼鏡の前記仮想表現を前記決定されたサイズ及び前記決定された位置で前記ユーザの前記顔の前記画像に重畳させて表示するステップと
を備える、前記コンピュータによって実行される方法。
【請求項１４】
前記仮想表現の前記位置を決定するステップが、前記ユーザの前記３次元モデル上の顔ランドマークに原点を有する顔座標系における複数のテスト位置において前記眼鏡の前記３次元モデルを用いて、前記ユーザの前記３次元モデルと前記眼鏡の前記３次元モデルとの間の複数回の衝突検出動作を実行することを備える、請求項１３に記載のコンピュータによって実行される方法。
【請求項１５】
前記顔座標系の前記原点が、前記画像の撮影時の前記ユーザの前記３次元モデルの鼻根にあり、
前記顔座標系のｘ軸は、前記画像の撮影時の前記ユーザの前記３次元モデルの左側と右側の間に延在し、正方向ｘ軸は、前記原点から前記画像の撮影時の前記ユーザの前記３次元モデルの前記左側に向かって延び、
前記顔座標系のｙ軸は、前記ｘ軸に垂直にかつ前記画像の撮影時の前記ユーザの前記３次元モデルの上部と下部の間に延在し、正方向ｙ軸は、前記原点から前記画像の撮影時の前記ユーザの前記３次元モデルの前記上部に向かって延び、
前記顔座標系のｚ軸は、前記ｘ軸及び前記ｙ軸に垂直にかつ前記画像の撮影時の前記ユーザの前記３次元モデルの前方と後方の間に延在し、正方向ｚ軸は、前記原点から前記画像の撮影時の前記ユーザの前記３次元モデルの前記前方に向かって延びる、請求項１４に記載のコンピュータによって実行される方法。
【請求項１６】
前記顔座標系における前記複数のテスト位置の各々は、前記ｙ軸に沿って異なるｙオフセット、前記ｘ軸に沿ってゼロのｘオフセット、及び前記ｚ軸に沿って共通のｚオフセットを有する、請求項１５に記載のコンピュータによって実行される方法。
【請求項１７】
前記眼鏡がアセテートフレームを含む、請求項１６に記載のコンピュータによって実行される方法。
【請求項１８】
前記顔座標系における前記複数のテスト位置の各々は、前記ｚ軸に沿って異なるｚオフセット、前記ｘ軸に沿ってゼロのｘオフセット、及び前記ｙ軸に沿って共通のｙオフセットを有する、請求項１５に記載のコンピュータによって実行される方法。
【請求項１９】
前記眼鏡は、金属フレームであって前記金属フレームから延在する調整可能アーム上に鼻パッドを有する金属フレームを含む、請求項１８に記載のコンピュータによって実行される方法。
【請求項２０】
前記複数のテスト位置は、前記画像の撮影時の前記ユーザの前記３次元モデルが前記眼鏡の前記３次元モデルと接触していない少なくとも１つのテスト位置を含み、前記仮想表現の前記位置を決定するステップは、前記テスト位置を前記顔座標系の前記原点に向かって反復的に移動させるステップ、及び前記画像の撮影時の前記ユーザの前記３次元モデルと前記眼鏡の前記３次元モデルとの間の最初の接触が検出されるまで前記複数回の衝突検出動作を実行するステップを備える、請求項１４に記載のコンピュータによって実行される方法。
【請求項２１】
サーバにおいて、複数の眼鏡の３次元モデルを記憶するステップをさらに備える請求項１３に記載のコンピュータによって実行される方法。
【請求項２２】
前記ユーザの前記３次元モデル及び前記眼鏡の前記３次元モデルに基づいて、前記眼鏡が前記ユーザに合わないサイズであると判定するステップと、
前記ユーザの前記３次元モデルに基づいて前記眼鏡のうちの異なる眼鏡を特定するステップと、
前記眼鏡のうちの前記特定された異なる眼鏡の推奨を提供するステップと
をさらに備える請求項２１に記載のコンピュータによって実行される方法。
【請求項２３】
システムであって、
複数の眼鏡についての３次元モデルを記憶するデータベースを有するサーバと、
ユーザのユーザデバイスと
を備え、
前記ユーザデバイスは、前記ユーザデバイスのプロセッサによって実行されると、前記プロセッサに、
前記ユーザの顔の画像を撮影させ、
前記ユーザの３次元モデルを取得させ、
前記眼鏡のうちの選択された眼鏡の３次元モデルを前記サーバから取得させ、
前記画像、前記ユーザの前記３次元モデル、及び前記眼鏡のうちの前記選択された眼鏡の前記３次元モデルに基づいて、前記眼鏡のうちの前記選択された眼鏡の仮想表現についてのサイズ及び位置を決定させ、
前記眼鏡のうちの前記選択された眼鏡の前記仮想表現を前記決定されたサイズ及び前記決定された位置で前記ユーザの前記顔の前記画像に重畳させて表示用に提供させる
コードを記憶するメモリを含む、前記システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概略として拡張現実に関し、より具体的には眼鏡用仮想試着システム及び方法に関する。
【背景技術】
【０００２】
仮想の対象物が実世界の対象物の画像にデジタル的に重畳される拡張現実アプリケーションが開発されてきた。ある場合では、ユーザがシーンを辿るにつれて、ゲームのキャラクターなどの仮想の対象物が、スマートフォン又はタブレットによって表示されるシーンの画像に付加される。他の場合では、スマートフォン又はタブレットのカメラで撮影された、スマートフォン又はタブレットのユーザの顔の画像に、アニメ動物の顔特徴などのアニメ的特徴が付加される。これらの従来的な拡張現実システムでは、仮想の対象物の漫画的な又はリアル感のない性質が、実世界の対象物に対する仮想の対象物のサイズ、形状、向き及び配置の精度における大きな自由度を可能とする。
【発明の概要】
【０００３】
本開示は、眼鏡フレームの仮想試着（Virtual Try-On(VTO)）のためのシステムを提供する。開示のシステム及び方法は、ＶＴＯインターフェースのユーザに、眼鏡フレームが彼らの顔においてどのように見えるかを、物理的眼鏡フレームを手に取ることなく判定させることを可能とする。開示のシステム及び方法では、彼らの画像がカメラで撮影され、眼鏡フレームの仮想表現が撮影画像に重畳され、合成画像がユーザに示される。
【０００４】
しかし、リアルな仮想試着体験を創出する際に、２つの大きな課題がある。それは（ｉ）特定のユーザの固有の顔の測定及び特徴に対する眼鏡フレームの現実感のあるサイズ取り、並びに（ｉｉ）ユーザの現実の３次元の顔に眼鏡フレームをかけたとした場合の眼鏡フレームの現実感のある位置決めを含む。
【０００５】
本開示の態様によると、これらの課題の双方を克服するシステム及び方法が提供される。例えば、更なる詳細を後述するように、上記課題（ｉ）は、撮影画像におけるユーザの絶対サイズ及び距離を特定することによって少なくともある程度克服可能となり、上記課題（ｉｉ）は、眼鏡フレームの３次元モデルをユーザの顔及び頭部の種々の側面についての３次元位置情報と反復的に交差させることによって克服可能となる。
【０００６】
本開示のある態様によると、コンピュータによって実行される方法が提供される。その方法は、電子デバイスのカメラによってユーザの顔の画像を撮影するステップと、電子デバイスのセンサを用いてユーザの３次元位置情報を取得するステップと、眼鏡の３次元モデルを取得するステップと、画像及び３次元位置情報に基づいて眼鏡の仮想表現の位置を決定するステップと、画像及び３次元位置情報に基づいて眼鏡の仮想表現のサイズを決定するステップと、電子デバイスのディスプレイによって、ユーザの画像及び眼鏡の仮想表現を含む合成画像を決定されたサイズ及び決定された位置で表示するステップとを含む。
【０００７】
本開示のある態様によると、コンピュータによって実行される方法が提供される。その方法は、ユーザの顔の画像を撮影するステップと、画像の撮影時のユーザの３次元モデルを取得するステップと、眼鏡の３次元モデルを取得するステップと、画像、画像の撮影時のユーザの３次元モデル及び眼鏡の３次元モデルに基づいて眼鏡の仮想表現のためのサイズ及び位置を決定するステップと、眼鏡の仮想表現を決定されたサイズ及び決定された位置でユーザの顔の画像に重畳させて表示するステップとを含む。
【０００８】
本開示のある態様によると、複数の眼鏡についての３次元モデルを記憶するデータベースを有するサーバと、ユーザのユーザデバイスとを含むシステムが提供される。ユーザデバイスは、ユーザデバイスのプロセッサによって実行されると、プロセッサに、ユーザの顔の画像を撮影させ、ユーザの３次元モデルを取得させ、眼鏡のうちの選択された眼鏡の３次元モデルをサーバから取得させ、画像、ユーザの３次元モデル及び眼鏡のうちの選択された眼鏡の３次元モデルに基づいて、眼鏡のうちの選択された眼鏡の仮想表現についてのサイズ及び位置を決定させ、眼鏡のうちの選択された眼鏡の仮想表現を決定されたサイズ及び決定された位置でユーザの顔の画像に重畳させて表示用に提供させるコードを記憶するメモリを含む。
【０００９】
主題の技術の他の構成は以下の詳細な説明から当業者に直ちに明らかとなり、主題の技術の種々の構成が例示として図示及び記載されることが理解される。認識されるように、主題の技術は、いずれも主題の技術の範囲から逸脱することなく、他の及び様々な構成を可能とし、その幾つかの詳細は種々の他の点において変形例を可能とする。したがって、図面及び詳細な説明は、例示的性質のものとしてみなされるべきであり、限定的なものとしてみなされるべきではない。
【００１０】
更なる理解を与えるために含まれ、この明細書の一部に取り込まれるとともにそれを構成する添付図面は、開示の実施形態を示し、説明とともに開示の実施形態の原理を説明する役割を果たすものである。
【図面の簡単な説明】
【００１１】
【図１】図１は、本開示の幾つかの実施例を実施するのに適した仮想試着のための例示のアーキテクチャを示す。
【図２】図２は、本開示の所定の態様による仮想試着インターフェースを示す模式図である。
【図３】図３は、本開示の所定の態様による例示の眼鏡を示す。
【図４】図４は、本開示の所定の態様による、ユーザの画像上に眼鏡の仮想表現を表示する仮想試着インターフェースを示す模式図である。
【図５】図５は、本開示の所定の態様による、顔座標系を説明する模式図である。
【図６】図６は、本開示の所定の態様による、眼鏡の３次元モデルとユーザの３次元モデルとの間の埋没接触を説明する模式図である。
【図７】図７Ａは、本開示の所定の態様による、仮想試着のための例示的な物理的配置動作中の顔座標系における眼鏡の３次元モデルに対する種々のテスト位置の１つを示す。図７Ｂは、本開示の所定の態様による、仮想試着のための例示的な物理的配置動作中の顔座標系における眼鏡の３次元モデルに対する種々のテスト位置の１つを示す。図７Ｃは、本開示の所定の態様による、仮想試着のための例示的な物理的配置動作中の顔座標系における眼鏡の３次元モデルに対する種々のテスト位置の１つを示す。図７Ｄは、本開示の所定の態様による、仮想試着のための例示的な物理的配置動作中の顔座標系における眼鏡の３次元モデルに対する種々のテスト位置の１つを示す。
【図８】図８Ａは、本開示の所定の態様による、仮想試着のための他の例示的な物理的配置動作中の顔座標系における眼鏡の３次元モデルに対する種々のテスト位置の１つを示す。図８Ｂは、本開示の所定の態様による、仮想試着のための他の例示的な物理的配置動作中の顔座標系における眼鏡の３次元モデルに対する種々のテスト位置の１つを示す。図８Ｃは、本開示の所定の態様による、仮想試着のための他の例示的な物理的配置動作中の顔座標系における眼鏡の３次元モデルに対する種々のテスト位置の１つを示す。図８Ｄは、本開示の所定の態様による、仮想試着のための他の例示的な物理的配置動作中の顔座標系における眼鏡の３次元モデルに対する種々のテスト位置の１つを示す。
【図９−１０】図９は、本開示の所定の態様による、ユーザの顔又は頭部の一部分と接触する眼鏡の一部分の断面図を示す。図１０は、本開示の所定の態様による、ユーザの顔又は頭部の一部分を圧縮する図９の眼鏡の一部分の断面図を示す。
【図１１】図１１は、本開示の所定の態様による、眼鏡の仮想試着のための例示の処理を示す。
【図１２】図１２は、本開示の所定の態様による、眼鏡の仮想表現のための位置を決定するための例示の処理を示す。
【図１３−１５】図１３は、本開示の所定の態様による、ユーザについての絶対測定位置を取得することを示す模式図である。図１４は、本開示の所定の態様による、ユーザの３次元モデルの２次元レンダリングを示す模式図である。図１５は、本開示の所定の態様による、ユーザについての顔ランドマーク絶対位置を示す模式図である。
【図１６】図１６は、本開示の所定の態様による、図１のユーザデバイス、試着サーバ及び／又は第三者サーバが実施され得る例示のコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【００１２】
以下の詳細な説明では、本開示の完全な理解を与えるように多数の具体的詳細が説明される。ただし、本開示の実施形態はこれらの具体的詳細の一部がなくても実施され得ることは、当業者には明らかとなる。他の事例では、周知の構造及び技術は、本開示を不明瞭としないように、詳細には示されていない。
【００１３】
全体的概要
仮想試着システム及び方法が、ここに開示される。仮想試着システム及び方法は、ユーザが実世界の眼鏡又はフレームを手に取ることなく、眼鏡又は眼鏡フレームが実世界におけるユーザの顔でどのように見えるかを確認するのに特に有用となり得る。ただし、ここに記載されるシステム及び方法は、眼鏡アクセサリ、帽子、イヤリング、他の身体ピアスアクセサリ、宝石、衣服などの仮想試着用などの、ユーザの身体の他の部位上の他の対象物の仮想試着用に適用可能であることも理解されるべきである。ここに開示される仮想試着システム及び方法によって、ユーザは、特定の実世界のアイテムがユーザの特定の身体上で見える態様を可視化することができる。  
【００１４】
一方、リアル感の欠如に苛まされないＶＴＯの実施例を提供することは困難となり得ることが分かってきた。あるシナリオでは、ＶＴＯシステムは、ユーザに関する３次元情報を利用しなくてもよく、したがって画像におけるユーザの顔特徴に対してどのようなサイズで仮想眼鏡を作製するのかを推量することができる。これは、特に画像における又は画像に対する尺度基準がない場合に、ユーザの顔特徴の物理的サイズを画像から推定するのは単純ではないためである。あるＶＴＯシステムは、仮想眼鏡の適切なサイズを決定するためにユーザの頭部が平均的サイズであると仮定することもある。しかし、この種の仮定は、平均よりも小さい又は大きい頭部を有するユーザに対してリアル感のない結果を生成することになる。
【００１５】
またさらに、２次元画像から取得可能でない３次元情報がない場合、ＶＴＯシステムは、どこで眼鏡が顧客の顔に着座するのかを標準的なユーザの標準的な顔特徴に基づいて推量することになる。しかし、実際には、どのように特定の眼鏡が特定のユーザの顔に着座するかの特異性は、眼鏡の前面の正確な形状並びに顧客の鼻及びブリッジの３次元形状の関数となる。したがって、標準的な特徴を用いると、仮定の標準的な特徴とは異なる特徴を有する顧客においてリアル感のない結果がもたらされてしまう。
【００１６】
あるシナリオでは、ＶＴＯシステムは、撮影画像における特定の顔特徴の顔測定値又は識別子をＶＴＯシステムに入力するなど、ユーザが追加情報を提供することを要求し得る。しかし、これらの追加のユーザ入力は不正確でありかつ無用に時間がかかるものであり、それにより、ＶＴＯシステムのユーザはＶＴＯインターフェースを提供するアプリケーション又はウェブサイトから（例えば、競業他社に提供されるＶＴＯシステムへと）離れてしまうことになる。
【００１７】
主題の開示の態様によると、画像におけるユーザの顔のサイズについての情報を備える、ユーザの顔の３次元表現とともにユーザの顔の撮影画像を用いて、実世界の眼鏡の実際の外見のリアルな表現を特定のユーザの顔に与えるＶＴＯシステム及び方法が提供される。撮影画像におけるユーザの顔のサイズは直接測定されるため、ここに記載するＶＴＯシステム及び方法はユーザの顔に対する正しい相対サイズで眼鏡の仮想表現をレンダリングすることができる。眼鏡が実際のユーザの顔にかかっているような、ユーザの顔の画像に対する眼鏡の仮想表現の正確な配置（例えば、位置決め及び／又は向き）を以下にさらに詳細に説明する。
【００１８】
ここに提供される多数の例は、ユーザのデバイス又は物理的特徴は特定及び／又は記憶されているものとして説明するが、各ユーザはそのようなユーザ情報が収集、共有及び／又は記憶されることの明示的な許可を与えることもできる。明示的な許可は、開示されるシステムに統合されるプライバシー管理を用いて許可されてもよい。各ユーザはそのようなユーザ情報が明示の同意で記憶されることの通知を受けることができ、各ユーザは記憶された情報を有することをいつでも終了することができ、いずれかの記憶されたユーザ情報を削除することもできる。記憶されたユーザ情報は、ユーザセキュリティを保護するように暗号化され得る。ここに記載する幾つかの実施形態は、任意の全ての適用可能な州及び／又は連邦規則に応じて、リモートサーバにユーザの生体認証データの一時的記憶から利益を得ることができるが、一般に、ユーザの生体認証データはユーザのデバイスのみで記憶及び処理され、現在のＶＴＯセッションが終了すると破棄される。
【００１９】
ユーザはいつでも、ユーザ情報をメモリから削除し、及び／又はユーザ情報をメモリに記憶させることからオプトアウトすることができる。さらに、ユーザは、いつでも、適切なプライバシー設定を調整してメモリに記憶されたユーザ情報のタイプを選択的に制限することができ、又はユーザ情報が（例えば、サーバ上でリモートに記憶されるのとは逆にユーザのデバイスでローカルに）記憶されるメモリを選択することができる。多数の例において、ユーザ情報は、ユーザによって具体的に提供又は指示されない限り、ユーザの具体的識別（例えば、ユーザの名前）を含まず及び／又は共有しない。
【００２０】
例示のシステムアーキテクチャ
図１は、本開示のある実施例を実施するのに適した、眼鏡の仮想試着のための例示のアーキテクチャ１００を示す。アーキテクチャ１００は、ネットワーク１５０を介して接続される試着サーバ１３０及びユーザデバイス１１０を含む。図示するように、第三者サーバ１４０も、ネットワーク１５０を介して試着サーバ１３０及び／又はユーザデバイス１１０と通信可能に接続され得る。試着サーバ１３０は、ユーザデバイス１１０の１以上を用いて仮想的に試着可能な対象物に関連付けられた情報のデータベース１４２を含み得る。例えば、試着サーバ１３０のデータベース１４２は、（例えば、試着サーバ自体から、物理的に実在する店舗から、又は第三者サーバ１４０などの他のサーバから）購入用に入手可能なレンズ付き又はレンズなしの様々な眼鏡フレームの３次元モデルを含み得る。ある実施例では、試着サーバ１３０は、サーバのプロセッサで実行されると、ここに記載される試着方法及び動作を実行する試着インターフェース（例えば、試着ウェブインターフェース）をプロセッサに提供させるコードも記憶し得る。ある実施例では、試着インターフェースのためのコードはまた、又は代替的に、ユーザデバイス１１０の１以上に記憶されてもよい。これらの実施例では、（例えば、ユーザデバイス上で稼働している試着アプリケーションによって生成される）試着インターフェースを実行するユーザデバイスは、試着サーバ１３０から眼鏡の３次元モデルを取得し、ここに記載されるような試着動作をユーザデバイスにおいて実行し得る。
【００２１】
第三者サーバ１４０は３次元表現が試着サーバ１３０に記憶される眼鏡の販売を扱うサーバを含んでいてもよく、又は第三者サーバ１４０は、試着サーバ１３０及び／又はユーザデバイス１１０によって提供された試着インターフェースを用いて（例えば、他の対象物の３次元モデルをデータベース１４４に記憶し、３次元モデルを試着サーバ１３０及び／又はユーザデバイス１１０に提供することによって）試着可能な他の対象物の３次元表現を記憶してもよい。
【００２２】
試着サーバ１３０の各々は、試着インターフェースをホスティングし及び／又は眼鏡若しくは他の対象物の３次元モデルを記憶するための適切なプロセッサ、メモリ及び通信機能を有する任意のデバイスで実施可能である。ユーザデバイス１１０は、例えば、デスクトップコンピュータ、ラップトップコンピュータなどのモバイルコンピュータ、タブレットコンピュータ（例えば、電子書籍リーダを含む）、モバイル電子デバイス（例えば、スマートフォン、タブレット又はＰＤＡ）又は仮想試着インターフェースを提供するための適切な撮像（例えば、可視光撮像及び／又は赤外撮像）、照明（例えば、可視光照明及び／又は赤外光照明）、プロセッサ、メモリ及び通信の機能を有する他の任意のデバイスであり得る。ネットワーク１５０は、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネットなどのうちのいずれか１つ以上を含み得る。また、ネットワーク１５０は、これに限定されないが、以下のバスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スターバスネットワーク、ツリー又は階層ネットワークなどを含むネットワークトポロジーのうちのいずれか１つ以上を含み得る。
【００２３】
例示の仮想試着（ＶＴＯ）インターフェース
図２は、ユーザデバイス１１０の１つで稼働する仮想試着（ＶＴＯ）インターフェース２０２を示す模式図である。仮想試着インターフェース２０２は、試着サーバ１３０などのリモートデバイスにおいて実行されているコードに基づくウェブインターフェースであってもよいし、ユーザデバイス自体において稼働するローカル仮想試着アプリケーションであってもよい。
【００２４】
図２の例では、ユーザの画像２００が（例えば、ユーザデバイス１１０の可視光カメラ２０５を用いて）既に撮影され、ユーザデバイス１１０のディスプレイ２０１によって表示される。ユーザの顔の種々の特徴が画像２００において識別可能であることが分かる。例えば、ユーザの目２０６、鼻２２３、頭髪２２２が、ユーザデバイス１１０及び／又は試着サーバ１３０によって画像２００において確認及び識別可能である。ユーザの鼻根（ｓｅｌｌｉｏｎ）２０８、瞳中心２０４、上耳底点２１８、眉中２１６、眉間２２５及び／又は鼻尖点２１０などのより詳細な特徴も、ユーザデバイス１１０及び／又は試着サーバ１３０によって確認及び識別可能となる。ユーザデバイス１１０及び／又は試着サーバ１３０によって画像２００において確認及び識別可能なもの以外の顔ランドマークは、ユーザの目頭、目尻、耳点（ｔｒａｇｉｏｎ）、ジギオン（ｚｙｇｉｏｎ）、上瞼（ｐａｌｐｅｂｒａｌｅ  ｓｕｐｅｒｉｕｓ）、下瞼（ｐａｌｐｅｂｒａｌｅ  ｉｎｆｅｒｉｕｓ）、フロントテンポラーレ（ｆｒｏｎｔｏｔｅｍｐｏｒａｌｅ）、顎前歯（ｍａｘｉｌｌｏｆｒｏｎｔａｌｌｅ）、眼窩点（ｏｒｂｉｔａｌｅ）、耳点、鼻根点及びメントン（ｍｅｎｔｏｎ）を（例として）含む。
【００２５】
ただし、画像２００は、画像にユーザの特徴のいずれのサイズ及び／又は絶対位置に関するいかなる情報も含まない２次元画像であってもよい。ユーザのそれら及び／又は他の特徴についての３次元位置情報は、他のカメラ、モーションセンサ（例えば、視覚慣性オドメトリ）、近接センサ、タイム・オブ・フライトセンサ、レーザ測距装置、又はカメラ２０５の視野における対象物についての３次元位置情報を取り込むことができる他の任意のセンサなどの追加のセンサ２０９を用いて取得され得る。一例では、センサ２０９は、視差情報（例えば、２つのステレオ画像カメラ２０５及び２０９によって撮影された画像間の視差効果）及びカメラ間の既知の距離が３次元位置情報を提供できるように、カメラ２０５から空間的にオフセットされた他の可視光カメラとして実施され得る。他の例では、３次元位置情報は、カメラとして実施されるカメラ２０５及び／又はセンサ２０９に対するユーザの移動に基づいてＳＦＭ（ｓｔｒｕｃｔｕｒｅ−ｆｒｏｍ−ｍｏｔｉｏｎ）動作を用いて生成され得る。
【００２６】
他の例では、センサ２０９は、赤外光源２０７によって放射される１以上の赤外線ビームの反射など、ユーザの顔及び／又は頭部からの赤外光を撮影する赤外線カメラであってもよい。例えば、赤外光源２０７は、反射部分がセンサ２０９によって撮像可能な、ユーザの顔及び／又は頭部上の種々の測定位置に赤外線スポットを生成する幾つかの（例えば、数十、数百、数千の）赤外線ビームを放射し得る。赤外線スポットの各々までの絶対距離を測定するために、撮影された赤外線画像における赤外線スポットの歪が、赤外線ビームの既知のサイズ及び形状とともに使用可能である。したがって、センサ２０９は、カメラとして実施されるか他の３次元センサとして実施されるかにかかわらず、（例えば、画像２００における対応する特徴を有する種々の測定位置の絶対３次元位置間の距離を測定することによって）画像２００におけるユーザの顔の絶対サイズ及び／又はユーザの顔の種々の特徴が測定されることを可能とする。
【００２７】
ユーザデバイス１１０（及び／又は試着サーバ１３０）は、測定点絶対３次元位置２１１、測定点絶対３次元位置２１１に基づくユーザの３次元モデル２１３及び／又は顔ランドマーク絶対位置２１５などのユーザについての３次元位置情報を生成及び／又は記憶することができる。記憶される３次元位置情報は、画像２００における対応の特徴の２次元位置にマッピングされる。顔ランドマーク絶対位置２１５は、測定点絶対３次元位置２１１の小集合であってもよいし、平均化され、補間され及び／又はあるいは合成された測定点絶対３次元位置２１１であってもよいし、３次元モデル２１３に基づいて測定されてもよい。３次元モデル２１３は、測定点絶対３次元位置２１１に基づいて又は測定点絶対３次元位置２１１から抽出又は生成されていた顔ランドマーク絶対位置２１５に基づいて生成され得る。種々の実施例では、３次元モデル２１３及び／又は顔ランドマーク絶対位置２１５は、ユーザデバイス１１０によってサーバに提供されるデータ（例えば、測定点絶対３次元位置２１１）を用いてユーザデバイス１１０又は試着サーバ１３０において生成され得る。
【００２８】
画像２００に表されるユーザは、図３の眼鏡３００など、ユーザが物理的に手に取らない対象物を試着したいと望むことがある。図３に示すように、眼鏡３００は、フレームに搭載されるフレーム３０２及びレンズ３０４などの物理的特徴を含む。
【００２９】
フレーム３０２は、ブリッジ３０８、鼻パッド３１０、テンプル３０６、末端部（智）３１６及びテンプル先端（先セル）３０９を含む。鼻パッド３１０は、（例えば、アセテートフレームについて）フレームに構成されてもよいし、（例えば、金属又は混合材フレームについて）フレームから延在するパッドアーム（例えば、調整可能アーム）上に配置された別個のパッドであってもよい。フレーム３０２の種々の部分は、装着者の特定の特徴に応じて、装着者の顔の対応部分との接触点となり得る。例えば、一体化された鼻パッド３１０を有するアセテートフレームについて、ブリッジ３０８は、一般に装着者の鼻根２０８に乗る一方で、一体化された鼻パッドはユーザの鼻の鼻橋部２１２に乗る。他の例では、パッドアーム上に鼻パッドを有する金属フレームについて、眼鏡が鼻パッド３１０とユーザの鼻の鼻橋２１２との間の接触によって主に支持された状態で、ブリッジ３０８はユーザの皮膚から浮くことになり、又はユーザの比較的高い位置（例えば、眉間２２５）に対して留まることになる。
【００３０】
任意のフレーム材料について、フレームの下端３１４（例えば、レンズ３０４の下）又はリムレスフレーム若しくは部分的にリムレスのフレームの眼鏡ではレンズ３０４の下部は、ユーザとの接触から浮き、又はユーザの皮膚の頬骨部分２１４に乗ることになる。同様に、任意のフレーム材料について、レンズ上部のフレームの部分３１２（又はリムレスフレームに搭載されたレンズの上部）は、ユーザとの接触から浮き、又は眉、眉中２１６若しくはユーザの皮膚の近傍に乗ることになる。同様に、任意のフレーム材料について、フレーム３０２のテンプル３０６が上耳底点２１８に乗り、及び／又はテンプル先端３０９の所定部分がユーザの耳２２０の後ろのユーザの頭部の部分に乗ることになる。眼鏡３００とユーザの顔及び頭部との間の接点は、非常に対称な特徴を有するユーザについてはユーザの顔及び頭部の左右側で対称となり、又は１以上の非対称な特徴を有するユーザについては異なることになる。
【００３１】
図３に示す眼鏡３００の特徴及び／又は眼鏡３００の他の特徴は、（例えば、注文又は購入について入手可能な各眼鏡について）試着サーバ１３０によって記憶される眼鏡３００の３次元モデルによって記述される。
【００３２】
ここに記載されるユーザの顔及び／又は頭部の３次元モデルは、参照点、及び数学的関数にユーザの顔及び／又は頭部の輪郭に対応する経路に沿って参照点を接続させるパラメータでパラメータ化された数学的関数を含み得る。ここに記載される眼鏡の３次元モデルは、参照点、及び数学的関数に眼鏡の輪郭に対応する経路に沿って参照点を接続させるパラメータでパラメータ化された数学的関数を含み得る。あるシナリオでは、ユーザの顔及び／又は頭部並びに眼鏡の統合３次元モデルが生成され得る。
【００３３】
画像２００、画像におけるユーザの３次元位置情報（例えば、図２の２１１、２１３及び／又は２１５）及び特定の眼鏡３００の３次元モデルが取得されると、その特定の眼鏡３００がそのユーザの特定の顔特徴に装着された場合に実世界においてどのように見えるかをユーザが確認できるように、眼鏡３００の仮想表現が画像２００上に重畳され得る。
【００３４】
例えば、図４は、ユーザの顔の実際のサイズに対する眼鏡３００の実際のサイズが正確に表現されるようにサイズ取りされた眼鏡３００の仮想表現４００を示す。仮想表現４００は画像におけるユーザの特徴の外観サイズに合うようにサイズ取りされているのではなく、ユーザの特徴の実世界のサイズに合うようにサイズ取りされていることが、理解されるべきである。この理由のため、（サイズがユーザに対して概ね丁度良く見える図４の例とは逆に）実際の眼鏡３００が実世界のユーザに対して大き過ぎ又は小さ過ぎる場合、眼鏡３００の仮想表現４００はユーザの頭部及び顔特徴のサイズに対して大き過ぎ又は小さ過ぎるように見えることになる。例えば、眼鏡３００が大人用サイズの眼鏡であり、ユーザが子供である場合、眼鏡３００の仮想表現４００は、画像２００において大き過ぎるように見えることになる。
【００３５】
ある実施例では、ＶＴＯインターフェース２０２は、眼鏡の既知のサイズ及び３次元位置情報に基づいてサイズの合わない眼鏡を検出して、サイズが合わないことをユーザに警告し、並びに／又はより適切にサイズが合いそうなもの試着するように１以上の異なる眼鏡の推奨を特定及び／若しくは提案することができる。
【００３６】
図４の例では、眼鏡３００が実世界においてユーザの顔にかけられたように見えるように仮想表現４００がユーザの画像に対して位置決め及びサイズ取りされた構成において、眼鏡３００の仮想表現４００が画像２００上に重畳して表示される。（図４の例のように、決定されたサイズでかつ決定された位置において、ユーザの顔の画像上に重畳された）眼鏡の仮想表現を表示することは、眼鏡の３次元モデルを表示された２次元画像に対応する座標系に変換すること、それに応じて、仮想表現４００が正しく見えるように２次元画像の修正バージョンにおいて各画素に対する輝度及び色を（例えば、変換された眼鏡の色、サイズ及び形状に基づいて）決定すること、並びに修正された画像の画素の各々をその画素に対して決定された輝度及び色で表示するようにデバイス１１０のディスプレイ２０１の表示画素を動作させることを含み得る。
【００３７】
図４の例では、眼鏡３００の仮想表現４００は、鼻パッド３１０がユーザの鼻の鼻橋部２１２に乗り、鼻根２０８の上部でそこから離れてブリッジ３０８を支持することを示すように、画像２００に重畳される。ユーザの耳２２０の上耳底点２１８に乗るテンプル３０６が示される。
【００３８】
一方、特定の眼鏡３００と特定のユーザの顔との間の接点又は接点の組合せは、その特定の眼鏡がどのようにその特定のユーザの顔にかけられるのかを判定することになる。したがって、特定のユーザの画像２００上の眼鏡３００の仮想表現４００の位置及び向きを決定するために、眼鏡の３次元モデルがユーザについての３次元位置情報（例えば、測定点絶対３次元位置２１１、３次元モデル２１３及び／又は顔ランドマーク絶対位置２１５）とともにバーチャルシーンに配置されてもよく、２つのエンティティが交差するか否かを判定するようにテストが実行される。交差テストでは、ユーザデバイス１１０及び／又は試着サーバ１３０は、（測定点絶対３次元位置２１１、３次元モデル２１３及び／又は顔ランドマーク絶対位置２１５に基づく）ユーザの顔面に対応する幾何学表面が任意の点で（眼鏡の３次元モデルに基づく）眼鏡の外面に対応する幾何学表面と一致するか否かを判定する。２つの幾何学表面が一致する場合、（例えば、２つの幾何学表面間の１以上の交差曲面に対応する）接点又は接点の組が特定され得る。接点の正しい組を特定し、特定のユーザの画像２００上の眼鏡３００の仮想表現４００の正しい位置及び向きを決定するように、複数の交差テストが、ユーザについての３次元位置情報に対する眼鏡３００の３次元モデルの異なる位置及び／又は向きで反復的に実行され得る。
【００３９】
これらの反復的交差テストは、物理的配置動作ともいわれ、顧客が眼鏡を彼らの顔に実際に配置する際に起こる物理的処理を模擬するように実行され得る。
【００４０】
物理的配置動作は、図５に示す顔座標系のような顔座標系を指定することを含み得る。図５の例では、ｘ軸とは、ユーザの左右側を規定する（例えば、その間に延在する）軸のことをいい、正方向ｘ軸は原点からユーザの左手の側に延びる。図５におけるｙ軸とは、ユーザの頭部の上下を規定する（例えば、その間に延在する）軸のことをいい、正方向ｙ軸は原点からユーザの頭頂に向かってｘ軸に垂直に延びる。図示するように、ｚ軸とは、ユーザの頭部の前後を規定する（例えば、その間に延在する）軸のことをいい、正方向ｚ軸はｘ軸及びｙ軸に垂直に、かつ原点からユーザの頭部の前方に向かって延びる。
【００４１】
物理的配置動作は、顔座標系の原点となる顔ランドマークを識別することを含み得る。このように、眼鏡の配置は、顔座標系の原点からのオフセットとして記述され得る。特に有用な１つの参照点は、鼻根２０８であり、それは鼻と額のなす角の最深中正点又はユーザの目の間の「ディボット」における最深点のことをいう。鼻根２０８の位置は、画像２００及び／又はユーザについての３次元位置情報を用いてユーザデバイス１１０及び／又は試着サーバ１３０によって識別され得る。物理的配置動作は、眼鏡のブリッジ３０８の水平中心における最下最背点など、眼鏡座標系の原点を識別することを含み得る。
【００４２】
物理的配置動作は、仮想試着動作を行うデバイスで利用可能な計算用リソース（例えば、処理能力、メモリ及び／又は通信帯域）に応じて、可変レベルの複雑さ及びリアル感を与えるように調整され得る。一例では、物理的配置動作は、（ｉ）眼鏡座標系の原点と顔座標系の原点との間のｘオフセットをゼロに設定すること、及び（ｉｉ）眼鏡座標系の原点と顔座標系の原点との間（例えば、鼻根と眼鏡原点との間）の固定のｙ及びｚオフセットを選択することを含み得る。この例では、固定のｙ及びｚオフセットは、フレームのタイプ（例えば、アセテートか金属か）及び／又はユーザについての顔ランドマークの組の位置に基づいて選択され得る。このタイプの固定のｙ及びｚオフセットは、低い計算電力又は低い帯域のシナリオで使用されて顧客及び眼鏡の多数の組合せについてリアルな結果を与え得るが、結果が全ての場合においてリアルとはならない可能性もある。例えば、ある場合では、固定のｙ及びｚオフセットは、眼鏡モデルと顔モデルの間のリアル感のない交差をもたらしてしまい、これによって、眼鏡が不適切に顔の「背後」にあるように、又は図６に示すようにユーザの顔に埋没したように見えてしまう。図６の例では、眼鏡３００の仮想表現４００の部分６００は、不適切にユーザの顔に埋没している。他の場合では、眼鏡は、ユーザの顔の前面にリアル感なく浮いて見えることになる。
【００４３】
よりリアルな試着体験を与えるために、物理的配置動作は、１以上の反復的交差動作を含み得る。図７Ａ〜７Ｄ及び８Ａ〜８Ｄに、２セットの反復的交差動作を説明する例を示す。
【００４４】
図７Ａ〜７Ｄは、固定のｚオフセット（例えば、複数のテスト位置で共通のｚオフセット）及び可変のｙオフセットを用いる反復的交差動作を示し、これは、堅い前面を有するとともに装着時には通常は鼻根に押し上げられるアセテートフレームの配置のために使用され得る。図７Ａ〜７Ｄの例では、顔座標系における眼鏡の３次元モデルの複数のテスト位置を示し、各々は眼鏡３００の３次元モデルの原点と顔座標系の原点との間のｘオフセットをゼロに設定させている。２つの原点の間（例えば、鼻根と眼鏡原点の間）の固定のｚオフセットが（例えば、眼鏡と鼻根の間の所定の標準的な離隔に基づいて）選択可能である。眼鏡３００の仮想表現４００の最終位置に対する最終ｙオフセットを決定するために、（例えば、図７Ａ〜７Ｄに示すように）ｙオフセットが変更されて、複数のテスト位置を生成して眼鏡がちょうど顔と接触することになるｙオフセットの値を求めることができる。図７Ａ〜７Ｄの例では、顔座標系における４つの例示のテスト位置の各々は、ｙ軸に沿って異なるｙオフセットを、ｘ軸に沿ってゼロのｘオフセットを、ｚ軸に沿って共通のｚオフセットを有する。
【００４５】
図７Ａの例では、最初のテスト位置（例えば、固定のｚオフセットとともに最初のｙオフセット及びゼロｘオフセット）が選択されている。しかし、この最初のテスト位置では、眼鏡３００の３次元モデルは、ユーザの顔の３次元表現（例えば、３次元位置情報）に部分的に埋没され、それが表示されると、図示するように、眼鏡３００の仮想表現４００がユーザの顔の画像内に消えてしまうことになる。この埋没は、眼鏡３００の３次元モデルとユーザの顔の３次元表現との間の衝突検出動作を含む交差動作を実行することによって（例えば、ユーザデバイス１１０及び／又は試着サーバ１３０によって）検出され得る。
【００４６】
図７Ａに示すタイプの埋没接触が検出される場合、眼鏡３００の３次元モデルは、図７Ｂに示すように新たなテスト位置に（例えば、同じ共通のｚオフセット及びゼロのｘオフセットとともに新たなｙオフセットで）移動され得る。例えば、新たなテスト位置は、増分的に異なる新たなテスト位置、又は眼鏡３００の３次元モデルとユーザの顔の３次元表現との間の接触がない（例えば、新たな位置での他の衝突検出動作によって決定されるような）新たなテスト位置となり得る。新たなテスト位置は、初期の遷移増分を記述するパラメータに対応し得る。
【００４７】
図７Ｂの例のように眼鏡３００の３次元モデルとユーザの顔の３次元表現との間の接触がないことが（例えば、ユーザデバイス１１０及び／又は試着サーバ１３０によって）判定された場合、他の新たなテスト位置（例えば、他の新たなｙオフセット）が、例えば、二分探索動作又は当業者に理解されるであろう他の探索アルゴリズムを用いて決定可能であり、他の交差（例えば、衝突検出）動作が、その新たな次のテスト位置において実行される。例えば、図７Ｃの例では、新たなｙオフセットは、図７Ｂのｙオフセットとゼロのｙオフセットとの間の略中間にある。一方、図７Ｃに示すテスト位置では、ユーザデバイス１１０又は試着サーバ１３０は、（例えば、図７Ｃの新たな位置での他の衝突検出動作を実行することによって判定されるように）眼鏡３００の３次元モデルとユーザの顔の３次元表現との間には未だ接触がないと判定し得る。
【００４８】
物理的配置動作は、（例えば、図７Ｄに示すように）ユーザの顔の３次元表現上の眼鏡３００の３次元モデルに対する正しい掛け位置が特定されるまで、（例えば、各々は二分探索アルゴリズムを用いて決定される）１以上の追加のｙオフセットにおいて１以上の追加の衝突検出（交差）動作を含む。正しい掛け位置は、接触のない位置から移動しつつ、眼鏡３００の３次元モデルがユーザの顔の３次元表現と何らかの接触を構成する最初の位置となり得る。一方、あるシナリオでは、物理的配置動作は、その最初の接触は眼鏡がユーザの顔において安定するであろう載置接触であるか否か、又は最初の接触は不安定な接触かを判定するなどの追加の動作を含み得る。
【００４９】
例えば、最初の接触がブリッジ３０８とユーザの顔の鼻根２０８との間又は鼻パッド３１０とユーザの鼻の鼻橋部２１２との間の接触である場合、接触は安定である又は載置接触であると判定され得る。一方、あるシナリオでは、最初の接触は、ブリッジ３０８又は鼻パッド３１０との接触の前のユーザの顔とフレーム３０２の下部３１４との間となることがあり、これは不安定な接触を示し得る（なぜなら、例えば、ブリッジ３０８又は鼻パッド３１０の少なくとも一方がユーザと接触状態となる他の位置まで眼鏡が下がり又は滑り易くなるためであり、それは眼鏡が下がり又は滑る間又はその後に下部３１４との接触が保持されるか否かにかかわらない）。
【００５０】
追加の位置における追加の交差が最初の接触に続いて行われる場合、追加の位置は（例えば、鼻パッド又はブリッジが接触を構成するまで、ユーザの顔に沿ってフレームの下部を滑らせることを模擬することによって）少なくとも１つの他の接点がユーザの顔に対する眼鏡の位置の制御を引き継ぐまで、埋没を回避し及び／又は最初の接点の離隔を回避するように選択され得る。
【００５１】
図８Ａ〜８Ｄは、固定のｙオフセット（例えば、全てのテスト位置に対する共通のｙオフセット）及び可変のｚオフセットを用いる反復的交差動作を示し、それは、配置の際の更なる柔軟性を可能とする調整可能な鼻パッドを有する金属及び／又は混合材フレームの配置に使用され得る（例えば、ユーザは、後に実世界において鼻パッドを調整して正しいｙオフセットを取得することができるので、配置動作中にその正しいｙオフセットが推定され、固定して保持されることが可能となる）。図８Ａ〜８Ｄの例では、顔座標系における４つのテスト位置の各々は、ｚ軸に沿う異なるｚオフセット、ｘ軸に沿うゼロのｘオフセット及びｙ軸に沿う共通のｙオフセットを有する。
【００５２】
図８Ａの例では、最初のテスト位置（例えば、固定のｙオフセット及びゼロのｘオフセットとともに最初のｚオフセット）が選択されている。しかし、この最初のテスト位置では、眼鏡３００の３次元モデルがユーザの顔の３次元表現に埋没され、それが表示されると、図示するように、眼鏡３００の仮想表現４００の少なくとも所定部分がユーザの顔の中に消失してしまうことになる。この埋没は、眼鏡３００の３次元モデルとユーザの顔の３次元表現との間の衝突検出動作を含む交差動作を実行することによって（例えば、ユーザデバイス１１０又は試着サーバ１３０によって）検出され得る。
【００５３】
図８Ａに示すタイプの埋没接触が検出される場合、眼鏡３００の３次元モデルは、図８Ｂに示すように新たなテスト位置に（例えば、新たなｚオフセットで）移動され得る。例えば、新たなテスト位置は、増分的に異なる新たなテスト位置、又は眼鏡３００の３次元モデルとユーザの顔の３次元表現との間の接触がない（例えば、新たな位置での他の衝突検出動作によって決定されるような）新たなテスト位置となり得る。
【００５４】
図８Ｂの例のように眼鏡３００の３次元モデルとユーザの顔の３次元表現との間の接触がないことが（例えば、ユーザデバイス１１０又は試着サーバ１３０によって）判定された場合、他の新たなテスト位置（例えば、他の新たなｚオフセット）が、例えば、二分探索アルゴリズム又は当業者に理解されるであろう他の探索アルゴリズムを用いて決定可能であり、他の交差（例えば、衝突検出）動作が、次のその新たなテスト位置において実行される。例えば、図８Ｃの例では、新たなｚオフセットは、図８Ｂのｚオフセットとゼロのｚオフセットとの間の略中間にある。一方、図８Ｃに示すテスト位置では、ユーザデバイス１１０又は試着サーバ１３０は、（例えば、図８Ｃの新たな位置での他の衝突検出動作を実行することによって判定されるように）眼鏡３００の３次元モデルとユーザの顔の３次元表現との間には未だ接触がないと判定し得る。
【００５５】
物理的配置動作は、（例えば、図８Ｄに示すように）ユーザの顔の３次元表現上の眼鏡３００の３次元モデルに対する正しい掛け位置が特定されるまで、（例えば、各々は二分探索アルゴリズムを用いて決定される）１以上の追加のｚオフセットで１以上の追加の衝突検出（交差）動作を含む。正しい掛け位置は、接触のない位置から移動しつつ、眼鏡３００の３次元モデルがユーザの顔の３次元表現と何らかの接触を構成する位置となり得る。一方、あるシナリオでは、物理的配置動作は、その最初の接触は眼鏡がユーザの顔において安定するであろう載置接触であるか否か、又は最初の接触は不安定な接触かを判定するなどの追加の動作を含み得る。
【００５６】
図７Ｄ及び８Ｄの例では、眼鏡モデルは顔モデルと接触して正確に位置決めされるので、仮想表現４００が画像２００に重畳される場合に眼鏡モデルと顔モデルの間のリアル感のない交差は存在しないことになる。図７Ａ〜７Ｄ及び８Ａ〜８Ｄのｙ及びｚ変数はそれぞれ別個に示されるが、あるシナリオでは、反復的交差動作が、顔座標系のｘ、ｙ及び／又はｚ方向における眼鏡の３次元モデルのテスト位置の変化とともに実行され得ることが理解されるべきである。
【００５７】
ある試着動作では、眼鏡３００の追加の特徴（例えば、フレーム３０２の質量、柔軟性、材質及び／若しくは他の特徴、並びに／又はレンズ３０４の質量、倍率及び／若しくは他の特性）及び／又はユーザの追加の特徴（例えば、ユーザの皮膚の弾力性、ユーザの頭部の傾き角、種々の顔特徴の相対突出距離など）が３次元モデル及び／又は交差動作に取り込まれて最終位置を決定する高忠実度の位置向上動作が実行され得る。例えば、フレーム３０２又はユーザの皮膚が変形していない状態での載置接触位置が（例えば、図７Ａ〜７Ｄ及び８Ａ〜８Ｄに関して上述した処理を用いて）最初に確立されてもよく、それに続き、重力の力及び方向並びにフレームの柔軟性及び／又はユーザの皮膚の柔軟性が取り込まれて向上した掛け位置を決定する。
【００５８】
例えば、図９は、接触位置９０４におけるユーザの皮膚の部分９０２と載置接触している眼鏡３００の部分９００の断面図を示す。部分９００は、接触位置９０４が鼻根２０８に又はその付近となるように、ユーザの鼻の部分を表す部分９０２と接触状態にあるブリッジ３０８の部分を表し得る。他の例では、部分９００は、ユーザの顔の頬骨部分２１４を表す部分９０２と接触状態にあるフレーム３０２の下部３１４の一部を表していてもよく、フレームは１以上の他の位置においてユーザの顔及び／又は頭部にも乗っている。図９に示す載置接触配置は、あるシナリオでは仮想表現４００の表示のための眼鏡３００の３次元モデルの最終位置として使用され得る。一方、高忠実度の位置向上動作では、実世界では重力が部分９００をユーザの皮膚の部分９０２に押し付けると判定され得る。
【００５９】
例えば、図１０に示すように、ユーザデバイス１１０及び／又は試着サーバ１３０は、重力の方向１０００、眼鏡３００の質量、ユーザの皮膚の部分９０２の輪郭形状１００４及びユーザの皮膚の柔軟性を決定して、眼鏡の重量に起因して起こり得る部分９０２の一部又は全部の圧縮１００６を決定し得る。画像２００及び／又は眼鏡３００の仮想表現４００の位置は、圧縮１００６がその特定の眼鏡について起こり得ることをユーザに示すように修正されてもよい。
【００６０】
これらの高忠実度動作は、ユーザの顔又は頭部に対する眼鏡の移動（例えば、緩めのフィット及び細い頭部に起因するもの、ユーザの頭部の前後又は上下の移動に起因するもの、重力によるユーザの鼻からのフレームの滑り落ち、ユーザの手による眼鏡の仮想表現の位置の調整など）を模擬して、特定の眼鏡が装着時にどのようにフィット及び／又は挙動するかについてのより多くの情報をユーザに与えることもできる。
【００６１】
図１１は、１以上の実施例による、眼鏡の仮想試着のための例示の処理のフロー図を示す。例示目的のために、図１１の処理は、図１及び２の１以上のデバイスを参照して（特に試着サーバ１３０及び／又はユーザデバイス１１０を参照して）主にここに記載され、それは図１のサーバ１３０及び／又はユーザデバイス１１０の１以上のプロセッサによって実行され得る。ただし、図１１の処理は、サーバ１３０及び／又はユーザデバイス１１０に限定されず、処理の１以上のブロック（すなわち、動作）は他の適切なデバイスの１以上の他の構成要素によって実行され得る。また、例示目的のために、図１１の処理のブロックは、直列にすなわち一次的に行われるものとして記載される。ただし、図１１の処理の複数のブロックが、並列に行われてもよい。さらに、図１１の処理のブロックは図示する順序で実行されなくてもよく、並びに／又は図１１の処理の１以上のブロックは実行される必要がなく及び／若しくは他の動作に代替されてもよい。
【００６２】
ブロック１１００において、ユーザの画像が取得され得る。例えば、図２の画像２００のような画像が、ユーザデバイス１１０のカメラ２０５などのカメラを用いて撮影され得る。
【００６３】
ブロック１１０２において、ユーザについての３次元位置情報が取得され得る。例えば、３次元位置情報は、ここに記載されるような、測定点絶対３次元位置２１１、測定点絶対３次元位置２１１に基づくユーザの３次元モデル２１３、及び／又は顔ランドマーク絶対位置２１５を含み得る。３次元位置情報は、例えば、センサ２０９などの追加のセンサ及び／又は光源２０７などの光源を用いて取得され得る（例えば、図２及び１３参照）。
【００６４】
ブロック１１０４において、眼鏡３００のような眼鏡の３次元モデルが取得される。眼鏡の３次元モデルはモデルのデータベース（例えば、図１のデータベース１４２の１つ）から取得され得るものであり、各々は実世界の眼鏡に対応し、モデルは試着サーバ１３０又は他のサーバに記憶される。眼鏡の３次元モデルを取得することは、（例えば、試着動作がユーザデバイスで行われる場合には）眼鏡の３次元モデルをサーバからユーザデバイス１１０にダウンロードすることを含み得る。
【００６５】
ブロック１１０６において、眼鏡のデジタル表現のための位置及び／又は向きが、画像、ユーザについての３次元位置情報及び／又は眼鏡の３次元モデルに基づいて決定される。眼鏡のデジタル表現のための位置及び／又は向きを決定することは、例えば、図７Ａ〜７Ｄ及び８Ａ〜８Ｄに関して上述し、図１２に関して以下にさらに説明するような物理的配置動作を実行することを含み得る。物理的配置動作は、１回以上の反復的衝突検出（交差）及びバイナリ位置探索動作の組合せを含んでいてもよく、１回以上の高忠実度の位置向上動作を含んでいてもよい。
【００６６】
ブロック１１０８において、眼鏡の仮想表現についてのサイズが、画像、ユーザの３次元位置情報及び／又は眼鏡の３次元モデルに基づいて決定される。決定されたサイズは、ユーザの顔に対する眼鏡の実世界のサイズに正確に対応する、画像画素における画素サイズであり得る。例えば、サイズを決定することは、３次元位置情報を用いてユーザの顔の物理的サイズを決定すること、画像及び決定された物理的サイズを用いて画像画素におけるユーザの顔のサイズを決定すること、決定された物理的サイズ及び画像画素におけるユーザの顔のサイズを用いて画像における各画像画素についての画素サイズを決定すること、並びに眼鏡の既知のサイズ及び決定された画素サイズに基づいて、決定された位置及び／又は向きについての（例えば、画素における）眼鏡の仮想表現のサイズを決定することを含み得る。
【００６７】
ブロック１１１０において、例えば、決定されたサイズ、位置及び／又は向きでの眼鏡の仮想表現が、例えば図４に示すような（例えば、ユーザデバイス１１０のディスプレイ２０１を用いる）表示のためにユーザの画像上に重畳された合成画像が表示される。
【００６８】
図１２は、１以上の実施例による、図１１のブロック１１０８に関して説明した眼鏡の仮想表現の位置及び／又は向きの決定のための例示の処理のフロー図を示す。例示目的のために、図１２の処理は、図１及び２の１以上のデバイスを参照して（特に試着サーバ１３０及び／又はユーザデバイス１１０を参照して）主にここに記載され、それはサーバ１３０及び／又はユーザデバイス１１０の１以上のプロセッサによって実行され得る。ただし、図１２の処理はサーバ１３０及び／又はユーザデバイス１１０に限定されず、処理の１以上のブロック（すなわち、動作）は他の適切なデバイスの１以上の他の構成要素によって実行され得る。また、例示目的のために、図１２の処理のブロックは、直列にすなわち一次的に行われるものとして記載される。ただし、図１２の処理の複数のブロックが、並列に行われてもよい。さらに、図１２の処理のブロックは図示する順序で実行されなくてもよく、並びに／又は図１２の処理の１以上のブロックは実行される必要はなく及び／若しくは他の動作に代替されてもよい。
【００６９】
ブロック１２００において、ユーザについての３次元位置情報に対する眼鏡の３次元モデルの初期位置（例えば、初期テスト位置）が特定される。初期位置は、図７Ａ又は８Ａに関して上述したゼロのｘオフセット及び固定のｙオフセット又はｚオフセットを有し得る。
【００７０】
ブロック１２０２において、ユーザデバイス１１０及び／又は試着サーバ１３０は、眼鏡の３次元モデルがユーザについての３次元位置情報と交差するか否かを判定する。眼鏡の３次元モデルがユーザについての３次元位置情報と交差するか否かを判定することは、（例えば、眼鏡の３次元モデルが、初期位置において、測定位置２１１のいずれか、３次元モデル２１３又は顔ランドマーク位置２１５と交差するか否かを判定することによって）眼鏡の３次元モデルとユーザについての３次元位置情報との間で衝突検出動作を実行することを含み得る。
【００７１】
交差がないと判定された場合（例えば、眼鏡の仮想表現が画像２００内でユーザの顔から浮いて見えるような場合）、ブロック１２０４において（顔座標系における）眼鏡の３次元モデルについての新たなテスト位置が決定され得る。新たなテスト位置を決定することは、バイナリ位置探索動作を実行すること、顔座標系の原点に向かって眼鏡の３次元モデルを増分的に移動させること、又はそれ以外で（例えば、疑似的にランダムに）新たなテスト位置を決定することを含み得る。新たなテスト位置の特定に続いて、ブロック１２０２の動作が、新たなテスト位置で反復され得る。
【００７２】
（ブロック１２０４において）眼鏡の３次元モデルがユーザについての３次元位置情報と交差すると判定された場合、ユーザデバイス１１０及び／又は試着サーバ１３０は、ブロック１２０６において、交差が（例えば、図７Ｄ、８Ｄ及び９に示すような）接触交差なのか（例えば、図６、７Ａ及び８Ａに示すような）埋没交差なのかを判定する。接触交差は、（例として）単一の接点の検出によって又は全ての接点が両モデルの外縁にあると判定することによって判定され得る。埋没交差は、３次元モデルの一方における内側の点が他方のモデルの一部分と接触していると判定することによって判定され得る。
【００７３】
（ブロック１２０６において）交差が（例えば、図６、７Ａ及び８Ａに示すような）埋没交差であると判定された場合、ブロック１２０８において、（顔座標系における）眼鏡の３次元モデルについての新たなテスト位置が決定され得る。新たなテスト位置を決定することは、バイナリ位置探索動作を実行すること、顔座標系の原点に向かって眼鏡の３次元モデルを増分的に移動させること、又はそれ以外で（例えば、疑似的にランダムに）新たなテスト位置を決定することを含み得る。ブロック１２０８における新たなテスト位置の特定に続いて、ブロック１２０２の動作が、新たなテスト位置で反復され得る。
【００７４】
（ブロック１２０６において）交差が（例えば、図７Ｄ、８Ｄ及び９に示すような）接触交差であると判定された場合、ユーザデバイス１１０及び／又は試着サーバ１３０は直接ブロック１２１４に進み、ブロック１１１０での表示のための最終位置として現在のテスト位置を特定し、又はブロック１２１０において、ユーザデバイス１１０及び／又は試着サーバ１３０は接触位置が載置接触位置であるか（例えば、又は不安定な接触位置であるか）を判定し得る。例えば、接触交差は、ブリッジ３０８とユーザの鼻根２０８との間又は鼻パッド３１０とユーザの鼻の鼻橋部２１２との間の接触を含み得るものであり、その場合、接触は安定又は載置接触であると判定され得る。他の例では、接触交差はブリッジ３０８又は鼻パッド３１０との接触前のフレーム３０２の下部３１４との接触となることもあり、それは不安定な接触を示すことになる。
【００７５】
ブロック１２１０において、接触交差が載置接触でないと判定された場合、ユーザデバイス１１０及び／又は試着サーバ１３０は（顔座標系における）眼鏡の３次元モデルに対する新たなテスト位置が決定されるブロック１２０４に戻ることになる。追加のテスト位置がブロック１２０６での接触交差の検出に続いて使用される場合、追加のテスト位置は、二分探索又は他の事前接触アルゴリズムを用いて選択されてもよいし、（例えば、鼻パッド又はブリッジが接触を構成するまでユーザの顔に沿ってフレームの下部を仮想的に滑らせることによって）少なくとも１つの他の接点がユーザの顔に対する眼鏡の位置の制御を引き継ぐまで埋没を回避し及び／又は接触交差の接点の離隔を回避するように選択され得る。新たなテスト位置の特定に続いて、ブロック１２０２、１２０６及び１２１０の動作が新たなテスト位置で反復されることになり、新たなテスト位置が接触を維持し埋没を回避するのに選択されている場合には、ユーザデバイス１１０及び／又は試着サーバ１３０は新たなテスト位置でブロック１２１０に直接戻ることになる。
【００７６】
（ブロック１２１０において）交差が（例えば、図７Ｄ、８Ｄ及び９に示すような）接触交差であると判定された場合、ユーザデバイス１１０及び／又は試着サーバ１３０は直接ブロック１２１４に進み、ブロック１１１０での表示のための最終位置として現在のテスト位置を特定し、又はブロック１２１２において、ユーザデバイス１１０及び／又は試着サーバ１３０は（例えば、図１０に関して上述したような）高忠実度の位置向上動作を実行し得る。
【００７７】
ブロック１２１０において、顔座標系における眼鏡の３次元モデルの現在の位置及び向きが、（例えば、上記図４の例におけるように）ブロック１１１０における仮想表現４００の表示のための最終位置として特定され得る。
【００７８】
図５に示す顔座標系において種々の例が実施されるものとして説明するが、種々の物理的配置動作が任意の座標系において（例えば、眼鏡座標又は他の座標系において）実行され得ることが理解されるべきである。
【００７９】
ユーザデバイス１１０及び／又は試着サーバ１３０が撮影画像２００におけるユーザについての測定点絶対３次元位置２１１、測定点絶対３次元位置２１１に基づくユーザの３次元モデル２１３及び／又は顔ランドマーク絶対位置２１５を取得、生成及び／又は記憶し得ることを、例えば、図１、２、１１及び１２に関して上述した。図１３、１４及び１５は、それぞれ、測定点絶対３次元位置２１１、測定点絶対３次元位置２１１に基づくユーザの３次元モデル２１３、及び顔ランドマーク絶対位置２１５を示す。
【００８０】
図１３は、図１の３次元センサ２０９についての例示的な一実施例において（例えば、光源２０７を用いる）ユーザデバイス１１０がユーザの顔上の種々の入射位置１３０２から反射する赤外線ビーム１３００などの複数の光ビームをどのようにして生成し得るかを示す。各ビーム１３００は、入射位置１３０２において、その位置までの距離及びその位置での表面の形状によって決定されるサイズ及び歪のスポットを生成する。ビーム１３００として既知のビームサイズを用いるとともに（この例では赤外線センサとして実施される）センサ２０９によって撮影されるスポットの赤外線画像を用いて、各入射位置１３０２までの距離が測定され得る。各入射位置１３０２は、測定点絶対３次元位置２１１を表し得る。
【００８１】
図１４は、測定点絶対３次元位置２１１に基づく（例えば、画像２００の撮影時における）ユーザの３次元モデル２１３の２次元レンダリング１４００を示す。レンダリング１４００は、参照点及び／又はモデルを規定する参照点を接続する数学的関数によって規定される点及び／又は線を描くことによって生成され得る。モデルは、モデルが表示のためにレンダリングされるか否かにかかわらず、参照点、数学的関数、数学的関数のためのパラメータ値及び／又は他のモデルデータを記憶することによって記憶され得る。モデル自体は、いずれのモデルもレンダリングすることなく眼鏡３００の３次元モデルと交差され得る。
【００８２】
図１５は、種々の顔ランドマーク絶対位置２１５の表現１５００を示す。顔ランドマーク絶対位置２１５は、種々の顔ランドマークにおける測定点絶対３次元位置２１１の選択された小集合であってもよいし、測定点絶対３次元位置２１１の２以上から平均化又は補間されてもよいし、３次元モデル２１３から導出又は抽出されてもよい。顔ランドマーク絶対位置２１５が測定点絶対３次元位置２１１から直接的に（例えば、平均、補間又は他の組合せを介して）導出される幾つかのシナリオでは、３次元モデル２１３は、入力データ点としての顔ランドマーク絶対位置２１５に基づいて生成され得る。絶対３次元位置が決定され得る顔ランドマークは、これに限定されないが、鼻根、目頭、目尻、耳点、ジギオン、上耳底点、眉中、上瞼、下瞼、瞳の中心点、眉間、フロントテンポラーレ、顎前歯、眼窩点、耳点、鼻根点、鼻尖点及びメントンを含む。
【００８３】
ハードウェア概略
図１６は、図１のユーザデバイス１１０、試着サーバ１３０及び／又は第三者サーバ１４０が実施可能な例示的なコンピュータシステム１６００を示すブロック図である。所定の態様において、コンピュータシステム１６００は、専用サーバにおいて、他のエンティティに統合されて、又は複数のエンティティにわたって分散されて、ハードウェア又はソフトウェアとハードウェアの組合せを用いて実施され得る。
【００８４】
コンピュータシステム１６００は、情報を通信するためのバス１６０８又は他の通信メカニズム、及び情報を処理するためのバス１６０８と接続されるプロセッサ１６０２を含む。例示として、コンピュータシステム１６００は、１以上のプロセッサ１６０２とともに実施され得る。プロセッサ１６０２は、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プログラマブルロジックデバイス（ＰＬＤ）、コントローラ、状態機械、ゲート化ロジック、ディスクリートハードウェア構成要素、又は計算若しくは情報の他の操作を実行可能な他の任意の適切なエンティティであり得る。
【００８５】
コンピュータシステム１６００は、ハードウェアに加えて、情報及びプロセッサ１６０２によって実行される命令を記憶するためにバス１６０８に接続された、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、レジスタ、ハードディスク、取外し可能ディスク、ＣＤ−ＲＯＭ、ＤＶＤ又は他の任意の適切な記憶デバイスなどの内蔵メモリに記憶された、対象となるコンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム又はそれらの１以上の組合せを構築するコードを含み得る。プロセッサ１６０２及びメモリ１６０４は、特殊用途ロジック回路によって補完され又はそれに含まれてもよい。
【００８６】
命令は、メモリ１６０４に記憶され、１以上のコンピュータプログラム製品、すなわち、コンピュータシステム１６００による又はその動作を制御する実行のためのコンピュータ可読媒体に符号化され、当業者に周知の任意の方法に従って、これに限定されないが、データ指向言語（例えば、ＳＱＬ、ｄＢａｓｅ）、システム言語（例えば、Ｃ、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｃ＋＋、Ａｓｓｅｍｂｌｙ）、アーキテクチャ言語（例えば、Ｊａｖａ、ＮＥＴ）及びアプリケーション言語（例えば、ＰＨＰ、Ｒｕｂｙ、Ｐｅｒｌ、Ｐｙｔｈｏｎ）のようなコンピュータ言語を含むコンピュータプログラム命令の１以上のモジュールにおいて実行され得る。命令はまた、配列言語、アスペクト指向言語、アセンブリ言語、オーサリング言語、コマンドラインインターフェース言語、コンパイル言語、並行言語、カーリーブラケット言語、データフロー言語、データ構造化言語、宣言型言語、難解言語、拡張言語、第４世代言語、機能言語、対話型言語、解釈型言語、反復型言語、リスト型言語、リトル言語、論理型言語、機械語、マクロ言語、メタプログラミング言語、マルチパラダイム言語、数値解析、非英語ベースの言語、オブジェクト指向クラスベースの言語、オブジェクト指向プロトタイプベースの言語、オフサイドルール言語、手続き型言語、反射型言語、ルールベースの言語、スクリプト言語、スタックベースの言語、同期言語、構文処理言語、視覚言語、ワース（ｗｉｒｔｈ）言語及びＸＭＬベースの言語のようなコンピュータ言語で実行され得る。メモリ１６０４はまた、プロセッサ１６０２によって実行される命令の実行中の一時的な可変の又は他の中間的情報を記憶するのに使用され得る。
【００８７】
ここに記載されるコンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、対象となるプログラムに専用の単一のファイルにおいて又は複数の連携ファイル（例えば、１以上のモジュール、サブプログラム又はコードの所定部分を記憶するファイル）において、他のプログラム又はデータ（例えば、マークアップ言語文書に記憶された１以上のスクリプト）を保持するファイルの一部分に記憶され得る。コンピュータプログラムは、１つのコンピュータ、又は１箇所に配置され若しくは複数箇所にわたって分散されて通信ネットワークによって相互接続された複数のコンピュータにおいて実行されるように配備され得る。本明細書で説明した処理及びロジックフローは、入力データ上で演算して出力を生成することによって機能を実行する１以上のコンピュータプログラムを実行する１以上のプログラマブルプロセッサによって実行され得る。
【００８８】
コンピュータシステム１６００は、情報及び命令を記憶するためにバス１６０８に接続される磁気ディスク又は光学ディスクなどのデータストレージデバイス１６０６をさらに含む。コンピュータシステム１６００は、種々のデバイスに入出力モジュール１６１０を介して接続され得る。入出力モジュール１６１０は、任意の入出力モジュールであり得る。例示的な入出力モジュール１６１０は、ＵＳＢポートなどのデータポートを含む。入出力モジュール１６１０は、通信モジュール１６１２に接続するように構成される。例示的な通信モジュール１６１２は、イーサネットカードなどのネットワーキングインターフェースカード及びモデムを含む。所定の態様において、入出力モジュール１６１０は、入力デバイス１６１４及び／又は出力デバイス１６１６などの複数のデバイスに接続するように構成される。例示的な入力デバイス１６１４は、ユーザが入力をコンピュータシステム１６００に提供することができるキーボード及びポインティングディバイス（例えば、マウス又はトラックボール）を含む。触覚的入力デバイス、視覚的入力デバイス、音声入力デバイス又はブレインコンピュータインターフェースデバイスなどの他の種類の入力デバイス１６１４が、同様にユーザとの相互作用に供するように使用されてもよい。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚的フィードバック、例えば、視覚的フィードバック、音声によるフィードバック又は触覚的フィードバックであり得る。ユーザからの入力は、音声、会話、触覚又は脳波入力を含む任意の形態で受け入れられ得る。例示的な出力デバイス１６１６は、情報をユーザに表示するためのＬＣＤ（液晶ディスプレイ）又は発光ダイオード（ＬＥＤ）ディスプレイのような表示デバイスを含む。
【００８９】
本開示の一態様によると、ユーザデバイス１１０、試着サーバ１３０及び／又は第三者サーバ１４０は、メモリ１６０４に含まれる１以上の命令の１以上のシーケンスをプロセッサ１６０２が実行することに応じて、コンピュータシステム１６００を用いて実施可能である。そのような命令は、データストレージデバイス１６０６などの他の機械可読媒体からメモリ１６０４に読み出され得る。主メモリ１６０４に含まれる命令のシーケンスの実行によって、プロセッサ１６０２が、ここに記載される処理ステップを実行する。マルチプロセッシング構成の１以上のプロセッサが、メモリ１６０４に含まれる命令のシーケンスを実行するのに採用されてもよい。代替の態様において、有線回路が、本開示の種々の態様を実施するのにソフトウェア命令の組合せの代わりに又はソフトウェア命令と組み合わせて用いられてもよい。したがって、本開示の態様は、ハードウェア回路及びソフトウェアのいずれの特定の組合せにも限定されない。
【００９０】
本明細書に記載される主題の種々の態様は、バックエンド構成要素（例えば、データサーバとして）を含むコンピューティングシステム、ミドルウェアコンポーネント（例えば、アプリケーションサーバ）を含むコンピューティングシステム、又はフロントエンド構成要素、例えば、それを介してユーザが本明細書に記載の主題の実施例と相互作用することができるグラフィカルユーザインターフェース又はウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム、又は１以上のそのようなバックエンド、ミドルウェア若しくはフロントエンド構成要素の任意の組合せにおいて実施可能である。システムの構成要素は、任意の形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続され得る。通信ネットワーク（例えば、ネットワーク１５０）は、例えば、ＬＡＮ、ＷＡＮ、インターネットなどのいずれか１以上を含み得る。また、通信ネットワークは、これに限定されないが、例えば、以下のバスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スターバスネットワーク、ツリー又は階層ネットワークなどを含むネットワークトポロジーのうちのいずれか１つ以上を含み得る。通信モジュールは、例えば、モデム又はイーサネットカードであり得る。
【００９１】
コンピュータシステム１６００は、クライアント及びサーバを含み得る。クライアント及びサーバは、一般に相互に遠隔にあり、通常は通信ネットワークを介して相互作用する。クライアント及びサーバの関係は、コンピュータプログラムがそれぞれのコンピュータ上で稼働し、クライアント−サーバ関係を相互に有することによって発生する。コンピュータシステム１６００は、例えば、限定することなく、デスクトップコンピュータ、ラップトップコンピュータ又はタブレットコンピュータであり得る。コンピュータシステム１６００は、他のデバイス、例えば、限定することなく、携帯電話、ＰＤＡ、携帯オーディオプレーヤー、全地球測位システム（ＧＰＳ）受信機、ビデオゲームコンソール及び／又はテレビセットトップボックスに組み込まれてもよい。
【００９２】
ここで使用される用語「機械可読記憶媒体」又は「コンピュータ可読媒体」とは、命令をプロセッサ１６０２に提供して実行する際に関与する任意の単数の媒体又は複数の媒体をいう。そのような媒体は、これに限定されないが、非揮発性媒体、揮発性媒体及び伝送媒体を含む多数の形態を採り得る。不揮発性媒体は、例えば、データストレージデバイス１６０６のような光学又は磁気ディスクを含む。揮発性媒体は、メモリ１６０４のようなダイナミックメモリを含む。伝送媒体は、バス１６０８を備えるワイヤを含む、同軸ケーブル、銅線及び光ファイバを含む。機械可読媒体の一般的な形態は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の任意の磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤ、他の任意の光学媒体、パンチカード、紙テープ、他の何らかの孔のパターンを有する物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＦＬＡＳＨ  ＥＰＲＯＭ、他の任意のメモリチップ若しくはカートリッジ、又はコンピュータが読み出すことができる他の任意の媒体を含む。機械可読記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝搬信号を生じさせる合成物又はそれらの１以上の組合せであり得る。
【００９３】
ここで使用されるように、項目のいずれかを分離する用語「及び／並びに」又は「又は／若しくは」とともに一連の項目に対して先行する／それに続く文言「〜の少なくとも１つ」は、その列挙の各要素（すなわち、各項目）ではなく、その列挙を全体として修飾する。文言「〜の少なくとも１つ」は少なくとも１つの項目の選択を要さず、同文言は、項目のいずれか１つの少なくとも１つ、項目の任意の組合せの少なくとも１つ、及び／又は項目の各々の少なくとも１つを含む意味を許容する。例として、文言「Ａ、Ｂ及びＣの少なくとも１つ」又は「Ａ、Ｂ又はＣの少なくとも１つ」の各々は、Ａのみ、Ｂのみ若しくはＣのみ、Ａ、Ｂ及びＣの任意の組合せ、並びに／又はＡ、Ｂ及びＣの各々の少なくとも１つのことをいう。
【００９４】
詳細な説明又は特許請求の範囲において用語「含む」、「有する」などが使用される範囲において、そのような用語は、「備える」が請求項において移行語として採用される場合に解釈されるように、用語「備える」と同様に包括的なものである。単語「例示的」は、ここでは「例、事例又は例示として作用すること」を意味するのに使用される。「例示的」としてここに記載される任意の実施形態は、必ずしも他の実施形態に対して好適又は有利なものとして解釈されるべきではない。
【００９５】
要素に対する単数での言及は、特に断りがない限り、「１つ及び１つのみ」を意味するのではなく「１つ以上／１以上」を意味するものである。当業者に公知であり又は後に公知となる本開示を通じて記載される種々の構成の要素に対する全ての構造的及び機能的な均等物は、参照によりここに明示的に含まれ、主題の技術によって包含されるものである。さらに、ここに開示される内容は、その開示が上記記載に明記されているか否かにかかわらず、公衆に供されることを意図するものではない。
【００９６】
本明細書は多数の具体例を含むが、それらは特許請求され得るものの範囲についての限定として解釈されるべきではなく、主題の特定の実施例の記載として解釈されるべきである。別個の実施形態の背景において本明細書に記載される所定の特徴は、単一の実施形態において組合せでも実施可能である。逆に、単一の実施形態の背景において記載される種々の特徴は、複数の実施形態で別個に又は任意の適切な部分的組合せでも実施可能である。さらに、特徴が所定の組合せで作用するものとして上述され、当初はそのように特許請求され得るが、特許請求される組合せからの１以上の特徴は、場合によっては、組合せから削除されることもあり、特許請求される組合せは部分的組合せ又は部分的組合せの変形例に向けられることもある。
【００９７】
本明細書の主題が特定の態様の観点で記載されたが、他の態様も実施可能であり、以下の特許請求の範囲の保護範囲内にある。例えば、動作が特定の順序で図面に記載されるが、これは、所望の結果を達成するために、図示される特定の順序で若しくは順次の順序でそのような動作が実行されること、又は全ての示される動作が実行されることを要件とするものと理解されるべきではない。特許請求の範囲に記載される動作は、異なる順序で実行されてもよく、それでも所望の結果を達成できる。一例として、添付図面に図示される処理は、所望の結果を達成するのに必ずしも図示される特定の順序又は順次の順序を要件とするものではない。所定の状況では、マルチタスク化及び並列処理が有利なこともある。さらに、上述の態様における種々のシステム構成要素の独立性は、全ての態様においてそのような独立性を要件とするものと理解されるべきではなく、記載されるプログラム構成要素及びシステムは一般に単一のソフトウェア製品に統合され又は複数のソフトウェア製品にまとめられてもよいことが理解されるべきである。他の変形例も、以下の特許請求の範囲の保護範囲内にある。
【図１】
2021534516.tif 000003
【図２】
2021534516.tif 000004
【図３】
2021534516.tif 000005
【図４】
2021534516.tif 000006
【図５】
2021534516.tif 000007
【図６】
2021534516.tif 000008
【図７】
2021534516.tif 000009
【図８】
2021534516.tif 000010
【図９−１０】
2021534516.tif 000011
【図１１】
2021534516.tif 000012
【図１２】
2021534516.tif 000013
【図１３−１５】
2021534516.tif 000014
【図１６】
2021534516.tif 000015
【手続補正書】
【提出日】令和3年4月7日(2021.4.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータによって実行される方法であって、
電子デバイスのカメラによってユーザの顔の画像を撮影するステップと、
前記電子デバイスのセンサを用いて、前記ユーザの３次元位置情報を取得するステップと、
眼鏡の３次元モデルを取得するステップと、
前記画像及び前記３次元位置情報に基づいて前記眼鏡の仮想表現の位置を決定するステップと、
前記画像及び前記３次元位置情報に基づいて前記眼鏡の前記仮想表現のサイズを決定するステップであって、
前記３次元位置情報を用いて、前記ユーザの前記顔の物理的サイズを決定し、
前記画像及び前記ユーザの前記顔の前記決定された物理的サイズを用いて、画像画素における前記ユーザの前記顔のサイズを決定し、
前記決定された物理的サイズ及び画像画素における前記ユーザの前記顔の前記物理的サイズに基づいて前記画像における各画像画素についての画素サイズを決定し、
前記眼鏡の既知のサイズ及び前記決定された画素サイズに基づいて、前記眼鏡の前記仮想表現の前記サイズを決定すること
によって前記眼鏡の前記仮想表現のサイズを決定するステップと、
前記電子デバイスのディスプレイによって、前記ユーザの前記顔の前記画像及び前記眼鏡の前記仮想表現を含む合成画像を前記眼鏡の前記仮想表現の前記決定されたサイズ及び前記決定された位置で表示するステップと
を備える、前記コンピュータによって実行される方法。
【請求項２】
前記眼鏡の前記仮想表現の前記サイズ及び前記位置は、前記眼鏡が前記ユーザの前記顔上に物理的に載置されて見えるように、前記合成画像において前記眼鏡を正確に表すようにそれぞれ決定される、請求項１に記載のコンピュータによって実行される方法。
【請求項３】
前記眼鏡の前記仮想表現の前記位置を決定するステップが、前記眼鏡の前記３次元モデルを前記ユーザの前記３次元位置情報と交差させるステップを備える、請求項１に記載のコンピュータによって実行される方法。
【請求項４】
前記交差させるステップが、前記眼鏡の前記３次元モデルと前記ユーザの前記３次元位置情報との間の少なくとも１回の衝突検出動作を実行するステップを備える、請求項３に記載のコンピュータによって実行される方法。
【請求項５】
前記少なくとも１回の衝突検出動作を実行するステップが、前記眼鏡の前記３次元モデルについての対応する複数の位置において、前記眼鏡の前記３次元モデルと前記ユーザの前記３次元位置情報との間の複数回の衝突検出動作を反復的に実行するステップを備える、請求項４に記載のコンピュータによって実行される方法。
【請求項６】
前記複数回の衝突検出動作を反復的に実施するステップが、二分探索動作を用いて前記対応する複数の位置を反復的に決定するステップを備える、請求項５に記載のコンピュータによって実行される方法。
【請求項７】
前記ユーザについての前記３次元位置情報は、複数の測定点絶対３次元位置、前記ユーザの３次元モデル及び複数の顔ランドマーク絶対位置のうちの、少なくとも１つを備える、請求項４に記載のコンピュータによって実行される方法。
【請求項８】
前記センサが追加のカメラを備え、前記方法は、
前記電子デバイスの光源によって、少なくとも一部が前記ユーザの前記顔に向けられる複数の光ビームを生成するステップと、
前記光ビームの前記少なくとも一部が前記ユーザの前記顔に向けられつつ、前記追加のカメラを用いて第２の画像を撮影するステップと
をさらに備える請求項７に記載のコンピュータによって実行される方法。
【請求項９】
前記撮影された第２の画像における前記光ビームの前記少なくとも一部の反射に基づいて前記複数の測定点絶対３次元位置を決定するステップをさらに備える請求項８に記載のコンピュータによって実行される方法。
【請求項１０】
前記センサが追加のカメラを備え、前記方法が、
前記追加のカメラ用いて前記ユーザの追加の画像を撮影するステップと、
前記カメラと前記追加のカメラとの間の既知の距離及び前記画像と前記追加の画像との間の視差効果に基づいて前記ユーザについての前記３次元位置情報を生成するステップと
をさらに備える請求項１に記載のコンピュータによって実行される方法。
【請求項１１】
前記センサが、タイム・オブ・フライトセンサ、レーザ測距装置、モーションセンサ、近接センサ、構造化光センサ及び追加のカメラのうちの少なくとも１つを備える、請求項１に記載のコンピュータによって実行される方法。
【請求項１２】
コンピュータによって実行される方法であって、
ユーザの顔の画像を撮影するステップと、
前記画像の撮影時の前記ユーザの３次元モデルを取得するステップと、
眼鏡の３次元モデルを取得するステップと、
前記画像、前記画像の撮影時の前記ユーザの前記３次元モデル及び前記眼鏡の前記３次元モデルに基づいて前記眼鏡の仮想表現のためのサイズ及び位置を決定するステップであって、前記眼鏡の前記仮想表現のための前記位置を決定するステップは、前記ユーザの前記３次元モデル上の顔ランドマークに原点を有する顔座標系における複数のテスト位置において前記眼鏡の前記３次元モデルを用いて、前記ユーザの前記３次元モデルと前記眼鏡の前記３次元モデルとの間の複数回の衝突検出動作を実行することを備える、ステップと、
前記眼鏡の前記仮想表現を前記決定されたサイズ及び前記決定された位置で前記ユーザの前記顔の前記画像に重畳させて表示するステップと
を備える、前記コンピュータによって実行される方法。
【請求項１３】
前記顔座標系の前記原点が、前記画像の撮影時の前記ユーザの前記３次元モデルの鼻高にあり、
前記顔座標系のｘ軸は、前記画像の撮影時の前記ユーザの前記３次元モデルの左側と右側の間に延在し、正方向ｘ軸は、前記原点から前記画像の撮影時の前記ユーザの前記３次元モデルの前記左側に向かって延び、
前記顔座標系のｙ軸は、前記ｘ軸に垂直にかつ前記画像の撮影時の前記ユーザの前記３次元モデルの上部と下部の間に延在し、正方向ｙ軸は、前記原点から前記画像の撮影時の前記ユーザの前記３次元モデルの前記上部に向かって延び、
前記顔座標系のｚ軸は、前記ｘ軸及び前記ｙ軸に垂直にかつ前記画像の撮影時の前記ユーザの前記３次元モデルの前方と後方の間に延在し、正方向ｚ軸は、前記原点から前記画像の撮影時の前記ユーザの前記３次元モデルの前記前方に向かって延びる、請求項１２に記載のコンピュータによって実行される方法。
【請求項１４】
前記顔座標系における前記複数のテスト位置の各々は、前記ｙ軸に沿って異なるｙオフセット、前記ｘ軸に沿ってゼロのｘオフセット、及び前記ｚ軸に沿って共通のｚオフセットを有する、請求項１３に記載のコンピュータによって実行される方法。
【請求項１５】
前記眼鏡がアセテートフレームを含む、請求項１４に記載のコンピュータによって実行される方法。
【請求項１６】
前記顔座標系における前記複数のテスト位置の各々は、前記ｚ軸に沿って異なるｚオフセット、前記ｘ軸に沿ってゼロのｘオフセット、及び前記ｙ軸に沿って共通のｙオフセットを有する、請求項１３に記載のコンピュータによって実行される方法。
【請求項１７】
前記眼鏡は、金属フレームであって前記金属フレームから延在する調整可能アーム上に鼻パッドを有する金属フレームを含む、請求項１６に記載のコンピュータによって実行される方法。
【請求項１８】
前記複数のテスト位置は、前記画像の撮影時の前記ユーザの前記３次元モデルが前記眼鏡の前記３次元モデルと接触していない少なくとも１つのテスト位置を含み、前記眼鏡の前記仮想表現の前記位置を決定するステップは、前記少なくとも１つのテスト位置を前記顔座標系の前記原点に向かって反復的に移動させるステップ、及び前記画像の撮影時の前記ユーザの前記３次元モデルと前記眼鏡の前記３次元モデルとの間の最初の接触が検出されるまで前記複数回の衝突検出動作を実行するステップを備える、請求項１２に記載のコンピュータによって実行される方法。
【請求項１９】
サーバにおいて、複数の眼鏡の３次元モデルを記憶するステップをさらに備える請求項１２に記載のコンピュータによって実行される方法。
【請求項２０】
前記ユーザの前記３次元モデル及び前記眼鏡の前記３次元モデルに基づいて、前記眼鏡が前記ユーザに合わないサイズであると判定するステップと、
前記ユーザの前記３次元モデルに基づいて前記眼鏡のうちの異なる眼鏡を特定するステップと、
前記眼鏡のうちの前記特定された異なる眼鏡の推奨を提供するステップと
をさらに備える請求項１９に記載のコンピュータによって実行される方法。
【請求項２１】
システムであって、
複数の眼鏡についての３次元モデルを記憶するデータベースを有するサーバと、
ユーザのユーザデバイスと
を備え、
前記ユーザデバイスは、前記ユーザデバイスのプロセッサによって実行されると、前記プロセッサに、
前記ユーザの顔の画像を撮影させ、
前記ユーザの３次元位置情報を取得させ、
前記眼鏡のうちの選択された眼鏡の３次元モデルを前記サーバから取得させ、
前記画像、前記ユーザの前記３次元位置情報、及び前記眼鏡のうちの前記選択された眼鏡の前記３次元モデルに基づいて、前記眼鏡のうちの前記選択された眼鏡の仮想表現についてのサイズ及び位置を決定させ、ここで、前記眼鏡のうちの前記選択された眼鏡の前記仮想表現の前記サイズを決定することは、
前記３次元位置情報を用いて、前記ユーザの前記顔の物理的サイズを決定すること、
前記画像及び前記ユーザの前記顔の前記決定された物理的サイズを用いて、画像画素における前記ユーザの前記顔のサイズを決定すること、
前記ユーザの前記顔の前記物理的サイズ及び画像画素における前記ユーザの前記顔の前記サイズに基づいて前記画像における各画像画素についての画素サイズを決定すること、及び
前記眼鏡の既知のサイズ及び前記決定された画素サイズに基づいて、前記眼鏡の前記仮想表現の前記サイズを決定すること
を含み、さらに、
前記眼鏡のうちの前記選択された眼鏡の前記仮想表現を前記眼鏡の前記選択された眼鏡の前記仮想表現の前記決定されたサイズ及び前記決定された位置で前記ユーザの前記顔の前記画像に重畳させて表示用に提供させる
コードを記憶するメモリを含む、前記システム。
【国際調査報告】
2021534516.tif 000016
2021534516.tif 000017
2021534516.tif 000018