(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-20
(45)【発行日】2025-01-28
(54)【発明の名称】自動立体テレプレゼンスシステムのための3次元(3D)顔特徴追跡
(51)【国際特許分類】
G06T 19/00 20110101AFI20250121BHJP
H04N 7/18 20060101ALI20250121BHJP
【FI】
G06T19/00 A
H04N7/18 U
(21)【出願番号】P 2023532766
(86)(22)【出願日】2020-11-30
(86)【国際出願番号】 US2020070831
(87)【国際公開番号】W WO2022115119
(87)【国際公開日】2022-06-02
【審査請求日】2023-09-13
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】エーベリング,サッシャ
(72)【発明者】
【氏名】ローレンス,ジェイソン
【審査官】鈴木 肇
(56)【参考文献】
【文献】国際公開第2014/190221(WO,A1)
【文献】特表2015-513833(JP,A)
【文献】米国特許第10171738(US,B1)
【文献】米国特許第08884949(US,B1)
【文献】特開2012-029209(JP,A)
【文献】米国特許出願公開第2020/0272806(US,A1)
【文献】米国特許出願公開第2019/0228556(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00
G06T 11/60-13/80
G06T 17/05
G06T 19/00-19/20
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
複数のカメラを用いて少なくとも1つの画像を取込むことと、
前記少なくとも1つの画像に関連付けられた複数の顔特徴を識別することと、
前記複数の顔特徴のうちの少なくとも1つの顔特徴の位置を
、前記少なくとも1つの顔特徴に関連付けられた少なくとも2つのランドマークに基づいて、安定化させることと、
前記少なくとも1つの顔特徴の前記位置を3次元(3D)位置に変換することと、
前記少なくとも1つの顔特徴の将来の位置を予測することと、
前記少なくとも2つのランドマークに基づき、前記少なくとも1つの顔特徴の前記将来の位置を用いて、フラットパネルディスプレイ上で3D画像をレンダリングすることとを備える、方法。
【請求項2】
前記少なくとも1つの画像は2つ以上の画像を含み、
前記2つ以上の画像は、同じカメラによって順次、および2つ以上のカメラによって同時に、のうちの少なくとも一方で取込まれる、請求項1に記載の方法。
【請求項3】
前記複数の顔特徴を識別することは、
前記少なくとも1つの画像に関連付けられた顔を識別することと、
前記顔の上の前記複数の顔特徴に対応する複数のランドマークを生成することと、
位置を前記複数のランドマークの各々に関連付けることとを含む、請求項1または請求項2に記載の方法。
【請求項4】
前記複数の顔特徴を識別することは、
前記少なくとも1つの画像に関連付けられた第1の顔を識別することと、
前記少なくとも1つの画像に関連付けられた第2の顔を識別することと、
前記第1の顔の上の前記複数の顔特徴に対応する第1の複数のランドマークを生成することと、
前記第2の顔の上の前記複数の顔特徴に対応する第2の複数のランドマークを生成することと、
第1の位置を前記第1の複数のランドマークの各々に関連付けることと、
第2の位置を前記第2の複数のランドマークの各々に関連付けることとを含む、請求項1~請求項3のいずれか1項に記載の方法。
【請求項5】
前記少なくとも1つの顔特徴の位置を安定化させることは、
前記少なくとも1つの画像のうちの少なくとも2つから顔特徴を選択することと、
前記顔特徴に関連付けられた
前記少なくとも2つのランドマークを選択することと、
前記少なくとも2つのランドマークの位置を平均化することとを含む、請求項1~請求項4のいずれか1項に記載の方法。
【請求項6】
前記少なくとも1つの顔特徴の位置を安定化させることは、
前記複数の顔特徴に対応する複数のランドマークを生成することと、
前記複数のランドマークのサブセットを選択することと、
前記複数のランドマークの前記サブセットの各ランドマークの位置に関連付けられた速度に基づいて、顔の動きを決定することとを含み、
前記少なくとも1つの顔特徴の位置を安定化させることは、前記顔の前記動きに基づく、請求項1~請求項5のいずれか1項に記載の方法。
【請求項7】
前記少なくとも1つの顔特徴の前記位置を3D位置に変換することは、
前記複数のカメラのうちの3つ以上によって取込まれた画像を用いて生成された位置データに基づいて、前記少なくとも1つの顔特徴の前記位置を三角測量することを含む、請求項1~請求項6のいずれか1項に記載の方法。
【請求項8】
前記少なくとも1つの顔特徴の前記3D位置に二重指数フィルタを適用して、前記少なくとも1つの顔特徴の前記3D位置に関連付けられたノイズを低減することをさらに備える、請求項7に記載の方法。
【請求項9】
前記少なくとも1つの顔特徴の将来の位置を予測することは、
前記少なくとも1つの顔特徴の前記3D位置のシーケンスに二重指数フィルタを適用することと、
時間ゼロ(0)の前の前記二重指数フィルタでフィルタリングされた前記3D位置のシーケンスに基づく、ゼロ(0)よりも大きい時間における値を選択することとを含む、請求項7または請求項8に記載の方法。
【請求項10】
音声位置を決定することと、
前記少なくとも1つの顔特徴の前記将来の位置
および前記音声位置を用いて音声を生成すること
とをさらに備える、請求項1~請求項9のいずれか1項に記載の方法。
【請求項11】
3次元(3D)コンテンツシステムであって、
複数のコンピュータ命令を表すコードセグメントを含むメモリと、
前記コードセグメントを実行するように構成された1以上のプロセッサとを備え、前記コンピュータ命令は、前記1以上のプロセッサによって実行されることにより、前記3Dコンテンツシステムに、請求項1~請求項10のいずれか1項に記載の方法を実施させる、3Dコンテンツシステム。
【請求項12】
システムの1以上のプロセッサによって、前記システムに、請求項1~請求項10のいずれか1項に記載の方法を実施させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
分野
実施形態は、概して、ディスプレイに表示するコンテンツを生成する際に使用される方法、デバイス、およびアルゴリズムに関する。
【背景技術】
【0002】
背景
3次元(3D)テレプレゼンスシステムは、映像を表示する場所および音声を投影する場所を決定するために、ユーザの頭の3Dポーズ情報に依拠し得る。3Dポーズ情報は正確でなければならない。たとえば、いくつかのシステムは、正確であり得るが、ユーザが3Dマーカボールを装着する必要がある。さらに、これらのシステムは非常に高価であり、ハードウェアの設置面積が大きい。他のシステムは、たとえばゲームに使用することができる小型の消費者向けデバイスを使用することができる。しかしながら、これらのシステムの精度および速度は、3Dテレプレゼンスシステムの要件を満たしていない。ウェアラブル(たとえば、3Dマーカボール、ヘッドマウントディスプレイなど)デバイスを必要とせずに3Dテレプレゼンスシステムで使用することができる、所望の精度および速度性能を有する3Dポーズ情報システムが必要とされている。
【発明の概要】
【0003】
概要
全般的な態様において、デバイス、システム、(コンピュータシステム上で実行することができるコンピュータ実行可能プログラムコードを格納した)非一時的なコンピュータ読取可能媒体、および/または方法は、複数のカメラを用いて少なくとも1つの画像を取込むことと、上記少なくとも1つの画像に関連付けられた複数の顔特徴を識別することと、上記複数の顔特徴のうちの少なくとも1つの顔特徴の位置を安定化させることと、上記少なくとも1つの顔特徴の上記位置を3次元(3D)位置に変換することと、上記少なくとも1つの顔特徴の将来の位置を予測することと、上記少なくとも1つの顔特徴の上記将来の位置を用いて、フラットパネルディスプレイ上で3D画像をレンダリングすることとを含む方法を用いて、プロセスを実行することができる。
【0004】
実装形態は、以下の特徴のうちの1つ以上を含み得る。たとえば、上記少なくとも1つの画像は2つ以上の画像を含み得るものであり、上記2つ以上の画像は、同じカメラによって順次、および2つ以上のカメラによって同時に、のうちの少なくとも一方で取込まれ得る。上記複数の顔特徴を識別することは、上記少なくとも1つの画像に関連付けられた顔を識別することと、上記顔の上の上記複数の顔特徴に対応する複数のランドマークを生成することと、位置を上記複数のランドマークの各々に関連付けることとを含み得る。上記複数の顔特徴を識別することは、上記少なくとも1つの画像に関連付けられた第1の顔を識別することと、上記少なくとも1つの画像に関連付けられた第2の顔を識別することと、上記第1の顔の上の上記複数の顔特徴に対応する第1の複数のランドマークを生成することと、上記第2の顔の上の上記複数の顔特徴に対応する第2の複数のランドマークを生成することと、第1の位置を上記第1の複数のランドマークの各々に関連付けることと、第2の位置を上記第2の複数のランドマークの各々に関連付けることとを含み得る。
【0005】
上記少なくとも1つの顔特徴の位置を安定化させることは、上記少なくとも1つの画像のうちの少なくとも2つから顔特徴を選択することと、上記顔特徴に関連付けられた少なくとも2つのランドマークを選択することと、上記少なくとも2つのランドマークの位置を平均化することとを含み得る。上記少なくとも1つの顔特徴の位置を安定化させることは、上記複数の顔特徴に対応する複数のランドマークを生成することと、上記複数のランドマークのサブセットを選択することと、上記複数のランドマークの上記サブセットの各ランドマークの位置に関連付けられた速度に基づいて、顔の動きを決定することとを含み得るものであり、上記少なくとも1つの顔特徴の位置を安定化させることは、上記顔の上記動きに基づく。上記少なくとも1つの顔特徴の上記位置を3D位置に変換することは、上記複数のカメラのうちの3つ以上によって取込まれた画像を用いて生成された位置データに基づいて、上記少なくとも1つの顔特徴の上記位置を三角測量することを含み得る。
【0006】
上記方法はさらに、上記少なくとも1つの顔特徴の上記3D位置に二重指数フィルタを適用して、上記少なくとも1つの顔特徴の上記3D位置に関連付けられたノイズを低減することを含み得る。上記少なくとも1つの顔特徴の将来の位置を予測することは、上記少なくとも1つの顔特徴の上記3D位置のシーケンスに二重指数フィルタを適用することと、時間ゼロ(0)の前の上記二重指数フィルタでフィルタリングされた上記3D位置のシーケンスに基づく、ゼロ(0)よりも大きい時間における値を選択することとを含み得る。上記方法はさらに、上記少なくとも1つの顔特徴の上記将来の位置を用いて音声を生成することを含み得る。
【0007】
全般的な態様において、デバイス、システム、(コンピュータシステム上で実行することができるコンピュータ実行可能プログラムコードを格納した)非一時的なコンピュータ読取可能媒体、および/または方法は、複数のコンピュータ命令を表すコードセグメントを含むメモリと、上記コードセグメントを実行するように構成されたプロセッサとを含むデバイスを用いてプロセスを実行することができ、上記コンピュータ命令は、複数のカメラを用いて少なくとも1つの画像を取込むことと、上記少なくとも1つの画像に関連付けられた複数の顔特徴を識別することと、上記複数の顔特徴のうちの少なくとも1つの顔特徴の位置を安定化させることと、上記少なくとも1つの顔特徴の上記位置を3次元(3D)位置に変換することと、上記少なくとも1つの顔特徴の将来の位置を予測することと、上記少なくとも1つの顔特徴の上記将来の位置を用いて、フラットパネルディスプレイ上で3D画像をレンダリングすることとを含む。
【0008】
実装形態は、以下の特徴のうちの1つ以上を含み得る。たとえば、上記少なくとも1つの画像は2つ以上の画像を含み得るものであり、上記2つ以上の画像は、同じカメラによって順次、および2つ以上のカメラによって同時に、のうちの少なくとも一方で取込まれ得る。上記複数の顔特徴を識別することは、上記少なくとも1つの画像に関連付けられた顔を識別することと、上記顔の上の上記複数の顔特徴に対応する複数のランドマークを生成することと、位置を上記複数のランドマークの各々に関連付けることとを含み得る。上記複数の顔特徴を識別することは、上記少なくとも1つの画像に関連付けられた第1の顔を識別することと、上記少なくとも1つの画像に関連付けられた第2の顔を識別することと、上記第1の顔の上の上記複数の顔特徴に対応する第1の複数のランドマークを生成することと、上記第2の顔の上の上記複数の顔特徴に対応する第2の複数のランドマークを生成することと、第1の位置を上記第1の複数のランドマークの各々に関連付けることと、第2の位置を上記第2の複数のランドマークの各々に関連付けることとを含み得る。
【0009】
上記少なくとも1つの顔特徴の位置を安定化させることは、上記少なくとも1つの画像のうちの少なくとも2つから顔特徴を選択することと、上記顔特徴に関連付けられた少なくとも2つのランドマークを選択することと、上記少なくとも2つのランドマークの位置を平均化することとを含み得る。上記少なくとも1つの顔特徴の位置を安定化させることは、上記複数の顔特徴に対応する複数のランドマークを生成することと、上記複数のランドマークのサブセットを選択することと、上記複数のランドマークの上記サブセットの各ランドマークの位置に関連付けられた速度に基づいて、顔の動きを決定することとを含み得るものであり、上記少なくとも1つの顔特徴の位置を安定化させることは、上記顔の上記動きに基づく。上記少なくとも1つの顔特徴の上記位置を3D位置に変換することは、上記複数のカメラのうちの3つ以上によって取込まれた画像を用いて生成された位置データに基づいて、上記少なくとも1つの顔特徴の上記位置を三角測量することを含み得る。
【0010】
上記コンピュータ命令はさらに、上記少なくとも1つの顔特徴の上記3D位置に二重指数フィルタを適用して、上記少なくとも1つの顔特徴の上記3D位置に関連付けられたノイズを低減することを含み得る。上記少なくとも1つの顔特徴の将来の位置を予測することは、上記少なくとも1つの顔特徴の上記3D位置のシーケンスに二重指数フィルタを適用することと、時間ゼロ(0)の前の上記二重指数フィルタでフィルタリングされた上記3D位置のシーケンスに基づく、ゼロ(0)よりも大きい時間における値を選択することとを含み得る。上記コンピュータ命令はさらに、上記少なくとも1つの顔特徴の上記将来の位置を用いて音声を生成することを含み得る。
【0011】
例示的な実施形態は、本明細書の以下の詳細な説明および添付の図面からさらに十分に理解されるであろう。添付の図面では、同様の要素は同様の参照番号によって表している。これらの要素は例として与えられているに過ぎず、したがって例示的な実施形態を限定するものではない。
【図面の簡単な説明】
【0012】
【
図1】少なくとも1つの例示的な実装形態に係る、コンテンツをディスプレイデバイスに表示するための例示的な3Dコンテンツシステムを示すブロック図である。
【
図2】少なくとも1つの例示的な実装形態に係る、ディスプレイデバイスにおけるレンダリングのためのコンテンツをモデル化するための例示的なシステムのブロック図である。
【
図3】少なくとも1つの例示的な実施形態に係る、顔特徴を追跡し、顔特徴に基づいて位置(複数可)を位置決定するためのシステムのブロック図である。
【
図4】少なくとも1つの例示的な実施形態に係る、顔特徴位置を絵で示す図である。
【
図5】少なくとも1つの例示的な実施形態に係る、顔特徴を追跡し、顔特徴に基づいて位置(複数可)を位置決定する方法のブロック図である。
【
図6】少なくとも1つの例示的な実施形態に係る、コンピュータデバイスおよびモバイルコンピュータデバイスの一例を示す図である。
【発明を実施するための形態】
【0013】
実施形態の詳細な説明
なお、これらの図面は、いくつかの例示的な実施形態において利用される方法、構造および/または材料の一般的特徴を示すこと、ならびに以下に提供される記述を補足することを意図している。しかしながら、これらの図面は、一定の縮尺ではなく、任意の実施形態の正確な構造特性または性能特性を正確に反映していない場合があり、例示的な実施形態によって包含される値の範囲または性質を規定または限定するものと解釈されるべきではない。たとえば、分子、層、領域および/または構造要素の相対的な厚みおよび位置は、明確にするために縮小または強調されることがある。さまざまな図面における同様または同一の参照番号の使用は、同様または同一の要素または特徴の存在を示すことを意図している。
【0014】
ウェアラブルデバイス(たとえば、ヘッドマウントディスプレイ(HMD))を使用しない拡張現実および仮想現実(AR/VR)システム、たとえば、据置型3Dディスプレイを使用する自動立体/眼鏡なしテレプレゼンスシステムは、ユーザの顔特徴(たとえば、目および耳)の正確な最新の3Dポーズを有することに依拠し得る。たとえば、これらのシステム(たとえば、3Dテレプレゼンスシステム)では、正確な目の追跡を使用して、仮想カメラを位置決めするとともに別々の左ステレオ画像および右ステレオ画像を左目および右目にそれぞれ投影することによって、表示されるシーンを修正することができる。また、そのようなシステムは、耳の追跡を使用して音声出力および入力を正確に処理して、ヘッドフォンなしで空間オーディオを実現することができる。代わりに、これらのシステムは、たとえば据置型スピーカペアを使用することができる。
【0015】
3Dテレプレゼンスシステムにおいて、顔特徴追跡システムは、少なくとも、高速、低レイテンシ、低ノイズおよびジッタ、マーカレスなどであるべきである。一例として、高速追跡システムは、120Hzのディスプレイシステム上で8.33msごとに更新可能であるべきである。低レイテンシ追跡システムは、画面上の更新されたレンダリングが現在のユーザ位置と一致するように、ユーザの位置を報告すべきである。そうしなければ、レイテンシが高すぎる場合、ユーザはめまいがして深刻な視覚アーティファクトを経験する可能性がある。低ノイズおよびジッタ追跡システムは、視覚的な不快感の原因となり得るシーンの揺れを最小限に抑えるべきである。マーカレス追跡システムは、ユーザが、ユーザに取付けられたデバイスの不快感を感じることなく(たとえば、望ましくないユーザ体験をすることなく)テレプレゼンスシステムに参加できるようにすべきである。
【0016】
例示的な実装形態は、ウェアラブルデバイス(たとえば、HMD、マーカ、および/またはその他)を使用せずにユーザ(たとえば、3Dテレプレゼンスシステムのユーザ)の顔特徴を正確かつコスト効率よく追跡するためのシステムを含み得る。この顔特徴追跡システムは、少なくとも1つのカメラ(たとえば、モノクロカメラ、赤外線カメラ、および/またはその他)を使用して、一定の間隔で画像を取込むことができる。一定の間隔は短くすることができる(たとえば、6ms未満、8ms未満、10ms未満など)。これらの画像を用いて、顔および顔特徴の位置を特定し、仮想カメラ位置、表示位置、音声位置および/またはその他を生成することができる。この追跡システムの利点は、ユーザが顔特徴追跡のためのデバイスを装着する必要がなく(ユーザ体験の向上)、追跡システムが迅速に特徴を取得することができ、追跡システムが正確な(たとえば、最小ノイズの)位置情報を生成するためのソフトウェアを含むことである。
【0017】
図1は、本開示全体にわたって記載されている実装形態に係る、立体ディスプレイデバイスにおいてコンテンツを取込んで表示するための例示的な3Dコンテンツシステム100を示すブロック図である。3Dコンテンツシステム100は、たとえば3Dでのテレビ会議通信(たとえば、テレプレゼンスセッション)を行うために複数のユーザが使用することができる。一般に、
図1のシステムは、テレビ会議中にユーザの映像および/または画像を取込み、本明細書に記載されているシステムおよび技術を用いて仮想カメラ、表示位置、および音声位置を生成するために使用され得る。システム100は、本明細書に記載されている位置生成システムおよび技術の使用から恩恵を受けることができる。なぜなら、そのような技術を用いて、テレビ会議を改善するように映像および音声コンテンツを投影することができるからである。たとえば、視聴者の位置に基づいて3D映像をレンダリングし、テレビ会議の参加者の位置に基づいて音声を投影するように、映像を投影することができる。
【0018】
図1に示すように、3Dコンテンツシステム100は、第1のユーザ102および第2のユーザ104によって使用されている。たとえば、ユーザ102および104は、3Dコンテンツシステム100を使用して3Dテレプレゼンスセッションに参加している。そのような例では、3Dコンテンツシステム100は、ユーザ102および104の各々が、互いの非常にリアルで視覚的に矛盾のない表現を見ることを可能にすることができ、それによって、ユーザが互いに物理的に存在するのと同様の態様で対話することを容易にすることができる。
【0019】
各ユーザ102,104は、対応する3Dシステムを有し得る。ここでは、ユーザ102は3Dシステム106を有し、ユーザ104は3Dシステム108を有している。3Dシステム106,108は、3D表示のための画像の取込み、画像情報の処理および表示、ならびに音声情報の処理および表示を含むがこれらに限定されない、3Dコンテンツに関連する機能を提供することができる。3Dシステム106および/または3Dシステム108は、1つのユニットとして一体化されたセンシングデバイスの集合体を構成し得る。3Dシステム106および/または3Dシステム108は、
図3を参照して説明する一部のまたはすべてのコンポーネントを含み得る。
【0020】
3Dシステム106,108は、3D情報の取込み、処理、送信、位置決めもしくは受信、および/または3Dコンテンツの表示に関連する複数のコンポーネントを含み得る。3Dシステム106,108は、3D表示に含まれる画像の画像コンテンツを取込むための、ならびに/または、顔および顔特徴を取込むための、1つまたは複数のカメラを含み得る。ここでは、3Dシステム106はカメラ116および118を含む。たとえば、カメラ116および/またはカメラ118は、それぞれのカメラ116および/または118の対物レンズまたはレンズがハウジングの1つまたは複数の開口によって画像コンテンツを取込むように、実質的に3Dシステム106のハウジング内に配置され得る。いくつかの実装形態では、カメラ116および/または118は、(たとえば、3Dシステム106との有線および/または無線接続を有する)スタンドアロンデバイスの形態など、ハウジングから分離可能である。
図1に示すように、少なくとも1つのカメラ114,114′および/または114″が、(たとえば、有線および/または無線接続を用いて)3Dシステム106に通信可能に結合することができるスタンドアロンデバイスとして、ハウジングから分離しているものとして示されている。
【0021】
例示的な実装形態では、複数のカメラを用いて少なくとも1つの画像を取込むことができる。複数のカメラを用いて2つ以上の画像を取込むことができる。たとえば、2つ以上の画像を、(たとえば、追跡のために)同じカメラによって順次取込むことができる。2つ以上の画像を、(たとえば、三角測量に使用される)2つ以上のカメラによって同時に取込むことができる。
【0022】
カメラ114,114′,114″,116および118は、ユーザ(たとえば、ユーザ102)の十分に描写的なビューを取込むように位置決めするおよび/または方向付けることができる。カメラ114,114′,114″,116および118は、一般的にはユーザ102のための3Dディスプレイ110のビューを不明瞭にすることはないが、カメラ114,114′,114″,116および118の配置は任意に選択することができる。たとえば、カメラ116,118の一方をユーザ102の顔よりも上のどこかに位置決めすることができ、他方を顔よりも下のどこかに位置決めすることができる。カメラ114,114′および/または114″を3Dシステム106の左側、右側、および/または3Dシステム106よりも上に配置することができる。たとえば、カメラ116,118の一方をユーザ102の顔の右側のどこかに位置決めすることができ、他方を顔の左側のどこかに位置決めすることができる。3Dシステム108も同様に、たとえばカメラ120,122,134,134′および/または134″を含み得る。追加のカメラが可能である。たとえば、第3のカメラがディスプレイ110の近くまたは後ろに配置されてもよい。
【0023】
3Dコンテンツシステム100は、1つもしくは複数の2Dまたは3Dディスプレイを含み得る。ここでは、3Dシステム106のために3Dディスプレイ110が設けられ、3Dシステム108のために3Dディスプレイ112が設けられている。3Dディスプレイ110,112は、複数のタイプの3Dディスプレイ技術のうちのいずれかを用いて、それぞれの視聴者(ここでは、たとえばユーザ102またはユーザ104)に自動立体視を提供することができる。いくつかの実装形態では、3Dディスプレイ110,112はスタンドアロンユニット(たとえば、自立しているかまたは壁に吊り下げられている)であってもよい。いくつかの実装形態では、3Dディスプレイ110,112は、ウェアラブル技術(たとえば、コントローラ、ヘッドマウントディスプレイなど)を含み得るか、またはそのようなウェアラブル技術へのアクセスを有し得る。
【0024】
一般に、ディスプレイ110,112などの3Dディスプレイは、ヘッドマウントディスプレイ(HMD)デバイスを使用せずに、実世界における物理オブジェクトの3D光学特性を近似する画像を提供することができる。一般に、本明細書に記載されているディスプレイは、フラットパネルディスプレイ、レンチキュラーレンズ(たとえば、マイクロレンズアレイ)、および/または、ディスプレイに関連付けられた多数の異なる視聴領域に画像をリダイレクトするための視差バリアを含む。
【0025】
いくつかの実装形態では、ディスプレイ110,112は、高解像度でメガネ不要のレンチキュラー3次元(3D)ディスプレイを含むフラットパネルディスプレイであり得る。たとえば、ディスプレイ110,112は、ディスプレイのマイクロレンズにガラススペーサが結合(たとえば、接着)された複数のレンズ(たとえば、マイクロレンズ)を含むマイクロレンズアレイ(図示せず)を含み得る。マイクロレンズは、選択された視聴位置から、ディスプレイのユーザの左目が画素の第1のセットを見ることができ、ユーザの右目が画素の第2のセット(たとえば、画素の第2のセットは画素の第1のセットと相互に排他的である)を見ることができるように設計されてもよい。
【0026】
いくつかの例示的な3Dディスプレイには、そのようなディスプレイによって提供される画像コンテンツ(たとえば、ユーザ、オブジェクトなど)の3Dビューを提供する1つの場所が存在し得る。ユーザは、この1つの場所に座って、適切な視差、最小限の歪み、およびリアルな3D画像を体験することができる。ユーザが異なる物理的な場所に移動する(または、頭の位置もしくは視線の位置を変える)と、画像コンテンツ(たとえば、ユーザ、ユーザが装着しているオブジェクト、および/または他のオブジェクト)は、リアルさが損なわれて、2Dで、および/または、歪んで見え始める可能性がある。したがって、本明細書に記載されている技術は、リアルな3Dの生成を可能にするためにユーザ位置(たとえば、ユーザの目)を正確に決定することを可能にすることができる。本明細書に記載されているシステムおよび技術は、ユーザが動き回るが、依然として適切な視差、低い歪み率、およびリアルな3D画像をリアルタイムで確実に体験できるように、ディスプレイから投影された画像コンテンツを再構成することができる。したがって、本明細書に記載されているシステムおよび技術は、ユーザが3Dディスプレイを見ている間に生じるユーザの動きに関係なく、ユーザに表示するための3D画像コンテンツおよびオブジェクトを維持して提供するという利点を提供する。
【0027】
図1に示すように、3Dコンテンツシステム100は、1つまたは複数のネットワークに接続することができる。ここでは、ネットワーク132が3Dシステム106および3Dシステム108に接続されている。ネットワーク132は、ほんの2例を挙げると、一般提供されているネットワーク(たとえば、インターネット)またはプライベートネットワークであり得る。ネットワーク132は、有線、または無線、またはこれら2つの組合わせであり得る。ネットワーク132は、1つまたは複数のサーバ(図示せず)を含むがこれらに限定されない1つまたは複数の他のデバイスまたはシステムを含み得るか、またはそのようなデバイスまたはシステムを使用し得る。
【0028】
3Dシステム106,108は、顔ファインダ/認識ツールを含み得る。3Dシステム106,108は、顔特徴抽出ツールを含み得る。たとえば、3Dシステム106,108は、画像内の顔を識別し、顔特徴および顔特徴の位置(またはx、y、z位置)を抽出するように構成された機械学習(ML)ツール(たとえば、ソフトウェア)を含み得る。画像(複数可)は、(3Dシステム106のための)カメラ114,114′,114″,116および/または118を用いて、かつ、(3Dシステム108のための)カメラ120,122,134,134′および/または134″を用いて、取込むことができる。
【0029】
3Dシステム106,108は、3D表示に使用される深度データを取込むための1つまたは複数の深度センサを含み得る。そのような深度センサは、シーンを3Dディスプレイに正確に表すために、3Dシステム106および/または108によって取込まれたシーンを特徴付けるために使用される、3Dコンテンツシステム100内の深度取込みコンポーネントの一部とみなすことができる。さらに、システムは、3D表示が視聴者の現在の視点に対応する外観でレンダリングされ得るように、視聴者の頭の位置および向きを追跡することができる。ここでは、3Dシステム106は深度センサ124を含む。同様に、3Dシステム108は深度センサ126を含み得る。深度データを生成するために、複数のタイプの深度センシングまたは深度取込みのうちのいずれかを使用することができる。
【0030】
いくつかの実装形態では、支援型ステレオ深度取込みが実行される。光のドットを用いてシーンを照明することができ、ステレオマッチングは、たとえば2つのそれぞれのカメラ間で実行することができる。この照明は、選択された波長または波長範囲の波を用いて行うことができる。たとえば、赤外(IR)光を使用することができる。いくつかの実装形態では、たとえば2Dデバイス上でビューを生成する際に深度センサは利用されなくてもよい。深度データは、深度センサ(たとえば、深度センサ124)とシーン内のオブジェクトとの間の距離を反映する、シーンに関する任意の情報を含み得るか、またはそのような任意の情報に基づき得る。深度データは、シーン内のオブジェクトに対応する画像内のコンテンツについて、オブジェクトまでの距離(または深度)を反映する。たとえば、カメラ(複数可)と深度センサとの空間的関係を知ることができ、カメラ(複数可)からの画像と深度センサからの信号とを相関させて画像の深度データを生成するために使用することができる。
【0031】
3Dコンテンツシステム100によって取込まれた画像は、処理され、その後、3D表示として表示され得る。
図1の例に示されるように、オブジェクト(眼鏡104″)を有する3D画像104′が3Dディスプレイ110に表示される。このように、ユーザ102は、3D画像104′および眼鏡104″を、ユーザ102から遠隔に位置し得るユーザ104の3D表現として知覚することができる。3D画像102′が3Dディスプレイ112に表示される。このように、ユーザ104は、3D画像102′をユーザ102の3D表現として知覚することができる。
【0032】
3Dコンテンツシステム100は、参加者(たとえば、ユーザ102,104)が互いにおよび/または他者との音声通信に参加することを可能にすることができる。いくつかの実装形態では、3Dシステム106はスピーカおよびマイク(図示せず)を含む。たとえば、3Dシステム108も同様にスピーカおよびマイクを含み得る。このように、3Dコンテンツシステム100は、ユーザ102および104が互いにおよび/または他者との3Dテレプレゼンスセッションに参加することを可能にすることができる。
【0033】
図2は、本開示全体にわたって記載されている実装形態に係る、3Dディスプレイデバイスにおけるレンダリングのためのコンテンツをモデル化するための例示的なシステム200のブロック図である。システム200は、本明細書に記載されている1つもしくは複数の実装形態として機能することができ、もしくはそのような実装形態に含まれることができ、および/または、本明細書に記載されている3D処理、モデル化、もしくは表示の1つもしくは複数の例の動作(複数可)を実行するために使用することができる。システム200全体および/またはその個々のコンポーネントのうちの1つ以上は、本明細書に記載されている1つまたは複数の例に従って実現することができる。
【0034】
システム200は、1つまたは複数の3Dシステム202を含む。示される例では、3Dシステム202A,202B~202Nが示されており、添字Nは任意の数字を示す。3Dシステム202は、3D表示のための視覚および音声情報の取込みを提供し、3D情報を処理のために転送することができる。そのような3D情報は、シーンの画像、シーンについての深度データ、およびシーンからの音声を含み得る。たとえば、3Dシステム202は、3Dシステム106および3Dディスプレイ110(
図1)として機能することができ、または、3Dシステム106および3Dディスプレイ110内に含まれることができる。
【0035】
システム200は、カメラ204によって示されるように、複数のカメラを含み得る。一般的なデジタルカメラ、モノクロカメラ、および/または赤外線カメラに使用されるタイプの画像センサなどの任意のタイプの光センシング技術を画像の取込みに使用することができる。カメラ204は、同じタイプであっても異なるタイプであってもよい。カメラ位置は、たとえば、3Dシステム106などの3Dシステム上の(またはその外部の)任意の位置内に配置されてもよい。
【0036】
システム202Aは、深度センサ206を含む。いくつかの実装形態では、深度センサ206は、IR信号をシーン上に伝搬させて応答信号を検出することによって動作する。たとえば、深度センサ206は、ビーム128A~Bおよび/または130A~Bを生成および/または検出することができる。
【0037】
システム202Aは、少なくとも1つのマイク208およびスピーカ210も含む。たとえば、これらは、ユーザが装着するヘッドマウントディスプレイに統合され得る。いくつかの実装形態では、マイク208およびスピーカ210は、3Dシステム106の一部であってもよく、ヘッドマウントディスプレイの一部でなくてもよい。
【0038】
システム202はさらに、3D画像を立体的に表示することができる3Dディスプレイ212を含む。いくつかの実装形態では、3Dディスプレイ212はスタンドアロンディスプレイとすることができ、いくつかの他の実装形態では、3Dディスプレイ212は、3D表示を体験するためにユーザによって装着されるように構成されたヘッドマウントディスプレイユニットに含まれ得る。いくつかの実装形態では、3Dディスプレイ212は、視差バリア技術を用いて動作する。たとえば、視差バリアは、画面と視聴者の間に配置された実質的に非透明な材料(たとえば、不透明フィルム)の平行な垂直ストライプを含み得る。視聴者のそれぞれの目の間の視差のために、画面の異なる部分(たとえば、異なる画素)は、それぞれ左目および右目によって見られる。いくつかの実装形態では、3Dディスプレイ212はレンチキュラーレンズを用いて動作する。たとえば、レンズの交互の列を画面の前に配置することができ、これらの列は、画面からの光をそれぞれ視聴者の左目および右目に向ける。
【0039】
システム202Aは、追跡および位置214ブロックを含む。追跡および位置214ブロックは、部屋の中のユーザの位置を追跡するように構成され得る。いくつかの実装形態では、追跡および位置214ブロックは、ユーザの目の位置を追跡してもよい。いくつかの実装形態では、追跡および位置214ブロックは、ユーザの頭の位置を追跡してもよい。追跡および位置214ブロックは、システム202内のユーザ、マイク、カメラなどの位置を決定するように構成され得る。いくつかの実装形態では、追跡および位置214ブロックは、ユーザの顔および/または顔特徴に基づいて仮想位置を生成するように構成されてもよい。たとえば、追跡および位置ブロック214は、ユーザの顔および/または顔特徴に基づいて仮想カメラの位置を生成するように構成されてもよい。いくつかの実装形態では、追跡および位置214ブロックは、(3Dシステム106のための)カメラ114,114′,114″,116および/または118を用いて、かつ、(3Dシステム108のための)カメラ120,122,134,134′および/または134″を用いて、実現することができる。追跡および位置214ブロックは、3Dシステム(複数可)202内で本開示に記載されている方法および技術を実現するように構成されてもよい。
【0040】
システム200は、データ処理、データモデル化、データ連携、および/またはデータ送信の特定のタスクを実行することができるサーバ216を含み得る。サーバ216および/またはそのコンポーネントは、
図6を参照して説明する一部のまたはすべてのコンポーネントを含み得る。
【0041】
サーバ216は、1つまたは複数の方法で3D情報をレンダリングする役割を果たすことができる3Dコンテンツ生成器218を含む。これは、(たとえば、3Dシステム202Aから)3Dコンテンツを受信すること、3Dコンテンツを処理すること、および/または、(処理された)3Dコンテンツを別の参加者に(たとえば、別の3Dシステム202に)転送することを含み得る。
【0042】
3Dコンテンツ生成器218によって実行される機能のいくつかの態様は、シェーダ218による実行のために実現され得る。シェーダ218は、画像の特定の部分に関してシェーディングを適用する役割を果たすことができ、また、シェーディングが提供されたかまたは提供される予定の画像に関連する他のサービスを実行する役割を果たすことができる。たとえば、シェーダ218を利用して、そうでなければ3Dシステム(複数可)202によって生成され得るいくつかのアーティファクトを打ち消すかまたは隠すことができる。
【0043】
シェーディングとは、画像内のオブジェクト、表面、および/またはポリゴンの色を含むがこれらに限定されない画像コンテンツの外観を定義する1つまたは複数のパラメータを指す。いくつかの実装形態では、シェーディングを、画像コンテンツの1つまたは複数の部分に適用して、またはそのような部分について調整して、それらの画像コンテンツ部分(複数可)が視聴者にどのように見えるかを変更することができる。たとえば、画像コンテンツ部分(複数可)をより暗くする、より明るくする、透明にする、などのためにシェーディングを適用/調整することができる。
【0044】
3Dコンテンツ生成器218は、深度処理コンポーネント220を含み得る。いくつかの実装形態では、深度処理コンポーネント220は、画像コンテンツに関連付けられた1つまたは複数の深度値に基づいて、かつ、1つまたは複数の受信入力(たとえば、コンテンツモデル入力)に基づいて、そのコンテンツにシェーディング(たとえば、より暗い、より明るい、透明など)を適用することができる。
【0045】
3Dコンテンツ生成器218は、角度処理コンポーネント222を含み得る。いくつかの実装形態では、角度処理コンポーネント222は、画像コンテンツを取込むカメラに対する画像コンテンツの向き(たとえば、角度)に基づいて、そのコンテンツにシェーディングを適用することができる。たとえば、シェーディングは、予め定められた閾値角度を超える角度でカメラ角度から離れる方向を向くコンテンツに適用することができる。これにより、角度処理コンポーネント222は、ほんの1例を挙げると、表面がカメラから離れるにつれて輝度を低下させフェードアウトさせることができる。
【0046】
3Dコンテンツ生成器218は、レンダラモジュール224を含む。レンダラモジュール224は、1つまたは複数の3Dシステム(複数可)202にコンテンツをレンダリングしてもよい。たとえばレンダラモジュール224は、たとえばシステム202において表示され得る出力/合成画像をレンダリングしてもよい。
【0047】
図2に示すように、サーバ216は、1つまたは複数の方法で3D情報をモデル化する役割を果たすことができる3Dコンテンツモデラ230も含む。これは、(たとえば、3Dシステム202Aから)3Dコンテンツを受信すること、3Dコンテンツを処理すること、および/または、(処理された)3Dコンテンツを別の参加者に(たとえば、別の3Dシステム202に)転送することを含み得る。3Dコンテンツモデラ230は、以下にさらに詳細に説明するように、アーキテクチャ400を利用してオブジェクトをモデル化してもよい。
【0048】
ポーズ232は、取込まれたコンテンツ(たとえば、オブジェクト、シーンなど)に関連付けられたポーズを表し得る。いくつかの実装形態では、ポーズ232は、システム100および/または200に関連付けられた追跡システムによって検出および/またはその他の方法で決定されてもよい(たとえば、(3Dシステム106のための)カメラ114,114′,114″,116および/または118を用いて、かつ、(3Dシステム108のための)カメラ120,122,134,134′および/または134″を用いて、実現されてもよい)。そのような追跡システムは、ユーザのすべてまたは一部の位置を追跡するためのセンサ、カメラ、検出器、および/またはマーカを含み得る。いくつかの実装形態では、追跡システムは、部屋の中のユーザの位置を追跡してもよい。いくつかの実装形態では、追跡システムは、ユーザの目の位置を追跡してもよい。いくつかの実装形態では、追跡システムは、ユーザの頭の位置を追跡してもよい。
【0049】
いくつかの実装形態では、追跡システムは、適切な深度および視差を有する画像を表示するために、たとえばディスプレイデバイス212に対するユーザの位置(またはユーザの目もしくは頭の位置)を追跡してもよい。いくつかの実装形態では、ユーザに関連付けられた頭の位置が検出され、たとえばマイクロレンズ(図示せず)を介してディスプレイデバイス212のユーザに画像を同時に投影するための方向として使用されてもよい。
【0050】
カテゴリ234は、特定のオブジェクト236の分類を表し得る。たとえば、カテゴリ234は眼鏡であってもよく、オブジェクトは青色眼鏡、クリア眼鏡、丸眼鏡などであってもよい。任意のカテゴリおよびオブジェクトが、本明細書に記載されているモデルによって表され得る。カテゴリ234は、オブジェクト236上の生成モデルを訓練するための基礎として使用されてもよい。いくつかの実装形態では、カテゴリ234は、同じカテゴリの複数のオブジェクトについてのグラウンドトゥルースポーズ、色空間画像、およびマスクのセットへのアクセスを与える異なる視点の下で3Dオブジェクトカテゴリを合成的にレンダリングするために使用することができるデータセットを表し得る。
【0051】
3次元(3D)プロキシジオメトリ238は、オブジェクトのセットの(粗い)ジオメトリ近似と、それぞれのオブジェクトジオメトリにマッピングされたオブジェクトのうちの1つ以上の潜在テクスチャ239との両方を表す。粗いジオメトリおよびマッピングされた潜在テクスチャ239は、オブジェクトのカテゴリ内の1つまたは複数のオブジェクトの画像を生成するために使用され得る。たとえば、本明細書に記載されているシステムおよび技術は、潜在テクスチャ239を目標視点の上にレンダリングし、ニューラルレンダリングネットワーク(たとえば、差分遅延レンダリングニューラルネットワーク)にアクセスしてディスプレイ上に目標画像を生成することによって、3Dテレプレゼンス表示用のオブジェクトを生成することができる。そのような潜在テクスチャ239を学習するために、本明細書に記載されているシステムは、ニューラルテクスチャの低次元潜在空間と共有遅延ニューラルレンダリングネットワークとを学習することができる。潜在空間は、オブジェクトのクラスのすべてのインスタンスを包含し、オブジェクトのインスタンスの補間を可能にし、これにより、少数の視点からオブジェクトのインスタンスを再構成することが可能になり得る。
【0052】
ニューラルテクスチャ244は、画像取込みプロセスの一部として訓練される、学習された特徴マップ240を表す。たとえば、オブジェクトが取込まれると、そのオブジェクトについての特徴マップ240および3Dプロキシジオメトリ238を用いてニューラルテクスチャ244が生成されてもよい。動作時、システム200は、特定のオブジェクト(またはシーン)についてのニューラルテクスチャ244を生成し、そのオブジェクトについての3Dプロキシジオメトリ238の上にマップとして格納してもよい。たとえば、ニューラルテクスチャは、識別されたカテゴリの各インスタンスに関連付けられた潜在コードと、ポーズに関連付けられたビューとに基づいて生成されてもよい。
【0053】
幾何学的近似246は、オブジェクトジオメトリのための形状ベースのプロキシを表し得る。幾何学的近似246は、メッシュベース、形状ベース(たとえば、三角形、菱形、正方形など)、オブジェクトの自由形式バージョンであってもよい。
【0054】
ニューラルレンダラ250は、たとえばニューラルネットワークを利用してレンダリングする、オブジェクトおよび/またはシーンの中間表現を生成してもよい。ニューラルテクスチャ244は、ニューラルレンダラ250とともに動作するニューラルネットワーク242などの5層U-Netとともにテクスチャマップ(たとえば、特徴マップ240)上の特徴を共同で学習するために使用され得る。ニューラルレンダラ250は、たとえば、オブジェクト固有の畳み込みネットワークを用いて真の外観(たとえば、グランドトゥルース)と拡散再投影との差をモデル化することによって、ビュー依存効果を組込んでもよい。そのような効果は、シーン知識に基づいて予測するのが困難な場合があり、そのため、GANベースの損失関数を用いてリアルな出力をレンダリングしてもよい。
【0055】
RGBカラーチャネル252(たとえば、カラー画像)は、3つの出力チャネルを表す。たとえば、3つの出力チャネルは、カラー画像を表す赤色カラーチャネル、緑色カラーチャネル、および青色カラーチャネル(たとえば、RGB)を含み得る。いくつかの実装形態では、カラーチャネル252は、特定の画像についてどの色をレンダリングすべきかを示すYUVマップであってもよい。いくつかの実装形態では、カラーチャネル252はCIEマップであってもよい。いくつかの実装形態では、カラーチャネル252はITPマップであってもよい。
【0056】
アルファ(α)254は、オブジェクト内の任意の数の画素について、重ね合わせたときに特定の画素色が他の画素とどのように併合されるかを表す出力チャネル(たとえば、マスク)を表す。いくつかの実装形態では、アルファ254は、オブジェクトの透明レベル(たとえば、半透明度、不透明度など)を定義するマスクを表す。
【0057】
上記の例示的なコンポーネントは、ここでは、ネットワーク260(
図1のネットワーク132と同様または同一であり得る)によって3Dシステム202のうちの1つ以上と通信可能なサーバ216において実現されるものとして説明されている。いくつかの実装形態では、3Dコンテンツ生成器216および/またはそのコンポーネントは、この代わりにまたはこれに加えて、3Dシステム202の一部またはすべてにおいて実現することができる。たとえば、上述のモデル化および/または処理は、3D情報を1つまたは複数の受信システムに転送する前に3D情報を発生させるシステムによって実行することができる。別の例として、発生させるシステムは、画像、モデル化データ、深度データ、および/または対応する情報を、上述の処理を実行することができる1つまたは複数の受信システムに転送することができる。これらのアプローチの組合わせを使用することができる。
【0058】
このように、システム200は、カメラ(たとえば、カメラ204)と、深度センサ(たとえば、深度センサ206)と、メモリに格納された命令を実行するプロセッサを有する3Dコンテンツ生成器(たとえば、3Dコンテンツ生成器218)とを含むシステムの一例である。そのような命令は、3D情報に含まれる深度データを用いて(たとえば、深度処理コンポーネント220によって)、3D情報に含まれるシーンの画像内の画像コンテンツをプロセッサに識別させることができる。画像コンテンツは、判定基準を満たす深度値に関連付けられているものとして識別され得る。プロセッサは、たとえば、合成画像256を適切に描写するために3Dコンテンツ生成器218に提供され得る、3Dコンテンツモデラ230によって生成されたモデルを適用することによって、修正された3D情報を生成することができる。
【0059】
合成画像256は、ユーザの頭の追跡された位置に少なくとも部分的に基づく、ディスプレイ(たとえば、ディスプレイ212)にアクセスするユーザに関連付けられた両目のための適切な視差およびビューイング構成を有する特定のオブジェクト236の3D立体画像を表す。合成画像256の少なくとも一部は、たとえば、ユーザがディスプレイを見ながら頭の位置を動かすたびにシステム200を用いて、3Dコンテンツモデラ230からの出力に基づいて決定されてもよい。いくつかの実装形態では、合成画像256は、オブジェクト236と、オブジェクト236を取込むビュー内の他のオブジェクト、ユーザ、または画像コンテンツとを表す。
【0060】
いくつかの実装形態では、システム202および216のプロセッサ(図示せず)は、グラフィックス処理ユニット(GPU)を含み得る(またはそれと通信し得る)。動作時、プロセッサは、メモリ、ストレージ、および他のプロセッサ(たとえば、CPU)を含み得る(またはそれらへのアクセスを有し得る)。グラフィックスおよび画像生成を容易にするために、プロセッサは、GPUと通信してディスプレイデバイス(たとえば、ディスプレイデバイス212)に画像を表示してもよい。CPUおよびGPUは、PCI、AGPまたはPCI-Expressなどの高速バスを介して接続されてもよい。GPUは、HDMI(登録商標)、DVIまたはDisplay Portなどの別の高速インターフェイスを介してディスプレイに接続されてもよい。一般に、GPUは、画素形式で画像コンテンツをレンダリングし得る。ディスプレイデバイス212は、GPUから画像コンテンツを受信してもよく、この画像コンテンツをディスプレイ画面に表示してもよい。
【0061】
図3は、少なくとも1つの例示的な実施形態に係る、顔特徴を追跡し、顔特徴に基づいて位置(複数可)を位置決定するためのシステムのブロック図を示す。
図3に示すように、システム300は、特徴トラッカ305ブロックと、3D特徴三角測量325ブロックと、予測付き二重指数フィルタ330ブロックと、仮想カメラ位置335ブロックと、表示位置340ブロックと、音声位置345ブロックとを含む。特徴トラッカ305ブロックは、カメラ310ブロックと、2D顔特徴抽出315ブロックと、2D特徴スタビライザ320ブロックとを含む。例示的な実装形態は、複数の特徴トラッカ(特徴トラッカ305-1ブロック、特徴トラッカ305-2ブロック、特徴トラッカ305-3ブロック、特徴トラッカ305-4ブロック、…、および特徴トラッカ305-nブロックとして示す)を含み得る。例示的な実装形態は、少なくとも2つ(2)の特徴トラッカ305を使用することを含み得る。たとえば、実装形態は、4つ(4)未満の特徴トラッカ305を使用するシステムと比較して、精度を最適化し(たとえば、向上させ)、ノイズを最適化し(たとえば、低減し)、取込み体積を最適化する(たとえば、拡張する)ために、4つ(4)の特徴トラッカ305を使用することができる。
【0062】
カメラ310は、毎秒120フレームで動作するモノクロカメラとすることができる。2つ以上のカメラを用いる場合、カメラ310をハードウェアトリガに接続して、カメラ310が同時に作動することを確実にすることができる。結果として得られる画像フレームはフレームセットと呼ばれることがあり、フレームセット内の各フレームは同じ瞬間に撮影される。カメラ310は、モノクロカメラと同様の動作特性を有する赤外線カメラとすることもできる。カメラ310は、モノクロカメラと赤外線カメラとの組合わせとすることができる。カメラ310は、3Dコンテンツシステム内の固定カメラ(たとえば、カメラ116,118,120,122)とすることができる。カメラ310は、3Dコンテンツシステムに結合された自立型カメラ(たとえば、カメラ114,114′,114″,134,134′,134″)とすることができる。カメラ310は、固定カメラと自立型カメとラの組合わせとすることができる。複数のカメラは、複数の特徴トラッカ305において実現することができる。
【0063】
2D顔特徴抽出315は、カメラ310を用いて取込まれた画像から顔特徴を抽出するように構成され得る。したがって、2D顔特徴抽出315は、ユーザ(たとえば、3Dテレプレゼンス通信の参加者)の顔を識別し、識別された顔の顔特徴を抽出するように構成され得る。顔検出器(顔ファインダ、顔ロケータ、および/またはその他)が、画像内の顔を識別するように構成され得る。顔検出器は、ソフトウェアアプリケーションにおける関数呼び出しとして実現することができる。関数呼び出しは、顔の位置の直交座標を返すことができる。顔検出器は、画像内に2人以上のユーザがいる場合、1つの顔を取出すように構成され得る。
【0064】
識別された顔から、顔特徴を抽出することができる。顔特徴は、2D MLアルゴリズムまたはモデルを用いて抽出することができる。顔特徴抽出器は、ソフトウェアアプリケーションにおける関数呼び出しとして実現することができる。関数呼び出しは、顔の顔ランドマーク(またはキーポイント)の位置を返すことができる。顔ランドマークは、目、口、耳、および/またはその他を含み得る。顔認識および顔特徴抽出は、顔ランドマークを返す単一の関数呼び出しとして実現することができる。
【0065】
図4は、顔特徴位置を絵で示す。言い換えれば、
図4は、ランドマークに数字を使用して絵で示している。たとえば、数字0および1は、それぞれ左目および右目の瞳孔とすることができる。顔特徴抽出器は、ランドマーク番号および画素番号を含む2つの変数を出力することができる。画素番号は、画像の解像度(たとえば、画素数)に基づき得る。たとえば、画像は、2048×1536の解像度を有することができる(たとえば、3メガピクセルカメラ)。したがって、画像は3,145,728画素を有することができ、最初の画素は画像の左上隅にあり、最後の画素は画像の右下隅にある。
【0066】
例示的な2変数ランドマーク出力は、ランドマークを123456番目の画素である右目の瞳孔として識別することができる(1,123456)であり得る。画素位置(たとえば、123456)は、必要に応じて(たとえば、何らかの計算に使用するために)、x位置およびy位置にマッピングすることができる。顔特徴抽出器は、2D座標系を用いて、画像(たとえば、2048×1526画像)内のランドマーク番号と、x位置と、y位置とを含むトリプルを出力することができる。たとえば、トリプル(1,23,218)は、ランドマークを、x位置が23でy位置が218の右目の瞳孔として識別することができる。これらは、顔ランドマークの位置を特定するための2つの可能な例に過ぎない。
【0067】
少なくとも1つの例示的な実装形態では、ユーザ(たとえば、3Dテレプレゼンス通信の参加者)の目を、対象のランドマークとすることができる。目はユーザの頭のポーズを示すことができるので、目を対象のランドマークとすることができる。ユーザがどこを見ているかは、対象ではない場合がある。したがって、瞳孔(たとえば、ランドマーク0およびランドマーク1)は、ユーザの頭のポーズを示すために使用されない場合がある。しかしながら、ユーザの頭のポーズを示すためにユーザの眼窩を使用することができる。たとえば、ランドマーク402,414,406および410は左目の位置を示すことができ、ランドマーク404,416,408および412は右目の位置を示すことができる。ランドマーク(たとえば、402,414,406および410)の各々は、位置を有する。複数の位置を用いて、平均化された位置(たとえば、目の中心)を作成することができる。しかしながら、ランドマーク位置の他の数学的な組合わせが可能である。たとえば、ランドマーク位置は、重み付けされてもよく、正規であってもよく、平均であってもよく、補間されてもよく(たとえば、中点であるかもしくは中点ではない補間)、および/またはその他であってもよい。
【0068】
少なくとも1つの例示的な実装形態では、ユーザの耳を、対象のランドマークとすることができる。したがって、ランドマーク418およびランドマーク420を、それぞれ左耳および右耳の位置を示すための対象のランドマークとすることができる。
【0069】
図3に戻って、2D特徴スタビライザ320は、ランドマークに関連付けられたノイズを低減するように構成され得る。たとえば、2D特徴を安定化させるために、2D特徴位置(たとえば、ランドマーク位置)にフィルタを適用することができる。例示的な実装形態では、フィルタを適用して、目の位置(たとえば、ランドマーク402,414,406,410およびランドマーク404,416,408,412)に関連付けられたノイズを低減することができる。少なくとも1つの例示的な実装形態では、特徴安定化のために少なくとも2つの画像が使用される。
【0070】
例示的な実装形態では、(たとえば、2D特徴の位置としての)目を安定化させることは、各目の周りのランドマークの位置を平均化することによって各目の中心を決定することを含み得る。2つ以上のランドマークに関連付けられたノイズは相関していない場合があるため、目の周りのランドマークを平均化することで、これらのランドマークに関連付けられたノイズを低減することができる。
【0071】
顔特徴(たとえば、目)の位置を安定化させることは、顔の動きに基づき得る。顔の動き(たとえば、速度)を用いて、ノイズをさらに低減することができる。すべての顔ランドマークのセットを生成することができ(
図4参照)、実質的に安定している顔ランドマークのサブセットが決定される。たとえば、特にノイズの多いランドマークを除外することができる。たとえば、耳および頬は、高レベルのノイズおよび不正確さを示すことがある。したがって、顔ランドマークの実質的に安定したサブセットを生成するために、耳(たとえば、ランドマーク418およびランドマーク420)と頬(たとえば、ランドマーク436およびランドマーク438)とに関連付けられたランドマークを除外することができる。顔の平均的な動きを決定することは、顔ランドマークのサブセットの平均2D速度を計算することを含み得る。眼窩は顔の残りの部分に対して固定されていることを考慮すると、顔の平均速度は眼窩の平均速度に近いはずである。したがって、平均化された目の中心の速度と、顔ランドマークのサブセットの平均速度とを合算することができる。平均化された目の中心と、顔ランドマークのサブセットの平均速度とは、予め選択された重みのセットで合算することができる。たとえば、顔の速度は90%で重み付けすることができ、目の中心の速度は10%で重み付けすることができる。安定化した目の特徴は、目の元の位置(たとえば、ランドマーク402,414,406,410およびランドマーク404,416,408,412)と、計算された平均速度とに基づき得る。
【0072】
3D特徴三角測量325は、ランドマークの3D位置を取得するように構成され得る。言い換えれば、顔特徴の2D場所(または位置)を3次元(3D)場所(または位置)に変換することができる。例示的な実装形態では、カメラ(たとえば、カメラ114,114′,114″,116,118)および3Dディスプレイ(たとえば、ディスプレイ110,112)の(別のカメラおよび/またはディスプレイに対する)位置および向きは、(たとえば、3Dテレプレゼンスシステムをセットアップする際の較正を使用して)既知である。顔特徴(たとえば、ランドマーク)を含む画像を取込むために使用される各カメラの2D画像空間におけるXおよびY座標を決定することができる。カメラランドマークのペアごとに光線を生成することができる。たとえば、ランドマーク(たとえば、目)の画素位置を起点として各カメラに向かう光線を、(たとえば、ソフトウェアにおける関数呼び出しを用いて)描画することができる。カメラが4台ある場合、4本の光線を生成することができる。ランドマークの3D位置は、これらの光線(たとえば、4本の光線)に基づいて決定することができる。たとえば、光線が交差する(または光線が交点に近づく)位置は、ランドマーク(たとえば、左目)の3D位置を示し得る。
【0073】
予測付き二重指数フィルタ330は、3Dランドマークに関連付けられたノイズを低減するように構成され得る。予測付き二重指数フィルタ330また、3Dランドマークの将来の位置を予測するように構成され(または予測するために使用され)得る。ランドマークノイズは2D特徴スタビライザ320を用いて低減されたが、3Dランドマーク場所(または位置)に関連付けられた残留ノイズが存在することがある。残留ノイズは、たとえば、環境条件またはユーザの態様(たとえば、眼鏡、顔の毛、および/またはその他)によって増幅され得る。予測付き二重指数フィルタ330は、この残留ノイズを低減するように構成され得る。
【0074】
例示的な実装形態では、変更帯域フィルタが、n0からn1までの各軸(x,yおよびz)の帯域を定義することができ、したがってn1~n0の幅を有する。新しい値がn0よりも小さい場合、n0を新しい値に設定することができ、n1をn0+幅に設定することができる。そうではなく、新しい値がn1を超える場合、n1を新しい値に設定することができ、n0をn1-幅に設定する。新しい値がn0とn1の間である場合は、何も変化しない。報告される実際の値は、帯域の中心、すなわち(n0+n1)/2であり得る。この変更帯域フィルタは、ジッタを除去し得る。しかしながら、帯域が広いほど、信号の応答性が悪くなる可能性があり、潜在的な誤差が大きくなる可能性がある。したがって、帯域はできるだけ狭くすべきである。
【0075】
3Dテレプレゼンスシステムにおいて、追跡-表示システムは、固有のレイテンシを有し得る。このレイテンシは、ユーザの新しい位置を取込む光子が頭部追跡カメラによって受信される時間から、新しく計算された位置がレンダラに送信され、ディスプレイの画素が行ごとに変化するディスプレイに最終的に送信される時間までであり得る。場合によっては、遅延は約60ミリ秒になることもある。したがって、ユーザの動きを用いて、正しい位置を予測することによってシーンをレンダリングし、自動ステレオディスプレイを通してユーザの目にステレオ画像を正確に投影することができる。予測付き二重指数フィルタ330は、将来を予測する(たとえば、ランドマークの将来の位置を予測する)ために使用される傾向信号を含み得る。
【0076】
変更帯域フィルタの出力は、信号をさらなるノイズからさらに平滑化するとともに将来の信号を予測する二重指数フィルタへの入力であり得る。二重指数フィルタは、指数フィルタの2回の再帰的適用であり得る。二重指数平滑化は、入力データ(たとえば、一連のデータ)の傾向を説明する項を使用することができる。この項は、指数平滑化の結果として更新され得る勾配成分であり得る。
【0077】
【0078】
指数平滑化(たとえば、線形指数平滑化)に、他のアルゴリズムを使用することができる。例示的な実装形態では、ランドマーク(たとえば、顔特徴)の位置の現在値はxtとすることができ、ランドマークの将来の位置の値はFt+mとして予測することができる。言い換えれば、顔特徴(たとえば、ランドマーク)の将来の位置を予測することは、時間ゼロ(0)の前の二重指数フィルタリングされた3D位置のシーケンスに基づく(たとえば、時間tまでのデータに基づく)、ゼロ(0)よりも大きい時間における(たとえば、時間m>0における)値(たとえば、Ft+m)を選択することを含み得る。
【0079】
仮想カメラ位置335、表示位置340、および音声位置345は、ランドマークの位置の現在値および/または将来の位置の値を、ディスプレイを駆動するために使用可能なバイナリとして、仮想シーンを表示するための(たとえば、左目のシーンおよび右目のシーンの位置を決定するための)レンダラへの入力として、かつ、音声を投影するために(たとえば、左耳と右耳との間のステレオバランスを決定するために)使用可能なバイナリとして、追跡プロセスのためのデータとして使用することができる。
【0080】
図3の上記説明は、1つの顔の位置を識別し決定するためのものである。しかしながら、例示的な実装形態は、通信における1人の参加者の位置を識別し決定することに限定されない。言い換えれば、2人以上の参加者を識別し、位置を特定することができる。したがって、例示的な実装形態は、3Dディスプレイおよび3Dレンダリングシステムを駆動する目的で、ならびに/または音声システムを駆動する目的で、2つ以上の顔の位置を各顔の目、耳、および/または口とともに識別し決定することを含み得る。
【0081】
3Dレンダリングは、3D画像レンダリングシステムを使用して所望の視点(POV)(たとえば、顔の位置として決定される)から3Dシーンをレンダリングすることを含み得る。たとえば、本明細書に記載されている頭部追跡技術を用いて、ディスプレイを見ている各ユーザの2つのPOV(左目および右目に1つずつ)を決定することができる。これらの視点は次に、シーンをレンダリングするための3Dレンダリングシステムへの入力となり得る。さらに、自動ステレオディスプレイでは、各ユーザの左目用および右目用の画像を取込み、それらを個々のスクリーン画素にマッピングする必要があり得る。LCDパネル上で(たとえば、レンチキュラーパネルの下に)にレンダリングされる、結果として得られる画像は、あたかも多くの画像が交互配置されているように見えることがある。マッピングは、レンズの光学的特性(たとえば、画素が、それに沿って可視である空間内の光線にどのようにマッピングするか)によって決定することができる。自動ステレオディスプレイは、視聴者の左目および右目に別々の画像を表示することができる任意の自動ステレオディスプレイを含み得る。1つのそのようなタイプのディスプレイは、レンチキュラーレンズアレイをLCDパネルの前にわずかな距離だけオフセットして配置することによって実現することができる。
【0082】
図5は、少なくとも1つの例示的な実施形態に係る方法のブロック図を示す。
図5に関して説明するステップは、(たとえば、
図1および
図2に示すような)装置に関連付けられたメモリに格納され、この装置に関連付けられた少なくとも1つのプロセッサ(たとえば、少なくとも1つのプロセッサ)によって実行されるソフトウェアコードの実行により行われてもよい。しかしながら、専用プロセッサとして具体化されるシステムなど、代替の実施形態が考えられる。以下に説明するステップは、プロセッサによって実行されるものとして説明されるが、これらのステップは必ずしも同じプロセッサによって実行されるとは限らない。言い換えれば、少なくとも1つのプロセッサが、
図5に関して以下に説明するステップを実行することができる。
【0083】
図5は、少なくとも1つの例示的な実施形態に係る、顔特徴を追跡し、顔特徴に基づいて位置(複数可)を位置決定する方法のブロック図を示す。顔特徴を追跡し、顔特徴に基づいて位置(複数可)を位置決定するこの方法は、(たとえば、3Dテレプレゼンスシステムにおいて)3Dテレプレゼンス通信を実行しながら繰り返しトリガされ得る。
図5に示すように、ステップS505において、2次元(2D)画像(複数可)を取込む。たとえば、3Dテレプレゼンスシステムにおいて複数のカメラを使用することができる。
図1を参照して、画像(複数可)は、(3Dシステム106のための)カメラ114,114′,114″,116および/または118を用いて、かつ、(3Dシステム108のための)カメラ120,122,134,134′および/または134″を用いて、取込むことができる。
【0084】
ステップS510において、顔(複数可)を検出する。たとえば、取込まれた画像を、顔検出アルゴリズムへの入力として使用することができる。顔検出器(顔ファインダ、顔ロケータ、および/またはその他)アルゴリズムが、画像内の顔を識別するように構成され得る。顔検出器アルゴリズムは、ソフトウェアアプリケーションにおける関数呼び出しとして実現することができる。関数呼び出しは、顔の位置の直交座標を返すことができる。顔検出器アルゴリズムは、機械学習アルゴリズムまたはモデルであり得る。顔検出器アルゴリズムは、画像内に2人以上のユーザがいる場合、1つの顔を取出すように構成され得る。顔は、3Dテレプレゼンスシステムを使用して通信している参加者に関連付けることができる。
【0085】
ステップS515において、顔特徴を識別する。たとえば、検出された顔(複数可)に関連付けられた特徴を識別することができる。顔特徴は、2D MLアルゴリズムまたはモデルを用いて抽出することができる。顔特徴抽出器は、ソフトウェアアプリケーションにおける関数呼び出しとして実現することができる。関数呼び出しは、顔の顔ランドマーク(またはキーポイント)の位置を返すことができる。顔ランドマークは、目、口、耳、および/またはその他を含み得る。顔認識および顔特徴抽出は、顔ランドマークを返す単一の関数呼び出しとして実現することができる。顔特徴を識別することは、
図4に関して上記でより詳細に説明している。
【0086】
ステップS520において、顔特徴を安定化させる。たとえば、顔特徴を安定化させることで、顔特徴を表すランドマークに関連付けられたノイズを低減することができる。たとえば、2D特徴を安定化させるために、2D特徴位置(たとえば、ランドマーク位置)にフィルタを適用することができる。例示的な実装形態では、フィルタを適用して、目の位置(たとえば、ランドマーク402,414,406,410およびランドマーク404,416,408,412)に関連付けられたノイズを低減することができる。少なくとも1つの例示的な実装形態では、特徴安定化のために少なくとも2つの画像が使用される。
【0087】
例示的な実装形態では、(たとえば、2D特徴としての)目を安定化させることは、各目の周りのランドマークの位置を平均化することによって各目の中心を決定することを含み得る。2つ以上のランドマークに関連付けられたノイズは相関していない場合があるため、目の周りのランドマークを平均化することで、これらのランドマークに関連付けられたノイズを低減することができる。
【0088】
顔の動き(たとえば、速度)を用いて、ノイズをさらに低減することができる。顔の動きを決定することは、顔ランドマークのサブセットの平均2D速度を計算することを含み得る。眼窩は顔の残りの部分に対して固定されていることを考慮すると、顔の動きは眼窩の動きに近いはずである。したがって、平均化された目の中心の速度と、顔ランドマークのサブセットの平均速度とを合算することができる。平均化された目の中心と、顔ランドマークのサブセットの平均速度とは、予め選択された重みのセットで合算することができる。たとえば、顔の速度は90%で重み付けすることができ、目の中心の速度は10%で重み付けすることができる。安定化した目の特徴は、目の元の位置(たとえば、ランドマーク402,414,406,410およびランドマーク404,416,408,412)と、計算された平均速度とに基づき得る。
【0089】
ステップS525において、2D特徴を3D特徴に変換する。たとえば、三角測量技術を用いて2D顔特徴位置を3D顔特徴位置に変換することができる。例示的な実装形態では、カメラ(たとえば、カメラ114,114′,114″,116,118)および3Dディスプレイ(たとえば、ディスプレイ110,112)の(別のカメラおよび/またはディスプレイに対する)位置および向きは、(たとえば、3Dテレプレゼンスシステムをセットアップする際の較正を使用して)既知である。顔特徴(たとえば、ランドマーク)を含む画像を取込むために使用される各カメラの2D画像空間におけるXおよびY座標を決定することができる。カメラランドマークのペアごとに光線を生成することができる。たとえば、ランドマーク(たとえば、目)の画素位置を起点として各カメラに向かう光線を、(たとえば、ソフトウェアにおける関数呼び出しを用いて)描画することができる。カメラが4台ある場合、4本の光線を生成することができる。ランドマークの3D位置は、これらの光線(たとえば、4本の光線)に基づいて決定することができる。たとえば、光線が交差する(または光線が交点に近づく)位置は、ランドマーク(たとえば、左目)の3D位置を示し得る。
【0090】
ステップS530において、3D特徴をフィルタリングする。たとえば、上記でより詳細に説明したように、二重指数フィルタを用いて、3Dランドマークに関連付けられたノイズを低減することができる。また、予測付き二重指数フィルタ330は、3Dランドマークの将来の位置を予測するように構成され(または予測するために使用され)得る。ランドマークノイズは2D特徴スタビライザ320を用いて低減されたが、3Dランドマーク場所(または位置)に関連付けられた残留ノイズが存在することがある。残留ノイズは、たとえば、環境条件またはユーザの態様(たとえば、眼鏡、顔の毛、および/またはその他)によって増幅され得る。予測付き二重指数フィルタ330は、この残留ノイズを低減し、3Dランドマークの将来の位置を予測するように構成され得る。
【0091】
カメラ位置、表示位置、および音声位置は、ランドマーク(たとえば、目の位置、耳の位置、および/またはその他)の位置の現在値および/または将来の位置の値を、ディスプレイを駆動するために使用可能なバイナリとして、仮想シーンを表示するための(たとえば、左目のシーンおよび右目のシーンの位置を決定するための)レンダラへの入力として、かつ、音声を投影するために(たとえば、左耳と右耳との間のステレオバランスを決定するために)使用可能なバイナリとして、追跡プロセスのためのデータとして使用することができる。
【0092】
したがって、ステップS535において、目に関連付けられたランドマークの位置に基づく追跡プロセスを使用して、仮想カメラ位置を決定する。この追跡プロセスは、目の予測位置に基づき得る。ステップS540において、目に関連付けられたランドマークの位置に基づく追跡プロセスを使用して、表示位置を決定する。この追跡プロセスは、目の予測位置に基づき得る。ステップS545において、耳に関連付けられたランドマークの位置に基づく追跡プロセスを使用して、音声位置を決定する。この追跡プロセスは、耳の予測位置に基づき得る。ランドマーク位置は、二重指数フィルタリングされ、将来のランドマーク位置を予測するために使用される3Dランドマーク位置であり得る。
【0093】
全般的な態様において、デバイス、システム、(コンピュータシステム上で実行することができるコンピュータ実行可能プログラムコードを格納した)非一時的なコンピュータ読取可能媒体、および/または方法は、複数のカメラを用いて少なくとも1つの画像を取込むことと、上記少なくとも1つの画像に関連付けられた複数の顔特徴を識別することと、上記複数の顔特徴のうちの少なくとも1つの顔特徴の位置を安定化させることと、上記少なくとも1つの顔特徴の上記位置を3次元(3D)位置に変換することと、上記少なくとも1つの顔特徴の将来の位置を予測することと、上記少なくとも1つの顔特徴の上記将来の位置を用いて、フラットパネルディスプレイ上で3D画像をレンダリングすることとを含む方法を用いて、プロセスを実行することができる。
【0094】
実装形態は、以下の特徴のうちの1つ以上を含み得る。たとえば、上記少なくとも1つの画像は2つ以上の画像を含み得るものであり、上記2つ以上の画像は、同じカメラによって順次、および2つ以上のカメラによって同時に、のうちの少なくとも一方で取込まれ得る。上記複数の顔特徴を識別することは、上記少なくとも1つの画像に関連付けられた顔を識別することと、上記顔の上の上記複数の顔特徴に対応する複数のランドマークを生成することと、位置を上記複数のランドマークの各々に関連付けることとを含み得る。上記複数の顔特徴を識別することは、上記少なくとも1つの画像に関連付けられた第1の顔を識別することと、上記少なくとも1つの画像に関連付けられた第2の顔を識別することと、上記第1の顔の上の上記複数の顔特徴に対応する第1の複数のランドマークを生成することと、上記第2の顔の上の上記複数の顔特徴に対応する第2の複数のランドマークを生成することと、第1の位置を上記第1の複数のランドマークの各々に関連付けることと、第2の位置を上記第2の複数のランドマークの各々に関連付けることとを含み得る。
【0095】
上記少なくとも1つの顔特徴の位置を安定化させることは、上記少なくとも1つの画像のうちの少なくとも2つから顔特徴を選択することと、上記顔特徴に関連付けられた少なくとも2つのランドマークを選択することと、上記少なくとも2つのランドマークの位置を平均化することとを含み得る。上記少なくとも1つの顔特徴の位置を安定化させることは、上記複数の顔特徴に対応する複数のランドマークを生成することと、上記複数のランドマークのサブセットを選択することと、上記複数のランドマークの上記サブセットの各ランドマークの位置に関連付けられた速度に基づいて、顔の動きを決定することとを含み得るものであり、上記少なくとも1つの顔特徴の位置を安定化させることは、上記顔の上記動きに基づく。上記少なくとも1つの顔特徴の上記位置を3D位置に変換することは、上記複数のカメラのうちの3つ以上によって取込まれた画像を用いて生成された位置データに基づいて、上記少なくとも1つの顔特徴の上記位置を三角測量することを含み得る。
【0096】
上記方法はさらに、上記少なくとも1つの顔特徴の上記3D位置に二重指数フィルタを適用して、上記少なくとも1つの顔特徴の上記3D位置に関連付けられたノイズを低減することを含み得る。上記少なくとも1つの顔特徴の将来の位置を予測することは、上記少なくとも1つの顔特徴の上記3D位置のシーケンスに二重指数フィルタを適用することと、時間ゼロ(0)の前の上記二重指数フィルタでフィルタリングされた上記3D位置のシーケンスに基づく、ゼロ(0)よりも大きい時間における値を選択することとを含み得る。上記方法はさらに、上記少なくとも1つの顔特徴の上記将来の位置を用いて音声を生成することを含み得る。
【0097】
全般的な態様において、デバイス、システム、(コンピュータシステム上で実行することができるコンピュータ実行可能プログラムコードを格納した)非一時的なコンピュータ読取可能媒体、および/または方法は、複数のコンピュータ命令を表すコードセグメントを含むメモリと、上記コードセグメントを実行するように構成されたプロセッサとを含むデバイスを用いてプロセスを実行することができ、上記コンピュータ命令は、複数のカメラを用いて少なくとも1つの画像を取込むことと、上記少なくとも1つの画像に関連付けられた複数の顔特徴を識別することと、上記複数の顔特徴のうちの少なくとも1つの顔特徴の位置を安定化させることと、上記少なくとも1つの顔特徴の上記位置を3次元(3D)位置に変換することと、上記少なくとも1つの顔特徴の将来の位置を予測することと、上記少なくとも1つの顔特徴の上記将来の位置を用いて、フラットパネルディスプレイ上で3D画像をレンダリングすることとを含む。
【0098】
実装形態は、以下の特徴のうちの1つ以上を含み得る。たとえば、上記少なくとも1つの画像は2つ以上の画像を含み得るものであり、上記2つ以上の画像は、同じカメラによって順次、および2つ以上のカメラによって同時に、のうちの少なくとも一方で取込まれ得る。上記複数の顔特徴を識別することは、上記少なくとも1つの画像に関連付けられた顔を識別することと、上記顔の上の上記複数の顔特徴に対応する複数のランドマークを生成することと、位置を上記複数のランドマークの各々に関連付けることとを含み得る。上記複数の顔特徴を識別することは、上記少なくとも1つの画像に関連付けられた第1の顔を識別することと、上記少なくとも1つの画像に関連付けられた第2の顔を識別することと、上記第1の顔の上の上記複数の顔特徴に対応する第1の複数のランドマークを生成することと、上記第2の顔の上の上記複数の顔特徴に対応する第2の複数のランドマークを生成することと、第1の位置を上記第1の複数のランドマークの各々に関連付けることと、第2の位置を上記第2の複数のランドマークの各々に関連付けることとを含み得る。
【0099】
上記少なくとも1つの顔特徴の位置を安定化させることは、上記少なくとも1つの画像のうちの少なくとも2つから顔特徴を選択することと、上記顔特徴に関連付けられた少なくとも2つのランドマークを選択することと、上記少なくとも2つのランドマークの位置を平均化することとを含み得る。上記少なくとも1つの顔特徴の位置を安定化させることは、上記複数の顔特徴に対応する複数のランドマークを生成することと、上記複数のランドマークのサブセットを選択することと、上記複数のランドマークの上記サブセットの各ランドマークの位置に関連付けられた速度に基づいて、顔の動きを決定することとを含み得るものであり、上記少なくとも1つの顔特徴の位置を安定化させることは、上記顔の上記動きに基づく。上記少なくとも1つの顔特徴の上記位置を3D位置に変換することは、上記複数のカメラのうちの3つ以上によって取込まれた画像を用いて生成された位置データに基づいて、上記少なくとも1つの顔特徴の上記位置を三角測量することを含み得る。
【0100】
上記コンピュータ命令はさらに、上記少なくとも1つの顔特徴の上記3D位置に二重指数フィルタを適用して、上記少なくとも1つの顔特徴の上記3D位置に関連付けられたノイズを低減することを含み得る。上記少なくとも1つの顔特徴の将来の位置を予測することは、上記少なくとも1つの顔特徴の上記3D位置のシーケンスに二重指数フィルタを適用することと、時間ゼロ(0)の前の上記二重指数フィルタでフィルタリングされた上記3D位置のシーケンスに基づく、ゼロ(0)よりも大きい時間における値を選択することとを含み得る。上記コンピュータ命令はさらに、上記少なくとも1つの顔特徴の上記将来の位置を用いて音声を生成することを含み得る。
【0101】
図6は、本明細書に記載されている技術とともに使用することができるコンピュータデバイス600およびモバイルコンピュータデバイス650の一例を示す。コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどのさまざまな形態のデジタルコンピュータを表すよう意図されている。コンピューティングデバイス650は、携帯情報端末、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなどのさまざまな形態のモバイルデバイスを表すよう意図されている。ここに示されているコンポーネント、それらの接続および関係、ならびにそれらの機能は、単に例示的であるよう意図されており、本文書に記載されているおよび/またはクレームされている発明の実装形態を限定することを意図したものではない。
【0102】
コンピューティングデバイス600は、プロセッサ602と、メモリ604と、ストレージデバイス606と、メモリ604および高速拡張ポート610に接続する高速インターフェイス608と、低速バス614およびストレージデバイス606に接続する低速インターフェイス612とを含む。コンポーネント602,604,606,608,610および612の各々は、さまざまなバスを用いて相互接続され、共通のマザーボード上にまたは適宜他の態様で搭載されてもよい。プロセッサ602は、コンピューティングデバイス600内で実行される命令を処理し得るものであり、当該命令は、高速インターフェイス608に結合されたディスプレイ616などの外部入出力デバイス上にGUIのためのグラフィック情報を表示するための、メモリ604内またはストレージデバイス606上に格納された命令を含む。いくつかの実装形態において、複数のメモリおよび複数タイプのメモリとともに、複数のプロセッサおよび/または複数のバスが適宜使用されてもよい。また、複数のコンピューティングデバイス600が接続され、各デバイスは、(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要な動作の一部を提供してもよい。
【0103】
メモリ604は、コンピューティングデバイス600内に情報を格納する。一実装形態において、メモリ604は、1つまたは複数の揮発性メモリユニットである。別の実装形態において、メモリ604は、1つまたは複数の不揮発性メモリユニットである。また、メモリ604は、磁気ディスクまたは光ディスクなどの、別の形式のコンピュータ読取可能媒体であってもよい。
【0104】
ストレージデバイス606は、コンピューティングデバイス600に大容量ストレージを提供することができる。一実装形態において、ストレージデバイス606は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、または、ストレージエリアネットワークもしくは他の構成内のデバイスを含むデバイスのアレイなどのコンピュータ読取可能媒体であってもよく、またはそのようなコンピュータ読取可能媒体を含んでもよい。コンピュータプログラム製品を、情報担体において有形に具体化してもよい。コンピュータプログラム製品は、実行されると上述のような1つ以上の方法を実行する命令も含み得る。情報担体は、メモリ604、ストレージデバイス606、またはプロセッサ602上のメモリなどのコンピュータ読取可能媒体または機械読取可能媒体である。
【0105】
高速コントローラ608は、コンピューティングデバイス600のための帯域幅を多く使用する動作を管理するのに対して、低速コントローラ612は、帯域幅をそれほど使用しない動作を管理する。そのような機能の割り当ては例示に過ぎない。一実装形態において、高速コントローラ608は、メモリ604、ディスプレイ616に(たとえば、グラフィックスプロセッサまたはアクセラレータを介して)結合されるとともに、さまざまな拡張カード(図示せず)を受け付け得る高速拡張ポート610に結合される。この実装形態において、低速コントローラ612は、ストレージデバイス606および低速拡張ポート614に結合される。さまざまな通信ポート(たとえば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、無線イーサネット)を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの1つ以上の入出力デバイス、またはスイッチもしくはルータなどのネットワーキングデバイスに、たとえばネットワークアダプタを介して結合されてもよい。
【0106】
コンピューティングデバイス600は、図に示されるように多くの異なる形態で実現されてもよい。たとえば、標準的なサーバ620として、またはそのようなサーバのグループで複数回実現されてもよい。また、ラックサーバシステム624の一部として実現されてもよい。加えて、ラップトップコンピュータ622などのパーソナルコンピュータとして実現されてもよい。あるいは、コンピューティングデバイス600からのコンポーネントが、デバイス650などのモバイルデバイス(図示せず)内の他のコンポーネントと組み合わされてもよい。そのようなデバイスの各々は、コンピューティングデバイス600,650のうちの1つ以上を含んでもよく、システム全体が、互いに通信する複数のコンピューティングデバイス600,650で構成されてもよい。
【0107】
コンピューティングデバイス650は、いくつかあるコンポーネントの中で特に、プロセッサ652と、メモリ664と、ディスプレイ654などの入出力デバイスと、通信インターフェイス666と、トランシーバ668とを含む。デバイス650には、さらなるストレージを提供するために、マイクロドライブまたは他のデバイスなどの記憶装置が設けられてもよい。コンポーネント650,652,664,654,666および668の各々は、さまざまなバスを用いて相互接続され、これらのコンポーネントのうちのいくつかは、共通のマザーボード上にまたは適宜他の態様で搭載されてもよい。
【0108】
プロセッサ652は、メモリ664に格納された命令を含む、コンピューティングデバイス650内の命令を実行することができる。プロセッサは、別々の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現されてもよい。プロセッサは、たとえば、ユーザインターフェイスの制御、デバイス650によって実行されるアプリケーション、およびデバイス650による無線通信など、デバイス650の他のコンポーネントの連携を提供してもよい。
【0109】
プロセッサ652は、ディスプレイ654に結合された制御インターフェイス658およびディスプレイインターフェイス656を通してユーザと通信してもよい。ディスプレイ654は、たとえば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)もしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェイス656は、ディスプレイ654を駆動してグラフィック情報および他の情報をユーザに表示するための適切な回路を含んでもよい。制御インターフェイス658は、ユーザからコマンドを受信し、これらのコマンドを変換してプロセッサ652に送信してもよい。加えて、デバイス650と他のデバイスとの近接エリア通信を可能にするために、外部インターフェイス662がプロセッサ652と通信するように設けられてもよい。外部インターフェイス662は、たとえば、ある実装形態では有線通信を提供してもよく、他の実装形態では無線通信を提供してもよく、複数のインターフェイスが使用されてもよい。
【0110】
メモリ664は、コンピューティングデバイス650内に情報を格納する。メモリ664は、1つもしくは複数のコンピュータ読取可能媒体、1つもしくは複数の揮発性メモリユニット、または1つもしくは複数の不揮発性メモリユニットのうちの1つ以上として実現されてもよい。また、拡張メモリ674が設けられて、拡張インターフェイス672を介してデバイス650に接続されてもよく、拡張インターフェイス672は、たとえばSIMM(シングル・インライン・メモリ・モジュール)カードインターフェイスを含み得る。そのような拡張メモリ674は、デバイス650のための追加の記憶空間を提供してもよく、またはデバイス650のためのアプリケーションもしくは他の情報を格納してもよい。具体的には、拡張メモリ674は、上記のプロセスを実行または補完するための命令を含んでもよく、セキュアな情報も含んでもよい。このため、拡張メモリ674はたとえば、デバイス650のためのセキュリティモジュールとして設けられてもよく、デバイス650のセキュアな使用を可能にする命令を用いてプログラムされてもよい。加えて、ハッキングできない態様でSIMMカードに識別情報を載せるなどして、セキュアなアプリケーションが追加情報とともにSIMMカードを介して提供されてもよい。
【0111】
メモリは、以下に記載するように、たとえばフラッシュメモリおよび/またはNVRAMメモリを含んでもよい。一実装形態において、コンピュータプログラム製品が情報担体において有形に具体化される。コンピュータプログラム製品は、実行されると上述のような1つ以上の方法を実行する命令を含む。情報担体は、たとえばトランシーバ668または外部インターフェイス662を介して受信され得る、メモリ664、拡張メモリ674、またはプロセッサ652上のメモリといった、コンピュータ読取可能媒体または機械読取可能媒体である。
【0112】
デバイス650は、必要に応じてデジタル信号処理回路を含み得る通信インターフェイス666を介して無線通信してもよい。通信インターフェイス666は、とりわけ、GSM(登録商標)音声電話、SMS、EMSもしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSといった、さまざまなモードまたはプロトコル下で通信を提供してもよい。そのような通信は、たとえば無線周波数トランシーバ668を介して行われてもよい。加えて、ブルートゥース、Wi-Fi、または他のそのようなトランシーバ(図示せず)を用いるなどして、短距離通信が行われてもよい。加えて、GPS(全地球測位システム)受信機モジュール670が、ナビゲーションおよび位置に関連する追加の無線データをデバイス650に提供してもよく、当該データは、デバイス650上で実行されるアプリケーションによって適宜使用されてもよい。
【0113】
また、デバイス650は、ユーザから発話の情報を受信してそれを使用可能なデジタル情報に変換し得る音声コーデック660を用いて、可聴式に通信してもよい。音声コーデック660は同様に、たとえばデバイス650のハンドセットにおいて、スピーカを介するなどしてユーザのために可聴音を生成してもよい。そのような音は、音声電話からの音を含んでもよく、録音された音(たとえば、音声メッセージ、音楽ファイルなど)を含んでもよく、さらに、デバイス650上で動作するアプリケーションによって生成された音を含んでもよい。
【0114】
コンピューティングデバイス650は、図に示されるように多くの異なる形態で実現されてもよい。たとえば、携帯電話680として実現されてもよい。また、スマートフォン682、携帯情報端末、または他の同様のモバイルデバイスの一部として実現されてもよい。
【0115】
例示的な実施形態はさまざまな修正例および代替的な形態を含み得るが、その実施形態は、図面に一例として示されており、本明細書において詳細に説明される。しかしながら、開示されている特定の形態に例示的な実施形態を限定することは意図されておらず、むしろ、例示的な実施形態は、請求項の範囲内にあるすべての修正例、均等物、および代替例をカバーすることが理解されるべきである。図面の説明全体にわたって同様の数字は同様の要素を指す。
【0116】
本明細書に記載されているシステムおよび技術のさまざまな実装形態は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組合わせで実現されてもよい。これらのさまざまな実装形態は、プログラム可能なシステム上で実行可能および/または解釈可能である1つ以上のコンピュータプログラムでの実装形態を含み得るものであり、当該プログラム可能なシステムは、少なくとも1つのプログラム可能なプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含み、当該少なくとも1つのプログラム可能なプロセッサは、ストレージシステムとデータおよび命令を送受信するように結合された専用または汎用プロセッサであってもよい。本明細書に記載されているシステムおよび技術のさまざまな実装形態は、ソフトウェアおよびハードウェアの局面を組合わせることができる回路、モジュール、ブロック、もしくはシステムとして、実現され得る、および/または本明細書において一般的に言及され得る。たとえば、モジュールは、プロセッサ(たとえば、シリコン基板、GaAs基板などの上に形成されたプロセッサ)またはその他のプログラム可能なデータ処理装置上で実行される機能/行為/コンピュータプログラム命令を含み得る。
【0117】
上記の例示的な実施形態のうちのいくつかは、フローチャートとして示されるプロセスまたは方法として説明されている。フローチャートは動作を逐次プロセスとして説明しているが、動作のうちの多くは、並列に、同時に、または並行して行なわれ得る。さらに、動作の順序を並べ替えてもよい。プロセスは、その動作が完了すると終了し得るが、図面には含まれていない追加のステップを有する可能性がある。プロセスは、方法、関数、手順、サブルーチン、サブプログラム等に対応し得る。
【0118】
いくつかがフローチャートによって示されている上述の方法は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはその任意の組合わせによって実現され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードとして実現された場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体のような機械またはコンピュータ読取可能媒体に格納され得る。プロセッサ(複数可)が必要なタスクを実行し得る。
【0119】
本明細書に開示されている具体的な構造的および機能的詳細は、例示的な実施形態を説明するための代表的なものに過ぎない。しかしながら、例示的な実施形態は、多くの代替的な形態で具体化され、本明細書に記載されている実施形態のみに限定されると解釈されるべきではない。
【0120】
「第1」、「第2」などの用語は、本明細書ではさまざまな要素を説明するために使用される場合があるが、これらの要素はこれらの用語によって限定されるべきではないことが理解されるであろう。これらの用語は、1つの要素を別の要素から区別するために使用されているに過ぎない。たとえば、例示的な実施形態の範囲から逸脱することなく、第1の要素を第2の要素と呼ぶことができ、同様に、第2の要素を第1の要素と呼ぶことができる。本明細書において使用する「および/または」という用語は、関連する列挙された項目のうちの1つ以上の任意のおよびすべての組合わせを含む。
【0121】
ある要素が別の要素に接続または結合されると称される場合、ある要素はこの他の要素に直接的に接続もしくは結合され得るか、または介在要素が存在し得ることが理解されるであろう。対照的に、ある要素が別の要素に直接的に接続または直接的に結合されると称される場合、介在要素は存在しない。要素同士の関係を説明するために使用する他の単語は同様に(たとえば、「間に」と「直接的に間に」、「隣接して」と「直接的に隣接して」など)解釈されるべきである。
【0122】
本明細書において使用する専門用語は、特定の実施形態を説明するためのものに過ぎず、例示的な実施形態を限定することを意図するものではない。本明細書において使用する単数形「a」、「an」および「the」は、文脈上明白に他の意味が記載されている場合を除いて、複数形も含むことを意図している。本明細書において使用する場合、「備える(comprises, comprising)」および/または「含む(includes, including)」という用語は、記載された特徴、整数、ステップ、動作、要素、および/または構成要素の存在を特定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことが、さらに理解されるであろう。
【0123】
また、いくつかの代替的な実装形態では、言及された機能/行為が、図に示される順番とは異なって行われてもよい。たとえば、連続して示される2つの図は実際には、関連する機能/行為に応じて、同時に実行されてもよく、または場合によっては逆の順序で実行されてもよい。
【0124】
特に定義しない限り、本明細書において使用するすべての用語(技術用語および科学用語を含む)は、例示的な実施形態が属する技術の当業者によって一般に理解されるのと同じ意味を有する。さらに、たとえば、一般に用いられている辞書で定義されている用語などの用語は、関連技術の文脈におけるそれらの意味と一致する意味を有すると解釈されるべきであり、本明細書において明白に定義されていない限り、理想化されたまたは過度に形式的な意味で解釈されないことが、理解されるであろう。
【0125】
ソフトウェアまたはアルゴリズム、および、コンピュータメモリ内でのデータビットに対する動作の記号的表現に関して、上記の例示的な実施形態および対応する詳細な説明の部分が提示されている。これらの説明および表現は、当業者が他の当業者に自身の成果の実体を効果的に伝えるようにするための説明および表現である。ここで使用される場合および一般的に使用される場合のアルゴリズムという用語は、所望の結果に至るステップの首尾一貫したシーケンスであると考えられる。ステップは、物理量の物理的な操作を必要とするステップである。必ずしもそうであるとは限らないが、通常は、これらの量は、格納、転送、組合わせ、比較、およびその他の態様で操作されることが可能な光信号、電気信号、または磁気信号の形態を取る。これらの信号をビット、値、要素、記号、文字、項、または数字などと称することは、主に一般的な使用の理由により、時には簡便であることが認められている。
【0126】
上記の説明のための実施形態において、プログラムモジュールまたは機能プロセスとして実現され得る(たとえばフローチャートの形態の)行為および動作の記号的表現の参照は、特定のタスクを実行するまたは特定の抽象データタイプを実現するとともに既存の構造要素において既存のハードウェアを使用して記述および/または実現され得るルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。そのような既存のハードウェアは、1つ以上の中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路、またはフィールドプログラマブルゲートアレイ(FPGA)コンピュータなどを含み得る。
【0127】
しかしながら、これらのおよび同様の用語はすべて、適切な物理量に関連付けられるべきであり、これらの量に適用される簡便なラベルに過ぎないことを、念頭に置くべきである。特に明記しない限り、または記述から明らかなように、表示の処理またはコンピューティングまたは計算または決定といった用語は、コンピュータシステムのレジスタおよびメモリ内で物理的な電子量として表わされるデータを操作し、当該データを、コンピュータシステムメモリ、またはレジスタ、または、他のそのような情報記憶デバイス、送信デバイスもしくは表示デバイス内の物理量として同様に表わされる他のデータに変換するコンピュータシステム、または同様の電子コンピューティングデバイスのアクションおよびプロセスを指す。
【0128】
また、例示的な実施形態のソフトウェアとして実現される局面は典型的に、何らかの形態の非一時的なプログラム記憶媒体上で符号化されるか、または、何らかの種類の伝送媒体上で実現される。プログラム記憶媒体は、磁気的(たとえば、フロッピーディスクもしくはハードドライブ)であってもよく、または光学的(たとえば、コンパクトディスク読取り専用メモリもしくはCD ROM)であってもよく、読取り専用またはランダムアクセスであってもよい。同様に、伝送媒体は、当該技術について公知であるツイストペア線、同軸ケーブル、光ファイバ、または何らかの他の好適な伝送媒体であってもよい。例示的な実施形態は、所与の実装形態のこれらの局面によって限定されない。
【0129】
最後に、添付の請求項は、本明細書に記載されている特徴の特定の組合わせを記載しているが、本開示の範囲は、以下にクレームされている特定の組合わせに限定されるものではなく、代わりに、特定の組合わせが今回、添付の請求項において具体的に列挙されているかどうかに関係なく、本明細書に開示されている特徴または実施形態の任意の組合わせを包含するよう拡張される。