開示する単色画像及び深度情報を使用した顔テクスチャマップ生成のための装置及び方法では、後述する実装を見出すことができる。本開示の例示的な態様は、メモリ及び回路を含むことができる電子装置を提供する。メモリは、ユーザの顔の第1の色画像及び対応する深度情報と、ユーザの顔のテクスチャリングされていない3次元(3D)顔モデルと、基準顔テクスチャモデルとを記憶するように構成することができる。具体的には、第1のカラー画像及び対応する深度情報は、ユーザの顔の正面像を表すことができる。基準顔テクスチャモデルの例は、ユーザの顔とは異なる複数の顔の主成分分析(PCA)テクスチャモデルとすることができる。
開示する電子装置は、2つのテクスチャマップ、すなわち第1のテクスチャマップと第2のテクスチャマップとの組み合わせに基づいてユーザの顔のテクスチャマップを生成するように構成することができる。第1のテクスチャマップは、ユーザの顔の単一の高解像度カラー画像と、テクスチャリングされていない3D顔モデルとに基づいて生成することができる。単一の高解像度カラー画像は、ユーザの顔の正面像を表すことができる。テクスチャリングされていない3D顔モデルは、ユーザの顔の形状改善された(shape-refined)3Dモデルとすることができ、ユーザの顔の複数の形状特徴を正確に表すことができる。従って、生成された第1のテクスチャマップは、テクスチャリングされていない3D顔モデルの成形部分に正確にマッピングされたテクスチャを有することができ、形状改善されていない3D顔モデルに基づいて生成できるテクスチャマップよりも信頼することができる。第1のテクスチャマップは、顔の全ての正面顔領域のテクスチャ情報を取り込むことができ、単一の高解像度カラー画像では、顔の残りの顔領域のテクスチャ情報が隠れる場合があるので、第1のテクスチャマップには顔の残りの顔領域が存在せず、又は不正確に表現されることがある。
開示する電子装置は、第1のテクスチャマップ上で基準顔テクスチャモデルをテクスチャモデルフィッティングすることに基づいて、第2のテクスチャマップを生成するようにさらに構成することができる。基準顔テクスチャモデルは、ユーザの顔とは異なる複数の顔の複数の顔テクスチャマップ上でのPCAに基づいて生成できる顔テクスチャモデルとすることができる。生成された第2のテクスチャマップは、顔の残りの顔領域のテクスチャ情報を含むことができる。開示する電子装置は、第1のテクスチャマップと第2のテクスチャマップとの組み合わせに基づいて、最終テクスチャマップを生成するようにさらに構成することができる。最終テクスチャマップは、第1のテクスチャマップからの眼、鼻及び唇などの正面顔領域と、第2のテクスチャマップからの耳及び首の側面などの残りの顔領域のテクスチャ情報とを含むことができる。生成された最終テクスチャマップは、ユーザの顔の完全なテクスチャを表現することができる。
図1は、本開示の実施形態による、単色画像及び深度情報を使用した顔テクスチャマップ生成のための例示的なネットワーク環境を示すブロック図である。図1にはネットワーク環境100を示す。ネットワーク環境100は、電子装置102、スキャニング装置104及びサーバ106を含むことができる。スキャニング装置104は、イメージセンサ104A及び深度センサ104Bをさらに含むことができる。電子装置102、スキャニング装置104及びサーバ106は、通信ネットワーク108を介して互いに通信可能に結合することができる。スキャニング装置104は、ユーザ116に関連することができる。電子装置102は、ユーザ116の顔の第1のカラー画像110と、ユーザ116の顔の深度情報112と、ユーザ116の顔のテクスチャリングされていない3次元(3D)顔モデル114とを記憶するように構成することができる。
電子装置102は、基準顔テクスチャモデルを記憶するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。基準顔テクスチャモデルは、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャマップ上でのPCAの適用によって抽出される複数の固有値及び複数の固有ベクトルとすることができる。電子装置102は、ユーザ116の顔のテクスチャリングされていない3D顔モデル114と、第1のカラー画像110と、深度情報112とに基づいて、ユーザ116の顔の第1のテクスチャマップを生成するようにさらに構成することができる。電子装置102は、生成された第1のテクスチャマップ上で基準顔テクスチャモデルをテクスチャモデルフィッティングすることに基づいて、ユーザ116の顔の第2のテクスチャマップを生成するようにさらに構成することができる。電子装置102は、生成された第2のテクスチャマップを精細化し、第1のテクスチャマップ及び精細化された第2のテクスチャマップに基づいて、ユーザ116の顔の最終テクスチャマップを生成するようにさらに構成することができる。電子装置102の例としては、以下に限定するわけではないが、コンピュータ装置、スマートフォン、ビデオ会議システム、拡張現実ベースの装置、ゲーム装置、メインフレームマシン、サーバ、コンピュータワークステーション及び/又は消費者電子(CE)装置を挙げることができる。
スキャニング装置104は、ユーザ116の顔をスキャンするように構成できる好適なロジック、回路及びインターフェイスを含むことができる。スキャニング装置104は、1又は2以上の視野角からユーザ116の顔の複数のカラー画像及び対応する深度情報を取り込むように構成することができる。スキャニング装置104は、取り込まれた複数のカラー画像及び対応する深度情報を、通信ネットワーク108を介して電子装置102及びサーバ106に送信するようにさらに構成することができる。スキャニング装置104は、様々な視野角からユーザ116の顔を取り込むことができる(イメージセンサ104Aなどの)イメージセンサ、(深度センサ104Bなどの)深度センサ、(赤色-緑色-青色(RGB)センサなどの)カラーセンサ及び/又は赤外線(IR)センサの組み合わせなどの複数のセンサを含むことができる。スキャニング装置104の例としては、以下に限定するわけではないが、深度センサ、RGBセンサ、IRセンサ、3Dメッシュ構造生成器、イメージセンサ又は動き検出装置を挙げることができる。
サーバ106は、スキャニング装置104によって取り込まれた複数のカラー画像及び対応する深度情報を記憶するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。ある実施形態によれば、サーバ106は、ユーザ116の顔とは異なる複数の顔の基準顔テクスチャモデルを記憶するようにさらに構成することができる。サーバ106の例としては、以下に限定するわけではないが、データベースサーバ、ファイルサーバ、ウェブサーバ、クラウドサーバ、アプリケーションサーバ、メインフレームサーバ又はその他のタイプのサーバを挙げることができる。
通信ネットワーク108は、電子装置102、スキャニング装置104及びサーバ106が互いに通信できるようにする通信媒体を含むことができる。通信ネットワーク108の例としては、以下に限定するわけではないが、インターネット、クラウドネットワーク、ワイヤレスフィディリティ(Wi-Fi)ネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)又はメトロポリタンエリアネットワーク(MAN)を挙げることができる。ネットワーク環境100内の様々な装置は、様々な有線及び無線通信プロトコルに従って通信ネットワーク108に接続するように構成することができる。このような有線及び無線通信プロトコルの例としては、以下に限定するわけではないが、送信制御プロトコル及びインターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、ZigBee、EDGE、IEEE802.11、ライトフィデリティ(Li-Fi)、802.16、IEEE802.11s、IEEE802.11g、マルチホップ通信、無線アクセスポイント(AP)、装置間通信、セルラー通信プロトコル及びBluetooth(BT)通信プロトコルのうちの少なくとも1つを挙げることができる。
動作中、スキャニング装置104は、1又は2以上の視野角からのユーザ116の顔の第1の複数のカラー画像と、第1の複数のカラー画像に対応する第1の深度情報とを取り込むように構成することができる。ユーザ116は、スキャニング装置104の正面に位置することができる。スキャニング装置104のイメージセンサ104Aは、スキャニング装置104の正面に位置できるユーザ116の顔の第1の複数のカラー画像を取り込むように構成することができる。深度センサ104Bは、ユーザ116の顔の第1の複数のカラー画像に対応する第1の深度情報を取り込むように構成することができる。取り込まれたユーザ116の顔の第1の深度情報は、3D空間内のユーザ116の顔上の点の「Z」座標に関する情報を含むことができる。例えば、ほくろ、鼻の盛り上がり、額領域に対する頬領域の深さ、及び顔の異なる領域の異なる深さなどの突出の量を、ユーザ116の顔の各領域の第1の深度情報に基づく精度で推定することができる。
ユーザ116の顔の第1の複数のカラー画像及び対応する第1の深度情報は、これらが互いに同時に取り込まれて同じ視野を表すことができるように互いに同期することができる。第1の複数のカラー画像と対応する第1の深度情報との同期は、3次元視点から見た顔の各領域の形状、異なる顔特徴及び深さの理解の向上をもたらすことができる。スキャニング装置104は、第1の複数のカラー画像及び対応する深度情報を、通信ネットワーク108を介して電子装置102及びサーバ106に送信するようにさらに構成することができる。いくつかの実施形態では、スキャニング装置104を電子装置102の一部とすることができる。このような場合、第1の複数のカラー画像及び対応する第1の深度情報は、直接電子装置102に記憶することができる。
電子装置102は、第1の複数のカラー画像のうちの第1のカラー画像110と、第1のカラー画像110に対応する深度情報112とを記憶するように構成することができる。第1のカラー画像110は、深度情報112に同期することができる。第1のカラー画像110は、ユーザ116の顔の実際のテクスチャを描写できる高解像度画像とすることができる。第1のカラー画像110は、ユーザ116の顔の正面像から取り込むことができる。
電子装置102は、ユーザ116の顔のテクスチャリングされていない3D顔モデル114を記憶するようにさらに構成することができる。テクスチャリングされていない3D顔モデル114は、3D空間におけるユーザ116の顔の数学的表現とすることができる。テクスチャリングされていない3D顔モデル114は、ユーザ116の顔の形状改善された3D顔モデルとすることができる。テクスチャリングされていない3D顔モデル114の形状は、ユーザ116の顔の形状と同一又はほぼ同一とすることができる。テクスチャリングされていない3D顔モデル114上の複数のランドマーク領域の形状は、ユーザ116の顔上の複数のランドマーク領域の実際の形状と同一又はほぼ同一とすることができる。複数のランドマーク領域は、眼、鼻、唇及び人間の顔を定める他の同様の特徴などの、ユーザ116の顔の際立った特徴に対応することができる。テクスチャリングされていない3D顔モデル114には、ユーザ116の顔のテクスチャ情報が存在しないことがある。
ある実施形態によれば、電子装置102は、第1の複数のカラー画像及び対応する第1の深度情報に基づいて、テクスチャリングされていない3D顔モデル114を生成するように構成することができる。テクスチャリングされていない3D顔モデル114を生成するための例示的な動作については本明細書で説明する。電子装置102は、ユーザ116の顔のテクスチャリングされていない3D顔モデル114を生成するために、例えば100~300個の複数の顔についての主成分分析(PCA)に基づいて生成できる3D顔モデルを記憶するように構成することができる。記憶される3D顔モデルの形状は、複数の顔の平均形状とすることができる。電子装置102は、第1の複数のカラー画像及び対応する第1の深度情報に基づいて、ユーザ116の顔の点群(point cloud)を生成するようにさらに構成することができる。点群は、眼、鼻及び唇などの複数の特徴点を含むユーザ116の顔の外面を表すように生成することができる。
電子装置102は、生成された点群を記憶された3D顔モデルと位置合わせするようにさらに構成することができる。電子装置102は、ユーザ116の顔上の複数の特徴点上で剛性位置合わせ動作(rigid alignment operation)を適用し、ユーザ116の顔上の残りの全ての特徴点上で非剛性位置合わせ動作(non-rigid alignment operation)を適用するようにさらに構成することができる。剛性位置合わせ動作では、電子装置102を、ユーザ116の顔の眼、鼻、唇及び/又はその他の特徴点などの複数の特徴点を記憶された3D顔モデルと位置合わせして剛性位置合わせ済み点群(rigid aligned point cloud)を生成するように構成することができる。非剛性位置合わせ動作では、ユーザ116の顔上の残りの全ての特徴点を記憶された3D顔モデルと位置合わせすることができる。
電子装置102は、記憶された3D顔モデル上での剛性及び非剛性位置合わせ動作の適用に基づいて、中立表現(neutral expression)の変形した平均形状顔モデル(deformed mean-shape face model)を生成するようにさらに構成することができる。記憶された3D顔モデルは、ユーザ116の顔を異なる基本形状成分(basic shape components)の組み合わせとして表現することができる。電子装置102は、記憶された3D顔モデルの異なる基本形状成分の重みを推定するようにさらに構成することができる。電子装置102は、推定された重みに基づいて、生成された点群を使用して、記憶された3D顔モデル上での形状ベースのモデルフィットメント(shape-based model-fitment)によってユーザ116の顔の第1の3D顔モデルを生成するようにさらに構成することができる。電子装置102は、ユーザ116の顔の第1の3D顔モデルの形状を精細化するようにさらに構成することができる。
電子装置102は、第1の3D顔モデルの形状を精細化するために、ユーザ116の顔の第1の3D顔モデルにユーザ固有の外観属性(user-specific appearance attributes)を含めるように構成することができる。電子装置102は、第1の3D顔モデルの形状改善に基づいて、ユーザ116の顔の精細化された第1の3D顔モデルを生成するようにさらに構成することができる。生成された精細化されたユーザ116の顔の第1の3D顔モデルは、ユーザ116の顔のテクスチャリングされていない3D顔モデル114に対応することができる。
電子装置102は、基準顔テクスチャモデルを記憶するようにさらに構成することができる。基準顔テクスチャモデルは、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャマップ上でのPCAの適用によって抽出された複数の固有ベクトル及び固有値とすることができる。例えば、異なるテクスチャを有する異なる人間の何百もの顔。これらの複数の顔の各顔は、年齢、顔特徴、色及び滑らかさの面で互いに異なることができる。ユーザの顔の顔テクスチャマップは、そのユーザの顔の外観を表現できる2Dマップ(例えば、U-V座標マップ)とすることができる。基準顔テクスチャモデルは、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャマップ上での主成分分析(PCA)に基づいて生成できる顔テクスチャモデルとすることができる。
いくつかの実施形態では、電子装置102を、サーバ106などのサーバから基準顔テクスチャモデルを検索するように構成することができる。他のいくつかの実施形態では、スキャニング装置104を、ユーザ116の顔とは異なる複数の顔の第2の複数のカラー画像と、対応する第2の深度情報とを取り込むように構成することができる。第2の複数のカラー画像及び対応する第2の深度情報は、複数の視点から取り込むことができる。例えば、スキャニング装置104は、1又は2以上の高解像度カメラとすることができ、従って取り込まれた第2の複数のカラー画像は、複数の視点から取り込むことができる複数の顔の高解像度画像とすることができる。取り込まれた第2の複数のカラー画像及び対応する第2の深度情報は、ユーザ116の顔とは異なる複数の顔の顔部分全体を表すことができる。1又は2以上の高解像度カメラは、高解像度テクスチャマップ上でのPCAの適用によって基準顔テクスチャモデルを取得するように、より多くの顔の視点を取り込むのに役立つことができる。スキャニング装置104は、白色光背景などの一般的周囲照明条件下で第2の複数のカラー画像を取り込むように構成することができる。電子装置102は、取り込まれた第2の複数のカラー画像に基づいて、複数の顔の各々の顔メッシュを生成するようにさらに構成することができる。複数の顔の各々の顔メッシュは、(三角形などの)複数の多角形で構成される3Dメッシュとすることができる。
電子装置102は、複数の顔の各顔の各顔メッシュをU-V座標マップ上でアンラップ処理(unwrap)するようにさらに構成することができる。U-V座標マップは、3Dモデルのテクスチャの2D表現とすることができる。電子装置102は、U-V座標マップ上での顔メッシュのアンラップ処理に基づいて、ユーザ116の顔とは異なる複数の顔の各顔の顔テクスチャマップを生成するようにさらに構成することができる。電子装置102は、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャマップ上での主成分分析(PCA)の適用によって基準顔テクスチャモデルを生成するようにさらに構成することができる。PCAは、相関する大規模データ構成要素セットからいくつかの重要な相関しないデータ構成要素を識別して抽出するために利用することができる。基準顔テクスチャモデルの生成については、例えば図3でさらに詳細に説明する。
電子装置102は、第1のカラー画像110上の第1の複数の三角形と、テクスチャリングされていない3D顔モデル114上の第2の複数の三角形とを決定するようにさらに構成することができる。電子装置102は、第1のカラー画像110上の第1の複数の三角形の各三角形を、テクスチャリングされていない3D顔モデル114上の第2の複数の三角形のうちの対応する三角形にマッピングするようにさらに構成することができる。第1の複数の三角形の各三角形は、テクスチャリングされていない3D顔モデル114上に第1のカラー画像110を透視投影することに基づいて、第2の複数の三角形のうちの対応する三角形にマッピングすることができる。電子装置102は、U-V座標マップ上の第3の複数の三角形を決定するようにさらに構成することができる。U-V座標マップは、3Dモデルのテクスチャマップを表すことができる2D特徴画像とすることができる。U-V座標マップの「U」及び「V」は、ユーザ116の顔からのテクスチャ値の2D座標を表すことができる。電子装置102は、テクスチャリングされていない3D顔モデル114の第2の複数の三角形の各々を、U-V座標マップ上の第3の複数の三角形のうちの対応する三角形にマッピングすることに基づいて、U-V座標マップ上の第3の複数の三角形を決定するようにさらに構成することができる。
電子装置102は、U-V座標マップ上の第3の複数の三角形と第1のカラー画像110上の第1の複数の三角形との間のアフィン変換を計算するようにさらに構成することができる。アフィン変換は、画像内の点、直線及び面を維持する関数を意味することができる。アフィン変換は、U-V座標マップ上の第3の複数の三角形を第1のカラー画像110上の第1の複数の三角形と位置合わせするために推定することができる。
電子装置102は、計算されたアフィン変換に基づいて、第1のカラー画像110上の第1の複数の三角形のうちの対応する三角形から、U-V座標マップ上の第3の複数の三角形の各々に色情報を適用するようにさらに構成することができる。電子装置102は、U-V座標マップ上の第3の複数の三角形の各々に色情報を適用することに基づいて、ユーザ116の顔の第1のテクスチャマップを生成するようにさらに構成することができる。第1のテクスチャマップは、第1のカラー画像110の色情報に基づいてユーザ116の顔のテクスチャを表すことができる。第1のテクスチャマップは、ユーザ116の顔の正面顔部分の正確なテクスチャを表すことができる。しかしながら、第1のテクスチャマップには、耳及び首の側面などのユーザ116の顔のいくつかの部分のテクスチャが存在せず、又は不正確に表現されることがある。第1のテクスチャマップにおけるこのような部分の不在又は不正確な表現は、第1のカラー画像110におけるこのような部分のオクルージョンの結果と考えることができる。第1のテクスチャマップの生成については、例えば図5でさらに詳細に説明する。
電子装置102は、生成された第1のテクスチャマップ上の複数の第1の有効点上で基準顔テクスチャモデルをテクスチャモデルフィッティングすることによって、ユーザ116の顔の第2のテクスチャマップを生成するようにさらに構成することができる。複数の第1の有効点は、第1のカラー画像110内で観察できるユーザ116の顔領域に属する複数の点とすることができる。基準顔テクスチャモデルは、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャマップ上でのPCAの適用に基づいて生成されるので、基準顔テクスチャモデルの照明条件は、ユーザ116の顔の照明条件とは異なることができる。
第1のカラー画像110は、ユーザ116の顔に対する外部光源からの照明影響などの何らかの外部照明影響を含むことができる。第1のテクスチャマップは、第1のカラー画像110に基づいて生成されるので、外部光源からの照明影響を含むことができる。電子装置102は、第1のテクスチャマップから照明影響を除去することに基づいて第2のテクスチャマップを精細化するようにさらに構成することができる。照明影響のない第1のテクスチャマップは、第2のテクスチャマップを精細化するための基準として使用することができる。電子装置102は、生成された第2のテクスチャマップの目的関数の最小化に基づいて第2のテクスチャマップを精細化するようにさらに構成することができる。目的関数は、オフセット項及び平滑化項(smoothening term)を含むことができる。電子装置102は、オフセット項及び平滑化項を計算するように構成することができる。目的関数の最小化については、例えば図6で詳細に説明する。精細化された第2のテクスチャマップは、第1のカラー画像110で隠れていた顔部分のテクスチャを含むことができ、第1のテクスチャマップには、このような顔部分の対応するテクスチャが存在せず又は不正確に表現されることがある。第2のテクスチャマップ及び精細化された第2のテクスチャマップの生成については、例えば図6で詳細に説明する。
電子装置102は、ユーザ116の顔の第1のマスクに基づいて、第1のテクスチャマップの第1の部分を抽出するようにさらに構成することができる。第1のテクスチャマップの第1の部分は、ユーザ116の顔の正面の顔部分のために抽出することができる。電子装置102は、ユーザ116の顔の第2のマスクに基づいて、精細化された第2のテクスチャマップの第2の部分を抽出するようにさらに構成することができる。第2のテクスチャマップの第2の部分は、ユーザ116の顔の残りの顔部分のために抽出することができる。電子装置102は、第1のテクスチャマップの第1の部分と第2のテクスチャマップの第2の部分とのブレンドに基づいて、最終テクスチャマップを生成するようにさらに構成することができる。第1のテクスチャマップの第1の部分を第2のテクスチャマップの第2の部分とブレンドすると、最終テクスチャマップに再び照明影響を追加することができる。最終テクスチャマップは、ユーザ116の顔の完全なテクスチャを表すことができ、最終テクスチャマップのテクスチャは、ユーザ116の顔の実際のテクスチャと同一又はほぼ同一とすることができる。
ある実施形態によれば、電子装置102は、生成された最終テクスチャマップをテクスチャリングされていない3D顔モデル114上にレンダリングすることによって、ユーザ116の顔のテクスチャリングされた3D顔モデルを生成するようにさらに構成することができる。電子装置102は、テクスチャリングされた3Dモデルをディスプレイ装置上にレンダリングするようにさらに構成することができる。ユーザ116の顔のテクスチャリングされた3D顔モデルは、ユーザ116の顔を写実的に表現することができる。テクスチャリングされた3D顔モデルは、仮想現実(VR)又は拡張現実(AR)環境においてユーザ116の顔を表現するためにさらに利用することができる。ユーザ116の顔のテクスチャリングされた3D顔モデルの応用としては、ビデオゲーム内のアニメーション、視覚効果(VFX)、コンピュータ生成画像(CGI)、及び3Dモデルベースのビデオ会議を挙げることもできる。
図2は、本開示の実施形態による、単色画像及び深度情報を使用した顔テクスチャマップ生成のための例示的な電子装置を示すブロック図である。図2の説明は、図1の要素に関連して行う。図2には、電子装置102のブロック図200を示す。電子装置102は、回路202を含むことができる。回路202は、プロセッサ204をさらに含むことができる。電子装置102は、メモリ206及び入力/出力(I/O)装置208をさらに含むことができる。I/O装置208は、グラフィカルユーザインターフェイス(GUI)212をレンダリングできるディスプレイ装置210を含むことができる。電子装置102は、ネットワークインターフェイス214をさらに含むことができる。回路202は、メモリ206及びI/O装置208に通信可能に結合することができる。回路202は、ネットワークインターフェイス214を使用してスキャニング装置104及びサーバ106と通信するように構成することができる。
プロセッサ204は、ユーザ116の顔のテクスチャリングされていない3D顔モデル114、第1のカラー画像110及び深度情報112に基づいてユーザ116の顔の第1のテクスチャマップを生成するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。プロセッサ204は、生成された第1のテクスチャマップ上で基準顔テクスチャモデルをテクスチャモデルフィッティングすることによって、ユーザ116の顔の第2のテクスチャマップを生成するようにさらに構成することができる。プロセッサ204は、生成された第2のテクスチャマップを精細化し、第1のテクスチャマップと精細化された第2のテクスチャマップとのブレンドに基づいてユーザ116の顔の最終テクスチャマップを生成するようにさらに構成することができる。プロセッサ204は、当業で周知の複数のプロセッサ技術に基づいて実装することができる。プロセッサ技術の例としては、以下に限定するわけではないが、中央処理装置(CPU)、X86ベースプロセッサ、縮小命令セットコンピューティング(RISC)プロセッサ、特定用途向け集積回路(ASIC)プロセッサ、複合命令セットコンピューティング(CISC)プロセッサ、グラフィカルプロセッシングユニット(GPU)、及びその他のプロセッサを挙げることができる。
メモリ206は、第1のカラー画像110、深度情報112及びテクスチャリングされていない3D顔モデル114を記憶するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。メモリ206は、ユーザ106の顔とは異なる複数の顔からの顔テクスチャマップのPCAモデルなどの基準顔テクスチャモデルを記憶するようにさらに構成することができる。メモリ206の実装例としては、以下に限定するわけではないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電子的に消去可能なプログラマブルリードオンリメモリ(EEPROM)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、CPUキャッシュ、及び/又はセキュアデジタル(SD)カードを挙げることができる。
I/O装置208は、ユーザ(ユーザ106など)から入力を受け取り、ユーザから受け取られた入力に基づいてユーザに出力を提供するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。様々な入力及び出力装置を含むことができるI/O装置208は、回路202と通信するように構成することができる。I/O装置208の例としては、以下に限定するわけではないが、タッチ画面、キーボード、マウス、ジョイスティック、マイク、ディスプレイ装置(例えば、ディスプレイ装置210)、及びスピーカを挙げることができる。
ディスプレイ装置210は、ユーザ116の顔のテクスチャリングされた3D顔モデルを表示するように構成できる好適なロジック、回路及びインターフェイスを含むことができる。いくつかの実施形態では、ディスプレイ装置210を、電子装置102に関連する外部ディスプレイ装置とすることができる。ディスプレイ装置210は、ユーザ116などのユーザがディスプレイ装置210を介してユーザ入力を提供することを可能にすることができるタッチ画面とすることができる。タッチ画面は、抵抗性タッチ画面、容量性タッチ画面、又は熱タッチ画面のうちの少なくとも1つとすることができる。ディスプレイ装置210は、以下に限定するわけではないが、液晶ディスプレイ(LCD)ディスプレイ、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、又は有機LED(OLED)ディスプレイ技術、或いはその他のディスプレイ装置などの複数の既知の技術を通じて実現することができる。ある実施形態によれば、ディスプレイ装置210は、頭部装着型装置(HMD)、スマートグラス装置、シースルーディスプレイ、投影式ディスプレイ、エレクトロクロミックディスプレイ、又は透明ディスプレイのディスプレイ画面を意味することができる。
GUI212は、ディスプレイ装置210などのディスプレイ装置上にレンダリングされるユーザインターフェイス(UI)に対応することができる。GUI212は、ユーザ116の顔のテクスチャリングされた3D顔モデルを表示するように構成することができる。また、GUI212は、ビュー選択、ディスプレイ制御及びその他の相互作用的ユーザオプションのためのユーザ選択可能オプションに対応できるグラフィカル要素を表示するようにさらに構成することができる。いくつかの実施形態では、GUI212を、電子装置102に通信可能に結合された外部ディスプレイ画面上にレンダリングすることができる。
ネットワークインターフェイス214は、通信ネットワーク108を介して電子装置102、スキャニング装置104及びサーバ106間の通信を容易にするように構成できる好適なロジック、回路及びインターフェイスを含むことができる。ネットワークインターフェイス214は、電子装置102と通信ネットワーク108との有線又は無線通信をサポートする様々な既知の技術を使用することによって実装することができる。ネットワークインターフェイス214は、以下に限定するわけではないが、アンテナ、無線周波数(RF)トランシーバ、1又は2以上の増幅器、チューナ、1又は2以上の発振器、デジタルシグナルプロセッサ、コーダ-デコーダ(CODEC)チップセット、加入者アイデンティティモジュール(SIM)カード、又はローカルバッファ回路を含むことができる。ネットワークインターフェイス214は、インターネット、イントラネットなどのネットワーク、又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)及び都市エリアネットワーク(MAN)などの無線ネットワークと無線通信を介して通信するように構成することができる。無線通信は、グローバルシステムフォーモバイルコミュニケーション(GSM)、拡張データGSM環境(EDGE)、広帯域符号分割多元接続(W-CDMA)、長期進化(LTE)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth、(IEEE802.11a、IEEE802.11b、IEEE802.11g又はIEEE802.11nなどの)ワイヤレスフィディリティ(Wi-Fi)、ボイスオーバーインターネットプロトコル(VoIP)、ライトフィデリティ(Li-Fi)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(Wi-MAX)、電子メール用プロトコル、インスタントメッセージング及びショートメッセージサービス(SMS)などの複数の通信規格、プロトコル及び技術のうちの1つ又は2つ以上を使用するように構成することができる。回路202の動作については、例えば図3、図4、図5、図6及び図7で詳細に説明する。
図3に、本開示の実施形態による、基準顔テクスチャモデルの生成のための例示的な動作を示す。図3の説明は、図1及び図2の要素に関連して行う。図3には、基準顔テクスチャモデルの生成のための動作セットを含む処理パイプライン300を示す。
302において、スキャン動作が実行される。スキャン動作では、(スキャニング装置104と同じ又は異なる)スキャニング装置を、ユーザ116の顔と異なることができる複数の顔をスキャンするように構成することができる。スキャニング装置は、複数の顔を複数の視点から、例えば一般的な白色光背景などの一般的周囲照明条件下でスキャンするように構成することができる。複数の顔は、複数の顔の各顔の均一なテクスチャが取り込まれるように一般的周囲照明条件下で取り込むことができる。複数の顔の各顔は、対応する顔の主要顔特徴のために均一な照明で取り込むことができる。
一例として、スキャニング装置は高解像度カメラとすることができる。スキャニング装置のイメージセンサは、複数の顔の第2の複数の画像を取り込むように構成することができ、深度センサは、第2の複数のカラー画像に対応する第2の深度情報を取り込むようにさらに構成することができる。別の例として、複数のスキャニング装置310は、顔312を複数の視点からスキャンするように構成することができる。複数のスキャニング装置310の各々は、複数の顔の各々の顔部分全体が取り込まれるように複数の視点から第2の複数のカラー画像を取り込むように構成できる高解像度カメラとすることができる。第2の複数のカラー画像は、ユーザ116の顔とは異なる複数の顔の高解像度カラー画像とすることができ、第2の複数のカラー画像の各々は、ユーザ116の顔とは異なる複数の顔の各々の顔部分全体の表現とすることができる。顔312は、ユーザ116の顔と異なることができる。プロセッサ204は、取り込まれた第2の複数のカラー画像及び対応する第2の深度情報に基づいて、複数の顔の(顔312などの)各顔の顔メッシュを生成するように構成することができる。複数の顔の各々の顔メッシュは、複数の顔のうちの対応する顔の顔詳細を表すことができる。複数の顔の各々の顔メッシュは、複数の三角形で構成できる3Dメッシュとすることができる。複数の顔の各顔の顔メッシュは、顔メッシュの複数の三角形の三角形の組を接続できる複数の頂点を含むことができる。複数の顔の各顔の顔メッシュは、互いに位置合わせされるべきである。換言すれば、複数の顔の各顔の生成された顔メッシュは、等しい数の三角形及び頂点を含むべきである。また、第1の顔の第1の顔メッシュ上の第1の位置における頂点、及び第2の顔の第2の顔メッシュ上の対応する位置における対応する頂点は、それぞれ第1の顔メッシュ及び第2の顔メッシュ上の同じ顔の点を表すことができる。
304において、アンラッピング動作が実行される。アンラッピング動作では、プロセッサ204を、複数の顔の各顔の生成された顔メッシュをU-V座標マップ314に対してアンラップ処理するように構成することができる。プロセッサ204は、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャマップ316を生成するように構成することができる。複数の顔テクスチャマップ316の各顔テクスチャマップは、U-V座標マップ314に対して生成することができる。複数の顔テクスチャマップ316の各顔テクスチャマップは、複数の顔のうちの対応する顔の顔テクスチャを表すことができる2D U-V座標マップとすることができる。例えば、第1の顔テクスチャマップ316Aは、顔312の皮膚及び顔特徴(例えば、眼、鼻、唇、耳など)の色及び外観などの顔テクスチャを表すことができる。複数の顔テクスチャマップ316の各顔テクスチャマップは、互いに位置合わせすることができる。
306において、主成分分析(PCA)動作を実行することができる。PCA動作では、プロセッサ204を、複数の顔テクスチャマップ316上でPCAを適用するように構成することができる。PCAは、相関する大規模データ構成要素セットからいくつかの重要な相関しないデータ構成要素を識別及び抽出するために利用できる統計的手順である。具体的には、PCAを利用して、複数の顔テクスチャマップ316からいくつかの重要な相関しない顔構成要素のテクスチャ情報を抽出することができる。プロセッサ204は、複数の顔テクスチャマップ316に基づいて平均顔テクスチャを推定するように構成することができる。平均顔テクスチャは、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャの平均とすることができる。複数の顔の顔テクスチャは、複数の顔テクスチャマップ316によって表すことができる。例えば、「t
1」は第1の顔テクスチャマップ316Aを表すことができ、「t
2」は第2の顔テクスチャマップ316Bを表すことができ、「t3」は第3の顔テクスチャマップ316Cを表すことができる。平均顔テクスチャは、例えば以下のような方程式(1)によって推定することができ、
ここでT’は平均顔テクスチャを表し、
t
nは、複数の顔テクスチャマップ316の第nの顔テクスチャマップを表す。
プロセッサ204は、複数の顔テクスチャマップ316の各顔テクスチャマップの固有ベクトルセット及び固有値セットを計算するようにさらに構成することができる。固有ベクトルセット及び固有値セットは、例えば以下のような方程式(2)及び(3)によって計算することができ、
ここで、
U
tは固有ベクトルを表し、tはテクスチャを表す(すなわち、固有ベクトル及び固有値はテクスチャのためのものである)。これは、各列が1つの固有ベクトルを表す行列であり、
Σは、対角線における各値が1つの固有値を表す対角行列である。
308において、基準顔テクスチャモデルを生成することができる。プロセッサ204は、複数の顔テクスチャマップ316上でのPCAに適用に基づいて基準顔テクスチャモデルを生成するように構成することができる。基準顔テクスチャモデルは、ユーザ116の顔とは異なる複数の顔に対応するPCAモデルとすることができる。
図4に、本開示の実施形態による、単色画像及び深度情報を使用した顔テクスチャマップ生成のための例示的な動作を示す。図4の説明は、図1、図2及び図3の要素に関連して行う。図4には、402~410の動作を使用した顔テクスチャマップの生成を示す処理パイプライン400を示す。
402において、データ取得動作が実行される。データ取得動作では、プロセッサ204を、メモリ206からユーザ116の顔の第1のカラー画像110と、第1のカラー画像110に対応する深度情報112とを検索するように構成することができる。プロセッサ204は、メモリ206からユーザ116の顔のテクスチャリングされていない3D顔モデル114を検索するようにさらに構成することができる。いくつかの実施形態では、第1のカラー画像110、深度情報112及びテクスチャリングされていない3D顔モデル114をサーバ106に記憶することができる。このような場合、プロセッサ204は、通信ネットワーク108を介してサーバ106から第1のカラー画像110、深度情報112及びテクスチャリングされていない3D顔モデル114を検索するように構成することができる。第1のカラー画像、及び第1のカラー画像110に対応する深度情報112は、互いに同時に取り込まれて同じ視野を表すことができるように同期することができる。
404において、第1のテクスチャマッピング動作を実行することができる。第1のテクスチャマッピング動作では、プロセッサ204を、検索された第1のカラー画像110、深度情報112及びテクスチャリングされていない3D顔モデル114に基づいて、ユーザ116の顔の第1のテクスチャマップ404Aを生成するように構成することができる。プロセッサ204は、テクスチャリングされていない3D顔モデル114を使用することによって、第1のカラー画像110上の複数の三角形の各三角形を変換してU-V座標マップ上の対応する三角形にマッピングするように構成することができる。U-V座標マップは、2Dレイアウト上に3Dモデルのテクスチャ情報を示すことができる。第1のテクスチャマップ404Aは、検索された第1のカラー画像110からのテクスチャ(又は色情報)を直接適用することによって生成することができる。第1のテクスチャマップ404Aの生成については、例えば図5でさらに詳細に説明する。生成された第1のテクスチャマップ404Aは、いくつかの隠れた顔領域のテクスチャ情報が第1のカラー画像110内に存在せず又は利用できないいくつかの領域を含むことができる。例えば、隠れた顔領域は、耳の後ろの領域、鼻の周囲の領域、又は首の周囲の側方領域を含むことができる。
406において、第2のテクスチャマッピング動作を実行することができる。第2のテクスチャマッピング動作では、プロセッサ204を、メモリ206から基準顔テクスチャモデル406Aを検索するように構成することができる。基準顔テクスチャモデル406Aは、図3の基準顔テクスチャモデルに対応することができる。プロセッサ204は、ユーザ116の顔の第2のテクスチャマップ406Bを生成するようにさらに構成することができる。プロセッサ204は、生成された第1のテクスチャマップ404A上の複数の第1の有効点上で基準顔テクスチャモデル406Aをテクスチャモデルフィッティングすることによって、第2のテクスチャマップ406Bを生成するようにさらに構成することができる。第1のテクスチャマップ404A上の複数の第1の有効点上での基準顔テクスチャモデル406Aのテクスチャモデルフィッティングについては、例えば図6でさらに詳細に説明する。
408において、第2のテクスチャマップ精細化動作が実行される。第2のテクスチャマップ精細化動作では、プロセッサ204を、第2のテクスチャマップ406Bを精細化するようにさらに構成することができる。プロセッサ204は、第2のテクスチャマップ406Bの目的関数の最小化に基づいて、精細化された第2のテクスチャマップ408Aを生成するように構成することができる。プロセッサ204は、生成された第1のテクスチャマップ404Aからの照明影響の除去にさらに基づいて、精細化された第2のテクスチャマップ408Aを生成するようにさらに構成することができる。第1のテクスチャマップ404A内の照明影響は、第1のカラー画像110内に存在し得る外部光源からの照明影響とすることができる。プロセッサ204は、精細化された第2のテクスチャマップ408Aに取り込まれたテクスチャがユーザ116の顔の実際のテクスチャとほぼ同じであるように、ユーザ116の顔の精細化された第2のテクスチャマップ408Aを生成するように構成することができる。
(テクスチャモデルは複数の顔から抽出されるので、)テクスチャモデルフィッティングに基づく第2のテクスチャマップ406Bの生成は、より一般的なテクスチャの情報を示す。精細化は、精細化された第2のテクスチャマップ408Aに顔のテクスチャが現れることを確実にするために適用される。例えば、ほくろを有する顔もあれば、同じ位置にほくろを有していない顔もある。第2のテクスチャマップ406Bの精細化については、例えば図6でさらに詳細に説明する。
410において、テクスチャマップブレンディング動作が実行される。テクスチャマップブレンディング動作では、プロセッサ204を、第1のテクスチャマップ404Aと精細化された第2のテクスチャマップ408Aとをブレンドするように構成することができる。プロセッサ204は、第1のテクスチャマップ404Aと精細化された第2のテクスチャマップ408Aとのブレンディングに基づいて最終テクスチャマップ410Aを生成するようにさらに構成することができる。プロセッサ204は、ユーザ106の顔の正面顔部分の第1のテクスチャマップ404Aから第1の部分を抽出し、ユーザ116の顔の残りの顔部分の精細化された第2のテクスチャマップ408Aから第2の部分を抽出するように構成することができる。プロセッサ204は、第1のテクスチャマップ404Aの第1の部分と精細化された第2のテクスチャマップ408Aの第2の部分とをブレンドすることによって最終テクスチャマップ410Aを生成するようにさらに構成することができる。最終テクスチャマップ410Aの生成については、例えば図7でさらに詳細に説明する。
図5に、本開示の実施形態による、ユーザの顔の第1のテクスチャマップの生成のための例示的な動作を示す。図5の説明は、図1、図2、図3及び図4の要素に関連して行う。図5には、第1のカラー画像502、テクスチャリングされていない3D顔モデル504、U-V座標マップ506、及び第1のテクスチャマップ508を示す。また、第1のカラー画像502上の第1の三角形504A、テクスチャリングされていない3D顔モデル504上の第2の三角形504A、及びU-V座標マップ506上の第3の三角形506Aも示す。第1のカラー画像502は、(図1に示すような)第1のカラー画像110に対応することができる。テクスチャリングされていない3D顔モデル504は、(図1に示すような)テクスチャリングされていない3D顔モデル114に対応することができる。第1のテクスチャマッピング動作の詳細については、本明細書において説明した。
プロセッサ204は、第1のカラー画像502上の第1の複数の三角形を決定するように構成することができる。第1のカラー画像502上の第1の複数の三角形は、第1の三角形502Aを含むことができる。テクスチャリングされていない3D顔モデル504は、第2の三角形504Aを含む第2の複数の三角形を含むことができる。プロセッサ204は、第1のカラー画像502上の第1の複数の三角形の各三角形を、テクスチャリングされていない3D顔モデル504上の第2の複数の三角形のうちの対応する三角形にマッピングするようにさらに構成することができる。第1のカラー画像502上の第1の複数の三角形は、3D空間内で第1のカラー画像502をテクスチャリングされていない3D顔モデル504上に透視投影することに基づいて、テクスチャリングされていない3D顔モデル504上の対応する第2の複数の三角形にマッピングすることができる。テクスチャリングされていない3D顔モデル504上の第2の複数の三角形のうちの対応する三角形への第1のカラー画像502上の第1の複数の三角形の各々の透視投影は、イメージセンサ104Aの焦点距離、投影中心、及びイメージセンサ104Aとユーザ106との間の距離に基づくことができる。例えば、第1のカラー画像502上の第1の三角形502Aは、この透視投影に基づいて、テクスチャリングされていない3D顔モデル504上の第2の三角形504Aにマッピングすることができる。
プロセッサ204は、テクスチャリングされていない3D顔モデル504の第2の複数の三角形をU-V座標マップ506上でU-V座標マッピングすることによって、U-V座標マップ506上の第3の複数の三角形を決定するようにさらに構成することができる。プロセッサ204は、U-V座標マップ506の各頂点のUV座標に基づいて、テクスチャリングされていない3D顔モデル504の第2の複数の三角形をU-V座標マップ506上でマッピングするようにさらに構成することができる。UV座標は、テクスチャリングされていない3D顔モデル504の複数の頂点のX-Y-Z座標の2D空間での投影を表す。U-V座標マップ506上の決定された第3の複数の三角形は、第3の三角形506Aを含むことができる。
プロセッサ204は、U-V座標マップ506上の第3の複数の三角形と、第1のカラー画像502上の第1の複数の三角形との間の対応を推定するようにさらに構成することができる。プロセッサ204は、U-V座標マップ506上の第3の複数の三角形の各三角形と、第1のカラー画像502上の第1の複数の三角形のうちの対応する三角形との間のアフィン変換を計算するようにさらに構成することができる。U-V座標マップ506上の第3の複数の三角形の各三角形と、第1のカラー画像502上の第1の複数の三角形のうちの対応する三角形との間のアフィン変換は、例えば以下のような方程式(4)を使用することによって計算することができ、
ここでR及びTはアフィン変換を表し、
(a
i,b
i)は、U-V座標マップ506上の頂点の座標を表し、
(x
i,y
i)は、第1のカラー画像502上の頂点の座標を表す。
一例として、プロセッサ204は、U-V座標マップ506上の第3の三角形506Aと、第1のカラー画像502上の第1の三角形502Aとの間のアフィン変換を計算するように構成することができる。第1の三角形502Aは、頂点(a1,b1)、(a2,b2)及び(a3,b3)によって表すことができる。第3の三角形506Aは、頂点(x1,y1)、(x2,y2)及び(x3,y3)によって表すことができる。計算されたアフィン変換は、U-V座標マップ506上の第3の三角形506Aの各頂点に適用することができる。プロセッサ204は、第1のカラー画像502上の第1の複数の三角形の各三角形からの色情報を、U-V座標マップ506上の対応する三角形に補間するようにさらに構成することができる。例えば、プロセッサ204は、第1の三角形502Aからの色情報を、対応する第3の三角形506Aに補間するように構成することができる。
プロセッサ204は、計算されたアフィン変換、及び第1のカラー画像502上の第1の複数の三角形のうちの対応する三角形からの色情報の補間に基づいて、U-V座標マップ506上の第3の複数の三角形の各三角形にテクスチャを適用するようにさらに構成することができる。例えば、プロセッサ204は、第3の三角形506Aと第1の三角形502Aとの間の計算されたアフィン変換に基づいて、第3の三角形506Aにテクスチャを適用するように構成することができる。プロセッサ204は、U-V座標マップ506上の第3の三角形506Aに対する第1のカラー画像502上の第1の三角形502Aの色情報の補間にさらに基づいて、第3の三角形506Aにテクスチャを適用するように構成することができる。同様に、プロセッサ204は、U-V座標マップ506上の第3の複数の三角形の各三角形に対するテクスチャの適用に基づいて、第1のテクスチャマップ508に対応するテクスチャリングされたU-V座標マップを決定するようにさらに構成することができる。
ユーザ116の顔の第1のテクスチャマップ508を利用して、ユーザ116の顔の3D顔モデルのテクスチャを決定することができる。しかしながら、第1のカラー画像502は、ユーザ116の顔の正面像しか示さない場合があるので、第1のテクスチャマップ508は、ユーザ116の顔の全体的顔テクスチャを表さない場合がある。顔のいくつかの隠れた領域のテクスチャは、第1のカラー画像502に取り込まれないことがあり、従って第1のテクスチャマップ508内に存在しないこともある。例えば、第1のテクスチャマップ508は、ユーザ116の顔の隠れた領域の失われたテクスチャを示す(パターンで示す)いくつかの領域を含むことができる。
図6に、本開示の実施形態による、精細化された第2のテクスチャマップの生成のための例示的な動作を示す。図6の説明は、図1、図2、図3、図4及び図5の要素に関連して行う。図6には、602~608の動作を使用した精細化された第2のテクスチャマップの生成を示す処理パイプライン600を示す。
602において、照明方向の推定のための動作が実行される。この動作では、プロセッサ204を、第1のテクスチャマップ508などの第1のテクスチャマップ上の複数の第1の有効点の照明方向を繰り返し推定するように構成することができる。推定される照明方向は、第1のテクスチャマップ上の複数の第1の有効点の照明方向とすることができる。複数の第1の有効点の各有効点は、対応する三角形がテクスチャリングされていない3D顔モデル114上に存在する可能性がある第1のテクスチャマップ508上の点とすることができる。また、複数の第1の有効点の各有効点は、対応する点を第1のカラー画像110から観察できる第1のテクスチャマップ508上の点とすることもできる。
なお、対応する三角形が第1のカラー画像110から観察されない場合もある。第1のテクスチャマップ508及び第2のテクスチャマップ(例えば、図6の第2のテクスチャマップ606A)は、テクスチャリングされていない3D顔モデル114上に対応を有する同じ点及び三角形の組のテクスチャを表すことができる。第1のテクスチャマップ508上の複数の第1の有効点は、テクスチャリングされていない3D顔モデル114上の頂点、及び第1のカラー画像110上の観察される領域にマッピングすることができる。観察されない領域では、第1のテクスチャマップ508上の情報が有効でない場合がある。
プロセッサ204は、反射率モデル、第1のテクスチャマップ508及びテクスチャリングされていない3D顔モデル114に基づいて、第1のテクスチャマップ508上の複数の第1の有効点の照明方向を推定するように構成することができる。反射率モデルは、表面上の点の照明の経験的モデルとすることができる。反射率モデルの例は、フォンの反射率モデル(Phong reflectance model)とすることができる。反射率モデルは、表面(例えば、ユーザ116の顔)が周囲光、拡散光及び正反射率の組み合わせとして光を反射できる方向を示すことができる。反射率モデルは、周囲光及び拡散光の各々の照明強度と、照明方向と、正反射率との間の関係を含むことができる。反射率モデルは、例えば以下のような方程式(5)、方程式(6)、方程式(7)及び方程式(8)を使用して表すことができ、
ここで、
I
aは、複数の点の赤色-緑色-青色(RGB)チャネルでの周囲光の照明強度を表し、
I
dは、複数の点のRGBチャネルでの拡散光の照明強度を表し、
I(w)は、ユーザ116の顔のレンダリングされたテクスチャを表し、
nは、テクスチャI(w)の点の数を表し、
ρは、複数の点の各々のアルベド値(albedo value)を表し、
dは、照明方向を表し、
Nは、複数の点の各点の法線を表し、
eは、複数の点の各点の正反射率を表し、
*は、要素による積を表す。
第1の複数の有効点の各有効点における法線は、そのテクスチャリングされていない3D顔モデル114上の対応する三角形の法線とすることができる。プロセッサ204は、第1のカラー画像110から複数の第1の有効点の照明方向を繰り返し推定するようにさらに構成することができる。第1の反復では、正反射率及び周囲光を考慮せずに照明方向を推定することができる。第1の反復では、基準顔テクスチャモデル406Aの平均顔テクスチャが、複数の第1の有効点の各々のアルベド値「ρ」とみなされる。さらに、第1の反復では、(「l
d」としても表される)拡散光の赤色チャネル、緑色チャネル及び青色チャネルの照明強度が「1」などの同じ値を有するものとみなすことができる。第1の反復における照明方向は、例えば以下のような方程式(9)によって示される目的関数などの第1の目的関数の最小化に基づいて推定することができ、
ここでI
refは、第1のカラー画像110の基準色情報(例えば、RGB情報)を表し、
A=[L
d
*ρ,L
d
*ρ,L
d
*ρ]∈R
3n×3であり、行列の連結を表す。「A」は、他の反復にも使用することができる。各列では、「A」が、拡散光の3つのチャネルの強度を全ての頂点についてアルベドの3つチャネル(3n)に増殖させた結果を記憶する。そして、「A」は、このような列を3回だけ複製する。
第1の反復では、方程式(9)によって示すような第1の目的関数を再フォーマットして、以下のような方程式(10)によって表すことができ、
ここではL
d=[1,1,1]の時にB=[ρ,ρ,ρ]であり、
Nは、複数の第1の有効点の各有効点の法線を表し、
N3は、Nの各行を3回複製し、
d=((B
*N
3)T(B
*N
3))
-1(B
*N
3)
TI
refであり、複数の第1の有効点の照明方向を表す。
プロセッサ204は、方程式(9)によって表される第1の目的関数を最小化しながら第1の制約を適用するようにさらに構成することができる。第1の制約は、光の方向が顔の外側から顔の表面に向かうと考えることができる。第1の制約は、「N3
*d>0」によって表すことができる。プロセッサ204は、方程式(9)によって表される第1の目的関数を最小化しながら第2の制約を適用するようにさらに構成することができる。第2の制約は、照明強度が正又は「0」よりも大きいと考えることができる。第2の制約は、「la>0」によって表すことができる。方程式(10)によって表される再フォーマットされた第1の目的関数では、第2の制約を「la=0」として表すことができる。
その後の反復では、プロセッサ204を、第2の目的関数の最小化に基づいて照明方向を推定するようにさらに構成することができる。例えば、第2の目的関数は、以下のような方程式(11)によって表すことができる。
その後の反復におけるl
a、l
d、ρ、d及びeの値は、以前の反復から考察される。例えば以下のような方程式(12)によって、第2の目的関数の閉形式解(closed form solution)を与えることができ、
ここでdは、特定の反復についての第1のカラー画像からの複数の第1の有効点の照明方向を表す。
プロセッサ204は、推定された照明方向に基づいて複数の第1の有効点の各有効点の正反射率を推定するようにさらに構成することができる。正反射率は、ユーザ116の顔の表面上の複数の第1の有効点からの複数の光波の鏡面反射とすることができる。正反射率は、例えば以下のような方程式(13)を使用することによって推定することができ、
ここでe
iは、有効点「i」における正反射率を表し、
k
sは、正反射率の定数であり、
v
iは、有効点「i」の観察方向を表し、
yは、第1のカラー画像110内の顔表面の輝かしさ(shininess)の定数を表し、
(,)は、内積を表し、
r
i=2〈n
i,d〉n
i-dであり、有効点「i」の反射方向を表し、
dは、有効点「i」の推定される照明方向を表し、
niは、有効点「i」の法線を表す。ks及びγは、顔の皮膚反射特性によって決定され、異なる人々について同様である。これらは、顔領域全体にわたって一定であると仮定される。発明者らは、単純化のために3つの色チャネルについてks及びyが同じものであると仮定する。
604において、照明強度を推定する動作が実行される。この動作では、プロセッサ204を、複数の第1の有効点の周囲光及び拡散光の照明強度を推定するようにさらに構成することができる。複数の有効点の周囲光及び拡散光の各々の照明強度は、少なくとも各反復で推定された照明方向に基づいて推定することができる。プロセッサ204は、周囲光及び拡散光の各々の複数の色チャネルの照明強度を推定するようにさらに構成することができる。照明強度は、第1のテクスチャマップ508上の複数の第1の有効点の各有効点が反射できる光の強度とすることができる。例えば、複数の第1の有効点の各有効点の周囲光及び拡散光の各々の赤色チャネルの照明強度は、第1の目的関数の最小化に基づいて推定することができる。第1の目的関数は、例えば以下のような方程式(14)を使用することによって表すことができ、
ここでI
ref,rは、第1のカラー画像110の赤色チャネルの基準色情報を表し、
C=[ρ
r,ρ
r*(N
d)+e
r]∈R
n×2であり、特定の意味を含まない式を単純化するための行列の連結を表し、
p
rは、複数の第1の有効点の各々のアルベド(ρ)の赤色チャネルを表し、
e
rは、複数の第1の有効点の各々の正反射率(e)の赤色チャネルを表し、
は、周囲光及び拡散光の各々の赤色チャネルの照明強度である。例えば以下のような方程式(15)によって、第1の目的関数の閉形式解を与えることができる。
プロセッサ204は、複数の第1の有効点の周囲光及び拡散光の各々の緑色チャネル及び青色チャネルの照明強度を推定するようにさらに構成することができる。例えば、緑色チャネルの照明強度は、第2の目的関数の最小化に基づいて推定することができる。第2の目的関数は、例えば以下のような方程式(16)を使用することによって表すことができ、
ここでI
ref,gは、第1のカラー画像110の緑色チャネルの基準色情報を表し、
C=[ρ
g,ρ
g*(N
d)+e
g]∈R
n×2であり、行列の連結を表し、
ρ
gは、複数の第1の有効点の各々のアルベド(p)の緑色チャネルを表し、
e
gは、複数の第1の有効点の各々の正反射率(e)の緑色チャネルを表し、
は、周囲光及び拡散光の各々の緑色チャネルの照明強度である。例えば以下のような方程式(17)によって、第2の目的関数の閉形式解を与えることができる。
一例として、複数の第1の有効点の各有効点の周囲光及び拡散光の各々の青色チャネルの照明強度は、第3の目的関数の最小化に基づいて推定することができる。第3の目的関数は、例えば以下のような方程式(18)によって表すことができ、
ここでI
ref,bは、第1のカラー画像110の青色チャネルの基準色情報を表し、
C=[ρ
b,ρ
b*(N
d)+e
b]∈R
n×2であり、行列の連結を表し、
ρ
bは、複数の第1の有効点の各々のアルベド(p)の青色チャネルを表し、
e
bは、複数の第1の有効点の各々の正反射率(e)の青色チャネルを表し、
は、周囲光及び拡散光の各々の青色チャネルの照明強度である。例えば以下のような方程式(19)によって、第3の目的関数の閉形式解を与えることができる。
606において、テクスチャモデルフィッティング動作が実行される。この動作では、プロセッサ204を、第1のテクスチャマップ508上の複数の点のアルベド値の組を推定するようにさらに構成することができる。アルベド値の組は、基準顔テクスチャモデル406A、周囲光及び拡散光の各々の推定される照明強度、照明方向、並びに正反射率に基づいて推定することができる。推定されるアルベド値の組は、ユーザ116の顔のリアルな顔テクスチャに対応できる再構築されたアルベド値の組とすることができる。アルベド値の組は、基準顔テクスチャモデル406A及び第1のテクスチャマップ508から再構築することができる。基準顔テクスチャモデル406Aは、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャマップ上でのPCAの適用によって抽出される複数の固有ベクトルと固有値との組み合わせとすることができる。アルベド値の組は、例えば以下のような方程式(20)を使用することによって推定することができ、
ここでρは、有効点のアルベド値を表し、
は、複数の顔の複数の顔テクスチャマップの平均顔テクスチャを表し、
U
Tは、正規直交基底を表し、
Σ
Tは、複数の顔の複数の顔テクスチャマップの固有値を表し、
βは、基準顔テクスチャモデル406Aを生成するために利用される複数の顔の複数の顔テクスチャマップ上でのPCAの適用によって抽出された固有ベクトルの係数を表す。
プロセッサ204は、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャマップ上でのPCAの適用によって抽出された複数の固有ベクトルの各々の係数を推定するようにさらに構成することができる。複数の顔テクスチャマップの各々の係数は、推定される照明方向、推定される照明強度及び正反射率に基づいて推定することができる。複数の顔テクスチャマップ上でのPCAの適用によって抽出される複数の固有ベクトルの各々の係数は、目的関数の最小化に基づいて推定することができる。目的関数は、例えば以下のように与えられる方程式(21)によって表すことができ、
ここでTは、目標テクスチャを表し、
λは、固有ベクトルに関連する重みのパラメータを表し、
σ
tは、(複数の顔テクスチャマップ上のPCAからの)Σ
Tの対角線の値であるPCAモデルの固有値を表す。例えば以下のような方程式(22)によって、目的関数の閉形式解を与えることができ、
ここでa’=(I
ref-I
d
*e)/(l
a+l
d
*(N
3d))であり、
である。
プロセッサ204は、決定されたアルベド値の組に基づいて第2のテクスチャマップ606Aを生成するようにさらに構成することができる。生成される第2のテクスチャマップ606Aは、決定されたアルベド値の組を含むことができる。生成される第2のテクスチャマップ606Aは、第1のテクスチャマップ508内にテクスチャが存在せず又は不正確に表される場合がある複数の隠れた領域の再構築テクスチャを含むことができる。
608において、第2のテクスチャマップ606Aの精細化のための動作が実行される。この動作では、プロセッサ204を、生成された第1のテクスチャマップ508上の複数の第1の有効点からの照明影響の除去に基づいて、生成された第2のテクスチャマップ606Aを精細化するようにさらに構成することができる。第1のテクスチャマップ508は、第1のカラー画像502に基づいて生成されるので、第1のカラー画像502内に存在し得るいくつかの外部光源からの照明影響を含むことができる。プロセッサ204は、第1のテクスチャマップ508から照明影響を除去し、第1のテクスチャマップを基準として利用して第2のテクスチャマップ606Aを精細化するようにさらに構成することができる。プロセッサ204は、照明影響のない第1のテクスチャマップ508に基づいて第2のテクスチャマップ606Aを精細化して、ユーザ116の顔のリアルなアルベド値と同一又はほぼ同一の第2のテクスチャマップ606Aのアルベド値を再構築するようにさらに構成することができる。第1のテクスチャマップ508上の複数の第1の有効点の各々からの照明影響は、例えば以下のように与えられる方程式(23)を使用することによって除去することができ、
ここでa’は、照明影響を除去した後の第1のテクスチャマップ508上の複数の第1の有効点のテクスチャを表す。
精細化(すなわち、608)の目的は、例えばほくろ又はその他のいくつかの特定の外観的特徴に対処するために、顔のリアルなアルベドに近いアルベドのための第2のテクスチャマップ606Aを作成することである。a’は、方程式(23)から、608における精細化の基準として推定することができる。照明影響の除去は、基準の照明影響を除去して第2のテクスチャマップ606Aが基準に近くなることを確実にするために実行することができる。
プロセッサ204は、第2のテクスチャマップ606A上の複数の点のオフセット項を計算するようにさらに構成することができる。オフセット項は、第1のテクスチャマップ508上の複数の点と第2のテクスチャマップ606A上の複数の点との間の第1の複数の対応についての第1の関係に基づいて計算することができる。オフセット項は、例えば以下のように与えられる方程式(24)を使用することによって計算することができ、
ここでΔt
iは、第2のテクスチャマップ606A上の点「i」と、精細化された第2のテクスチャマップ上の対応する点との客観的なアルベドの差分(objective difference of an albedo)を表し、
a’
iは、照明影響を除去した後の第1のテクスチャマップ508上の点「i」のテクスチャを表し、
ρ
iは、第2のテクスチャマップ606A上の点「i」のアルベドを表し、
nは、点の数を表す。
プロセッサ204は、第2のテクスチャマップ606A上の複数の点の平滑化項を計算するようにさらに構成することができる。平滑化項は、第2のテクスチャマップ606A上の複数の点のうちの隣接する点間の第2の複数の対応についての第2の関係に基づいて計算することができる。平滑化項は、例えば以下のように与えられる方程式(25)を使用することによって計算することができ、
ここで、
Δt
i は、第2のテクスチャマップ606A上の点「i」と、精細化された第2のテクスチャマップ上の対応する点との客観的なアルベドの差分を表し、
Δt
j は、第2のテクスチャマップ606A上の有効点「j」と、精細化された第2のテクスチャマップ上の対応する有効点との客観的なアルベドの差分を表し、
wは、重みのためのパラメータを表し、
i,j∈Nは、有効点「i」と有効点「j」とが隣接していることを表す。
プロセッサ204は、オフセット項と平滑化項との組み合わせである目的関数の最小化に基づいて、精細化された第2のテクスチャマップ610を生成するようにさらに構成することができる。精細化された第2のテクスチャマップ610は、以下のような方程式(26)によって与えられる目的関数によって生成することができ、
ここでNは、第2のテクスチャマップ606A上の点の数を表す。
精細化された第2のテクスチャマップ610は、テクスチャが第1のテクスチャマップ508内に存在しなかった又は不正確に表されていたユーザ116の顔の複数の隠れた領域の精細化されたテクスチャを含むことができる。プロセッサ204は、精細化された第2のテクスチャマップ610に第1のテクスチャマップ508の照明影響を追加するようにさらに構成することができる。第1のテクスチャマップ508の照明影響を含む精細化された第2のテクスチャマップ610は、第1のカラー画像110に取り込むことができるユーザ116の顔の実際のテクスチャを表すことができる。
図7に、本開示の実施形態による、ユーザの顔の最終テクスチャマップの生成のための例示的な動作を示す。図7の説明は、図1、図2、図3、図4、図5及び図6の要素に関連して行う。図7には、ユーザ116の顔の最終テクスチャマップの生成のための処理パイプライン700を示す。さらに、第1のテクスチャマップ704A、第1のマスク704B、精細化された第2のテクスチャマップ706A、第2のマスク706B、及び最終テクスチャマップ708も示す。第1のテクスチャマップ704Aは、図5の第1のテクスチャマップ508に対応することができる。精細化された第2のテクスチャマップ706Aは、図6の精細化された第2のテクスチャマップ610に対応することができる。(図4に示す)テクスチャマップブレンディング動作の詳細については、本明細書でさらに提示している。
プロセッサ204は、第1のテクスチャマップ704A上での第1のマスク704Bの適用に基づいて、第1のテクスチャマップ704Aの第1の部分を抽出するように構成することができる。第1の部分は、ユーザ116の顔の眼、鼻及び唇などの正面顔部分に対応することができる。第1のテクスチャマップ704Aは、第1のカラー画像110に基づいて生成されるので、ユーザ116の顔の正面顔部分の正確又はほぼ正確なテクスチャを表すことができる。プロセッサ204は、ユーザ116の顔の眼、鼻及び唇などの正面顔部分のテクスチャのための第1のテクスチャマップ704Aの第1の部分を抽出するようにさらに構成することができる。プロセッサ204は、精細化された第2のテクスチャマップ706A上での第2のマスク706Bの適用に基づいて、精細化された第2のテクスチャマップ706Aの第2の部分を抽出するようにさらに構成することができる。第2の部分は、ユーザ116の顔の残りの顔部分に対応することができる。残りの顔部分のテクスチャは、第1のカラー画像110における耳及び首などの残りの顔部分のオクルージョンに起因して、第1のテクスチャマップ704A内に存在せず又は不正確に表される場合がある。精細化された第2のテクスチャマップ706Aは、ユーザ116の顔の残り部分の再構築されたテクスチャを含むことができる。プロセッサ204は、耳及び首などの残りの顔部分のテクスチャのための精細化された第2のテクスチャマップ706Aの第2の部分を抽出するようにさらに構成することができる。
プロセッサ204は、第1のマスク704B及び第2のマスク706Bに重みを割り当てて最終テクスチャマップ704を生成するようにさらに構成することができる。最終テクスチャマップ708は、例えば以下のように与えられる方程式(27)を使用することによって生成することができ、
ここでM(i)は、最終テクスチャマップ708上のピクセル「i」のテクスチャの値を表し、
T
1は、第1のテクスチャマップ704Aのテクスチャを表し、
T
2は、精細化された第2のテクスチャマップ706Aのテクスチャを表し、
w
iは、割り当てられた重みを表す。一例として、第1のテクスチャマップ704Aの第1の部分を抽出すべき時には、w
iの値を「1」に設定することができる。同様に、精細化された第2のテクスチャマップ706Aの第2の部分を抽出すべき時には、w
iの値を「0」に設定することができる。w
iの値は、正面顔部分と残りの顔部分との境界とすることができる顔の領域について徐々に変化することができる。生成された最終テクスチャマップ708は、ユーザ116の顔の実際のテクスチャを表すことができ、或いはユーザ116の顔の実際のテクスチャをほぼ表すことができる。
図8に、本開示の実施形態による、単色画像及び深度情報を使用した顔テクスチャマップ生成のための例示的な方法を示すフローチャートを示す。図8の説明は、図1、図2、図3、図4、図5、図6及び図7からの要素に関連して行う。図8にはフローチャート800を示す。フローチャート800の動作は、電子装置102において実行することができる。動作は802から開始して804に進むことができる。
804において、ユーザ116の顔のテクスチャリングされていない3D顔モデル114、第1のカラー画像110及び対応する深度情報112に基づいて、ユーザ116の顔の第1のテクスチャマップ508を生成することができる。プロセッサ204は、第1のカラー画像110上の第1の複数の三角形の各々を、テクスチャリングされていない3D顔モデル114上の第2の複数の三角形のうちの対応する三角形にマッピングすることに基づいて、第1のテクスチャマップ508を生成するように構成することができる。プロセッサ204は、(U-V座標マップ506などの)U-V座標マップ上の第3の複数の三角形と、第1のカラー画像110上の第1の複数の三角形との間のアフィン変換を計算するようにさらに構成することができる。プロセッサ204は、U-V座標マップ506の第3の複数の三角形の各々におけるテクスチャの適用によって第1のテクスチャマップ508を生成するようにさらに構成することができる。テクスチャは、計算されたアフィン変換と、第1のカラー画像110の第1の複数の三角形の各々の色情報の補間とに基づいて、第3の複数の三角形の各々に適用することができる。第1のテクスチャマップ508の生成については、例えば図5で説明した。
806において、生成された第1のテクスチャマップ508上の複数の第1の有効点上で基準顔テクスチャモデル406Aをテクスチャモデルフィッティングすることによって、ユーザ116の顔の第2のテクスチャマップ606Aを生成することができる。複数の第1の有効点は、第1のカラー画像110内で観察される顔に属する点に対応することができる。プロセッサ204は、生成された第1のテクスチャマップ508上の複数の第1の有効点上で基準顔テクスチャモデル406Aをテクスチャモデルフィッティングすることによって、ユーザ116の顔の第2のテクスチャマップ606Aを生成するように構成することができる。第2のテクスチャマップ606Aの生成については、例えば図6で説明した。
808において、生成された第2のテクスチャマップ606Aの目的関数の最小化に基づいて、生成された第2のテクスチャマップ606Aを精細化することができる。プロセッサ204は、第2のテクスチャマップ606Aの目的関数の最小化に基づいて、第2のテクスチャマップ606Aを精細化するようにさらに構成することができる。プロセッサ204は、生成された第1のテクスチャマップ508からの照明影響の除去に基づいて、第2のテクスチャマップ606Aを精細化するようにさらに構成することができる。精細化された第2のテクスチャマップ610の生成については、例えば図6で説明した。プロセッサ204は、精細化された第2のテクスチャマップ610に再び第1のテクスチャマップ508の照明影響を追加するようにさらに構成することができる。
810において、生成された第1のテクスチャマップ508及び精細化された第2のテクスチャマップ610に基づいて、ユーザ116の顔の最終テクスチャマップ708を生成することができる。プロセッサ204は、生成された第1のテクスチャマップ508及び精細化された第2のテクスチャマップ610に基づいて、最終テクスチャマップ708を生成するように構成することができる。プロセッサ204は、ユーザ116の顔の第1のマスク704Bに基づいて、第1のテクスチャマップ508の第1の部分を抽出するようにさらに構成することができる。プロセッサ204は、ユーザ116の顔の第2のマスク706Bに基づいて、精細化された第2のテクスチャマップ610の第2の部分を抽出するようにさらに構成することができる。最終テクスチャマップ708は、ユーザ116の顔の実際のテクスチャと同一又はほぼ同一とすることができるテクスチャマップを表すことができる。ユーザ116の顔の最終テクスチャマップ708の生成については、例えば図7で説明した。制御は終了に進むことができる。
本開示の様々な実施形態は、単色画像及び深度情報を使用した顔テクスチャマップ生成のための電子装置などの機械及び/又はコンピュータが実行できる命令を記憶した非一時的コンピュータ可読媒体及び/又は記憶媒体、及び/又は非一時的機械可読媒体及び/又は記憶媒体を提供することができる。少なくとも1つのコードセクションが、ユーザの顔の第1のカラー画像及び対応する深度情報、ユーザの顔のテクスチャリングされていない3次元(3D)顔モデル及び基準顔テクスチャモデルの記憶を含む動作を機械及び/又はコンピュータに実行させることができる。基準顔テクスチャモデルは、ユーザの顔とは異なる複数の顔の複数の顔テクスチャマップの主成分分析(PCA)モデルとすることができる。これらの動作は、ユーザの顔のテクスチャリングされていない3D顔モデル、第1のカラー画像及び対応する深度情報に基づいてユーザの顔の第1のテクスチャマップを生成することをさらに含む。これらの動作は、生成された第1のテクスチャマップ上の複数の第1の有効点上で基準顔テクスチャモデルをテクスチャモデルフィッティングすることによってユーザの顔の第2のテクスチャマップを生成することをさらに含む。複数の第1の有効点は、第1のカラー画像内で観察されるユーザの顔に属する点に対応する。これらの動作は、生成された第2のテクスチャマップの目的関数の最小化に基づいて、生成された第2のテクスチャマップを精細化することをさらに含む。これらの動作は、生成された第1のテクスチャマップ及び精細化された第2のテクスチャマップに基づいて、ユーザの顔の最終テクスチャマップを生成することをさらに含む。
本開示の例示的な態様は、回路202及びメモリ206を含む電子装置102を含むことができる。メモリ206は、ユーザ116の顔の第1の色情報110及び対応する深度情報112、ユーザ116の顔のテクスチャリングされていない3次元(3D)顔モデル114、及び基準顔テクスチャモデルを記憶するように構成することができる。基準顔テクスチャモデルは、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャマップの主成分分析(PCA)モデルとすることができる。回路202は、ユーザ116の顔のテクスチャリングされていない3D顔モデル114、第1のカラー画像110及び対応する深度情報112に基づいて、ユーザ116の顔の第1のテクスチャマップ508を生成するように構成することができる。回路202は、生成された第1のテクスチャマップ508上の複数の第1の有効点上で基準顔テクスチャモデルをテクスチャモデルフィッティングすることによって、ユーザ116の顔の第2のテクスチャマップ606Aを生成するようにさらに構成することができる。複数の第1の有効点は、第1のカラー画像110内のユーザ116の顔に属する点に対応することができる。回路202は、生成された第2のテクスチャマップ606Aの目的関数の最小化に基づいて、生成された第2のテクスチャマップ606Aを精細化するようにさらに構成することができる。回路202は、生成された第1のテクスチャマップ508及び精細化された第2のテクスチャマップ610に基づいて、ユーザ116の顔の最終テクスチャマップ708を生成するようにさらに構成することができる。
ある実施形態によれば、テクスチャリングされていない3D顔モデル114は、ユーザ116の顔の形状改善された3D顔モデルとすることができる。PCAモデルは、ユーザの顔とは異なる複数の顔の複数の顔テクスチャマップ上でのPCAの適用によって抽出される固有ベクトルと固有値との組み合わせに対応することができる。電子装置102は、ユーザ116の顔の第1の複数のカラー画像と、第1の複数のカラー画像に対応する第1の深度情報とを取り込むように構成されたスキャニング装置104をさらに含むことができる。第1の複数のカラー画像及び対応する第1の深度情報は、第1のカラー画像110及び対応する深度情報112を含む。回路202は、取り込まれた第1の複数のカラー画像及び対応する第1の深度情報に基づいて、ユーザ116の顔のテクスチャリングされていない3D顔モデル114を生成するようにさらに構成することができる。
ある実施形態によれば、スキャニング装置104は、ユーザ116の顔とは異なる複数の顔の第2の複数のカラー画像及び対応する第2の深度情報を取り込むようにさらに構成することができる。取り込まれる複数の顔の第2の複数のカラー画像は、一般的周囲照明条件下で取り込まれる。回路202は、取り込まれた第2の複数のカラー画像に基づいて、互いに位置合わせされた複数の顔の各々の顔メッシュを生成するようにさらに構成することができる。回路202は、U-V座標マップ上の複数の顔のうちの対応する顔の生成された顔メッシュのアンラップ処理に基づいて、複数の顔のうちの対応する顔の複数の顔テクスチャマップの各顔テクスチャマップを生成するようにさらに構成することができる。回路202は、ユーザ116の顔とは異なる複数の顔の複数の顔テクスチャマップ上での主成分分析(PCA)の適用によって、基準顔テクスチャモデルを生成するようにさらに構成することができる。
ある実施形態によれば、回路202は、第1のカラー画像110上の第1の複数の三角形を決定するようにさらに構成することができる。回路202は、第1のカラー画像110上の第1の複数の三角形の各三角形を、テクスチャリングされていない3D顔モデル114上の第2の複数の三角形のうちの対応する三角形にマッピングするようにさらに構成することができる。このマッピングは、3D空間内でテクスチャリングされていない3D顔モデル114上に第1のカラー画像110を透視投影することに基づくことができる。回路202は、U-V座標マップ506上で第2の複数の三角形をU-V座標マッピングすることによって、U-V座標マップ506上の第3の複数の三角形を決定するようにさらに構成することができる。回路202は、U-V座標マップ506上の第3の複数の三角形と、第1のカラー画像110上の第1の複数の三角形との間のアフィン変換を計算するようにさらに構成することができる。回路202は、第3の複数の三角形の各三角形にテクスチャを適用することによって、テクスチャリングされたU-V座標マップを決定するようにさらに構成することができる。各三角形に対するテクスチャの適用は、計算されたアフィン変換に基づくことができ、テクスチャリングされたU-V座標マップは、第1のテクスチャマップ508とすることができる。U-V座標マップ506上の第3の複数の三角形の各三角形に対するテクスチャの適用は、第1のカラー画像110上の第1の複数の三角形のうちの対応する三角形からの色情報の補間にさらに基づくことができる。
ある実施形態によれば、回路202は、第1のテクスチャマップ508の周囲光及び拡散光の各々の照明強度、照明方向及び正反射率を繰り返し推定するようにさらに構成することができる。第1のテクスチャマップ508の周囲光及び拡散光の照明強度、照明方向、及び正反射率は、反射率モデル、第1のテクスチャマップ508、及びテクスチャリングされていない3D顔モデル114に基づいて推定することができる。反射率モデルは、周囲光及び拡散光の各々の照明強度と、照明方向と、正反射率との間の関係を含むことができる。回路202は、基準顔テクスチャモデル、推定された周囲光及び拡散光の各々の照明強度、照明方向及び正反射率に基づいて、第1のテクスチャマップ508上の複数の点のアルベド値の組を推定するようにさらに構成することができる。生成された第1のテクスチャマップ508上の複数の第1の有効点の各有効点は、テクスチャリングされていない3D顔モデル114上の対応する位置において三角形が観察される点とすることができる。
ある実施形態によれば、回路202は、第1のテクスチャマップ508上の複数の点と第2のテクスチャマップ606A上の複数の点との間の第1の複数の対応についての第1の関係に基づいて、第2のテクスチャマップ606A上の複数の点のオフセット項を計算するようにさらに構成することができる。回路202は、第2のテクスチャマップ606A上の複数の点の隣接する点間の第2の複数の対応についての第2の関係に基づいて、第2のテクスチャマップ606A上の複数の点の平滑化項を計算するようにさらに構成することができる。回路202は、計算されたオフセット項及び計算された平滑化項に基づいて、目的関数を最小化するようにさらに構成することができる。回路202は、生成された第1のテクスチャマップ508からの照明影響の除去にさらに基づいて、第2のテクスチャマップ606Aを精細化するようにさらに構成することができる。回路202は、精細化された第2のテクスチャマップに第1のテクスチャマップの照明影響を追加するようにさらに構成することができる。
ある実施形態によれば、回路202は、ユーザ116の顔の第1のマスク704Bに基づいて、第1のテクスチャマップ508の第1の部分を抽出するようにさらに構成することができる。回路202は、ユーザ116の顔の第2のマスク706Bに基づいて、精細化された第2の顔テクスチャマップ610の第2の部分を抽出するようにさらに構成することができる。回路202は、抽出された第1の部分と抽出された第2の部分との組み合わせに基づいて、最終テクスチャマップ708を生成するようにさらに構成することができる。第1の部分は、ユーザ116の顔の正面顔部分に対応することができ、第2の部分は、ユーザ116の顔の残りの顔部分に対応することができる。回路202は、テクスチャリングされていない3D顔モデル114上に生成された最終テクスチャマップ708をレンダリングすることによって、ユーザ116の顔のテクスチャリングされた3D顔モデルを生成するようにさらに構成することができる。
本開示は、ハードウェアで実現することも、又はハードウェアとソフトウェアの組み合わせで実現することもできる。本開示は、少なくとも1つのコンピュータシステム内で集中方式で実現することも、又は異なる要素を複数の相互接続されたコンピュータシステムにわたって分散できる分散方式で実現することもできる。本明細書で説明した方法を実行するように適合されたコンピュータシステム又はその他の装置が適することができる。ハードウェアとソフトウェアとの組み合わせは、ロードされて実行された時に本明細書で説明した方法を実行するようにコンピュータシステムを制御することができるコンピュータプログラムを含む汎用コンピュータシステムとすることができる。本開示は、他の機能も実行する集積回路の一部を含むハードウェアで実現することができる。
本開示は、本明細書で説明した方法の実装を可能にする全ての特徴を含み、コンピュータシステムにロードされた時にこれらの方法を実行できるコンピュータプログラム製品に組み込むこともできる。本文脈におけるコンピュータプログラムは、情報処理能力を有するシステムに特定の機能を直接的に、或いはa)別の言語、コード又は表記法への変換、b)異なる内容形態での複製、のいずれか又は両方を行った後に実行させるように意図された命令セットの、いずれかの言語、コード又は表記法におけるいずれかの表現を意味する。
いくつかの実施形態を参照しながら本開示を説明したが、当業者であれば、本開示の範囲から逸脱することなく様々な変更を行うことができ、同等物を代用することもできると理解するであろう。また、本開示の範囲から逸脱することなく、特定の状況又は内容を本開示の教示に適合させるように多くの修正を行うこともできる。従って、本開示は、開示した特定の実施形態に限定されるものではなく、添付の特許請求の範囲内に収まる全ての実施形態を含むように意図される。