(57)【特許請求の範囲】
【請求項１】
ユーザデバイスであって、
画像キャプチャデバイスから受信された、１人以上のユーザのビデオを、ネットワークを介して、少なくとも別のユーザデバイスに送信するよう構成されているネットワークインタフェースと、
複数の視覚的なユーザ特徴から１以上の特徴を選択し、前記の選択された１以上の特徴を追跡するために、前記の選択された１以上の特徴の検出に基づいて、前記ビデオを制御するよう構成されているビデオコントローラであって、前記の選択された１以上の特徴の前記検出は、前記１人以上のユーザのうちの少なくとも１人のユーザに関して、前記少なくとも１人のユーザの複数の検出された骨格ポイントを受信することを含み、前記ビデオは、前記複数の検出された骨格ポイントに基づいて制御される、ビデオコントローラと、
前記ユーザデバイスと前記別のユーザデバイスとの間の通信チャネルと、前記ユーザデバイス及び／又は前記別のユーザデバイスの１以上のリソースと、のうちの少なくとも一方に関する情報を受信し、前記の受信された情報に基づいて、前記ビデオコントローラによる該選択を制御するよう構成されているリソースマネージャと、
を備えたユーザデバイス。
【請求項２】
前記複数の視覚的なユーザ特徴は、ユーザの複数の身体パーツである、請求項１記載のユーザデバイス。
【請求項３】
前記ビデオは、複数のユーザのものであり、前記ビデオコントローラは、前記複数のユーザの各々に関する選択された特徴を追跡するために、前記複数のユーザの各々に関する前記選択された特徴の検出に基づいて、前記ビデオを制御するようさらに構成されている、請求項１記載のユーザデバイス。
【請求項４】
前記ネットワークインタフェースは、前記画像キャプチャデバイスから受信された、前記１人以上のユーザのさらなるビデオを、前記ネットワークを介して、さらなるユーザデバイスに送信するようさらに構成されており、
前記ビデオコントローラは、前記複数の視覚的なユーザ特徴から１以上のさらなる特徴を選択し、前記の選択された１以上のさらなる特徴を追跡するために、前記の選択された１以上のさらなる特徴の検出に基づいて、前記さらなるビデオを制御するようさらに構成されており、
前記リソースマネージャは、前記ユーザデバイスと前記さらなるユーザデバイスとの間の通信チャネルと、前記さらなるユーザデバイスの１以上のリソースと、のうちの少なくとも一方に関するさらなる情報を受信し、前記の受信されたさらなる情報に基づいて、前記ビデオコントローラによる該選択を制御するようさらに構成されている、請求項１記載のユーザデバイス。
【請求項５】
前記制御は、前記の選択された１以上の特徴の前記検出に基づいて境界データを生成することを含む、請求項１記載のユーザデバイス。
【請求項６】
前記制御は、前記の生成された境界データに基づいて、前記画像キャプチャデバイスから受信されたビデオデータを処理することを含む、請求項５記載のユーザデバイス。
【請求項７】
前記ビデオデータを処理することは、前記の生成された境界データに基づいて、前記ビデオデータをクロップすることを含む、請求項６記載のユーザデバイス。
【請求項８】
ユーザデバイスから別のユーザデバイスに１人以上のユーザのビデオを送信する方法であって、
画像キャプチャデバイスから前記ビデオを受信するステップと、
前記ユーザデバイスと前記別のユーザデバイスとの間の通信チャネルと、前記ユーザデバイス及び／又は前記別のユーザデバイスの１以上のリソースと、のうちの少なくとも一方に関する情報を受信するステップと、
前記の受信された情報に基づいて、複数の視覚的なユーザ特徴から１以上の特徴を選択するステップと、
前記の受信されたビデオにおいて、前記の選択された１以上の特徴を検出するステップと、
前記の選択された１以上の特徴を追跡するために、前記の選択された１以上の特徴の前記検出に基づいて、前記ビデオを制御するステップであって、前記の選択された１以上の特徴の前記検出は、前記１人以上のユーザのうちの少なくとも１人のユーザに関して、前記少なくとも１人のユーザの複数の検出された骨格ポイントを受信することを含み、前記ビデオは、前記複数の検出された骨格ポイントに基づいて制御される、ステップと、
前記ビデオを前記別のユーザデバイスに送信するステップと、
を含む方法。
【請求項９】
ユーザデバイスであって、
ネットワークに接続するためのネットワークインタフェースと、
１以上のプロセッサであって、
画像キャプチャデバイスから受信された、１人以上のユーザのビデオを、前記ネットワークを介して、別のユーザデバイスに送信し、
複数の視覚的なユーザ特徴から特徴を選択し、
第１の時間及び第２の時間のそれぞれにおいて、前記の選択された特徴の検出に基づいて、第１のセットの境界データ及び第２のセットの境界データを生成し、
動的モデルを使用して、前記第１のセットの境界データ及び前記第２のセットの境界データに基づいて、過渡データを生成し、
前記の選択された特徴を追跡するために、前記過渡データに基づいて前記ビデオを制御する
よう構成されている１以上のプロセッサと、
を備えたユーザデバイス。
【請求項１０】
ユーザデバイスからネットワークを介して別のユーザデバイスに１人以上のユーザのビデオを送信する方法であって、
画像キャプチャデバイスから前記ビデオを受信するステップと、
複数の視覚的なユーザ特徴から特徴を選択するステップと、
第１の時間及び第２の時間のそれぞれにおいて、前記の選択された特徴の検出に基づいて、第１のセットの境界データ及び第２のセットの境界データを生成するステップと、
動的モデルを使用して、前記第１のセットの境界データ及び前記第２のセットの境界データに基づいて、過渡データを生成するステップと、
前記の選択された特徴を追跡するために、前記過渡データに基づいて前記ビデオを制御するステップと、
前記ネットワークを介して前記別のユーザデバイスに前記ビデオを送信するステップと、
を含む方法。
【発明の詳細な説明】
【背景技術】
【０００１】
従来の通信システムは、パーソナルコンピュータやモバイルデバイス等といったデバイスのユーザが、インターネット等のパケットベースのコンピュータネットワークを介して音声通話又はビデオ通話を行うことを可能にしている。そのような通信システムは、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）システム又はビデオオーバーインターネットプロトコル（ＶｏＩＰ）システムを含む。これらのシステムは、従来の固定回線網又はモバイルセルラネットワークよりも、しばしば著しく低コストであるため、ユーザにとって有益である。これは、特に長距離通信の場合に当てはまり得る。ＶｏＩＰシステムを使用するために、ユーザは、自分のデバイスにクライアントソフトウェアをインストールして実行する。クライアントソフトウェアは、ＶｏＩＰ接続をセットアップするだけでなく、登録及びユーザ認証等の他の機能も提供する。音声通信に加えて、クライアントは、インスタントメッセージング（「ＩＭ」）、ＳＭＳメッセージング、ファイル転送、及びボイスメール等の他の通信メディアのための接続もセットアップする。
【０００２】
最近では、ネットワーク間（internet）能力及び機能が、テレビジョンセットの他の（例えば大型スクリーンの）表示手段に接続されるよう構成されているゲームコンソール、テレビジョンセット自体（「スマートＴＶ」としばしば呼ばれる）、テレビジョンセットに接続されるよう構成されているセットトップボックス等といったユーザデバイスに統合されている。これは、インターネット等のパケットベースのコンピュータネットワークを介する通信を可能にするための、ゲームコンソール、テレビジョンセット、セットトップボックス（又は同様のもの）へのクライアントソフトウェアの統合を含む。クライアントソフトウェアのこの統合は、遠端ユーザから受信されるビデオ信号を近端ユーザに出力することにより、ビデオ通話のために大型の高解像度スクリーンを利用することを可能にしている。さらに、特に、電気幹線により電力供給される大型のコンシューマ電子デバイスに対する電力要件は、例えばモバイルデバイスよりも厳格ではないので、大きな処理能力が、セットトップボックスやＴＶ等といったユーザデバイス内に提供され得る。これは、ユーザデバイスに接続されているカメラ又は他の同様の画像入力手段から受信されるビデオデータの高品質音声・ビデオ符号化等といったフルレンジの機能を、組み込まれた通信クライアントに含めることを可能にすることができる。
【発明の概要】
【０００３】
この発明の概要は、発明を実施するための形態において以下でさらに説明されるコンセプトのうち選択したものを簡略化した形で紹介するために提供される。この発明の概要は、特許請求される主題の主要な特徴又は必要不可欠な特徴を特定することを意図するものではないし、特許請求される主題の範囲を限定するために使用されることを意図するものでもない。
【０００４】
ネットワークインタフェース、ビデオコントローラ、及びリソースマネージャを備えたユーザデバイスが開示される。ネットワークインタフェースは、画像キャプチャデバイスから受信された、１人以上のユーザのビデオを、ネットワークを介して、少なくとも別のユーザデバイスに送信するよう構成されている。ビデオコントローラは、複数の視覚的なユーザ特徴から１以上の特徴を選択し、選択された特徴を追跡するために、選択された特徴の検出に基づいてビデオを制御するよう構成されている。リソースマネージャは、ユーザデバイスと別のユーザデバイスとの間の通信チャネル、並びに／又は、ユーザデバイス及び／若しくは別のユーザデバイスの１以上のリソース、に関する情報を受信し、受信された情報に基づいて、ビデオコントローラによる上記選択を制御するよう構成されている。
【０００５】
ネットワークに接続するためのネットワークインタフェース及び１以上のプロセッサを備えたユーザデバイスも開示される。１以上のプロセッサは、画像キャプチャデバイスから受信された、１人以上のユーザのビデオを、ネットワークを介して、別のユーザデバイスに送信するよう構成されている。１以上のプロセッサは、複数の視覚的なユーザ特徴から特徴を選択し、第１の時間及び第２の時間のそれぞれにおいて、選択された特徴の検出に基づいて、第１のセットの境界データ及び第２のセットの境界データを生成するようさらに構成されている。１以上のプロセッサは、動的モデルを使用して、第１のセットの境界データ及び第２のセットの境界データに基づいて過渡データ（transition  data）を生成し、選択された特徴を追跡するために、過渡データに基づいてビデオを制御するようさらに構成されている。
【０００６】
これらに対応する方法、及び、これらに対応する方法の各々に合わせて構成されている実行可能なコードを含むそれぞれのコンピュータプログラム製品も開示される。
【図面の簡単な説明】
【０００７】
本主題の理解のために、且つ、同主題がどのように実施され得るかを示すために、例として図面が参照される。
【図１】通信システムの概略図。
【図２】ユーザデバイスの概略ブロック図。
【図３】ビデオ制御技術の機能図。
【図４Ａ】ユーザデバイスとインタラクトしているユーザの概略図。
【図４Ｂ】ユーザデバイスとインタラクトしているユーザの概略図。
【図５】放射線パターンの概略図。
【図６Ａ】ユーザの概略正面図。
【図６Ｂ】ユーザの概略見下げ図。
【図６Ｃ】ユーザの概略側面図。
【図７Ａ】ユーザの検出された骨格ポイントの概略図。
【図７Ｂ】ユーザの推定された身体パーツの概略図。
【図８】ビデオを制御する方法のフローチャート。
【図９】時間の経過に伴ってビデオを制御する方法のフローチャート。
【発明を実施するための形態】
【０００８】
ビデオ通話（１対１又はマルチパーティ）中、室内のユーザの位置が、奥行き検出手段（奥行き検出器又は同様のもの）を用いて検出され、その検出に基づいて当該ユーザを追跡するために、他の１人以上のユーザに送信される、ビデオ通話のビデオが制御される技術が、本明細書で開示される。より詳細には、当該ユーザのそれぞれの視覚的な特徴（当該ユーザの身体パーツ等）が、そのようにして検出され、それらの特徴（例えば身体パーツ）から選択された特徴（全てである必要はない）を追跡するために、ビデオが制御される。特定の視覚的な特徴が追跡されるか否かは、通信チャネル状態（例えばチャネル帯域幅）、並びに／又は、近端デバイス及び／若しくは遠端デバイスのリソースに依拠する。例えば、より低いチャネル帯域幅及び／又は遠端デバイスのより小さなスクリーンサイズの場合には、（例えば）より少ない特徴（例えば身体パーツ）が追跡され得、より高いチャネル帯域幅及び／又は遠端デバイスのより大きなスクリーンサイズの場合には、より多くの特徴（例えば身体パーツ）が追跡され得る。
【０００９】
図１は、第１のユーザデバイス１０４に関連付けられている第１のユーザ１０２ａ（「ユーザＡ」）、第２のユーザデバイス１１０に関連付けられている第２のユーザ１０８（「ユーザＢ」）、第３のユーザデバイス１１４に関連付けられている第３のユーザ１１２（「ユーザＣ」）、及び第１のユーザの近くにいる第４のユーザ１０２ｂ（「ユーザＤ」）を含む通信システム１００を示している。他の実施形態では、通信システム１００は、任意の数のユーザ及び関連ユーザデバイスを含み得る。ユーザデバイス１０４、１１０、及び１１４は、通信システム１００において、ネットワーク１０６を介して通信することができ、それにより、ユーザ１０２ａ、１０２ｂ、１０８、及び１１２は、ネットワーク１０６を介して、他のユーザの各々と通信することが可能になる。図１に示される通信システム１００は、パケットベースの通信システムであるが、他のタイプの通信システムが使用されてもよい。ネットワーク１０６は、例えば、インターネットであり得る。ユーザデバイス１０４及び１１０の各々は、例えば、携帯電話機、タブレット、ラップトップ、パーソナルコンピュータ（「ＰＣ」）（例えば、Ｗｉｎｄｏｗｓ（登録商標）  ＰＣ、Ｍａｃ  ＯＳ（登録商標）  ＰＣ、及びＬｉｎｕｘ（登録商標）  ＰＣを含む）、ゲームコンソール若しくは他のゲームデバイス、テレビジョン、携帯情報端末（「ＰＤＡ」）、又はネットワーク１０６に接続することができる他の組み込みデバイスであり得る。ユーザデバイス１０４は、ユーザ１０２ａ、１０２ｂから情報を受け取り、ユーザ１０２ａ、１０２ｂに情報を出力するよう構成されている。ユーザデバイス１０４は、ディスプレイ及びスピーカ等の出力手段を備える。ユーザデバイス１０４は、キーパッド、タッチスクリーン、オーディオ信号を受信するためのマイクロフォン、及び／又は、一連のビデオフレーム（画像）から構成されるビデオ信号の画像をキャプチャするためのカメラ等の入力手段も備える。ユーザデバイス１０４は、ネットワーク１０６に接続されている。
【００１０】
ユーザデバイス１０４は、通信システム１００に関連付けられているソフトウェアプロバイダにより提供された通信クライアントのインスタンスを実行する。通信クライアントは、ユーザデバイス１０４内のローカルプロセッサ上で実行されるソフトウェアプログラムである。通信クライアントは、ユーザデバイス１０４が通信システム１００を介してデータを送受信するためにユーザデバイス１０４において必要とされる処理を実行する。
【００１１】
ユーザデバイス１１０は、ユーザデバイス１０４に対応するものであり、ユーザデバイス１０４において実行される通信クライアントに対応する通信クライアントを、ローカルプロセッサ上で実行する。ユーザデバイス１１０における通信クライアントは、ユーザデバイス１０４における通信クライアントが、ユーザ１０２ａ及び１０２ｂがネットワーク１０６を介して通信することを可能にするために必要とされる処理を実行するのと同様に、ユーザ１０８がネットワーク１０６を介して通信することを可能にするために必要とされる処理を実行する。ユーザデバイス１１４は、ユーザデバイス１０４に対応するものであり、ユーザデバイス１０４において実行される通信クライアントに対応する通信クライアントを、ローカルプロセッサ上で実行する。ユーザデバイス１１４における通信クライアントは、ユーザデバイス１０４における通信クライアントが、ユーザ１０２ａ及び１０２ｂがネットワーク１０６を介して通信することを可能にするために必要とされる処理を実行するのと同様に、ユーザ１１２がネットワーク１０６を介して通信することを可能にするために必要とされる処理を実行する。ユーザデバイス１０４、１１０、及び１１４は、通信システム１００におけるエンドポイントである。図１は、明瞭さのために、４人のユーザ（１０２ａ、１０２ｂ、１０８、及び１１２）及び３つのユーザデバイス（１０４、１１０、及び１１４）しか示していないが、より多くのユーザ及びユーザデバイスが、通信システム１００に含まれてもよく、それぞれのユーザデバイス上で実行されるそれぞれの通信クライアントを使用して、通信システム１００を介して通信してもよい。
【００１２】
図２は、通信システム１００を介して通信するための通信クライアントインスタンス２０６が実行されるユーザデバイス１０４の詳細な図を示している。ユーザデバイス１０４は、プロセッサすなわち「処理モジュール」２０２を備える。プロセッサ２０２は、１以上の中央処理装置（「ＣＰＵ」）を含む。プロセッサ２０２には、タッチスクリーンとして実装され得るディスプレイ２０８、オーディオ信号を出力するためのスピーカ（又は「ラウドスピーカ」）２１０、及び、赤外線（ＩＲ）プロジェクタ等の、非可視放射線を出力するための放射線プロジェクタ２２４といった出力デバイス；オーディオ信号を受信するためのマイクロフォン２１２、画像データを受信するためのカメラ２１６、キーパッド２１８、及び、例えば、赤外線信号の画像を受信するためのＩＲカメラといった、非可視放射線信号の非可視画像を受信するための放射線センサアレイ２２６といった入力デバイス；データを記憶するためのメモリ２１４；及び、ネットワーク１０６と通信するためのモデムといったネットワークインタフェース２２０が接続される。スピーカ２１０は、オーディオ信号処理モジュール２０９を介してプロセッサ２０２に接続される。ユーザデバイス１０４は、図２に示される要素以外の他の要素を備えてもよい。ディスプレイ２０８、スピーカ２１０、マイクロフォン２１２、メモリ２１４、カメラ２１６、キーパッド２１８、及びネットワークインタフェース２２０は、ユーザデバイス１０４に統合され得る。代替的に、ディスプレイ２０８、スピーカ２１０、マイクロフォン２１２、メモリ２１４、カメラ２１６、キーパッド２１８、及びネットワークインタフェース２２０のうちの１以上は、ユーザデバイス１０４に統合されなくてもよく、それぞれのインタフェースを介してプロセッサ２０２に接続されてもよい。そのようなインタフェースの一例がＵＳＢインタフェースである。例えば、ゲームコンソールの形態のユーザデバイスの場合、カメラ２１６、プロジェクタ２２４、センサ２２６、ディスプレイ２０８、マイクロフォン２１２、キーパッド２１８（例えばゲームコントローラ）は、ゲームコンソールに統合されず、それぞれのインタフェースを介してプロセッサ２０２に接続され得るのに対し、ネットワークインタフェース２２０、メモリ２１４、及びプロセッサ２０２は、ゲームコンソールに統合され得る。ネットワークインタフェース２２０を介するネットワーク１０６へのユーザデバイス１０４の接続が、無線接続である場合、ネットワークインタフェース２２０は、ネットワーク１０６に信号を無線で送信するとともにネットワーク１０６から信号を無線で受信するためのアンテナを含み得る。
【００１３】
プロジェクタ２２４及びセンサ２２６は、３次元（「３Ｄ」）の非可視放射線データをキャプチャするための奥行き検出器２２２を構成する。この実施形態では、プロジェクタ２２４は、センサ２２６の前方に、センサ２２６により検出可能な放射線パターンを投射する。センサ２２６からのセンサデータは、（図５及び図６Ａ〜図６Ｃを参照して以下でより詳細に説明するように）検出された放射線パターンにおける歪みに基づいて３Ｄ画像を構築するために使用される。奥行き検出器２２２及びカメラ２１６は、可能であればユーザデバイス１０４とは別の電源を有する、ユーザデバイス１０４に外付けされる１つのユニット内に一緒に収容され、適切なインタフェース（例えば、ＵＳＢ又はＵＳＢベース）を介してプロセッサ２０２に接続され得る。そのようなユニットの一例が、Ｍｉｃｒｏｓｏｆｔ  Ｋｉｎｅｃｔ  Ｓｅｎｓｏｒ（登録商標）である。
【００１４】
図２はまた、プロセッサ２０２上で実行されるオペレーティングシステム（「ＯＳ」）２０４も示している。ＯＳ２０４の上で、通信システム１００のクライアントインスタンス２０６のソフトウェアが実行される。オペレーティングシステム２０４は、ユーザデバイス１０４のハードウェアリソースを管理し、ネットワークインタフェース２２０を介してネットワーク１０６との間で通信されるデータを処理する。クライアント２０６は、オペレーティングシステム２０４と通信し、通信システム上の接続を管理する。クライアント２０６は、情報をユーザに１０２に提示するとともに情報をユーザ１０２から受け取るために使用されるクライアントユーザインタフェースを有する。このように、クライアント２０６は、ユーザ１０２が通信システム１００を介して通信することを可能にするために必要とされる処理を実行する。
【００１５】
次に図３を参照して、ネットワークを介してビデオを送信する方法について説明する。図３は、ユーザデバイス１０４の一部の機能図である。
【００１６】
図３に示されるように、ユーザデバイス１０４は、エンコーダ３０８（例えば、Ｈ２６４エンコーダ）を備える。これは、ネットワーク１０６を介する送信に先立って符号化するためにプロセッサ２０２によりビデオデータが供給されるハードウェアエンコーダであってもよいし、（例えば）プロセッサ２０２上で実行されるソフトウェアにより実装されるソフトウェアエンコーダであってもよいし、これらの組合せであってもよい。ユーザデバイスは、コントローラ３０２（例えば、クライアント１０６のソフトウェアの一部として実装される）、カメラ２１６、奥行き検出器２２２、及び奥行きプロセッサ３１０をさらに備える。コントローラ３０２は、リソースマネージャ３０６及びビデオ信号プロセッサ３０４を含む。カメラ２１６は、可視スペクトル（すなわち、人間の目に見える）におおける、ユーザ１０２ａ、１０２ｂのビデオ（図３において「近端ビデオ」とラベリングされている）の画像をキャプチャし、キャプチャした画像を、ビデオ信号プロセッサの第１の入力部に供給する。センサ２２６は、非可視スペクトル（すなわち、人間の目には見えない）における画像をキャプチャし、キャプチャした画像を、奥行きプロセッサ３１０の入力部に供給する。奥行きプロセッサ３１０は、ビデオ信号プロセッサの第２の入力部に接続されている出力部を有する。プロジェクタ２２４は、センサ２２６により検出可能な非可視放射線を、ユーザ１０２ａ、１０２ｂに向けて、センサ２２６の前方に投射する。コントローラ３０２、エンコーダ３０８、及びセンサプロセッサ３１０は、ビデオ処理システム３００を構成する。
【００１７】
リソースマネージャ３０６は、第１の入力部、第２の入力部、第３の入力部、及び出力部を有する。リソースマネージャ３０６の第１の入力部は、ユーザデバイス１０４とネットワーク１０６の１以上の他のユーザデバイス（例えば、１１０、１１４）との間の１以上の通信チャネルに関する情報を受信するよう構成されている。リソースマネージャ３０６の第２の入力部は、ユーザデバイス１０４及び／又は１以上の他のユーザデバイス（例えば、１１０、１１４）のリソースに関する情報を受信するよう構成されている。リソースマネージャ３０６の第３の入力部は、ビデオ信号プロセッサ３０４の出力部に接続されている。
【００１８】
リソースマネージャ３０６の出力部は、ビデオ信号プロセッサ３０４の第３の入力部に接続されている。ビデオ信号プロセッサ３０４は、エンコーダ３０８の入力部に接続されている出力部を有する。エンコーダは、ネットワーク１０６を介して第２のユーザデバイス１１０及び第３のユーザデバイスのうちの少なくとも１つに送信するためにネットワークインタフェース２２０に供給される前にユーザデバイス１０４においてさらなる処理（例えばパケット化）が実行され得る符号化されたビデオデータを供給するよう構成されている。
【００１９】
センサプロセッサ３１０は、センサ２２６によりキャプチャされセンサ２２６から受信されたセンサデータを処理して、センサ２２６の視野内の各ユーザについてそれぞれの複数の視覚的なユーザ特徴を検出するよう動作可能である。
【００２０】
ビデオ信号プロセッサ３０４は、リソースマネージャ３０６から出力された情報に基づいて、複数の視覚的なユーザ特徴から特徴を選択し、センサプロセッサ３１０による選択された特徴の検出に基づいて符号化するためにエンコーダ３０８に供給されるビデオを制御するよう構成されている。ビデオは、選択された特徴を追跡するためにそのように制御される、すなわち、ビデオにより、選択された特徴が経時的に追跡され、最終的に、検出された特徴がビデオ内で見えるようにする。
【００２１】
次に、これについて図４Ａ及び図４Ｂを参照して説明する。図４Ａ及び図４Ｂは、ユーザデバイス１０４（この実施形態ではゲームコンソールとして示されている）の近くにいるユーザ１０２（例えば、１０２ａ、１０２ｂ）を示している。ユーザデバイスは、ディスプレイ２０８、カメラ２１６、プロジェクタ２２４、及びセンサ２２６に接続されており、この実施形態では、これらの全てが、ユーザデバイス１０４に外付けされている。図４Ａにおいて、カメラ２１６によりキャプチャされた、第１の可視領域４０２ａのビデオ−ユーザ１０２の下側部分（例えば、足、脚等）を含まずユーザ１０２の上側部分（例えば、頭、肩等）を含むよう制限されている−が、符号化して最終的にネットワーク１０６を介して別のユーザ（例えば、１１２、１０８）に送信するために、エンコーダ３０８に供給される。図４Ａに示されるように、領域４０２ａのビデオのバージョンは、別のユーザに送信され、任意的に、別のユーザから受信されたビデオの上に重ねられてディスプレイ２０８上に表示される。図４Ｂにおいて、カメラ２１６によりキャプチャされた、第２の可視領域４０２ｂのビデオ−ユーザ１０２の上側部分及びユーザ１０２の下側部分の両方を含む−が、符号化して最終的にネットワーク１０６を介して別のユーザに送信するために、エンコーダ３０８に供給される。図４Ｂに示されるように、第２の領域４０２ｂのビデオのバージョンは、別のユーザに送信され、任意的に、別のユーザから受信されたビデオの上に重ねられてディスプレイ２０８上に表示される。
【００２２】
第１の可視領域４０２ａ及び第２の可視領域４０２ｂは、以下で説明するように、リソースマネージャ３０６から受信されたデータとセンサプロセッサ３１０から受信されたデータとに基づいてビデオ制御モジュールにより決定されたそれぞれのサイズ及び位置を有する。
【００２３】
図５は、プロジェクタ２２４により放射された放射線パターンを示している。図５に示されるように、放射線パターンは、系統的に不均質であり、交互強度（alternating  intensity）を有する複数の系統的に配された領域を含む。詳細には、図５の放射線パターンは、放射線ドットの実質的に一様なアレイを含む。放射線パターンは、この実施形態では赤外線（ＩＲ）放射線パターンであり、さらに、センサ２２６により検出可能である。図５の放射線パターンは、例示的なものであり、他の放射線パターンの使用も想定されている。
【００２４】
この放射線パターン５００は、プロジェクタ２２４により、センサ２２６の前方に投射される。センサ２２６は、センサ２２６の視野内に投射されたその非可視放射線パターンの画像をキャプチャする。これらの画像は、センサ２２６の視野内のユーザの奥行きを算出する（ユーザの３次元表現を実効的に構築する）ためにセンサプロセッサ３１０により処理され、これにより、異なるユーザと、それらの異なるそれぞれの身体パーツと、の認識が可能になる。
【００２５】
図６Ｂは、ユーザデバイス１０４の近くにいるユーザ１０２の見下げ図を示しており、図６Ａは、（カメラ２１６及び検出器２２２のセンサ２２６により確認される）対応する正面図であり、図６Ｃは、対応する側面図である。図示されるように、ユーザ１０２は、左手を検出器２２２に向けて伸ばしている姿勢をとっている（もちろん、ユーザは他の形の姿勢をとることもできる）。ユーザの頭が、ユーザの胴の上に突出しており、ユーザの胴は、ユーザの右腕の前にある。放射線パターン５００が、プロジェクタ２２４により、ユーザ上に投射されている。
【００２６】
図６Ａに示されるように、ユーザ１０２は、したがって、センサ２２６により検出される投射された放射線パターンを歪めるように作用する形状を有する。ここで、プロジェクタからより遠くにあるユーザのパーツ上に投射された放射線パターンの部分（すなわち、この場合には、放射線パターンのドットが、より離れるようになる）は、プロジェクタからより近くにあるユーザのパーツ上に投射された放射線パターンの部分（すなわち、この場合には、放射線パターンのドットが、より離れないようになる）と比べて、実効的に広げられる。広がりのスケーリングの程度は、プロジェクタからの距離に応じ、ユーザのかなり後ろのオブジェクト上に投射された放射線の部分は、センサ２２６にとって実効的に不可視である。放射線パターン５００は、系統的に不均質であるので、ユーザの形状による放射線パターンの歪みを使用して、センサプロセッサ３１０が、センサ２２６によりキャプチャされた歪んだ放射線パターンの画像を処理することにより、その形状を識別することができる（例えば、ユーザの頭、左手、右腕、胴等を識別することができる）。例えば、センサからユーザのある領域までの距離は、ユーザのその領域内における検出された放射線パターンのドット群の距離を測定することにより求めることができる。
【００２７】
図５及び図６Ａにおいては、放射線パターンが、人間の目に見えるものとして示されているが、これは理解を助けるために過ぎず、ユーザ１０２上に投射される放射線パターンは、実際には人間の目に見えない。
【００２８】
次に図７Ａ及び図７Ｂを参照して説明するように、センサ２２６によりキャプチャされた非可視放射線パターン５００の画像（センサデータ）は、センサプロセッサ３１０により処理される。この処理は、骨格検出処理を含む。骨格検出処理は、当技術分野において知られており、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｘｂｏｘ  ３６０（登録商標）（時として、Ｍｉｃｒｏｓｏｆｔ  Ｋｉｎｅｃｔ  Ｓｅｎｓｏｒ（登録商標）とともに使用される）において現在実装されており、その結果が、ソフトウェア開発者による使用のために、アプリケーションプログラミングインタフェース（ＡＰＩ）を介して利用可能になっている。
【００２９】
センサプロセッサ３１０は、センサ２２６からセンサデータを受信し、センサデータを処理して、センサ２２６の視野内の複数のユーザ（例えば、１０２ａ、１０２ｂ）を判別し、当技術分野において知られている骨格検出技術を使用して、各ユーザについて、それぞれの複数の骨格ポイントを識別する。各骨格ポイントは、ビデオ内の対応する人間の関節のおおよその位置を表す。
【００３０】
詳細には、この実施形態では、センサプロセッサ３１０は、センサ２２６の視野内の各ユーザについて、２０個のそれぞれの骨格ポイントを検出する。各骨格ポイントは、人間の２０個の認識される関節のうちの１つに対応するものであり、１人以上のユーザは、センサ２２６の視野内で移動するので、これらの認識される関節の各々は、空間及び時間において変化する。任意の瞬間時におけるこれらの関節の位置が、センサ２２６により検出された、１以上のユーザのそれぞれの３次元形状に基づいて算出される。骨格ポイントはまた、追跡状態（tracking  state）を有する。この状態は、関節がはっきりと可視である場合には「追跡されている」であり、関節がはっきりとは可視ではないがセンサプロセッサ３１０がその位置を推測している場合には「推定されている」であり、例えば、座位モード追跡（seated-mode  tracking）における下側関節の場合には（すなわち、ユーザが座っていると検出され、下側関節はセンサプロセッサ３１０により追跡されていない場合には）「追跡されていない」であり得る。
【００３１】
各骨格ポイントは、対応する関節が正しく検出されている尤度を示すそれぞれの信頼値とともに提供され得る。所定の閾値未満の信頼値を有するポイントは、ビデオモジュール３０４による処理から除外され得る。
【００３２】
これらの２０個の骨格ポイントが図７Ａに示されており、対応する人間の関節が表１に示されている。
【表１】
0006486377.tif 000002
【００３３】
特定の時間における、センサプロセッサによりレポートされた骨格ポイントの位置が、その特定の時間における、ビデオのフレーム（画像）内での対応する人間の関節の位置に対応するように、カメラ２１６からのビデオと骨格ポイントとが関連付けられる。センサプロセッサ３１０は、これらの検出された骨格ポイントを、骨格ポイントデータとして、ビデオコントローラ３０４による使用のためにビデオコントローラ３０４に供給する。ビデオデータのフレームごとに、センサプロセッサ３１０により供給される骨格ポイントデータは、例えば、ビデオフレームサイズの点で制限される座標系のデカルト座標（ｘ，ｙ）として表現される位置等の、そのフレーム内での骨格ポイントの位置を含む。
【００３４】
ビデオコントローラ３０４は、１人以上のユーザ（１０２ａ、１０２ｂ）に関する検出された骨格ポイントを受信し、それらの骨格ポイントから、そのユーザの複数の視覚的な特徴（又は、それらのユーザのそれぞれの複数の視覚的な特徴）を判別するよう構成されている。この実施形態では、視覚的なユーザ特徴は、人間の身体パーツの形態をとる。身体パーツは、ビデオコントローラにより検出される。身体パーツの各々は、ビデオプロセッサ３１０により提供された１以上の骨格ポイントから推定することを介して検出され、身体パーツの各々は、カメラ２１６からのビデオの対応するビデオフレーム内の領域に対応する（すなわち、前述した座標系内の領域として規定される）。図７Ｂは、図７Ａの骨格ポイントに基づいて検出された身体パーツを示している。
【表２】
0006486377.tif 000003
【００３５】
これらの視覚的な特徴は、実際に見ることができ識別することができる、ユーザの身体の特徴を表すという意味で視覚的であるということに留意されたい。しかしながら、この実施形態では、これらの視覚的な特徴は、ビデオコントローラによっては「確認されない」（例えば、これらの視覚的な特徴は、カメラ２１６によりキャプチャされたビデオデータ内では検出されない）。そうではなく、ビデオコントローラは、（例えばカメラ２１６からのビデオのフレームの処理に基づいてではなく、）センサプロセッサ３１０により提供された２０個の骨格ポイントの配置から、カメラ２１６からのビデオのフレーム内のこれらの特徴の（おおよその）相対位置、形状、及びサイズを推定する（例えば、各身体パーツを、その身体パーツに関連する骨格ポイントの検出された配置から算出される位置及びサイズ（並びに任意的に向き）を有する矩形（又は同様の形状）として近似することにより）。
【００３６】
次に図８を参照して、検出されたユーザ特徴（この実施形態では身体パーツ）に基づいて、ネットワークを介して送信されるビデオを制御する方法８００について説明する。図８は、方法８００のフローチャートを左側に示し、各方法ステップの対応する視覚的な表現を右側に示している。
【００３７】
この実施形態では、方法８００は、クライアント１０６の一部として−具体的にはコントローラ３０２により−アルゴリズム的に実施される。
【００３８】
方法８００は、第１のユーザデバイス（近端デバイス）１０４及び第２のユーザデバイス（遠端デバイス）１１０を使用して、これらのユーザデバイスのユーザの間で行われるリアルタイムビデオ通話のコンテキストにおいて説明される。
【００３９】
方法８００は、以下の身体領域を考慮する：
−領域１：頭、肩
−領域２：頭、肩、脊柱中心部、肘
−領域３：頭、肩、脊柱中心部、肘、脊柱下部、臀部
−領域４：頭、肩、脊柱全体、肘、臀部、脚、足
【００４０】
ビデオ通話の開始時に、近端デバイス１０４のクライアント１０６のリソースマネージャ３０６は、近端デバイス１０４により受信された情報に基づいて、（遠端デバイス１１０に送信されるビデオのために使用される）ビデオ解像度を決定する。例えば、この情報は、以下のうちの１以上に関する情報を含み得る：
−近端デバイスと遠端デバイスとの間の通信チャネルのチャネル帯域幅といったネットワークリソース（ビデオは、近端デバイスから、そのチャネルを介して、遠端デバイスに送信される）
−例えば、スクリーンサイズ（より多くの画素を有するスクリーンは、より少ない画素を有するスクリーンよりも多くのスクリーンリソースを有する）；遠端デバイスのスクリーンの横方向の長さと遠端デバイスのスクリーンの縦方向の長さとの比である、遠端デバイスのスクリーンのアスペクト比（例えば、４：３、１６：９等）；遠端デバイスの１以上のプロセッサの処理リソース（例えば、メガヘルツ、ギガヘルツ等を単位とする利用可能なプロセッササイクル）；遠端デバイスのメモリリソース（例えば、メガバイト、ギガバイト等を単位とする利用可能なメモリ）；ビデオ復号能力といった、遠端デバイスから受信される遠端デバイスのリソース
−例えば、近端デバイスの１以上のプロセッサの処理リソース（例えば、メガヘルツ、ギガヘルツ等を単位とする利用可能なプロセッササイクル）；近端デバイスのメモリリソース（例えば、メガバイト、ギガバイト等を単位とする利用可能なメモリ）；ビデオ符号化能力といった、近端デバイスのリソース
【００４１】
ビデオ解像度は、遠端デバイス１１０とのネゴシエーションを介して少なくとも部分的に決定され得る（例えば、近端デバイス１０４のリソースマネージャ３０６が、遠端デバイスに対して、遠端デバイスのリソースに関する情報を要求することにより）。
【００４２】
ビデオ通話中、近端デバイス１０４のリソースマネージャ３０６は、利用可能なリソース（例えば利用可能な帯域幅）をモニタリングし、遠端デバイス１１０に送信されているビデオのための解像度を増大又は低減させる決定を行い、その決定をビデオコントローラ３０４に通信する。したがって、例えば、チャネル帯域幅の変動が生じていることに起因して、すなわち、近端デバイス及び遠端デバイスのうちの一方又は双方が、信頼できない無線接続（例えばＷｉＦｉ（登録商標）接続）を介してネットワーク１０６に接続されていることから、ビデオ解像度はビデオ通話中に動的に変わり得る。
【００４３】
特徴を選択することには、受信された情報により、より良いチャネル品質及び／又はより多くのデバイスリソースが示されている場合には、より多くの特徴を選択すること、及び、受信された情報により、より悪いチャネル品質及び／又はより少ないデバイスリソースが示されている場合には、より少ない特徴を選択することが含まれる。例えば、より低い帯域幅及び／又はより小さなスクリーンサイズの場合には、より低い解像度が、リソースマネージャ３０６により決定される（これは、より少ない身体パーツを含む領域の選択をもたらす）。より高い帯域幅及び／又はより大きなスクリーンサイズの場合には、上記のより低い帯域幅及び／又はより小さなスクリーンサイズの場合に決定される解像度よりも高い解像度が、リソースマネージャ３０６により決定される（これは、より多くの身体パーツを含む領域の選択をもたらす）。
【００４４】
この実施形態では、ビデオは、１９２０×１０８０画像という固定解像度でカメラ２１６からキャプチャされる。しかしながら、以下で説明するように、キャプチャされたビデオは、送信の前にクロップされ得る（クロッピングにより、ビデオの外側部分の画像が除去される）。すなわち、キャプチャされたビデオデータのうち選択された部分のみ（選択された可視領域からキャプチャされる）が、符号化してその後に遠端デバイスに送信するためにエンコーダ３０８に供給される。したがって、クロップされたビデオデータを供給することは、規定された領域の外側のビデオデータはエンコーダ３０８に供給されないので、より少ないビデオデータをエンコーダ３０８に供給することを意味する。
【００４５】
ステップＳ８０２において、骨格ポイントデータが、センサプロセッサ３１０から、ビデオコントローラにより受信される。図８の右側の例示図において、位置しているユーザ１０２ａ及び１０２ｂ（センサ２２６の視野内の両者）に関する骨格データが示されている。しかしながら、方法８００は、明らかなように、任意の数のユーザ（１人以上）に関する骨格データの受信に適用することができる。
【００４６】
ステップＳ８０４において、ビデオコントローラ３０４は、リソースマネージャ３０６から受信された決定された解像度に基づいて、センサ２１６の視野内の各ユーザについて、それぞれの身体領域を選択する。ビデオコントローラは、このビデオ解像度に応じて、以下のように、表２の可能な複数の身体領域から、それぞれの身体領域を選択する：
−１９２０×１０８０の解像度：領域４
−１２８０×１０２４以上の解像度：領域３
−６４０×４８０以上の解像度：領域２
−他の解像度：領域１
【００４７】
代替的に以下のようであってもよい：
−１９２０の幅の解像度：領域４
−１２８０以上の幅の解像度：領域３
−６４０以上の幅の解像度：領域２
−他の解像度：領域１
【００４８】
特徴を選択することには、より高い解像度（より良いチャネル状態及び／又はより多くのデバイスリソース）の場合には、より多くの特徴を選択すること、及び、より低い解像度（より悪いチャネル状態及び／又はより少ないデバイスリソース）の場合には、より少ない特徴を選択することが含まれる。
【００４９】
センサ２２６の視野内の各ユーザ１０２ａ、１０２ｂについて、選択された領域が、受信された骨格データに基づいて検出される（すなわち、選択された領域のそれぞれの身体パーツが検出される）。次いで、ビデオが、符号化されて送信される前に、（以下で説明するように）検出された身体パーツに基づいてクロップされる（例えば、領域１に関しては、ビデオは、ユーザ１０２ａの頭、ユーザ１０２ｂの頭、ユーザ１０２ａの肩、及びユーザ１０２ｂの肩（領域１内には頭及び肩だけが含まれるので、他の身体パーツではない）の検出に基づいてクロップされる。したがって、全ての骨格ポイントが、クロッピングに必ずしも寄与するわけではない（なぜならば、これらの一部は、選択された領域の部分ではない身体パーツを規定することだけに役立ち得るからである）。すなわち、ビデオの制御は、複数の検出された骨格ポイントから選択された骨格ポイントに基づき得るものであり、複数の検出された骨格ポイントのうちの他の骨格ポイントには基づかない。
【００５０】
例えば、図８の右側の例示図において、領域２（頭、肩、脊柱中心部、肘）が選択されており、したがって、ビデオ制御は、ユーザ１０２ａに関する、領域２における検出された特徴（図８の５５０ａ）と、ユーザ１０２ｂに関する、領域２における検出された特徴（図８の５５０ｂ）と、の両方に基づく。
【００５１】
（この実施形態では、決定された解像度に従ってビデオを選択的にクロップすることを含む）ビデオ制御の一部として、ステップＳ８０６において、ビデオコントローラは、選択された領域の身体パーツの検出に基づいて、境界データを生成する。境界データは、矩形境界５５２（クロッピング矩形）を規定する。クロッピング矩形は、全ての追跡されるユーザに関するそれぞれの検出された領域の和集合（union）から形成される。
【００５２】
ステップＳ８０８において、ビデオコントローラ３０４は、予め定められたアスペクト比（例えば、４：３、１６：９等といった、遠端デバイス１１０のディスプレイのアスペクト比）に基づいて、生成された境界データを変更する。これにより、クロッピング矩形が、予め定められたアスペクト比に合わせて調整される。調整されたクロッピング矩形（外接矩形）が、図８の右側に５５４として示されている（この実施形態では、１６：９のアスペクト比を有する）。
【００５３】
ステップＳ８１０において、ビデオが、以下でより詳細に説明するように、調整された矩形に基づいてクロップされる。次いで、クロップされたビデオが、エンコーダ３０８により符号化される前に、出力解像度にスケーリングされる（例えば、送信先の遠端デバイスのスクリーンの解像度に合わせられる）。
【００５４】
方法８００は、ビデオデータのフレームごとに実行される。外接矩形により、フレーム間でユーザ特徴が追跡されるので（ユーザ特徴は、ユーザが移動するにつれて移動し得る、あるいは、ユーザ特徴は、例えば２人のユーザが離れるにつれ離れ得る）、クロッピング矩形も移動する。
【００５５】
しかしながら、ビデオデータの各フレームを、そのフレームに関して決定された調整された矩形に合わせて単純にクロップする（すなわち、そのフレームのうち、調整された矩形により規定される部分からのビデオデータのみを供給する）以外に、過渡データが、１以上の以前のフレームに関して算出されたそれぞれの調整された矩形と、現フレームに関して算出された調整された矩形と、に基づいて、生成される。過渡データは、弾性バネモデルに基づいて生成される。
【００５６】
諸実施形態において、弾性バネモデルは、以下のように定義され得る：
【数１】
0006486377.tif 000004
ここで、ｍ（「質量」）、ｋ（「剛性（stiffness）」）、及びＤ（「減衰（damping）」）は、設定可能な定数であり、ｘ（変位）及びｔ（時間）は、変数である。すなわち、このモデルでは、遷移の加速度が、その遷移の変位と速度との重み付け和に比例する。
【００５７】
クロッピング矩形は、弾性バネモデルに従って移動する。これは、フレーム間の遷移を平滑化させ、ぎくしゃくしたビデオを防ぐ。これはまた、次の理由から符号化の効率を増大させる。弾性モデルは、クロッピング矩形の移動を実効的に「抑制させる（dampen）」ので、弾性モデルは、隣接フレーム間の差を少なくさせ、これは、明らかなように、より効率的な差分符号化をもたらす。
【００５８】
次に、これについて図９を参照して説明する。図９は、時間の経過に伴って、遠端ユーザに送信されるビデオを制御する方法９００のフローチャートと、右側に方法９００の例示的な付随表現と、を示している。
【００５９】
ステップＳ９０２において、キャプチャされたビデオの一連のビデオフレームにおける現ビデオフレーム９５６に関して、ビデオコントローラは、第１の時間及び１以上の第２の時間のそれぞれにおいて、選択された視覚的なユーザ特徴（この実施形態では身体パーツ）の検出に基づいて、（例えば、上述したように、予め定められたアスペクト比を有する外接矩形を算出することにより）第１のセットの境界データ及び１以上の第２のセットの境界データを生成する。第１の時間は、現フレーム９５６の時間であり、１以上の第２の時間は、以前のフレームの１以上の時間である。以前のフレームに関する境界データは、後のフレームに関する境界データの前に生成され得る（例えば、フレーム単位で）。したがって、ステップＳ９０２は、複数のビデオフレームに及ぶ期間にわたって生じ得る。
【００６０】
第１の時間ｔ１及び第２の時間ｔ２それぞれにおける２つの例示的な外接矩形９５０、９５２が、図９の右側に示されている。ｔ２の矩形は、ｔ１の矩形よりも大きく示されている。これは、例えば、２人のユーザ（１０２ａ、１０２ｂ）が追跡されており、これらのユーザが離れるように移動した結果として、又は、利用可能なリソースの変化（例えば、チャネル帯域幅の増加）が、リソースマネージャ３０６に、決定されたアスペクト比を増大させた結果として、より多くの身体パーツを含む領域の選択（例えば、領域１から領域２への切り替え）がもたらされ、外接矩形が、それに応じてビデオコントローラ３０４により自動的に調整されたことに起因し得る。
【００６１】
ステップＳ９０４において、ビデオモジュール３０４は、上述した動的モデルを使用して、第１のセットの境界データ及び第２のセットの境界データに基づいて、過渡データを生成する。生成された過渡データは、以前のフレームの外接矩形から現フレーム９５６の外接矩形への過渡を表す過渡外接矩形９５４（図９に示されている）を実効的に規定する。
【００６２】
例えば、上記弾性バネモデルに従って、外接矩形は、異なる位置における１以上のポイント（境界データの一形態）によりパラメータ化され得る。ポイントは、矩形９５２のパラメータである、時間ｔ２における第２の位置（「desiredPosition」）と、矩形９５０のパラメータである、時間ｔ１における第１の位置（「currentPosition」）と、を有し得る。この場合、過渡データは、以下のように「currentPosition」を更新することにより生成され得る（更新された「currentPosition」が、過渡外接矩形９５４のパラメータである）：
velocity=0
previousTime=0
currentPosition=<some_constant_initial_value>
UpdatePosition(desiredPosition,time)
{
x=currentPosition-desiredPosition;
force=-stiffness*x-damping*m_velicity;
acceleration=force/mass;
dt=time-previousTime;
velocity+=acceleration*dt;
currentPosition+=velocity*dt;
previousTime=time;
}
【００６３】
ステップＳ９０８において、ビデオコントローラは、選択された特徴を追跡するために、過渡データに基づいてビデオを制御する。ここで、これは、フレーム９５６のうち外接矩形９５４内の画像データのみが、符号化して遠端ユーザ１０８に送信するためにエンコーダ３０８に供給される（フレーム９５６のうち外接矩形９５４外の画像データは供給されない）ように、ビデオをクロップすることを含む。
【００６４】
検出器２２２及びセンサプロセッサ３１０は、検出器２２２から約１メートル以上離れているユーザ（すなわち、センサの視野外にいるユーザ）は追跡されないように構成されているので、そのようなユーザはクロッピング矩形に影響を及ぼさない。したがって、例えば、２人のユーザが、最初には追跡されていたが、１人のユーザが、視野外に移動した場合、方法８００及び９００に従って、以後に算出されるクロッピング矩形は、残っているユーザの特徴のみに基づくようになり、したがって、残っているユーザに自動的に「ズームインする」ようになる（弾性モデルは、このズームに関して滑らかな遷移を確実にする）。
【００６５】
諸実施形態において、１９２０×１０８０のビデオに十分な帯域幅があるが、追跡されるべき少なくとも１つの身体があることをリソースマネージャ３０６が考慮する場合には、動的な追跡を可能にするために、送信されるビデオの解像度が１２８０×７２０に切り替えられるように、ビデオコントローラ３０４は、リソースマネージャ３０６にフィードバックすることができる（送信されるビデオの解像度が、キャプチャされた時点の解像度と等しい場合には、クロッピング矩形は、各フレームについて、そのフレームの全体を実効的に包含するので、「操作（manoeuvre）の余地」はない−これは、例えば、アップスケーリングが用いられない場合に当てはまる）。
【００６６】
示されているように、センサプロセッサ３１０は、検出された骨格ポイントの各々を識別する情報を供給するだけでなく、センサ２２６の視野内の１人以上のユーザのうちどのユーザが、それらの骨格ポイントに対応しているかを識別する情報も供給する。したがって、説明した方法８００は、（センサ検出器２２６がユーザを識別することができる限り）任意の数のユーザに対して実施することができ、選択された領域内の特徴ごとに、各領域について特徴を追跡する。したがって、方法８００は、外接矩形が、新たなユーザがフレームに入ったときに新たなユーザに対応するために、（弾性モデルにより）滑らかに自動的に遷移する（ビデオ内の選択された領域に関してそのユーザの身体パーツを含むように実効的にズームアウトすることにより）とともに、ユーザがフレームから出たときに調整するために、（弾性モデルにより）滑らかに自動的に遷移する（残っているユーザの、選択された領域に関する身体パーツのみが、ビデオ内に保たれるように、選択された領域に関するそのユーザの身体パーツにより以前に占められていた領域を除外するように実効的にズームインすることにより）ことで、複数のユーザがフレームに入ったとき及びフレームから出たときに自動的に適応する。
【００６７】
コントローラ３０２により実行される方法８００、９００は、例えば、ユーザデバイス１０４、１１０、及び１１４を使用して（ユーザ１０２ａ、１０２ｂ、１０８、及び１１２の間で）、ネットワーク１０６を介して行われるマルチパーティ通話中に実行されてもよい。この場合、近端デバイス１０４（第１のユーザデバイス）により、遠端デバイス１１０（第２のユーザデバイス）及び遠端デバイス１１４（第３のユーザデバイス）の各々について、個々の外接矩形が決定される。
【００６８】
すなわち、上記に加えて、リソースマネージャは、ユーザデバイス１０４と第３のユーザデバイス１１４との間の通信チャネルと、さらなる第３のユーザデバイス１１４のリソースと、のうちの少なくとも１つに関するさらなる情報を受信することができる（第２のユーザデバイス１１０に関する同様の情報等の上述した情報を受信することに加えて）。次いで、リソースマネージャは、第３のユーザデバイス１１４に送信されるビデオを制御するために、受信されたさらなる情報に基づいて、複数の視覚的なユーザ特徴（例えば身体パーツ）からさらなる特徴を選択する（第２のユーザデバイス１１０に送信されるビデオを制御するために、前述した特徴を選択することに加えて）。
【００６９】
次いで、ビデオコントローラ３０４は、第２のユーザデバイス１１０に関して選択された特徴の検出に基づいて、第２のユーザデバイス１１０に送信されるビデオを制御するとともに、（第３のユーザデバイス１１４のビデオ内の選択されたさらなる特徴を追跡するために、）第３のユーザデバイス１１４に関して選択されたさらなる特徴の検出に基づいて、第３のユーザデバイス１１４に送信されるビデオを制御する。
【００７０】
第３のユーザデバイスに関するさらなる特徴の選択は、第２のユーザデバイスに関する特徴の選択とは独立した異なるものであり得る。したがって、第３のユーザデバイスに送信されるさらなるビデオは、第２のユーザデバイスに送信されるビデオとは異なるものであり得、第３のユーザデバイスに送信されるさらなるビデオにより、第２のユーザデバイスに送信されるビデオよりも多い又は少ないユーザ特徴が追跡され得る。
【００７１】
第２のユーザデバイスのビデオに関する特徴の選択は、第３のユーザデバイスのビデオに関する特徴の選択とは独立したものである。（第１のユーザデバイス１０４が遅い接続を介してネットワーク１０６に接続されている等の）状態は、両方に関して同様のクロッピングをもたらし得るのに対し、（第２のユーザデバイス及び第３のユーザデバイスのうちの一方が、遅い接続を介してネットワーク１０６に接続されている、あるいは、第２のユーザデバイス及び第３のユーザデバイスのうちの一方が、制限されたリソースを有する等の）他の状態は、異なるクロッピングをもたらし得る。
【００７２】
例えば、第３のユーザデバイス１１４は、小型スクリーン（例えばスマートフォンスクリーン）を有し得る、且つ／又は、遅い接続を介してネットワーク１０６に接続され得る。一方、第２のユーザデバイス１１０は、大型スクリーンを有し得る（例えば、ＴＶスクリーンに接続され得る）、且つ／又は、速い接続を介してネットワーク１０６に接続され得る。この場合、第２のユーザデバイス１１０に送信されるビデオは、ユーザ１０８が、ユーザ１０２ａ及び１０２ｂの全身を表示するビデオを受信するように、「領域４」のクロッピング（表２参照）が適用され得る。一方、第３のユーザデバイス１１４に送信されるビデオは、ユーザ１０２ａ、１０２ｂのそれぞれの頭及び肩だけを表示するビデオを受信するように、「領域１」のクロッピング（表２参照）が適用され得る。
【００７３】
上記において、ネットワークを介して送信されるビデオは、ビデオ信号処理を介して制御されるが、代替的又は追加的に、ビデオは、選択された特徴の検出に基づいてカメラ自体を操作することにより、（コントローラ３０２の）ビデオコントローラ３０４によって制御されてもよい。例えば、そのような操作には、パン操作、ズーム操作、及びティルト操作のうちの少なくとも１つを実行するようにカメラの機構（mechanics）を操作することが含まれる。例えばマルチパーティ通話の場合、光学的ズーム及びデジタルズーム（クロッピング）が、例えば、最高選択数のユーザ特徴を表示するビデオをキャプチャするために使用される機械的ズーム（例えば、機械的ズームは、上記の例においては第２のユーザデバイス１１０に対して表示される領域を選択するために使用され得る）とともに使用され得、そのビデオのクロッピングは、より少ないユーザ特徴を含むビデオが送信されるべきユーザ（例えば、上記の例においては第３のユーザデバイス１１４）のためのビデオを制御するために使用され得る。
【００７４】
さらに、上記において、弾性モデルが使用されるが、代替として、過渡データを生成するために、（例えば、１以上の時間に関する微分方程式（differential  equations  in  time）に基づく）任意の動的モデルが使用されてもよい。
【００７５】
さらに、上記において、選択された視覚的な特徴（脚、腕等）は、非可視放射線パターンを、当該パターンを検出するよう構成されているセンサの前方に投射する奥行き検出器により供給されたセンサデータに基づいて検出されるが、代替の検出も想定されている。例えば、奥行き検出は、奥行きを測定するために放射線伝搬時間が使用される検出に基づく飛行時間型（time-of-flight）であってもよい。あるいは、（複数の２次元画像から）異なる勾配（inclination）を有するカメラ（３Ｄ画像認識アルゴリズムとともに使用されるプレノプティックカメラ又は同様のカメラ等）のアレイを使用して３Ｄ画像を構築すし、この３Ｄ画像から視覚的な特徴が検出されてもよい。
【００７６】
一般に、本明細書で説明した機能（例えば、図３に示される機能モジュール及び図８と図９とに示される機能ステップ）のいずれも、ソフトウェア、ファームウェア、ハードウェア（例えば固定論理回路）、又はこれらの組合せを用いて実装することができる。図３において別個に示されているモジュール（ビデオ処理システム３００、コントローラ３０２、ビデオ信号プロセッサ３０４、リソースマネージャ３０６、エンコーダ３０８等）及び図８と図９とにおいて別個に示されているステップは、別個のモジュール及び別個のステップとして実装されてもよいし、そうでなくてもよい。本明細書で使用されている「モジュール」、「機能」、「コンポーネント」、及び「論理」という用語は、一般に、ソフトウェア、ファームウェア、ハードウェア、又はこれらの組合せを表す。ソフトウェア実装の場合、モジュール、機能、又は論理は、プロセッサ（例えば１以上のＣＰＵ）上で実行されたときに指定されたタスクを実行するプログラムコードを表す。プログラムコードは、１以上のコンピュータ読み取り可能なメモリデバイスに記憶することができる。本明細書で説明した技術の特徴は、プラットフォーム非依存であり、これは、本技術が、多様なプロセッサを有する多様な商用コンピューティングプラットフォーム上で実装され得ることを意味する。例えば、ユーザデバイスは、例えば、プロセッサや機能ブロック等といった、ユーザデバイスのハードウェアに処理を実行させるエンティティ（例えばソフトウェア）も含み得る。例えば、ユーザデバイスは、ユーザデバイス（より詳細には、ユーザデバイスのオペレーティングシステム及び関連ハードウェア）に処理を実行させる命令を保持するよう構成され得るコンピュータ読み取り可能な媒体を含み得る。例えば、図３のモジュールの一部又は全ては、１以上のプロセッサ上で実行されるクライアントアプリケーションのソフトウェアにより実装され得る。したがって、命令は、処理を実行するようオペレーティングシステム及び関連ハードウェアを構成するように機能し、そのようにして、機能を実行するオペレーティングシステム及び関連ハードウェアの変換をもたらす。命令は、多種多様な構成を通じて、コンピュータ読み取り可能な媒体により、ユーザデバイスに提供され得る。
【００７７】
コンピュータ読み取り可能な媒体の１つのそのような構成は、信号担持媒体であり、したがって、ネットワークを介して等、（例えば搬送波として）命令を伝送するよう構成される。コンピュータ読み取り可能な媒体はまた、コンピュータ読み取り可能な記憶媒体として構成され得、したがって、信号担持媒体ではない。コンピュータ読み取り可能な記憶媒体の例は、ランダムアクセスメモリ（ＲＡＭ）と、読み取り専用メモリ（ＲＯＭ）と、光ディスクと、フラッシュメモリと、ハードディスクメモリと、磁気技術、光技術、及び他の技術を使用して命令及び他のデータを記憶することができる他のメモリデバイスと、を含む。
【００７８】
構造的特徴及び／又は方法的動作に特有の言葉で主題について説明したが、添付の特許請求の範囲において定められる主題は、上述した特定の特徴又は動作に必ずしも限定されるものではないことを理解されたい。そうではなく、上述した特定の特徴及び動作は、請求項を実施する例示的な形態として開示されている。
【図１】
0006486377.tif 000005
【図２】
0006486377.tif 000006
【図３】
0006486377.tif 000007
【図４Ａ】
0006486377.tif 000008
【図４Ｂ】
0006486377.tif 000009
【図５】
0006486377.tif 000010
【図６Ａ】
0006486377.tif 000011
【図６Ｂ】
0006486377.tif 000012
【図６Ｃ】
0006486377.tif 000013
【図７Ａ】
0006486377.tif 000014
【図７Ｂ】
0006486377.tif 000015
【図８】
0006486377.tif 000016
【図９】
0006486377.tif 000017