(57)【要約】【課題】ユーザを撮像中の映像をリアルタイムに表示する際に、ユーザの動きの手本を表す手本映像を同期させて表示する。【解決手段】映像制御装置１６は、ユーザが映るユーザ映像を逐次取得する。そして、映像制御装置１６は、逐次取得されたユーザ映像に映るユーザの動きを逐次検出する。そして、映像制御装置１６は、逐次検出されたユーザの動きに応じて、動きの手本を表す手本映像の再生開始及び再生速度を制御し、制御された手本映像と、ユーザ映像とが表示装置３０に表示されるように制御する。【選択図】図１
2019012965.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが映るユーザ映像を逐次取得し、
逐次取得された前記ユーザ映像に映る前記ユーザの動きを逐次検出し、
逐次検出された前記ユーザの動きに応じて、動きの手本を表す手本映像の再生開始及び再生速度を制御し、
前記制御された前記手本映像と、前記ユーザ映像とが表示装置に表示されるように制御する、
処理をコンピュータが実行する映像制御方法。
【請求項２】
前記ユーザ映像に対して、前記制御された前記手本映像が重畳表示されるように前記表示装置を制御する、
請求項１に記載の映像制御方法。
【請求項３】
前記手本映像には、前記動きの手本を表す手本モデルが映っており、
距離センサによって検出された前記ユーザの関節の位置と、前記手本映像に映る前記手本モデルの関節の位置との間の距離が、予め定められた閾値以下である場合に、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
請求項１又は請求項２に記載の映像制御方法。
【請求項４】
前記手本映像には、前記動きの手本を表す手本モデルが映っており、
前記ユーザ映像と、学習用のユーザが映る学習用ユーザ映像及び前記学習用のユーザの関節の位置とから予め学習された関節検出用学習済みモデルとに基づいて、前記ユーザ映像に映る前記ユーザの関節の位置を検出し、
前記ユーザ映像に映る前記ユーザの関節の位置と、前記学習用ユーザ映像に映る前記学習用のユーザの関節の位置及び前記学習用のユーザの動きの開始点から予め学習された動き検出用学習済みモデルとに基づいて、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
請求項１又は請求項２に記載の映像制御方法。
【請求項５】
前記ユーザ映像から、前記ユーザの領域を表す人物領域を検出し、
前記人物領域と、学習用のユーザが映る前記人物領域及び前記学習用のユーザの動きの開始点から予め学習された動き検出用学習済みモデルとに基づいて、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
請求項１又は請求項２に記載の映像制御方法。
【請求項６】
現フレームの前記ユーザの関節の位置と、前フレームの前記ユーザの関節の位置との間の差に基づいて、前記ユーザの動きの速度を検出し、
前記ユーザの動きの速度に応じて、前記手本映像の再生速度を制御する、
請求項３又は請求項４に記載の映像制御方法。
【請求項７】
現フレームの前記ユーザの関節の各々の間の角度と、前フレームの前記ユーザの関節の各々の間の角度との間の差に基づいて、前記ユーザの動きの速度を検出し、
前記ユーザの動きの速度に応じて、前記手本映像の再生速度を制御する、
請求項３又は請求項４に記載の映像制御方法。
【請求項８】
前記ユーザに取り付けられた加速度センサによって検出された加速度に基づいて、前記ユーザの動きの速度を検出し、
前記ユーザの動きの速度に応じて、前記手本映像の再生速度を制御する、
請求項３又は請求項４に記載の映像制御方法。
【請求項９】
前記ユーザ映像に映る前記ユーザの大きさと、前記手本映像に映る動きの手本を表す手本モデルとの大きさとが対応するように、前記手本映像を拡大又は縮小し、
前記ユーザ映像に映る前記ユーザの位置と前記手本モデルの位置とが対応するように、前記手本映像の表示位置を制御する、
請求項３〜請求項８の何れか１項に記載の映像制御方法。
【請求項１０】
ユーザが映るユーザ映像を逐次取得する取得部と、
逐次取得された前記ユーザ映像に映る前記ユーザの動きを逐次検出する検出部と、
逐次検出された前記ユーザの動きに応じて、動きの手本を表す手本映像の再生開始及び再生速度を制御し、前記制御された前記手本映像と、前記ユーザ映像とが表示装置に表示されるように制御する表示制御部、
を含む映像制御装置。
【請求項１１】
ユーザが映るユーザ映像を逐次取得し、
逐次取得された前記ユーザ映像に映る前記ユーザの動きを逐次検出し、
逐次検出された前記ユーザの動きに応じて、動きの手本を表す手本映像の再生開始及び再生速度を制御し、
前記制御された前記手本映像と、前記ユーザ映像とが表示装置に表示されるように制御する、
処理をコンピュータに実行させるための映像制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、映像制御方法、映像制御装置、及び映像制御プログラムに関する。
【背景技術】
【０００２】
従来、練習者が熟練者の手や体の動きを真似する状態を客観的に視認、認識でき、習熟の度合いを明確に把握することが可能な画像練習装置が知られている。この画像練習装置の撮像手段は模範画像を真似した練習者の練習画像を撮像し、撮像した練習者の練習画像を送出する。そして、画像練習装置の画像処理手段は、模範画像と、撮像手段により撮像した練習画像とを分割状態に合成処理し表示手段に送る。画像練習装置の表示手段は、画像処理手段により合成した模範画像と練習画像とを画面上に分割表示する。これにより、練習者は画面上に分割表示される模範画像と自身の練習画像とを同時に視認でき、自身の習熟の度合いを客観的に把握できる。
【０００３】
また、動きに関する教材映像を通して動きを学習する動き学習支援装置が知られている。この動き学習支援装置は、時間方向に区分された、動きに関する教材映像の各区分教材映像と、撮像部で撮影される、各区分教材映像の動きを真似る学習者の練習画像とを区分毎に交互にモニタに表示する。
【０００４】
また、各動き要素を学習する手順学習と一連の動きを追従する学習とを段階的に行うよう支援するようにして、短時間かつ効果的に、正しい動きを習得するための動き学習支援装置が知られている。この動き学習支援装置は、モニタと、内視鏡カメラと、鉗子による結紮縫合処置の各動き要素映像を個別にモニタに表示する。動き学習支援装置は、当該動き要素映像の表示に続いて内視鏡カメラの撮像映像をモニタに表示する手順学習映像表示処理部と、モニタに、結紮縫合処置の一連の動きの映像と内視鏡カメラの撮像映像とを時分割表示する追従学習映像表示処理部とを備えている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８‐２５１５７７号公報
【特許文献２】国際公開第２０１５／０９７８２５号
【特許文献３】特開２０１４‐７１４４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特定の動きを習得したいユーザが、正しい動きを習得するためには、ユーザの映像に同期された手本の映像がリアルタイムに表示されることが好ましい。例えば、ユーザが、スポーツの動きを習得する際には、リアルタイムに撮像されたユーザの映像に合わせて手本の映像が表示されると、ユーザは正しい動きを効果的に習得することができると考えられる。
【０００７】
しかし、ユーザの動きに同期させて手本の映像を表示するためには、ユーザの動きの開始から終了までの時間と手本の映像の再生時間とを合わせるように、手本の映像の再生速度を制御する必要がある。このため、リアルタイムに撮像されたユーザの映像に手本の映像を同期させることは、ユーザの動きの終了点が未知であるため難しい。
【０００８】
一つの側面では、開示の技術は、ユーザを撮像中の映像をリアルタイムに表示する際に、ユーザの動きの手本を表す手本映像を同期させて表示することが目的である。
【課題を解決するための手段】
【０００９】
開示の技術は、一つの実施態様では、映像制御方法は、ユーザが映るユーザ映像を逐次取得し、逐次取得された前記ユーザ映像に映る前記ユーザの動きを逐次検出する。そして、映像制御方法は、逐次検出された前記ユーザの動きに応じて、動きの手本を表す手本映像の再生開始及び再生速度を制御する。そして、映像制御方法は、前記制御された前記手本映像と、前記ユーザ映像とが表示装置に表示されるように制御する。
【発明の効果】
【００１０】
一つの側面として、ユーザを撮像中の映像をリアルタイムに表示する際に、ユーザの動きの手本を表す手本映像を同期させて表示することができる、という効果を有する。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る映像表示システムの概略ブロック図である。
【図２】第１の実施形態に係る映像表示システムの具体的な構成例を示す図である。
【図３】映像記憶部に格納されるテーブルの一例を示す図である。
【図４】手本映像を説明するための説明図である。
【図５】関節位置記憶部に格納されるテーブルの一例を示す図である。
【図６】ユーザ映像に対する手本映像の重畳表示を説明するための説明図である。
【図７】第１の実施形態に係る映像制御装置として機能するコンピュータの概略構成を示すブロック図である。
【図８】第１の実施形態の映像制御処理ルーチンの一例を示すフローチャートである。
【図９】第２の実施形態に係る映像表示システムの概略ブロック図である。
【図１０】第２の実施形態の映像表示システムの具体的な構成例を示す図である。
【図１１】第２の実施形態に係る映像制御装置として機能するコンピュータの概略構成を示すブロック図である。
【図１２】第２の実施形態の映像制御処理ルーチンの一例を示すフローチャートである。
【図１３】第３の実施形態に係る映像表示システムの概略ブロック図である。
【図１４】第３の実施形態に係る映像制御装置として機能するコンピュータの概略構成を示すブロック図である。
【図１５】第３の実施形態の映像制御処理ルーチンの一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【００１３】
＜第１の実施形態＞
【００１４】
図１に、映像表示システム１０の機能的な構成例を示す。図１に示されるように、第１の実施形態に係る映像表示システム１０は、カメラ１２と、距離センサ１４と、映像制御装置１６と、表示装置３０とを備えている。
【００１５】
また、図２に、映像表示システム１０の具体的な構成例を示す。図２に示されるように、映像表示システム１０は、カメラ１２によって逐次撮像されたユーザＵが映るユーザ映像ＵＡを表示装置３０へ表示する。また、映像表示システム１０は、ユーザＵの動きの手本を表す手本映像ＭＡを表示装置３０へ表示する。なお、映像表示システム１０は、図２に示されるように、ユーザ映像に対して手本映像が重畳表示されるように表示装置３０を制御する。映像表示システム１０について、以下具体的に説明する。
【００１６】
カメラ１２は、ユーザが映るユーザ映像を逐次撮像する。カメラ１２は、例えば図２に示されるように、ユーザＵの全体像が映るような位置に設置される。
【００１７】
距離センサ１４は、３次元点群データを逐次取得する。距離センサ１４は、例えば図２に示されるように、ユーザＵの全体像に対応する３次元点群データが取得されるような位置に設置される。
【００１８】
映像制御装置１６は、図１に示されるように、取得部１８と、映像記憶部２０と、動作検出部２２と、関節位置記憶部２４と、動作速度検出部２６と、表示制御部２８とを備えている。動作検出部２２と動作速度検出部２６とは、開示の技術の検出部の一例である。
【００１９】
取得部１８は、カメラ１２によって撮像されたユーザ映像を逐次取得する。
【００２０】
映像記憶部２０には、ユーザの動きの手本を表す手本映像に関する情報が格納される。具体的には、映像記憶部２０には、動きの手本を表す手本映像と、手本映像に映る動きの手本を表す手本モデルの関節の位置を示す３次元座標の各々と、手本モデルの各関節の３次元座標の平均の座標が格納される。手本映像に関する情報は、例えば、図３に示されるように、テーブルの形式で格納される。図３に示すテーブルには、時刻ｔと、手本映像ＭＡの各時刻のフレームの画像と、手本モデルの各関節の３次元座標の各々と、手本モデルの関節の３次元座標の各々の平均の座標とが対応付けられて格納される。図３に示される例では、例えば、時刻ｔ１と、手本映像ＭＡの時刻ｔ１のフレームの画像Ｍ１と、フレームの画像Ｍ１に映る手本モデルの関節の３次元座標（Ｅ０，Ｅ１，…）と、平均の座標Ｅｇとが対応付けられて格納される。
【００２１】
図４に、手本映像を説明するための説明図を示す。図４に示されるように、手本映像ＭＡには、動きの手本を表す手本モデルＭＴが映っている。また、手本モデルＭＴには、手本モデルＭＴの関節の位置を表す関節モデルＭＫが含まれている。関節モデルＭＫの各関節の位置を表す３次元座標の各々が、手本モデルＭＴの関節の位置を示す３次元座標の各々として映像記憶部２０に格納される。
【００２２】
動作検出部２２は、距離センサ１４によって計測された３次元点群データに基づいて、ユーザの各関節の位置を示す３次元座標を逐次取得する。動作検出部２２は、ユーザの各関節の位置を示す３次元座標を関節位置記憶部２４へ格納する。そして、動作検出部２２は、ユーザの関節の位置を示す３次元座標と、映像記憶部２０に格納された手本映像に映る手本モデルの関節の位置を示す３次元座標との間の距離が、予め定められた閾値以下である場合に、ユーザの動きの開始点を検出する。
【００２３】
具体的には、まず、動作検出部２２は、距離センサ１４によって計測される３次元点群データから、ユーザの各関節ｉの位置を示す３次元座標Ａｉを取得する。ｉ（＝０〜Ｎ−１）は関節を識別するための番号である。なお、３次元点群データから関節の位置を示す３次元座標の取得方法は、従来既知の手法を用いることができる。
【００２４】
次に、動作検出部２２は、ユーザの各関節ｉの３次元座標Ａｉと、手本映像に映る手本モデルの各関節ｉの３次元座標Ｅｉとの間の差分二乗和Ｃを最小にするスケーリング係数Ｓを算出する。スケーリング係数Ｓは、ユーザと手本映像に映る手本モデルとの間の体格差を調整する為の係数であり、以下の式（１）示される値Ｘが最小となるように求められる。
【００２５】
【数１】
2019012965.tif 000003
（１）
【００２６】
次に、動作検出部２２は、取得部１８によって取得されたユーザ映像に映るユーザの大きさと、映像記憶部２０に格納された手本映像に映る手本モデルの大きさとが対応するように、スケーリング係数Ｓに応じて、手本映像を拡大又は縮小させる。
【００２７】
そして、動作検出部２２は、ユーザの各関節ｉの３次元座標Ａｉと手本映像に映る手本モデルの各関節ｉの３次元座標Ｅｉとの間の差分二乗和Ｃが閾値Ｔｃ以下になった場合、ユーザが動きの開始姿勢を取ったと判定する。
【００２８】
具体的には、まず、動作検出部２２は、ユーザの各関節ｉの３次元座標Ａｉから、ユーザの各関節ｉの平均の座標Ａｇを算出する。また、動作検出部２２は、映像記憶部２０に格納された、手本モデルの関節ｉの３次元座標Ｅｉの各々と、手本モデルの各関節ｉの平均の座標Ｅｇとを取得する。そして、動作検出部２２は、以下の式（２）に従って、ユーザの各関節ｉの３次元座標Ａｉと、手本映像に映る手本モデルの各関節ｉの３次元座標Ｅｉとの間の差分二乗和Ｃを算出する。
【００２９】
【数２】
2019012965.tif 000004
（２）
【００３０】
なお、上記式（２）におけるＭは手本映像の３次元座標系からユーザの３次元座標系へ変換する為の変換行列であり、事前にカメラ１２のキャリブレーションを行うことにより求められる。また、||・||はベクトルのノルムを表す。
【００３１】
そして、動作検出部２２は、上記式（２）によって算出された差分二乗和Ｃが閾値Ｔｃ以下である場合、ユーザの動きの開始点を検出する。
【００３２】
関節位置記憶部２４には、動作検出部２２によって取得されたユーザの各関節ｉの位置を示す３次元座標Ａｉと各関節ｉの３次元座標Ａｉの平均の座標とが格納される。なお、ユーザの各関節ｉの３次元座標と平均の座標とは、ユーザ映像の各時刻のフレームに対応して格納される。ユーザの各関節ｉの３次元座標Ａｉと平均の座標とは、例えば、図５に示されるように、テーブルの形式で格納される。図５に示すテーブルには、関節の位置を示す３次元座標が取得された時刻と、関節の位置を示す３次元座標と、平均の座標とが対応付けられて格納される。
【００３３】
動作速度検出部２６は、関節位置記憶部２４に格納された、現時刻のフレームのユーザの各関節ｉの３次元座標Ａｉと、前時刻のフレームのユーザの各関節ｉの３次元座標Ａｉ’との間の差に基づき、ユーザの動き関節の移動距離和Ｖａを算出する。具体的には、動作速度検出部２６は、以下の式（３）に従って、ユーザの動き関節の移動距離和Ｖａを算出する。ユーザの動きの速度は、ユーザ映像内のユーザのフレーム間の関節の移動距離和Ｖａとして表される。
【００３４】
【数３】
2019012965.tif 000005
（３）
【００３５】
なお、上記式（３）における重み係数Ｗｉは、関節ｉ毎に予め設定される。例えば、手の動きが重要な動きの場合は、手の関節の寄与が高くなるように、手の関節に対応する重み係数Ｗｉが大きくなるように予め設定することができる。また、手の関節とは異なる脚の関節等に対応する重み係数Ｗｉが小さくなるように設定することができる。
【００３６】
また、動作速度検出部２６は、現時刻に表示する予定のフレームの手本モデルの各関節ｉの３次元座標Ｅｉと、前時刻に表示したフレームの手本モデルの各関節ｉの３次元座標Ｅｉ’との間の差とに基づき、手本モデルの関節の移動距離和Ｖｅを算出する。現時刻に表示する予定のフレームとは、前時刻に表示したフレームと、前時刻に決定された手本映像の更新時間（詳細は後述）と、ユーザ映像の更新時間とに基づいて定まるフレームである。例えば、時刻ｔのフレームをフレームＦｔとし、前時刻に表示したフレームがフレームＦ０、前時刻に決定された手本映像の更新時間が１０［ｍｓ］、ユーザ映像の更新時間が１０［ｍｓ］であるとする。この場合、現時刻に表示する予定のフレームは、フレームＦ０の次時刻のフレームであるフレームＦ１となる。また、前時刻に決定された手本映像の更新時間２０［ｍｓ］の場合、現時刻に表示する予定のフレームは、前時刻に表示したフレームＦ０のままである。また、前時刻に決定された手本映像の更新時間５［ｍｓ］の場合、現時刻に表示する予定のフレームは、前時刻に表示したフレームＦ０の２フレーム後のフレームＦ２となる。また、３次元座標Ｅｉ及びＥｉ’は、映像記憶部２０に格納された情報を用いる。具体的には、動作速度検出部２６は、以下の式（４）に従って、手本モデルの関節の移動距離和Ｖｅを算出する。手本モデルの動きの速度は、手本映像内の手本モデルのフレーム間の関節の移動距離和Ｖｅとして表される。
【００３７】
【数４】
2019012965.tif 000006
（４）
【００３８】
表示制御部２８は、取得部１８によって取得されたユーザ映像を逐次取得する。次に、表示制御部２８は、動作検出部２２によって算出されたスケーリング係数Ｓに応じて、ユーザ映像に映るユーザの大きさと手本映像に映る手本モデルとの大きさとが対応するように、手本映像を拡大又は縮小する。
【００３９】
また、表示制御部２８は、動作検出部２２によって検出されたユーザの動きの開始点に応じて、映像記憶部２０に格納された手本映像の再生を開始するように制御する。例えば、表示制御部２８は、ユーザの動きの開始点が検出された場合、図６に示されるように、ユーザ映像ＵＡに対して手本映像ＭＡを重畳するように表示させる。
【００４０】
また、表示制御部２８は、動作速度検出部２６によって逐次検出されたユーザの動きの速度に応じて、手本映像の再生速度を制御して、手本映像とユーザ映像とが同期して表示されるように表示装置３０を制御する。なお、表示制御部２８は、ユーザ映像に対して、再生速度が制御された手本映像が重畳表示されるように表示装置３０を制御する。
【００４１】
具体的には、表示制御部２８は、上記式（３）によって得られたユーザの動きの速度Ｖａと、上記式（４）によって得られた手本モデルの動きの速度Ｖｅとに応じて、以下の式（５）に従って、手本映像の再生速度としての手本映像の更新時間Ｔを決定する。
【００４２】
【数５】
2019012965.tif 000007
（５）
【００４３】
上記式（５）におけるｔは、再生速度を変更しない場合の手本映像の更新時間を表す。手本映像の１秒当たりのフレーム数が１００［ｆｐｓ］であれば、手本映像の更新時間はｔ＝１０［ｍｓ］となる。
【００４４】
例えば、手本映像の１秒当たりのフレーム数が１００［ｆｐｓ］(１０［ｍｓ］ごとに更新）であり、かつ上記式（５）におけるＶｅ／Ｖａ＝２．０である場合、表示制御部２８は、手本映像のフレームの表示間隔を２０［ｍｓ］に更新する。なお、表示装置３０は可変フレームレートに対応している必要は無く、表示用のメモリデータを２０［ｍｓ］後に更新すれば良い。
【００４５】
また、表示制御部２８は、ユーザ映像に映るユーザの位置と手本映像に映る手本モデルの位置とが対応するように、手本映像の表示位置を制御する。
【００４６】
具体的には、まず、表示制御部２８は、ユーザの複数の関節ｉの各々のうち、前時刻のフレームのユーザの関節の３次元座標と、現時刻のフレームのユーザの関節の３次元座標との間の移動量が、最も小さい関節である基準関節ｓを特定する。
【００４７】
そして、表示制御部２８は、ユーザ映像の基準関節ｓの位置と、手本モデルの対応する基準関節ｓの位置とが対応するように、手本映像の表示位置を制御する。
【００４８】
より詳細には、表示制御部２８は、ユーザの基準関節ｓの３次元座標Ａｓと、手本モデルの基準関節ｓの３次元座標Ｅｓとに基づいて、以下の式（６）に従って、平行移動量Ｐを算出する。そして、表示制御部２８は、平行移動量Ｐに応じて手本映像を平行移動させて、ユーザ映像に対して重畳表示する。
【００４９】
【数６】
2019012965.tif 000008
（６）
【００５０】
表示装置３０には、表示制御部２８の制御に応じて、ユーザ画像に対して手本画像が重畳表示される。
【００５１】
映像制御装置１６は、例えば、図７に示すコンピュータ５０で実現することができる。コンピュータ５０はＣＰＵ５１、一時記憶領域としてのメモリ５２、及び不揮発性の記憶部５３を備える。また、コンピュータ５０は、カメラ１２、距離センサ１４、及び表示装置３０が接続される入出力interface（Ｉ／Ｆ）５４、並びに記録媒体５９に対するデータの読み込み及び書き込みを制御するread/write（Ｒ／Ｗ）部５５を備える。また、コンピュータ５０は、インターネット等のネットワークに接続されるネットワークＩ／Ｆ５６を備える。ＣＰＵ５１、メモリ５２、記憶部５３、入出力Ｉ／Ｆ５４、Ｒ／Ｗ部５５、及びネットワークＩ／Ｆ５６は、バス５７を介して互いに接続される。
【００５２】
記憶部５３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部５３には、コンピュータ５０を映像制御装置１６として機能させるための映像制御プログラム６０が記憶されている。映像制御プログラム６０は、取得プロセス６１と、動作検出プロセス６２と、動作速度検出プロセス６３と、表示制御プロセス６４とを有する。情報記憶領域６５には、関節位置記憶部２４を構成する情報と、映像記憶部２０を構成する情報とが記憶される。
【００５３】
ＣＰＵ５１は、映像制御プログラム６０を記憶部５３から読み出してメモリ５２に展開し、映像制御プログラム６０が有するプロセスを順次実行する。ＣＰＵ５１は、取得プロセス６１を実行することで、図１に示す取得部１８として動作する。ＣＰＵ５１は、動作検出プロセス６２を実行することで、図１に示す動作検出部２２として動作する。また、ＣＰＵ５１は、動作速度検出プロセス６３を実行することで、図１に示す動作速度検出部２６として動作する。また、ＣＰＵ５１は、表示制御プロセス６４を実行することで、図１に示す表示制御部２８として動作する。また、ＣＰＵ５１は、情報記憶領域６５から情報を読み出して、関節位置記憶部２４をメモリ５２に展開する。また、ＣＰＵ５１は、情報記憶領域６５から情報を読み出して、映像記憶部２０をメモリ５２に展開する。これにより、映像制御プログラム６０を実行したコンピュータ５０が、映像制御装置１６として機能することになる。ソフトウェアである映像制御プログラム６０を実行するＣＰＵ５１はハードウェアである。
【００５４】
なお、映像制御プログラム６０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００５５】
次に、第１の実施形態に係る映像制御装置１６の作用について説明する。映像表示システム１０のカメラ１２によってユーザの撮像が開始され、かつ距離センサ１４によって３次元点群データの取得が開始されると、映像制御装置１６は、図８に示す映像制御処理ルーチンを実行する。
【００５６】
ステップＳ１００において、表示制御部２８は、手本映像を再生するための映像再生フラグＦＬを０に設定する。
【００５７】
ステップＳ１０２において、動作検出部２２は、映像記憶部２０に格納された、手本モデルの各関節ｉの位置を示す３次元座標Ｅｉと、手本モデルの各関節の平均の座標Ｅｇとを取得する。
【００５８】
ステップＳ１０４において、取得部１８は、カメラ１２によって撮像されたユーザ映像を取得する。また、表示制御部２８は、ユーザ映像を表示装置３０へ表示するように制御する。
【００５９】
ステップＳ１０６において、動作検出部２２は、距離センサ１４によって計測された３次元点群データを取得する。
【００６０】
ステップＳ１０８において、動作検出部２２は、上記ステップＳ１０６で取得された３次元点群データに基づいて、ユーザの各関節ｉの位置を示す３次元座標Ａｉを取得する。また、動作検出部２２は、ユーザの各関節ｉの位置を示す３次元座標Ａｉに基づいて、ユーザの各関節の位置の平均の座標Ａｇを取得する。そして、動作検出部２２は、ユーザの各関節ｉの位置を示す３次元座標Ａｉ及び平均の座標Ａｇを、時刻と対応付けて関節位置記憶部２４へ格納する。
【００６１】
ステップＳ１１０において、動作検出部２２は、映像再生フラグが１であるか否かを判定する。映像再生フラグが１である場合には、ステップＳ１１８へ進む。一方、映像再生フラグが０である場合には、ステップＳ１１２へ進む。
【００６２】
ステップＳ１１２において、動作検出部２２は、ステップＳ１０２で得られた手本モデルの各関節の３次元座標Ｅｉ及び平均の座標Ｅｇと、ステップＳ１０８で得られたユーザの各関節の３次元座標Ａｉ及び平均の座標Ａｇとに基づき、スケーリング係数Ｓを算出する。具体的には、動作検出部２２は、上記式（１）のＸが最小となるように、スケーリング係数Ｓを算出する。
【００６３】
ステップＳ１１３において、動作検出部２２は、上記ステップＳ１１２で算出されたスケーリング係数Ｓと、ステップＳ１０２で得られた３次元座標と、ステップＳ１０８で得られた３次元座標とに基づいて、上記式（２）に従って、差分二乗和Ｃを算出する。
【００６４】
ステップＳ１１４において、動作検出部２２は、上記ステップＳ１１３で算出された差分二乗和Ｃが閾値Ｔｃよりも小さいか否かを判定する。差分二乗和Ｃが閾値Ｔｃよりも小さい場合には、ステップＳ１１６へ進む。一方、差分二乗和Ｃが閾値Ｔｃ以上である場合には、ステップＳ１０４へ戻る。
【００６５】
ステップＳ１１６において、表示制御部２８は、映像再生フラグＦＬを１に設定する。
【００６６】
ステップＳ１１８において、動作速度検出部２６は、関節位置記憶部２４に格納された、現時刻のフレームのユーザの関節の３次元座標Ａｉと、前時刻のフレームのユーザの関節の３次元座標Ａｉ’とを取得する。そして、動作速度検出部２６は、上記式（３）に従って、ユーザの動きの速度Ｖａを算出する。
【００６７】
ステップＳ１１９において、動作速度検出部２６は、映像記憶部２０に格納された、現時刻のフレームの手本モデルの関節の３次元座標Ｅｉと、前時刻のフレームの手本モデルの関節の３次元座標Ｅｉ’とを取得する。そして、動作速度検出部２６は、上記式（４）に従って、手本モデルの動きの速度Ｖｅを算出する。
【００６８】
ステップＳ１２０において、表示制御部２８は、上記ステップＳ１１８で得られたユーザの動きの速度Ｖａと、上記ステップＳ１１９で得られた手本モデルの動きの速度Ｖｅとに応じて、上記式（５）に従って、手本映像の更新時間Ｔを決定する。なお、ステップＳ１１６を経由して本ステップに至った場合、すなわち、ユーザの動きの開始点が検出されたフレームについては、手本モデルの前時刻のフレームが存在せず、Ｖｅが算出できないため、更新時間Ｔは初期値に決定すればよい。
【００６９】
ステップＳ１２２において、表示制御部２８は、ユーザの複数の関節ｉの各々のうち、前時刻のフレームのユーザの関節の３次元座標と、現時刻のフレームのユーザの関節の３次元座標との間の移動量が、最も小さい関節である基準関節ｓを特定する。
【００７０】
ステップＳ１２４において、表示制御部２８は、ユーザの基準関節ｓの３次元座標Ａｓと、手本モデルの基準関節ｓの３次元座標Ｅｓとに基づいて、上記式（６）に従って、平行移動量Ｐを算出する。
【００７１】
ステップＳ１２６において、表示制御部２８は、上記ステップＳ１２０で決定された更新時間Ｔによって手本映像が更新されるよう手本映像を制御する。そして、表示制御部２８は、更新時間が制御された手本映像を上記ステップＳ１０４で表示装置３０に表示されたユーザ映像に対して重畳表示するように、表示装置３０を制御する。また、表示制御部２８は、上記ステップＳ１２４で得られた平行移動量Ｐに応じて手本映像を平行移動させるように制御して、上記ステップＳ１０４で表示装置３０に表示されたユーザ映像に対して重畳表示するように、表示装置３０を制御する。
【００７２】
以上説明したように、本実施形態に係る映像制御装置は、ユーザ映像に映るユーザの動きを逐次検出し、逐次検出されたユーザの動きに応じて、動きの手本を表す手本映像の再生開始及び再生速度を制御する。そして、映像制御装置は、制御された手本映像と、ユーザ映像とが表示装置に表示されるように制御する。これにより、ユーザを撮像中の映像をリアルタイムに表示する際に、ユーザの動きの手本を表す手本映像を同期させて表示することができる。また、ユーザの動きに同期した手本映像がリアルタイムに重畳表示されるため、ユーザは正しい動きを効果的に習得することができる。
【００７３】
また、ユーザの動きの開始点に合わせて手本映像の再生を開始し、手本映像の開始後のユーザの動きの速度に合わせて、ユーザ映像に対し手本映像をリアルタイムに重畳表示することができる。
【００７４】
＜第２の実施形態＞
【００７５】
次に、第２の実施形態について説明する。第２の実施形態では、予め生成された学習済みモデルを用いてユーザの各関節の位置及びユーザの動きの開始点を検出し、ユーザの関節間の角度を用いてユーザの動きの速度を算出する点が第１の実施形態と異なる。また、第２の実施形態では、距離センサを用いずに、カメラ１２によって撮像されたユーザ映像のみから、ユーザの各関節の位置、ユーザの動きの開始点、及びユーザの動きの速度を算出する。なお、第１の実施形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【００７６】
図９に、第２の実施形態の映像表示システム２１０の機能的な構成例を示す。図９に示されるように、第２の実施形態に係る映像表示システム２１０は、カメラ１２と、映像制御装置２１６と、表示装置３０とを備えている。
【００７７】
また、図１０に、第２の実施形態の映像表示システム２１０の具体的な構成例を示す。図１０に示されるように、第２の実施形態の映像表示システム２１０では、表示装置３０がヘッドマウントディスプレイによって実現される。表示装置３０であるヘッドマウントディスプレイには、ユーザ映像に対して手本映像が重畳表示された映像ＳＡが表示される。第２の実施形態の映像表示システム２１０では、距離センサによってユーザの関節の位置を検出することなく、カメラ１２によって撮像されるユーザ映像からユーザの関節の位置を検出する。第２の実施形態の映像表示システム２１０について、以下具体的に説明する。
【００７８】
映像制御装置２１６は、図９に示されるように、取得部１８と、映像記憶部２０と、動作検出部２２２と、第１学習済みモデル記憶部２１７と、第２学習済みモデル記憶部３１９と、関節位置記憶部２４と、動作速度検出部２２６と、表示制御部２８とを備えている。
【００７９】
第１学習済みモデル記憶部２１７には、ユーザ映像から、ユーザの各関節の位置を検出するための関節検出用学習済みモデルが格納される。関節検出用学習済みモデルは、学習用のユーザが映る学習用ユーザ映像及び学習用のユーザの関節の位置から予め学習される。
【００８０】
第２学習済みモデル記憶部２１９には、ユーザの関節の位置から、ユーザの動きの開始点を検出するための動作検出用学習済みモデルが格納される。動作検出用学習済みモデルは、学習用のユーザが映る学習用ユーザ映像の学習用のユーザの関節の位置及び学習用のユーザの動きの開始点から予め学習される。
【００８１】
動作検出部２２２は、取得部１８によって逐次取得されたユーザ映像を逐次取得する。次に、動作検出部２２２は、第１学習済みモデル記憶部２１７に格納された関節検出用学習済みモデルを読み出す。動作検出部２２２は、ユーザ映像と関節検出用学習済みモデルとに基づいて、ユーザ映像の各時刻のフレームを関節検出用学習済みモデルへ入力し、ユーザ映像に映るユーザの各関節ｉの位置を示す３次元座標Ａｉを検出する。
【００８２】
また、動作検出部２２２は、第２学習済みモデル記憶部２１９に格納された動作検出用学習済みモデルを読み出す。次に、動作検出部２２２は、関節検出用学習済みモデルによって得られたユーザの関節の位置と動作検出用学習済みモデルとに基づいて、ユーザの各関節ｉの位置を示す３次元座標Ａｉを動作検出用学習済みモデルへ入力し、ユーザの動きの開始点を検出する。
【００８３】
動作速度検出部２２６は、現時刻のフレームのユーザの関節の各々の間の角度と、前時刻のフレームのユーザの関節の各々の間の角度との間の差に基づいて、ユーザの動きの速度を算出する。
【００８４】
具体的には、まず、動作速度検出部２２６は、現時刻のフレームのユーザの各関節ｉの３次元座標Ａｉに基づき、現時刻のフレームの関節ｉの各々についての、特定の関節と隣接する一方の関節と、特定の関節と隣接する他方の関節との間の角度θｉを算出する。次に、動作速度検出部２２６は、前時刻のフレームのユーザの各関節ｉの３次元座標Ａｉに基づき、前時刻のフレームの関節ｉの各々についての、特定の関節と隣接する一方の関節と、特定の関節と隣接する他方の関節との間の角度θｉ’を算出する。そして、動作速度検出部２２６は、以下の式（７）に従って、ユーザの動きの速度Ｖａを算出する。
【００８５】
【数７】
2019012965.tif 000009
（７）
【００８６】
また、動作速度検出部２２６は、映像記憶部２０に格納された現時刻のフレームの手本モデルの各関節ｉの３次元座標Ｅｉの各々と、前時刻のフレームの手本モデルの各関節ｉの３次元座標Ｅｉ’の各々とを読み出す。次に、動作速度検出部２２６は、現時刻のフレームの手本モデルの各関節ｉの３次元座標Ｅｉに基づき、現時刻のフレームの関節ｉの各々についての、特定の関節と隣接する一方の関節と、特定の関節と隣接する他方の関節との間の角度φｉを算出する。次に、動作速度検出部２２６は、前時刻のフレームのユーザの各関節ｉの３次元座標Ａｉに基づき、前時刻のフレームの関節ｉの各々についての、特定の関節と隣接する一方の関節と、特定の関節と隣接する他方の関節との間の角度φｉ’を算出する。そして、動作速度検出部２２６は、以下の式（８）に従って、手本モデルの動きの速度Ｖｅを算出する。
【００８７】
【数８】
2019012965.tif 000010
（８）
【００８８】
映像制御装置２１６は、例えば、図１１に示すコンピュータ５０で実現することができる。コンピュータ５０はＣＰＵ５１、一時記憶領域としてのメモリ５２、及び不揮発性の記憶部５３を備える。また、コンピュータ５０は、カメラ１２及び表示装置３０が接続される入出力Ｉ／Ｆ５４、並びに記録媒体５９に対するデータの読み込み及び書き込みを制御するＲ／Ｗ部５５を備える。また、コンピュータ５０は、インターネット等のネットワークに接続されるネットワークＩ／Ｆ５６を備える。ＣＰＵ５１、メモリ５２、記憶部５３、入出力Ｉ／Ｆ５４、Ｒ／Ｗ部５５、及びネットワークＩ／Ｆ５６は、バス５７を介して互いに接続される。
【００８９】
記憶部５３は、ＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部５３には、コンピュータ５０を映像制御装置１６として機能させるための映像制御プログラム２６０が記憶されている。映像制御プログラム２６０は、取得プロセス６１と、動作検出プロセス２６２と、動作速度検出プロセス２６３と、表示制御プロセス６４とを有する。情報記憶領域２６５には、映像記憶部２０を構成する情報と、関節位置記憶部２４を構成する情報と、第１学習済みモデル記憶部２１７を構成する情報と、第２学習済みモデル記憶部２１９を構成する情報とが記憶される。
【００９０】
ＣＰＵ５１は、映像制御プログラム２６０を記憶部５３から読み出してメモリ５２に展開し、映像制御プログラム２６０が有するプロセスを順次実行する。ＣＰＵ５１は、取得プロセス６１を実行することで、図９に示す取得部１８として動作する。また、ＣＰＵ５１は、動作検出プロセス２６２を実行することで、図９に示す動作検出部２２２として動作する。また、ＣＰＵ５１は、動作速度検出プロセス２６３を実行することで、図９に示す動作速度検出部２２６として動作する。また、ＣＰＵ５１は、表示制御プロセス６４を実行することで、図９に示す表示制御部２８として動作する。また、ＣＰＵ５１は、情報記憶領域６５から情報を読み出して、映像記憶部２０をメモリ５２に展開する。また、ＣＰＵ５１は、情報記憶領域２６５から情報を読み出して、関節位置記憶部２４をメモリ５２に展開する。また、ＣＰＵ５１は、情報記憶領域２６５から情報を読み出して、第１学習済みモデル記憶部２１７をメモリ５２に展開する。また、ＣＰＵ５１は、情報記憶領域２６５から情報を読み出して、第２学習済みモデル記憶部２１９をメモリ５２に展開する。これにより、映像制御プログラム２６０を実行したコンピュータ５０が、映像制御装置１６として機能することになる。ソフトウェアである映像制御プログラム２６０を実行するＣＰＵ５１はハードウェアである。
【００９１】
なお、映像制御プログラム２６０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ等で実現することも可能である。
【００９２】
次に、第２の実施形態に係る映像制御装置２１６の作用について説明する。映像表示システム１０のカメラ１２によってユーザの撮像が開始されると、映像制御装置２１６は、図１２に示す映像制御処理ルーチンを実行する。
【００９３】
ステップＳ１００、ステップＳ１０４、ステップＳ１１０、ステップＳ１１６、及びステップＳ１２０〜ステップＳ１２６の処理は、第１の実施形態と同様に実行される。
【００９４】
ステップＳ２０２において、動作検出部２２２は、映像記憶部２０に格納された、手本モデルの各関節ｉの位置を示す３次元座標Ｅｉを取得する。
【００９５】
ステップＳ２０８において、動作検出部２２２は、第１学習済みモデル記憶部２１７に格納された関節検出用学習済みモデルを読み出す。そして、動作検出部２２２は、ステップＳ１０４で取得されたユーザ映像と関節検出用学習済みモデルとに基づいて、ユーザ映像の各時刻のフレームを関節検出用学習済みモデルへ入力し、ユーザ映像に映るユーザの各関節ｉの位置を示す３次元座標Ａｉを検出する。
【００９６】
ステップＳ２１２において、動作検出部２２２は、第２学習済みモデル記憶部２１９に格納された動作検出用学習済みモデルを読み出す。そして、動作検出部２２２は、上記ステップＳ２０８で得られたユーザの各関節ｉの３次元座標Ａｉと動作検出用学習済みモデルとに基づいて、ユーザの各関節ｉの位置を示す３次元座標Ａｉを動作検出用学習済みモデルへ入力し、ユーザの動きの開始点を検出する。
【００９７】
ステップＳ２１４において、動作検出部２２２は、上記ステップＳ２１２の検出結果に基づいて、ユーザの動きの開始点が検出されたか否かを判定する。ユーザの動きの開始点が検出された場合には、ステップＳ１１６へ進む。一方、ユーザの動きの開始点が検出されなかった場合は、ステップＳ１０４へ戻る。
【００９８】
ステップＳ２１８において、動作速度検出部２２６は、現時刻のフレームのユーザの各関節ｉの３次元座標Ａｉに基づき、現時刻のフレームの関節ｉの各々についての角度θｉを算出する。次に、動作速度検出部２２６は、前時刻のフレームの関節ｉの各々についての角度θｉ’を算出する。そして、動作速度検出部２２６は、角度θｉと角度θｉ’とに基づいて、上記式（７）に従って、ユーザの動きの速度Ｖａを算出する。
【００９９】
ステップＳ２１９において、動作速度検出部２２６は、映像記憶部２０に格納された現時刻のフレームの手本モデルの各関節ｉの３次元座標Ｅｉの各々と、前時刻のフレームの手本モデルの各関節ｉの３次元座標Ｅｉ’の各々とを読み出す。次に、動作速度検出部２２６は、現時刻のフレームの手本モデルの各関節ｉの３次元座標Ｅｉに基づき、現時刻のフレームの関節ｉの各々についての角度φｉを算出する。次に、動作速度検出部２２６は、前時刻のフレームのユーザの各関節ｉの３次元座標Ａｉに基づき、前時刻のフレームの関節ｉの各々についての角度φｉ’を算出する。そして、動作速度検出部２２６は、角度φｉと角度φｉ’とに基づき、上記式（８）に従って、手本モデルの動きの速度Ｖｅを算出する。
【０１００】
以上説明したように、第２の実施形態に係る映像制御装置は、ユーザ映像と、関節検出用学習済みモデルとに基づいて、ユーザ映像に映るユーザの関節の位置を検出する。また、映像制御装置は、ユーザの関節の位置と動作検出用学習済みモデルとに基づいて、ユーザの動きの開始点を検出する。そして、映像制御装置は、ユーザの動きの開始点とユーザの動きの速度とに応じて、手本映像の再生開始を制御する。これにより、距離センサを用いることなく、リアルタイムに撮像されるユーザ映像に対する手本映像を同期させて表示することができる。
【０１０１】
＜第３の実施形態＞
【０１０２】
次に、第３の実施形態について説明する。第３の実施形態では、ユーザに取り付けられた加速度センサによって検出された加速度に基づきユーザの動きの速度を検出し、ユーザ映像からユーザの動きの開始点を検出する点が第１又は第２の実施形態と異なる。なお、第３の実施形態について、第１又は第２の実施形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【０１０３】
図１３に、第３の実施形態の映像表示システム３１０の機能的な構成例を示す。図１３に示されるように、第３の実施形態に係る映像表示システム３１０は、カメラ１２と、加速度センサ３１５と、映像制御装置２１６と、表示装置３０とを備えている。
【０１０４】
加速度センサ３１５は、ユーザに取り付けられる。例えば、加速度センサ３１５は、ユーザの所定の関節へ設置される。そして、加速度センサ３１５は、ユーザの動きに応じた加速度を逐次検出する。
【０１０５】
映像制御装置３１６は、図１３に示されるように、取得部１８と、映像記憶部２０と、動作検出部３２２と、第１学習済みモデル記憶部３１７とを備えている。また、映像制御装置３１６は、第２学習済みモデル記憶部３１９と、動作速度検出部３２６と、表示制御部３２８とを備えている。
【０１０６】
第１学習済みモデル記憶部３１７には、カメラ１２によって撮像されたユーザ映像から、ユーザの領域を表す人物領域を検出するための人物検出用学習済みモデルが格納される。人物検出用学習済みモデルは、学習用のユーザが映る学習用ユーザ映像及び学習用のユーザの人物領域から予め学習される。
【０１０７】
第２学習済みモデル記憶部３１９には、人物領域から、ユーザの動きの開始点を検出するための動作検出用学習済みモデルが格納される。動作検出用学習済みモデルは、学習用のユーザが映る人物領域及び学習用のユーザの動きの開始点から予め学習される。
【０１０８】
動作検出部３２２は、取得部１８によって逐次取得されたユーザ映像を逐次取得する。次に、動作検出部３２２は、第１学習済みモデル記憶部３１７に格納された人物検出用学習済みモデルを読み出す。動作検出部３２２は、ユーザ映像と人物検出用学習済みモデルとに基づいて、ユーザ映像の各時刻のフレームを人物検出用学習済みモデルへ入力し、ユーザ映像に映るユーザの人物領域を検出する。
【０１０９】
また、動作検出部３２２は、第２学習済みモデル記憶部３１９に格納された動作検出用学習済みモデルを読み出す。次に、動作検出部３２２は、人物検出用学習済みモデルによって得られたユーザの人物領域と動作検出用学習済みモデルとに基づいて、ユーザの人物領域を動作検出用学習済みモデルへ入力し、ユーザの動きの開始点を検出する。
【０１１０】
動作速度検出部３２６は、加速度センサ３１５によって逐次検出されたユーザの加速度を取得する。そして、動作速度検出部３２６は、ユーザの加速度に基づいて、ユーザの動きの速度Ｖａを算出する。
【０１１１】
表示制御部３２８は、動作検出部３２２によって検出されたユーザの人物領域と、映像記憶部１７に格納された手本モデルとが一致するように、手本モデルが映る手本映像を平行移動させて、ユーザ映像に対して手本映像を重畳表示する。
【０１１２】
映像制御装置３１６は、例えば、図１４に示すコンピュータ５０で実現することができる。コンピュータ５０はＣＰＵ５１、一時記憶領域としてのメモリ５２、及び不揮発性の記憶部５３を備える。また、コンピュータ５０は、カメラ１２、加速度センサ３１５、及び表示装置３０が接続される入出力Ｉ／Ｆ５４、並びに記録媒体５９に対するデータの読み込み及び書き込みを制御するＲ／Ｗ部５５を備える。また、コンピュータ５０は、インターネット等のネットワークに接続されるネットワークＩ／Ｆ５６を備える。ＣＰＵ５１、メモリ５２、記憶部５３、入出力Ｉ／Ｆ５４、Ｒ／Ｗ部５５、及びネットワークＩ／Ｆ５６は、バス５７を介して互いに接続される。
【０１１３】
記憶部５３は、ＨＤＤ、ＳＳＤ、フラッシュメモリ等によって実現できる。記憶媒体としての記憶部５３には、コンピュータ５０を映像制御装置３１６として機能させるための映像制御プログラム３６０が記憶されている。映像制御プログラム３６０は、取得プロセス６１と、動作検出プロセス３６２と、動作速度検出プロセス３６３と、表示制御プロセス６４とを有する。情報記憶領域３６５には、映像記憶部２０を構成する情報と、関節位置記憶部２４を構成する情報と、第１学習済みモデル記憶部３１７を構成する情報と、第２学習済みモデル記憶部３１９を構成する情報とが記憶される。
【０１１４】
ＣＰＵ５１は、映像制御プログラム３６０を記憶部５３から読み出してメモリ５２に展開し、映像制御プログラム３６０が有するプロセスを順次実行する。ＣＰＵ５１は、取得プロセス６１を実行することで、図１３に示す取得部１８として動作する。また、ＣＰＵ５１は、動作検出プロセス３６２を実行することで、図１３に示す動作検出部３２２として動作する。また、ＣＰＵ５１は、動作速度検出プロセス３６３を実行することで、図１３に示す動作速度検出部３２６として動作する。また、ＣＰＵ５１は、表示制御プロセス６４を実行することで、図１３に示す表示制御部２８として動作する。また、ＣＰＵ５１は、情報記憶領域３６５から情報を読み出して、映像記憶部２０をメモリ５２に展開する。また、ＣＰＵ５１は、情報記憶領域３６５から情報を読み出して、第１学習済みモデル記憶部３１７をメモリ５２に展開する。また、ＣＰＵ５１は、情報記憶領域３６５から情報を読み出して、第２学習済みモデル記憶部３１９をメモリ５２に展開する。これにより、映像制御プログラム３６０を実行したコンピュータ５０が、映像制御装置３１６として機能することになる。ソフトウェアである映像制御プログラム３６０を実行するＣＰＵ５１はハードウェアである。
【０１１５】
なお、映像制御プログラム３６０により実現される機能は、例えば半導体集積回路、より詳しくはＡＳＩＣ等で実現することも可能である。
【０１１６】
次に、第３の実施形態に係る映像制御装置３１６の作用について説明する。映像表示システム１０のカメラ１２によってユーザの撮像が開始されると、映像制御装置３１６は、図１５に示す映像制御処理ルーチンを実行する。
【０１１７】
ステップＳ１００、ステップＳ１０４、ステップＳ１１０、ステップＳ１１６、ステップＳ１２０、及びステップＳ１２６の処理は、第１の実施形態と同様に実行される。また、ステップＳ２１４及びステップＳ２１９の処理は、第２の実施形態と同様に実行される。
【０１１８】
ステップＳ３０８において、動作検出部３２２は、第１学習済みモデル記憶部３１７に格納された人物検出用学習済みモデルを読み出す。そして、動作検出部３２２は、ステップＳ１０４で取得されたユーザ映像のフレームを人物検出用学習済みモデルへ入力し、ユーザ映像に映るユーザの人物領域を検出する。
【０１１９】
ステップＳ３１２において、動作検出部３２２は、第２学習済みモデル記憶部３１９に格納された動作検出用学習済みモデルを読み出す。そして、動作検出部３２２は、上記ステップＳ３０８で得られたユーザの人物領域を動作検出用学習済みモデルへ入力し、ユーザの動きの開始点を検出する。
【０１２０】
ステップＳ３１８において、動作速度検出部３２６は、加速度センサ３１５によって逐次検出されたユーザの加速度を取得する。そして、動作速度検出部３２６は、ユーザの加速度に基づいて、ユーザの動きの速度Ｖａを検出する。
【０１２１】
ステップＳ３２４において、表示制御部３２８は、上記ステップＳ３０８で検出されたユーザの人物領域と、映像記憶部１７に格納された手本モデルとが一致するように、手本モデルが映る手本映像を平行移動させる。
【０１２２】
以上説明したように、第３の実施形態に係る映像制御装置は、ユーザに取り付けられた加速度センサによって検出された加速度に基づいて、ユーザの動きの速度を検出する。また、映像制御装置は、ユーザ映像からユーザの領域を表す人物領域を検出し、人物領域と動作検出用学習済みモデルとに基づいて、ユーザの動きの開始点を検出する。そして、映像制御装置は、ユーザの動きの開始点とユーザの動きの速度とに応じて、手本映像の再生開始を制御する。これにより、ユーザの関節の位置を検出することなく、リアルタイムに撮像されるユーザ映像に対する手本映像を同期させて表示することができる。
【０１２３】
なお、上記では、各プログラムが記憶部に予め記憶（インストール）されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ等の記録媒体に記録された形態で提供することも可能である。
【０１２４】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【０１２５】
次に、各実施形態の変形例を説明する。
【０１２６】
上記各実施形態では、ユーザの動きの開始点を検出し、開始点に応じて手本映像の再生を開始し、手本映像の再生開始後のユーザの動きの速度に応じて手本映像の再生速度を制御する場合を例に説明したが、これに限定されるものではない。例えば、ユーザの動きの速度がマイナス方向の場合、手本映像に映る手本モデルの動きを巻き戻して表示するようにしてもよい。
【０１２７】
また、上記各実施形態では、ユーザ映像に対して手本映像を重畳表示させる場合を例に説明したが、これに限定されるものではない。例えば、ユーザ映像と手本映像とを並べて表示させるようにしてもよい。これにより、ユーザは、ユーザ映像と手本映像とを見比べることにより、手本の動きを効果的に習得することができる。
【０１２８】
また、上記各実施形態では、手本映像が１種類である場合を例に説明したが、これに限定されるものではない。例えば、手本映像が複数種類存在する場合、動作検出部２２は、ユーザの動きの開始点を検出する際に、ユーザの動きの開始点と最も類似する手本モデルが映る手本映像を選択するようにしてもよい。例えば、ユーザの動きの開始点と手本モデルとが類似するか否かについては、予め定めた閾値を用いて判定するようにしてもよい。
【０１２９】
また、映像制御装置を外部サーバとしてもよい。この場合には、各センサによって得られたセンサ情報が通信手段を介して映像制御装置へ送信される。映像制御装置は、センサ情報に応じて制御信号を生成し、通信手段を介して表示装置へ制御信号を送信する。
【０１３０】
以上の各実施形態に関し、更に以下の付記を開示する。
【０１３１】
（付記１）
ユーザが映るユーザ映像を逐次取得し、
逐次取得された前記ユーザ映像に映る前記ユーザの動きを逐次検出し、
逐次検出された前記ユーザの動きに応じて、動きの手本を表す手本映像の再生開始及び再生速度を制御し、
前記制御された前記手本映像と、前記ユーザ映像とが表示装置に表示されるように制御する、
処理をコンピュータが実行する映像制御方法。
【０１３２】
（付記２）
前記ユーザ映像に対して、前記制御された前記手本映像が重畳表示されるように前記表示装置を制御する、
付記１に記載の映像制御方法。
【０１３３】
（付記３）
前記手本映像には、前記動きの手本を表す手本モデルが映っており、
距離センサによって検出された前記ユーザの関節の位置と、前記手本映像に映る前記手本モデルの関節の位置との間の距離が、予め定められた閾値以下である場合に、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
付記１又は付記２に記載の映像制御方法。
【０１３４】
（付記４）
前記手本映像には、前記動きの手本を表す手本モデルが映っており、
前記ユーザ映像と、学習用のユーザが映る学習用ユーザ映像及び前記学習用のユーザの関節の位置とから予め学習された関節検出用学習済みモデルとに基づいて、前記ユーザ映像に映る前記ユーザの関節の位置を検出し、
前記ユーザ映像に映る前記ユーザの関節の位置と、前記学習用ユーザ映像に映る前記学習用のユーザの関節の位置及び前記学習用のユーザの動きの開始点から予め学習された動き検出用学習済みモデルとに基づいて、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
付記１又は付記２に記載の映像制御方法。
【０１３５】
（付記５）
前記ユーザ映像から、前記ユーザの領域を表す人物領域を検出し、
前記人物領域と、学習用のユーザが映る前記人物領域及び前記学習用のユーザの動きの開始点から予め学習された動き検出用学習済みモデルとに基づいて、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
付記１又は付記２に記載の映像制御方法。
【０１３６】
（付記６）
現フレームの前記ユーザの関節の位置と、前フレームの前記ユーザの関節の位置との間の差に基づいて、前記ユーザの動きの速度を検出し、
前記ユーザの動きの速度に応じて、前記手本映像の再生速度を制御する、
付記３又は付記４に記載の映像制御方法。
【０１３７】
（付記７）
現フレームの前記ユーザの関節の各々の間の角度と、前フレームの前記ユーザの関節の各々の間の角度との間の差に基づいて、前記ユーザの動きの速度を検出し、
前記ユーザの動きの速度に応じて、前記手本映像の再生速度を制御する、
付記３又は付記４に記載の映像制御方法。
【０１３８】
（付記８）
前記ユーザに取り付けられた加速度センサによって検出された加速度に基づいて、前記ユーザの動きの速度を検出し、
前記ユーザの動きの速度に応じて、前記手本映像の再生速度を制御する、
付記３又は付記４に記載の映像制御方法。
【０１３９】
（付記９）
前記ユーザ映像に映る前記ユーザの大きさと、前記手本映像に映る動きの手本を表す手本モデルとの大きさとが対応するように、前記手本映像を拡大又は縮小し、
前記ユーザ映像に映る前記ユーザの位置と前記手本モデルの位置とが対応するように、前記手本映像の表示位置を制御する、
付記３〜付記８の何れか１項に記載の映像制御方法。
【０１４０】
（付記１０）
ユーザが映るユーザ映像を逐次取得する取得部と、
逐次取得された前記ユーザ映像に映る前記ユーザの動きを逐次検出する検出部と、
逐次検出された前記ユーザの動きに応じて、動きの手本を表す手本映像の再生開始及び再生速度を制御し、前記制御された前記手本映像と、前記ユーザ映像とが表示装置に表示されるように制御する表示制御部、
を含む映像制御装置。
【０１４１】
（付記１１）
前記ユーザ映像に対して、前記制御された前記手本映像が重畳表示されるように前記表示装置を制御する、
付記１０に記載の映像制御装置。
【０１４２】
（付記１２）
前記手本映像には、前記動きの手本を表す手本モデルが映っており、
距離センサによって検出された前記ユーザの関節の位置と、前記手本映像に映る前記手本モデルの関節の位置との間の距離が、予め定められた閾値以下である場合に、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
付記１０又は付記１１に記載の映像制御装置。
【０１４３】
（付記１３）
前記手本映像には、前記動きの手本を表す手本モデルが映っており、
前記ユーザ映像と、学習用のユーザが映る学習用ユーザ映像及び前記学習用のユーザの関節の位置とから予め学習された関節検出用学習済みモデルとに基づいて、前記ユーザ映像に映る前記ユーザの関節の位置を検出し、
前記ユーザ映像に映る前記ユーザの関節の位置と、前記学習用ユーザ映像に映る前記学習用のユーザの関節の位置及び前記学習用のユーザの動きの開始点から予め学習された動き検出用学習済みモデルとに基づいて、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
付記１０又は付記１１に記載の映像制御装置。
【０１４４】
（付記１４）
前記ユーザ映像から、前記ユーザの領域を表す人物領域を検出し、
前記人物領域と、学習用のユーザが映る前記人物領域及び前記学習用のユーザの動きの開始点から予め学習された動き検出用学習済みモデルとに基づいて、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
付記１０又は付記１１に記載の映像制御装置。
【０１４５】
（付記１５）
現フレームの前記ユーザの関節の位置と、前フレームの前記ユーザの関節の位置との間の差に基づいて、前記ユーザの動きの速度を検出し、
前記ユーザの動きの速度に応じて、前記手本映像の再生速度を制御する、
付記１２又は付記１３に記載の映像制御装置。
【０１４６】
（付記１６）
ユーザが映るユーザ映像を逐次取得し、
逐次取得された前記ユーザ映像に映る前記ユーザの動きを逐次検出し、
逐次検出された前記ユーザの動きに応じて、動きの手本を表す手本映像の再生開始及び再生速度を制御し、
前記制御された前記手本映像と、前記ユーザ映像とが表示装置に表示されるように制御する、
処理をコンピュータに実行させるための映像制御プログラム。
【０１４７】
（付記１７）
前記ユーザ映像に対して、前記制御された前記手本映像が重畳表示されるように前記表示装置を制御する、
付記１６に記載の映像制御プログラム。
【０１４８】
（付記１８）
前記手本映像には、前記動きの手本を表す手本モデルが映っており、
距離センサによって検出された前記ユーザの関節の位置と、前記手本映像に映る前記手本モデルの関節の位置との間の距離が、予め定められた閾値以下である場合に、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
付記１６又は付記１７に記載の映像制御プログラム。
【０１４９】
（付記１９）
前記手本映像には、前記動きの手本を表す手本モデルが映っており、
前記ユーザ映像と、学習用のユーザが映る学習用ユーザ映像及び前記学習用のユーザの関節の位置とから予め学習された関節検出用学習済みモデルとに基づいて、前記ユーザ映像に映る前記ユーザの関節の位置を検出し、
前記ユーザ映像に映る前記ユーザの関節の位置と、前記学習用ユーザ映像に映る前記学習用のユーザの関節の位置及び前記学習用のユーザの動きの開始点から予め学習された動き検出用学習済みモデルとに基づいて、前記ユーザの動きの開始点を検出し、
前記ユーザの動きの開始点に応じて、前記手本映像の再生開始を制御する、
付記１６又は付記１７に記載の映像制御プログラム。
【０１５０】
（付記２０）
ユーザが映るユーザ映像を逐次取得し、
逐次取得された前記ユーザ映像に映る前記ユーザの動きを逐次検出し、
逐次検出された前記ユーザの動きに応じて、動きの手本を表す手本映像の再生開始及び再生速度を制御し、
前記制御された前記手本映像と、前記ユーザ映像とが表示装置に表示されるように制御する、
処理をコンピュータに実行させるための映像制御プログラムを記憶した記憶媒体。
【符号の説明】
【０１５１】
１０，２１０，３１０ 映像表示システム
１２   カメラ
１４   距離センサ
１６，２１６，３１６ 映像制御装置
１７   映像記憶部
１８   取得部
２０   映像記憶部
２２，２２２，３２２ 動作検出部
２４   関節位置記憶部
２６，２２６，３２６ 動作速度検出部
２８，３２８  表示制御部
３０   表示装置
２１７，３１７       第１学習済みモデル記憶部
２１９，３１９       第２学習済みモデル記憶部
３１５ 加速度センサ
５０   コンピュータ
５１   ＣＰＵ
５２   メモリ
５３   記憶部
５９   記録媒体
６０，２６０，３６０ 映像制御プログラム
【図１】
2019012965.tif 000011
【図２】
2019012965.tif 000012
【図３】
2019012965.tif 000013
【図４】
2019012965.tif 000014
【図５】
2019012965.tif 000015
【図６】
2019012965.tif 000016
【図７】
2019012965.tif 000017
【図８】
2019012965.tif 000018
【図９】
2019012965.tif 000019
【図１０】
2019012965.tif 000020
【図１１】
2019012965.tif 000021
【図１２】
2019012965.tif 000022
【図１３】
2019012965.tif 000023
【図１４】
2019012965.tif 000024
【図１５】
2019012965.tif 000025