IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ジャンド インコーポレイテッドの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-21
(45)【発行日】2022-07-29
(54)【発明の名称】眼鏡用仮想試着システム及び方法
(51)【国際特許分類】
   G06T 19/00 20110101AFI20220722BHJP
【FI】
G06T19/00 600
【請求項の数】 19
(21)【出願番号】P 2021512526
(86)(22)【出願日】2019-12-21
(65)【公表番号】
(43)【公表日】2021-12-09
(86)【国際出願番号】 US2019068200
(87)【国際公開番号】W WO2020142295
(87)【国際公開日】2020-07-09
【審査請求日】2021-04-07
(31)【優先権主張番号】16/239,745
(32)【優先日】2019-01-04
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】511208689
【氏名又は名称】ワービー・パーカー・インコーポレイテッド
(74)【代理人】
【識別番号】100092783
【弁理士】
【氏名又は名称】小林 浩
(74)【代理人】
【識別番号】100120134
【弁理士】
【氏名又は名称】大森 規雄
(74)【代理人】
【識別番号】100187964
【弁理士】
【氏名又は名称】新井 剛
(74)【代理人】
【識別番号】100104282
【弁理士】
【氏名又は名称】鈴木 康仁
(72)【発明者】
【氏名】ゴールドバーグ,デイビッド
(72)【発明者】
【氏名】ラコフスキ,マイケル
(72)【発明者】
【氏名】コーヘン,ベンジャミン
(72)【発明者】
【氏名】ホール,ベン
(72)【発明者】
【氏名】ベルンベルク,ブライアン
(72)【発明者】
【氏名】ザクリッツ,ハンナ
【審査官】村松 貴士
(56)【参考文献】
【文献】国際公開第2018/220203(WO,A2)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00 - 19/20
G06F 30/00 - 30/28
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実行される方法であって、
電子デバイスのカメラによってユーザの顔の画像を撮影するステップと、
前記電子デバイスのセンサを用いて、前記ユーザの3次元位置情報を取得するステップと、
眼鏡の3次元モデルを取得するステップと、
前記画像及び前記3次元位置情報に基づいて前記眼鏡の仮想表現の位置を決定するステップと、
前記画像及び前記3次元位置情報に基づいて前記眼鏡の前記仮想表現のサイズを決定するステップであって、
前記3次元位置情報を用いて、前記ユーザの前記顔の物理的サイズを決定し、
前記画像及び前記ユーザの前記顔の前記決定された物理的サイズを用いて、画像画素における前記ユーザの前記顔のサイズを決定し、
前記決定された物理的サイズ及び画像画素における前記ユーザの前記顔の前記物理的サイズに基づいて前記画像における各画像画素についての画素サイズを決定し、
前記眼鏡の既知のサイズ及び前記決定された画素サイズに基づいて、前記眼鏡の前記仮想表現の前記サイズを決定すること
によって前記眼鏡の前記仮想表現のサイズを決定するステップと、
前記電子デバイスのディスプレイによって、前記ユーザの前記顔の前記画像及び前記眼鏡の前記仮想表現を含む合成画像を前記眼鏡の前記仮想表現の前記決定されたサイズ及び前記決定された位置で表示するステップと
を備える、前記コンピュータによって実行される方法。
【請求項2】
前記眼鏡の前記仮想表現の前記サイズ及び前記位置は、前記眼鏡が前記ユーザの前記顔上に物理的に載置されて見えるように、前記合成画像において前記眼鏡を正確に表すようにそれぞれ決定される、請求項1に記載のコンピュータによって実行される方法。
【請求項3】
前記眼鏡の前記仮想表現の前記位置を決定するステップが、前記眼鏡の前記3次元モデルを前記ユーザの前記3次元位置情報と交差させるステップを備える、請求項1に記載のコンピュータによって実行される方法。
【請求項4】
前記交差させるステップが、前記眼鏡の前記3次元モデルと前記ユーザの前記3次元位置情報との間の少なくとも1回の衝突検出動作を実行するステップを備える、請求項3に記載のコンピュータによって実行される方法。
【請求項5】
前記少なくとも1回の衝突検出動作を実行するステップが、前記眼鏡の前記3次元モデルについての対応する複数の位置において、前記眼鏡の前記3次元モデルと前記ユーザの前記3次元位置情報との間の複数回の衝突検出動作を反復的に実行するステップを備える、請求項4に記載のコンピュータによって実行される方法。
【請求項6】
前記複数回の衝突検出動作を反復的に実施するステップが、二分探索動作を用いて前記対応する複数の位置を反復的に決定するステップを備える、請求項5に記載のコンピュータによって実行される方法。
【請求項7】
前記ユーザについての前記3次元位置情報は、複数の測定点絶対3次元位置、前記ユーザの3次元モデル及び複数の顔ランドマーク絶対位置のうちの、少なくとも1つを備える、請求項4に記載のコンピュータによって実行される方法。
【請求項8】
前記センサが追加のカメラを備え、前記方法は、
前記電子デバイスの光源によって、少なくとも一部が前記ユーザの前記顔に向けられる複数の光ビームを生成するステップと、
前記光ビームの前記少なくとも一部が前記ユーザの前記顔に向けられつつ、前記追加のカメラを用いて第2の画像を撮影するステップと
をさらに備える請求項7に記載のコンピュータによって実行される方法。
【請求項9】
前記撮影された第2の画像における前記光ビームの前記少なくとも一部の反射に基づいて前記複数の測定点絶対3次元位置を決定するステップをさらに備える請求項8に記載のコンピュータによって実行される方法。
【請求項10】
前記センサが追加のカメラを備え、前記方法が、
前記追加のカメラ用いて前記ユーザの追加の画像を撮影するステップと、
前記カメラと前記追加のカメラとの間の既知の距離及び前記画像と前記追加の画像との間の視差効果に基づいて前記ユーザについての前記3次元位置情報を生成するステップと
をさらに備える請求項1に記載のコンピュータによって実行される方法。
【請求項11】
前記センサが、タイム・オブ・フライトセンサ、レーザ測距装置、モーションセンサ、近接センサ、構造化光センサ及び追加のカメラのうちの少なくとも1つを備える、請求項1に記載のコンピュータによって実行される方法。
【請求項12】
コンピュータによって実行される方法であって、
ユーザの顔の画像を撮影するステップと、
前記画像の撮影時の前記ユーザの3次元モデルを取得するステップと、
眼鏡の3次元モデルを取得するステップと、
前記画像、前記画像の撮影時の前記ユーザの前記3次元モデル及び前記眼鏡の前記3次元モデルに基づいて前記眼鏡の仮想表現のためのサイズ及び位置を決定するステップであって、前記眼鏡の前記仮想表現のための前記位置を決定するステップは、前記ユーザの前記3次元モデル上の顔ランドマークに原点を有する顔座標系における複数のテスト位置において前記眼鏡の前記3次元モデルを用いて、前記ユーザの前記3次元モデルと前記眼鏡の前記3次元モデルとの間の複数回の衝突検出動作を実行することを備える、ステップと、
前記眼鏡の前記仮想表現を前記決定されたサイズ及び前記決定された位置で前記ユーザの前記顔の前記画像に重畳させて表示するステップと
を備え、
前記顔座標系の前記原点が、前記画像の撮影時の前記ユーザの前記3次元モデルの鼻高にあり、
前記顔座標系のx軸は、前記画像の撮影時の前記ユーザの前記3次元モデルの左側と右側の間に延在し、正方向x軸は、前記原点から前記画像の撮影時の前記ユーザの前記3次元モデルの前記左側に向かって延び、
前記顔座標系のy軸は、前記x軸に垂直にかつ前記画像の撮影時の前記ユーザの前記3次元モデルの上部と下部の間に延在し、正方向y軸は、前記原点から前記画像の撮影時の前記ユーザの前記3次元モデルの前記上部に向かって延び、
前記顔座標系のz軸は、前記x軸及び前記y軸に垂直にかつ前記画像の撮影時の前記ユーザの前記3次元モデルの前方と後方の間に延在し、正方向z軸は、前記原点から前記画像の撮影時の前記ユーザの前記3次元モデルの前記前方に向かって延び、
前記顔座標系における前記複数のテスト位置の各々は、前記y軸に沿って異なるyオフセット、前記x軸に沿ってゼロのxオフセット、及び前記z軸に沿って共通のzオフセットを有する、前記コンピュータによって実行される方法。
【請求項13】
前記眼鏡がアセテートフレームを含む、請求項12に記載のコンピュータによって実行される方法。
【請求項14】
コンピュータによって実行される方法であって、
ユーザの顔の画像を撮影するステップと、
前記画像の撮影時の前記ユーザの3次元モデルを取得するステップと、
眼鏡の3次元モデルを取得するステップと、
前記画像、前記画像の撮影時の前記ユーザの前記3次元モデル及び前記眼鏡の前記3次元モデルに基づいて前記眼鏡の仮想表現のためのサイズ及び位置を決定するステップであって、前記眼鏡の前記仮想表現のための前記位置を決定するステップは、前記ユーザの前記3次元モデル上の顔ランドマークに原点を有する顔座標系における複数のテスト位置において前記眼鏡の前記3次元モデルを用いて、前記ユーザの前記3次元モデルと前記眼鏡の前記3次元モデルとの間の複数回の衝突検出動作を実行することを備える、ステップと、
前記眼鏡の前記仮想表現を前記決定されたサイズ及び前記決定された位置で前記ユーザの前記顔の前記画像に重畳させて表示するステップと
を備え、
前記顔座標系の前記原点が、前記画像の撮影時の前記ユーザの前記3次元モデルの鼻高にあり、
前記顔座標系のx軸は、前記画像の撮影時の前記ユーザの前記3次元モデルの左側と右側の間に延在し、正方向x軸は、前記原点から前記画像の撮影時の前記ユーザの前記3次元モデルの前記左側に向かって延び、
前記顔座標系のy軸は、前記x軸に垂直にかつ前記画像の撮影時の前記ユーザの前記3次元モデルの上部と下部の間に延在し、正方向y軸は、前記原点から前記画像の撮影時の前記ユーザの前記3次元モデルの前記上部に向かって延び、
前記顔座標系のz軸は、前記x軸及び前記y軸に垂直にかつ前記画像の撮影時の前記ユーザの前記3次元モデルの前方と後方の間に延在し、正方向z軸は、前記原点から前記画像の撮影時の前記ユーザの前記3次元モデルの前記前方に向かって延び、
前記顔座標系における前記複数のテスト位置の各々は、前記z軸に沿って異なるzオフセット、前記x軸に沿ってゼロのxオフセット、及び前記y軸に沿って共通のyオフセットを有する、前記コンピュータによって実行される方法。
【請求項15】
前記眼鏡は、金属フレームであって前記金属フレームから延在する調整可能アーム上に鼻パッドを有する金属フレームを含む、請求項14に記載のコンピュータによって実行される方法。
【請求項16】
コンピュータによって実行される方法であって、
ユーザの顔の画像を撮影するステップと、
前記画像の撮影時の前記ユーザの3次元モデルを取得するステップと、
眼鏡の3次元モデルを取得するステップと、
前記画像、前記画像の撮影時の前記ユーザの前記3次元モデル及び前記眼鏡の前記3次元モデルに基づいて前記眼鏡の仮想表現のためのサイズ及び位置を決定するステップであって、前記眼鏡の前記仮想表現のための前記位置を決定するステップは、前記ユーザの前記3次元モデル上の顔ランドマークに原点を有する顔座標系における複数のテスト位置において前記眼鏡の前記3次元モデルを用いて、前記ユーザの前記3次元モデルと前記眼鏡の前記3次元モデルとの間の複数回の衝突検出動作を実行することを備える、ステップと、
前記眼鏡の前記仮想表現を前記決定されたサイズ及び前記決定された位置で前記ユーザの前記顔の前記画像に重畳させて表示するステップと
を備え、
前記複数のテスト位置は、前記画像の撮影時の前記ユーザの前記3次元モデルが前記眼鏡の前記3次元モデルと接触していない少なくとも1つのテスト位置を含み、
前記眼鏡の前記仮想表現の前記位置を決定するステップは、前記少なくとも1つのテスト位置を前記顔座標系の前記原点に向かって反復的に移動させるステップ、及び前記画像の撮影時の前記ユーザの前記3次元モデルと前記眼鏡の前記3次元モデルとの間の最初の接触が検出されるまで前記複数回の衝突検出動作を実行するステップを備える、前記コンピュータによって実行される方法。
【請求項17】
サーバにおいて、複数の眼鏡の3次元モデルを記憶するステップをさらに備える請求項12に記載のコンピュータによって実行される方法。
【請求項18】
前記ユーザの前記3次元モデル及び前記眼鏡の前記3次元モデルに基づいて、前記眼鏡が前記ユーザに合わないサイズであると判定するステップと、
前記ユーザの前記3次元モデルに基づいて前記眼鏡のうちの異なる眼鏡を特定するステップと、
前記眼鏡のうちの前記特定された異なる眼鏡の推奨を提供するステップと
をさらに備える請求項17に記載のコンピュータによって実行される方法。
【請求項19】
システムであって、
複数の眼鏡についての3次元モデルを記憶するデータベースを有するサーバと、
ユーザのユーザデバイスと
を備え、
前記ユーザデバイスは、前記ユーザデバイスのプロセッサによって実行されると、前記プロセッサに、
前記ユーザの顔の画像を撮影させ、
前記ユーザの3次元位置情報を取得させ、
前記眼鏡のうちの選択された眼鏡の3次元モデルを前記サーバから取得させ、
前記画像、前記ユーザの前記3次元位置情報、及び前記眼鏡のうちの前記選択された眼鏡の前記3次元モデルに基づいて、前記眼鏡のうちの前記選択された眼鏡の仮想表現についてのサイズ及び位置を決定させ、ここで、前記眼鏡のうちの前記選択された眼鏡の前記仮想表現の前記サイズを決定することは、
前記3次元位置情報を用いて、前記ユーザの前記顔の物理的サイズを決定すること、
前記画像及び前記ユーザの前記顔の前記決定された物理的サイズを用いて、画像画素における前記ユーザの前記顔のサイズを決定すること、
前記ユーザの前記顔の前記物理的サイズ及び画像画素における前記ユーザの前記顔の前記サイズに基づいて前記画像における各画像画素についての画素サイズを決定すること、及び
前記眼鏡の既知のサイズ及び前記決定された画素サイズに基づいて、前記眼鏡の前記仮想表現の前記サイズを決定すること
を含み、さらに、
前記眼鏡のうちの前記選択された眼鏡の前記仮想表現を前記眼鏡の前記選択された眼鏡の前記仮想表現の前記決定されたサイズ及び前記決定された位置で前記ユーザの前記顔の前記画像に重畳させて表示用に提供させる
コードを記憶するメモリを含む、前記システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概略として拡張現実に関し、より具体的には眼鏡用仮想試着システム及び方法に関する。
【背景技術】
【0002】
仮想の対象物が実世界の対象物の画像にデジタル的に重畳される拡張現実アプリケーションが開発されてきた。ある場合では、ユーザがシーンを辿るにつれて、ゲームのキャラクターなどの仮想の対象物が、スマートフォン又はタブレットによって表示されるシーンの画像に付加される。他の場合では、スマートフォン又はタブレットのカメラで撮影された、スマートフォン又はタブレットのユーザの顔の画像に、アニメ動物の顔特徴などのアニメ的特徴が付加される。これらの従来的な拡張現実システムでは、仮想の対象物の漫画的な又はリアル感のない性質が、実世界の対象物に対する仮想の対象物のサイズ、形状、向き及び配置の精度における大きな自由度を可能とする。
【発明の概要】
【0003】
本開示は、眼鏡フレームの仮想試着(Virtual Try-On(VTO))のためのシステムを提供する。開示のシステム及び方法は、VTOインターフェースのユーザに、眼鏡フレームが彼らの顔においてどのように見えるかを、物理的眼鏡フレームを手に取ることなく判定させることを可能とする。開示のシステム及び方法では、彼らの画像がカメラで撮影され、眼鏡フレームの仮想表現が撮影画像に重畳され、合成画像がユーザに示される。
【0004】
しかし、リアルな仮想試着体験を創出する際に、2つの大きな課題がある。それは(i)特定のユーザの固有の顔の測定及び特徴に対する眼鏡フレームの現実感のあるサイズ取り、並びに(ii)ユーザの現実の3次元の顔に眼鏡フレームをかけたとした場合の眼鏡フレームの現実感のある位置決めを含む。
【0005】
本開示の態様によると、これらの課題の双方を克服するシステム及び方法が提供される。例えば、更なる詳細を後述するように、上記課題(i)は、撮影画像におけるユーザの絶対サイズ及び距離を特定することによって少なくともある程度克服可能となり、上記課題(ii)は、眼鏡フレームの3次元モデルをユーザの顔及び頭部の種々の側面についての3次元位置情報と反復的に交差させることによって克服可能となる。
【0006】
本開示のある態様によると、コンピュータによって実行される方法が提供される。その方法は、電子デバイスのカメラによってユーザの顔の画像を撮影するステップと、電子デバイスのセンサを用いてユーザの3次元位置情報を取得するステップと、眼鏡の3次元モデルを取得するステップと、画像及び3次元位置情報に基づいて眼鏡の仮想表現の位置を決定するステップと、画像及び3次元位置情報に基づいて眼鏡の仮想表現のサイズを決定するステップと、電子デバイスのディスプレイによって、ユーザの画像及び眼鏡の仮想表現を含む合成画像を決定されたサイズ及び決定された位置で表示するステップとを含む。
【0007】
本開示のある態様によると、コンピュータによって実行される方法が提供される。その方法は、ユーザの顔の画像を撮影するステップと、画像の撮影時のユーザの3次元モデルを取得するステップと、眼鏡の3次元モデルを取得するステップと、画像、画像の撮影時のユーザの3次元モデル及び眼鏡の3次元モデルに基づいて眼鏡の仮想表現のためのサイズ及び位置を決定するステップと、眼鏡の仮想表現を決定されたサイズ及び決定された位置でユーザの顔の画像に重畳させて表示するステップとを含む。
【0008】
本開示のある態様によると、複数の眼鏡についての3次元モデルを記憶するデータベースを有するサーバと、ユーザのユーザデバイスとを含むシステムが提供される。ユーザデバイスは、ユーザデバイスのプロセッサによって実行されると、プロセッサに、ユーザの顔の画像を撮影させ、ユーザの3次元モデルを取得させ、眼鏡のうちの選択された眼鏡の3次元モデルをサーバから取得させ、画像、ユーザの3次元モデル及び眼鏡のうちの選択された眼鏡の3次元モデルに基づいて、眼鏡のうちの選択された眼鏡の仮想表現についてのサイズ及び位置を決定させ、眼鏡のうちの選択された眼鏡の仮想表現を決定されたサイズ及び決定された位置でユーザの顔の画像に重畳させて表示用に提供させるコードを記憶するメモリを含む。
【0009】
主題の技術の他の構成は以下の詳細な説明から当業者に直ちに明らかとなり、主題の技術の種々の構成が例示として図示及び記載されることが理解される。認識されるように、主題の技術は、いずれも主題の技術の範囲から逸脱することなく、他の及び様々な構成を可能とし、その幾つかの詳細は種々の他の点において変形例を可能とする。したがって、図面及び詳細な説明は、例示的性質のものとしてみなされるべきであり、限定的なものとしてみなされるべきではない。
【0010】
更なる理解を与えるために含まれ、この明細書の一部に取り込まれるとともにそれを構成する添付図面は、開示の実施形態を示し、説明とともに開示の実施形態の原理を説明する役割を果たすものである。
【図面の簡単な説明】
【0011】
図1図1は、本開示の幾つかの実施例を実施するのに適した仮想試着のための例示のアーキテクチャを示す。
図2図2は、本開示の所定の態様による仮想試着インターフェースを示す模式図である。
図3図3は、本開示の所定の態様による例示の眼鏡を示す。
図4図4は、本開示の所定の態様による、ユーザの画像上に眼鏡の仮想表現を表示する仮想試着インターフェースを示す模式図である。
図5図5は、本開示の所定の態様による、顔座標系を説明する模式図である。
図6図6は、本開示の所定の態様による、眼鏡の3次元モデルとユーザの3次元モデルとの間の埋没接触を説明する模式図である。
図7図7Aは、本開示の所定の態様による、仮想試着のための例示的な物理的配置動作中の顔座標系における眼鏡の3次元モデルに対する種々のテスト位置の1つを示す。図7Bは、本開示の所定の態様による、仮想試着のための例示的な物理的配置動作中の顔座標系における眼鏡の3次元モデルに対する種々のテスト位置の1つを示す。図7Cは、本開示の所定の態様による、仮想試着のための例示的な物理的配置動作中の顔座標系における眼鏡の3次元モデルに対する種々のテスト位置の1つを示す。図7Dは、本開示の所定の態様による、仮想試着のための例示的な物理的配置動作中の顔座標系における眼鏡の3次元モデルに対する種々のテスト位置の1つを示す。
図8図8Aは、本開示の所定の態様による、仮想試着のための他の例示的な物理的配置動作中の顔座標系における眼鏡の3次元モデルに対する種々のテスト位置の1つを示す。図8Bは、本開示の所定の態様による、仮想試着のための他の例示的な物理的配置動作中の顔座標系における眼鏡の3次元モデルに対する種々のテスト位置の1つを示す。図8Cは、本開示の所定の態様による、仮想試着のための他の例示的な物理的配置動作中の顔座標系における眼鏡の3次元モデルに対する種々のテスト位置の1つを示す。図8Dは、本開示の所定の態様による、仮想試着のための他の例示的な物理的配置動作中の顔座標系における眼鏡の3次元モデルに対する種々のテスト位置の1つを示す。
図9-10】図9は、本開示の所定の態様による、ユーザの顔又は頭部の一部分と接触する眼鏡の一部分の断面図を示す。図10は、本開示の所定の態様による、ユーザの顔又は頭部の一部分を圧縮する図9の眼鏡の一部分の断面図を示す。
図11図11は、本開示の所定の態様による、眼鏡の仮想試着のための例示の処理を示す。
図12図12は、本開示の所定の態様による、眼鏡の仮想表現のための位置を決定するための例示の処理を示す。
図13-15】図13は、本開示の所定の態様による、ユーザについての絶対測定位置を取得することを示す模式図である。図14は、本開示の所定の態様による、ユーザの3次元モデルの2次元レンダリングを示す模式図である。図15は、本開示の所定の態様による、ユーザについての顔ランドマーク絶対位置を示す模式図である。
図16図16は、本開示の所定の態様による、図1のユーザデバイス、試着サーバ及び/又は第三者サーバが実施され得る例示のコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0012】
以下の詳細な説明では、本開示の完全な理解を与えるように多数の具体的詳細が説明される。ただし、本開示の実施形態はこれらの具体的詳細の一部がなくても実施され得ることは、当業者には明らかとなる。他の事例では、周知の構造及び技術は、本開示を不明瞭としないように、詳細には示されていない。
【0013】
全体的概要
仮想試着システム及び方法が、ここに開示される。仮想試着システム及び方法は、ユーザが実世界の眼鏡又はフレームを手に取ることなく、眼鏡又は眼鏡フレームが実世界におけるユーザの顔でどのように見えるかを確認するのに特に有用となり得る。ただし、ここに記載されるシステム及び方法は、眼鏡アクセサリ、帽子、イヤリング、他の身体ピアスアクセサリ、宝石、衣服などの仮想試着用などの、ユーザの身体の他の部位上の他の対象物の仮想試着用に適用可能であることも理解されるべきである。ここに開示される仮想試着システム及び方法によって、ユーザは、特定の実世界のアイテムがユーザの特定の身体上で見える態様を可視化することができる。
【0014】
一方、リアル感の欠如に苛まされないVTOの実施例を提供することは困難となり得ることが分かってきた。あるシナリオでは、VTOシステムは、ユーザに関する3次元情報を利用しなくてもよく、したがって画像におけるユーザの顔特徴に対してどのようなサイズで仮想眼鏡を作製するのかを推量することができる。これは、特に画像における又は画像に対する尺度基準がない場合に、ユーザの顔特徴の物理的サイズを画像から推定するのは単純ではないためである。あるVTOシステムは、仮想眼鏡の適切なサイズを決定するためにユーザの頭部が平均的サイズであると仮定することもある。しかし、この種の仮定は、平均よりも小さい又は大きい頭部を有するユーザに対してリアル感のない結果を生成することになる。
【0015】
またさらに、2次元画像から取得可能でない3次元情報がない場合、VTOシステムは、どこで眼鏡が顧客の顔に着座するのかを標準的なユーザの標準的な顔特徴に基づいて推量することになる。しかし、実際には、どのように特定の眼鏡が特定のユーザの顔に着座するかの特異性は、眼鏡の前面の正確な形状並びに顧客の鼻及びブリッジの3次元形状の関数となる。したがって、標準的な特徴を用いると、仮定の標準的な特徴とは異なる特徴を有する顧客においてリアル感のない結果がもたらされてしまう。
【0016】
あるシナリオでは、VTOシステムは、撮影画像における特定の顔特徴の顔測定値又は識別子をVTOシステムに入力するなど、ユーザが追加情報を提供することを要求し得る。しかし、これらの追加のユーザ入力は不正確でありかつ無用に時間がかかるものであり、それにより、VTOシステムのユーザはVTOインターフェースを提供するアプリケーション又はウェブサイトから(例えば、競業他社に提供されるVTOシステムへと)離れてしまうことになる。
【0017】
主題の開示の態様によると、画像におけるユーザの顔のサイズについての情報を備える、ユーザの顔の3次元表現とともにユーザの顔の撮影画像を用いて、実世界の眼鏡の実際の外見のリアルな表現を特定のユーザの顔に与えるVTOシステム及び方法が提供される。撮影画像におけるユーザの顔のサイズは直接測定されるため、ここに記載するVTOシステム及び方法はユーザの顔に対する正しい相対サイズで眼鏡の仮想表現をレンダリングすることができる。眼鏡が実際のユーザの顔にかかっているような、ユーザの顔の画像に対する眼鏡の仮想表現の正確な配置(例えば、位置決め及び/又は向き)を以下にさらに詳細に説明する。
【0018】
ここに提供される多数の例は、ユーザのデバイス又は物理的特徴は特定及び/又は記憶されているものとして説明するが、各ユーザはそのようなユーザ情報が収集、共有及び/又は記憶されることの明示的な許可を与えることもできる。明示的な許可は、開示されるシステムに統合されるプライバシー管理を用いて許可されてもよい。各ユーザはそのようなユーザ情報が明示の同意で記憶されることの通知を受けることができ、各ユーザは記憶された情報を有することをいつでも終了することができ、いずれかの記憶されたユーザ情報を削除することもできる。記憶されたユーザ情報は、ユーザセキュリティを保護するように暗号化され得る。ここに記載する幾つかの実施形態は、任意の全ての適用可能な州及び/又は連邦規則に応じて、リモートサーバにユーザの生体認証データの一時的記憶から利益を得ることができるが、一般に、ユーザの生体認証データはユーザのデバイスのみで記憶及び処理され、現在のVTOセッションが終了すると破棄される。
【0019】
ユーザはいつでも、ユーザ情報をメモリから削除し、及び/又はユーザ情報をメモリに記憶させることからオプトアウトすることができる。さらに、ユーザは、いつでも、適切なプライバシー設定を調整してメモリに記憶されたユーザ情報のタイプを選択的に制限することができ、又はユーザ情報が(例えば、サーバ上でリモートに記憶されるのとは逆にユーザのデバイスでローカルに)記憶されるメモリを選択することができる。多数の例において、ユーザ情報は、ユーザによって具体的に提供又は指示されない限り、ユーザの具体的識別(例えば、ユーザの名前)を含まず及び/又は共有しない。
【0020】
例示のシステムアーキテクチャ
図1は、本開示のある実施例を実施するのに適した、眼鏡の仮想試着のための例示のアーキテクチャ100を示す。アーキテクチャ100は、ネットワーク150を介して接続される試着サーバ130及びユーザデバイス110を含む。図示するように、第三者サーバ140も、ネットワーク150を介して試着サーバ130及び/又はユーザデバイス110と通信可能に接続され得る。試着サーバ130は、ユーザデバイス110の1以上を用いて仮想的に試着可能な対象物に関連付けられた情報のデータベース142を含み得る。例えば、試着サーバ130のデータベース142は、(例えば、試着サーバ自体から、物理的に実在する店舗から、又は第三者サーバ140などの他のサーバから)購入用に入手可能なレンズ付き又はレンズなしの様々な眼鏡フレームの3次元モデルを含み得る。ある実施例では、試着サーバ130は、サーバのプロセッサで実行されると、ここに記載される試着方法及び動作を実行する試着インターフェース(例えば、試着ウェブインターフェース)をプロセッサに提供させるコードも記憶し得る。ある実施例では、試着インターフェースのためのコードはまた、又は代替的に、ユーザデバイス110の1以上に記憶されてもよい。これらの実施例では、(例えば、ユーザデバイス上で稼働している試着アプリケーションによって生成される)試着インターフェースを実行するユーザデバイスは、試着サーバ130から眼鏡の3次元モデルを取得し、ここに記載されるような試着動作をユーザデバイスにおいて実行し得る。
【0021】
第三者サーバ140は3次元表現が試着サーバ130に記憶される眼鏡の販売を扱うサーバを含んでいてもよく、又は第三者サーバ140は、試着サーバ130及び/又はユーザデバイス110によって提供された試着インターフェースを用いて(例えば、他の対象物の3次元モデルをデータベース144に記憶し、3次元モデルを試着サーバ130及び/又はユーザデバイス110に提供することによって)試着可能な他の対象物の3次元表現を記憶してもよい。
【0022】
試着サーバ130の各々は、試着インターフェースをホスティングし及び/又は眼鏡若しくは他の対象物の3次元モデルを記憶するための適切なプロセッサ、メモリ及び通信機能を有する任意のデバイスで実施可能である。ユーザデバイス110は、例えば、デスクトップコンピュータ、ラップトップコンピュータなどのモバイルコンピュータ、タブレットコンピュータ(例えば、電子書籍リーダを含む)、モバイル電子デバイス(例えば、スマートフォン、タブレット又はPDA)又は仮想試着インターフェースを提供するための適切な撮像(例えば、可視光撮像及び/又は赤外撮像)、照明(例えば、可視光照明及び/又は赤外光照明)、プロセッサ、メモリ及び通信の機能を有する他の任意のデバイスであり得る。ネットワーク150は、例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネットなどのうちのいずれか1つ以上を含み得る。また、ネットワーク150は、これに限定されないが、以下のバスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スターバスネットワーク、ツリー又は階層ネットワークなどを含むネットワークトポロジーのうちのいずれか1つ以上を含み得る。
【0023】
例示の仮想試着(VTO)インターフェース
図2は、ユーザデバイス110の1つで稼働する仮想試着(VTO)インターフェース202を示す模式図である。仮想試着インターフェース202は、試着サーバ130などのリモートデバイスにおいて実行されているコードに基づくウェブインターフェースであってもよいし、ユーザデバイス自体において稼働するローカル仮想試着アプリケーションであってもよい。
【0024】
図2の例では、ユーザの画像200が(例えば、ユーザデバイス110の可視光カメラ205を用いて)既に撮影され、ユーザデバイス110のディスプレイ201によって表示される。ユーザの顔の種々の特徴が画像200において識別可能であることが分かる。例えば、ユーザの目206、鼻223、頭髪222が、ユーザデバイス110及び/又は試着サーバ130によって画像200において確認及び識別可能である。ユーザの鼻根(sellion)208、瞳中心204、上耳底点218、眉中216、眉間225及び/又は鼻尖点210などのより詳細な特徴も、ユーザデバイス110及び/又は試着サーバ130によって確認及び識別可能となる。ユーザデバイス110及び/又は試着サーバ130によって画像200において確認及び識別可能なもの以外の顔ランドマークは、ユーザの目頭、目尻、耳点(tragion)、ジギオン(zygion)、上瞼(palpebrale superius)、下瞼(palpebrale inferius)、フロントテンポラーレ(frontotemporale)、顎前歯(maxillofrontalle)、眼窩点(orbitale)、耳点、鼻根点及びメントン(menton)を(例として)含む。
【0025】
ただし、画像200は、画像にユーザの特徴のいずれのサイズ及び/又は絶対位置に関するいかなる情報も含まない2次元画像であってもよい。ユーザのそれら及び/又は他の特徴についての3次元位置情報は、他のカメラ、モーションセンサ(例えば、視覚慣性オドメトリ)、近接センサ、タイム・オブ・フライトセンサ、レーザ測距装置、又はカメラ205の視野における対象物についての3次元位置情報を取り込むことができる他の任意のセンサなどの追加のセンサ209を用いて取得され得る。一例では、センサ209は、視差情報(例えば、2つのステレオ画像カメラ205及び209によって撮影された画像間の視差効果)及びカメラ間の既知の距離が3次元位置情報を提供できるように、カメラ205から空間的にオフセットされた他の可視光カメラとして実施され得る。他の例では、3次元位置情報は、カメラとして実施されるカメラ205及び/又はセンサ209に対するユーザの移動に基づいてSFM(structure-from-motion)動作を用いて生成され得る。
【0026】
他の例では、センサ209は、赤外光源207によって放射される1以上の赤外線ビームの反射など、ユーザの顔及び/又は頭部からの赤外光を撮影する赤外線カメラであってもよい。例えば、赤外光源207は、反射部分がセンサ209によって撮像可能な、ユーザの顔及び/又は頭部上の種々の測定位置に赤外線スポットを生成する幾つかの(例えば、数十、数百、数千の)赤外線ビームを放射し得る。赤外線スポットの各々までの絶対距離を測定するために、撮影された赤外線画像における赤外線スポットの歪が、赤外線ビームの既知のサイズ及び形状とともに使用可能である。したがって、センサ209は、カメラとして実施されるか他の3次元センサとして実施されるかにかかわらず、(例えば、画像200における対応する特徴を有する種々の測定位置の絶対3次元位置間の距離を測定することによって)画像200におけるユーザの顔の絶対サイズ及び/又はユーザの顔の種々の特徴が測定されることを可能とする。
【0027】
ユーザデバイス110(及び/又は試着サーバ130)は、測定点絶対3次元位置211、測定点絶対3次元位置211に基づくユーザの3次元モデル213及び/又は顔ランドマーク絶対位置215などのユーザについての3次元位置情報を生成及び/又は記憶することができる。記憶される3次元位置情報は、画像200における対応の特徴の2次元位置にマッピングされる。顔ランドマーク絶対位置215は、測定点絶対3次元位置211の小集合であってもよいし、平均化され、補間され及び/又はあるいは合成された測定点絶対3次元位置211であってもよいし、3次元モデル213に基づいて測定されてもよい。3次元モデル213は、測定点絶対3次元位置211に基づいて又は測定点絶対3次元位置211から抽出又は生成されていた顔ランドマーク絶対位置215に基づいて生成され得る。種々の実施例では、3次元モデル213及び/又は顔ランドマーク絶対位置215は、ユーザデバイス110によってサーバに提供されるデータ(例えば、測定点絶対3次元位置211)を用いてユーザデバイス110又は試着サーバ130において生成され得る。
【0028】
画像200に表されるユーザは、図3の眼鏡300など、ユーザが物理的に手に取らない対象物を試着したいと望むことがある。図3に示すように、眼鏡300は、フレームに搭載されるフレーム302及びレンズ304などの物理的特徴を含む。
【0029】
フレーム302は、ブリッジ308、鼻パッド310、テンプル306、末端部(智)316及びテンプル先端(先セル)309を含む。鼻パッド310は、(例えば、アセテートフレームについて)フレームに構成されてもよいし、(例えば、金属又は混合材フレームについて)フレームから延在するパッドアーム(例えば、調整可能アーム)上に配置された別個のパッドであってもよい。フレーム302の種々の部分は、装着者の特定の特徴に応じて、装着者の顔の対応部分との接触点となり得る。例えば、一体化された鼻パッド310を有するアセテートフレームについて、ブリッジ308は、一般に装着者の鼻根208に乗る一方で、一体化された鼻パッドはユーザの鼻の鼻橋部212に乗る。他の例では、パッドアーム上に鼻パッドを有する金属フレームについて、眼鏡が鼻パッド310とユーザの鼻の鼻橋212との間の接触によって主に支持された状態で、ブリッジ308はユーザの皮膚から浮くことになり、又はユーザの比較的高い位置(例えば、眉間225)に対して留まることになる。
【0030】
任意のフレーム材料について、フレームの下端314(例えば、レンズ304の下)又はリムレスフレーム若しくは部分的にリムレスのフレームの眼鏡ではレンズ304の下部は、ユーザとの接触から浮き、又はユーザの皮膚の頬骨部分214に乗ることになる。同様に、任意のフレーム材料について、レンズ上部のフレームの部分312(又はリムレスフレームに搭載されたレンズの上部)は、ユーザとの接触から浮き、又は眉、眉中216若しくはユーザの皮膚の近傍に乗ることになる。同様に、任意のフレーム材料について、フレーム302のテンプル306が上耳底点218に乗り、及び/又はテンプル先端309の所定部分がユーザの耳220の後ろのユーザの頭部の部分に乗ることになる。眼鏡300とユーザの顔及び頭部との間の接点は、非常に対称な特徴を有するユーザについてはユーザの顔及び頭部の左右側で対称となり、又は1以上の非対称な特徴を有するユーザについては異なることになる。
【0031】
図3に示す眼鏡300の特徴及び/又は眼鏡300の他の特徴は、(例えば、注文又は購入について入手可能な各眼鏡について)試着サーバ130によって記憶される眼鏡300の3次元モデルによって記述される。
【0032】
ここに記載されるユーザの顔及び/又は頭部の3次元モデルは、参照点、及び数学的関数にユーザの顔及び/又は頭部の輪郭に対応する経路に沿って参照点を接続させるパラメータでパラメータ化された数学的関数を含み得る。ここに記載される眼鏡の3次元モデルは、参照点、及び数学的関数に眼鏡の輪郭に対応する経路に沿って参照点を接続させるパラメータでパラメータ化された数学的関数を含み得る。あるシナリオでは、ユーザの顔及び/又は頭部並びに眼鏡の統合3次元モデルが生成され得る。
【0033】
画像200、画像におけるユーザの3次元位置情報(例えば、図2の211、213及び/又は215)及び特定の眼鏡300の3次元モデルが取得されると、その特定の眼鏡300がそのユーザの特定の顔特徴に装着された場合に実世界においてどのように見えるかをユーザが確認できるように、眼鏡300の仮想表現が画像200上に重畳され得る。
【0034】
例えば、図4は、ユーザの顔の実際のサイズに対する眼鏡300の実際のサイズが正確に表現されるようにサイズ取りされた眼鏡300の仮想表現400を示す。仮想表現400は画像におけるユーザの特徴の外観サイズに合うようにサイズ取りされているのではなく、ユーザの特徴の実世界のサイズに合うようにサイズ取りされていることが、理解されるべきである。この理由のため、(サイズがユーザに対して概ね丁度良く見える図4の例とは逆に)実際の眼鏡300が実世界のユーザに対して大き過ぎ又は小さ過ぎる場合、眼鏡300の仮想表現400はユーザの頭部及び顔特徴のサイズに対して大き過ぎ又は小さ過ぎるように見えることになる。例えば、眼鏡300が大人用サイズの眼鏡であり、ユーザが子供である場合、眼鏡300の仮想表現400は、画像200において大き過ぎるように見えることになる。
【0035】
ある実施例では、VTOインターフェース202は、眼鏡の既知のサイズ及び3次元位置情報に基づいてサイズの合わない眼鏡を検出して、サイズが合わないことをユーザに警告し、並びに/又はより適切にサイズが合いそうなもの試着するように1以上の異なる眼鏡の推奨を特定及び/若しくは提案することができる。
【0036】
図4の例では、眼鏡300が実世界においてユーザの顔にかけられたように見えるように仮想表現400がユーザの画像に対して位置決め及びサイズ取りされた構成において、眼鏡300の仮想表現400が画像200上に重畳して表示される。(図4の例のように、決定されたサイズでかつ決定された位置において、ユーザの顔の画像上に重畳された)眼鏡の仮想表現を表示することは、眼鏡の3次元モデルを表示された2次元画像に対応する座標系に変換すること、それに応じて、仮想表現400が正しく見えるように2次元画像の修正バージョンにおいて各画素に対する輝度及び色を(例えば、変換された眼鏡の色、サイズ及び形状に基づいて)決定すること、並びに修正された画像の画素の各々をその画素に対して決定された輝度及び色で表示するようにデバイス110のディスプレイ201の表示画素を動作させることを含み得る。
【0037】
図4の例では、眼鏡300の仮想表現400は、鼻パッド310がユーザの鼻の鼻橋部212に乗り、鼻根208の上部でそこから離れてブリッジ308を支持することを示すように、画像200に重畳される。ユーザの耳220の上耳底点218に乗るテンプル306が示される。
【0038】
一方、特定の眼鏡300と特定のユーザの顔との間の接点又は接点の組合せは、その特定の眼鏡がどのようにその特定のユーザの顔にかけられるのかを判定することになる。したがって、特定のユーザの画像200上の眼鏡300の仮想表現400の位置及び向きを決定するために、眼鏡の3次元モデルがユーザについての3次元位置情報(例えば、測定点絶対3次元位置211、3次元モデル213及び/又は顔ランドマーク絶対位置215)とともにバーチャルシーンに配置されてもよく、2つのエンティティが交差するか否かを判定するようにテストが実行される。交差テストでは、ユーザデバイス110及び/又は試着サーバ130は、(測定点絶対3次元位置211、3次元モデル213及び/又は顔ランドマーク絶対位置215に基づく)ユーザの顔面に対応する幾何学表面が任意の点で(眼鏡の3次元モデルに基づく)眼鏡の外面に対応する幾何学表面と一致するか否かを判定する。2つの幾何学表面が一致する場合、(例えば、2つの幾何学表面間の1以上の交差曲面に対応する)接点又は接点の組が特定され得る。接点の正しい組を特定し、特定のユーザの画像200上の眼鏡300の仮想表現400の正しい位置及び向きを決定するように、複数の交差テストが、ユーザについての3次元位置情報に対する眼鏡300の3次元モデルの異なる位置及び/又は向きで反復的に実行され得る。
【0039】
これらの反復的交差テストは、物理的配置動作ともいわれ、顧客が眼鏡を彼らの顔に実際に配置する際に起こる物理的処理を模擬するように実行され得る。
【0040】
物理的配置動作は、図5に示す顔座標系のような顔座標系を指定することを含み得る。図5の例では、x軸とは、ユーザの左右側を規定する(例えば、その間に延在する)軸のことをいい、正方向x軸は原点からユーザの左手の側に延びる。図5におけるy軸とは、ユーザの頭部の上下を規定する(例えば、その間に延在する)軸のことをいい、正方向y軸は原点からユーザの頭頂に向かってx軸に垂直に延びる。図示するように、z軸とは、ユーザの頭部の前後を規定する(例えば、その間に延在する)軸のことをいい、正方向z軸はx軸及びy軸に垂直に、かつ原点からユーザの頭部の前方に向かって延びる。
【0041】
物理的配置動作は、顔座標系の原点となる顔ランドマークを識別することを含み得る。このように、眼鏡の配置は、顔座標系の原点からのオフセットとして記述され得る。特に有用な1つの参照点は、鼻根208であり、それは鼻と額のなす角の最深中正点又はユーザの目の間の「ディボット」における最深点のことをいう。鼻根208の位置は、画像200及び/又はユーザについての3次元位置情報を用いてユーザデバイス110及び/又は試着サーバ130によって識別され得る。物理的配置動作は、眼鏡のブリッジ308の水平中心における最下最背点など、眼鏡座標系の原点を識別することを含み得る。
【0042】
物理的配置動作は、仮想試着動作を行うデバイスで利用可能な計算用リソース(例えば、処理能力、メモリ及び/又は通信帯域)に応じて、可変レベルの複雑さ及びリアル感を与えるように調整され得る。一例では、物理的配置動作は、(i)眼鏡座標系の原点と顔座標系の原点との間のxオフセットをゼロに設定すること、及び(ii)眼鏡座標系の原点と顔座標系の原点との間(例えば、鼻根と眼鏡原点との間)の固定のy及びzオフセットを選択することを含み得る。この例では、固定のy及びzオフセットは、フレームのタイプ(例えば、アセテートか金属か)及び/又はユーザについての顔ランドマークの組の位置に基づいて選択され得る。このタイプの固定のy及びzオフセットは、低い計算電力又は低い帯域のシナリオで使用されて顧客及び眼鏡の多数の組合せについてリアルな結果を与え得るが、結果が全ての場合においてリアルとはならない可能性もある。例えば、ある場合では、固定のy及びzオフセットは、眼鏡モデルと顔モデルの間のリアル感のない交差をもたらしてしまい、これによって、眼鏡が不適切に顔の「背後」にあるように、又は図6に示すようにユーザの顔に埋没したように見えてしまう。図6の例では、眼鏡300の仮想表現400の部分600は、不適切にユーザの顔に埋没している。他の場合では、眼鏡は、ユーザの顔の前面にリアル感なく浮いて見えることになる。
【0043】
よりリアルな試着体験を与えるために、物理的配置動作は、1以上の反復的交差動作を含み得る。図7A~7D及び8A~8Dに、2セットの反復的交差動作を説明する例を示す。
【0044】
図7A~7Dは、固定のzオフセット(例えば、複数のテスト位置で共通のzオフセット)及び可変のyオフセットを用いる反復的交差動作を示し、これは、堅い前面を有するとともに装着時には通常は鼻根に押し上げられるアセテートフレームの配置のために使用され得る。図7A~7Dの例では、顔座標系における眼鏡の3次元モデルの複数のテスト位置を示し、各々は眼鏡300の3次元モデルの原点と顔座標系の原点との間のxオフセットをゼロに設定させている。2つの原点の間(例えば、鼻根と眼鏡原点の間)の固定のzオフセットが(例えば、眼鏡と鼻根の間の所定の標準的な離隔に基づいて)選択可能である。眼鏡300の仮想表現400の最終位置に対する最終yオフセットを決定するために、(例えば、図7A~7Dに示すように)yオフセットが変更されて、複数のテスト位置を生成して眼鏡がちょうど顔と接触することになるyオフセットの値を求めることができる。図7A~7Dの例では、顔座標系における4つの例示のテスト位置の各々は、y軸に沿って異なるyオフセットを、x軸に沿ってゼロのxオフセットを、z軸に沿って共通のzオフセットを有する。
【0045】
図7Aの例では、最初のテスト位置(例えば、固定のzオフセットとともに最初のyオフセット及びゼロxオフセット)が選択されている。しかし、この最初のテスト位置では、眼鏡300の3次元モデルは、ユーザの顔の3次元表現(例えば、3次元位置情報)に部分的に埋没され、それが表示されると、図示するように、眼鏡300の仮想表現400がユーザの顔の画像内に消えてしまうことになる。この埋没は、眼鏡300の3次元モデルとユーザの顔の3次元表現との間の衝突検出動作を含む交差動作を実行することによって(例えば、ユーザデバイス110及び/又は試着サーバ130によって)検出され得る。
【0046】
図7Aに示すタイプの埋没接触が検出される場合、眼鏡300の3次元モデルは、図7Bに示すように新たなテスト位置に(例えば、同じ共通のzオフセット及びゼロのxオフセットとともに新たなyオフセットで)移動され得る。例えば、新たなテスト位置は、増分的に異なる新たなテスト位置、又は眼鏡300の3次元モデルとユーザの顔の3次元表現との間の接触がない(例えば、新たな位置での他の衝突検出動作によって決定されるような)新たなテスト位置となり得る。新たなテスト位置は、初期の遷移増分を記述するパラメータに対応し得る。
【0047】
図7Bの例のように眼鏡300の3次元モデルとユーザの顔の3次元表現との間の接触がないことが(例えば、ユーザデバイス110及び/又は試着サーバ130によって)判定された場合、他の新たなテスト位置(例えば、他の新たなyオフセット)が、例えば、二分探索動作又は当業者に理解されるであろう他の探索アルゴリズムを用いて決定可能であり、他の交差(例えば、衝突検出)動作が、その新たな次のテスト位置において実行される。例えば、図7Cの例では、新たなyオフセットは、図7Bのyオフセットとゼロのyオフセットとの間の略中間にある。一方、図7Cに示すテスト位置では、ユーザデバイス110又は試着サーバ130は、(例えば、図7Cの新たな位置での他の衝突検出動作を実行することによって判定されるように)眼鏡300の3次元モデルとユーザの顔の3次元表現との間には未だ接触がないと判定し得る。
【0048】
物理的配置動作は、(例えば、図7Dに示すように)ユーザの顔の3次元表現上の眼鏡300の3次元モデルに対する正しい掛け位置が特定されるまで、(例えば、各々は二分探索アルゴリズムを用いて決定される)1以上の追加のyオフセットにおいて1以上の追加の衝突検出(交差)動作を含む。正しい掛け位置は、接触のない位置から移動しつつ、眼鏡300の3次元モデルがユーザの顔の3次元表現と何らかの接触を構成する最初の位置となり得る。一方、あるシナリオでは、物理的配置動作は、その最初の接触は眼鏡がユーザの顔において安定するであろう載置接触であるか否か、又は最初の接触は不安定な接触かを判定するなどの追加の動作を含み得る。
【0049】
例えば、最初の接触がブリッジ308とユーザの顔の鼻根208との間又は鼻パッド310とユーザの鼻の鼻橋部212との間の接触である場合、接触は安定である又は載置接触であると判定され得る。一方、あるシナリオでは、最初の接触は、ブリッジ308又は鼻パッド310との接触の前のユーザの顔とフレーム302の下部314との間となることがあり、これは不安定な接触を示し得る(なぜなら、例えば、ブリッジ308又は鼻パッド310の少なくとも一方がユーザと接触状態となる他の位置まで眼鏡が下がり又は滑り易くなるためであり、それは眼鏡が下がり又は滑る間又はその後に下部314との接触が保持されるか否かにかかわらない)。
【0050】
追加の位置における追加の交差が最初の接触に続いて行われる場合、追加の位置は(例えば、鼻パッド又はブリッジが接触を構成するまで、ユーザの顔に沿ってフレームの下部を滑らせることを模擬することによって)少なくとも1つの他の接点がユーザの顔に対する眼鏡の位置の制御を引き継ぐまで、埋没を回避し及び/又は最初の接点の離隔を回避するように選択され得る。
【0051】
図8A~8Dは、固定のyオフセット(例えば、全てのテスト位置に対する共通のyオフセット)及び可変のzオフセットを用いる反復的交差動作を示し、それは、配置の際の更なる柔軟性を可能とする調整可能な鼻パッドを有する金属及び/又は混合材フレームの配置に使用され得る(例えば、ユーザは、後に実世界において鼻パッドを調整して正しいyオフセットを取得することができるので、配置動作中にその正しいyオフセットが推定され、固定して保持されることが可能となる)。図8A~8Dの例では、顔座標系における4つのテスト位置の各々は、z軸に沿う異なるzオフセット、x軸に沿うゼロのxオフセット及びy軸に沿う共通のyオフセットを有する。
【0052】
図8Aの例では、最初のテスト位置(例えば、固定のyオフセット及びゼロのxオフセットとともに最初のzオフセット)が選択されている。しかし、この最初のテスト位置では、眼鏡300の3次元モデルがユーザの顔の3次元表現に埋没され、それが表示されると、図示するように、眼鏡300の仮想表現400の少なくとも所定部分がユーザの顔の中に消失してしまうことになる。この埋没は、眼鏡300の3次元モデルとユーザの顔の3次元表現との間の衝突検出動作を含む交差動作を実行することによって(例えば、ユーザデバイス110又は試着サーバ130によって)検出され得る。
【0053】
図8Aに示すタイプの埋没接触が検出される場合、眼鏡300の3次元モデルは、図8Bに示すように新たなテスト位置に(例えば、新たなzオフセットで)移動され得る。例えば、新たなテスト位置は、増分的に異なる新たなテスト位置、又は眼鏡300の3次元モデルとユーザの顔の3次元表現との間の接触がない(例えば、新たな位置での他の衝突検出動作によって決定されるような)新たなテスト位置となり得る。
【0054】
図8Bの例のように眼鏡300の3次元モデルとユーザの顔の3次元表現との間の接触がないことが(例えば、ユーザデバイス110又は試着サーバ130によって)判定された場合、他の新たなテスト位置(例えば、他の新たなzオフセット)が、例えば、二分探索アルゴリズム又は当業者に理解されるであろう他の探索アルゴリズムを用いて決定可能であり、他の交差(例えば、衝突検出)動作が、次のその新たなテスト位置において実行される。例えば、図8Cの例では、新たなzオフセットは、図8Bのzオフセットとゼロのzオフセットとの間の略中間にある。一方、図8Cに示すテスト位置では、ユーザデバイス110又は試着サーバ130は、(例えば、図8Cの新たな位置での他の衝突検出動作を実行することによって判定されるように)眼鏡300の3次元モデルとユーザの顔の3次元表現との間には未だ接触がないと判定し得る。
【0055】
物理的配置動作は、(例えば、図8Dに示すように)ユーザの顔の3次元表現上の眼鏡300の3次元モデルに対する正しい掛け位置が特定されるまで、(例えば、各々は二分探索アルゴリズムを用いて決定される)1以上の追加のzオフセットで1以上の追加の衝突検出(交差)動作を含む。正しい掛け位置は、接触のない位置から移動しつつ、眼鏡300の3次元モデルがユーザの顔の3次元表現と何らかの接触を構成する位置となり得る。一方、あるシナリオでは、物理的配置動作は、その最初の接触は眼鏡がユーザの顔において安定するであろう載置接触であるか否か、又は最初の接触は不安定な接触かを判定するなどの追加の動作を含み得る。
【0056】
図7D及び8Dの例では、眼鏡モデルは顔モデルと接触して正確に位置決めされるので、仮想表現400が画像200に重畳される場合に眼鏡モデルと顔モデルの間のリアル感のない交差は存在しないことになる。図7A~7D及び8A~8Dのy及びz変数はそれぞれ別個に示されるが、あるシナリオでは、反復的交差動作が、顔座標系のx、y及び/又はz方向における眼鏡の3次元モデルのテスト位置の変化とともに実行され得ることが理解されるべきである。
【0057】
ある試着動作では、眼鏡300の追加の特徴(例えば、フレーム302の質量、柔軟性、材質及び/若しくは他の特徴、並びに/又はレンズ304の質量、倍率及び/若しくは他の特性)及び/又はユーザの追加の特徴(例えば、ユーザの皮膚の弾力性、ユーザの頭部の傾き角、種々の顔特徴の相対突出距離など)が3次元モデル及び/又は交差動作に取り込まれて最終位置を決定する高忠実度の位置向上動作が実行され得る。例えば、フレーム302又はユーザの皮膚が変形していない状態での載置接触位置が(例えば、図7A~7D及び8A~8Dに関して上述した処理を用いて)最初に確立されてもよく、それに続き、重力の力及び方向並びにフレームの柔軟性及び/又はユーザの皮膚の柔軟性が取り込まれて向上した掛け位置を決定する。
【0058】
例えば、図9は、接触位置904におけるユーザの皮膚の部分902と載置接触している眼鏡300の部分900の断面図を示す。部分900は、接触位置904が鼻根208に又はその付近となるように、ユーザの鼻の部分を表す部分902と接触状態にあるブリッジ308の部分を表し得る。他の例では、部分900は、ユーザの顔の頬骨部分214を表す部分902と接触状態にあるフレーム302の下部314の一部を表していてもよく、フレームは1以上の他の位置においてユーザの顔及び/又は頭部にも乗っている。図9に示す載置接触配置は、あるシナリオでは仮想表現400の表示のための眼鏡300の3次元モデルの最終位置として使用され得る。一方、高忠実度の位置向上動作では、実世界では重力が部分900をユーザの皮膚の部分902に押し付けると判定され得る。
【0059】
例えば、図10に示すように、ユーザデバイス110及び/又は試着サーバ130は、重力の方向1000、眼鏡300の質量、ユーザの皮膚の部分902の輪郭形状1004及びユーザの皮膚の柔軟性を決定して、眼鏡の重量に起因して起こり得る部分902の一部又は全部の圧縮1006を決定し得る。画像200及び/又は眼鏡300の仮想表現400の位置は、圧縮1006がその特定の眼鏡について起こり得ることをユーザに示すように修正されてもよい。
【0060】
これらの高忠実度動作は、ユーザの顔又は頭部に対する眼鏡の移動(例えば、緩めのフィット及び細い頭部に起因するもの、ユーザの頭部の前後又は上下の移動に起因するもの、重力によるユーザの鼻からのフレームの滑り落ち、ユーザの手による眼鏡の仮想表現の位置の調整など)を模擬して、特定の眼鏡が装着時にどのようにフィット及び/又は挙動するかについてのより多くの情報をユーザに与えることもできる。
【0061】
図11は、1以上の実施例による、眼鏡の仮想試着のための例示の処理のフロー図を示す。例示目的のために、図11の処理は、図1及び2の1以上のデバイスを参照して(特に試着サーバ130及び/又はユーザデバイス110を参照して)主にここに記載され、それは図1のサーバ130及び/又はユーザデバイス110の1以上のプロセッサによって実行され得る。ただし、図11の処理は、サーバ130及び/又はユーザデバイス110に限定されず、処理の1以上のブロック(すなわち、動作)は他の適切なデバイスの1以上の他の構成要素によって実行され得る。また、例示目的のために、図11の処理のブロックは、直列にすなわち一次的に行われるものとして記載される。ただし、図11の処理の複数のブロックが、並列に行われてもよい。さらに、図11の処理のブロックは図示する順序で実行されなくてもよく、並びに/又は図11の処理の1以上のブロックは実行される必要がなく及び/若しくは他の動作に代替されてもよい。
【0062】
ブロック1100において、ユーザの画像が取得され得る。例えば、図2の画像200のような画像が、ユーザデバイス110のカメラ205などのカメラを用いて撮影され得る。
【0063】
ブロック1102において、ユーザについての3次元位置情報が取得され得る。例えば、3次元位置情報は、ここに記載されるような、測定点絶対3次元位置211、測定点絶対3次元位置211に基づくユーザの3次元モデル213、及び/又は顔ランドマーク絶対位置215を含み得る。3次元位置情報は、例えば、センサ209などの追加のセンサ及び/又は光源207などの光源を用いて取得され得る(例えば、図2及び13参照)。
【0064】
ブロック1104において、眼鏡300のような眼鏡の3次元モデルが取得される。眼鏡の3次元モデルはモデルのデータベース(例えば、図1のデータベース142の1つ)から取得され得るものであり、各々は実世界の眼鏡に対応し、モデルは試着サーバ130又は他のサーバに記憶される。眼鏡の3次元モデルを取得することは、(例えば、試着動作がユーザデバイスで行われる場合には)眼鏡の3次元モデルをサーバからユーザデバイス110にダウンロードすることを含み得る。
【0065】
ブロック1106において、眼鏡のデジタル表現のための位置及び/又は向きが、画像、ユーザについての3次元位置情報及び/又は眼鏡の3次元モデルに基づいて決定される。眼鏡のデジタル表現のための位置及び/又は向きを決定することは、例えば、図7A~7D及び8A~8Dに関して上述し、図12に関して以下にさらに説明するような物理的配置動作を実行することを含み得る。物理的配置動作は、1回以上の反復的衝突検出(交差)及びバイナリ位置探索動作の組合せを含んでいてもよく、1回以上の高忠実度の位置向上動作を含んでいてもよい。
【0066】
ブロック1108において、眼鏡の仮想表現についてのサイズが、画像、ユーザの3次元位置情報及び/又は眼鏡の3次元モデルに基づいて決定される。決定されたサイズは、ユーザの顔に対する眼鏡の実世界のサイズに正確に対応する、画像画素における画素サイズであり得る。例えば、サイズを決定することは、3次元位置情報を用いてユーザの顔の物理的サイズを決定すること、画像及び決定された物理的サイズを用いて画像画素におけるユーザの顔のサイズを決定すること、決定された物理的サイズ及び画像画素におけるユーザの顔のサイズを用いて画像における各画像画素についての画素サイズを決定すること、並びに眼鏡の既知のサイズ及び決定された画素サイズに基づいて、決定された位置及び/又は向きについての(例えば、画素における)眼鏡の仮想表現のサイズを決定することを含み得る。
【0067】
ブロック1110において、例えば、決定されたサイズ、位置及び/又は向きでの眼鏡の仮想表現が、例えば図4に示すような(例えば、ユーザデバイス110のディスプレイ201を用いる)表示のためにユーザの画像上に重畳された合成画像が表示される。
【0068】
図12は、1以上の実施例による、図11のブロック1108に関して説明した眼鏡の仮想表現の位置及び/又は向きの決定のための例示の処理のフロー図を示す。例示目的のために、図12の処理は、図1及び2の1以上のデバイスを参照して(特に試着サーバ130及び/又はユーザデバイス110を参照して)主にここに記載され、それはサーバ130及び/又はユーザデバイス110の1以上のプロセッサによって実行され得る。ただし、図12の処理はサーバ130及び/又はユーザデバイス110に限定されず、処理の1以上のブロック(すなわち、動作)は他の適切なデバイスの1以上の他の構成要素によって実行され得る。また、例示目的のために、図12の処理のブロックは、直列にすなわち一次的に行われるものとして記載される。ただし、図12の処理の複数のブロックが、並列に行われてもよい。さらに、図12の処理のブロックは図示する順序で実行されなくてもよく、並びに/又は図12の処理の1以上のブロックは実行される必要はなく及び/若しくは他の動作に代替されてもよい。
【0069】
ブロック1200において、ユーザについての3次元位置情報に対する眼鏡の3次元モデルの初期位置(例えば、初期テスト位置)が特定される。初期位置は、図7A又は8Aに関して上述したゼロのxオフセット及び固定のyオフセット又はzオフセットを有し得る。
【0070】
ブロック1202において、ユーザデバイス110及び/又は試着サーバ130は、眼鏡の3次元モデルがユーザについての3次元位置情報と交差するか否かを判定する。眼鏡の3次元モデルがユーザについての3次元位置情報と交差するか否かを判定することは、(例えば、眼鏡の3次元モデルが、初期位置において、測定位置211のいずれか、3次元モデル213又は顔ランドマーク位置215と交差するか否かを判定することによって)眼鏡の3次元モデルとユーザについての3次元位置情報との間で衝突検出動作を実行することを含み得る。
【0071】
交差がないと判定された場合(例えば、眼鏡の仮想表現が画像200内でユーザの顔から浮いて見えるような場合)、ブロック1204において(顔座標系における)眼鏡の3次元モデルについての新たなテスト位置が決定され得る。新たなテスト位置を決定することは、バイナリ位置探索動作を実行すること、顔座標系の原点に向かって眼鏡の3次元モデルを増分的に移動させること、又はそれ以外で(例えば、疑似的にランダムに)新たなテスト位置を決定することを含み得る。新たなテスト位置の特定に続いて、ブロック1202の動作が、新たなテスト位置で反復され得る。
【0072】
(ブロック1204において)眼鏡の3次元モデルがユーザについての3次元位置情報と交差すると判定された場合、ユーザデバイス110及び/又は試着サーバ130は、ブロック1206において、交差が(例えば、図7D、8D及び9に示すような)接触交差なのか(例えば、図6、7A及び8Aに示すような)埋没交差なのかを判定する。接触交差は、(例として)単一の接点の検出によって又は全ての接点が両モデルの外縁にあると判定することによって判定され得る。埋没交差は、3次元モデルの一方における内側の点が他方のモデルの一部分と接触していると判定することによって判定され得る。
【0073】
(ブロック1206において)交差が(例えば、図6、7A及び8Aに示すような)埋没交差であると判定された場合、ブロック1208において、(顔座標系における)眼鏡の3次元モデルについての新たなテスト位置が決定され得る。新たなテスト位置を決定することは、バイナリ位置探索動作を実行すること、顔座標系の原点に向かって眼鏡の3次元モデルを増分的に移動させること、又はそれ以外で(例えば、疑似的にランダムに)新たなテスト位置を決定することを含み得る。ブロック1208における新たなテスト位置の特定に続いて、ブロック1202の動作が、新たなテスト位置で反復され得る。
【0074】
(ブロック1206において)交差が(例えば、図7D、8D及び9に示すような)接触交差であると判定された場合、ユーザデバイス110及び/又は試着サーバ130は直接ブロック1214に進み、ブロック1110での表示のための最終位置として現在のテスト位置を特定し、又はブロック1210において、ユーザデバイス110及び/又は試着サーバ130は接触位置が載置接触位置であるか(例えば、又は不安定な接触位置であるか)を判定し得る。例えば、接触交差は、ブリッジ308とユーザの鼻根208との間又は鼻パッド310とユーザの鼻の鼻橋部212との間の接触を含み得るものであり、その場合、接触は安定又は載置接触であると判定され得る。他の例では、接触交差はブリッジ308又は鼻パッド310との接触前のフレーム302の下部314との接触となることもあり、それは不安定な接触を示すことになる。
【0075】
ブロック1210において、接触交差が載置接触でないと判定された場合、ユーザデバイス110及び/又は試着サーバ130は(顔座標系における)眼鏡の3次元モデルに対する新たなテスト位置が決定されるブロック1204に戻ることになる。追加のテスト位置がブロック1206での接触交差の検出に続いて使用される場合、追加のテスト位置は、二分探索又は他の事前接触アルゴリズムを用いて選択されてもよいし、(例えば、鼻パッド又はブリッジが接触を構成するまでユーザの顔に沿ってフレームの下部を仮想的に滑らせることによって)少なくとも1つの他の接点がユーザの顔に対する眼鏡の位置の制御を引き継ぐまで埋没を回避し及び/又は接触交差の接点の離隔を回避するように選択され得る。新たなテスト位置の特定に続いて、ブロック1202、1206及び1210の動作が新たなテスト位置で反復されることになり、新たなテスト位置が接触を維持し埋没を回避するのに選択されている場合には、ユーザデバイス110及び/又は試着サーバ130は新たなテスト位置でブロック1210に直接戻ることになる。
【0076】
(ブロック1210において)交差が(例えば、図7D、8D及び9に示すような)接触交差であると判定された場合、ユーザデバイス110及び/又は試着サーバ130は直接ブロック1214に進み、ブロック1110での表示のための最終位置として現在のテスト位置を特定し、又はブロック1212において、ユーザデバイス110及び/又は試着サーバ130は(例えば、図10に関して上述したような)高忠実度の位置向上動作を実行し得る。
【0077】
ブロック1210において、顔座標系における眼鏡の3次元モデルの現在の位置及び向きが、(例えば、上記図4の例におけるように)ブロック1110における仮想表現400の表示のための最終位置として特定され得る。
【0078】
図5に示す顔座標系において種々の例が実施されるものとして説明するが、種々の物理的配置動作が任意の座標系において(例えば、眼鏡座標又は他の座標系において)実行され得ることが理解されるべきである。
【0079】
ユーザデバイス110及び/又は試着サーバ130が撮影画像200におけるユーザについての測定点絶対3次元位置211、測定点絶対3次元位置211に基づくユーザの3次元モデル213及び/又は顔ランドマーク絶対位置215を取得、生成及び/又は記憶し得ることを、例えば、図1、2、11及び12に関して上述した。図13、14及び15は、それぞれ、測定点絶対3次元位置211、測定点絶対3次元位置211に基づくユーザの3次元モデル213、及び顔ランドマーク絶対位置215を示す。
【0080】
図13は、図1の3次元センサ209についての例示的な一実施例において(例えば、光源207を用いる)ユーザデバイス110がユーザの顔上の種々の入射位置1302から反射する赤外線ビーム1300などの複数の光ビームをどのようにして生成し得るかを示す。各ビーム1300は、入射位置1302において、その位置までの距離及びその位置での表面の形状によって決定されるサイズ及び歪のスポットを生成する。ビーム1300として既知のビームサイズを用いるとともに(この例では赤外線センサとして実施される)センサ209によって撮影されるスポットの赤外線画像を用いて、各入射位置1302までの距離が測定され得る。各入射位置1302は、測定点絶対3次元位置211を表し得る。
【0081】
図14は、測定点絶対3次元位置211に基づく(例えば、画像200の撮影時における)ユーザの3次元モデル213の2次元レンダリング1400を示す。レンダリング1400は、参照点及び/又はモデルを規定する参照点を接続する数学的関数によって規定される点及び/又は線を描くことによって生成され得る。モデルは、モデルが表示のためにレンダリングされるか否かにかかわらず、参照点、数学的関数、数学的関数のためのパラメータ値及び/又は他のモデルデータを記憶することによって記憶され得る。モデル自体は、いずれのモデルもレンダリングすることなく眼鏡300の3次元モデルと交差され得る。
【0082】
図15は、種々の顔ランドマーク絶対位置215の表現1500を示す。顔ランドマーク絶対位置215は、種々の顔ランドマークにおける測定点絶対3次元位置211の選択された小集合であってもよいし、測定点絶対3次元位置211の2以上から平均化又は補間されてもよいし、3次元モデル213から導出又は抽出されてもよい。顔ランドマーク絶対位置215が測定点絶対3次元位置211から直接的に(例えば、平均、補間又は他の組合せを介して)導出される幾つかのシナリオでは、3次元モデル213は、入力データ点としての顔ランドマーク絶対位置215に基づいて生成され得る。絶対3次元位置が決定され得る顔ランドマークは、これに限定されないが、鼻根、目頭、目尻、耳点、ジギオン、上耳底点、眉中、上瞼、下瞼、瞳の中心点、眉間、フロントテンポラーレ、顎前歯、眼窩点、耳点、鼻根点、鼻尖点及びメントンを含む。
【0083】
ハードウェア概略
図16は、図1のユーザデバイス110、試着サーバ130及び/又は第三者サーバ140が実施可能な例示的なコンピュータシステム1600を示すブロック図である。所定の態様において、コンピュータシステム1600は、専用サーバにおいて、他のエンティティに統合されて、又は複数のエンティティにわたって分散されて、ハードウェア又はソフトウェアとハードウェアの組合せを用いて実施され得る。
【0084】
コンピュータシステム1600は、情報を通信するためのバス1608又は他の通信メカニズム、及び情報を処理するためのバス1608と接続されるプロセッサ1602を含む。例示として、コンピュータシステム1600は、1以上のプロセッサ1602とともに実施され得る。プロセッサ1602は、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックデバイス(PLD)、コントローラ、状態機械、ゲート化ロジック、ディスクリートハードウェア構成要素、又は計算若しくは情報の他の操作を実行可能な他の任意の適切なエンティティであり得る。
【0085】
コンピュータシステム1600は、ハードウェアに加えて、情報及びプロセッサ1602によって実行される命令を記憶するためにバス1608に接続された、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読み出し専用メモリ(ROM)、プログラマブル読み出し専用メモリ(PROM)、消去可能PROM(EPROM)、レジスタ、ハードディスク、取外し可能ディスク、CD-ROM、DVD又は他の任意の適切な記憶デバイスなどの内蔵メモリに記憶された、対象となるコンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム又はそれらの1以上の組合せを構築するコードを含み得る。プロセッサ1602及びメモリ1604は、特殊用途ロジック回路によって補完され又はそれに含まれてもよい。
【0086】
命令は、メモリ1604に記憶され、1以上のコンピュータプログラム製品、すなわち、コンピュータシステム1600による又はその動作を制御する実行のためのコンピュータ可読媒体に符号化され、当業者に周知の任意の方法に従って、これに限定されないが、データ指向言語(例えば、SQL、dBase)、システム言語(例えば、C、Objective-C、C++、Assembly)、アーキテクチャ言語(例えば、Java、NET)及びアプリケーション言語(例えば、PHP、Ruby、Perl、Python)のようなコンピュータ言語を含むコンピュータプログラム命令の1以上のモジュールにおいて実行され得る。命令はまた、配列言語、アスペクト指向言語、アセンブリ言語、オーサリング言語、コマンドラインインターフェース言語、コンパイル言語、並行言語、カーリーブラケット言語、データフロー言語、データ構造化言語、宣言型言語、難解言語、拡張言語、第4世代言語、機能言語、対話型言語、解釈型言語、反復型言語、リスト型言語、リトル言語、論理型言語、機械語、マクロ言語、メタプログラミング言語、マルチパラダイム言語、数値解析、非英語ベースの言語、オブジェクト指向クラスベースの言語、オブジェクト指向プロトタイプベースの言語、オフサイドルール言語、手続き型言語、反射型言語、ルールベースの言語、スクリプト言語、スタックベースの言語、同期言語、構文処理言語、視覚言語、ワース(wirth)言語及びXMLベースの言語のようなコンピュータ言語で実行され得る。メモリ1604はまた、プロセッサ1602によって実行される命令の実行中の一時的な可変の又は他の中間的情報を記憶するのに使用され得る。
【0087】
ここに記載されるコンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応しない。プログラムは、対象となるプログラムに専用の単一のファイルにおいて又は複数の連携ファイル(例えば、1以上のモジュール、サブプログラム又はコードの所定部分を記憶するファイル)において、他のプログラム又はデータ(例えば、マークアップ言語文書に記憶された1以上のスクリプト)を保持するファイルの一部分に記憶され得る。コンピュータプログラムは、1つのコンピュータ、又は1箇所に配置され若しくは複数箇所にわたって分散されて通信ネットワークによって相互接続された複数のコンピュータにおいて実行されるように配備され得る。本明細書で説明した処理及びロジックフローは、入力データ上で演算して出力を生成することによって機能を実行する1以上のコンピュータプログラムを実行する1以上のプログラマブルプロセッサによって実行され得る。
【0088】
コンピュータシステム1600は、情報及び命令を記憶するためにバス1608に接続される磁気ディスク又は光学ディスクなどのデータストレージデバイス1606をさらに含む。コンピュータシステム1600は、種々のデバイスに入出力モジュール1610を介して接続され得る。入出力モジュール1610は、任意の入出力モジュールであり得る。例示的な入出力モジュール1610は、USBポートなどのデータポートを含む。入出力モジュール1610は、通信モジュール1612に接続するように構成される。例示的な通信モジュール1612は、イーサネットカードなどのネットワーキングインターフェースカード及びモデムを含む。所定の態様において、入出力モジュール1610は、入力デバイス1614及び/又は出力デバイス1616などの複数のデバイスに接続するように構成される。例示的な入力デバイス1614は、ユーザが入力をコンピュータシステム1600に提供することができるキーボード及びポインティングディバイス(例えば、マウス又はトラックボール)を含む。触覚的入力デバイス、視覚的入力デバイス、音声入力デバイス又はブレインコンピュータインターフェースデバイスなどの他の種類の入力デバイス1614が、同様にユーザとの相互作用に供するように使用されてもよい。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚的フィードバック、例えば、視覚的フィードバック、音声によるフィードバック又は触覚的フィードバックであり得る。ユーザからの入力は、音声、会話、触覚又は脳波入力を含む任意の形態で受け入れられ得る。例示的な出力デバイス1616は、情報をユーザに表示するためのLCD(液晶ディスプレイ)又は発光ダイオード(LED)ディスプレイのような表示デバイスを含む。
【0089】
本開示の一態様によると、ユーザデバイス110、試着サーバ130及び/又は第三者サーバ140は、メモリ1604に含まれる1以上の命令の1以上のシーケンスをプロセッサ1602が実行することに応じて、コンピュータシステム1600を用いて実施可能である。そのような命令は、データストレージデバイス1606などの他の機械可読媒体からメモリ1604に読み出され得る。主メモリ1604に含まれる命令のシーケンスの実行によって、プロセッサ1602が、ここに記載される処理ステップを実行する。マルチプロセッシング構成の1以上のプロセッサが、メモリ1604に含まれる命令のシーケンスを実行するのに採用されてもよい。代替の態様において、有線回路が、本開示の種々の態様を実施するのにソフトウェア命令の組合せの代わりに又はソフトウェア命令と組み合わせて用いられてもよい。したがって、本開示の態様は、ハードウェア回路及びソフトウェアのいずれの特定の組合せにも限定されない。
【0090】
本明細書に記載される主題の種々の態様は、バックエンド構成要素(例えば、データサーバとして)を含むコンピューティングシステム、ミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含むコンピューティングシステム、又はフロントエンド構成要素、例えば、それを介してユーザが本明細書に記載の主題の実施例と相互作用することができるグラフィカルユーザインターフェース又はウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム、又は1以上のそのようなバックエンド、ミドルウェア若しくはフロントエンド構成要素の任意の組合せにおいて実施可能である。システムの構成要素は、任意の形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続され得る。通信ネットワーク(例えば、ネットワーク150)は、例えば、LAN、WAN、インターネットなどのいずれか1以上を含み得る。また、通信ネットワークは、これに限定されないが、例えば、以下のバスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スターバスネットワーク、ツリー又は階層ネットワークなどを含むネットワークトポロジーのうちのいずれか1つ以上を含み得る。通信モジュールは、例えば、モデム又はイーサネットカードであり得る。
【0091】
コンピュータシステム1600は、クライアント及びサーバを含み得る。クライアント及びサーバは、一般に相互に遠隔にあり、通常は通信ネットワークを介して相互作用する。クライアント及びサーバの関係は、コンピュータプログラムがそれぞれのコンピュータ上で稼働し、クライアント-サーバ関係を相互に有することによって発生する。コンピュータシステム1600は、例えば、限定することなく、デスクトップコンピュータ、ラップトップコンピュータ又はタブレットコンピュータであり得る。コンピュータシステム1600は、他のデバイス、例えば、限定することなく、携帯電話、PDA、携帯オーディオプレーヤー、全地球測位システム(GPS)受信機、ビデオゲームコンソール及び/又はテレビセットトップボックスに組み込まれてもよい。
【0092】
ここで使用される用語「機械可読記憶媒体」又は「コンピュータ可読媒体」とは、命令をプロセッサ1602に提供して実行する際に関与する任意の単数の媒体又は複数の媒体をいう。そのような媒体は、これに限定されないが、非揮発性媒体、揮発性媒体及び伝送媒体を含む多数の形態を採り得る。不揮発性媒体は、例えば、データストレージデバイス1606のような光学又は磁気ディスクを含む。揮発性媒体は、メモリ1604のようなダイナミックメモリを含む。伝送媒体は、バス1608を備えるワイヤを含む、同軸ケーブル、銅線及び光ファイバを含む。機械可読媒体の一般的な形態は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の任意の磁気媒体、CD-ROM、DVD、他の任意の光学媒体、パンチカード、紙テープ、他の何らかの孔のパターンを有する物理媒体、RAM、PROM、EPROM、FLASH EPROM、他の任意のメモリチップ若しくはカートリッジ、又はコンピュータが読み出すことができる他の任意の媒体を含む。機械可読記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝搬信号を生じさせる合成物又はそれらの1以上の組合せであり得る。
【0093】
ここで使用されるように、項目のいずれかを分離する用語「及び/並びに」又は「又は/若しくは」とともに一連の項目に対して先行する/それに続く文言「~の少なくとも1つ」は、その列挙の各要素(すなわち、各項目)ではなく、その列挙を全体として修飾する。文言「~の少なくとも1つ」は少なくとも1つの項目の選択を要さず、同文言は、項目のいずれか1つの少なくとも1つ、項目の任意の組合せの少なくとも1つ、及び/又は項目の各々の少なくとも1つを含む意味を許容する。例として、文言「A、B及びCの少なくとも1つ」又は「A、B又はCの少なくとも1つ」の各々は、Aのみ、Bのみ若しくはCのみ、A、B及びCの任意の組合せ、並びに/又はA、B及びCの各々の少なくとも1つのことをいう。
【0094】
詳細な説明又は特許請求の範囲において用語「含む」、「有する」などが使用される範囲において、そのような用語は、「備える」が請求項において移行語として採用される場合に解釈されるように、用語「備える」と同様に包括的なものである。単語「例示的」は、ここでは「例、事例又は例示として作用すること」を意味するのに使用される。「例示的」としてここに記載される任意の実施形態は、必ずしも他の実施形態に対して好適又は有利なものとして解釈されるべきではない。
【0095】
要素に対する単数での言及は、特に断りがない限り、「1つ及び1つのみ」を意味するのではなく「1つ以上/1以上」を意味するものである。当業者に公知であり又は後に公知となる本開示を通じて記載される種々の構成の要素に対する全ての構造的及び機能的な均等物は、参照によりここに明示的に含まれ、主題の技術によって包含されるものである。さらに、ここに開示される内容は、その開示が上記記載に明記されているか否かにかかわらず、公衆に供されることを意図するものではない。
【0096】
本明細書は多数の具体例を含むが、それらは特許請求され得るものの範囲についての限定として解釈されるべきではなく、主題の特定の実施例の記載として解釈されるべきである。別個の実施形態の背景において本明細書に記載される所定の特徴は、単一の実施形態において組合せでも実施可能である。逆に、単一の実施形態の背景において記載される種々の特徴は、複数の実施形態で別個に又は任意の適切な部分的組合せでも実施可能である。さらに、特徴が所定の組合せで作用するものとして上述され、当初はそのように特許請求され得るが、特許請求される組合せからの1以上の特徴は、場合によっては、組合せから削除されることもあり、特許請求される組合せは部分的組合せ又は部分的組合せの変形例に向けられることもある。
【0097】
本明細書の主題が特定の態様の観点で記載されたが、他の態様も実施可能であり、以下の特許請求の範囲の保護範囲内にある。例えば、動作が特定の順序で図面に記載されるが、これは、所望の結果を達成するために、図示される特定の順序で若しくは順次の順序でそのような動作が実行されること、又は全ての示される動作が実行されることを要件とするものと理解されるべきではない。特許請求の範囲に記載される動作は、異なる順序で実行されてもよく、それでも所望の結果を達成できる。一例として、添付図面に図示される処理は、所望の結果を達成するのに必ずしも図示される特定の順序又は順次の順序を要件とするものではない。所定の状況では、マルチタスク化及び並列処理が有利なこともある。さらに、上述の態様における種々のシステム構成要素の独立性は、全ての態様においてそのような独立性を要件とするものと理解されるべきではなく、記載されるプログラム構成要素及びシステムは一般に単一のソフトウェア製品に統合され又は複数のソフトウェア製品にまとめられてもよいことが理解されるべきである。他の変形例も、以下の特許請求の範囲の保護範囲内にある。

図1
図2
図3
図4
図5
図6
図7
図8
図9-10】
図11
図12
図13-15】
図16