(57)【特許請求の範囲】
【請求項１】
一又は複数のコンピュータプロセッサを備え、
前記一又は複数のコンピュータプロセッサは、コンピュータ読み取り可能な命令を実行することにより、
動画配信装置から受信した動画を再生し、
ユーザの姿勢の特徴を表す姿勢特徴量を含むモーションデータを前記動画配信装置に送信し、
前記動画配信装置から前記姿勢特徴量に基づいて生成された前記ユーザのアバタのアニメーションを含む動画を受信し、
前記ユーザの姿勢が予め定められた基準姿勢に合致するか否かを判定し、
前記モーションデータの前記動画配信装置への伝送に遅延が発生している間に、前記ユーザの姿勢に合致すると判定された前記基準姿勢を識別する基準姿勢識別データを前記動画配信装置に送信し、
前記基準姿勢識別データは、前記姿勢特徴量よりもデータ量が少ない、
動画再生装置。
【請求項２】
前記ユーザの姿勢が前記基準姿勢と合致するか否かは、前記姿勢特徴量を変数として評価関数に基づいて判定される、
請求項１に記載の動画再生装置。
【請求項３】
前記ユーザの姿勢が前記基準姿勢に合致するか否かの判定は、前記姿勢特徴量に基づいて前記ユーザの姿勢を分類する分類器により行われ、
前記基準姿勢を表す画像を前記ユーザに提示し、提示された前記画像に対して前記ユーザが取った姿勢を表す姿勢特徴量を教師データとして学習することにより前記分類器を作成する、
請求項１に記載の動画再生装置。
【請求項４】
前記ユーザのアバタについて一又は複数の登録アニメーションが登録されており、
前記遅延が発生している間に前記基準姿勢識別データに基づいて特定された前記基準姿勢に対応する前記登録アニメーションを含む動画を受信する、
請求項１から請求項３のいずれか１項に記載の動画再生装置。
【請求項５】
時系列に取得された前記姿勢特徴量に基づいて前記アバタのユーザアニメーションを生成し、
前記ユーザアニメーションを前記登録アニメーションとして登録し、
前記ユーザアニメーションを含むサンプル動画を生成し、
前記サンプル動画を構成する複数のフレームの中から選択された基準フレームの画像に基づいて前記ユーザアニメーションに対応する前記基準姿勢を決定する、
請求項４に記載の動画再生装置。
【請求項６】
時系列に取得された前記姿勢特徴量に基づいて前記アバタのユーザアニメーションを生し、
前記ユーザアニメーションを前記登録アニメーションとして登録し、
所定のフレームレートに基づいて前記ユーザに関する複数の特徴点の各々において前記ユーザに関する前記姿勢特徴量を算出し、
第１フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第１ＲＭＳを算出し、
前記第１フレームよりも時系列的に後の第２フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第２ＲＭＳを算出し、
前記第２フレームよりも時系列的に後の第３フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第３ＲＭＳを算出し、
前記第２ＲＭＳと前記第１ＲＭＳとの差である第１ＲＭＳ差の正負と前記第３ＲＭＳと前記第２ＲＭＳとの差である第２ＲＭＳ差の正負とが逆転した場合に、前記第３フレームにおける前記姿勢特徴量に基づいて前記ユーザアニメーションに対応する前記基準姿勢を決定する、
請求項４に記載の動画再生装置。
【請求項７】
時系列に取得された前記姿勢特徴量に基づいて前記アバタのユーザアニメーションを生成し、
前記ユーザアニメーションを前記登録アニメーションとして登録し、
前記ユーザアニメーションに対する前記ユーザの動きに基づいて時系列に取得された前記姿勢特徴量を含む第１評価データと、前記ユーザアニメーションに対する前記ユーザの他の動きに基づいて時系列に取得された前記姿勢特徴量を含む第２評価データと、を比較することで前記ユーザアニメーションに対応する前記基準姿勢を決定する、
請求項４に記載の動画再生装置。
【請求項８】
前記姿勢特徴量は、前記ユーザのボーンの位置及び向きを３次元ベクトルで表すボーンデータを含む、
請求項１から請求項７のいずれか１項に記載の動画再生装置。
【請求項９】
前記モーションデータは、前記ユーザの顔の特徴を表す顔特徴量を含み、
前記一又は複数のコンピュータプロセッサは、
前記顔特徴量に基づいて前記ユーザの表情を分類する他の分類器により前記ユーザの表情が予め定められた基準表情に合致するか否かを判定し、
前記遅延が発生している間に、前記ユーザの表情が合致すると判定された前記基準表情を識別する基準表情識別データを前記動画配信装置に送信し、
前記基準表情識別データは、前記顔特徴量よりもデータ量が少ない、
請求項１から請求項８のいずれか１項に記載の動画再生装置。
【請求項１０】
前記基準姿勢識別データは、前記遅延が発生している間に前記モーションデータに代えて送信される、
請求項１から請求項９のいずれか１項に記載の動画再生装置。
【請求項１１】
前記モーションデータはリアルタイムで送信される、
請求項１から請求項１０のいずれか１項に記載の動画再生装置。
【請求項１２】
一又は複数のコンピュータプロセッサを備え、ユーザのアバタを含む動画を前記ユーザの動画再生装置に配信する動画配信システムであって、
前記一又は複数のコンピュータプロセッサは、コンピュータ読み取り可能な命令を実行することにより、
前記動画再生装置から伝送路を介して前記ユーザの姿勢を表す姿勢特徴量を含むモーションデータを受信し、
前記姿勢特徴量に基づいて生成された前記ユーザのアバタのアニメーションを前記動画に含めて配信し、
前記ユーザの姿勢に合致する前記動画再生装置からの前記モーションデータの伝送に遅延が発生している間に、前記ユーザの姿勢に合致する基準姿勢を識別する基準姿勢識別データを前記動画再生装置から受信し、
前記基準姿勢識別データに基づいて生成された前記ユーザのアバタの登録アニメーションを前記動画に含めて配信し、
前記基準姿勢識別データは、前記姿勢特徴量よりもデータ量が少ない、
動画配信システム。
【請求項１３】
一又は複数のコンピュータプロセッサがコンピュータ読み取り可能な命令を実行することにより実行される動画再生方法であって、
動画配信装置から受信した動画を再生する工程と、
ユーザの姿勢を表す姿勢特徴量を含むモーションデータを前記動画配信装置に送信する工程と、
前記動画配信装置から前記姿勢特徴量に基づいて生成された前記ユーザのアバタのアニメーションを含む動画を受信する工程と、
前記姿勢特徴量に基づいて前記ユーザの姿勢を分類する分類器により前記ユーザの姿勢が予め定められた基準姿勢に合致するか否かを判定する工程と、
前記モーションデータの前記動画配信装置への伝送に遅延が発生しているか否かを判定する工程と、
前記遅延が発生している間に、前記ユーザの姿勢が合致すると判定された前記基準姿勢を識別する基準姿勢識別データを前記動画配信装置に送信する工程と、
を備え、
前記基準姿勢識別データは、前記姿勢特徴量よりもデータ量が少ない、
動画再生方法。
【請求項１４】
一又は複数のコンピュータプロセッサを備え、
前記一又は複数のコンピュータプロセッサは、コンピュータ読み取り可能な命令を実行することにより、
ユーザの姿勢の特徴を表す姿勢特徴量を含むモーションデータを動画再生装置に送信し、
前記ユーザの姿勢が予め定められた基準姿勢に合致するか否かを判定し、
前記モーションデータの前記動画再生装置への伝送に遅延が発生している間に、前記ユーザの姿勢が合致すると判定された前記基準姿勢を識別する基準姿勢識別データを前記動画再生装置に送信し、
前記基準姿勢識別データは、前記姿勢特徴量よりもデータ量が少ない、
動画配信装置。
【請求項１５】
一又は複数のコンピュータプロセッサと、登録アニメーションを記憶するストレージと、を備え、
前記一又は複数のコンピュータプロセッサは、コンピュータ読み取り可能な命令を実行することにより、
動画配信装置からユーザの姿勢の特徴を表す姿勢特徴量を含むモーションデータを受信し、
前記モーションデータに基づいて生成されたユーザのアバタのアニメーションを含む動画を生成し、
前記動画配信装置からの前記モーションデータの伝送に遅延が発生している間に、前記ユーザの姿勢が合致すると判定された基準姿勢を識別する基準姿勢識別データに基づいて前記基準姿勢に対応する前記登録アニメーションを含む動画を生成し、
前記基準姿勢識別データは、前記姿勢特徴量よりもデータ量が少ない、
動画再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書における開示は、主に、動画再生装置、動画再生方法、及び動画配信システムに関する。
【背景技術】
【０００２】
動画を視聴する視聴ユーザがアバタを用いて当該動画に参加することができる動画配信システムが知られている。例えば、特開２０１２−１２００９８号公報（特許文献１）には、配信されている動画に視聴ユーザのアバタを含めることが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１２００９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動画を配信する動画配信サービスにおいては、視聴ユーザからのフィードバックを配信されている動画に反映することで視聴ユーザのエンゲージメントを高めることができる。例えば、上記特許文献１には、視聴ユーザからのコメントを当該視聴ユーザのアバタと関連付けて表示することが記載されている。この特許文献１のシステムでは、視聴ユーザは、コメントを投稿するという方法で配信されている動画へのフィードバックを提供しており、このフィードバックが配信されている動画に反映されている。
【０００５】
視聴ユーザからのコメントだけでなく視聴ユーザの動作に応じて動くアバタのアニメーションを配信コンテンツに含めることができれば、視聴ユーザのエンゲージメントをさらに高めることができると考えられる。しかしながら、視聴ユーザの動作に応じてアバタを動かすためには、当該視聴ユーザの動画再生装置から動画を生成する動画生成装置に対して、当該視聴ユーザの動作を示すモーションデータをリアルタイムで送信することが必要となる。アバタにユーザの動作を反映した動きを行わせるためには、当該ユーザの動作を示すモーションデータに当該ユーザのボーンの位置及び向きを示すボーンデータを含める必要がある。ボーンの位置及び向きは、３次元ベクトルで表現される。人体の動きを表現するためには、２０本以上のボーンのボーンデータが必要となることもある。
【０００６】
以上のように、ボーンデータのデータ量が大きいため、伝送路の帯域や輻輳の程度によっては、視聴ユーザの姿勢を示すボーンデータを含むモーションデータを遅延なく伝送することは難しい。特に、ユーザ装置からの上り回線は、コンテンツ配信に利用される下り回線よりも伝送容量が小さいため、上り回線を使ってのボーンデータの伝送には遅延が発生しやすい。その結果、視聴ユーザから送信されるボーンデータに基づいて視聴ユーザの動作をリアルタイムで反映したアバタのアニメーションを生成し、その生成したアニメーションを配信中の動画に含めることは難しい。
【０００７】
配信中の動画に視聴ユーザがアバタで参加する場合だけでなく、ユーザ同士が自らの動きに応じて動くアバタを介してコミュニケーションを行うシステムにおいても各ユーザのボーンデータを相手ユーザの装置に送信する必要がある。よって、ユーザ同士が自らの動きに応じて動くアバタを介してコミュニケーションを行うシステムにおいては、伝送路において遅延が発生した場合に各ユーザの動作を反映して滑らかに動くアバタのアニメーションを生成することは難しい。
【０００８】
本開示の目的は、上述した従来技術の問題の少なくとも一部を解決又は緩和する技術的な改善を提供することである。
【０００９】
本発明のより具体的な目的の一つは、従来よりも少ないデータ量の情報に基づいてユーザの姿勢に関連するアバタのアニメーションを生成できるようにすることである。
【００１０】
本明細書の開示の上記以外の目的は、本明細書全体を参照することにより明らかになる。本明細書に開示される発明は、上記の課題に代えて又は上記の課題に加えて、本明細書の発明を実施するための形態の記載から把握される課題を解決するものであってもよい。
【課題を解決するための手段】
【００１１】
一態様による動画再生装置は、一又は複数のコンピュータプロセッサを備え、前記一又は複数のコンピュータプロセッサは、コンピュータ読み取り可能な命令を実行することにより、動画配信装置から受信した動画を再生し、ユーザの姿勢の特徴を表す姿勢特徴量を含むモーションデータを前記動画配信装置に送信し、前記動画配信装置から前記姿勢特徴量に基づいて生成された前記ユーザのアバタのアニメーションを含む動画を受信し、前記姿勢特徴量に基づいて前記ユーザの姿勢を分類する分類器により前記ユーザの姿勢が予め定められた基準姿勢に属するか否かを判定し、前記モーションデータの前記動画配信装置への伝送に遅延が発生している間に、前記ユーザの姿勢が属すると判定された前記基準姿勢を識別し前記姿勢特徴量よりも少ないデータ量の基準姿勢識別データを前記動画配信装置に送信する。
【００１２】
一態様による動画再生装置において、前記分類器は、前記ユーザの姿勢が前記基準姿勢と合致するか否かを、前記姿勢特徴量を変数として評価関数に基づいて判定する。
【００１３】
一態様における動画再生装置は、前記基準姿勢を表す画像を前記ユーザに提示し、提示された前記画像に対して前記ユーザが取った姿勢を表す姿勢特徴量を教師データとして学習することにより前記分類器を作成する。
【００１４】
一態様における動画再生装置においては、前記ユーザのアバタについて一又は複数の登録アニメーションが登録されている。一態様における動画再生装置は、前記遅延が発生している間に前記基準姿勢識別データに基づいて特定された前記基準姿勢に対応する前記登録アニメーションを含む動画を受信する。
【００１５】
一態様における動画再生装置は、時系列に取得された前記姿勢特徴量に基づいて前記アバタのユーザアニメーションを生成し、前記ユーザアニメーションを前記登録アニメーションとして登録し、前記ユーザアニメーションを含むサンプル動画を生成し、前記サンプル動画を構成する複数のフレームの中から選択された基準フレームの画像に基づいて前記ユーザアニメーションに対応する前記基準姿勢を決定する。
【００１６】
一態様における動画再生装置は、所定のフレームレートに基づいて前記ユーザに関する複数の特徴点の各々において前記ユーザに関する前記姿勢特徴量を算出し、第１フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第１ＲＭＳを算出し、前記第１フレームよりも時系列的に後の第２フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第２ＲＭＳを算出し、前記第２フレームよりも時系列的に後の第３フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第３ＲＭＳを算出し、前記第２ＲＭＳと前記第１ＲＭＳとの差である第１ＲＭＳ差の正負と前記第３ＲＭＳと前記第２ＲＭＳとの差である第２ＲＭＳ差の正負とが逆転した場合に、前記第３フレームにおける前記姿勢特徴量に基づいて前記ユーザアニメーションに対応する前記基準姿勢を決定する。
【００１７】
一態様における動画再生装置は、前記ユーザアニメーションに対する前記ユーザの動きに基づいて時系列に取得された前記姿勢特徴量を含む第１評価データと、前記ユーザアニメーションに対する前記ユーザの他の動きに基づいて時系列に取得された前記姿勢特徴量を含む第２評価データと、を比較することで前記ユーザアニメーションに対応する前記基準姿勢を決定する。
【００１８】
一態様において、前記姿勢特徴量は、前記ユーザのボーンの位置及び向きを３次元ベクトルで表すボーンデータを含む。
【００１９】
一態様において、前記モーションデータは、前記ユーザの顔の特徴を表す顔特徴量を含む。一態様における動画再生装置は、前記顔特徴量に基づいて前記ユーザの表情を分類する他の分類器により前記ユーザの表情が予め定められた基準表情に属するか否かを判定し、前記遅延が発生している間に、前記ユーザの表情が属すると判定された前記基準表情を識別し前記顔特徴量よりも少ないデータ量の基準表情識別データを前記動画配信装置に送信する。
【００２０】
一態様において、前記基準姿勢識別データは、前記遅延が発生している間に前記モーションデータに代えて送信される。
【００２１】
一態様において、前記モーションデータはリアルタイムで送信される。
【００２２】
一態様による動画配信システムは、一又は複数のコンピュータプロセッサを備え、ユーザのアバタを含む動画を前記ユーザの動画再生装置に配信する。当該一又は複数のコンピュータプロセッサは、コンピュータ読み取り可能な命令を実行することにより、前記動画再生装置から伝送路を介して前記ユーザの姿勢を表す姿勢特徴量を含むモーションデータを受信し、前記姿勢特徴量に基づいて生成された前記ユーザのアバタのアニメーションを前記動画に含めて配信し、前記姿勢特徴量に基づいて前記ユーザの姿勢を分類する分類器により前記ユーザの姿勢が基準姿勢に属すると判定された場合、前記モーションデータの前記動画配信装置への伝送に遅延が発生している間に、前記基準姿勢を識別し前記姿勢特徴量よりも少ないデータ量の基準姿勢識別データを前記動画再生装置から受信し、前記基準姿勢識別データに基づいて生成された前記ユーザのアバタの登録アニメーションを前記動画に含めて配信する。
【００２３】
一態様による動画再生方法は、一又は複数のコンピュータプロセッサがコンピュータ読み取り可能な命令を実行することにより実行される。当該方法は、動画配信装置から受信した動画を再生する工程と、ユーザの姿勢を表す姿勢特徴量を含むモーションデータを前記動画配信装置に送信する工程と、前記動画配信装置から前記姿勢特徴量に基づいて生成された前記ユーザのアバタのアニメーションを含む動画を受信する工程と、前記姿勢特徴量に基づいて前記ユーザの姿勢を分類する分類器により前記ユーザの姿勢が予め定められた基準姿勢に属するか否かを判定する工程と、前記モーションデータの前記動画配信装置への伝送に遅延が発生している間に、前記ユーザの姿勢が属すると判定された前記基準姿勢を識別し前記姿勢特徴量よりも少ないデータ量の基準姿勢識別データを前記動画配信装置に送信する工程と、を備える。
【００２４】
本発明の一態様による動画再生装置は、所定のフレームレートに基づいて前記動画再生装置のユーザに関する複数の特徴点の各々において前記ユーザに関する姿勢特徴量を算出し、第１フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第１ＲＭＳを算出し、前記第１フレームよりも時系列的に後の第２フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第２ＲＭＳを算出し、前記第２ＲＭＳと前記第１ＲＭＳとの差であるＲＭＳ差を算出し、前記ＲＭＳ差が所定の閾値よりも大きい場合に動画配信装置に対して前記第２フレームにおける前記姿勢特徴量を送信し、前記動画配信装置から前記姿勢特徴量に基づいて生成された前記ユーザのアバタのアニメーションを含む動画を受信し、前記動画を再生する。
【００２５】
本発明の一態様による動画再生装置は、所定のフレームレートに基づいて前記動画再生装置のユーザに関する複数の特徴点の各々において前記ユーザに関する姿勢特徴量を算出し、第１フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第１ＲＭＳを算出し、前記第１フレームよりも時系列的に後の第２フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第２ＲＭＳを算出し、前記第２フレームよりも時系列的に後の第３フレームにおいて前記複数の特徴点の各々における前記姿勢特徴量の二乗平均平方根である第３ＲＭＳを算出し、前記第２ＲＭＳと前記第１ＲＭＳとの差である第１ＲＭＳ差の正負と前記第３ＲＭＳと前記第２ＲＭＳとの差である第２ＲＭＳ差の正負とが逆転した場合に、前記第３フレームにおける前記姿勢特徴量を送信し、前記動画配信装置から前記姿勢特徴量に基づいて生成された前記ユーザのアバタのアニメーションを含む動画を受信し、前記動画を再生する。
【発明の効果】
【００２６】
実施形態によれば、従来よりも少ないデータ量の情報に基づいてユーザの姿勢に関連するアバタのアニメーションを生成できる。
【図面の簡単な説明】
【００２７】
【図１】一実施形態による動画配信システムを示すブロック図である。
【図２】３次元骨格モデルを概念的に示す図である。
【図３】図１の動画配信システムにおいて記憶される基準姿勢管理データを説明する図である。
【図４ａ】開始姿勢に対応する３次元骨格モデルを概念的に示す図である。
【図４ｂ】トリガー姿勢に対応する３次元骨格モデルを概念的に示す図である。
【図５】図１の動画配信システムにおいて記憶されるアバタデータを説明する図である。
【図６】図１の動画配信システムにおいて記憶されるアニメーション管理データを説明する図である。
【図７】撮像画像を構成するフレームを模式的に示す図である。
【図８】各フレームにおける複数の特徴点における特徴量及びそのＲＭＳの例を示す表である。
【図９ａ】一実施形態において動画再生装置１０に表示される動画の例を示す図である。
【図９ｂ】一実施形態において動画再生装置１０に表示される動画の例を示す図である。
【図１０】一実施形態における動画再生方法における処理の一部の流れを示すフロー図である。
【図１１】他の実施形態による動画配信システムを示すブロック図である。
【図１２】図１１に示す動画配信システムにおいて記憶される基準表情管理データを説明する図である。
【図１３】図１１に示す動画配信システムにおいて記憶される登録表情管理データを説明する図である。
【図１４】他の実施形態による動画配信システムを示すブロック図である。
【図１５】他の実施形態による動画配信システムを示すブロック図である。
【図１６】各フレームにおける複数の特徴点における特徴量の例を示す表である。
【発明を実施するための形態】
【００２８】
以下、図面を適宜参照し、本発明の様々な実施形態を説明する。複数の図面において同一の又は類似する構成要素には同じ参照符号が付される。
【００２９】
図１から図６を参照して、一実施形態による動画配信システムについて説明する。図１は、一実施形態による動画配信システム１を示すブロック図である、図２、図４ａ、及び図４ｂは、３次元骨格モデルを概念的に示す図であり、図３、図５、及び図６は、動画配信システム１において記憶される情報を説明するための図である。
【００３０】
動画配信システム１は、動画再生装置１０と、動画配信装置２０と、を備える。動画再生装置１０と動画配信装置２０とは、ネットワーク５０を介して相互に通信可能に接続されている。動画配信システム１は、ストレージ６０を備えてもよい。動画再生装置１０のユーザである視聴ユーザは、動画配信装置２０から配信された動画を動画再生装置１０により視聴することができる。動画配信システム１は、２台以上の動画再生装置を備えていてもよい。動画配信装置２０から配信される動画を動画再生装置１０で視聴する視聴ユーザは、自らのアバタを当該動画に表示させることができる。言い換えると、視聴ユーザは、自らのアバタを介して配信されている動画に参加することができる。視聴ユーザは、配信されている動画に自らのアバタを表示させ、そのアバタを介して動画の配信ユーザ（又は配信されている動画内のキャラクタ）や他の視聴ユーザと交流することができる。
【００３１】
まず、動画再生装置１０について説明する。動画再生装置１０は、スマートフォンなどの情報処理装置である。動画再生装置１０は、スマートフォン以外に、携帯電話機、タブレット端末、パーソナルコンピュータ、電子書籍リーダー、ウェアラブルコンピュータ、ゲーム用コンソール、及びこれら以外の動画を再生可能な各種情報処理装置であってもよい。
【００３２】
動画再生装置１０は、視聴ユーザによって動画の視聴及びそれ以外の目的のために用いられる。動画再生装置１０は、コンピュータプロセッサ１１、通信Ｉ／Ｆ１２、各種情報を記憶するストレージ１３、再生される動画を表示するディスプレイ１４、及びセンサユニット１５、を備える。動画配信装置１０は、集音マイク等の前記以外の構成要素を備えてもよい。動画再生装置１０は、動画配信装置２０から配信された動画を再生する。
【００３３】
コンピュータプロセッサ１１は、ストレージ１３又はそれ以外のストレージからオペレーティングシステムや様々な機能を実現する様々なプログラムをメモリにロードし、ロードしたプログラムに含まれる命令を実行する演算装置である。コンピュータプロセッサ１１は、例えば、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＧＰＵ、これら以外の各種演算装置、又はこれらの組み合わせである。コンピュータプロセッサ１１は、ＡＳＩＣ、ＰＬＤ、ＦＰＧＡ、ＭＣＵ等の集積回路により実現されてもよい。図１においては、コンピュータプロセッサ１１が単一の構成要素として図示されているが、コンピュータプロセッサ１１は複数の物理的に別体のコンピュータプロセッサの集合であってもよい。本明細書において、コンピュータプロセッサ１１によって実行されるとして説明されるプログラム又は当該プログラムに含まれる命令は、単一のコンピュータプロセッサで実行されてもよいし、複数のコンピュータプロセッサにより分散して実行されてもよい。また、コンピュータプロセッサ１１によって実行されるプログラム又は当該プログラムに含まれる命令は、複数の仮想コンピュータプロセッサにより実行されてもよい。コンピュータプロセッサ１１により実現される機能については後述する。
【００３４】
通信Ｉ／Ｆ１２は、ハードウェア、ファームウェア、又はＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装される。動画再生装置１０は、通信Ｉ／Ｆ１２を介して、他の装置とデータを送受信することができる。
【００３５】
ストレージ１３は、コンピュータプロセッサ１１によりアクセスされる記憶装置である。ストレージ１３は、例えば、磁気ディスク、光ディスク、半導体メモリ、又はデータを記憶可能な前記以外の各種記憶装置である。ストレージ１３には、様々なプログラムが記憶され得る。ストレージ１３に記憶され得るプログラム及び各種データの少なくとも一部は、動画再生装置１０とは物理的に別体のストレージ（例えば、ストレージ６０）に格納されてもよい。
【００３６】
ディスプレイ１４は、表示パネルと、タッチパネルと、を有する。表示パネルは、液晶パネル、有機ＥＬパネル、無機ＥＬパネル、又はこれら以外の画像を表示可能な任意の表示パネルである。タッチパネルは、プレイヤのタッチ操作（接触操作）を検出することができるように構成されている。タッチパネルは、プレイヤのタップ、ダブルタップ、ドラッグ等の各種タッチ操作を検出することができる。タッチパネルは、静電容量式の近接センサを備え、プレイヤの非接触操作を検出可能に構成されてもよい。動画配信装置２０から配信された動画は、ディスプレイ１４に表示される。
【００３７】
センサユニット１５は、動画再生装置１０のユーザの姿勢を検出する一又は複数のセンシングデバイスを備える。このセンシングデバイスには、ＲＧＢカメラ、深度センサ、及びこれら以外のユーザの姿勢を検出可能なデバイスが含まれてもよい。センサユニット１５は、コンピュータプロセッサを含んでもよい。センサユニット１５のコンピュータプロセッサは、センシングデバイスによって取得されたデータを解析することで、ユーザの姿勢を表す３次元骨格データを生成してもよい。センサユニット１５に備えられるコンピュータプロセッサは、専用ソフトウェアを実行することで３次元骨格データを生成してもよい。センサユニット１５により検出されるユーザの姿勢を表す３次元骨格データは、特許請求の範囲に記載されている「姿勢特徴量」の一例である。センサユニット１５は、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎが提供するｋｉｎｅｃｔ（商標）のようにＬｉｇｈｔ  Ｃｏｄｉｎｇ技術を用いて３次元骨格データを生成してもよい。つまり、センサユニット１５は、赤外線のランダムパターンをユーザ等の対象に照射し、その画像を解析することによって対象の深度を取得し、当該深度を解析することで３次元骨格データを生成してもよい。Ｌｉｇｈｔ  Ｃｏｄｉｎｇ技術を用いて検出されるユーザの姿勢を表す特徴量は３次元骨格データには限られず、それ以外のユーザの姿勢を表す特徴量が用いられ得る。
【００３８】
３次元骨格データは、人体又は人体の一部を３次元骨格モデルで表現するためのデータである。３次元骨格モデルは、人体の骨の軸線に相当する複数のボーンと各ボーンを接続する複数の関節とによって、人体又は人体の一部の骨格をモデリングする。図２を参照して３次元骨格モデルについてさらに説明する。図２は、３次元骨格モデルの概念を説明するための説明図である。図２に示されている例では、３次元骨格モデル１００は、８本のボーンと、これらのボーンを接続する関節と、を含む。３次元骨格モデルのボーンは、３次元座標上の２点を結ぶ線分として表される。よって、各ボーンは、３次元空間（ＸＹＺ空間）において各ボーンに相当する有効線分を表す３次元ベクトルＶ１〜Ｖ８で表現される。３次元骨格モデルを構成する３次元骨格モデルは、当該３次元モデルに含まれるボーンの各々を表す３次元ベクトルを含む。図２には、人体の上半身の３次元骨格モデルが示されているが、３次元骨格モデルは、人体の全部の骨格をモデリングしたものであってもよいし、人体の上半身以外の一部（例えば、腕、下半身など）をモデリングしたものであってもよい。また、図２の例では、人体の上半身を８本のボーンで表現しているが、人体の上半身は８本より多い数又は少ない数のボーンで表現されてもよい。より多い数のボーンを含む３次元骨格モデルは、指の骨を表すボーンを含んでもよい。これにより、指の動きを検出することもできる。
【００３９】
ストレージ１３に記憶される情報について説明する。図示の実施形態においては、ストレージ１３には、基準姿勢管理データ１３ａ及びそれ以外の動画配信装置２０が提供するサービスを利用するために必要な様々な情報が記憶される。一実施形態による動画配信システム１においては、予めユーザの基準姿勢が定められている。動画配信システム１においては、一つだけの基準姿勢が定められていてもよいし、複数の基準姿勢が定められていてもよい。この一又は複数の基準姿勢の各々は、ユーザの一連の動作を識別するために複数の姿勢のセットであってもよい。例えば、基準姿勢には、当該基準姿勢に対応付けられるユーザの一連の動作の開始時の姿勢を示す開始姿勢と、当該一連の動作において開始姿勢を取った後の特定の姿勢を示すトリガー姿勢とが含まれてもよい。開始姿勢及びトリガー姿勢の少なくとも一方は、複数であってもよい。
【００４０】
基準姿勢管理データ１３ａの例が図３に示されている。図３に示されている例では、基準姿勢に開始姿勢とトリガー姿勢とが含まれている。このため、ストレージ１３においては、基準姿勢を識別する基準姿勢識別データと対応付けて、当該基準姿勢に含まれる開始姿勢を示す開始姿勢データ、及び、当該基準姿勢に含まれるトリガー姿勢を示すトリガー姿勢データと、が記憶され得る。
【００４１】
基準姿勢識別データは、例えば、基準姿勢を識別する基準姿勢ＩＤである。基準姿勢ＩＤは、例えば数ビットで表される識別コードである。基準姿勢ＩＤのビット数は、動画配信システム１で使用される基準姿勢の数に応じて定めることができる。基準姿勢ＩＤは、例えば、１０ビット以下の情報量のデータで表される。基準姿勢ＩＤは、５ビット以下、４ビット以下、３ビット以下、２ビット以下の情報量のデータで表されてもよい。したがって、基準姿勢識別データ（基準姿勢ＩＤ）は、３次元骨格データよりも大幅にデータ量が小さい。
【００４２】
開始姿勢データは、開始姿勢を示すデータである。開始姿勢データは、例えば、開始姿勢を示す３次元骨格データである。開始姿勢の例が図４ａに示されている。図示の例における開始姿勢は、右拳が右肩と同じ高さになるように右の掌を前方に突き出している姿勢である。開始姿勢データは、この開始姿勢をモデリングした３次元骨格データであってもよい。開始姿勢データは、開始姿勢における各ボーンの位置及び向きを示す３次元ベクトルデータを含んでもよい。開始姿勢を示す３次元骨格データは、図４ａに模式的に示されているように８本のボーンを含んでもよい。この８本のボーンを表すベクトルＴ１〜Ｔ８は、センサユニット１５の検出データに基づいて生成される視聴ユーザの３次元骨格データに含まれるボーンのベクトルＶ１〜Ｖ８とそれぞれ対応している。姿勢特徴量として３次元骨格データ以外のデータが用いられる場合には、開始姿勢データは、その使用される姿勢特徴量のうち開始姿勢を表すデータである。
【００４３】
トリガー姿勢データは、トリガー姿勢を示すデータである。トリガー姿勢データは、例えば、トリガー姿勢を示す３次元骨格データである。トリガー姿勢の例が図４ｂに示されている。図示の例におけるトリガー姿勢は、右腕を前方斜め上に突き上げた姿勢である。トリガー姿勢データは、このトリガー姿勢をモデリングした３次元骨格データであってもよい。トリガー姿勢を示す３次元骨格データは、各ボーンの位置及び向きを示す３次元ベクトルデータを含んでもよい。トリガー姿勢を示す３次元骨格データは、図４ｂに模式的に示されているように８本のボーンを含んでもよい。この８本のボーンのベクトルＴ１〜Ｔ８は、センサユニット１５の検出データに基づいて生成される視聴ユーザの３次元骨格データに含まれるボーンのベクトルＶ１〜Ｖ８とそれぞれ対応している。姿勢特徴量として３次元骨格データ以外のデータが用いられる場合には、トリガー姿勢データは、その使用される姿勢特徴量のうちトリガー姿勢を表すデータである。
【００４４】
次に、動画配信装置２０について説明する。動画配信装置２０は、例えば、動画再生装置１０にネットワーク５０の下り回線を介して動画を配信する動画配信サーバである。動画配信装置２０は、コンピュータプロセッサ２１、通信Ｉ／Ｆ２２、及び各種情報を記憶するストレージ２３、を備える。動画配信装置２０は、集音マイク等の前記以外の構成要素を備えてもよい。
【００４５】
コンピュータプロセッサ２１は、ストレージ２３又はそれ以外のストレージからオペレーティングシステムや様々な機能を実現する様々なプログラムをメモリにロードし、ロードしたプログラムに含まれる命令を実行する演算装置である。上述したコンピュータプロセッサ１１についての説明は、可能な限りコンピュータプロセッサ２１にも当てはまる。コンピュータプロセッサ２１により実現される機能については後述する。
【００４６】
通信Ｉ／Ｆ２２は、ハードウェア、ファームウェア、又はＴＣＰ／ＩＰドライバやＰＰＰドライバ等の通信用ソフトウェア又はこれらの組み合わせとして実装される。動画配信装置２０は、通信Ｉ／Ｆ２２を介して、他の装置とデータを送受信することができる。
【００４７】
ストレージ２３は、コンピュータプロセッサ２１によりアクセスされる記憶装置である。ストレージ２３は、例えば、磁気ディスク、光ディスク、半導体メモリ、又はデータを記憶可能な前記以外の各種記憶装置である。ストレージ２３には、様々なプログラムが記憶され得る。ストレージ２３に記憶され得るプログラム及び各種データの少なくとも一部は、動画配信装置２０とは物理的に別体のストレージ（例えば、ストレージ６０）に格納されてもよい。
【００４８】
ストレージ２３には、オブジェクトデータ２３ａ、アバタデータ２３ｂ、アニメーション管理データ２３ｃ、及び前記以外の動画の生成及び配信のために必要な様々な情報が記憶され得る。
【００４９】
オブジェクトデータ２３ａは、動画を構成する仮想空間を構築するためのアセットデータを含んでもよい。オブジェクトデータ２３ａは、動画を構成する仮想空間の背景を描画するためのデータ、動画に表示される各種物体を描画するためのデータ、及びこれら以外の動画に表示される各種オブジェクトを描画するためのデータが含まれる。オブジェクトデータ２３ａには、仮想空間におけるオブジェクトの位置を示すオブジェクト位置情報を含んでもよい。オブジェクトデータ２３ａには、上記以外にも、動画再生装置１０の視聴ユーザからの表示要求に基づいて動画に表示されるギフトオブジェクトを示すデータが含まれ得る。ギフトオブジェクトには、エフェクトオブジェクトと、通常オブジェクトと、装飾オブジェクトと、が含まれ得る。視聴ユーザは、所望のギフトオブジェクトを購入することができる。動画に表示されるギフトオブジェクトの詳細は、特許第６４４６１５４号の明細書に記載されている。本出願の動画配信システム１においても、特許第第６４４６１５４号の明細書における記載と同様にギフトオブジェクトを動画中に表示することができる。
【００５０】
アバタデータ２３ｂの例が図５に示されている。図５に示すように、アバタデータ２３ｂは、動画配信システム１で視聴ユーザによって利用されるアバタのアバタ識別情報と、当該アバタを動画内に表示するためのアバタ表示情報と、を含むことができる。言い換えると、ストレージ２３には、アバタのアバタ識別情報と対応付けて、当該アバタを表示するためのアバタ表示情報が記憶され得る。アバタ識別情報は、例えば、アバタを識別するアバタＩＤである。動画再生装置１０のユーザは、動画配信システム１において自らのアバタを設定することができる。ユーザごとにアバタを管理するために、アバタＩＤは、ユーザを識別するユーザＩＤと対応付けてストレージ２３に記憶されてもよい。アバタは、例えば、人間や動物を模した画像として動画内に表示される。アバタ表示情報は、アバタを動画内に表示するために用いられる情報である。アバタ情報には、例えば、頭部、ヘアスタイル、顔のパーツ（目、鼻、口など）、胴部、服、アクセサリ、アイテム、及びこれら以外のアバタを構成するパーツの画像を示すパーツ情報又はそれ以外のアバタの外観を特定するためのスキン情報が含まれる。ユーザは、好みのパーツ画像を選択することで自らのアバタを登録することができる。アバタ表示情報には、動画にアバタを２Ｄ表示するための２Ｄ表示情報と、動画にアバタを３Ｄ表示するための３Ｄ表示情報とが含まれてもよい。３Ｄ表示情報には、アバタを動画内で立体的に表示するためのパーツの画像を示すパーツ情報、アバタの３次元での動きを表現するためのボーンデータ、及びこれら以外のアバタを立体的に表示するために用いられている公知の情報を含む。
【００５１】
上述したとおり、動画配信装置２０から配信される動画には、動画再生装置１０のユーザのアバタのアニメーションが含まれてもよい。あるユーザのアバタのアニメーションは、後述するように、当該ユーザの姿勢を示す姿勢特徴量に基づいて、当該ユーザの姿勢や動きをリアルタイムで反映するように生成されてもよい。
【００５２】
アバタのアニメーションとして、予め登録されている登録アニメーションを採用してもよい。登録アニメーションは、視聴ユーザの動きに追従するように動画の配信中にリアルタイムに生成されるのではなく、動画の配信前又はアバタのアニメーションの表示が必要になる前に予め登録又は定義されているアニメーションである。登録アニメーションを管理するためのアニメーション管理データ２３ｃの例が図６に示されている。図示のように、アニメーション管理データ２３ｃは、基準姿勢識別データと、登録アニメーションを識別する登録アニメーション識別データ（登録アニメーションＩＤ）と、アバタのアニメーションを特定するためのアニメーション定義データと、を有する。ストレージ２３においては、基準姿勢識別データと対応付けて、登録アニメーション識別データ、及び、アニメーション定義データが記憶されている。基準姿勢識別データは、既述のとおり基準姿勢ＩＤであってもよい。動画配信システム１において複数の基準姿勢ＩＤが用いられている場合には、その基準姿勢ＩＤの数に応じて複数の登録アニメーションが登録されていてもよい。この複数の登録アニメーションから選択された一つの登録アニメーションが動画に含められ得る。アニメーション定義データは、アバタのボーンの位置及び向きを示すボーンデータを時系列的に記述するデータであってもよい。
【００５３】
登録アニメーションは、視聴ユーザからの要求に基づいて生成されてもよい。以下、説明の便宜のために、視聴ユーザからの要求に基づいて登録される登録アニメーションを「ユーザアニメーション」と呼ぶ。動画再生装置１０は、視聴ユーザからユーザアニメーションの登録要求がなされると、当該視聴ユーザに対して登録を希望するアニメーションに対応する動きを行うように促すことができる。動画再生装置１０は、この基準姿勢を表す画像の表示に応答して視聴ユーザが取った姿勢の姿勢特徴量（例えば、３次元骨格データ）を所定時間に亘って取得する。この姿勢特徴量の取得は、姿勢データ取得部１１ｂ又はセンサユニット１５により所定のサンプリング時間間隔で行われる。このようにして、視聴ユーザが登録を希望するアニメーションに対応する動きを示すアニメーション定義データが得られる。このアニメーション定義データは、アニメーション管理データ２３ｃとして記憶されている登録アニメーションのアニメーション定義データと同じデータ形式を有していてもよい。動画再生装置１０は、このようにして取得されたユーザアニメーションを定義するアニメーション定義データを動画配信装置２０に送信し、このユーザアニメーションを新たな登録アニメーションとして動画配信装置２０に登録する。
【００５４】
動画配信装置２０は、ユーザアニメーションを定義するアニメーション定義データを受信すると、当該ユーザアニメーションをアニメーション管理データ２３ｃの一部としてストレージ２３に記憶する。具体的には、動画配信装置２０は、登録が要求されているユーザアニメーションを識別する登録アニメーションＩＤを発行し、当該登録アニメーションＩＤと対応付けて動画再生装置１０から受信したアニメーション定義データを記憶する。また、動画配信装置２０は、登録が要求されているユーザアニメーションを動画に含めるためのトリガーとなる基準姿勢を決定するよう動画再生装置１０に要求する。
【００５５】
動画再生装置１０は、動画配信装置２０からの要求に応じて、自らのアバタに新規に登録したユーザアニメーションに従った動きを行わせるためのトリガーとなる基準姿勢を決定する。本明細書では、新規に登録したユーザアニメーションに従ってアバタを動かすためのトリガーとなる基準姿勢を追加基準姿勢と呼ぶことがある。追加基準姿勢は、様々な手法で定められる。例えば、新規に登録したユーザアニメーションを含むサンプル動画を生成し、当該ユーザアニメーションの登録要求を行った視聴ユーザに対し、このサンプル動画に含まれる複数のフレームの中から一又は複数の候補フレームを選択させ、その選択されたフレームに含まれているアバタの画像に基づいて追加基準姿勢を決定することができる。当該視聴ユーザは、複数のフレームの中から好みのフレームを選択することができる。当該視聴ユーザは、例えば、記憶に残りやすい姿勢を取っているアバタが含まれているフレーム、特徴的な姿勢を取っているアバタが含まれているフレーム、又はこれら以外のフレームを選択することができる。当該複数のフレームの中から２つのフレームが選択された場合、その２つのフレームのうち時系列的に前にあるフレームに含まれているアバタの姿勢を開始姿勢として決定し、時系列的に後にあるフレームに含まれているアバタの姿勢をトリガー姿勢として決定してもよい。
【００５６】
追加基準姿勢を決定する他の方法について説明する。動画再生装置１０は、ユーザアニメーションの登録要求を行った視聴ユーザに対して、当該ユーザアニメーションに対応する動きを複数回行うように指示する。この指示は、音声又は画面表示により行われ得る。動画再生装置１０は、この指示に対応して視聴ユーザが行った動きに対応する姿勢特徴量（例えば、３次元骨格データ）を取得する。具体的には、所定の計測期間において、所定のサンプリング間隔で、ユーザアニメーションに対応して動いている視聴ユーザの姿勢を表す３次元骨格データを取得する。これにより、計測開始から計測終了までの間ユーザアニメーションに対応する動きを行った視聴ユーザの姿勢を時系列で表す３次元骨格データのセットが２組得られる。次にこの２組の３次元骨格データのセットのうち測定開始後に同タイミングで取得された３次元骨格データ同士を比較し、この比較結果に基づいて追加基準姿勢を決定する。例えば、２組の３次元骨格データのセットのうち測定開始後に同タイミングで取得された３次元骨格データの対応するボーンのベクトルが為す角度の合計値を算出し、この角度の合計値が最も小さい３次元骨格データに対応する姿勢（２組の骨格データのうちいずれを採用しても構わない。）を追加基準姿勢とすることができる。
【００５７】
次に、動画再生装置１０の機能について説明する。動画再生装置１０の機能は、コンピュータプロセッサ１１がプログラムに含まれるコンピュータ読み取り可能な命令を実行することにより実現される。コンピュータプロセッサ１１は、プログラムに含まれるコンピュータ読み取り可能な命令を実行することにより、動画再生部１１ａ、姿勢データ取得部１１ｂ、送信部１１ｃ、分類部１１ｄ、及び遅延監視部１１ｅとして機能する。コンピュータプロセッサ１１により実現される機能の少なくとも一部は、コンピュータプロセッサ１１以外のコンピュータプロセッサにより実現されてもよい。コンピュータプロセッサ１１により実現される機能の少なくとも一部は、動画配信装置２０のコンピュータプロセッサ２１又はそれ以外の動画配信システム１に備えられたコンピュータプロセッサにより実現されてもよい。
【００５８】
動画再生部１１ａは、動画配信装置２０から配信された動画を再生する。再生された動画は、ディスプレイ１４に表示される。
【００５９】
姿勢データ取得部１１ｂは、動画再生装置１０を使用して動画を視聴するユーザ（「視聴ユーザ」ということもある。）の姿勢の特徴を表す姿勢特徴量を取得する。視聴ユーザの姿勢の特徴を表す姿勢特徴量は、当該視聴ユーザの姿勢を表す３次元骨格データ、つまり視聴ユーザのボーンの位置及び向きを示す３次元ベクトルデータであってもよい。姿勢データ取得部１１ｂは、例えば、センサユニット１５が検出した検出データに基づいて視聴ユーザの３次元骨格データを生成する。視聴ユーザの３次元骨格データは、所定のサンプリング時間間隔ごとに生成されてもよい。センサユニット１５がプロセッサを備えており、そのセンサユニット１５のプロセッサにより３次元骨格データが生成される場合には、姿勢データ取得部１１ｂはプロセッサ１１の機能として実行されなくともよい。
【００６０】
姿勢データ取得部１１ｂにより取得される姿勢特徴量は、３次元骨格データ以外の特徴量であってもよい。例えば、上述したように、Ｌｉｇｈｔ  Ｃｏｄｉｎｇ技術を用いて赤外線のランダムパターンをユーザ等の対象に照射し、その画像を解析することによって対象の深度を取得し、当該深度を姿勢特徴量としてもよい。センサユニット１５により検出される検出値及びこの検出値に基づいて算出される様々な値が姿勢特徴量として用いられ得る。
【００６１】
姿勢データ取得部１１ｂは、動画再生装置１０のユーザの動きを所定のフレームレートで撮像して得られる複数のフレームを含む撮像画像から次のようにして姿勢特徴量を求めても良い。具体的には、姿勢データ取得部１１ｂは、当該撮像画像の各フレームにおいて当該ユーザに関連する複数の特徴点を抽出する。ユーザの姿勢や動きを表現するために適した位置が特徴点として抽出される。複数の特徴点を特徴点群ということもある。図７は、動画再生装置１０により撮像された撮像画像を構成する複数のフレームの一つであるフレームｆ１を模式的に示している。図示のように、フレームｆ１には、撮像されたユーザの画像Ｕ１が含まれている。図７に示されているＰ１〜Ｐ６はそれぞれ抽出された特徴点を示す。特徴点の数及び位置は、図７に示されたものには限られない。例えば、動画再生装置１０のユーザの体や顔に赤外線のレーザーによってランダムドットパターンを投影し、このランダムドットパターンが投影されたユーザを赤外線領域を撮影できるカメラで撮像する場合には、このランダムドット全体が特徴点群となる。
【００６２】
姿勢データ取得部１１ｂは、抽出された複数の特徴点の各々について姿勢特徴量（画像ベクトル）を得ることができる。特徴点Ｐ１〜Ｐ６の各々における姿勢特徴量は、各特徴点の深度であってもよいし３次元座標であってもよい。姿勢特徴量として３次元座標が用いられる場合には、撮像画像内に３次元のワールド座標系が設定され、撮影画像及びワールド座標系を元にして正規化された相対量が姿勢特徴量とされる。正規化された姿勢特徴量は、例えば、０〜１．０の相対量で表される。フレームｆ１における各特徴点Ｐ１〜Ｐ６の姿勢特徴量は、フレームｆ１よりも時系列的に前の（例えば直前の）フレームにおいて得られた各特徴点Ｐ１〜Ｐ６の姿勢特徴量とフレームｆ１において得られた各特徴点Ｐ１〜Ｐ６の姿勢特徴量との差で表される変化量であってもよい。姿勢特徴量のフレーム間での変化量を別の姿勢特徴量として用いる場合に両者を区別する必要があるときには、あるフレームにおける姿勢特徴量を「フレーム内特徴量」と呼び、フレーム間での姿勢特徴量の変化量で表される姿勢特徴量を「フレーム間特徴量」と呼んでも良い。特に断らない限り、または、文脈上別に解される場合を除き、単に「姿勢特徴量」というときには「フレーム内特徴量」及び「フレーム間特徴量」の両方を含む。各特徴点Ｐ１〜Ｐ６の姿勢特徴量は、０〜１．０の範囲に正規化されてｆｌｏａｔ配列として表現されてもよい。この場合、特徴点Ｐ１〜Ｐ６の各々における姿勢特徴量が当該配列の要素となる。
【００６３】
送信部１１ｃは、姿勢データ取得部１１ｂ又はセンサユニット１５により取得された視聴ユーザの姿勢を表す姿勢特徴量を動画配信装置２０に送信する。送信部１１ｃは、姿勢データ取得部１１ｂ又はセンサユニット１５から姿勢特徴量を受け取ると即時に動画配信装置２０に送信する。言い換えると、送信部１１ｃは、視聴ユーザの姿勢特徴量をリアルタイムに動画配信装置２０に送信することができる。上記のとおり、姿勢特徴量は、所定のサンプリング時間間隔又は所定のフレームレートで取得される。これにより、姿勢特徴量は、所定のサンプリング時間間隔ごと又はフレームレートごとに生成され得る。よって、所定の時間間隔に亘って連続して取得された視聴ユーザの姿勢特徴量は、当該視聴ユーザの体の動きを時系列的にデジタルデータとして表現することができる。視聴ユーザの姿勢を表す姿勢特徴量は、当該姿勢特徴量以外のデータとともに動画配信装置２０に送信されてもよい。本明細書では、視聴ユーザの姿勢や表情を表すデータまたは視聴ユーザの姿勢や表情と相関のあるデータを当該視聴ユーザの「モーションデータ」と総称することがある。視聴ユーザのモーションデータは、動画再生装置１０からネットワーク５０を含む伝送路を介して動画配信装置２０に送信される。モーションデータは、パケット送信されてもよい。つまり、送信部１１ｃは、モーションデータを含むパケットを動画配信装置２０に対して送信してもよい。
【００６４】
一実施形態における分類部１１ｄは、視聴ユーザの姿勢を分類する分類器により、当該視聴ユーザの姿勢特徴量（例えば、３次元骨格データ）に基づいて、当該視聴ユーザの姿勢が予め定められた基準姿勢に属するか否かを判定する。この分類器は、例えば線形分類器である。基準姿勢が開始姿勢とトリガー姿勢とを含む場合には、分類部１１ｄは、視聴ユーザの姿勢が当該基準姿勢に属するか否か及び当該トリガー姿勢に属するか否かをそれぞれ判定することができる。分類部１１ｄは、時刻ｔ１において視聴ユーザの姿勢が基準姿勢のうちの開始姿勢に属するか否かを判定した後、当該時刻ｔ１におけるユーザの姿勢が開始姿勢に属すると判定された場合には、続いて時刻ｔ１よりも後の時刻ｔ２における視聴ユーザの姿勢がトリガー姿勢に属するか否かを判定してもよい。
【００６５】
一実施形態において、分類部１１ｄは、教師データを得るために、基準姿勢を表す画像をディスプレイ１４に表示し、この基準姿勢を表す画像に従った姿勢を取るように視聴ユーザに音声や画面表示を通じて指示することができる。動画再生装置１０は、この指示に対応して視聴ユーザが行った動きの姿勢特徴量を姿勢データ取得部１１ｂ又はセンサユニット１５により逐次取得する。分類部１１ｄは、基準姿勢を表す画像に応答して視聴ユーザが取った姿勢の姿勢特徴量を教師データとして学習することにより分類器を作成することができる。
【００６６】
一実施形態における分類部１１ｄは、例えば、姿勢データ取得部１１ｂ又はセンサユニット１５からの姿勢特徴量が示す視聴ユーザの姿勢が予め定められた基準姿勢と合致するか否かを、当該姿勢特徴量を変数として評価関数に基づいて判定することができる。評価関数に基づいて視聴ユーザの姿勢が基準姿勢と合致すると判定された場合には、当該視聴ユーザの姿勢は、当該基準姿勢に属する。視聴ユーザの姿勢が開始姿勢と合致するか否かは、姿勢データ取得部１１ｂ又はセンサユニット１５において生成された視聴ユーザの姿勢を表す姿勢特徴量と開始姿勢を表す姿勢特徴量（開始姿勢データ）とに基づいて判定され得る。姿勢特徴量が３次元骨格データである場合には、視聴ユーザの３次元骨格データに含まれる各ボーンのベクトルＶ１〜Ｖ８と開始姿勢データのうちベクトルＶ１〜Ｖ８に対応する各ボーンのベクトルＴ１〜Ｔ８とのなす角度の合計値が小さくなるほど、センサユニット１５によって検出された視聴ユーザの姿勢と開始姿勢との類似度が高くなる。すなわち、視聴ユーザの姿勢を表す３次元骨格データに含まれる３次元ベクトルと基準姿勢を表す３次元骨格モデルの対応するベクトルのなす角度θの大きさと姿勢の類似度との間に負の相関関係がある。よって、この点に着目し、２つの３次元骨格モデルによって定義される角度θの大きさを正規化するための新規な評価関数ｆを定義する。下記式（１）に評価関数ｆの一例を示す。
【数１】
0006731532.tif 000002
【００６７】
上記式において、（Ｔi・Ｖi）は、対応するベクトルの内積を示し、（‖Ｔi‖‖Ｖi‖）は、各ベクトルの大きさの積を示し、ｋは、３次元骨格モデルを構成するベクトルの要素数を示す。つまり、上記式（１）に示した評価関数ｆによれば、２つの３次元骨格モデルの対応するベクトルのなす角度θの余弦（＝cosθ）の平均値が得られることになる。ここで、２つの３次元骨格モデルの対応するベクトルが完全一致する場合（角度θ＝０）は、cosθ＝１になり、２つの３次元骨格モデルの対応するベクトルの方向が逆向きになる場合（角度θ＝１８０°）は、cosθ＝−１になるので、評価関数ｆの値の取り得る範囲は、−１≦ｆ≦＋１となる。この場合、たとえば、評価関数ｆの値の範囲（−１≦ｆ≦＋１）を百分率の値（０〜１００％）にリニアに割り当てれば、類似度を百分率で表現することができる。この所定の閾値は、例えば、９０％とすることができる。２つの３次元骨格データ間の類似度の判定については、特開２０１３−３７４５４号公報にも開示されている。
【００６８】
分類部１１ｄは、上記のようにして算出した視聴ユーザの姿勢を表す姿勢特徴量と開始姿勢を表す姿勢特徴量との類似度が所定の閾値以上のときに、視聴ユーザの姿勢が開始姿勢に合致すると判定してもよい。
【００６９】
分類部１１ｄは、姿勢データ取得部１１ｂ又はセンサユニット１５において視聴ユーザの姿勢特徴量が取得される都度、当該姿勢特徴量が示す視聴ユーザの姿勢が開始姿勢に属するか否かを判定してもよい。この場合、視聴ユーザの姿勢特徴量の取得のためのサンプリングレートと同じ頻度で視聴ユーザの姿勢が開始姿勢に合致するか否かの判定が行われる。
【００７０】
視聴ユーザの姿勢とトリガー姿勢とが合致するか否かも同様にして判定され得る。すなわち、分類部１１ｄは、時刻ｔ２における視聴ユーザの姿勢を表す姿勢特徴量とトリガー姿勢を表す姿勢特徴量との類似度を算出し、この類似度が所定の閾値以上のときに、視聴ユーザの姿勢がトリガー姿勢に合致すると判定してもよい。視聴ユーザの姿勢が開始姿勢に合致するか否かを判定するための上記の説明は、視聴ユーザの姿勢がトリガー姿勢に合致するか否かを判定するための処理にも可能な限り当てはまる。
【００７１】
遅延監視部１１ｅは、送信部１１ｃによって動画再生装置１０から動画配信装置２０に送信されたモーションデータの伝送遅延を監視する。例えば、遅延監視部１１ｅは、モーションデータを含む実パケットに送信前にタイムスタンプを付加し、この送信時に付加されたタイプスタンプと、この実パケットが動画配信装置２０で受信されたときに付加されるタイムスタンプと、を用いて動画再生装置１０と動画配信装置２０との間の伝送路における当該実パケットの伝送時間を求めることができる。遅延監視部１１ｅは、この伝送時間が所定の基準時間以上となったとき又は当該基準時間よりも長いときに当該伝送路において遅延が発生していると判定することができる。遅延監視部１１ｅは、伝送路において一旦遅延が発生していると判定した後に、伝送時間が所定の基準時間よりも短くなったとき又は当該所定の基準時間以下となったときに遅延が解消したと判定することができる。動画配信装置２０がサーバであり、動画再生装置１０がクライアントである場合には、動画再生装置１０から動画配信装置２０へのデータの伝送は上り回線を使用して行われる。この場合、遅延監視部１１ｅは、動画再生装置１０と動画配信装置２０との間の伝送路の上り回線に遅延が発生しているか否かを監視する。遅延監視部１１ｅは、上記のように実パケットの伝送時間を測定してもよいし、モーションデータを含まない疑似パケットを用いて伝送時間を測定してもよい。ある視聴ユーザの動画再生装置１０から送信されたモーションデータの伝送に遅延が発生している間に、他の視聴ユーザの動画再生装置１０から送信されたモーションデータの伝送には遅延が発生していないと判定されることも有り得る。よって、伝送路における遅延は、視聴ユーザごとに判定されてもよい。また、伝送遅延の発生の有無は、パケットに含まれるタイムスタンプに基づいて動画配信装置２０において判定されてもよい。動画再生装置１０は、動画配信装置２０における伝送遅延の判定結果を受け取っても良い。
【００７２】
再び送信部１１ｃの機能について説明する。送信部１１ｃは、遅延監視部１１ｅにおいて伝送路に遅延が発生していると判定された場合に、ストレージ１３に記憶されている基準姿勢識別データ（基準姿勢ＩＤ）を送信することができる。基準姿勢識別データは、視聴ユーザの姿勢特徴量を含むモーションデータに代えて送信されてもよい。上記のとおり、基準姿勢識別データは、開始姿勢データ及びトリガー姿勢データを含み得る。送信部１１ｃは、基準姿勢識別データとして、トリガー姿勢データを送信することができる。一実施形態において、分類部１１ｄによって視聴ユーザの姿勢がトリガー姿勢に属すると判定された場合、送信部１１ｃは、モーションデータの伝送に遅延が発生している間、基準姿勢識別データとしてトリガー姿勢を識別する基準姿勢ＩＤを動画配信装置２０に送信する。送信部１１ｃは、分類部１１ｄによって視聴ユーザの姿勢が開始姿勢に属すると判定された後の所定インターバル内に当該視聴ユーザの姿勢がトリガー姿勢に属すると判定された場合、送信部１１ｃは、モーションデータの伝送に遅延が発生している間、トリガー姿勢を識別する基準姿勢ＩＤを動画配信装置２０に送信する。視聴ユーザの姿勢が開始姿勢に属すると判定された後の視聴ユーザの姿勢がトリガー姿勢にも属すると判定された場合に基準姿勢ＩＤを送信することにより、開始姿勢又はトリガー姿勢の一方のみに属すると判定されたことに応じて基準姿勢ＩＤを送信する場合と比べて、視聴ユーザが意図せずに基準姿勢ＩＤを送信してしまうことを防止又は抑制できる。「モーションデータの伝送に遅延が発生している間」とは、遅延監視部１１ｅにおいて伝送路に遅延が発生していると判定されてから遅延が解消したと判定されるまでの期間を意味してもよい。送信部１１ｃは、開始姿勢を識別する基準姿勢ＩＤを動画配信装置２０に送信しなくともよい。
【００７３】
次に、コンピュータプロセッサ２１により実現される機能についてより具体的に説明する。コンピュータプロセッサ２１は、配信プログラムに含まれるコンピュータ読み取り可能な命令を実行することにより、動画生成部２１ａ、動画配信部２１ｂ、及びアニメーション生成部２１ｃ、として機能する。コンピュータプロセッサ２１により実現される機能の少なくとも一部は、動画配信システム１のコンピュータプロセッサ２１以外のコンピュータプロセッサにより実現されてもよい。コンピュータプロセッサ２１により実現される機能の少なくとも一部は、例えば、動画再生装置１０のコンピュータプロセッサ１１又はそれ以外の動画配信システム１に備えられたコンピュータプロセッサにより実現されてもよい。
【００７４】
動画配信装置２０は、様々な種類の動画を配信することができる。以下では、動画配信装置２０がアクターの動きに基づいて生成されるキャラクタオブジェクトのアニメーションを含む動画を配信することを想定する。
【００７５】
動画生成部２１ａは、アクターに装着されたモーションセンサによって当該アクターの動きを検出する。動画生成部２１ａは、モーションセンサによって検出されたアクターの体の動きに同期して動くキャラクタのアニメーションを生成することができる。動画生成部２１ａは、アクターの顔の動きのデジタル表現であるフェイスモーションデータを取得してもよい。この場合、動画生成部２１ａは、アクターの顔の動きに同期して表情が変わるキャラクタのアニメーションを生成することができる。動画生成部２１ａは、オブジェクトデータ２３ａを用いて仮想空間を構築し、この仮想空間と、アクターに対応するキャラクタのアニメーションと、を含む動画を生成することができる。動画生成部２１ａは、生成した動画にマイクから取得したアクターの音声を合成することができる。アクターの体や表情の動きに同期して動くキャラクタのアニメーションを含む動画の生成については、特許第６４４６１５号の明細書に詳細に開示されている。
【００７６】
動画生成部２１ａは、動画を視聴している視聴ユーザから当該動画へアバタを参加させるための参加要求を受け付けると、当該視聴ユーザのアバタを含むように動画を生成することができる。視聴ユーザからの参加要求には、当該視聴ユーザを特定するユーザＩＤが含まれていてもよい。動画生成部２１ａは、参加要求に含まれているユーザＩＤに基づいて当該視聴ユーザのアバタを識別するアバタＩＤを特定し、ストレージ２３において当該アバタＩＤに対応付けて記憶されているパーツ情報に基づいて当該視聴ユーザのアバタを表すアバタオブジェクトを生成することができる。
【００７７】
動画配信部２１ｂは、動画生成部２１ａにおいて生成された動画を配信する。この動画は、ネットワーク５０を介して動画再生装置１０に配信される。受信された動画は、動画再生装置１０において再生される。
【００７８】
動画配信装置２０から動画再生装置１０ａに配信され、この動画再生装置１０において再生されている動画の表示例が図９ａに示されている。動画再生装置１０において再生される動画は、ディスプレイ１４に表示され得る。図示のように、動画再生装置１０において表示されている動画６０は、アクターのキャラクタを表すキャラクタオブジェクト５１と、キャラクタオブジェクト５１が立つフロアオブジェクト５４ａと、ステージの後端を画定するスクリーンオブジェクト５４ｂと、動画６０を視聴している視聴ユーザのアバタを示すアバタオブジェクト５６ａ〜５６ｊと、を含んでいる。キャラクタオブジェクト５１は、アクターの体の動きに同期して仮想空間で動くことができる。動画６０は、動画配信装置２０から多数の動画再生装置１０に配信されるため、画像６０は、多数のアバタを含んでいる。図９ａにおいては、１０人の視聴ユーザがアバタを介して動画に参加していることが想定されている。動画に参加可能な視聴ユーザの数は、１０より多くともよいし、１０より少なくともよい。
【００７９】
ディスプレイ１４には、動画６０に重複するように、ユーザの操作を受け付けるための操作ボタンが表示されてもよい。図９ａに示されている例では、ギフティングを行うためのギフトボタン６１と、評価を提供するための評価ボタン６２と、アバタによる動画６０への参加を申請するためのアバタ参加ボタン６３と、が動画６０に重畳表示されている。ギフトボタン６１、評価ボタン６２、及びアバタ参加ボタン６３は、視聴ユーザによって選択可能に表示されている。動画６０には、これら以外の操作ボタンが表示されてもよい。動画６０を視聴している視聴ユーザは、ギフトボタン６１の選択により、動画６０を配信している配信者や動画６０にキャラクタ５１を介して出演しているアクターに対して所望のギフトを贈ることができる。視聴ユーザは、評価ボタン６２の選択により、動画６０への肯定的な評価がなされたことを示す評価情報を動画配信装置２０に送信することができる。様々な視聴ユーザからの評価情報を集計し、その集計結果が動画６０とともに表示されてもよい。視聴ユーザは、アバタ参加ボタン６３の選択により、自らのアバタを動画６０に参加させることを要求する参加要求を動画配信装置２０に送信することができる。
【００８０】
アニメーション生成部２１ｃは、動画６０に参加している視聴者のアバタのアニメーションを生成する。一実施形態において、アニメーション生成部２１ｃは、動画再生装置１０から受信した視聴ユーザの姿勢特徴量に基づいて、当該視聴ユーザのアバタのアニメーションを生成する。時間的に連続して受信される姿勢特徴量（例えば、３次元骨格データ）は、視聴ユーザの体の動きを時系列的に表現する。よって、アニメーション生成部２１ｃは、動画再生装置１０から視聴ユーザの姿勢特徴量を連続して受信することで、当該姿勢特徴量に基づいて、当該視聴ユーザの体の動きに同期して動くアバタのアニメーションを生成することができる。動画生成部２１ａは、アニメーション生成部２１ｃによってアバタのアニメーションが生成されると、当該アバタのアニメーションを含むように動画６０を生成する。
【００８１】
動画再生装置１０から動画配信装置２０への上り回線の伝送路で伝送遅延が発生すると、動画配信装置２０は、視聴ユーザの姿勢特徴量を時間的に連続して受信することができなくなることがある。動画再生装置１０から送信される視聴ユーザの姿勢特徴量のみに基づいてアバタのアニメーションを作成しようとすると、伝送路において伝送遅延が発生した場合、視聴ユーザの動きを反映して動くアバタのアニメーションを生成することができなくなってしまうおそれがある。これに対し、一実施形態におけるアニメーション生成部２１ｃは、視聴ユーザの姿勢特徴量のみに依存せず、動画再生装置１０からの基準姿勢識別データ（例えば、基準姿勢ＩＤ）に基づいてアバタのアニメーションを生成することができる。具体的には、アニメーション生成部２１ｃは、動画再生装置１０から基準姿勢識別データを受信すると、アニメーション管理データ２３ｃを参照することで受信した基準姿勢識別データに対応付けられている登録アニメーションを特定することができ、この特定された登録アニメーションの登録アニメーションＩＤに対応付けられているアニメーション定義データに基づいてアバタのアニメーションを生成することができる。既述のとおり、基準姿勢識別データは、動画再生装置１０の遅延監視部１１ｅによって姿勢特徴量を含むモーションデータの上り回線での伝送に遅延があると判定された場合に、動画再生装置１０から動画配信装置２０へ送信される。よって、アニメーション生成部２１ｃは、モーションデータの伝送に遅延が発生している間に姿勢特徴量が受信できなかったとしても、その遅延が発生している間に動画再生装置１０から送られてくる基準姿勢識別データに基づいてアバタのアニメーションを生成することができる。
【００８２】
アバタのアニメーションの生成について説明する。視聴ユーザの姿勢特徴量（例えば、３次元骨格データ）に基づいて生成されるアバタのアニメーションは、視聴ユーザの動きを反映したアバタの動きを表現するものである。例えば、視聴ユーザが右手を腰に当てた位置から斜め上方に向かって持ち上げる動作を行ったと想定する。この場合、視聴ユーザの姿勢特徴量に基づいて当該視聴ユーザのアバタのアニメーションを生成する。このアニメーションを動画に含めることにより、アバタは、当該動画内で、視聴ユーザの動きと同様に右手（アバタの右手に相当するパーツ）を腰に当てた位置から斜め上方に向かって持ち上げる動作を行う。
【００８３】
他方、伝送路において遅延が発生している場合には、姿勢特徴量に基づくアバタのアニメーションの生成は中断されてもよい。例えば、伝送路において遅延が発生している場合には、送信部１１ｃによる姿勢特徴量の送信を中断してもよく、これに応じてアニメーション生成部２１ｃにおける姿勢特徴量に基づくアバタのアニメーションの生成も中断されてもよい。上記のように、動画配信装置２０は、動画再生装置１０から受信するパケットに含まれるタイムスタンプに基づいて遅延の有無を判定することができる。伝送路に遅延が発生しているときには、動画配信装置２０においてデータ量が大きい姿勢特徴量を適時に受信することは困難となる。かかる場合にも姿勢特徴量に基づくアバタのアニメーションを継続すると、動画内におけるアバタの動きが不自然になってしまうおそれがある。このようなアバタの不自然な動きは、配信される動画のクオリティを劣化させるため望ましくない。伝送路において遅延が発生している場合に、姿勢特徴量に基づくアバタのアニメーションの生成を中断することにより、アバタが不自然な動きを行わないようにすることができる。姿勢特徴量に基づくアバタのアニメーションの生成を中断しても、アニメーション生成部２１ｃは、動画再生装置１０からの基準姿勢識別データに基づいてアバタの登録アニメーションＩＤを特定し、この特定された登録アニメーションＩＤに対応付けられているアニメーション定義データに基づいてアバタのアニメーションを生成することができる。伝送路において遅延が発生している間に、視聴ユーザが基準姿勢と合致する姿勢を取らなかった場合には、動画配信装置２０は、基準姿勢識別データを受信しない。この場合には、アニメーション生成部２１ｃは、当該視聴ユーザのアバタのアニメーションを生成しなくともよい。アニメーション生成部２１ｃがアバタのアニメーションを生成しない場合には、当該アバタは動画内で静止している。別の実施形態において、伝送路において遅延が発生している間に動画配信装置２０が基準姿勢識別データを受信しない場合には、アバタについて定められている基本動作に従った動きを行うように当該アバタのアニメーションを作成してもよい。アバタの基本動作とは、例えば、手を上下に揺らす、手を左右に揺らす、飛び跳ねるなどの予め定められた動作を指す。この基本動作は、複数の視聴ユーザに共通に設定されていてもよい。アバタの基本動作は、動画再生装置１０からのアバタの動きに関する情報（３次元骨格データや基準姿勢識別データ）を受信しなくてもアバタによって行われ得る点で、アニメーション生成部２１ｃにおいて生成されるアニメーションとは異なっている。
【００８４】
アニメーション生成部２１ｃによってアバタのアニメーションが生成されると、動画生成部２１ａによって当該アニメーションを含む動画が生成され、このアバタのアニメーションを含む動画が動画配信部２１ｂによって動画再生装置１０に配信される。図９ａに示されている動画６０にアバタオブジェクト５６ａのアニメーションが含まれる場合には、アバタオブジェクト５６ａのアニメーションを含む動画６０が表示される。例えば、アバタオブジェクト５６ａが右手を挙げるアニメーションが生成された場合には、図９ｂに示されているように、動画６０内においてアバタオブジェクト５６ａが右手を挙げる動きを行う。
【００８５】
上記のように、動画配信装置２０は、登録が要求されているユーザアニメーションを動画に含めるためのトリガーとなる追加基準姿勢を決定するよう動画再生装置１０に要求してもよい。追加基準姿勢の決定方法の一部の態様については既述のとおりであるが、図８をさらに参照して追加基準姿勢を決定する別の態様について説明する。以下の例では、ユーザの画像の特徴点を抽出し、その特徴点における姿勢特徴量の二乗平均平方根を利用して追加基準姿勢が決定される。まず、動画再生装置１０は、ユーザアニメーションとして登録したい動きを行うようにユーザに指示し、当該指示に基づいて登録したい動きを行っているユーザを所定のフレームレートで撮像することにより複数のフレームを含む撮像画像を得る。動画再生装置１０は、抽出された複数の特徴点の各々について姿勢特徴量を得る。ユーザを撮像した撮像画像の複数のフレームの各々における特徴点の抽出については、図７を参照して既に説明したので、繰り返しの説明は行わない。
【００８６】
図８は、第０フレームから第２３フレームまでの２４フレームの各々における姿勢特徴量を含む表を示している。図８の表においては、特徴点Ｐ１〜Ｐ６の各々の姿勢特徴量が、「Ｐ１」欄〜「Ｐ６」欄にそれぞれ示されている。この姿勢特徴量は、０〜１．０の範囲に正規化されている。動画再生装置１０は、各特徴点Ｐ１〜Ｐ６の姿勢特徴量の二乗平均平方根（ＲＭＳ）をフレームごとに算出する。Ｎ個の特徴点Ｐ1〜ＰNの各々における姿勢特徴量をｘi（ただし、ｉは１〜Ｎの値をとる。）とすると、特徴点Ｐ１〜ＰNの姿勢特徴量のＲＭＳ（ｘ）は以下の式で表される。
【数２】
0006731532.tif 000003
【００８７】
図８には、フレームごとに算出されたＲＭＳ（ｘ）が記載されている。動画再生装置１０は、ＲＭＳ（ｘ）以外に、各フレームについて、各特徴点における姿勢特徴量の平均値、及び、当該フレームのＲＭＳ（ｘ）と前フレームのＲＭＳ（ｘ）との差を示すＲＭＳ差を算出しても良い。動画再生装置１０は、フレームごとに、ＲＭＳ差の正負を示す正負フラグ、ＲＭＳ差の正負が逆転したか否かを示す反転フラグを求めてもよい。例えば、第２フレームにおけるＲＭＳ差は、第２フレームにおけるＲＭＳ（ｘ2）と第１フレームにおけるＲＭＳ（ｘ1）との差である。正負フラグは、例えば、ＲＭＳ差が正のときに「１」であり、ＲＭＳ差が負のときに「０」となる。反転フラグは、例えば、ＲＭＳ差の符号が逆転したときに「１」であり、ＲＭＳ差の符号が逆転していない（つまり、全フレームと符号が同じ）にときに「０」となる。図８には、これらの平均値、ＲＭＳ差、正負フラグ、及び反転フラグが含められている。図８においては、第４フレーム、第１０フレーム、第１６フレーム、第１７フレーム、第１９フレーム、及び第２１フレームでその直前のフレームとＲＭＳ差の正負が逆転しているため、反転フラグに「１」が設定されている。第０フレームよりも先行するフレームは存在しないため、第０フレームについてはＲＭＳ差が空欄になっている。
【００８８】
反転フラグが「１」のフレームにおいては、前フレームからＲＭＳ差の符号が逆転しているから、当該フレームにおいてユーザが大きな動きを行ったと推定される。反転フラグによって検出可能な大きな動きは、例えば、手を振る、まばたきをするなど周期的な動作であることが多い。そこで、本発明の一実施形態においては、反転フラグの「１」に設定されているフレーム、すなわち姿勢特徴量のＲＭＳ差の符号が前フレームと逆転したフレームを開始フレームとし、この開始フレームからＲＭＳ差の符号が再び反転するまで（次に反転フラグが「１」になるまで）の区間について注目することが容易になる。この開始フレームにおけるユーザの姿勢を開始姿勢とすることができる。また、開始フレームの次に反転フラグが「１」に設定されているフレームをトリガーフレームとし、このトリガーフレームにおけるユーザの姿勢をトリガー姿勢とすることができる。このように、反転フラグが「１」になってから次に反転フラグが「１」になるまでの区間に着目してユーザの動作や姿勢を解析できる。図８に示されている例では、第４フレームにおいて反転フラグが初めて「１」になっており、第１０フレームで反転フラグが２回目に「１」になっている。したがって、第４フレームにおけるユーザの姿勢を開始姿勢とし、第１０フレームにおけるユーザの姿勢をトリガー姿勢とする周期性のある動作やそのトリガー姿勢の抽出を低い演算コストで可能にする。開始姿勢を示す開始姿勢データ及びトリガー姿勢を示すトリガー姿勢データは、二乗平均平方根誤差（ＲＭＳＥ：Ｒｏｏｔ  Ｍｅａｎ  Ｓｑｕａｒｅｄ  Ｅｒｒｏｒ）や平均平方二乗誤差率（ＲＭＳＰＴＥ：Ｒｏｏｔ  Ｍｅａｎ  Ｓｑｕａｒｅｄ  Ｐｅｒｃｅｎｔａｇｅ  Ｅｒｒｏｒ）、または撮像画像から算出または推定することができる。
【００８９】
図８に示されている例では、第１６フレームと第１７フレームにおいていずれも反転フラグが「１」に設定されている。連続するフレーム間の時間間隔は極めて短いため、これらの隣接するフレームの各々におけるユーザの姿勢を開始姿勢及びトリガー姿勢とすることは適切でない可能性がある。そこで、開始フレームとトリガーフレームとの間に存在すべきフレーム数の下限である下限フレーム数が定められていてもよい。下限フレーム数は、例えば、通信パケットの圧縮、近隣フレームとの差分、及びこれら以外の要素を考慮して３フレーム以上としてもよい。開始フレームとトリガーフレームとの間の時間間隔の下限が定められても良い。開始フレームとトリガーフレームとの間の時間間隔の下限は、例えば、動作周波数、対象とするユーザの動作、及びこれら以外の要素を考慮して、１秒以上、２秒以上、３秒以上、４秒以上、５秒以上、又はこれら以外の下限としてもよい。仮に、下限フレーム数を３フレームとした場合、図８において第４フレームと第１０フレームとの間には下限フレーム数を超える５フレームが存在しているから、第１０フレームをトリガーフレームと扱うことができる。仮に第７フレームにおいて反転フラグが「１」に設定されたとすると、第４フレームと第７フレームとの間には下限フレーム数以下の２フレームしか存在していないから第７フレームをトリガーフレームとせずにその次に反転フラグが「１」になる第１０フレームをトリガーフレームとすることができる。しかしながら、この第１０フレームから次の対象フレームとなる１６フレームまでのＲＭＳＰＥは概ね１以下であるから、第１０フレームを雑音と判定し、トリガーフレームとして処理しなくともよい。
【００９０】
以上のように、ユーザの特徴点における姿勢特徴量の二乗平均平方根を利用して追加基準姿勢（開始姿勢及びトリガー姿勢）を定めることにより、候補フレームやサンプル動画を提示しなくともユーザアニメーションの登録並びに当該ユーザアニメーションに対応する開始姿勢及びトリガー姿勢を決定することができる。
【００９１】
次に、図１０を参照して、一態様による動画再生方法に含まれる処理の一部について説明する。図１０は、一実施形態における動画再生方法における処理の一部の流れを示すフロー図である。図１０の動画再生方法においては、視聴ユーザが動画再生装置１０により動画を再生しており、当該動画に自らのアバタを参加させていることが想定されている。つまり、視聴ユーザが視聴している動画には自らのアバタが含まれている。図１０に示されている処理は、動画の視聴中に行われる姿勢特徴量及び基準姿勢識別データの動画配信装置２０への送信に関する。
【００９２】
まず、ステップＳ１１において、動画を視聴している視聴ユーザの姿勢特徴量に関するデータが取得される。また、ステップＳ１１では、取得された姿勢特徴量が即時に動画配信装置２０に送信される。ステップＳ１１においては、姿勢特徴量及び他のデータを含むモーションデータが動画配信装置２０に送信されてもよい。視聴ユーザの姿勢特徴量は、当該視聴ユーザの姿勢を表す３次元骨格データであってもよい。姿勢特徴量は、所定のサンプリング時間間隔ごとに取得されてもよい。視聴ユーザの姿勢特徴量の取得は、例えば、上記の姿勢データ取得部１１ｂ又はセンサユニット１５で行われる。姿勢特徴量の送信は、例えば、上記の送信部１１ｃにより行われる。
【００９３】
次に、ステップＳ１２において、ステップＳ１１で取得された視聴ユーザの姿勢特徴量に基づいて、当該視聴ユーザの姿勢が予め定められた基準姿勢に属するか否かが判定される。この判定は、例えば、上記の分類部１１ｄにより行われる。視聴ユーザの姿勢が基準姿勢に属しない場合には、処理はステップＳ１１に戻り、ステップＳ１１において姿勢特徴量の取得が引き続き行われる。視聴ユーザの姿勢が基準姿勢のいずれかに属すると判定された場合には、処理は、ステップＳ１３に進む。
【００９４】
ステップＳ１３では、動画再生装置１０と動画配信装置２０との間の伝送路においてモーションデータの送信に遅延が発生しているか否かが判定される。この判定は、例えば、上記の遅延監視部１１ｅによって行われる。伝送路において遅延が発生していないと判定された場合には、処理はステップＳ１１に戻り、ステップＳ１１において姿勢特徴量の取得が引き続き行われる。伝送路において遅延が発生していると判定された場合には、処理はステップＳ１４に進む。
【００９５】
ステップＳ１４では、ステップＳ１２において視聴ユーザの姿勢が属すると判定された基準姿勢を識別する基準姿勢識別データが動画配信装置２０に送信される。基準姿勢識別データの送信は、例えば、上記の送信部１１ｃにより行われる。ステップＳ１２で視聴ユーザの姿勢が開始姿勢に属すると判定され、その後さらにトリガー姿勢に属すると判定された場合には、このトリガー姿勢を識別するトリガー姿勢データが送信される。
【００９６】
以上のステップＳ１１〜ステップＳ１４の各工程における処理と並行して、動画配信装置２０から動画再生装置１０に対して動画が継続して配信されている。動画の配信中には、ステップＳ１１〜ステップＳ１４の処理が繰り返し行われる。ステップＳ１３において伝送路において遅延が発生していないと判定されている場合には、配信される動画には視聴ユーザの姿勢特徴量に基づいて生成されたアバタのアニメーションが含められる。逆に、ステップＳ１３において伝送路において遅延が発生していると判定された場合には、配信される動画には動画配信装置２０に送信された基準姿勢識別データに基づいて特定されるアバタの登録アニメーションが含められる。
【００９７】
ステップＳ１３は、ステップＳ１１の前又はステップＳ１１とステップＳ１２との間に実行されてもよい。これ以外にも、図１０に示されている処理の順番は、適宜変更されてもよい。また、ステップＳ１１〜ステップＳ１４の処理に加えて、図１０に明示的に記載されていない処理が行われてもよい。
【００９８】
次に、図１１から図１３を参照して、本発明の他の実施形態について説明する。図１１には、本発明の他の実施形態による動画配信システム１０１のブロック図が示されている。動画配信システム１０１は、動画再生装置１１０及び動画配信装置１２０を備えている。動画配信システム１０１の動画再生装置１１０は、コンピュータプロセッサ１１が顔特徴量取得部１１ｆとして機能し、ストレージ１３が基準表情管理データ１３ｂを記憶している点で動画配信システム１の動画再生装置１０と異なる。動画配信システム１０１の動画配信装置１２０は、ストレージ２３が登録表情管理データ２３ｄを記憶している点で動画配信システム１の動画配信装置２０と異なっている。以下では、図１１の実施形態において、図１の実施形態と異なる点を説明する。図１１の実施形態において図１の実施形態と共通する事項については説明を省略する。
【００９９】
顔特徴量取得部１１ｆは、動画再生装置１１０を使用して動画を視聴する視聴ユーザの顔の特徴を表す顔特徴量を取得する。具体的には、顔特徴量取得部１１ｆは、センサユニット１５により取得された視聴ユーザの顔を含む画像から、例えばＨＯＧ、ＳＩＦＴ、ＳＵＲＦ、又はこれら以外の公知のアルゴリズムに従って顔の特徴を表す特徴量を算出する。例えば、ＳＩＦＴにより算出される顔特徴量は、１２８次元の特徴量として算出される。このように、顔特徴量は、姿勢データ取得部１１ｂで取得される姿勢特徴量と同様にデータ量が大きい。
【０１００】
図１２は、基準表情管理データの例を示している。図１２に示されているように、ストレージ１３には、基準表情を識別する基準表情識別データと対応付けて、当該基準表情を示す基準表情識別データが記憶されている。基準表情識別データは、例えば、基準表情を識別する基準表情ＩＤである。基準表情ＩＤは、例えば数ビットで表される識別コードである。基準表情ＩＤのビット数は、動画配信システム１で使用される基準表情の数に応じて定めることができる。基準表情ＩＤは、例えば、１０ビット以下の情報量のデータで表される。基準表情ＩＤは、５ビット以下、４ビット以下、３ビット以下、２ビット以下の情報量のデータで表されてもよい。したがって、基準表情識別データ（基準表情ＩＤ）は、顔特徴量よりも大幅にデータ量が小さい。
【０１０１】
基準表情識別データは、基準表情を示すデータである。動画配信システム１には、一又は複数の基準表情を設定し得る。基準表情は、例えば、正面を向いて目を大きく見開いた表情である。基準表情識別データは、基準表情を記述するデータであり、顔特徴量取得部１１ｆにより算出される顔特徴量と同じデータ構造を有する。顔特徴量取得部１１ｆにより算出される顔特徴量がＳＩＦＴアルゴリズムで算出されるＳＩＦＴ特徴量である場合には、基準表情識別データは、基準表情をＳＩＦＴ特徴量と同じデータ形式で記述したものである。
【０１０２】
分類部１１ｄは、視聴ユーザの表情を分類する分類器により、当該視聴ユーザの顔特徴量に基づいて、当該視聴ユーザの表情が予め定められた基準表情に属するか否かを判定する。一実施形態において、分類部１１ｄは、教師データを得るために、基準表情を表す画像をディスプレイ１４に表示し、この基準表情を表す画像に従った表情をする視聴ユーザに促すことができる。コンテンツ再生装置１１０は、この基準表情を表す画像の表示に応答して視聴ユーザが作った表情の顔特徴量を顔特徴量取得部１１ｆにより取得する。分類部１１ｄは、基準表情を表す画像に対して視聴ユーザが作った表情の表情特徴量を教師データとして学習することにより分類器を作成することができる。
【０１０３】
送信部１１ｃは、顔特徴量取得部１１ｆにより取得された視聴ユーザの顔の特徴を表す顔特徴量を含むモーションデータを動画配信装置１２０に送信する。送信部１１ｃは、遅延監視部１１ｅにおいて伝送路においてモーションデータの伝送に遅延が発生していると判定された場合に、ストレージ１３に記憶されている基準表情識別データ（基準表情ＩＤ）を動画配信装置１２０へ送信することができる。遅延監視部１１ｅにおいて伝送路に遅延が発生していると判定された場合には、基準表情識別データは、顔特徴量に代えて動画配信装置１２０へ送信されてもよい。
【０１０４】
動画配信装置２０において、アニメーション生成部２１ｃは、動画６０に参加している視聴者のアバタのアニメーションを生成する。一実施形態において、アニメーション生成部２１ｃは、動画再生装置１１０から受信した視聴ユーザの顔特徴量に基づいて、当該視聴ユーザのアバタのアニメーションを生成する。アニメーション生成部２１ｃは、動画再生装置１１０から視聴ユーザの顔特徴量を連続して受信することで、当該顔特徴量に基づいて、当該視聴ユーザの顔の動き（表情の変化）に同期して表情を変化させるアバタのアニメーションを生成することができる。
【０１０５】
一実施形態におけるアニメーション生成部２１ｃは、登録表情管理データ２３ｄを参照することにより、動画再生装置１１０からの基準表情識別データ（例えば、基準表情ＩＤ）に基づいて、表情の動きを含むアバタのアニメーションを生成することができる。図１３に、図１１の実施形態における登録表情管理データ２３ｄの例が示されている。図１３に示されているように、登録表情管理データ２３ｄは、基準表情識別データ（登録表情ＩＤ）と、登録表情を識別する登録表情識別データ（登録表情ＩＤ）と、アバタの表情の動きを含むアニメーションを特定するためのアニメーション定義データと、を有する。このアニメーション定義データは、アバタの表情の動きを定義するデータである。登録表情管理データ２３ｄに含まれるアニメーション定義データは、アバタの顔の特徴点の位置を時系列的に記述するデータであってもよい。アニメーション生成部２１ｃは、動画再生装置１１０から基準表情識別データを受信すると、上記のアニメーション管理データ２３ｄを参照することにより、受信した基準表情識別データに対応付けられている登録表情識別データを特定することができ、この特定された登録表情識別データに対応付けられているアニメーション定義データに基づいて表情の動きを含むアバタのアニメーションを生成することができる。
【０１０６】
次に、図１４を参照して、本発明の他の実施形態について説明する。図１４には、本発明の他の実施形態による動画配信システム２０１のブロック図が示されている。概して言えば、図１に示されている動画配信システム１においては、視聴ユーザの姿勢を表す姿勢特徴量がリアルタイムで伝送されるのに対し、図１４に示されている動画配信システム２０１においては、視聴ユーザが特徴のある動きを行った場合にのみ当該視聴ユーザの姿勢特徴量が伝送される点で両者は異なっている。動画配信システム２０１は、動画再生装置２１０及び動画配信装置２２０を備えている。動画配信システム２０１の動画再生装置２１０は、コンピュータプロセッサ１１が判定部１１ｇ及び送信部１１ｈとして機能する。動画再生装置２１０は基準表情管理データ１３ｂを有していなくともよく、動画配信装置２２０はアニメーション管理データ２３ｃを有していなくともよい。図１４の実施形態において図１の実施形態と共通する事項については説明を省略する。
【０１０７】
判定部１１ｇは、動画再生装置２１０のユーザが特徴的な動きを行ったか否かを判定する。具体的には、姿勢データ取得部１１ｂにおいて所定のフレームレートで動画再生装置２１０のユーザの特徴点の姿勢特徴量を算出し、判定部１１ｇは、このフレームの姿勢特徴量のＲＭＳ差に基づいて当該ユーザが特徴的な動きを行ったか否かを判定する。フレームごとの姿勢特徴量の算出及びＲＭＳ差の算出については図８を参照して説明済である。一実施形態において、判定部１１ｇは、ＲＭＳ差の正負が逆転したフレームにおいてユーザが特徴的な動きを行ったと判定する。上記のように、あるフレームにおいてＲＭＳ差の符号が前フレームと逆転している場合には、当該フレームにおいてユーザが手を振る、大きくうなずくなどの往復動を伴う特徴的な動きを行ったと推定される。例えば、姿勢データ取得部１１ｂにおいて図８に示す２４フレーム分の姿勢特徴量が算出された場合には、反転フラグに「１」が設定されている第４フレーム、第１０フレーム、第１６フレーム、第１７フレーム、第１９フレーム、及び第２１フレームにおいてユーザが特徴的な動きを行ったと判定される。
【０１０８】
一実施形態において、判定部１１ｇは、ＲＭＳＰＥが所定の閾値よりも大きいフレームにおいてユーザが大きな動きを行ったと判定する。この閾値は、例えば、１．０とすることができる。判定部１１ｇが使用する閾値は、適宜変更可能である。図８の例においては、第４フレームから第７フレームにおいてＲＭＳＰＥが閾値である１．０よりも大きくなっている。よって、判定部１１ｇは、第４フレームから第８フレームにおいてユーザが大きな動きを行ったと判定することができる。
【０１０９】
送信部１１ｈは、判定部１１ｇによってユーザが特徴的な動きを行ったと判定されたフレームを選択し、この選択されたフレームにおける姿勢特徴量を動画配信装置２２０に送信する。送信部１１ｈにより選択されたフレームを「選択フレーム」と呼んでも良い。選択フレームは、判定部１１ｇによってユーザが特徴的な動きを行ったと判定されたフレームだけであってもよいし、判定部１１ｇによってユーザが特徴的な動きを行ったと判定されたフレーム及びそれに続く一又は複数のフレームであってもよい。このように、送信部１１ｈは、選択フレームにおける姿勢特徴量を動画配信装置２２０に送信する一方、選択フレーム以外のフレームにおける姿勢特徴量を動画配信装置２２０に送信しないように構成される。
【０１１０】
送信部１１ｈによって送信された姿勢特徴量を受信した動画配信装置２２０において、アニメーション生成部２１ｃは、受信した姿勢特徴量に基づいて、動画再生装置２１０のユーザのアバタのアニメーションを生成する。姿勢特徴量に基づくアバタのアニメーションの生成方法は、動画配信システム１における生成方法と同様である。動画配信システム２０１においては、動画再生装置２１０から動画配信装置２２０に対して姿勢特徴量が伝送されない期間がある。具体的には、選択フレーム以外のフレームにおいては姿勢特徴量は動画配信装置２２０に伝送されない。この姿勢特徴量が伝送されない期間において、アニメーション生成部２１ｃは、アバタについて定められている基本動作に従った動きを行うように当該アバタのアニメーションを作成してもよい。アバタの基本動作は記述の通りであり、手を揺らす動作などの予め定められた動作である。
【０１１１】
動画配信システム２０１においては、選択フレームにおいてのみ姿勢特徴量が動画再生装置２１０から動画配信装置２２０に伝送されるので、算出された姿勢特徴量をリアルタイムで伝送する態様よりも伝送されるデータ量を削減することができる。
【０１１２】
次に、図１５を参照して、本発明の他の実施形態について説明する。図１５には、本発明の他の実施形態による動画配信システム３０１のブロック図が示されている。動画配信システム１においては、動画再生装置において姿勢特徴量などの動画生成に必要なデータに基づいて動画を生成する点で動画配信システム１と異なっている。具体的には、動画配信システム３０１は、姿勢データ取得装置３１０と、動画配信装置３２０と、動画再生装置３３０と、を備える。姿勢データ取得装置３１０と、動画配信装置３２０、及び動画再生装置３３０は、ネットワーク５０を介して接続されている。動画配信システム３０１においては、姿勢データ取得装置３１０のユーザの動きに基づいて生成されるアバタのアニメーションを含む動画を動画再生装置３２０において生成し、この生成した動画を再生することが想定されている。つまり、姿勢データ取得装置３１０のユーザは、自らの動きに基づいて動くアバタを含む動画を、視聴ユーザによって使用される動画再生装置３２０において再生させることができる。姿勢データ取得装置３１０のユーザは、動画再生装置３２０のユーザとアバタを介して対話することができる。本実施形態に関して姿勢データ取得装置３１０のユーザを単に「配信ユーザ」と呼ぶことがある。図１５には説明のため姿勢データ取得装置３１０、動画配信装置３２０、及び動画再生装置３３０が一つずつ図示されているが、動画配信システム３０１は、これらの装置を複数備えてもよい。
【０１１３】
姿勢データ取得装置３１０は、姿勢データ取得装置３１０のユーザの姿勢の特徴を表す姿勢特徴量を取得する。視聴ユーザの姿勢の特徴を表す姿勢特徴量は、当該視聴ユーザの姿勢を表す３次元骨格データ、つまり視聴ユーザのボーンの位置及び向きを示す３次元ベクトルデータであってもよい。姿勢データ取得装置３１０は、既述のセンサユニット１５を備えてもよい。姿勢データ取得装置３１０は、センサユニット１５が検出した検出データに基づいて視聴ユーザの３次元骨格データを生成することができる。姿勢データ取得装置３１０は、取得された姿勢特徴量を動画配信装置３２０に送信する。姿勢データ取得装置３１０は、配信ユーザの音声を表す音声データを動画配信装置３２０に送信しても良い。
【０１１４】
動画配信装置３２０は、既述の動画配信装置２０と同様にコンピュータプロセッサ２１と、通信Ｉ／Ｆ２２と、ストレージ２３と、を備える。動画配信装置３２０は、コンピュータプロセッサ２１によって実現される機能及びストレージ２３に格納されるデータの点で動画配信装置２０と異なっている。そこで、以下では、動画配信装置３２０のコンピュータプロセッサ２１において実現される機能及びストレージ２３に格納されるデータについて説明する。
【０１１５】
図示のように、動画配信システム３０１ストレージ２３には、オブジェクトデータ２３ａ、アバタデータ２３ｂ、基準姿勢管理データ３２３ａ、及び前記以外の動画の生成及び配信のために必要な様々な情報が記憶され得る。オブジェクトデータ２３ａ及びアバタデータ２３ｂは、動画配信システム１において記憶されるオブジェクトデータ２３ａ及びアバタデータ２３ｂと同じであってもよい。基準姿勢管理データ３２３ａは、動画配信システム１における基準姿勢管理データ１３ａと同じものであってもよい。すなわち、基準姿勢管理データ３２３ａは、図３に示されているように、基準姿勢を識別する基準姿勢識別データと、この基準姿勢識別データと対応付けて記憶される開始姿勢データ及びトリガー姿勢データを含むことができる。
【０１１６】
コンピュータプロセッサ２１は、コンピュータ読み取り可能な命令を実行することにより、姿勢特徴量取得部３２１ａ、送信部３２１ｂ、分類部３２１ｃ、及び遅延監視部３２１ｄとして機能する。コンピュータプロセッサ２１により実現される機能の少なくとも一部は、動画配信システム３０１のコンピュータプロセッサ２１以外のコンピュータプロセッサにより実現されてもよい。
【０１１７】
姿勢特徴量取得部３２１ａは、姿勢データ取得装置３１０から、姿勢データ取得装置３１０のユーザの姿勢を表す姿勢特徴量を取得する。
【０１１８】
送信部３２１ｂは、姿勢データ取得装置３１０から取得された当該姿勢データ取得装置３１０のユーザの姿勢を表す姿勢特徴量を動画再生装置３３０に送信する。送信部３２１ｂは、姿勢データ取得装置３１０から姿勢特徴量を受け取ると即時に動画配信装置３２０に送信してもよい。言い換えると、送信部３２１ｂは、配信ユーザの姿勢特徴量をリアルタイムに動画配信装置３２０に送信することができる。送信部３２１ｂは、この姿勢特徴量を含むパケットを動画再生装置３２０に対して送信してもよい。送信部３２１ｂは、姿勢特徴量に加えて、動画再生装置３３０における動画の生成に必要なデータを動画再生装置３３０に送信することができる。例えば、送信部３２１ｂは、オブジェクトデータ２３ａ及びアバタデータ２３ｂの少なくとも一部を動画再生装置３３０に送信することができる。オブジェクトデータ２３ａ及びアバタデータ２３ｂは、送信部３２１ｂによって動画再生装置３３０に送信されるのではなく、動画再生装置３３０に予め記憶されていてもよい。この場合、動画配信装置３２０から動画再生装置３３０へのオブジェクトデータ２３ａ及びアバタデータ２３ｂの送信は不要となる。また、送信部３２１ｂは、動画配信装置３２０が生成データ取得装置３１０から取得した配信ユーザの音声を表す音声データを動画再生装置３３０に送信しても良い。
【０１１９】
分類部３２１ｃは、配信ユーザの姿勢を分類する分類器により、当該視聴ユーザの姿勢特徴量（例えば、３次元骨格データ）に基づいて、当該視聴ユーザの姿勢が予め定められた基準姿勢に属するか否かを判定する。この分類器は、例えば線形分類器である。分類部３２１ｃは、動画配信システム１の分類部１１ｄと概ね同じ機能を実現してもよい。例えば、分類部３２１ｃは、基準姿勢が開始姿勢とトリガー姿勢とを含む場合に、配信ユーザの姿勢が当該基準姿勢に属するか否か及び当該トリガー姿勢に属するか否かをそれぞれ判定することができる。
【０１２０】
遅延監視部３２１ｄは、送信部３２１ｃによって動画配信装置３２０から動画再生装置３３０に送信されたモーションデータの伝送遅延を監視する。遅延監視部３２１ｄは、動画配信システム１の遅延監視部１１ｅと概ね同じ機能を実現しても良い。例えば、遅延監視部３２１ｄは、モーションデータを含む実パケットに送信前にタイムスタンプを付加し、この送信時に付加されたタイプスタンプと、この実パケットが動画再生装置３３０で受信されたときに付加されるタイムスタンプと、を用いて動画配信装置３２０と動画再生装置３３０との間の伝送路における当該実パケットの伝送時間を求めることができる。伝送遅延の発生の有無は、パケットに含まれるタイムスタンプに基づいて動画再生装置３３０において判定されてもよい。動画再生装置３２０は、動画配信装置３３０における伝送遅延の判定結果を受け取っても良い。
【０１２１】
再び送信部３２１ｂの機能について説明する。送信部３２１ｂは、遅延監視部３２１ｄにおいて伝送路に遅延が発生していると判定された場合に、ストレージ２３に記憶されている基準姿勢識別データ（基準姿勢ＩＤ）を動画再生装置３３０に送信することができる。基準姿勢識別データは、視聴ユーザの姿勢特徴量を含むモーションデータに代えて送信されてもよい。上記のとおり、基準姿勢識別データは、開始姿勢データ及びトリガー姿勢データを含み得る。この伝送遅延が発生している場合に実行される送信部３２１ｂの機能は、伝送遅延が発生している場合に送信部１１ｃによって実行される機能と同様である。
【０１２２】
動画再生装置３３０は、既述の動画再生装置１０と同様にコンピュータプロセッサ１１と、通信Ｉ／Ｆ１２と、ストレージ１３と、を備える。動画再生装置３３０は、コンピュータプロセッサ１１によって実現される機能及びストレージ２３に格納されるデータの点で動画再生装置１０と異なっている。そこで、以下では、動画再生装置３３０のコンピュータプロセッサ２１において実現される機能及びストレージ２３に格納されるデータについて説明する。
【０１２３】
動画再生装置３３０のストレージ１３には、アニメーション管理データ３１３ａが記憶される。アニメーション管理データ３１３ａは、動画配信システム１において記憶されるアニメーション管理データ１３ａと同じであってもよい。例えば、アニメーション管理データ３１３ａは、図６に示されているように、基準姿勢識別データと、登録アニメーションを識別する登録アニメーション識別データ（登録アニメーションＩＤ）と、アバタのアニメーションを特定するためのアニメーション定義データと、を有する。
【０１２４】
コンピュータプロセッサ１１は、コンピュータ読み取り可能な命令を実行することにより、アニメーション生成部３３１ａ、動画生成部３３１ｂ、及び動画再生部３３１ｃとして機能する。コンピュータプロセッサ１１により実現される機能の少なくとも一部は、動画配信システム３０１のコンピュータプロセッサ１１以外のコンピュータプロセッサにより実現されてもよい。
【０１２５】
アニメーション生成部３３１ａは、動画配信システム１のアニメーション生成部２１ｃと概ね同じ機能を実現しても良い。例えば、アニメーション生成部３３１ｃは、姿勢データ取得装置３１０の配信ユーザのアバタのアニメーションを生成することができる。一実施形態において、アニメーション生成部３３１ｃは、動画配信装置３２０から受信した配信ユーザの姿勢特徴量及びアバタデータ２３ｂに基づいて、当該配信ユーザのアバタのアニメーションを生成する。アニメーション生成部３３１ｃは、動画配信装置３２０から視聴ユーザの姿勢特徴量を連続して受信することで、当該姿勢特徴量に基づいて、当該視聴ユーザの体の動きに同期して動くアバタのアニメーションを生成することができる。
【０１２６】
動画生成部３３１ｂは、動画配信装置３２０から取得したオブジェクトデータ２３ａを用いて仮想空間を構築し、この仮想空間内でアニメーション生成部３３１ａにて生成されたアバタが動く動画を生成することができる。この動画には、配信ユーザの音声を合成することができる。
【０１２７】
動画再生部３３１ａは、動画生成部３３１ｂにおいて生成された動画を再生する。これにより、動画再生装置３３０のディスプレイ１４に配信ユーザのアバタのアニメーションを含む動画が表示される。
【０１２８】
動画配信装置３２０から動画再生装置３３０へデータを伝送する伝送路において伝送遅延が発生した場合におけるアニメーション生成部３３１ａにより実現される処理について説明する。動画配信装置３２０から動画再生装置３３０への伝送路で伝送遅延が発生すると、配信ユーザの動きを反映して滑らかに動くアバタのアニメーションを生成することができなくなってしまうおそれがある。アニメーション生成部３３１ａは、動画配信装置３２０からの基準姿勢識別データ（例えば、基準姿勢ＩＤ）に基づいてアバタのアニメーションを生成することができる。具体的には、アニメーション生成部３３１ａは、動画再生装置１０から基準姿勢識別データを受信すると、アニメーション管理データ３１３ａを参照することで受信した基準姿勢識別データに対応付けられている登録アニメーションを特定することができ、この特定された登録アニメーションの登録アニメーションＩＤに対応付けられているアニメーション定義データに基づいてアバタのアニメーションを生成することができる。よって、アニメーション生成部３３１ａは、モーションデータの伝送に遅延が発生している間に姿勢特徴量が受信できなかったとしても、その遅延が発生している間に動画配信装置３２０から送られてくる基準姿勢識別データに基づいてアバタのアニメーションを生成することができる。
【０１２９】
一実施形態において、姿勢データ取得装置３１０が動画再生装置３２０の機能を実現可能に構成され、動画再生装置３２０が姿勢データ取得装置３１０の機能を実現可能に構成されてもよい。これにより、両装置のユーザ同士がアバタを介して双方向的にコミニュケーションできる。
【０１３０】
次に、図１６を参照して、上記の動画配信システムの変形例について説明する。上記の実施形態では、分類部１１ｄによって視聴ユーザの姿勢が基準姿勢に属すると判定された場合に、姿勢特徴量に代えて基準姿勢を識別する基準姿勢ＩＤを送信することで、ユーザの姿勢を表すデータのデータ量を少なくしている。図１６に示す例では、基準姿勢ＩＤに代えて、以下のようにして決定する特徴配列のインデックス（添字）を用いる。つまり、伝送遅延が発生しているときに、ユーザの姿勢を表す姿勢特徴量に代えて、特徴配列のインデックスが送信される。特徴配列のインデックスは、以下で説明するように数ビット程度のデータであり、基準姿勢ＩＤと同様に１０ビット以下の範囲の情報量で表すことができる。
【０１３１】
動画配信システム１においては、特徴配列は、以下のようにして決定される。まず、図７及び図８を参照して説明したように、動画再生装置１０は、所定のフレームレートで動画再生装置１０のユーザを撮像して撮像画像を取得し、この撮像画像の各フレームにおいて当該ユーザに関連する複数の特徴点を抽出する。例えば、図７に示されているようにＰ１〜Ｐ６の６つの特徴点が抽出される。動画再生装置１０は、抽出された複数の特徴点の各々についてユーザの動きに関する画像ベクトルを得る。特徴点Ｐ１〜Ｐ６の各々における画像ベクトルは、例えば、各特徴点における深度である。各特徴点Ｐ１〜Ｐ６の画像ベクトルは、０〜１．０の範囲に正規化されてｆｌｏａｔ配列として表現されてもよい。このようにして取得された特徴点Ｐ１〜Ｐ６の画像ベクトルを図１６に示す。図１６には、説明の簡略化のために１０フレーム分の画像ベクトルが示されているが、実際には統計的解析に十分な量のフレームについて画像ベクトルが取得される。
【０１３２】
次に、特徴点Ｐ１〜Ｐ６の各々について、所定区間における画像ベクトルの要素の和Σを算出する。図１６の表には、第０フレーム〜第２５フレームの２６フレーム分の区間における画像ベクトルの要素の和が「Σ」と表記されている行に示されている。次に、各特徴点Ｐ１〜Ｐ６の画像ベクトルの要素の和を大きい順にソートする。図１６においては、このソート結果が「ＲＡＮＫ」と表記されている行に示されている。図１６の例では、Ｐ４、Ｐ３、Ｐ６、Ｐ２、Ｐ１、Ｐ５の順にソートされる。このソート後の配列を｛4,3,6,2,1,5｝と表現する。
【０１３３】
動画再生装置１０は、ユーザの動きに関する画像ベクトルのサンプルを学習することにより、ユーザの特徴的な姿勢又は動きを示す代表ベクトルを算出する。代表ベクトルは、例えば、ロイドアルゴリズム及びこれ以外の公知のアルゴリズムを用いて算出される。つまり、代表ベクトルは、ユーザの特徴的な姿勢を示す。よって、この代表ベクトルに基づいてユーザの姿勢を特定することができる。動画再生装置は、算出された代表ベクトルをインデックスとともに記憶する。動画再生装置１０は、自装置以外で算出された代表ベクトルを取得しても良い。本実施形態では、４つの代表ベクトルＡ〜Ｄが算出されており、各代表ベクトルの要素を大きい順にソートして代表ベクトルの配列を得る。代表ベクトルＡ〜Ｄの各々の要素を大きい順にソートした配列はそれぞれ順に｛1,3,6,2,4,5｝、｛4,3,6,2,1,5｝｛2,3,6,4,5,1｝｛1,2,3,4,5,6｝を表されると想定する。
【０１３４】
動画再生装置１０は、撮像画像から得られた画像ベクトルをソートして得られた入力配列｛4,3,6,2,1,5｝と各代表ベクトルの配列とを比較し、入力配列｛4,3,6,2,1,5｝と最も近い代表ベクトルの配列を選定する。図１６に示されている例では、入力配列｛4,3,6,2,1,5｝が４つの代表ベクトルの配列のうち代表ベクトルＢの配列｛4,3,6,2,1,5｝と一致していることから、｛4,3,6,2,1,5｝が特徴配列として選定される。動画再生装置１０は、このようにして選定された特徴配列のインデックスを動画配信装置２０に送信する。
【０１３５】
動画配信装置２０は、代表ベクトルＡ〜Ｄとその配列とが対応付けられているコードブックを記憶している。動画配信装置２０は、当該コードブックを参照し、動画再生装置１０から取得した特徴配列に対応する代表ベクトルＢに対応する姿勢を取るように上記ユーザのアバタのアニメーションを生成する。
【０１３６】
上記の例では、２６フレーム分の単位区間ごとに特徴配列が動画再生装置１０から動画配信装置２０に送信される。この単位区間は、適宜調整可能である。
【０１３７】
以上のとおり、動画配信システム１において基準姿勢ＩＤに代えて特徴配列のインデックスを伝送し、伝送遅延時にはこの特徴配列のインデックスに基づいてアバタのアニメーションを生成することを説明した。動画配信システム３０１においても同様に、基準姿勢ＩＤに代えて特徴配列を用いることができる。特徴配列は、動画配信システム１０１において基準表情ＩＤに代えて用いることもできる。
【０１３８】
以上の実施形態によって奏される作用効果について説明する。上記の一態様において、伝送路において遅延が発生している間は、データ量が大きな姿勢特徴量ではなく、小さなデータ量で視聴ユーザの姿勢に関する情報を特定することができる基準姿勢識別データが動画再生装置１０から動画配信装置２０に対して送信される。これにより、伝送路において遅延が発生している場合に、小さなデータ量の基準姿勢識別データにより、視聴ユーザの姿勢に関する情報を動画配信装置２０に伝達することができる。
【０１３９】
一態様においては、視聴ユーザのアバタに関して登録アニメーションを登録することができ、伝送路において遅延が発生している間には、基準姿勢識別データに基づいて特定される基準姿勢に対応する登録アニメーションを含む動画が配信される。これにより、動画再生装置１０から動画配信装置２０への伝送路における遅延のために視聴ユーザの姿勢を表す姿勢特徴量の動画配信装置２０への送信が困難な場合であっても、視聴ユーザの姿勢に関連する登録アニメーションを動画に含めることができる。
【０１４０】
上記の一態様においては、動画再生装置３３０において、動画配信装置３２０から受信した配信ユーザの姿勢特徴量に基づいて当該配信ユーザの動きに基づいて動くアバタのアニメーションが生成される。伝送路において遅延が発生している間は、姿勢特徴量ではなく基準姿勢識別データが動画配信装置３２０から動画再生装置３１０に対して送信される。これにより、伝送路において遅延が発生している場合に、配信ユーザの動きを小さなデータ量で表すことができる基準姿勢識別データにより、動画再生装置３３０においてアバタのアニメーションを生成することができる。
【０１４１】
一態様においては、ユーザの動きに基づいて生成されるユーザアニメーションを登録アニメーションとして登録することができる。これにより、姿勢特徴量が利用できない場合におけるアバタの動きのバリエーションを増やすことができる。
【０１４２】
一態様において、伝送路において遅延が発生している間は、データ量が大きな顔特徴量ではなく、小さなデータ量で視聴ユーザの姿勢に関する情報を特定することができる基準表情識別データが動画再生装置１０から動画配信装置２０に対して送信される。これにより、伝送路において遅延が発生している場合に、小さなデータ量の基準表情識別データにより、視聴ユーザの表情に関する情報を動画配信装置２０に伝達することができる。
【０１４３】
本明細書において説明された処理手順、特にフロー図を用いて説明された処理手順においては、その処理手順を構成する工程（ステップ）の一部を省略すること、その処理手順を構成する工程として明示されていない工程を追加すること、及び／又は当該工程の順序を入れ替えることが可能であり、このような省略、追加、順序の変更がなされた処理手順も本発明の趣旨を逸脱しない限り本発明の範囲に含まれる。
【符号の説明】
【０１４４】
１、１０１、２０１、３０１  動画配信システム
１０、１１０、２１０、３３０  動画再生装置
１１ａ  動画再生部
１１ｂ  姿勢データ取得部
１１ｃ  送信部
１１ｄ  分類部
１１ｅ  遅延監視部
１１ｆ  顔特徴量取得部
２０、１２０、２２０、３２０  動画配信装置
２１ａ  動画生成部
２１ｂ  動画配信部
２１ｃ  アニメーション生成部
３１０  姿勢データ取得装置
【要約】      （修正有）【課題】視聴ユーザの動作をリアルタイムで反映したアバタのアニメーションを生成して、配信中の動画に含める。【解決手段】動画再生装置は、コンピュータ読み取り可能な命令を実行することにより、動画配信装置から受信した動画を再生し、ユーザの姿勢の特徴を表す姿勢特徴量を含むモーションデータを動画配信装置に送信し、動画配信装置から姿勢特徴量に基づいて生成されたユーザのアバタのアニメーションを含む動画を受信し、姿勢特徴量に基づいてユーザの姿勢を分類する分類器によりユーザの姿勢が予め定められた基準姿勢に属するか否かを判定し、モーションデータの動画配信装置への伝送に遅延が発生している間に、ユーザの姿勢が属すると判定された基準姿勢を識別し姿勢特徴量よりも少ないデータ量の基準姿勢識別データを動画配信装置に送信する。【選択図】図１０【図１】
0006731532.tif 000004
【図２】
0006731532.tif 000005
【図３】
0006731532.tif 000006
【図４ａ】
0006731532.tif 000007
【図４ｂ】
0006731532.tif 000008
【図５】
0006731532.tif 000009
【図６】
0006731532.tif 000010
【図７】
0006731532.tif 000011
【図８】
0006731532.tif 000012
【図９ａ】
0006731532.tif 000013
【図９ｂ】
0006731532.tif 000014
【図１０】
0006731532.tif 000015
【図１１】
0006731532.tif 000016
【図１２】
0006731532.tif 000017
【図１３】
0006731532.tif 000018
【図１４】
0006731532.tif 000019
【図１５】
0006731532.tif 000020
【図１６】
0006731532.tif 000021