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

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

▶ 株式会社 資生堂の特許一覧

特表2022-529230画像取り込みが改善された局所用剤を作成するためのシステムおよび方法
<>
  • 特表-画像取り込みが改善された局所用剤を作成するためのシステムおよび方法 図1
  • 特表-画像取り込みが改善された局所用剤を作成するためのシステムおよび方法 図2
  • 特表-画像取り込みが改善された局所用剤を作成するためのシステムおよび方法 図3
  • 特表-画像取り込みが改善された局所用剤を作成するためのシステムおよび方法 図4
  • 特表-画像取り込みが改善された局所用剤を作成するためのシステムおよび方法 図5
  • 特表-画像取り込みが改善された局所用剤を作成するためのシステムおよび方法 図6
  • 特表-画像取り込みが改善された局所用剤を作成するためのシステムおよび方法 図7
  • 特表-画像取り込みが改善された局所用剤を作成するためのシステムおよび方法 図8A
  • 特表-画像取り込みが改善された局所用剤を作成するためのシステムおよび方法 図8B
  • 特表-画像取り込みが改善された局所用剤を作成するためのシステムおよび方法 図8C
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-06-20
(54)【発明の名称】画像取り込みが改善された局所用剤を作成するためのシステムおよび方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20220613BHJP
   G06T 1/00 20060101ALI20220613BHJP
【FI】
G06T7/00 660
G06T1/00 510
G06T1/00 340
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021559441
(86)(22)【出願日】2020-04-03
(85)【翻訳文提出日】2021-11-15
(86)【国際出願番号】 IB2020000271
(87)【国際公開番号】W WO2020208421
(87)【国際公開日】2020-10-15
(31)【優先権主張番号】62/831,667
(32)【優先日】2019-04-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/859,676
(32)【優先日】2019-06-10
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/951,970
(32)【優先日】2019-12-20
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.TENSORFLOW
2.JAVA
3.JAVASCRIPT
4.FLASH
5.BLUETOOTH
(71)【出願人】
【識別番号】000001959
【氏名又は名称】株式会社 資生堂
(74)【代理人】
【識別番号】110000796
【氏名又は名称】特許業務法人三枝国際特許事務所
(72)【発明者】
【氏名】アルセノー ショーン
(72)【発明者】
【氏名】ハービル レスリー ヤング
【テーマコード(参考)】
5B057
5L096
【Fターム(参考)】
5B057CA01
5B057CA08
5B057CA12
5B057CA16
5B057CE06
5B057CE16
5B057DA16
5B057DB02
5B057DB06
5B057DB09
5B057DC25
5B057DC40
5L096AA02
5L096CA02
5L096CA17
5L096DA02
5L096FA06
5L096FA14
5L096FA15
5L096FA66
5L096FA69
5L096GA38
5L096JA11
5L096KA04
(57)【要約】
ユーザによって使用されるデバイスの光学ディスプレイ上にユーザの身体部分画像を表示することを含む方法が記載される。デバイスは画像センサを含むことができ、身体部分画像はセンサによって感知することができる。方法は、センサに対する身体部分画像の位置が、身体部分画像の記録を可能にするために許容可能であるかどうかを決定することと、センサに関連付けられた照明環境が、身体部分画像の記録を可能にするために許容可能であるかどうかを決定することと、画像データを有する記録された画像を提供するためにセンサを使用して画像を記録することと、記録された画像を処理して、照明環境に関連付けられた照明モデルデータを決定することと、記録された画像および照明モデルデータに基づいて、身体部分に関連付けられた反射率および色特性を決定することとを含む。一実施形態では、光学ディスプレイは光源を有し、照明環境が記録に許容できない場合、方法は、身体部分の照明が光源によって提供される照明の約2%未満であるように、ユーザに照明環境を修正するように命令し、光源を使用して一定の白色光で身体部分を照明し、照明された身体部分がセンサに対して位置決めされて、身体部分を光学ディスプレイ上に表示してセンサの視点から位置決めすることによって身体部分画像の記録を可能にするかどうかを決定する。この場合の画像の処理は、照明モデルを決定するための直接計算を含むことができる。
【選択図】図8A
【特許請求の範囲】
【請求項1】
ユーザによって使用されるデバイスの光学ディスプレイ上に前記ユーザの身体部分の画像を表示することであって、前記デバイスが画像センサを備え、前記ユーザの前記身体部分の前記画像が前記センサによって感知される、ことと、
前記センサに対する前記身体部分画像の位置が、前記身体部分の前記画像の記録を可能にするために許容可能であるかどうかを決定することと、
前記センサに関連付けられた照明環境が、前記身体部分の前記画像の記録を可能にするために許容可能であるかどうかを決定することと、
画像データを有する記録された画像を提供するために前記センサを使用して前記画像を記録することと、
前記記録された画像を処理して、前記照明環境に関連付けられた照明モデルデータを決定することと、
前記記録された画像および前記照明モデルデータに基づいて、前記ユーザの前記身体部分に関連付けられた反射率および色特性を決定することと
を含む、方法。
【請求項2】
前記センサに対する前記身体部分の前記位置が、前記身体部分の前記画像を記録するために許容可能であるかどうかを決定することは、前記光学ディスプレイに着色光を表示することを含む、請求項1に記載の方法。
【請求項3】
前記センサに対する前記身体部分の前記位置が、前記身体部分の前記画像を記録するために許容可能であるかどうかを決定することは、前記身体部分の点灯した輪郭を前記光学ディスプレイに表示することを含む、請求項1に記載の方法。
【請求項4】
前記センサに対する前記身体部分の前記位置が、前記身体部分の前記画像を記録するために許容可能であるかどうかを決定することは、前記デバイス上の触知または可聴インジケータを作動させることを含む、請求項1に記載の方法。
【請求項5】
前記照明環境が前記身体部分の前記画像を記録するために許容可能であるかどうかを決定することは、前記光学ディスプレイに着色光を表示することを含む、請求項1に記載の方法。
【請求項6】
前記照明環境が前記身体部分の前記画像を記録するために許容可能であると決定することは、前記身体部分の点灯した輪郭を表示することを含む、請求項1に記載の方法。
【請求項7】
前記照明環境が前記身体部分の前記画像を記録するために許容可能であると決定することは、前記デバイス上の触知または可聴インジケータを作動させることを含む、請求項1に記載の方法。
【請求項8】
前記照明モデルを決定することは、
前記デバイスに関連付けられた露出データを測定することと、
前記デバイス上の光源と前記画像センサの絞りとの間の関係を記述するデータを決定することと、
前記照明環境と前記画像センサとの間の関係を記述するデータを決定することと、
前記画像センサ、前記光源、および前記身体部分の表面の間の関係を記述するデータを決定することと
を含む、請求項1に記載の方法。
【請求項9】
前記反射率および色特性に部分的に基づいて、カスタマイズされた化粧品配合物を決定すること
をさらに含む、請求項1に記載の方法。
【請求項10】
前記光学ディスプレイは、光源を含み、前記照明環境による前記身体部分の照明は、前記光源によって提供される照明の約2%未満であり、前記記録された画像を処理して前記照明モデルデータを決定することは、直接計算を含む、請求項1に記載の方法。
【請求項11】
前記光学ディスプレイは、光源を含み、前記照明環境による前記身体部分の照明は、前記光源によって提供される照明の約2%~10%であり、前記記録された画像を処理して前記照明モデルデータを決定することは、画像フィルタリングを実行することを含む、請求項1に記載の方法。
【請求項12】
前記光学ディスプレイは、光源を含み、前記照明環境による前記身体部分の照明は、前記光源によって提供される照明の約10%~25%であり、前記記録された画像を処理して前記照明モデルデータを決定することは、左右対称性の統計的推定を実行することを含む、請求項1に記載の方法。
【請求項13】
前記光学ディスプレイは、光源を含み、前記照明環境による前記身体部分の照明は、前記光源によって提供される照明の約25%~40%であり、前記記録された画像を処理して前記照明モデルデータを決定することは、機械学習技術を使用することを含む、請求項1に記載の方法。
【請求項14】
前記光学ディスプレイは、光源を含み、前記センサに関連付けられた前記照明環境が前記身体部分の前記表現を記録するのに許容できないと判定された場合、前記方法は、
前記身体部分の照明が前記光源によって提供される照明の約2%未満であるように、前記ユーザに前記照明環境を修正するように命令することと、
前記光源を使用して一定の白色光で前記身体部分を照明することと、
前記照明された身体部分が前記センサに対して位置決めされて、前記身体部分の前記画像の記録を可能にするかどうかを、前記身体部分を前記センサの視野内に位置決めするために、前記ユーザの前記身体部分の輪郭を前記光学ディスプレイ上に表示することによって決定することと
をさらに含み、
前記記録された画像を処理して前記照明モデルデータを決定することは、直接計算を含む、請求項1に記載の方法。
【請求項15】
システムであって、
1つ以上のプロセッサおよび非一時的メモリと、
前記メモリに記憶された機械可読命令と
を含み、前記命令は、1つ以上のプロセッサによって実行されると、前記システムに、
ユーザによって使用されるデバイスの光学ディスプレイ上に前記ユーザの身体部分の画像を表示することであって、前記デバイスが画像センサを備え、前記ユーザの前記身体部分の前記画像が前記センサによって感知される、ことと、
前記センサに対する前記身体部分画像の位置が、前記身体部分の前記画像の記録を可能にするために許容可能であるかどうかを決定することと、
前記センサに関連付けられた照明環境が、前記身体部分の前記画像の記録を可能にするために許容可能であるかどうかを決定することと、
画像データを有する記録された画像を提供するために前記センサを使用して前記画像を記録することと、
前記記録された画像を処理して、前記照明環境に関連付けられた照明モデルデータを決定することと、
前記記録された画像および前記照明モデルデータに基づいて、前記ユーザの前記身体部分に関連付けられた反射率および色特性を決定することと
を含む動作を実行させる、システム。
【請求項16】
方法であって、
(a)デバイスの光学ディスプレイに関連付けられた照明源を使用して、既知の強度および色の光でユーザの身体部分を照明することと、
(b)前記光学ディスプレイ上に前記身体部分の表現を表示することであって、前記身体部分は前記光学デバイスの画像センサによって感知され、
前記身体部分の前記表現は、前記身体部分に関連する輪郭を含み、前記表現は、前記ユーザが前記身体部分を前記光学ディスプレイ内に配置することを可能にする、ことと、
(c)前記画像センサによって感知された前記身体部分の画像を記録することと、
(d)前記照明光の前記既知の強度および色を含む前記光学ディスプレイの特性と、前記画像センサの露出設定を含む前記画像センサの特性とを記述するデータを記録することと、
(e)前記身体部分の前記記録された画像に関連するデータ、前記光学ディスプレイの特性を記述する前記データ、前記画像センサの前記特性を記述する前記データに基づいて前記身体部分の表面色を決定することと
を含む、方法。
【請求項17】
前記画像センサから前記身体部分の前記表面までの距離を決定することであって、前記距離は、前記身体部分の前記表面色を決定するためにさらに使用されること
をさらに含む、請求項16に記載の方法。
【請求項18】
前記身体部分の前記表面色を決定することは、前記身体部分の前記記録された画像に関連付けられた前記データを、前記光学ディスプレイの特性を記述する前記データおよび前記画像センサの前記特性を記述する前記データと比較することを含む、請求項16に記載の方法。
【請求項19】
鏡に反射された前記照明源の記録された画像からのデータを使用して、前記照明源および前記画像センサの露出感度を較正することと
をさらに含む、請求項16に記載の方法。
【請求項20】
前記身体部分の前記表面色は、前記画像センサから前記身体部分の前記表面までの距離と、前記身体部分の前記記録された画像に関連付けられた前記データと、前記光学ディスプレイの特性を記述する前記データと、重み付き関数のネットワークを使用して前記画像センサの特性を記述する前記データとを処理することによって決定される、請求項17に記載の方法。
【請求項21】
システムであって、
1つ以上のプロセッサおよび非一時的メモリと、
前記メモリに記憶された機械可読命令と
を含み、前記命令は、1つ以上のプロセッサによって実行されると、前記システムに、
(a)デバイスの光学ディスプレイに関連付けられた照明源を使用して、既知の強度および色の光でユーザの身体部分を照明することと、
(b)前記光学ディスプレイ上に前記身体部分の表現を表示することであって、前記身体部分は前記光学デバイスの画像センサによって感知され、
前記身体部分の前記表現は、前記身体部分に関連する輪郭を含み、前記表現は、前記ユーザが前記身体部分を前記光学ディスプレイ内に配置することを可能にする、ことと、
(c)前記画像センサによって感知された前記身体部分の画像を記録することと、
(d)前記照明光の前記既知の強度および色を含む前記光学ディスプレイの特性と、前記画像センサの露出設定を含む前記画像センサの特性とを記述するデータを記録することと、
(e)前記身体部分の前記記録された画像に関連するデータ、前記光学ディスプレイの特性を記述する前記データ、前記画像センサの前記特性を記述する前記データに基づいて前記身体部分の表面色を決定することと
を含む動作を実行させる、システム。
【請求項22】
方法であって、
ユーザが使用するデバイスの光学ディスプレイ上に前記ユーザの身体部分の画像を表示することであって、前記デバイスは画像センサを含み、前記ユーザの前記身体部分の前記画像は前記センサによって感知される、ことと、
前記センサを使用して前記身体部分の前記画像の第1のバージョンおよび第2のバージョンを記録して、関連する記録された高ダイナミックレンジ画像を提供することであって、
前記デバイスの前記光学ディスプレイ上の前記ディスプレイ照明は、前記画像の前記第1のバージョンを記録するために白に設定され、
前記デバイスの前記光学ディスプレイ上の前記ディスプレイ照明は、前記画像の前記第2のバージョンを記録するために黒に設定される、ことと、
前記画像の前記第1のバージョンから前記画像の前記第2のバージョンの前記照明の少なくとも一部を除去して、前記画像の第3のバージョンを作成することと、
前記画像の前記第3のバージョンに関連付けられたデータを処理して、前記身体部分の3次元モデルを作成することであって、前記3次元モデルは一連の頂点に関連付けられ、前記頂点の各々はある色に関連付けられている、ことと、
前記センサから前記身体部分までの距離および前記センサから前記身体部分までの角度を考慮して、前記頂点の各々に関連付けられた前記色を補正して、補正された色の頂点を決定することと
機械学習モデルを使用して、前記補正された色の頂点を処理し、前記身体部分の色の特性を推定することと
を含む、方法。
【請求項23】
アプリケーションを使用して自己ポートレートモードで前記画像センサを動作させることをさらに含む、請求項22に記載の方法。
【請求項24】
前記アプリケーションを用いて、前記画像センサを有する前記デバイスの設定を制御することをさらに含む請求項23に記載の方法。
【請求項25】
前記画像の前記第1のバージョンを暗い室内照明環境で撮影することをさらに含む、請求項22に記載の方法。
【請求項26】
前記光学ディスプレイを白色光で照明することをさらに含む、請求項25に記載の方法。
【請求項27】
前記画像の前記第3のバージョンを顔データフォーマットで記憶することをさらに含む、請求項22に記載の方法。
【請求項28】
各頂点は、前記身体部分上の前記頂点の位置に関連付けられたラベル、前記画像の前記第3のバージョンから取得されたRGB色、前記画像センサの深度データから取得された前記頂点の深度、前記画像センサの視点に対する前記頂点の空間的位置、および前記画像センサの視点に対する前記頂点の前記投影された法線位置のうちの1つ以上を含む、請求項27に記載の方法。
【請求項29】
前記デバイスからの画像データを使用して前記デバイスの種類に基づいて色を補正する前処理ステップをさらに含む、請求項22に記載の方法。
【請求項30】
前記機械学習モデルは色補正学習モデルを含み、前記方法は、前記顔色色モデルを訓練しながら前記デバイスの種類を補正することと、前記顔色色モデルの訓練データとして、前記画像センサを有する前記デバイスを含む異なる種類のデバイスからの画像を含むこととをさらに含む、請求項22に記載の方法。
【請求項31】
前記機械学習モデルで使用するための訓練データは、前記機械学習モデルを訓練する前に平滑化およびフィルタリングされる、請求項22に記載の方法。
【請求項32】
前記機械学習モデルは、被験者からの訓練データを使用して構築および訓練され、前記訓練データは、調査データ、前記被験者からの自己報告データ、色チャートと共に前記被験者の参照写真、グラウンドトゥルース測定として使用される少なくとも1つの顔領域において分光光度計によって測定された前記被験者からの肌色データ、およびユーザからの顔画像データのうちの1つ以上を含む、請求項22に記載の方法。
【請求項33】
前記少なくとも1つの顔領域は、手首、額、右頬、左頬、右顎ライン、左顎ライン、およびデコルテから選択される、請求項32に記載の方法。
【請求項34】
グラウンドトゥルース測定に使用される前記少なくとも1つの顔領域からの肌色データである前記訓練データは、成分中央値法を使用して単一のCIELAB色に結合され、各顔領域の前記単一のCIELAB色は、機械学習モデルへの入力として使用され、前記機械学習モデルの前記出力は、顔の化粧品の統一色である、請求項32に記載の方法。
【請求項35】
グラウンドトゥルース測定に使用される前記少なくとも1つの顔領域からの肌色データである前記訓練データは、前記少なくとも1つの領域のうちのどれがグラウンドトゥルースデータセット内の肌色についての単一のCIELAB値に最もよく一致するかを判定するために、前記少なくとも1つの領域からの前記肌色データが前記少なくとも1つの顔領域にわたって線形重み付けを受ける複合方法を用いて組み合わされる、請求項32に記載の方法。
【請求項36】
前記機械学習モデルにおいて、前記少なくとも1つの顔領域の各々に対するCIELABベクトルは前記モデルへの入力であり、グラウンドトゥルース色CIELAB単一ベクトルは前記出力である、請求項35に記載の方法。
【請求項37】
前記線形重み付けは、正規化された多変量線形回帰の結果として計算される、請求項36に記載の方法。
【請求項38】
前記機械学習モデルは、夏季に取り込まれたグラウンドトゥルースデータおよび冬季に取り込まれたグラウンドトゥルースデータを有するグラウンドトゥルースデータセットを含むことができる、請求項36に記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、各々が、「System and Method For Creation Of Topical Agents With Improved Image Capture」と題された、2019年4月9日に出願された、米国仮特許出願第62/831,667号、62/859,676号および第62/951,970号に対する米国特許法第119条の下での利益を主張し、これらの開示全体が参照により本明細書に組み込まれる。
【技術分野】
【0002】
本発明の分野は、一般に、画像解析および局所用剤配合物に関し、より具体的には、改善された画像取り込み技術を使用して、カラー顔画像に基づいてカスタマイズされたまたは選択された化粧品配合物を決定するためのシステムおよび方法に関する。
【背景技術】
【0003】
例えば、高度な画像分析技術を使用した個人の特定のニーズの決定に基づいて、カスタムまたは選択局所用剤、例えば化粧品を提供する方法が当技術分野で必要とされている。したがって、これらの問題に対処し、ユーザがモバイルデバイスを使用して正確で再現可能な色サンプルを取り込むことを可能にするシステムおよび方法が開発された。特定のユーザに最適化された審美的および保護的局所用剤のための配合物を作成し、得られた製品をユーザに提供する方法は、本明細書の出願人によって開発され、米国特許第8,933,994号、米国特許第9,122,918号および米国特許第9,122,919号および/または米国特許出願公開第2018/0189853号および米国特許出願公開第2018/0260871号(「背景特許」)に開示されており、これらの各々は、関連部分が参照により本明細書に組み込まれる。これらおよび他のシステムの実装は、現在、業界で使用されており、市場で入手可能である。MATCHCo.などの会社は、そのような薬剤を製造するためのフルスタックソリューションを提供している。これらの特許に開示されているシステムおよび方法は、これらの審美剤の実際的な製造を可能にするだけでなく、そのようなシステムおよび方法が所与のユーザの特性を特徴付け、これらの特性を使用してユーザ特有の化粧品配合物を導出または推奨し、ユーザの対話およびフィードバックを介して初期配合物に基づいて、修正された化粧品配合物を提供する能力において、多くの利点を有する。したがって、新しい配合物は、個々のユーザのためのそのようなシステムに基づいて、特に配合、選択および/または修正され得る。
【0004】
背景特許に記載されているようなシステムは、顔領域を測定するための、携帯電話などの手持ち式デバイスであってもよい画像センサを有するデバイスを使用して、画像を取り込み、ユーザ対話および結果として生じる画像を処理するようにユーザを対話的に誘導する技術を開示しており、化粧品などのカスタム局所用剤の決定および最終的な製造をもたらす。しかしながら、そのような技法に関連付けられた、ユーザ対話時間を含むユーザのパフォーマンス要件は、比較的高い場合がある。例えば、いくつかの以前の方法は、最も正確な画像データを得るためにデバイスセンサを較正するために、複数の顔領域からのデータの連続的な収集を必要とした。これらのパフォーマンス要件は、エンドユーザによる採用率を低下させる可能性がある。したがって、画像データの対話型取り込みのための最適化された方法が必要とされている。
【0005】
複数の顔領域のユーザ光学データを同時に取り込む(すなわち、単一の画像取り込みにおいて)ためのいくつかの既存の手法がある。ユーザの光学画像データを取り込むための最も簡単な方法は、ユーザが自分の自己ポートレートまたは「自撮り」画像を撮ることである。この画像データは、カメラおよび対話型ディスプレイを備えた手持ち式デバイス用のオペレーティングシステムで一般的に利用可能なマシンビジョンサービスによって強化することができる。さらに、このような画像データは、3次元(3D)表面データの集合によって増強されてもよい。3D表面データを記録する光学システムによって手持ち式デバイスを拡張するためにオペレーティングシステム上で利用可能なマシンビジョンサービスがますます一般的になっている。さらに、既存のデバイスでは、顔ランドマークと呼ばれる、ユーザの顔の特定の領域を追跡するためのサービスを提供することが一般的である。これらのランドマークは、3D表面を生成するために、当業者に周知の方法によって3D表面に関連し、マッピングされ、または使用され得る。
【0006】
しかしながら、自撮り写真の使用は知られているが、正確で較正された画像と干渉する可能性がある環境光源の影響を考慮に入れるために、較正および光学およびカメラデータ収集プロセスならびに結果として生じる色精度を改善することが当技術分野で依然として必要とされている。
【発明の概要】
【0007】
本発明は、較正ならびに光学およびカメラデータ収集プロセスおよび結果として生じる色精度を改善することを目的としたいくつかの実施形態を含み、正確で較正された画像と干渉する可能性のある環境光源の影響を考慮に入れることも含む。本発明の例示的な実施形態を本明細書に要約する。
【0008】
本発明は、一実施形態において、ユーザによって使用されるデバイスの光学ディスプレイ上にユーザの身体部分の画像を表示することであって、デバイスが画像センサを備え、ユーザの身体部分の画像がセンサによって感知される、ことと、
センサに対する身体部分画像の位置が、身体部分の画像の記録を可能にするために許容可能であるかどうかを決定することと、センサに関連付けられた照明環境が、身体部分の画像の記録を可能にするために許容可能であるかどうかを決定することと、画像データを有する記録された画像を提供するためにセンサを使用して画像を記録することと、記録された画像を処理して、照明環境に関連付けられた照明モデルデータを決定することと、記録された画像および照明モデルデータに基づいて、ユーザの身体部分に関連付けられた反射率および色特性を決定することとを含む、方法を含む。
【0009】
方法の一実施形態では、センサに対する身体部分の位置が、身体部分の画像を記録するために許容可能であるかどうかを決定することは、光学ディスプレイ上に着色光を表示することを含み得る。
【0010】
方法のさらなる実施形態では、センサに対する身体部分の位置が、身体部分の画像を記録するために許容可能であるかどうかを判定することは、身体部分の点灯した輪郭を光学ディスプレイに表示することを含むことができる。
【0011】
さらに、方法は、センサに対する身体部分の位置が、身体部分の画像を記録するために許容可能であるかどうかを決定することは、デバイス上の触知または可聴インジケータを作動させることを含むことができる。
【0012】
本方法の別の実施形態では、照明環境が身体部分の画像を記録するために許容可能であるかどうかを決定することは、光学ディスプレイに着色光を表示することを含むことができる。
【0013】
照明環境が身体部分の画像を記録するために許容可能であると決定することは、身体部分の点灯した輪郭を表示することを含み得ることが、本明細書の1つの方法にさらに含まれる。
【0014】
方法の別の実施形態では、照明環境が身体部分の画像を記録するために許容可能であると決定することは、デバイス上の触知または可聴インジケータを作動させることを含み得る。
【0015】
本方法において照明モデルを決定することは、デバイスに関連付けられた露出データを測定することと、デバイス上の光源と画像センサの絞りとの間の関係を記述するデータを決定することと、照明環境と画像センサとの間の関係を記述するデータを決定することと、画像センサ、光源、および身体部分の表面の間の関係を記述するデータを決定することとを含み得る。
【0016】
本方法はまた、反射率および色特性に部分的に基づいてカスタマイズされた化粧品配合物を決定することをさらに含み得る。
【0017】
本明細書の方法では、記録された画像の様々な処理を異なる照明環境に使用することができる。例示的な実施形態は、光学ディスプレイは、光源を含み、照明環境による身体部分の照明は、光源によって提供される照明の約2%未満であり、記録された画像を処理して照明モデルデータを決定することは、直接計算を含み得ることを含む。光学ディスプレイは、光源を含んでもよく、照明環境による身体部分の照明は、光源によって提供される照明の約2%~10%であってもよく、記録された画像を処理して照明モデルデータを決定することは、画像フィルタリングを実行することを含んでもよい。光学ディスプレイは、光源を含んでもよく、照明環境による身体部分の照明は、光源によって提供される照明の約10%~25%であってもよく、記録された画像を処理して照明モデルデータを決定することは、左右対称性の統計的推定を実行することを含んでもよい。さらに、光学ディスプレイは、光源を含んでもよく、照明環境による身体部分の照明は、光源によって提供される照明の約25%~40%であってもよく、記録された画像を処理して照明モデルデータを決定することは、機械学習技術を使用することを含んでもよい。
【0018】
さらなる実施形態では、光学ディスプレイは、光源を含んでもよく、センサに関連付けられた照明環境が身体部分の表現を記録するのに許容できないと判定された場合、次いで方法は、身体部分の照明が光源によって提供される照明の約2%未満であるように、ユーザに照明環境を修正するように命令することと、光源を使用して一定の白色光で身体部分を照明することと、照明された身体部分がセンサに対して位置決めされて、身体部分の画像の記録を可能にするかどうかを、身体部分をセンサの視野内に位置決めするために、ユーザの身体部分の輪郭を光学ディスプレイ上に表示することによって決定することと
をさらに含み、記録された画像を処理して照明モデルデータを決定することは、直接計算を含んでもよい。
【0019】
本方法はまた、システムであって、1つ以上のプロセッサおよび非一時的メモリと、メモリに記憶された機械可読命令とを含み、命令は、1つ以上のプロセッサによって実行されると、システムに、ユーザによって使用されるデバイスの光学ディスプレイ上にユーザの身体部分の画像を表示することであって、デバイスが画像センサを備え、ユーザの身体部分の画像がセンサによって感知される、ことと、センサに対する身体部分画像の位置が、身体部分の画像の記録を可能にするために許容可能であるかどうかを決定することと、
センサに関連付けられた照明環境が、身体部分の画像の記録を可能にするために許容可能であるかどうかを決定することと、画像データを有する記録された画像を提供するためにセンサを使用して画像を記録することと、記録された画像を処理して、照明環境に関連付けられた照明モデルデータを決定することと、記録された画像および照明モデルデータに基づいて、ユーザの身体部分に関連付けられた反射率および色特性を決定することとを含む動作を実行させる、システムの実施形態を含んでもよい。
【0020】
本明細書にさらに含まれるのは、方法であって、(a)デバイスの光学ディスプレイに関連付けられた照明源を使用して、既知の強度および色の光でユーザの身体部分を照明することと、(b)光学ディスプレイ上に身体部分の表現を表示することであって、身体部分は光学デバイスの画像センサによって感知され、身体部分の表現は、身体部分に関連する輪郭を含み、表現は、ユーザが身体部分を光学ディスプレイ内に配置することを可能にする、ことと、(c)画像センサによって感知された身体部分の画像を記録することと、(d)照明光の既知の強度および色を含む光学ディスプレイの特性と、画像センサの露出設定を含む画像センサの特性とを記述するデータを記録することと、(e)身体部分の記録された画像に関連するデータ、光学ディスプレイの特性を記述するデータ、画像センサの特性を記述するデータに基づいて身体部分の表面色を決定することとを含む、方法である。
【0021】
本方法の一実施形態では、方法は、画像センサから身体部分の表面までの距離を決定することであって、距離は、身体部分の表面色を決定するためにさらに使用されること
をさらに含んでもよい。別の実施形態では、身体部分の表面色を決定することは、身体部分の記録された画像に関連付けられたデータを、光学ディスプレイの特性を記述するデータおよび画像センサの特性を記述するデータと比較することを含む。方法は、鏡に反射された照明源の記録された画像からのデータを使用して、照明源および画像センサの露出感度を較正することをさらに含んでもよい。そのような実施形態では、身体部分の表面色は、画像センサから身体部分の表面までの距離と、身体部分の記録された画像に関連付けられたデータと、光学ディスプレイの特性を記述するデータと、重み付き関数のネットワークを使用して画像センサの特性を記述するデータとを処理することによって決定され得る。
【0022】
本明細書では、システムであって、1つ以上のプロセッサおよび非一時的メモリと、メモリに記憶された機械可読命令とを含み、命令は、1つ以上のプロセッサによって実行されると、システムに、(a)デバイスの光学ディスプレイに関連付けられた照明源を使用して、既知の強度および色の光でユーザの身体部分を照明することと、(b)光学ディスプレイ上に身体部分の表現を表示することであって、身体部分は光学デバイスの画像センサによって感知され、身体部分の表現は、身体部分に関連する輪郭を含み、表現は、ユーザが身体部分を光学ディスプレイ内に配置することを可能にする、ことと、(c)画像センサによって感知された身体部分の画像を記録することと、(d)照明光の既知の強度および色を含む光学ディスプレイの特性と、画像センサの露出設定を含む画像センサの特性とを記述するデータを記録することと、(e)身体部分の記録された画像に関連するデータ、光学ディスプレイの特性を記述するデータ、画像センサの特性を記述するデータに基づいて身体部分の表面色を決定することとを含む動作を実行させる、システムもまた含まれる。
【0023】
また本明細書では、方法であって、ユーザが使用するデバイスの光学ディスプレイ上にユーザの身体部分の画像を表示することであって、デバイスは画像センサを含み、ユーザの身体部分の画像はセンサによって感知される、ことと、センサを使用して身体部分の画像の第1のバージョンおよび第2のバージョンを記録して、関連する記録された高ダイナミックレンジ画像を提供することであって、デバイスの光学ディスプレイ上のディスプレイ照明は、画像の第1のバージョンを記録するために白に設定され、デバイスの光学ディスプレイ上のディスプレイ照明は、画像の第2のバージョンを記録するために黒に設定される、ことと、画像の第1のバージョンから画像の第2のバージョンの照明の少なくとも一部を除去して、画像の第3のバージョンを作成することと、画像の第3のバージョンに関連付けられたデータを処理して、身体部分の3次元モデルを作成することであって、3次元モデルは一連の頂点に関連付けられ、頂点の各々はある色に関連付けられている、ことと、センサから身体部分までの距離およびセンサから身体部分までの角度を考慮して、頂点の各々に関連付けられた色を補正して、補正された色の頂点を決定することと機械学習モデルを使用して、補正された色の頂点を処理し、身体部分の色の特性を推定することとを含む、方法が含まれる。
【0024】
本方法は、いくつかの実施形態では、アプリケーションを使用して自己ポートレートモードで画像センサを動作させることをさらに含むことができる。本方法は、アプリケーションを用いて画像センサを有するデバイスの設定を制御することをさらに含むことができる。本方法の一実施形態では、本方法は、暗い室内照明環境で画像の第1のバージョンを撮影することと、さらに光学ディスプレイを白色光で照明することとをさらに含むことができる。
【0025】
本方法は、いくつかの実施形態では、画像の第3のバージョンを顔データフォーマットで記憶することをさらに含むことができる。各頂点は、身体部分上の頂点の位置に関連付けられたラベル、画像の第3のバージョンから取得されたRGB色、画像センサの深度データから取得された頂点の深度、画像センサの視点に対する頂点の空間的位置、および画像センサの視点に対する頂点の投影された法線位置のうちの1つ以上を含み得る。この方法の一実施形態では、方法は、デバイスからの画像データを使用してデバイスの種類に基づいて色を補正する前処理ステップをさらに含むことができる。
【0026】
この方法では、機械学習モデルは色補正学習モデルを含むことができ、方法は、顔色色モデルを訓練しながらデバイスの種類を補正し、顔色色モデルの訓練データとして、画像センサを有するデバイスを含む異なる種類のデバイスからの画像を含むことをさらに含む。機械学習モデルで使用するための訓練データは、機械学習モデルを訓練する前に平滑化およびフィルタリングすることができる。
【0027】
本方法ではさらに、機械学習モデルは、被験者からの訓練データを使用して構築および訓練され、訓練データは、調査データ、被験者からの自己報告データ、色チャートと共に被験者の参照写真、グラウンドトゥルース測定として使用される少なくとも1つの顔領域において分光光度計によって測定された被験者からの肌色データ、およびユーザからの顔画像データのうちの1つ以上を含み得る。少なくとも1つの顔領域は、手首、額、右頬、左頬、右顎ライン、左顎ライン、およびデコルテから選択される。
【0028】
グラウンドトゥルース測定に使用される少なくとも1つの顔領域からの肌色データである方法における訓練データは、成分中央値法を使用して単一のCIELAB色に結合されてもよく、各顔領域の単一のCIELAB色は、機械学習モデルへの入力として使用され、機械学習モデルの出力は、顔の化粧品の統一色であってもよい。
【0029】
あるいは、方法におけるグラウンドトゥルース測定に使用される少なくとも1つの顔領域からの肌色データである訓練データは、少なくとも1つの領域のうちのどれがグラウンドトゥルースデータセット内の肌色についての単一のCIELAB値に最もよく一致するかを判定するために、少なくとも1つの領域からの肌色データが少なくとも1つの顔領域にわたって線形重み付けを受ける複合方法を用いて組み合わされ得る。この実施形態では、機械学習モデルにおいて、少なくとも1つの顔領域の各々に対するCIELABベクトルはモデルへの入力であり、グラウンドトゥルース色CIELAB単一ベクトルは出力である。線形重み付けは、正規化された多変量線形回帰の結果として計算されてもよい。機械学習モデルは、夏季に取り込まれたグラウンドトゥルースデータおよび冬季に取り込まれたグラウンドトゥルースデータを有するグラウンドトゥルースデータセットを含むことができる。
【図面の簡単な説明】
【0030】
前述の概要、ならびに本発明の好ましい実施形態の以下の詳細な説明は、添付の図面と併せて読めばよりよく理解されよう。本発明を例示する目的で、現在好ましい実施形態が図面に示されている。しかしながら、本発明は、示された正確な配置および手段に限定されないことを理解されたい。図面において、同様の参照符号は、一般に、異なる図を通して同じ部分を指す。さらに、図面は必ずしも縮尺通りではなく、代わりに一般に本発明の原理を説明することに重点が置かれている。
【0031】
図1】検出された顔ランドマークのレンダリングを示す図である。
図2】ライン表示と照明とを組み合わせた例示的な光学ディスプレイを示す図である。
図3】自己ポートレートスキャン中の不十分なユーザ位置決めを示すユーザへのフィードバックを有する例示的な光学ディスプレイを示す図である。
図4】顔領域の深度マップを示す図である。
図5】顔ランドマーク検出から導出された顔領域のジオメトリのレンダリングを示す図である。
図6】深度サンプリングを有するジオメトリフレームからの細分化ジオメトリを示す図である。
図7】照明モデルで使用することができる顔領域の平面サンプルを示す図である。
図8A】本発明の最適化された画像取り込み技術を使用するための例示的な方法のステップのフローチャートである。
図8C】本発明の最適化された画像取り込み技術を使用するための例示的な方法のステップのフローチャートである。
図8B】本発明の実施形態に関連して使用され得る高レベルの例示的なシステムアーキテクチャである。
【発明を実施するための形態】
【0032】
以下では、本発明の実施形態を説明し、基礎となるシステムおよび方法に関して、本発明で使用するのに有用な従来のシステムおよび方法を定義するために背景特許の開示を、関連部分に参考として組み込む。
【0033】
本出願に記載される本発明およびその実施形態は、顔領域の顔色を測定するために既知の光量でユーザを照らす手段としても機能しながら、ユーザにフィードバックを提供するための光学ディスプレイ(照明付き液晶ディスプレイなど)を提供する。したがって、実施形態は、顔ランドマーク追跡および顔表面再構成に加えて、平行光学データ取り込み(すなわち、いくつかの形態の光学データを一度に取り込むことができる)に使用される固有の照明環境のモデルを構築するための制御された照明の形態を提供する。本明細書で使用される場合、「照明モデル」という用語、または照明環境のモデル化への言及は、照明源によって提供される光の物理的伝播、物理的表面とのその相互作用、およびその後の光学システムによる感知の数学的モデルを指す。そのようなモデルは、データおよびコードとして実用的な用途に縮小され、画像データに関する情報を提供するために使用され得る。
【0034】
さらに、取り込まれたデータおよび構築された照明モデルは、本明細書では機械学習システムを訓練するために使用することができる。さらに、リアルタイムの取り込まれたデータ、構築された照明モデルは、訓練された機械学習システムによって処理されて、詳細な顔色データ(すなわち、CIE l*a*b*、CIELAB色)、顔色特徴データ(例えば、しわ、そばかす、にきび、あざ)を提供し、カスタム局所用剤のインタラクティブな作成、修正、および製造のための製造命令を提供することができる。
【0035】
本明細書で開示される本発明の実施形態はまた、本明細書でより詳細に説明するように、最適化された技術を使用してユーザの複数の顔領域からの光反射率データの並行収集を可能にする。
【0036】
背景として、画像を記録するために光学デバイスのセンサ/カメラを使用する色の正確な記録(すなわち、データの測定および記憶)は、センサ、照明、および物理的環境の物理的特性が制御、既知、またはモデル化されることを必要とする。
【0037】
本明細書で使用される場合、光学データは、センサによって取り込まれ、レンズの光学システムによって処理されて、電荷結合素子(CCD)などの光感知手段のアレイに実像を集束させるデータを指す。光学システムの出力は、カラーチャネルまたはグレースケールチャネルで構成される画像である。光学データは、カメラを含み、他の感知方法を使用する光学システムによって取り込まれた他のデータを含むことができる。例えば、深度データは、構造化光を使用する飛行時間センサおよび深度システムで使用されるような、複数のカメラおよび時限または構造化光出力を使用する光学システムを使用して感知することができる。
【0038】
センサの物理的特性は、光学ストリーム(例えば、カラー画像、画像アレイで表される深度データ、ならびに例えば、交換可能画像ファイルフォーマット(EXIF)またはタグ画像ファイルフォーマット(TIFF)フォーマットで表されるカメラ設定を含むことができる光学データ)、またはオペレーティングシステムを介して関連するハードウェアに埋め込まれたデータを読み取ることによって決定される。埋め込まれたデータは、データストリームに関する追加情報を含む生または圧縮画像データから主に構成されるデータストリーム(例えば、デバイスのオペレーティングシステム(OS)内のアプリケーションプログラミングインタフェース(API)で利用可能なデータのシリアルストリーム)内のデータを含むことができる。埋め込みデータは、限定はしないが、画像取り込みに使用される露出時間、画像取り込みに使用されるレンズシステムの絞り、画像取り込みに使用される画像記録デバイスの感度(ISO)、GPS座標での画像取り込みの位置、ならびに撮像装置の製造およびモデルを含むことができる。
【0039】
本明細書で使用される照明は、局所領域光源(ランプなど)、拡散領域光源(ライトパネルなど)、および遠距離光源(太陽および月からの光など)を含むことができる可視光の光源を指す。
【0040】
本明細書で使用される物理的環境とは、屋内空間(家の部屋または車もしくは車両の内部など)または屋外空間を指し、画像取り込みに関連して実行される活動に近接する表面の色および反射率も含む。
【0041】
本明細書でより完全に説明するように、センサ、光、およびターゲットの表面反射率の関係は、デバイス/カメラの3D感知機能によって供給されるデータを使用して感知およびモデル化することができる。あるいは、顔ランドマークを認識し、これらのランドマークをユーザの画像(例えば、数学的方法を使用する幾何学的データフィッティング技術)に適合させる技術を使用して、関係を感知およびモデル化することができる。そのような技術は、デバイスのオペレーティングシステムのコンピュータビジョンアルゴリズム、またはSTASM、OpenCVなどのオープンソースプロジェクト、もしくはAppleのARKit、もしくはGoogleのVision APIなどの業界APIを含む他の利用可能なソースによって提供され得る。照明およびユーザ対話は、本明細書でより完全に説明するように、デバイスの光学ディスプレイを使用して制御することができる。
【0042】
光センサの露出データである埋め込みデータ(すなわち、ISO、シャッタ時間、および絞り)は、いくつかの方法で取得することができる。例示的な一実施形態では、カメラデータストリームに埋め込まれた露出データは、センサの露出値を決定するために監視される。別の実施形態では、システムは、カメラのシャッタタイミングおよびISO感度を特定の設定に設定する。いずれの場合も、シーン内の光量は、露出データを使用して測定され得る。
【0043】
光源(例えば、「フラッシュ」、または自己ポートレート/自撮り写真を撮影している間に、光学ディスプレイからの照明)とカメラとの間の関係(すなわち、互いに対する幾何学的関係/配置(6自由度)、位置(xyz)、向き(ヨー、ピッチ、回転または軸を中心とした回転))は、光源とカメラシステムの絞りとの相対的な位置および向きを測定することによって決定することができる。このデータは、測定され、後で使用するためにデータソースに記憶されてもよい。
【0044】
環境光源とカメラとの間の関係(すなわち、以前と同じ幾何学的関係)も決定される必要があり、局所照明(照明環境)およびカメラ絞りに関する物理的環境におけるその対応するラジオシティマッピングに応じて変化し得る。薄暗い/暗い室内の状況の場合、環境光の位置、向き、およびその後のカメラへの寄与の関係を決定することは、埋め込み画像データ内の露出情報がそのような追加の光の強度が小さいことを示すときを検出するのと同じくらい簡単であり得る。環境光源が低い状況では、測定された表面色の直接計算を単純化することができる。低光源環境は、例えば、周囲または他の環境照明源の総寄与が、表面反射率について見出されるCIELAB色によって測定される人間が知覚可能な輝度または色分散の約2%未満である環境であり、CIELABは、標準観測者モデルを使用して輝度および色の人間の知覚の近似値であるように設計されている。
【0045】
このような直接計算は、カメラ、皮膚表面、および光の相対位置が既知であり、光量が既知であり(すなわち、ディスプレイ以外に光源がないため)、カメラの露出が既知であると、物理システムとして皮膚の色を解決することができる、ラジオシティ方程式を解くことによって実行することができる。
【0046】
暗い室内環境は、照明モデルを解くプロセス全体を単純化する(すなわち、外光がないため、未知の変数を解くという問題が取り除かれる)が、ここで説明するように、他の複雑さが生じる。
【0047】
多くの手持ち式デバイスは、カメラシステムと、光学ディスプレイを使用してデバイスと対話する能力とを含む。手持ち式デバイス上の光学ディスプレイは、経年的に解像度、輝度、および色の品質が向上し続けている。これらのデバイスにおける輝度および色忠実度の品質の向上は、照明および表示のためのシステムとして機能することを可能にする。この使用はよく知られており、多くの場合、カメラコードインタフェース内の「フラッシュ」または補助光として機能するためにデバイス上の埋め込みソフトウェアによって使用される。また、自撮り写真を撮るユーザへのフィードバックとして、そのような光学ディスプレイ上でカメラのリアルタイム出力を示すことも一般的である。しかしながら、このようなリアルタイムのフィードバックの間、暗い室内環境では、ディスプレイを光源として使用することはできない。暗い室内にいる人の表示画面に映像を表示すると、画面に表示される光が減衰するからである。画面に表示される光は暗く、自撮り写真の被験者を照らすことができない。暗い室内で照明が不足すると、自撮り写真用にユーザの顔を適切に配置することが不可能ではないにしても困難になる。
【0048】
本発明の特定の態様は、この問題を解決するのに役立つ。一実施形態では、光学ディスプレイは、フィードバックと暗い室内環境の光源としての両方に使用され、それは、自撮りスキャンの被験者である身体部分が、例えば本明細書に記載の顔ランドマーク検出技術を使用して自動的に検出され得るように、画像センサが配置されていることを光学ディスプレイ上に示すことを含み、光学ディスプレイは、他の光源よりも大きい光束で身体部分を照明する。より具体的には、手持ち式デバイスは、ユーザに自身の表現を輪郭、線画、または(以下でより詳細に説明するような)白色背景上の一定/ほぼ一定の輝度(電話の光源ディスプレイから来るような照明)を有する他のスパースなレンダリングとして示すようにプログラムすることができる。そのようなレンダリングは、いくつかの方法で達成することができる。一実施形態では、キャニーエッジ検出などのエッジを見つけるために使用される画像処理アルゴリズムを使用して、顔のエッジを見つけることができる。これらのエッジは、白色背景上に明るい線として示すことができる。これにより、デバイスは、ほぼ一定の/連続的な照明を提供しながら、ユーザに位置決めフィードバックを与えることができる。
【0049】
次に、ユーザの顔の線画/スパースなレンダリング表現を作成する方法について説明する。(例えば、前述したように、手持ち式デバイスオペレーティングシステムまたは顔特徴検出APIのマシンビジョンサービスによって提供される)顔特徴検出アルゴリズムを使用して、ユーザの顔のキーポイント(図1に示すように)を見つけることができる。ソフトウェアは顔のポイントを知っている。既存のポイントに対する比例関係を使用して、新しいポイントを追加することができる。そして、ドットを繋げて線画を作成する。これらのポイントは、白色背景(図2に示すように)上に淡黄色の線画を構築するために使用することができ、それによってシステムがほぼ一定の照明を提供しながらユーザに位置決めフィードバックを与えることを可能にする。このレンダリングは、フレーム内のユーザの位置を示すことができ、それにより、ユーザは自己ポートレートを適切に配置することができる。このようにして、光学ディスプレイを暗い室内環境における光源として、ならびに位置決めおよび位置合わせのためのフィードバックとして使用することが可能である。
【0050】
さらに、部屋が少なくともいくらかの光を有する場合にほとんど適用可能な特定の実施形態では、ユーザがカメラを最適に近い位置および距離に配置したときにレンダリングが変化して表示することができる。最適なユーザ位置決めは、いくつかの要因によって決定され得る。1つの要因は、ユーザのカメラからの距離である。例えば、非常に近い距離では、ユーザのすべての必要な特徴が見えない場合があり、ユーザの特徴が焦点から外れている場合があり、および/または顔ランドマークの位置を特定するために使用されるアルゴリズムが失敗する場合がある。ユーザがカメラから遠すぎると、ユーザの特徴を表すピクセル数が減少し、データ収集が損なわれる可能性がある。ユーザが画像領域内の中央にない場合、重要なユーザ特徴は切り取られることがある。ユーザの頭が横を向いている場合、ユーザのその向きは特定の特徴を隠すことがある。
【0051】
一実施形態では、レンダリングは、電話が適切な位置にあるときの顔の輪郭を記述する線画であってもよく、そうでないときに顔を取り囲む楕円形になる。より具体的には、顔特徴検出ソフトウェアは、顔ランドマークの位置を検出して、ユーザの顔特徴がフレーム内で可視であり、画像を記録するために許容可能であるかどうかを判定することができる。顔特徴が画像フレーム内ですべて見えない場合、楕円がレンダリングされる。
【0052】
別の例示的な実施形態では、レンダリングは、電話が適切な位置にあるとき(図2に示すように)、顔の薄い直線状のエッジを表示し、そうでないとき(図3に示すように)、ユーザの低コントラストの明るいビデオレンダリングに変わることができる。いくつかの実施形態では、以下のセクションで説明するように、低い周囲光および環境光の要件が緩和され、ニュートン法を使用した追加の計算を使用して照明環境全体が解決される。しかしながら、そのような実施形態であっても、前の段落で説明した方法を使用して光学ディスプレイによってユーザフィードバックを提供することは、より多くの周囲/環境光が存在する状況であっても、光学ディスプレイによる直接照明が依然として必要とされる可能性があるため、依然として有用である。
【0053】
明るい部屋の環境では、より大きな環境光照明を考慮するために、カメラと環境光源との間の関係を見つけることはより複雑になり得る。1つの例示的な解法は、計算された表面色を調整するために複数の光源を使用して複数の画像を取り込むことを含む。この実施形態では、光学ディスプレイの色が既知の較正された白色である上記の「自撮り写真」を撮る方法を使用して、ユーザによって画像が記録される。一実施形態では、画面の色および輝度は、所与の電話機のモデルについて測定され、定数として使用される。他の実施形態では、所与のモデルの電話の画面の色および輝度が可変すぎて一定と考えることができない場合、白色画面は、ユーザに鏡で自分の写真を撮らせることによって較正されてもよい。その画像は、電話機の白色画面を較正するために使用することができ、すなわち、画像内の白色光を測定することができ、したがって既知にすることができる。このステップの実施形態の技術は、背景特許の一例に記載されており、本明細書でさらに説明される。例えば、1つの例示的な実施形態では、ユーザは、手持ち式デバイスのディスプレイを共通の鏡に示すために一連のユーザインタフェーススクリーンによって指示される。カメラ/電話機の露出設定は既知の値に設定される。ユーザは、手持ち式デバイスの前カメラで、画面の画像の画像を記録するためにユーザインタフェース要素を押すように求められる。手持ち式デバイス上のソフトウェアは、記録された画像、既知の露出設定、手持ち式デバイスの種類、ならびに画像内の明るいディスプレイのサイズおよび記録された輝度を使用して、ディスプレイの照明およびカメラの露出感度を較正する。次いで、この較正情報を使用して、見つかったディスプレイ照明輝度およびカメラの露出特性に対する色を使用して色変換のための白色ポイントを調整することにより、顔色の計算を改善することができる。
【0054】
ここで、明るい屋内環境における環境光照明を考慮する1つの方法の説明に戻ると、自撮り写真が撮影された後、光学ディスプレイ光源の色が変更され(例えば、黄色に)、画像が記録される。カラー(例えば、黄色で照明された)画像は、異なる周波数(すなわち、黄色以外の色)の照明された色がある画像の領域を検出するために使用される。この情報は、第1の(すなわち、白色較正された)画像から環境光を除去するために使用される。
【0055】
ここでより詳細にこの実施形態を説明すると、手持ち式デバイス上のソフトウェアは、光学ディスプレイ上に一連の別個の背景色を表示し、画像は、別個の光源ごとに記録される。これらの光源の1つは、sRGB規格(R=1、G=1、B=0)によって定義されるような最も強い黄色であってもよい。別の光源は、sRGB規格(R=1、G=1、B=1)で定義されている白色であってもよい。次に、周囲光を検出および除去するためにソフトウェアによって以下のステップが実行されてもよい。1.黄色の光源を有するユーザの画像の非黄色(青色)領域が見出される。2.これらの領域は、高露出の領域を減衰させることによって行われる露出飽和のアーチファクトを除去するために処理される。3.これらの領域は、ノイズを除去するために処理され、ノイズは、メディアン画像フィルタを適用することによって行われ得る。4.これらの見つかった領域は、白色光源によるユーザの画像の露出を減衰させるために使用される。5.得られた補正画像は、表面色のその後の計算を改良するために使用されてもよい。露出飽和のアーチファクトは、この文脈では、記録された画像において純粋な白色に見える非常に明るい反射である。これらは、輝度のヒストグラムによって検出され、見つけられ、除去されてもよい。これに関連して、ノイズを除去することは、既知の技術を使用して、半径1.0の成分メディアンフィルタを取り込まれた画像に適用することによって実行することができる。
【0056】
明るい部屋環境では、手持ち式デバイスは、画像データが収集され得るという1つの指示と、収集され得ない場合の別の指示とを提供するようにプログラムされ得る。例えば、一実施形態では、カメラデータストリームから読み取られた埋め込まれた露出データが、周囲光環境が明るすぎることを示すか、そうでなければ光学ディスプレイがユーザの主光源になるのに許容されないことを示す場合、表示を行うことができる(例えば、図3のディスプレイの左上隅に示すように、赤色ドットである)が、埋め込まれた露出が、光学ディスプレイがユーザの主光源になるのに周囲光環境が十分に暗く、照明環境が許容できることを示す場合、異なる表示を行うことができる(例えば、図2の左上隅に示すように、緑色ドットである)。他の実施形態では、インジケータは視覚的ではなく、可聴または触知的である。
【0057】
ここで、この実施形態をより詳細に説明すると、光学ディスプレイではない周囲、環境、および他の光源は、それらの合計の寄与が光学ディスプレイの寄与よりも大きい場合に「明るすぎる」と見なされる可能性があり、その結果、ソフトウェアアルゴリズムまたは方法がユーザの顔色の所望の領域の表面反射率を正確に解決することは困難である。より多くのまたはより少ない光は、そのような光を説明するために使用するのに利用可能な技術に応じて許容可能または容認可能であり得る、すなわち、照明モデルを直接解くことは、周囲光に対して非常に敏感であるが、機械学習システムは、はるかに多くの周囲光を無視するように訓練され得る。例えば、反射率が直接解決される実施形態(例えば、本明細書の他の箇所に記載されているような、画像フィルタリングによって支援されない逆レンダリング技術、追加の統計的または機械学習技術によって)では、光学ディスプレイによって提供されるもの以外の必要な照明量は非常に少なくてもよい。例えば、この追加の照明は、見つかった顔色の測定値の許容値に直接影響するので、測定される顔色表面に当たる追加のまたは周囲の照明は、光学ディスプレイによって提供される照明の約2%未満であることが必要とされ得る(すなわち、ディスプレイ以外の光源から許容される周囲光の量であって、皮膚に当たるときにディスプレイから出力される光の割合としての周囲光の量)。
【0058】
別の実施形態では、周囲または他の追加の照明が上述の画像フィルタリングによって減衰され得る場合、測定される顔色表面に当たる追加のまたは周囲の照明は、光学ディスプレイによって提供される照明の約10%未満であることが必要とされ得る。
【0059】
顔の領域に対する反射光の許容される分散を推定する統計技術と、既知の照明下での顔の反射率の左右対称性の統計的推定とを追加するさらに別の実施形態では、測定される顔色表面に当たる追加のまたは周囲の照明が、光学ディスプレイによって提供される照明の約25%未満であることが必要とされ得る。例えば、光学ディスプレイからの光はほぼ中心にあり、顔の特徴が検出されているので、左右対称性(人間がほぼ左右対称であると仮定すると)を使用して顔の領域の照明を比較することが有用である。見つかった反射色に顔の左と右側で有意差がある場合、その差を使用して顔の明るい側の外光を検出することができる。
【0060】
広範囲の可能な顔色、照明、および周囲入力によって訓練された機械学習システムを使用して前述の実施形態の出力を調整するさらなる実施形態では、測定される顔色表面に当たる追加のまたは周囲の照明が、光学ディスプレイによって提供される照明の約40%未満であることが必要とされ得る。これらの実施形態では、追加の照明または周囲照明に対する必要な制限が試験され、知られており、追加の照明の量は、画像データストリームに埋め込まれたデータの出力を監視することによって検出することができる。
【0061】
センサ、光源およびターゲット表面の間の物理的関係も決定される必要がある(以前と同様の物理的関係)。一実施形態では、光学ディスプレイ(自己ポートレート/自撮り動作モードにおける光源である)は、光学センサ/カメラに対して固定位置にある。システムは、動作しているデバイスの種類を決定し、この関係(すなわち、カメラに対するディスプレイの物理的な距離および向きであり、所与の電話機のモデルでは変化しない)を使用して、センサ/カメラと光源との物理的関係を決定することができる。センサおよび光源とターゲット表面との関係を決定するために、ターゲット表面の様々な深さを決定しなければならない。一実施形態では、手持ち式デバイス(例えば、スマートフォン)は、アレイとして深さを測定するセンサを有する。
【0062】
図4は、グレースケール画像としてそのようなアレイの深度出力を示す。図4では、明るい領域はカメラ絞りに近く、暗い領域はさらに離れている。グレーの各色調は、カメラ絞りからの固定された較正された距離を表し、したがって、光学画像に関連する3D表面を構築するために使用され得ることが理解されよう。このようにして、ターゲット表面とカメラとの関係が決定される。別の実施形態では、マシンビジョン技術を使用して、画像上の顔ランドマークを見つける(例えば、前述のようにAPIを使用する)。図1は、顔特徴ランドマーク追跡のためにオペレーティングシステムのサービスを使用して手持ち式デバイスから出力される2次元(2D)ポイントを示す。ポイントは、配列順に線で結ばれている。図5は、接続された3Dポリトープのセットを形成するためにノードおよび弧のグラフを構築するためにフィッティングアルゴリズムを使用して増強された図1のポイントを示す。このグラフを保持するために使用されるデータ構造は、ウィングドエッジモデルと呼ばれる。この例で使用されるフィッティングアルゴリズムは、見つかった顔ランドマークを使用して、予め作成されたグラフの新しい位置を決定し、位置は、置換、スケーリング、補間、および外挿を使用するシステムによって見つけられる。そのような適合を実行するために使用することができる既知のアルゴリズムがある。例えば、特異値分解を使用して、ランドマークのサブセットの均一な投影行列を構築することができ、これらの行列を使用して、ウィングドエッジモデルのセクションをランドマーク位置にマッピングすることができる。図4に示すような深度マップを使用して、感知された深度位置を変換されたウィングドエッジモデルに適用することができる。図6は、選択的細分化を使用して平滑化されたウィングドエッジモデルを示す。このような細分化技術は公知である。次いで、これらの表面のカメラまでの距離を決定することができ、すなわち、顔領域の深さがカメラ絞りを参照して測定されるためである。
【0063】
上記のプロセスのさらなる詳細をここで説明する。より具体的には、以下で参照される擬似コードを含む以下の説明は、顔ランドマークから顔のポリゴン構造を作成するための例示的なステップを提供する。
【0064】
顔ランドマークは、以前に参照されたものなどの顔ランドマーク検出ソフトウェアの出力から読み取られる。図1は、番号付けされた入力頂点を示す。各頂点に関連付けられた数は、そのインデックスと呼ばれるものとする。顔領域ポリゴンは、インデックスによって定義される。例えば、図1のインデックス1...65を用いる。ゼロベースのカウントが使用されるため、この例では、コード内のインデックスは0...64の範囲である。追加の頂点は、ポリゴンを構築するために使用される。これらの追加の頂点は、重み付き補間および外挿を使用して合成される。
synthLinearPointは、重みおよび2つの入力頂点を使用して新しい頂点を補間する。
synthTriPointは、2つのポイントの垂直法線、2つのポイントの重心、および新しい頂点を配置する重みを使用して新しい頂点を外挿する。
synthQuadPointは、2つのポイントの垂直法線、第3のポイントの位置、および新しい頂点を配置する重みを使用して新しい頂点を外挿する。
【0065】
新しい頂点の各々は、擬似コードsynthUVs()を使用して合成される65...92。
【0066】
ウィングドエッジモデルは、gFaceRegionsRegionsを順にトラバースすることによって作成される。図5を参照して、例示的なウィングドエッジモデルを示す。このモデルを作成する方法は公知であり、例えば、「Winged Edge Polyhedron Representation」、Bruce G.Baumgart、Stanford University、Artificial Intelligence Project(1972)に記載されており、これは参照により本明細書に組み込まれる。
【0067】
次に、ウィングドエッジモデルを細分化する。例示的な細分化技術が知られており、例えば、Tony DeRose、Michael Kass、およびTien Truongによる「Subdivision Surfaces in Character Animation」(SIGGRAPH‘98)に記載されており、これは参照により本明細書に組み込まれる。
【0068】
カメラの4×4の投影行列は、使用されているデバイスのタイプおよびモデルに基づいて既知の値を使用して計算される。細分化表面内の各頂点について、深度マップ内の対応するポイントがサンプリングされ、深度表現のためのスケール補正が適用され、頂点のz深度値が設定され、頂点は、4×4の投影行列の逆数を用いて射影されない。細分化表面内の各ポリゴンについて、可視光写真画像から色がサンプリングされる。このプロセスの例示的な出力を図7に示す。
【0069】
以下は、前述のプロセスを実行するために使用され得るコードを表す。
【0070】
以下は、顔領域ポリゴンの定義を提供し、第1の数は、頂点ポリゴン数であり、その後に顔ランドマーク頂点の番号付けされたインデックスが続く。65を超える頂点インデックスは、重み付き補間によって合成される。
int32 gRightEyeRegion[]={
3,16,17,64,
3,17,18,64,
3,18,19,64,
3,19,20,64,
3,20,21,64,
3,21,22,64,
3,22,23,64,
3,23,16,64,

};
int32 gRightEyeTopRegion[]={
4,4,17,16,59,
4,4,5,18,17,
4,5,6,19,18,
4,6,7,20,19,
3,7,50,20,

};
int32 gRightCheekUpperRegion[]={
4,16,23,66,59,
4,23,22,68,66,
4,22,21,67,68,
4,21,20,50,67,
3,50,49,67,

};
int32 gRightCheekLowerRegion[]={
4,66,68,72,57,
4,68,67,71,72,
4,67,49,48,71,

};
int32 gRightJawRegion[]=

3,29,72,71,
3,71,75,29,
4,71,48,47,75,
4,30,29,75,77,
4,77,75,47,46,

};
int32 gLeftEyeRegion[]={
3,8,9,63,
3,9,10,63,
3,10,11,63,
3,11,12,63,
3,12,13,63,
3,13,14,63,
3,14,15,63,
3,15,8,63,

};
int32 gLeftEyeTopRegion[]={
3,8,40,0,
4,0,1,9,8,
4,1,2,10,9,
4,2,3,11,10,
4,3,51,12,11,

};
int32 gLeftCheekUpperRegion[]={
4,12,51,93,13,
4,13,93,70,14,
4,14,70,69,15,
4,15,69,40,8,
3,40,69,41,

};
int32 gLeftCheekLowerRegion[]={
4,41,69,73,42,
4,69,70,74,73,
4,70,93,53,74,

};
int32 gLeftJawRegion[]=

3,33,76,73,
3,73,74,33,
4,73,76,43,42,
4,33,32,78,76,
4,76,78,44,43,

};
int32 gForeheadRegion[]=

4,82,86,0,40,
4,86,88,1,0,
4,88,84,2,1,
4,84,90,3,2,
4,90,80,65,3,
4,80,89,4,65,
4,89,83,5,4,
4,83,87,6,5,
4,87,85,7,6,
4,85,81,50,7,

};
int32 *gFaceRegionsRegion[]=

gRightEyeRegion,
gRightEyeTopRegion,
gRightCheekUpperRegion,
gRightCheekLowerRegion,
gRightJawRegion,
gLeftEyeRegion,
gLeftEyeTopRegion,
gLeftCheekUpperRegion,
gLeftCheekLowerRegion,
gLeftJawRegion,
gForeheadRegion,
gNoseBridgeRegion,
gNoseRegion,
gUpperMouthRegion,
gUpperLipRegion,
gLowerLipRegion,
gChinRegion,
NULL
};
char *gFaceRegionNames[]={
“RightEye”,
“RightEyeTop”,
“RightCheekUpper”,
“RightCheekLower”,
“RightJaw”,
“LeftEye”,
“LeftEyeTop”,
“LeftCheekUpper”,
“LeftCheekLower”,
“LeftJaw”,
“Forehead”,
“NoseBridge”,
“Nose”,
“UpperMouth”,
“UpperLip”,
“LowerLip”,
“Chin”
};
【0071】
以下は、3つの頂点および重みから第4の頂点を計算する。
Vec2f synthQuadPoint(int32Dex0,int32Dex1,int32Dex2,real32 scale)

Vec2f diff=uvs[dex2]-uvs[dex0];
Vec2f perpDiff(diff.y,-diff.x);
perpDiff *=scale;
Vec2f result=uvs[dex1]+perpDiff;
return(result);
【0072】
以下は、2つの頂点および重みから第3の頂点を計算する。
Vec2f synthTriPoint(int32Dex0,int32Dex1,real32 t,real32 scale)

Vec2f diff=uvs[dex1]-uvs[dex0];
Vec2f perpDiff(diff.y,-diff.x);
Vec2f midPoint=(diff*t)+uvs[dex0];
perpDiff *=scale;
Vec2f result=midPoint+perpDiff;
return(result);
【0073】
以下は、2つの頂点および重みから頂点を補間する。
Vec2f synthLinearPoint(int32 dex0,int32 dex1,real32 scale)

Vec2f result=((uvs[dex1]-uvs[dex0])* scale)+uvs[dex0];
return(result);
【0074】
以下は、元のランドマーク頂点からすべての追加の頂点を合成する。
void synthUVs(real32 foreheadScale)

if(uvs.size()==65)

uvs.resize(95);
uvs[65]=synthLinearPoint(3,4,0.5f);// mid brow
uvs[66]=synthQuadPoint(57,58,59,0.2f);// right nose-cheek
uvs[93]=synthQuadPoint(51,52,53,0.2f);// left nose-cheek
uvs[94]=synthLinearPoint(62,61,0.50f);
uvs[67]=synthLinearPoint(49,66,0.30f);// right cheek0
uvs[68]=synthLinearPoint(49,66,0.65f);// right cheek1
uvs[69]=synthLinearPoint(41,93,0.30f);// left cheek0
uvs[70]=synthLinearPoint(41,93,0.65f);// left cheek1
uvs[71]=synthLinearPoint(48,57,0.35f);// right lower cheek0
uvs[72]=synthLinearPoint(48,57,0.7f);// right lower cheek1
uvs[73]=synthLinearPoint(42,53,0.35f);// left lower cheek0
uvs[74]=synthLinearPoint(42,53,0.7f);// left lower cheek1
uvs[75]=synthLinearPoint(47,29,0.5f);// right jaw
uvs[76]=synthLinearPoint(43,33,0.5f);// left jaw
uvs[77]=synthLinearPoint(46,30,0.45f);// right chin
uvs[78]=synthLinearPoint(44,32,0.45f);// left chin
uvs[79]=synthLinearPoint(45,31,0.6f);// mid chin
uvs[80]=synthLinearPoint(45,60,1.0f+foreheadScale);// top forehead
Vec2f rightHeadWidth=uvs[50]-uvs[60];
Vec2f leftHeadWidth=uvs[40]-uvs[60];
Vec2f templeMid=
synthLinearPoint(60,80,0.6f);
uvs[81]=templeMid+rightHeadWidth;// right temple
uvs[82]=templeMid+leftHeadWidth;// left temple
uvs[83]=synthTriPoint(80,81,0.45f,-0.15f);// right mid arc
uvs[84]=synthTriPoint(80,82,0.45f,0.15f);// left mid arc
uvs[85]=synthTriPoint(81,83,0.45f,0.10f);// fill right
uvs[86]=synthTriPoint(82,84,0.45f,-0.10f);// fill left
uvs[87]=synthTriPoint(85,83,0.5f,0.10f);// fill right
uvs[88]=synthTriPoint(86,84,0.5f,-0.10f);// fill left
uvs[89]=synthTriPoint(80,83,0.50f,-0.01f);// fill right
uvs[90]=synthTriPoint(84,80,0.50f,-0.01f);// fill left
uvs[91]=synthQuadPoint(55,56,57,0.45f);// right nostril
uvs[92]=synthQuadPoint(53,54,55,0.45f);// left nostril

【0075】
前述の方法で収集された集約データは、本明細書ではフィルタリングされたデータと呼ばれる。フィルタリングされたデータを使用して、照明モデルを解決することが可能である。
【0076】
次に、照明モデルを解くための方法を説明する。センサ/カメラの露出は、画像ストリーム内の埋め込まれたデータを読み取ることによって、または前述のように手持ち式デバイス上の1つ以上の前カメラの露出設定を設定することによって特徴付けることができる。前述のように、センサ、光源、および測定される表面の物理的関係を決定することができる。前述のように、制御された照明として使用するために光学ディスプレイを結合することによって、光源を制御することができる。この情報を用いて、カメラから見たシーンの照明モデルを近似することができる。追加の照明およびジオメトリデータを有する既知のシーンから見つかったジオメトリの反射率、色、および表面特性を見つけるために照明モデルを解く一般的な問題は、逆レンダリングとして知られている。特定のシーンについて知られているほど、導出された照明モデル、および見つかったジオメトリの測定された表面特性がより正確になる。逆レンダリングは既知の技術であり、PatowおよびPueyoによる「A Survey of Inverse Rendering Problems」、Computer Graphics Forum、P 663-687、V 22、N 4、https://doi.org/10.1111/j.1467-8659.2003.00716.x(2003)にさらに詳細に記載され、これは参照により本明細書に組み込まれている。
【0077】
一実施形態では、主要な照明源が知られており、顔の向きおよびキー平面は、自撮りスキャンから取り込まれたカラー画像から色をサンプリングすることによって見つけられる。このサンプリングの結果を図7に示す。逆レンダリング技術を使用して、図7に示す面の1つ以上の平面の反射率および色特性を解決することができる。一実施形態では、これらの特性を解くために使用される最適化された逆レンダリング技術は、BoivinおよびGagalowiczによる、「Inverse Rendering from a Single Image」、Dynamic Graphics Project,University of Toronto,Canada,Mirages Project,INRIA-Rocquencourt,France,www.dgp.toronto.edu/~boivin/pubs/cgiv2002.pdf (2002)に記載されており、これは参照により本明細書に組み込まれる。
【0078】
所与の技術は、解決しようとする問題に存在する既知および未知の特定のセットにどれだけよく一致するかに基づいて、反射率および色特性を解決するために選択される。逆レンダリングには2つの主要なクラスがあり、1つは、周囲光が低いかまたは未知数がほとんどない場合に使用できる「直接解法」、またはより多くの未知数、例えばより多くの周囲光がある場合に使用できる「間接解法」である。
【0079】
逆レンダリング技術は、既存の画像、見つかった幾何学的形状、および主要な照明を使用して、表面反射率の初期値を推測する。次いで、アルゴリズムは、誤差を低減するために表面反射率パラメータの最も可能性の高い変化を繰り返しながら、合成レンダリングと取り込み画像との間の誤差を最小化する。本明細書で使用される場合、合成レンダリングは、コンピュータグラフィックス技術を使用して、存在しないものをレンダリングすることを指す。このコンテキストでは、3Dモデルがあり、光およびカメラ特性が知られているので、我々が見るであろうと考えるものを合成し、実際にそこにあるものと比較することができる。その後、レンダリングと実際の顔表面とが一致するまで、変数(皮膚表面の色、皮膚のテカリなど)を変更することができる。モデルは反復(例えば、ニュートン法を使用する)によって解決されている。より多くの未知数(追加の光など)がある場合、それらも近似する必要があり、問題を解決することがより困難かつ複雑になる。この技術は、手持ち式デバイスの光学ディスプレイが主要な光源である場合、または追加の光源が本明細書に記載の方法によって補正/考慮され得る場合、顔の離散領域の色および表面特性を決定するのに十分な精度の結果をもたらす。より多くの周囲光または直接光が存在する環境では、誤差を低減するために追加の処理が必要とされ得る。
【0080】
一例示的実施形態では、表面反射率を決定するために逆レンダリング技術が使用されるが、当技術分野で公知の他の技術が使用されてもよい。
【0081】
例えば、別の実施形態では、顔色の表面および反射率の特性は、相対光輸送モデルを使用して解決することができる。輸送モデルは、スキャン、光学ディスプレイの光領域、およびカメラまたは撮像デバイスによって見出される表面間の接続の無向グラフから構成される。グラフの各ノードは、表面領域、光領域、またはカメラ視点である。グラフの弧は、各ノードを接続し、各ノード間のラジアント伝達の一部を含む。簡単にするために、接続円弧は、隣接する表面ノード、光学ディスプレイ、およびカメラに接続する表面ノードに限定されてもよい。各表面の色および輝度の相対的な変化は、隣接する表面ノードの局所平均からのそれらの差によって決定される。輸送グラフ内の各表面ノードは、面上の位置でタグ付けされる。輸送グラフの局所領域は、既知のグラフの物理的光伝達のラジオメトリック計算と比較した場合にそれらが含む誤差の量に等級付けされる。誤差が低い領域は、例示的な顔色からの同様にタグ付けされた所定の相対輸送グラフと比較される。既知の顔色の寄与は、サポートベクトルマシンを使用して解かれる。
【0082】
さらなる代替の実施形態では、取り込み画像からの表面の表面反射率は、グローバル照明モデルを使用して解決することができる。グローバル照明モデルは、顔のほとんどの領域が同じ照明モデルによって照明されることを前提としているので、そのモデルを一般化し、複雑さを低減することが可能である。1つの手法では、顔の各表面の記録されたスキャン色が球にマッピングされる。マッピングは、球上の一致する向きを見つけるために表面パッチまたは平面の向きを使用して実行される。一実施形態では、各球領域の色は、平均を使用して集約される。別の実施形態では、成分中央値を計算するために収集およびソートされる。球の位置は、凸性に基づく各寄与面の加重平均によって決定される。球の直径は、寄与する表面の重み付けされた範囲によって決定される。最も高い鏡面反射光を有する球体の領域は、光学ディスプレイの既知の位置、カメラの既知の位置、ならびに球体の各領域の角度および位置を比較することによって決定され、見つかった領域は、入射光角度がその領域の表面に対する入射視野角と一致する場所である。最も高い拡散光を有する球の領域が見つけられ、その領域は、その表面が光学ディスプレイの光に最も完全に面する領域である。拡散反射率、正反射率、および周囲反射率の初期値は、照明モデルを使用して解決することができる(例えば、Bui Tuong Phong、「Illumination for Computer Generated Pictures」、Communications of ACM 18(1975),no.6,311-317で知られ説明されているPhong Illuminationモデル、これは参照により本明細書に組み込まれる)。球の各領域に対するモデル反射率値が計算される。球の各領域は、造形された色からの距離に基づいて段階付けされる。誤差閾値を超える球の領域は、モデリング環境照明で使用するためにマークされてもよい。許容範囲内の球の領域を使用して、ユーザの顔色の予測される色および表面特性/反射率を改良することができる。
【0083】
ここで、グローバル照明モデルのさらなる詳細について説明する。そのような一実施形態では、デバイス/カメラを使用して取り込まれた対象の照明および表面に関するデータは、デジタルコンピュータ上で実行されるコードとして実装される一連の機能を使用するレンダリング技術を使用して、この照明および表面データを反復的に近似することによって見つけることができる。関数のセットおよびそれらのフローは、本明細書ではGlobalLightingModelと呼ばれる。
GlobalLightingModelへの入力(InputData)は、以下を含む。
-sRGBとして知られる色空間において赤、緑、および青の値として符号化されたピクセルの2次元アレイの形態でカメラ/デバイス(本明細書ではImageMapと呼ばれる)を使用して取り込まれたユーザのデジタル画像。
-取り込まれたデジタル画像(本明細書ではDepthMapと呼ばれる)に関連付けられた取り込まれた深度画像は、深度値の2次元アレイの形態である。これらの値は、ImageMap内の対応するピクセルまでのカメラの距離の線形表現である。
-本明細書に記載のウィングドエッジポリゴンモデル。
-ユーザのデジタル画像の取り込みに関連して使用される露出設定(すなわち、ISO、シャッタスピード、および絞り)。
-ディスプレイの照明部分の中心に対するカメラ絞りの位置(本明細書ではPositionDataと呼ぶ)。
-ディスプレイの照明部分のサイズ(本明細書ではIlluminationDataと呼ばれる)。
-画像を取り込むために使用されるデバイスのモデルのためのディスプレイの照明部分の較正された光特性。
-ImageMapを取り込むために使用されるカメラ/デバイスのCCDの応答曲線は、デバイスのモデルに合わせて調整され、SI単位を提供する(本明細書ではImageLightCurveと呼ばれる)。曲線は、16ビットピクセル値の直接ルックアップを提供するために、離散値の0...0 x0001000配列として表される。
-ImageToCamera変換は、深度マップx、y、深度ピクセルを、カメラ絞り点を0、0、0としてx、y、zベクトルに変換する4x4変換行列である。
-LightToCamera変換は、Display IlluminantピクセルUVを、カメラ絞り点が0、0、0であるx、y、zベクトルに変換する4x4変換行列である。
-LightSIは、デバイスのモデルの定数SI光源値である。
中間データは、取り込まれたデジタル画像に関連付けられた画像マップ内の照明および表面データを反復的に近似する際に使用するために構築される。
【0084】
InputDataの3次元の表面特性を表す中間データは、SurfaceMapと呼ばれる。SurfaceMapは、一実施形態では以下を含む一連のステップを使用して構築される。ImageMapおよびDepthMapは再サンプリングされ、組み合わされて、本明細書ではSurfaceMapと呼ばれるRed、Green、Blue、Depth、およびMaskの値を含む構造の2次元アレイを形成する。MedianFilterをDepthMapに適用してノイズを除去する。SurfaceMapのサイズが決定され、これは通常、DepthMap次元の幅と高さの2倍になる。SurfaceMapが割り当てられる。DepthMapは、SurfaceMapに適合するようにバイキュービック補間を使用してスケーリングされる。SurfaceMapの深度成分はDepthMap値に設定される。ImageMapはsRGBから線形RGBに変換され、線形RGBはImageLightCurveを使用してSI単位にルックアップすることによって変換される。ガウス関数のシータとしてスケーリング係数*1.5の逆数を使用して、ガウシアンフィルタがSurfaceMapに適用される。ImageMapは、SurfaceMapに適合するようにポイントサンプリングを使用してスケーリングされる。SurfaceMapの赤、緑、および青の成分は、ImageMap値に設定される。SurfaceMapのすべてのMask成分は0に設定される。近似される表面を表すモデル内のポリゴンはタグ付けされる。モデルは顔特徴検出から構築されるため、これらのポリゴンは入力データのすべてのインスタンスについて同じになる。モデル内のタグ付けされたポリゴンは、マスク領域が1の値に設定されるように、SurfaceMapのMask成分にレンダリングされる。
【0085】
GlobalLightingModelとしてSurfaceMapの3次元表面特性を表す中間データは、本明細書ではSphereMapと呼ばれる。SphereMapは、一実施形態では、以下を含む一連のステップを使用して構築される。SurfaceMapは再サンプリングされ、組み合わされて、Red、Green、Blue、Depth、およびAccumの値を含むSphereMapValue構造の2次元アレイを形成する。これは、本明細書ではSphereMapと呼ばれる。SphereMapのサイズが決定される。これは、典型的には、幅および高さについて2の累乗を有する正方形である。これは、モデルに十分な角度分解能を提供するのに十分に小さく、入力SurfaceMapからのサンプルがほとんどないほど大きくないように選択される。例示的な実施形態では、サイズは256×256である。SphereMapが割り当てられる。
SurfaceMap内の各ピクセルについて、
(SurfaceMap[thisPixel] ].Mask=1)の場合、
3dの頂点を有する三角形は、隣接するピクセルを使用して構築される。
Vertex0は、このピクセルである。
Vertex1は、右の列のピクセルである。
Vertex2は、右の列と下の行のピクセルである。
三角形の頂点は、カメラ空間に変換される。
Vertex0=ImageToCamera * Vertex0…
三角形の法線が求められる。
法線は128.0にスケーリングされる。
法線は128,128だけオフセットされる。
U、Vインデックスが設定され、U=N.x、V=N.y
SphereMapのU、Vピクセルの場合:
SphereMap[V][U].Red+=SurfaceMap[thisPixel] ].Red
SphereMap[V][U].Green+=SurfaceMap[thisPixel] ].Green
SphereMap[V][U].Blue+=SurfaceMap[thisPixel] ].Blue
SphereMap[V][U].Depth+=SurfaceMap[thisPixel] ].Depth
SphereMap[V][U].Accum+=1
SphereMapの各ピクセルについて、
If(SphereMap[thisPixel].Accum > 0)
SphereMap[V][U].Red /=SphereMap[V][U].Accum SphereMap[V][U].Green /=SphereMap[V][U].Accum SphereMap[V][U].Blue /=SphereMap[V][U].Accum SphereMap[V][U].Depth /=SphereMap[V][U].Accum SphereMap[V][U].Accum /=SphereMap[V][U].Accum
【0086】
カメラ空間内の画面領域の位置を表す中間データは、LightMapと呼ばれる。LightMapは、一実施形態では、以下を含むステップを使用して構築される。LightMapは、3D頂点の2次元配列である。LightMapの高さおよび幅は、ImageMapを取り込むために使用されるデバイスモデルのディスプレイ光源と同じアスペクト比を有する。LightMapの高さおよび幅は、以下のように計算される。
LightMap幅=((DisplayWidth in MM)+2.5)/5;
LightMap高さ=((DisplayHeioght in MM)+2.5)/5;
LightMapが割り当てられる。LightMapピクセルが設定され:
LightMap[V][U].xyz=(V,U)* LightToCamera.
【0087】
GlobalLightingModel(出力データ)から出力されるデータは、
SynthSphereMap-SI単位として赤、緑、青の値を含む構造体の2次元配列
CIELAB SurfaceColor-SphereMap UVからの距離が16ピクセルであるSphereMap内のそれらのピクセルの平均値に設定される{128,128}
SpecularGamma=1.8
SpecularScale=0.23
ErrorTerm=Infinity
MaxIteration=1000
MinError=0.02
【0088】
例示的な一実施形態では、本明細書に記載のレンダリング技術によって使用される機能は、以下を含む。
GetSpherePixelNormal(REAL u,REAL v)-> {a,b,c}

a=(u-128)/128
b=(v-128)/128
c=sqrt(1.0-(a*a+b*b))
return({a,b,c}

RGBsiToCIELAB(RGB rgb)->{lab}

return(XYXtoLAB(LinRGBtoXYX(SiToLinRGB(rgb))))

CIELABtoRGBsi(RGB rgb)->{lab}

return(LinRGBToRGBsi(XYZ(ToLinRGB(LABToXYZ(rgb))))

BlinnPhong(SphereMapValue v,SI light,RGBsi rgb)-> {rgb}

toLight=light-v.xyz;
d=length(toLight)
lightNomal=normalize(toLight)
surfaceNormal=GetSpherePixelNormal(v.uv)
halfVector=normalize(surfaceNormal+lightNomal)
falloff=1.0/(d*d)
specular=dot(halfVector,{0,0,1})
specular=pow(specular,SpecularGamma)
specular=specular * SpecularScale
specular=specular * falloff
diffuse=dot(lightNomal,surfaceNormal)* falloff
return((rgb * diffuse)+(specular * LightColor))

AdjustSpecular(SpecularAmount,AccumRGBError)-> SpecularAmount

error=average(AccumRGBError)
SpecularAmount+=error * 0.1
return(SpecularAmount)
【0089】
出力データを生成するための反復ループは、本明細書では照明モデルの解法と呼ばれる。これは、以下のように、ErrorTermおよびMaxIterationの状態によって制限される。
1.testRGB=CIELABtoRGBsi(SurfaceColor)
2.While(MaxIteration > 0 and ErrorTerm > MinError)
a.Render SynthSphereMap
i.SphereMapのすべてのピクセルについて
1.SphereMapのすべてのピクセルについて
a.If(SphereMap.accum>0)
i.ライトマップのすべてのピクセルについて
1.SynthSphereMap[currentPixel]=BlinnPhong(SphereMap[currentPixel,LightMap,testRGB)
b.Compare SphereMap and SynthSphereMap
i.RGBsi AccumRGBError=0;
ii.AccumCount=0
iii.SphereMapのすべてのピクセルについて
1.If(SphereMap.accum>0)
a.AccumCount++
b.AccumRGBError+=SphereMap[currentPixel].rgb-SynthSphereMap[currentPixel].rgb)
iv.AccumCountの場合
1.AccumRGBError=AccumRGBError / AccumCount
v.その他
1.エラー、SphereMapにデータなし
c.If(length(AccumRGBError)<ErrorTerm)
i.ErrorTerm=length(AccumRGBError)
d.MaxIteration--.
e.testRGB=testRGB+(AccumRGBError*0.1)
3.SurfaceColor=RGBsiToCIELAB(testRGB)
【0090】
この例では、SpecularAmountは影響を受けないが、追加の反復ループを追加することによって解決することができる。例えば、ステップ1は、SpecularGammaを保存することに置き換え、ステップ2.a...2.dを実行し、ステップ2.eをSpecularAmount=AdjustSpecular(SpecularAmount、AccumRGBError)に置き換えることができる。
【0091】
別の実施形態では、周囲光は、SphereMapとSynthSphereMapとの間の平均誤差を決定し、平均誤差の2倍を超える誤差を有するピクセルを排除することによって、SphereMapからフィルタリングされてもよい。
【0092】
別の実施形態では、周囲光は、側方半球(すなわち、u=128-30であり、u=128+30である)を横切るマップの領域を比較することによって球マップからフィルタリングされてもよい。この比較中に見つかった明るいピクセルは拒否され得る。
【0093】
逆レンダリングまたは他の技法の解決された出力は、複数の顔領域の表面色および反射率である。色および反射率は、CIELAB色および正反射率の量として構成することができる。背景特許に開示されているように、CIELAB色および正反射率は検索キーとして構成することができ、検索キーを使用して、混合物、またはカスタム化粧品を製造するために組み合わせることができる個別の局所用剤の割合を見つけて解決することができる。
【0094】
物理照明モデルを直接解決することによって課される制限がある。例えば、BovinおよびGagalowiczの技術は、解決すべき変数の数が比較的少ない場合にうまく機能する。未知の色の追加の光源によって照明モデルに導入される未知数の数は、克服することが困難な解決時間および解決解像度の課題を提示する。しかしながら、どの解決経路が最も可能性が高いかに関して機械学習(ML)システムを訓練し、これらを使用して逆レンダリング技術を導くことによって、BovinおよびGagalowiczの技術の性能を改善するハイブリッドシステムを組み立てることが可能である。一実施形態では、逆レンダリングアルゴリズムの解決経路は、特定の状態遷移を選択するように隠れマルコフモデルを訓練することによって強化することができる。
【0095】
ここでより詳細にMLシステムの使用を参照すると、複数の顔領域の色および表面反射率の出力のためのMLモデルは、フィルタリングされたデータを使用して訓練され得る。例示的な実施形態では、MLシステムは、ユーザの顔色の中間表現を解決する成分に分割される。1つの構成要素は、顔の既知の領域のCIELAB色について解決するように訓練されてもよい。別の構成要素は、表皮の上層の皮脂含有量によって引き起こされる表面反射率を解決するように訓練されてもよい。これらの成分の出力は、検索キーを生成して混合物を導出し、カスタム局所用剤を生成するために使用され得る。
【0096】
ここでこの実施形態をより詳細に説明すると、訓練データは、複数の手持ち式デバイスタイプを使用して取り込まれたフィルタリングされたデータを含むことができ、一連のユーザは複数の顔色特性を有する。システムを訓練するために使用されるフィルタリングされたデータの各ユニットにラベルを付け、それを特定の手持ち式デバイス、特定のユーザ、および各ユーザの顔色の定量的尺度と関連付けることができる。これらの測定値は、以下を含み得るが、これらに限定されない:(1)様々な顔領域の色スペクトル、(2)様々な顔領域のCIELAB色、および(3)様々な顔領域の反射率特性。
【0097】
一実施形態では、データ収集プロセスは、MLシステムを訓練するためにデータを収集および編成するために使用される。このプロセスは、以下の一連のステップを含む:1.参照被験者キャスティング取り込み。2.参照被験者コホート同定。3.参照被験者訓練データ収集セッション。4.訓練データ分析。5.訓練データ構造化。6.ML訓練。7.ML検証。
【0098】
参照被験者キャスティング取り込みは、多種多様な顔色の種類および特徴を有する多種多様な被験者に到達し、関与しようとするものである。これらの種類には、暗い色から明るい色までの様々な顔色の色調、温かい色から冷たい色までの様々な顔色の色調、様々な皮脂含有量、日光に応じた様々な種類、および/または様々な皮膚アーチファクトおよび局所的な着色が含まれるが、これらに限定されない。被験者はインタビューされ、手首、額、頬、上顎、下顎、首下部および胸部上部領域を含むがこれらに限定されない様々な顔色領域の分光光度計スキャンを行う。毛髪および目の色、ならびに毛穴の大きさおよび顔色の皮脂含有量の測定または推定に留意する。皮膚領域の写真を撮影する。この初期データは構造化され、データストアに配置される。
【0099】
参照被験者コホート同定は、参照被験者のコホートまたは群を表し得る参照被験者キャスティングから重要な個体を同定しようとするものである。コホートの特定は、最初に、CIELAB色および皮脂含有量からなるn次元ベクトルに基づくk値クラスタリングによって行うことができる。ベクトルの他の成分は、細孔サイズ、およびそばかすまたは斑点などの皮膚アーチファクトの頻度を含み得る。コホートリストは、統計的手段に基づいて外れ値を除去することによってさらにフィルタリングすることができる。
【0100】
基準科目訓練データ収集セッションは、MLネットワーク用の訓練セットを開発するのに有用な形式でデータを収集しようとする。過剰なデータは、検証目的のために収集される。訓練のために、それは、手持ち式デバイスおよび関連するソフトウェア手段によって取得されたスキャンデータのタイプの形態の基準訓練データを収集する。そのようなスキャンのいくつかは、様々な異なるデバイスで行われてもよい。それは、手持ち式デバイススキャンデータに関連する顔色表面データを収集する。顔色表面データは、MLシステムによって出力される各顔色領域のCIELAB色、ならびに皮脂レベル、そばかす、シミ、およびにきびなどの小さな肌アーチファクトの位置およびタイプ、目の色、髪の色、しわ、暗いパッチまたは円などのより大きな顔色アーチファクトの位置およびタイプ、肌の色または色調の変化を含む。このデータは、例えば、離散スキャン、顕微鏡写真、高解像度写真、または高解像度3Dスキャンによって収集することができる。
【0101】
訓練データ構造化は、参照科目訓練データ収集セッションからのデータを、選択されたMLシステムを訓練することができる形式に編成および構造化しようとする。一実施形態では、これは、手持ち式デバイスおよび関連するソフトウェア手段からのスキャンデータを最初に処理することによって行われる。各スキャンは、上述のようにウィングドエッジモデルに変換される。ウィングドエッジモデルは、カメラおよび光学ディスプレイの光源に対する表面の3D位置を含む。モデルはまた、この訓練のためのすべての訓練されたウィングドエッジモデル(すべて構造が類似しており、標準を形成している)について一貫している、UV座標と呼ばれる2D座標のキーセットを含む。モデルはまた、手持ち式デバイス上のソフトウェアによって収集された1つ以上の画像から蓄積されたCIELAB色を含む。解決された照明モデルは、ウィングドエッジモデルに関連付けられ、ウィングドエッジモデルにおける各ポリトープの表面反射率の初期近似を解決するために使用される。入力の後、ウィングドエッジモデルの各ポリトープに対する所望の訓練出力が追加される。この出力には、以下に限定されないが、その領域の分光光度計によるCIELABデータスキャン、その領域の皮脂含有量、小さな皮膚アーチファクトの位置およびタイプ、ならびにその領域内のより大きな皮膚アーチファクトの位置およびタイプが含まれる。それはまた、一連の画像マップを含む。これらのマップは、ウィングドエッジモデルのUV座標にキー設定される。各マップは、そばかす、黒点、にきび、皮膚の変色、しわおよび黒い丸を含むがこれらに限定されない、大小の皮膚アーチファクトを記述する様々なラベル付き画像領域を含む。
【0102】
ML Trainingは、手持ち式デバイススキャンデータ(すなわち、上述したような入力データのフルセットを含むウィングドエッジモデルへの変換後に)の入力を、上述した収集された訓練データ出力のサブセットを含む各ポリトープ領域の情報を含むウィングドエッジモデルからなる出力データに変換するために、MLグラフおよびこれらのグラフ内のキー係数、重み、または定数のセットの開発を支援しようとするものである。一実施形態では、MLシステムは、TensorFlow(https://www.tensorflow.org/)におけるモデルとして実装される。TensorFlowで実装されたグラフネットワークを介して、MLネットワークの重み、定数、および係数が訓練プロセス中に設定されて、標準化されたウィングドエッジモデルからのポリトープ(相対的な3Dデータを有する各ポリトープ)の順序セット、記録された画像からのフィルタリングされたCIELAB色、解決された照明モデルからの推定反射CIELAB色、および解決された表面反射率の誤差メトリックを出力する。
【0103】
ML検証は、ML Trainingで生成された各MLネットワークの訓練が特定の許容範囲内で出力を提供することを検証または証明しようとするものである。このプロセスの間、基準科目訓練データ収集セッションの間に収集された追加のデータが、MLシステムへの入力として使用される。出力は、収集された出力データと照合され、システムの公差が見出される。システムが許容範囲内にある場合、MLシステムをパッケージ化して展開することができる。システムが許容範囲外である場合、ML Trainingが再開され、MLグラフの構造に対して修正が行われ、グラフが再訓練される。
【0104】
初期訓練の後、MLシステムは、いくつかの実施形態では、もはや訓練を受けなくてもよく、またはネットワークは、当業者に知られている様々な技術を使用して断続的な訓練を受けてもよい。訓練後、いくつかの実施形態では、MLシステムは、既知の訓練データの別個のセットを使用して検証され得る。次いで、MLシステムは、ユーザデータを処理して特定の顔領域に関するCIELABデータの出力にするために、サーバ上に存在する、または手持ち式デバイス上に存在するサービスで使用され得る(図8Bを参照して以下に説明するように)。
【0105】
記載された実施形態では、MLシステムの各構成要素は、このようにして訓練され得る。そのような実施形態では、2つの別個のMLネットワークのCIELAB出力および皮脂レベル出力は、特定の製品の配合を出力するように訓練されたMLシステムへの入力として接続することができる。
【0106】
別の例示的な実施形態では、ML成分は、CIELAB色、皮脂含有量、および化粧品の特徴をとり、カスタム局所用剤または混合物の成分の割合を解決することができる。この成分は、検索キーを使用して混合物を解決する背景特許のうちの1つ以上の方法を置き換える。
【0107】
MLシステムは、入力、出力、および訓練入力に接続されたノードの分散ネットワークに入力および訓練データを供給するさらなる処理段階から構成され得る。各ノードは、重みまたは重みのセットを有し、信号をその出力にトリガすることができる関連する非線形関数を有する。ノードの階層化は、多くのレベルを有することができる。訓練入力は、入力および出力状態に基づいて重みが調整されることを可能にするように構築されてもよい。ノードは、ニューラルネットワークと呼ばれる方式、またはマルコフモデルと呼ばれる方式で構築されてもよい。入力は、データ入力に直接結び付けられてもよく、または入力接続は、ネットワークの幅が離散数の入力よりもはるかに大きくなるように、ネットワークへの入力として入る前に追加のロジックを通過してもよく、またはいくつかの入力は、表される幅が制限されてもよい。ネットワークの幅および深さは、訓練結果に基づく出力品質に基づいて自動的に構成されてもよい。
【0108】
MLシステムが訓練されると、システムは、手持ち式デバイス上で対話的に収集されたユーザデータを処理して、エンドユーザ向けにカスタマイズまたは選択され得る局所用剤の製造指示にするために使用され得る。したがって、例えば、ユーザは、電話を使用して写真を撮ることができ、電話機は、本明細書に記載されたような特定の処理を実行するソフトウェア(例えば、3Dモデルフィッティングおよびデータ前処理)を含むことができ、そして、電話機は、ポイント(皮膚および顔の他の部分、例えば目および唇の両方)および関連する色を有する3Dモデルをサーバに送信することができる。次いで、サーバ上で実行されるMLシステムは、マップのように、顔の各領域(例えば、肌色、髪の色、唇の色)の照明モデルおよび顔色を決定する。
【0109】
図8Aおよび図8Bは、例示的な実施形態におけるユーザアクティビティおよびデータフローに関連するステップおよび構成要素を示す、方法800および高レベルシステムアーキテクチャ870をそれぞれ示す。ステップ801において、ユーザは、自分の手持ち式デバイス850上でソフトウェアアプリケーションを実行する。
【0110】
ステップ802において、アプリケーションは、リアルタイムで自分の位置を描写するユーザの線画を示す、手持ち式デバイス850の光学ディスプレイ851上のディスプレイを提示する(例えば、図2に示すように)。光学ディスプレイ851は、連続的な照明源(例えば、暗い環境において)として機能すると共に、ユーザが光学ディスプレイ851内で顔を適切に位置決めするのを助ける。
【0111】
ステップ803において、アプリケーションは、環境の照明およびユーザの顔の位置が、高品質の画像を取り込むために許容可能であるかどうかを判定する。特に、デバイスは、周囲光または追加の光の許容レベルを検出し、ユーザにより暗い場所に移動することを知らせるようにプログラムされてもよい。画像データストリームに記憶された露出データは、光学ディスプレイによる照明に予想される露出と比較され、追加の照明量の近似値が計算され得る。ユーザインタフェース/デバイスは、所与の環境がスキャンに適しているか不適切であることをユーザに応答することができ、アプリケーションは、光学ディスプレイ851上のインジケータ、または他のインジケータ(視覚的、聴覚的、または触覚的)の色を変更することによって、ユーザが光の少ない場所(例えば、図3に示すように)に移動すべきであること、または部屋の照明がスキャンに許容可能である(例えば、図2に示すように)ことを示すことができる。
【0112】
さらなる例として、アプリケーションは、ユーザが自分の画像を画面上で中央に配置するように手持ち式デバイスを移動させるべきであることを示し、ディスプレイレンダリングを変更することによってこれが完了したことを示すことができる(例えば、図2および図3に示すように、図2は、ユーザの顔の輪郭および顔特徴の輪郭の照明付き線表示による表示を示し、図3は、顔の位置が写真撮影に最適ではないことを示す円を示す)。
【0113】
手持ち式デバイス850のボタンを押すと、ステップ804で画像が取り込まれる。その画像は、複数の画像(例えば、1回のボタン押下が複数の画像を撮影する)と、深度データ、顔ランドマークデータ、およびカラー画像データなどの関連データとを含むことができる。ステップ805(図8 Cにさらに示され説明される)において、上述したように、データをフィルタリングし、使用して照明モデルを導出し、ステップ806において、コンピュータサーバ852に送信することができる。ステップ807において、コンピュータサーバ852は、顔の1つ以上の平面の反射率および色特性について解決するために、照明モデルおよび逆レンダリングなどの処理技術を使用することができる。
【0114】
次に、フィルタリングされたデータを取得する例示的な方法(ステップ805)を図8 Cを参照して説明する。この例示的な方法に示されるステップの順序は限定的ではないことに特に留意されたい。本発明の実施形態によれば、ステップは、図示および説明された順序とは異なる順序で行われてもよい。ステップ810において、手持ち式デバイス850内の光学センサの露出データが決定される(例えば、カメラ画像データストリームまたはセットに埋め込まれたデータから)。ステップ811において、光源と手持ち式デバイス850のセンサ/カメラの絞りとの間の関係が測定される。そのようなデータは、様々な異なる種類の手持ち式デバイス850について決定され、処理で使用するためにサーバ852に記憶されるか、または利用可能にされ得る。ステップ812において、環境光源とセンサ/カメラとの間の関係が決定される。上記のステップ802および803で説明したように、ユーザの適切な照明および位置決め/位置合わせを取得する技術を、この関係を反映するデータを決定するために使用することができる。ステップ813では、センサ/カメラと(ステップ811で決定された)光源と目標面との間の関係が決定され、目標面の3Dモデルは、前述の技術に従って構築することができる。ステップ810、811、812および813からのデータを使用して、ステップ814において、カメラによって見られるシーンの照明モデルを決定することができる(例えば、近似または導出される)。
【0115】
いくつかの実施形態では、サーバ852によって使用される処理技術(ステップ807)は、前述したように、MLシステムを使用して強化され得る。MLシステムの中間結果は、顔色データを供給することができ、顔色データは、ユーザが見るために手持ち式デバイス850に送信され得る。
【0116】
図8A図8Bおよび図8Cを参照して説明したステップの後、プロセスは、ユーザのための局所用剤(例えば、カスタマイズまたは選択された化粧品)を注文および製造するために、背景特許のうちの1つ以上に記載された方法で進行することができる。
【0117】
次に、本発明の代替の態様を含む例示的な実施形態について説明する。先の実施形態と同様に、目標は、エンドユーザの手持ち式デバイス、例えば携帯電話で撮影された画像を使用してエンドユーザの肌色IDを決定することである。課題は、エンドユーザが存在する照明環境を考慮することである。上述した他の実施形態と同様に、この実施形態では、デバイス、例えば手持ち式デバイスまたは電話の表示画面は、暗い室内環境、例えば低照明環境で較正された光源として使用され、前向きカメラを取り込みデバイスとして自撮りスキャンを行うことができる。画像を取り込むために検出される身体部分の深さ、例えば顔または顔領域の深さを決定するためのデバイスソフトウェアに組み込まれた深度センサ(顔深度センサ)は、デバイスの画面から画像ターゲットの表面、例えば顔までの距離の測定値を提供するために使用され得る。既知の較正光源(表示画面)と、顔表面距離データを含む自撮りスキャンデータとを使用して、顔の顔色(すなわち、肌の色調ID)を計算することができる。
【0118】
以下、実施例について説明する。エンドユーザは、周囲照明がほとんどまたは全くない暗い室内環境、好ましくはエンドユーザが利用可能な暗い環境、例えば窓のない部屋、またはシェードおよび/またはカーテンが降ろされている部屋に配置され、ランプまたはコンピューティングデバイスなどの光源が消灯している。エンドユーザは、手持ち式デバイス、例えば携帯電話に以前にダウンロードされたアプリケーションを開き、アプリケーションは、携帯電話上のカメラを自分撮りモードで開くように動作する(すなわち、「自撮りスキャン」モード)。好ましい実施形態では、アプリケーションは、部屋がプロセスを進めるのに十分暗いかどうかを検出し、所定の許容範囲内で実際の肌色IDに十分近いユーザの肌色IDを判定する。部屋が十分に暗くない場合、エンドユーザは、そのように通知され(本明細書で前述した方法、または当技術分野で公知の他の方法を使用するステップ)、エンドユーザは、より暗い環境に移動するか、またはより暗い環境を作成するように指示される。部屋が十分に暗い場合、手持ち式デバイスのディスプレイは、自動的に、または任意選択的に、十分に暗い照明環境の表示をユーザに最初に提供することによって、白色光で照明される(これも本明細書で前述した)。
【0119】
例示的な実施形態では、白色光は、手持ち式デバイス表示画面の全体またはほぼ全体を埋める長方形の形状である。いくつかの実施形態では、白色光は、適切に暗くされた部屋をアプリケーションが検出すると自動的に表示する。次いで、エンドユーザの自撮り画像が、手持ち式デバイス上のカメラで取り込まれる。この画像を本明細書では照度画像と呼ぶ。照度画像を取り込むために使用される手持ち式デバイスからの唯一の光源は、白色光ディスプレイである。暗い室内環境での照度画像取り込みは、十分に暗い場合、エンドユーザの肌色IDを推定するのに十分であり得る。
【0120】
しかしながら、実際には、いくらかの周囲光が存在する(例えば、コンピュータモニタから、ドア底部または窓のシェードの側の空間など)。肌の色調IDの最も正確な推定値を可能な限り取得するために、この周囲光を考慮する必要がある。したがって、好ましい実施形態では、エンドユーザの第2の画像は、手持ち式デバイス上のカメラを使用して取り込まれる。周囲画像と呼ばれるこの第2の画像は、手持ち式デバイスからの照明なしで取り込まれ、したがって周囲光源からの光のみを含む。以下でより完全に説明するように、周囲画像に存在する光は、照度画像から除去され、それによって周囲光を考慮し、エンドユーザの画像内に既知の照明条件のみを残すことができる。これらの既知の照明条件、および本明細書でより完全に説明される他のデータポイントに基づいて、エンドユーザの肌の色調IDをより正確に予測することができる。
【0121】
好ましい実施形態では、照度画像および周囲画像は、画像取り込み間のエンドユーザの移動を回避するために、互いに極めて近接した時間に撮影される。
【0122】
次に、例示的な実施形態のさらなる詳細について説明する。上述した他の実施形態のように、デバイス/電話機自体に存在するソフトウェアを特定の機能、例えば、ターゲット(例えば、様々なポイントにおけるエンドユーザの顔表面)からデバイスのカメラ絞りまでの距離を含むエンドユーザの3D画像を取得するために使用することができる。さらに、他のソフトウェアは、デバイス/電話機にダウンロードされるアプリケーションの形態であってもよい。そのようなダウンロードされたソフトウェアアプリケーションは、デバイス表示画面およびカメラ設定、画像取り込み、および/または画像データのデータ処理を制御することができ、これらには、
-露出設定、フレームサイズ、色および深度(3Dデータ)設定、ならびに(2つ以上のカメラが存在する場合)デバイス上のどのカメラが使用されるべきかなど、カメラの低レベル設定を制御する、デバイスカメラアプリケーションプログラミングインタフェース(API)のセットアップを制御することと、
-カメラから画像データを取得し、引き換えに高レベルデータを返す関数のセットを提供するコンピュータビジョンAPI設定の設定を制御する(例えば、顔の画像を表すデータを取得し、特定の顔特徴に対応する2D画像ポイントのリストを返す)ことと、
-自撮りスキャン表示用のビューを初期化することと、
-周囲光通知を提供する(例えば、環境が自撮りスキャンには明るすぎるという通知)ことと、
-最適なデータ収集のために取り込みシーンを調整するようにユーザにシグナリングする(例えば、取り込み対象物とユーザとの間の距離を調整するようにユーザに指示すること)ことと、
-画像取り込みプロセスを制御する(例えば、タイミング、ディスプレイ照明、および露出設定)ことと、
-画像データの処理に関する機能を実行することと、
-エラー情報を記憶し、警告を提供すること、のうちの1つ以上が含まれるが、これらに限定されない。
【0123】
この例示的な実施形態では、暗い室内環境では、ユーザがアプリケーションを開くと、前述したように、ユーザの顔の線画が作成および表示され、ユーザが自分の顔を適切に位置合わせすることを可能にすることができる。しかしながら、本実施形態では、前述のように黄色の光源を使用する代わりに、画像は照明なしで示される。前述したように、エンドユーザの顔の一連の画像が取り込まれる。好ましい実施形態では、取り込まれた画像は、高ダイナミックレンジ(HDR)画像である。HDR技術は当技術分野で一般的に知られており、標準的な方法を使用して、異なる露出設定で撮影された複数の画像を高ダイナミックレンジの単一の画像に組み合わせ、非HDR画像よりもはるかに明確に詳細を示す。HDR画像は、所定の較正された値の露出のセットを使用して取り込まれる。本明細書で説明されるHDR画像を作成するために使用される露出設定は、デバイスのディスプレイ(照度画像)によって提供される照明範囲を表すためにデバイスモデルの較正によって決定され、使用中に遭遇する周囲光(周囲画像)によって決定されるという点で独特である。
【0124】
一般に、HDR画像は、デバイス/電話機のオペレーティングシステムによって提供されるプログラミングインタフェースを使用して一連の一括画像を要求することによって収集される。そのようなインタフェースを使用して、異なる指定された露出で、いくつかの画像を次々に迅速に撮影することができる。例えば、同じシャッタスピードおよび絞りを有するが、異なるISO設定を有する画像のセットが次々と迅速に撮影されることを要求することが可能である。ISO設定は、広範囲の照度をカバーするように選択され得る。例えば、第1のISO設定は、デバイスの表示画面からの光を使用して最良の露出を提供するように選択され得る。第2のISO設定は、2倍の照明、すなわち、周囲光がデバイスのディスプレイからの光に等しい場合に最良の露出を提供するように選択され得る。第3のISO設定は、第1の設定の4倍である照明のための最良の露出を提供するように選択され得る。この最終露出は、デバイスのディスプレイの照度の3倍である周囲光を測定するために使用され得る。単一露出(例えば、第1の設定)に対するデバイスのCCDの応答曲線は、デバイスの表示光を超える照明が飽和し、正確に測定できないようなものである。上述のように露出で画像に対するCCD応答を調べることにより、より大きな照明振幅の測定が可能になる。
【0125】
この例をさらに理解するために、本明細書の開示は、「輝度画像」および「周囲画像」を参照する。
【0126】
周囲画像は、所定の較正された値にロックされた露出設定を使用して黒に設定されたデバイス上のディスプレイ照明で取り込まれた画像である。上述したように、HDRを提供するために一連の3つの画像を取得することができる。これらは、輝度画像で使用される同じ一連の露出設定を使用して記録され得る。
【0127】
輝度画像は、自動露出に設定された露出設定を使用して白に設定されたデバイス上のディスプレイ照明で取り込まれた画像であり、本明細書では主スキャンと呼ばれる。これは、多種多様な照明条件に適合することができる参照画像を提供する。上述したように、HDRを提供するために一連の画像を取得することができ、これらは、周囲画像で使用される同じ一連の露出設定を使用して記録することができる。輝度画像スキャンのために深度データ(すなわち、デバイスセンサからターゲットの表面までの距離)が記録される。
【0128】
周囲画像および輝度画像に使用される露出設定は、所与のデバイスモデルを較正することによって決定することができる。例えば、所与のデバイスモデルは、画面が白色フィールドを表示するように設定されているとき、およびデバイスが完全な輝度に設定されているときに放出される既知の光量を有する。その光量を測定することができ、共通の距離でユーザの顔色を最もよく照らすカメラの露出を決定することができる。デバイスOSは、システム/ソフトウェアアプリケーションがデバイスのどのモデルが使用されているかを判定することを可能にし、そのデバイスモデルの較正設定は、前述の方法で予め決定されたデータストアから取得することができる。このように所定の較正値にロックされた露出設定を使用して取り込まれた、デバイス上のディスプレイ照明が黒に設定された画像は、周囲光のみを示す参照画像(周囲画像)を提供する。深度データ(すなわち、デバイスセンサからターゲットの表面までの距離)が周囲画像スキャンのために記録される。
【0129】
周囲および輝度用の一連のHDR画像は、ソフトウェアアプリケーションがより広い範囲にわたって光を検出することを可能にする。一実施形態では、周囲画像および輝度画像は、以下のステップを使用して処理することができる。
【0130】
3つの周囲画像は、単一のHDR画像に結合される。これは、CCDの応答曲線について各画像を補正することによって達成され得る。次に、各画像の対応する各ピクセルについて、R、G、およびB値が露出係数によってスケーリングされる(例えば、1番目は1x、2番目は2x、3番目は3x)。これらの値は加算され、結果は数値分解能を高めて記憶される。例えば、各入力R、G、およびBチャネルが符号なしの8ビット値によって表される場合、それは16ビット値として記憶され得る。
【0131】
3つの輝度画像は、周囲画像に関連して説明したように、単一のHDR画像に結合される。
【0132】
HDR周囲画像は、HDR輝度画像から減算され、「補正輝度画像」をもたらすことができる。この結果得られる補正輝度画像は、周囲光を除去することによって周囲光を考慮する。この実施形態では、除去された周囲光は、デバイス上のディスプレイから対象者の顔色を照らす光よりも明るくすることが可能である。これは、HDR撮像を使用して各画像を記録することによって可能になる。
【0133】
補正輝度画像に関するデータは、顔データフォーマット(例えば、上記で詳細に参照されているように、ウィングドエッジモデルで構造化され表現される)で記憶される。ウィングドエッジモデルは、一連の頂点を含み、各頂点は、取り込まれた画像内の顔ランドマークにマッピングされた2Dポイントと、同様に上記で詳細に説明したように構築された3Dポイントとから構成される。
【0134】
各頂点は色に関連付けられている。一実施形態では、ウィングドエッジモデルの頂点の色は、以下のステップによって見つけることができる。
【0135】
前述のように、ウィングドエッジモデルは、より微細な構造に細分することができる。モデルは、モデル内の平均ポリゴンが、例えば4分の1平方センチメートルなど、おおよその被験者の顔色の領域を表すことができるように、このように細分化することができる。本発明の範囲内で、他の細分化スケールを使用してもよい。
【0136】
補正輝度画像のピクセルの色は、モデル内のポリゴンごとにサンプリングされる。一実施形態では、このサンプリングは逆レンダリングによって実行される。例えば、ポリゴンを記述するためにレンダリングされ得る各ピクセルについて、そのピクセルのR、G、Bデータは平均として蓄積される。このデータは、元のピクセルデータよりも高い解像度で収集および記憶される。例えば、R、G、Bデータが16ビットの符号なし整数として表される場合、そのデータは64ビットの倍精度浮動小数点数として蓄積され、モデル内の各ポリゴンと共に記憶され得る。
【0137】
ウィングドエッジモデルの各頂点のR、G、およびB色値は、その頂点にリンクされている各ポリゴンの色を累積するためにウィングドエッジデータ構造のリンクを使用することによって決定され得る。次いで、R、G、およびB値は、モデル内の各頂点と共に記憶され得る。
【0138】
いくつかの実施形態では、モデル内の頂点によって表される色解像度は、必要なすべてであり得る。例えば、顔色の測定では、0.5センチメートルのパッチのサンプリングで十分であり得る。そばかす、あざ、またはしわなどの特定の皮膚アーチファクトの位置を決定するなどの他の用途では、より高い解像度が必要とされる場合があり、補正輝度画像の選択された部分がウィングドエッジモデルと共に記憶される場合がある。
【0139】
前述したように、ウィングドエッジモデルは顔ランドマークを使用して組み立てられるため、細分化モデル内の各頂点およびポリゴンは、これらの顔ランドマークとの関係において特有の位置を維持する。さらに、画像が記録された各被験者に対して同じレベルの細分化を実行することができるため、顔ランドマークが見つかる限り、これは同じ構造的リンク(すなわち、頂点およびエッジへのポリゴン)をもたらす。所与のポリゴンが、例えば鼻の先端、または左頬の中央に常に落ちることを知ることが可能である。これにより、色サンプルに関連付けられた各頂点を位置によってラベル付けすることができる。例えば、額の特定の領域を構成するすべての頂点をラベル付けして、それらを配置することができる。このようにして、ウィングドエッジモデルをトラバースし、既知の顔色位置の色測定値を取得することが可能である。
【0140】
したがって、ウィングドエッジモデルの各頂点は、ラベルが表す顔の部分を示すラベル、補正輝度画像から蓄積されたRGB色、デバイスの3Dカメラの深度マップから取得されたZ深度、手持ち式デバイスのカメラ視点に対する頂点のX、Y、Z位置、および手持ち式デバイスのカメラ視点に対する頂点の法線A、B、Cを含み得る。
【0141】
ウィングドエッジモデルで表されるデータに加えて、本明細書に記載のシステムおよび方法は、較正データなどの予め計算されたデータを使用することができる。これは、スキャンごとに変化しないデータであり、スキャンデバイスの物理特性、人間の皮膚の反射率の範囲などの他の定数、およびシステム動作のための定数を表す。いくつかの実施形態では、これらは、上述したようにHDR撮像のための一連の露出を指定する際に使用することができる、手持ち式デバイスの特定のモデルのシャッタタイミング、HDR周囲画像で検出された光の量に対する照明用のデバイスのディスプレイから放出された光の割合によって表される、ノイズに対する許容可能な信号の量、周囲画像取り込みへの状態遷移および周囲画像取り込みからの状態遷移をトリガする閾値として使用される計量単位の光の絶対量、および手持ち式デバイスの特定のモデルについてのCCDの色応答曲線を含むことができる。
【0142】
ウィングドエッジモデルを含むデータは、送信のために符号化されてもよい。例えば、GL伝送フォーマット(GLTF)を使用することができ、これにより、アセットのサイズと、そのようなアセットを展開して使用するために必要なランタイム処理の両方を最小限に抑えることにより、アプリケーションによる3D画像およびモデルの効率的な伝送およびロードが可能になる。
【0143】
次いで、顔モデルデータGLTFファイルは、暗号化された転送プロトコル(例えば、HTTPS)を使用してデバイス/電話からリモートサーバまたはコンピューティングサービスに送信され、リポジトリに記憶され得る。例えば、AWS S3、Amazon Web Services Simple Storage Services、リポジトリをこの目的のために使用することができる。このストレージサービスを利用することには、いくつかの利点がある。それは、例えば、暗号化されるべきサービスとの間の顔モデルデータの伝送を可能にする。このサービスは、手持ち式デバイスから送信される顔モデルデータのストレージを提供し、手持ち式デバイスによって使用される様々なオペレーティングシステムをサポートする。このサービスは、さらなる処理、およびカスタム化粧品の製造および顧客サポートをもたらす他のトランザクションのために顔モデルデータにアクセスすることを可能にする。このサービスはまた、安全な方法でプライベートイントラネットアクセスを可能にする。
【0144】
コンピューティングサービス(例えば、リモートクラウドベースのサーバ)に送信されると、顔モデルデータが処理される。データの処理は、アプリケーションが新しい情報に迅速に応答することを可能にするサービス、例えばAWS Lambdaサービスを使用して実施され得る。
【0145】
次に、顔モデルデータを処理する流れについて説明する。いくつかの実施形態では、前処理ステップは、デバイス自体(すなわち、画面および前向きカメラ)を考慮するための色補正を含むことができる。画像データからデバイスの種類を特定し、特定のデバイスの種類(例えば、電話モデル)に対応する露出(すなわち、白色ポイントおよび色バイアス)を補正する。
【0146】
他の実施形態では、顔色モデル(例えば、訓練データは、異なるデバイス/モデルタイプで撮影された画像を含み、機械学習エンジンは、訓練プロセス中の違いを考慮に入れる)を訓練しながら、デバイスタイプを考慮した色補正が組み込まれ、そのような場合、別個の前処理ステップは必要とされない。
【0147】
次に、深度データ、例えばデバイス表示光の画像ターゲット(例えば、顔)の表面までの距離を考慮するために、各頂点の色の補正が実行される。画像の3Dモデルに基づいて、照明方程式を使用して距離減衰を計算する。また、角度減衰に基づく照明寄与も除去される。より詳細には、表面の照明は、光に対してより斜めになるにつれて暗くなる。これを説明するために、3Dモデルおよび照明方程式を使用してコサイン減衰を計算する。
【0148】
以下で、いくつかの実施形態で使用され得る頂点データが機械学習システムへの入力として使用される前に、そのようなデータの前処理/フィルタリングについてより詳細に説明する。
1.色は、人間の被験者の画像を記録するために使用される手持ち式デバイスの特定のモデルの応答曲線に基づいて補正することができる。これにより、CCD応答が補正される。
2.コサインまたは角度減衰は、デバイスのディスプレイおよびデバイスのカメラに対する頂点の表面法線の向きに基づく。カメラに対して斜めの角度で回転する頂点は、フィルタリングまたは除去することができる。
3.デバイスのディスプレイおよびデバイスのカメラからの頂点の距離に基づく光の振幅フォールオフ。
4.周囲照明を除去するための、照明に基づく頂点の色補正。
【0149】
前述の処理ステップの各々の実装は、この方法論の代替の実施形態に従って異なり得る。例えば、振幅フォールオフは、ポイント源からの距離にわたるフォールオフとして、またはデバイスの表示領域の幾何学的形状を表す表面からの距離にわたるフォールオフとしてモデル化され得る。しかしながら、フィルタリングの基本的な順序は、光としての情報の伝達の逆数から導出されるため、一定である。特に、光はディスプレイを出て、頂点によって表される顔色の領域によって反射され、カメラによって受光される。次いで、フィルタリングは、カメラの補正、表面の向きの補正(傾斜角のフィルタリングを含む)、および光に戻るように移動した距離の補正によって実行される。任意の一連の数学的方程式を解くために単純化することができるため、各フィルタリング関数は、単純化または動作速度のために組み合わせて考慮することができることが理解されよう。すべての実施形態において、画像取り込みプロセスを考慮するためのデータのそのようなフィルタリングは、機械学習エンジンへの入力としてデータを使用する前に実行される。
【0150】
一実施形態では、以下の式に従って、距離二乗フォールオフが使用される。
FallCorrectedLum=Lum *(Magnitude(vertex.XYZ)2).
【0151】
コサインフォールオフの逆レンダリング式を適用することができる。一実施形態では、以下の式に従って、無限遠フォールオフの点光源が使用される。
CosCorrectedLum=FallCorrectedLum *(1.0/Dot(vertex.ABC,light.Normal)).
【0152】
次に、データは、本明細書では顔色モデルと呼ばれる機械学習エンジンを使用して処理される。機械学習モデルは、最初に被験者に関連するデータを使用して構築および訓練されなければならない。モデルを訓練するために使用されるデータは、様々なソースから取得することができ、被験者によって自己報告された調査データ、カラーチャートを伴う被験者の参照写真、グラウンドトゥルース測定として使用される、被験者の顔のいくつかの領域(例えば、額、頬(左右)、顎(左右)、およびデコルテ)における、分光光度計によって測定された被験者の皮膚色、本明細書に記載の自撮りスキャン技術を使用して取得された顔画像データを含む。
【0153】
被験者のコホートは、特定の用途の必要性を満たすために最も適した方法で選択される。一実施形態では、機械学習システムを訓練するための顔色データ収集の設計は、以下のステップを使用する。被験者の大規模コホートを同定する。このコホートは、代理店リスト、広告、または他の方法の使用によって見つけられ得る。この大きなコホートの顔色特性を測定する。これは、反射分光光度計を使用して行うことができる。手首、額、左右の頬、左右の顎線、およびデコルテなどの特定の顔領域に対して読み取りを行うことができる。以下のデータを記憶することができ、例えば、各被験者について、被験者の名前、CIELABデータとして変換して記憶することができる分光光度計データ、手首、額、左右の頬、左右の顎線、およびデコルテの記憶され得るデータ、成分中央値演算を使用して単一のCIELAB色に結合され、被験者の顔色として記憶され得る領域データを含み得る。大きなコホートのデータは、試験コホートに処理することができる。これは、色のサンプリングを改善するため、試験を簡単にするため、および動作効率のために行われ得る。一実施形態では、大コホートは、k値クラスタリングを使用して処理される。クラスタリングは、各クラスタの中心が他から3.0 DeltaE 2000となるように行ってもよい。
【0154】
訓練データセットの品質および量は、結果として得られるモデルの性能に大きく影響する。
【0155】
このデータを使用して、モデル、例えば上記の段落で説明したようなテンソルフローモデルが構築され、訓練される。
【0156】
ここで、モデルの訓練をより詳細に説明する。一実施形態では、既知の輝度を有するLCDディスプレイパネルを使用して、機械学習モデルの訓練データの一部を生成するために周囲光を較正する。そのようなデータは、以下の方法で収集することができる。各被験者は、所定の命令セットを使用して一連の自撮りスキャンを記録する。例示的な実施形態では3回のスキャンは、異なる量の既知の周囲光で記録される。周囲光の量は、以下の技術を使用して既知である。既知の輝度を有するLCDディスプレイパネルが、これらのセッションのために被験者から2メートル離れて配置される。コンピュータソフトウェアは、LCDディスプレイパネルに、一連のLCDディスプレイによって発せられた光を減衰させるPNG画像を表示させる。各PNG画像は、表示されるときにディスプレイ全体をカバーする。PNG画像は、フラットな1色の画像である。すなわち、画像内の各ピクセルは同じ値を有する。PNG画像は、8ビットのRGB符号化画像である。8ビット画像は、R,G,B={0,0,0}のとき、黒く見える。8ビット画像は、R、G、B={80,80,80}の場合、濃い灰色に見える。8ビット画像は、R、G、B={116,116,116}の場合、中程度の灰色に見える。各PNG画像に対するLCDディスプレイによってそれぞれ放出される輝度は、2メートルの距離で記録される。被験者は3回のスキャンを行い、各スキャンは異なるPNG画像を使用して照明され、それにより、既知の周囲光が生成される。
【0157】
一般に、訓練プロセスは、データセット(自撮りスキャンデータ(GLTF)とグラウンドトゥルース測定のペア)を使用して、顔色モデルに対する重みを改良する。顔領域(すなわち、額、左頬、左下顎、デコルテ、右下顎、および右頬であり、それぞれ頂点のセットによって表される)ごとに、セットの補正された頂点色(上記参照)を入力として使用して、顔領域内のパッチの重みが、分光光度計CIELABグラウンドトゥルースデータを使用して訓練される。各皮膚領域のカーブフィッティング重みが訓練される。
【0158】
機械学習モデルを構築および訓練するためのプロセスの説明を続け、モデルの入力が決定される。この実施形態では、ウィングドエッジモデルの特定のラベル付き頂点が入力として使用される。各頂点のRGB値は、CIE l*a*b色空間に変換される。入力チャネルは、特定のラベルを有するすべての頂点から構築される。モデルの出力は、アプリケーションのニーズおよび訓練データに基づいて決定される。例えば、出力チャネルは、顔領域の顔色を表す単一のCIE l*a*b色として指定されてもよい。訓練入力チャネルは、顔領域の分光光度計スキャンを使用して収集される単一のCIE l*a*b色として指定される。モデル設計は、ニューラルネットワークモデルの形態をとることができる。比較的大きいベクトル入力をより小さいベクトル出力に削減することは、ニューラルネットワークの特定の形態によく適している。プラットフォームは、このタイプのモデルを確実に実行し、大規模生産システムに役立つようにそれらを拡張するために存在する。モデルの深さおよび接続性は、入力の複雑さに基づいて決定される。モデルは、多種多様なスキャン入力を使用して訓練される。ランダムな訓練データは、試験のために保留される。モデルは、試験データを使用して評価される。フィルタ、深さおよび接続性の変化が試験され、最適化される。機械学習の第2の段階は、後述する第1の段階の出力に適用することができる。最終用途は、ユーザの顔色に統一色を提供する化粧品を配合するために使用され得る単色が供給されることを必要とし得る。一実施形態では、その色は、機械学習の第1の段階から領域色出力の成分中央値をとることによって計算され得る。
【0159】
他の実施形態では、単一の化粧品の色の提案を提供するために機械学習の第2の段階を訓練することが望ましい場合がある。このための訓練データは、第1の段階のための訓練入力の成分中央値であってもよく、または化粧アーティストによって指定された統一色であってもよい。一実施形態では、第2の段階の機械学習ネットワークは、以下の方法で構築および訓練される。モデルの入力が決定される。この実施形態では、機械学習の第1の段階によって供給される各顔領域のCIE l*a*b色出力が使用される。入力は、CIE l*a*b色および顔領域ラベル、または入力位置からなる。これらにより、大きなベクトル入力が構成される。モデルの出力は、アプリケーションのニーズおよび訓練データに基づいて決定される。顔化粧品の統一色を指定する単一のCIE l*a*b色が出力される。訓練データは、化粧アーティストによる推奨のフィルタリングされたセットである。平滑化は、一連の同様の訓練入力に適用されてもよい。成分中央値フィルタリングは、一連の同様の訓練入力に適用されてもよい。化粧アーティスト訓練入力は、追加のアーティスト入力に基づいて分光光度計スキャンと組み合わせることができる。芸術的選択をエミュレートすることはニューラルネットワークの既知の使用であるため、ニューラルネットワークモデルを使用することができる。プラットフォームは、このタイプのモデルを確実に実行し、大規模生産システムに役立つようにそれらを拡張するために存在する。モデルの深度および接続性は、審美的選択のために設計された以前のネットワークモデルに基づくことができる。モデルは、多種多様なスキャン入力を使用して訓練される。例えば、地理的領域を表す大きなコホートから被験者の分散クラスタを選択することにより、多種多様な顔色タイプが提供される。異なる時間に、好ましくは類似しているが異なる人間のグループ化を用いて、いくつかのセッションの化粧アーティストの審美的な色の選択肢から入力データを収集すると、より大きなデータセットが提供され、化粧アーティストの意図をより小さいセットよりも正確に取り込むことになる。手持ち式デバイスモデルを選択し、次いで、そのモデルの照明および露出特性のより良いサンプリングを提供するために、単一のデバイスだけでなく、これらのデバイスの多くを使用してデータを収集する。
【0160】
一実施形態では、顔の位置の色の一致のセットから単一の化粧品の色を決定することは、以下のステップで具体化され得る。上述したように、様々な顔色タイプを有する被験者のサンプルセットに対して一連の試験が行われる。各被験者について、スキャンが行われる。各顔領域のCIELAB色の成分中央値は、CIELAB入力として計算される。化粧品の配合は、本出願人が所有する背景特許などの他の特許に開示されているCIELAB入力および方法を使用して見出される。配合は、化粧アーティストによって作成され、対象に適用される。化粧アーティストは、一致を承認するか、または色補正を提案する。承認された場合、測定された色および承認された色が記録され、記憶される。承認されない場合、色補正がCIELAB色に適用され、試験が繰り返される。測定された色と承認された色との間の差に対して、CIELAB L*成分に基づいてカーブフィッティングを行う。化粧アーティストの意図に一致する関数が見つかった場合、その関数を使用して、各顔領域のCIELAB色の成分中央値を調整することができる。場合によっては、この関数は、L*マッピングの曲線の一部において、わずかに明るいL*値へのバイアス、A*値の減少、およびB*値のわずかな増加を提供し得る。審美的選択肢が曲線適合を使用して明らかに適合しない場合、入力としての各顔領域のCIELAB色、および訓練データとしての化粧アーティストの承認された色に基づいて機械学習システムを構築することができる。
【0161】
個人の皮膚の色調のCIELAB色を近似するための成分中央値アプローチの代替実施形態は、複合アプローチである。成分中央値に基づく上記の手法を使用する場合、一般に、複数の顔領域(額、左頬、左下顎、デコルテ、右下顎および右頬のような好ましい領域)のそれぞれは、領域ごとに単一のCIELAB色を出力する。次に、CIE l*,a*およびb*チャネルのそれぞれの中央値を使用して、単一のl*,a*およびb*チャネル値を出力し、チャネルごとの中央値計算を使用して面全体を表す。次に、この中央値の計算値を使用して、グラウンドトゥルースと比較した推定値としてユーザの肌の色調を表す。1つのアプローチでは、このデータを分光光度計から得た。
【0162】
あるいは、複合手法では、グラウンドトゥルースによりよく一致するように、上記の6つの好ましい領域などの複数の領域にわたって線形重み付けが求められる。複合手法は、6つの領域のうちのどれが、グラウンドトゥルースの肌の色調表現に最もよく一致する単一のCIELAB値のより良い表現を提供するかを決定する際により深い深度を可能にする。これは、重み付けを制限すること、すなわち、重みを1に制限することによって行われ、したがって、どの領域が最終出力に最も寄与し、最も寄与しないかを直接観察することを可能にする方法を生成する。複数の領域および複合手法を使用することにより、人間モデルのデータセットにわたって、顔領域の各々のCIELABベクトルを入力として、グラウンドトゥルース色CIELAB単一ベクトル(例えば分光光度計から)を出力として、線形重み付けを、正則化を伴う多変量線形回帰から計算することができる。
【0163】
各皮膚領域(例えば、上記の6つの好ましい領域を使用して)の重みの算出には、多変量線形回帰を用いてもよい。さらに、重み付けの合計を1にするために、正規方程式を使用したθ正規化を実施することができる。これは、以下によって与えられる。
【数1】
例えば、mは出力へのサンプル入力の数(領域および出力分光光度計のx6 L*a*b*値)であり、nは皮膚領域の数(この例では、6)であり、次いで
【数2】
Xは、CIELABのn個のスキン領域のm個のサンプル色のm×(n+1)行列であり、
【数3】
y=各サンプルの出力CIELAB色のm×1行列である。
【0164】
θは、重み付け値(すなわち、6つの領域の各々の影響を示す線形重みであり、0は影響がないことを意味し、1は総影響を意味し、値は[0,1]からの範囲である。
【0165】
λは正規化パラメータであり、
【数4】
である。
【0166】
上記の例示的な領域を使用して、実際には、デコルテ領域は他の領域よりもはるかに高い重み付けレベルを表現し、その結果、グラウンドトゥルース色との位置合わせの精度がより高くなる。この結果はまた、この領域が典型的には化粧アーティストによって肌の色調の評価における色の主要な基礎として使用されるという点で化粧アーティストの直感および観察と一致する。
【0167】
さらに、複合手法を使用して、季節変動などの肌の色調を決定する他の外部要因に基づいて重み付けを適合させることができる。データセットが冬の時期に取得され、別のデータセットが夏の時期に取得された場合、ユーザの肌の色調を適切に識別するために、重みに微妙だが重要な違いがある可能性がある。その場合、モデルに供給することができる追加のデータソースは、個人の地理、屋外生活様式などに基づく太陽暴露である可能性が高い。
【0168】
データセットの訓練データは、各顔領域のCIELAB色および化粧アーティストの承認された色の成分中央値または合成手法結果の差にガウシアンフィルタを適用することによって平滑化される必要があり得る。例えば、成分中央値を使用して、平滑化されたデルタが成分中央値に加算され、これが訓練入力として使用される。このプロセスは、以下のように表すことができる。
1.訓練データは平滑化され、フィルタリングされる。
a.リストAを化粧アーティストの承認色とする。
b.各顔領域のCIELAB色の成分中央値をListMとする。
c.ListTを訓練データ結果とする。
i.ListT=Gaussian(ListA-ListM)+ListM
2.MLシステムは、フィルタリングされたデータを使用して訓練される。
3.MLシステムの結果を検証する。
a.化粧アーティストがMLシステムによって行われた推奨をチェックする試験が実行されてもよい。
【0169】
構築および訓練されると、顔色モデルは、AWS EC2インスタンスとして展開されるか、または他の広く利用可能なサービスを使用してホストされ得る。計算インスタンスは、同期的または非同期的に動作することができる。計算インスタンスは、顔色カラーモデルを実行するためのAPIインタフェースを提供する。機械学習システムは、広く利用可能な機械学習プラットフォームを使用して実装されてもよく、機械学習モデルは、機械学習プラットフォームが機械学習モデルを構築および実行するために使用するデータ記述として表されてもよい。計算インスタンス上で動作するコード:
1.APIを介してユーザスキャンを色推奨に処理する要求を受信する。
2.特定の被験者の顔モデルデータ(例えば、GLTFファイル)をロードする。
3.必要に応じて機械学習モデルをロードして管理する。
4.ウィングドエッジ頂点にデバイス色補正を適用する。
5.ウィングドエッジ頂点に逆レンダリング補正を適用する。
6.ウィングドエッジ頂点を機械学習入力に変換する。
7.機械学習モデルを実行する。
8.要求に対する機械学習出力データを返す。
【0170】
要するに、このサービスは、顔モデルデータ(例えば、GLTFファイル)を評価して、CIE L*a*b空間における顔色を(推論によって)予測するために使用される。取り込まれた画像データ(すなわち、GLTFファイル内の顔モデルデータ)は、デバイスディスプレイからの光および測定された肌色で構成される。既知の光源(デバイスディスプレイ)および取り込まれた画像を用いて、モデルは、より詳細に前述したように、肌色について解決する。
【0171】
本明細書に記載される特定の例示的な実施形態は、皮膚ファンデーションなどの皮膚に適用される薬剤を含む局所用剤を参照するが、本発明の実施形態は、目または唇などの顔の他の領域のための、および/または毛髪などの他の領域に適用される薬剤の一致または選択を可能にする色を決定するための局所用剤にも等しく適用可能である。
【0172】
記載された機能の一部またはすべては、ユーザデバイス上のソフトウェアおよび/またはハードウェアに実装することができる。ユーザデバイスは、スマートフォン、スマートウォッチ、スマートグラス、タブレットコンピュータ、ポータブルコンピュータ、テレビ、ゲーム機器、音楽プレーヤ、携帯電話、バーチャルリアリティゴーグル、ラップトップ、パームトップ、スマートまたはダム端末、ネットワークコンピュータ、携帯情報端末、好ましくはカメラを有するホームアシスタント(Alexa(商標)またはGoogle(登録商標)Home(商標)など)、無線デバイス、情報機器、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、または汎用コンピュータまたは本明細書に記載の機能を実行することができる専用ハードウェアデバイスとして動作する他のコンピューティングデバイスを含むことができるが、これらに限定されない。ソフトウェアは、例えば、処理ユニット、システムメモリ、およびシステムメモリを含む様々なシステム構成要素を処理ユニットに結合するシステムバスを含むコンピュータの形態の汎用コンピューティングデバイス上に実装することができる。
【0173】
追加的または代替的に、機能の一部またはすべては、リモートで、クラウドで、またはサービスとしてのソフトウェアを介して実行することができる。例えば、マッチング機能は、ユーザデバイスと通信する1つ以上のリモートサーバまたは上述の他のデバイス上で実行することができる。リモート機能は、十分なメモリ、データストレージ、および処理能力を有し、サーバクラスのオペレーティングシステム(例えば、Oracle(登録商標)Solaris(登録商標)、GNU/Linux(登録商標)、およびMicrosoft(登録商標)Windows(登録商標)オペレーティングシステムファミリ)を実行するサーバクラスのコンピュータ上で実行することができる。
【0174】
システムは、メモリに記憶され、プロセッサ上で実行される複数のソフトウェア処理モジュールを含むことができる。例示として、プログラムモジュールは、1つ以上のプロセッサが命令を実行することを可能にするために機械語またはオブジェクトコードに変換される1つ以上の適切なプログラミング言語の形態とすることができる。ソフトウェアは、適切なプログラミング言語またはフレームワークで実装されたスタンドアロンアプリケーションの形態であり得る。
【0175】
本明細書に記載の技術の方法ステップは、入力データを操作して出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行することができる。方法ステップはまた、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によって実行することができ、装置はそのような専用論理回路として実装することができる。モジュールは、その機能を実装するコンピュータプログラムおよび/またはプロセッサ/特殊回路の部分を指すことができる。
【0176】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方を含む。一般に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つ以上のメモリデバイスである。コンピュータプログラム命令およびデータを具現化するのに適した情報キャリアは、例としてEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、磁気ディスク、例えば内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリを含む。1つ以上のメモリは、メディアアセット(例えば、オーディオ、ビデオ、グラフィックス、インタフェース要素、および/または他のメディアファイル)、構成ファイル、および/またはプロセッサによって実行されると、モジュール、エンジン、および本明細書に記載の他の構成要素を形成し、構成要素に関連する機能を実行する命令を記憶することができる。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
【0177】
様々な実施態様において、ユーザデバイスは、本明細書に記載の機能の実行を容易にするウェブブラウザ、ネイティブアプリケーション、またはその両方を含む。ウェブブラウザは、デバイスがウェブページ要求と共にウェブページまたは他のダウンロード可能なプログラム、アプレット、または文書を(例えば、サーバから)要求することを可能にする。ウェブページの一例は、表示、実行、再生、処理、ストリーミング、および/または記憶することができ、他のウェブページへのリンクまたはポインタを含むことができる、コンピュータ実行可能または解釈可能な情報、グラフィック、サウンド、テキスト、および/またはビデオを含むデータファイルである。一実施態様では、デバイスのユーザは、サーバにウェブページを手動で要求する。あるいは、デバイスはウェブブラウザで自動的に要求を行う。市販のウェブブラウザソフトウェアの例には、Google(登録商標)Chrome(登録商標)、Microsoft(登録商標)Internet Explorer(登録商標)、Mozilla(登録商標)Firefox(登録商標)、およびApple(登録商標)Safari(登録商標)が含まれる。
【0178】
いくつかの実装形態では、ユーザデバイスはクライアントソフトウェアを含む。クライアントソフトウェアは、本明細書に記載の特徴の実装および実行を提供する機能をデバイスに提供する。クライアントソフトウェアは、様々な形態で実装することができ、例えば、ネイティブアプリケーション、ウェブページ、ウィジェット、および/またはJava、JavaScript、.Net、Silverlight、Flash、および/またはデバイスにダウンロードされ、ウェブブラウザと連携して動作する他のアプレットまたはプラグインの形態とすることができる。クライアントソフトウェアおよびウェブブラウザは、単一のクライアント-サーバインタフェースの一部とすることができ、例えば、クライアントソフトウェアは、ウェブブラウザまたは別のフレームワークもしくはオペレーティングシステムへのプラグインとして実装することができる。ウィジェットフレームワークおよびアプレット技術を含むがこれらに限定されない他の適切なクライアントソフトウェアアーキテクチャも、クライアントソフトウェアと共に使用することができる。
【0179】
通信ネットワークは、デバイスを1つ以上のサーバおよび/または互いに接続することができる。通信は、例えば、標準電話回線、LANまたはWANリンク(例えば、T 1、T 3、56 kb、X.25)、ブロードバンド接続(ISDN、フレームリレー、ATM)、無線リンク(802.11(Wi-Fi)、Bluetooth、GSM、CDMAなど)などの媒体を介して行うことができる。他の通信媒体も可能である。ネットワークは、TCP/IPプロトコル通信、およびウェブブラウザによって行われたHTTP/HTTPS要求を搬送することができ、クライアントとサーバとの間の接続は、そのようなTCP/IPネットワークを介して通信することができる。他の通信プロトコルも可能である。
【0180】
本システムはまた、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境においても実施することができる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルおよびリモートコンピュータ記憶媒体の両方に配置することができる。デバイスの容量および必要なデータ処理能力の量に応じて、本明細書で説明したもの以外の他のタイプのシステムハードウェアおよびソフトウェアも使用することができる。システムはまた、上述のような仮想化オペレーティングシステムを実行する1つ以上の仮想マシン上に実装することができ、本明細書に記載のようなハードウェアを有する1つ以上のコンピュータ上で動作する。
【0181】
場合によっては、リレーショナルデータベースまたは他の構造化データベースは、例えば、処理のためのデータを記憶するデータベース管理システムとして、そのような機能を提供することができる。データベースの例には、カリフォルニア州レッドウッドショアーズのORACLE Corp.が提供するMySQLデータベースサーバまたはORACLEデータベースサーバ、カリフォルニア州バークレーのPostgreSQL Global Development Groupが提供するPostgreSQLデータベースサーバ、またはIBMが提供するDB2データベースサーバが含まれる。
【0182】
システムおよび方法の実装は、1つ以上の製品上または1つ以上の製品内で具現化された1つ以上のコンピュータ可読プログラムとして提供することができることにも留意されたい。プログラム命令は、人工的に生成された伝播信号、例えば、データ処理装置による実行のために適切な受信装置に送信するための情報を符号化するために生成された機械生成の電気信号、光信号、または電磁信号で符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムアクセスもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらの1つもしくは複数の組み合わせであり得るか、またはそれらに含まれ得る。さらに、コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令のソースまたは宛先とすることができる。コンピュータ記憶媒体はまた、1つ以上の別個の物理的構成要素または媒体(例えば、複数のCD、ディスク、または他の記憶デバイス)であってもよく、またはそれらに含まれてもよい。
【0183】
当業者であれば、その広範な発明概念から逸脱することなく、上記の実施形態に変更を加えることができることを理解するであろう。したがって、本発明は、開示された特定の実施形態に限定されず、添付の特許請求の範囲によって定義される本発明の精神および範囲内の修正を包含することが意図されていることが理解される。
図1
図2
図3
図4
図5
図6
図7
図8A
図8B
図8C
【国際調査報告】