(57)【要約】【課題】少ない個数のGPUで多数の人物オブジェクトの識別をリアルタイムで実現できるオブジェクト識別装置を提供する。【解決手段】フレーム画像統合部２８において、分割方法決定部２８１はフレームメモリMの分割方法を決定する。リサイズ部２８２は、ユーザ端末１から取得した各カメラ画像を、フレームメモリMの各部分領域のサイズに応じてリサイズする。画像配置部２８３は、所定の周期で取得されてリサイズされた各カメラ画像を、各ユーザ端末１に割り当てられた部分領域に順次に配置することで一の統合フレーム画像Iを所定の周期で順次に構築する。姿勢推定部２９は、前記統合フレーム画像から生成した特徴マップに基づいて、人物オブジェクトの身体パーツの位置および連結性をボトムアップ的アプローチにより一回の推論で推定する。【選択図】図５
2020080096.tif 000002
【特許請求の範囲】
【請求項１】
カメラ画像をフレームメモリ上に展開して人物オブジェクトの姿勢推定を実行するオブジェクト識別装置において、
複数のユーザ端末が送信したカメラ画像の時系列を取得する手段と、
フレームメモリを仮想的に複数の部分領域に分割する手段と、
フレームメモリの各部分領域に各カメラ画像を配置することで複数のカメラ画像を１フレームに統合した統合フレーム画像を生成する手段と、
前記統合フレーム画像から生成した特徴マップに基づいて、人物オブジェクトの身体パーツの位置および連結性をボトムアップ的アプローチにより一回の推論で推定する姿勢推定手段とを具備したことを特徴とするオブジェクト識別装置。
【請求項２】
前記姿勢推定手段は、異なる部分領域から抽出された身体パーツの連結性を推定対象外とすることを特徴とする請求項１に記載のオブジェクト識別装置。
【請求項３】
前記姿勢推定手段は、部分領域ごとに人物オブジェクトの姿勢を推定することを特徴とする請求項１または２に記載のオブジェクト識別装置。
【請求項４】
前記分割する手段は、前記姿勢推定手段が出力する推定尤度に基づいて、当該推定尤度が高くなるほど分割する部分領域の数を多くすることを特徴とする請求項１ないし３のいずれかに記載のオブジェクト識別装置。
【請求項５】
前記ユーザ端末に対して、送信するカメラ画像のサイズ変更を要求する手段を更に具備したことを特徴とする請求項４に記載のオブジェクト識別装置。
【請求項６】
前記ユーザ端末に対して、カメラ画像の送信周期の変更を要求する手段を更に具備したことを特徴とする請求項４または５に記載のオブジェクト識別装置。
【請求項７】
前記フレームメモリが複数の部分領域に等分割されることを特徴とする請求項１ないし６のいずれかに記載のオブジェクト識別装置。
【請求項８】
前記フレームメモリが非等分割された部分領域を含むことを特徴とする請求項７に記載のオブジェクト識別装置。
【請求項９】
前記統合フレーム画像を生成する手段は、カメラ画像を送信したユーザの属性情報に基づいて、当該カメラ画像を配置する部分領域を決定することを特徴とする請求項１ないし８のいずれかに記載のオブジェクト識別装置。
【請求項１０】
前記統合フレーム画像を生成する手段は、m個のカメラ画像を対象に、１番目からn（＜m）番目の各カメラ画像をフレームメモリの各部分領域に配置して今回の統合フレーム画像を生成し、次の周期ではn+１番目からm番目の各カメラ画像を前記フレームメモリの各部分領域に配置して統合フレーム画像を生成し、これを後続のm個のカメラ画像ごとに繰り返すことを特徴とする請求項１ないし９のいずれかに記載のオブジェクト識別装置。
【請求項１１】
複数のユーザ端末が送信したカメラ画像をオブジェクト識別装置のフレームメモリ上に展開して人物オブジェクトの姿勢推定を実行するオブジェクト識別システムにおいて、
前記各ユーザ端末が、
カメラ映像を所定のサンプリング周期でキャプチャする手段と、
前記キャプチャしたカメラ画像の時系列をオブジェクト識別装置へ送信する手段とを具備し、
前記オブジェクト識別装置が、
各ユーザ端末からカメラ画像の時系列を取得する手段と、
フレームメモリを仮想的に複数の部分領域に分割する手段と、
フレームメモリの各部分領域に各カメラ画像を配置することで複数のカメラ画像を１フレームに統合した統合フレーム画像を生成する手段と、
前記統合フレーム画像から生成した特徴マップに基づいて、人物オブジェクトの身体パーツの位置および連結性をボトムアップ的アプローチにより一回の推論で推定する姿勢推定手段とを具備したことを特徴とするオブジェクト識別システム。
【請求項１２】
前記オブジェクト識別装置が、前記ユーザ端末に対してカメラ画像のサイズ変更を要求する手段を更に具備し、
前記ユーザ端末は、前記サイズ変更の要求に応じて、送信するカメラ画像のサイズを変更することを特徴とする請求項１１に記載のオブジェクト識別システム。
【請求項１３】
前記オブジェクト識別装置が、前記ユーザ端末に対してカメラ画像の送信周期の変更を要求する手段を更に具備し、
前記ユーザ端末は、前記変更の要求に応じて、カメラ画像の送信周期を変更することを特徴とする請求項１１または１２に記載のオブジェクト識別システム。
【請求項１４】
前記ユーザ端末が、カメラ画像をトリミングする手段をさらに具備したことを特徴とする請求項１１ないし１３のいずれかに記載のオブジェクト識別システム。
【請求項１５】
コンピュータが、カメラ画像をフレームメモリ上に展開して人物オブジェクトの姿勢推定を実行するオブジェクト識別方法において、
複数のユーザ端末が送信したカメラ画像の時系列を取得して記憶する手順と、
フレームメモリを仮想的に複数の部分領域に分割する手順と、
フレームメモリの各部分領域に各カメラ画像を配置することで複数のカメラ画像を１フレームに統合した統合フレーム画像を生成する手順と、
前記統合フレーム画像から生成した特徴マップに基づいて、人物オブジェクトの身体パーツの位置および連結性をボトムアップ的アプローチにより一回の推論で推定する手順とを含むことを特徴とするオブジェクト識別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト識別装置、識別システムおよび識別方法に係り、特に、人物オブジェクトを撮影した複数のカメラ画像を対象に身体パーツの位置および連結性をボトムアップ的アプローチにより推定し、各オブジェクトを識別するオブジェクト識別装置、識別システムおよび識別方法に関する。
【背景技術】
【０００２】
防犯やマーケティングなどの分野において、カメラ画像に写る多数の人物オブジェクトの行動を識別する各種の技術が提案されている。従来は、カメラ画像から人物オブジェクトを抽出し、各人物オブジェクトのBounding Boxを検出した後に各Boxに対して姿勢推定を行うトップダウン方式を採用していた。しかしながら、トップダウン方式では識別対象の人物オブジェクト数に比例して計算量が増加してしまう。また、人物オブジェクトの抽出に失敗すると、その行動を識別することもできなくなる。
【０００３】
このような技術課題に対して、非特許文献１には、Confidence MapとPart Affinity Fields（PAFs）を用いた二つの逐次予測プロセスにより、カメラ画像から抽出した人物オブジェクトの身体パーツの位置および連結性をボトムアップ的アプローチにより推定することで、人物オブジェクト数に関わらずリアルタイムで各オブジェクトの行動を高精度に推定する技術が開示されている。
【０００４】
一方、健康の維持あるいは促進を目的として、自宅やトレーニングジムなどの施設でトレーニングを実施することがある。安全かつ有効なトレーニングには専門家の指導が不可欠となるが、自宅でのトレーニングでは専門家の指導を受けることが難しく、自己流のトレーニングになることになる。
【０００５】
トレーニングジムにはトレーニング機器が揃い、専門の指導員が常駐する。しかしながら、トレーニングジムまで出向かなければならないので手軽さに欠ける。また、マンツーマンで指導を受けるためには相応のコスト負担を強いられ、時間的な拘束も増すことになる。
【０００６】
このような技術課題に対して、特許文献１には、入力画像に映る人物の運動を認識する認識部と、認識された運動の有効性に応じて異なる仮想オブジェクトを入力画像に重畳する表示制御部とを備え、認識部により認識される運動の有効性を示すスコアを算出し、算出結果を入力画像に重畳することで、運動の有効性に関するフィードバックを目に見える形でユーザに呈示する画像処理装置が提案されている。
【０００７】
非特許文献２には、トレーニングするユーザを撮影した映像をモーションセンサシステムで分析することで骨格情報を取得し、ユーザの筋力トレーニングの動作を検知し、検知したトレーニング動作を速度、角度の観点から支援する筋力トレーニング支援システムが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開2013-103010号公報
【非特許文献】
【０００９】
【非特許文献１】Z. Cao, T. Simon, S. Wei and Y. Sheikh, "Realtime Multi-person 2D Pose Estimation Using Part Affinity Fields," 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, HI, 2017, pp. 1302-1310.
【非特許文献２】"Kinectを用いた筋力トレーニング支援システム"，第77回全国大会講演論文集（P437-438，2015-03-17）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ユーザ端末が送信する各ユーザのカメラ画像をサーバが取得し、適宜の分析アルゴリズムに適用して人物オブジェクトの行動を識別するためには、人物オブジェクトの写ったカメラ画像をGPUのフレームメモリ上に展開し、当該メモリ上で姿勢推定を実行することになる。
【００１１】
非特許文献１のような姿勢推定アルゴリズムでは、人物オブジェクトの写ったカメラ画像がGPUのフレームメモリ上に展開される。このとき、一つのカメラ画像をフレームメモリの全域に展開してしまうと、一つのGPUで一つのカメラ画像内の人物の姿勢推定しか行えない。したがって、複数のユーザ端末から同時期に並行して多数のカメラ画像を受信する場合、リアルタイムでのオブジェクト識別を実現するためにはユーザ端末数分のGPUが必要となる。
【００１２】
本発明の目的は、上記の技術課題を解決し、一つのGPUが低い処理負荷で複数のカメラ映像に対して同時並行的に姿勢推定を実現できるようにすることで、少ないGPUで、それぞれ別々の場所に存在する多数の人物オブジェクトの識別をリアルタイムで実現できるオブジェクトの識別装置、識別システムおよび識別方法を提供することにある。
【課題を解決するための手段】
【００１３】
上記の目的を達成するために、本発明は、カメラ画像をフレームメモリ上に展開して人物オブジェクトの姿勢推定を実行するオブジェクト識別装置において、以下の構成を具備した点に特徴がある。
【００１４】
(1) 複数のユーザ端末が送信したカメラ画像の時系列を取得する手段と、フレームメモリを仮想的に複数の部分領域に分割する手段と、フレームメモリの各部分領域に各カメラ画像を配置することで複数のカメラ画像を１フレームに統合した統合フレーム画像を生成する手段と、前記統合フレーム画像から生成した特徴マップに基づいて、人物オブジェクトの身体パーツの位置および連結性をボトムアップ的アプローチにより一回の推論で推定する姿勢推定手段とを具備した。
【００１５】
(2) 姿勢推定手段は、異なる部分領域から抽出された身体パーツの連結性を推定対象外とすることで、部分領域ごとに人物オブジェクトの姿勢を推定するようにした。
【００１６】
(3) 分割する手段は、姿勢推定手段が出力する推定尤度に基づいて、当該推定尤度が高くなるほど分割する部分領域の数を多くするようにした。
【００１７】
(4) ユーザ端末に対して、送信するカメラ画像のサイズ変更を要求する手段を具備した。
【００１８】
(5) ユーザ端末に対して、カメラ画像の送信周期の変更を要求する手段を具備した。
【００１９】
(6) フレームメモリが非等分割された部分領域を含むようにし、カメラ画像を送信したユーザの属性情報に基づいて、当該カメラ画像を配置する部分領域を決定するようにした。
【００２０】
(7) 統合フレーム画像を生成する手段は、m個のカメラ画像を対象に、１番目からn（＜m）番目の各カメラ画像をフレームメモリの各部分領域に配置して今回の統合フレーム画像を生成し、次の周期ではn+１番目からm番目の各カメラ画像を前記フレームメモリの各部分領域に配置して統合フレーム画像を生成し、これを後続のm個のカメラ画像ごとに繰り返すようにした。
【発明の効果】
【００２１】
本発明によれば、以下のような効果が達成される。
【００２２】
(1) フレームメモリを仮想的に複数の部分領域に分割し、各部分領域に各ユーザのカメラ画像を配置することで統合フレーム画像を生成するので、少ないGPU数で多数のユーザの姿勢推定を同時に行えるようになる。
【００２３】
(2) 異なる部分領域から抽出された身体パーツの連結性を推定対象外とし、部分領域ごとに人物オブジェクトの姿勢を推定するようにしたので、誤推定を抑制しつつ、複数のユーザの姿勢推定をGPUごとに同時かつ低負荷で行えるようになる。
【００２４】
(3) 姿勢の推定尤度に基づいて、当該推定尤度が高くなるほど分割する部分領域の数を多くするようにしたので、信頼性の高い姿勢推定に必要な画像解像度を維持しながら、複数のユーザの姿勢推定をGPUごとに同時かつ低負荷で行えるようになる。
【００２５】
(4) ユーザ端末に対して、カメラ画像のサイズ変更を要求する手段を設けたので、フレームメモリの分割数が変更されてカメラ画像のサイズを変更する必要が生じたときでも、サイズ変更の処理負荷が各ユーザ端末に分散されるので負荷集中を防止できるのみならず、サイズの縮小を要求すれば、ユーザ端末からサーバへのトラヒック量が減ぜられる。
【００２６】
(5) ユーザ端末に対して、カメラ画像の送信周期の変更を要求する手段を設けたので、カメラ画像を送信するユーザ数が増えても、カメラ画像のバッファ溢れやリアルタイム処理の破綻を防止できるようになる。
【００２７】
(6) フレームメモリが非等分割された部分領域を含むようにし、カメラ画像を送信したユーザの属性情報に基づいて、当該カメラ画像を配置する部分領域を決定するようにしたので、ユーザごとに提供するサービスを最適化できるようになる。
【００２８】
(7) 統合フレーム画像を生成する手段は、m個のカメラ画像を対象に、１番目からn（＜m）番目の各カメラ画像をフレームメモリの各部分領域に配置して今回の統合フレーム画像を生成し、次の周期ではn+１番目からm番目の各カメラ画像を前記フレームメモリの各部分領域に配置して統合フレーム画像を生成し、これを後続のm個のカメラ画像ごとに繰り返すので、GPUごとに、画像解像度の低下を抑えながら、フレームメモリの分割数を超える個数のカメラ画像を同時に処理できるようになる。
【図面の簡単な説明】
【００２９】
【図１】本発明を適用したトレーニング支援装置の構成を示したブロック図である。
【図２】トレーニング支援サーバ(2)およびトレーニングDB(3)の主要部の構成を示した機能ブロック図である。
【図３】トレーニングメニューの一覧を示した図である。
【図４】トレーニングメニューの内容を管理するトレーニングテーブルの一例を示した図である。
【図５】ユーザ端末(1)，フレーム画像統合部(28)および姿勢推定部(29)の構成を示したブロック図である。
【図６】カメラ画像のトリミング方法の例を示した図である。
【図７】フレームメモリを等分割する例を示した図である。
【図８】フレームメモリを非等分割する例を示した図である。
【図９】上半身を左右に旋回させるバランス診断メニューを示した図である。
【図１０】左右の踵を一方ずつ順番に上げ下げするバランス診断メニューを示した図である。
【図１１】ユーザ端末(1)、トレーニング支援サーバ(2)およびトレーニングDB(3)間での通信および各種処理の手順を時系列で示したシーケンスフローである。
【図１２】トレーニング目的をユーザに選択される画面の例を示した図である。
【図１３】ユーザ端末の操作手順およびユーザ端末とユーザとの相対位置を調整させる画面の例を示した図である。
【図１４】体幹バランス診断用のガイダンスの表示例を示した図である。
【図１５】診断結果の表示例を示した図である。
【図１６】トレーニングメニューの開始画面の例を示した図である。
【図１７】今回のトレーニング内容の一覧表示の例を示した図である。
【図１８】トレーニングごとに内容や注意点の表示例を示した図である。
【図１９】トータルスコア画面の例を示した図である。
【図２０】トータルスコアの履歴を時系列で一覧表示する例を示した図である。
【図２１】フレーム画像統合部(28)による他の統合方法を示した図である。
【発明を実施するための形態】
【００３０】
以下、図面を参照して本発明の実施の形態について詳細に説明する。図１は、本発明のオブジェクト識別装置を適用したトレーニング支援装置の主要部の構成を示したブロック図であり、ユーザ端末１、トレーニング支援サーバ２およびトレーニングDB３を主要な構成としている。
【００３１】
ユーザ端末１は、動画撮影機能、無線通信機能およびディスプレイを備え、例えばスマートフォンで代替できる。トレーニング支援サーバ２は、ユーザ端末１からトレーニング中のユーザを撮影したトレーニング動画を、Wi-Fi、基地局BSおよびネットワークNW経由で取得し、その映像を分析して適正なトレーニング評価をユーザ端末１へ提供する。トレーニングDB３には、各ユーザの属性情報、多数のトレーニングメニューや診断メニューが記憶されている。
【００３２】
図２は、前記トレーニング支援サーバ２およびトレーニングDB３の主要部の構成を示した機能ブロック図であり、トレーニングDB３は、属性情報記憶部３１、トレーニングレベル記憶部３２、診断メニュー記憶部３３およびトレーニングメニュー記憶部３４を含む。
【００３３】
前記属性情報記憶部３１には、ユーザIDごとに当該ユーザの属性情報として、年齢、性別、身長、体重、血圧、既往症などが記憶されている。トレーニングレベル記憶部３２には、ユーザIDごとに現在のトレーニングレベルが記憶されている。診断メニュー記憶部３３には、複数の診断メニューが記憶されている。
【００３４】
トレーニングメニュー記憶部３４には、複数のトレーニングメニューが記憶されている。図３は、トレーニングメニュー記憶部３４に記憶されているトレーニングメニューの一覧を示した図であり、本実施形態では、「スクワット」、「アームツイスト」、「ウッドチョッパー」など、３２種類のトレーニングメニューが用意されている。
【００３５】
図４は、前記トレーニングメニューの内容を管理するトレーニングテーブルの一例を示した図であり、トレーニングメニューごとに、その効能（主に鍛える部位）、基準テンポ、左右の有無、音声ガイド識別子、指導ポイントおよびNG閾値等が登録されている。NG閾値とは、有効なトレーニングと認められない閾値条件であり、例えばトレーニングメニューが「スクワット」であれば、下脚の角度が４０°以上であると有効なトレーニングと認められない。
【００３６】
また、本実施形態では、ユーザのトレーニングレベルや属性情報に応じて最適なトレーニングメニューが選択されるように、多数のトレーニングメニューが複数のグループに分類され、また忌避情報として、例えば高血圧、心臓疾患、腰痛等の既往症ごとに不向きなトレーニングメニューも登録されている。
【００３７】
図２へ戻り、前記トレーニング支援サーバ２において、入出力インタフェース２１は、各ユーザ端末１との間に通信セッションを確立し、音声、映像またはテキスト等を利用したメッセージの送受信を行う。ユーザ認証部２２は、ユーザ端末１から送信されるユーザIDとトレーニングDB３に登録されているユーザIDとを突き合わせることでユーザ認証を実施する。トレーニング目的受付部２３は、ユーザがユーザ端末１から指定したトレーニング目的を受け付ける。
【００３８】
フレーム画像統合部２８および姿勢推定部２９は、図５に示したように、各ユーザ端末１と協働して、複数のユーザ端末１から同時期に送信された複数のカメラ画像から、トレーニングするユーザの骨格情報を一回の推論で取得して各ユーザの姿勢推定を実行する。
【００３９】
ユーザ端末１において、カメラ部１０１は、ユーザを動画撮影してカメラ映像を出力する。キャプチャ部１０２は、カメラ映像を所定のサンプリング周期でキャプチャすることで静止画の時系列に変換する。前記キャプチャ部１０２によるサンプリング周期は、後に詳述するように、トレーニング支援サーバ２から姿勢推定の尤度に応じてフィードバックされる変更要求に応答して変更され得る。
【００４０】
トリミング部１０３は、図６に示したように、縦長または横長のキャプチャ画像からユーザの映っている中央部を矩形にトリミングする。なお、このようなトリミング処理は、前記カメラ部１０１で実施するようにしてもよい。画像縮小部１０４は、フレーム画像統合部２８からフィードバックされるサイズ変更要求、あるいはユーザ端末１のネットワーク環境に応じて、前記矩形にトリミングされたカメラ画像の縮小率を変更する。
【００４１】
本実施形態では、ユーザ端末１がWiFi経由でネットワークに接続する環境下であれば、例えばサイズが160×160、品質が0.65のJPEGフォーマットで圧縮されるのに対して、有線でネットワークに接続する環境下であれば、サイズが320×320、品質が0.65のJPEGフォーマットで圧縮される。また、4G回線でネットワークに接続する環境下であれば、例えばサイズが160×160、品質が0.45のJPEGフォーマットで圧縮される。
【００４２】
送信部１０５は、縮小された矩形のカメラ画像の時系列（A1，A2，A3…）、（B1，B2，B3…）、（C1，C2，C3…）、（D1，D2，D3…）をWeb socketでトレーニング支援サーバ２へ順次に送信する。前記送信部１０５によるカメラ画像の送信周期は前記キャプチャ部１０２によるサンプリング周期に依存する。
【００４３】
フレーム画像統合部２８において、分割方法決定部２８１は、同時期にカメラ画像を送信するユーザ端末数、後述する姿勢推定において得られる推定尤度や認識率に基づいてフレームメモリMの分割方法を決定する。本実施形態では、多数のユーザ端末１からカメラ画像が送信されており、姿勢推定の尤度が十分であれば、例えば図７(a)，(b)に示したように、フレームメモリMを仮想的に４等分割または９等分割し、各ユーザ端末１にいずれかの部分領域を割り当てる。
【００４４】
リサイズ部２８２は、取得したJPEGフォーマットの各カメラ画像を復号し、更にフレームメモリMの各部分領域のサイズに応じてリサイズする。画像配置部２８３は、リサイズされた各カメラ画像（a1，a2，a3…）、（b1，b2，b3…）、（c1，c2，c3…）、（d1，d2，d3…）を、各ユーザ端末１に割り当てられた部分領域に順次に配置することで一の統合フレーム画像Iを所定の周期で順次に構築する。
【００４５】
姿勢推定部２９は、前記非特許文献１と同様に、前記一の統合フレーム画像Iに対して初めに特徴マップ抽出を行う。次いで、抽出した特徴マップに対して、身体パーツの位置をエンコードするConfidence Mapおよび身体パーツ間の連結性をエンコードするPart Affinity Fields（PAFs）を用いた二つの逐次予測プロセスを順次に適用し、統合フレーム画像から抽出した人物オブジェクト（ユーザ）の身体パーツの位置および連結性をボトムアップ的アプローチにより一回の推論で推定することでスケルトンモデルを構築する。
【００４６】
このとき、異なる部分領域から抽出された身体パーツの連結性を推定対象外とする処理を実装することで、身体パーツの位置および連結性を部分領域ごとに、すなわちユーザごとにオブジェクトのスケルトンモデルを推定できるようになる。
【００４７】
前記推定プロセスで得られる推定尤度は、フレーム画像統合部２８に前記フレームメモリMの分割サイズ変更要求としてフィードバックされる。前記分割方法決定部２８１は、推定尤度が十分に高く、かつカメラ画像を送信するユーザ端末数が所定の閾値を上回っていると、例えば図７(b)に示したように、フレームメモリMを仮想的に９等分割するなどして一フレームに統合するカメラ画像数を増加させる。前記リサイズ部２８２は、変更後の等分割数に応じてカメラ画像をリサイズする。
【００４８】
これに対して、推定尤度が低下して所定の下限値を下回ると、例えば９等分割中であれば４等分割に、４等分割中であれば分割無しとするといったように、１フレームに統合するカメラ画像数を減じ、高い解像度を維持することで十分な推定尤度を確保する。
【００４９】
前記姿勢推定部２９は、ユーザ端末ごとに抽出された身体パーツの位置および連結性（以下、骨格情報で総称する場合もある）を含む姿勢推定の結果を、後段のバランス診断部２４またはトレーニング評価部２６へ順次に転送する。
【００５０】
このように、本実施形態では姿勢の推定尤度に基づいて、１フレームに統合するカメラ画像数を適応的に変更できるので、推定精度を低下させることなく複数ユーザの行動認識を一つのGPUで同時に行えるようになる。
【００５１】
なお、上記の実施形態ではGPUのフレームメモリMを等分割して各部分領域に各カメラ画像を同サイズで配置するものとして説明したが、本発明はこれのみに限定されるものではなく、図８に示したように、例えば契約しているサービスの内容や料金に応じてユーザごとに非等分割することで各部分領域の大きさを異ならせてもよい。
【００５２】
このようにすれば、例えば専門的な診断サービスや料金のより高いサービスを契約しているユーザには優先ユーザとしてより大きな部分領域を割り当てることができる。したがって、例えば指先の動きや顔の表情といったように、高解像のカメラ画像でなければ推定できない骨格情報を用いた高度な診断が可能になる。
【００５３】
なお、各ユーザが優先ユーザであるか否かの情報は、予めユーザIDと対応付けて当該ユーザの属性情報の一つとして前記属性情報記憶部３１に登録しておき、ユーザ認証時にユーザIDに基づいて判別するようにしてもよい。
【００５４】
さらに、上記の実施形態では前記姿勢推定部２９における推定尤度が低下するとフレームメモリMの分割数を減じるものとして説明したが、フレームメモリMの分割数を減じただけでは各ユーザ端末から取得したカメラ画像の処理が滞ってしまい、トレーニング支援サーバ側にバッファ溢れ等の不都合が生じうる。
【００５５】
そこで、本実施形態ではトレーニング支援サーバ２における統合フレーム画像Iの処理レートが各ユーザ端末1によるカメラ画像の送信レートを下回るようになると、トレーニング支援サーバ２から各ユーザ端末1へカメラ画像の送信周期を低下させる変更要求が送信される。
【００５６】
各ユーザ端末１では、前記キャプチャ部１０２が前記変更要求に応答して、ユーザを撮影した動画像から静止画をキャプチャする際のサンプリング周期を長くし、これと同期するようにカメラ画像の送信周期を低下させる。その結果、カメラ画像を送信するユーザ数が増えても、カメラ画像のバッファ溢れやリアルタイム処理の破綻を防止できるようになる。
【００５７】
図２へ戻り、バランス診断部２４は、診断メニュー選択部２４１、診断メニュー配信部２４２および第１行動認識部２４３を含み、バランス診断運動を実施するユーザの骨格情報から推定した姿勢に基づいて体幹の左右バランスを診断する。
【００５８】
前記診断メニュー選択部２４１は、ユーザの属性情報、トレーニング目的およびトレーニングレベルに基づいて、ユーザの体幹バランスを診断するための診断メニューを前記診断メニュー記憶部３３から選択する。診断メニュー配信部２４２は、前記選択された診断メニューをユーザ端末１へ配信し、そのディスプレイに表示させる。
【００５９】
第１行動認識部２４３は、診断メニューを実施するユーザの診断映像から抽出した骨格情報に基づいてユーザの行動認識を実行する。骨格情報に基づく行動認識手法は、例えば前記非特許文献１に開示されている。バランス診断部２４は、行動認識の結果に基づいて当該ユーザの体幹バランスを診断できる。
【００６０】
図９，１０は、ユーザの体幹バランスを評価するために、前記診断メニュー配信部２４２により配信される診断メニューの一例を示した図であり、図９のように、上半身を左右に旋回させる診断メニュー、あるいは図１０に示したように、左右の踵を一方ずつ順番に上げ下げする診断メニューが各ユーザに配信される。
【００６１】
前記第１行動認識部２４３は、図９の診断メニューを実施するユーザの診断映像から推定したユーザの姿勢およびその変化に基づいて、左旋回の角度と右旋回の角度とを比較し、その差分に基づいて体幹バランスを診断できる。図１０の診断メニューを実施するユーザの診断映像を取得すると、左踵を上げた時と右踵を上げた時との腰位置の高さを比較することで体幹バランスを診断できる。
【００６２】
体調診断部２５は、バランス診断メニューを実施するユーザの映像に基づいて当該ユーザの現在の体調を診断する。このような体調診断は、例えばバランス診断メニューを実施するユーザを撮影した診断映像に基づいて、当該ユーザの動きのテンポを計測することで実現できる。
【００６３】
トレーニング評価部２６は、トレーニングメニュー選択部２６１，トレーニングメニュー配信部２６２、第２行動認識部２６３、改善ポイント指導部２６４、トレーニング質判定部２６５、トレーニング量カウント部２６６、スコア計算部２６７および評価結果配信部２６８を含み、トレーニングを実施するユーザのトレーニング映像から推定した姿勢を分析し、特定部位の遷移を観測することでトレーニングを評価する。
【００６４】
前記トレーニングメニュー選択部２６１は、ユーザのトレーニング目的、体幹バランスの診断結果およびトレーニングレベル、更には必要に応じて当該ユーザの属性情報や体調に基づいて、現時点で当該ユーザに最適なトレーニングメニューを前記トレーニングDB３から選択する。
【００６５】
トレーニングメッセージ配信部２６２は、前記選択されたトレーニングメニューをユーザ端末１へ配信する。第２行動認識部２６３は、配信したトレーニングメニューを実施するユーザのトレーニング映像から推定した姿勢の変化に基づいて当該ユーザの行動認識を行う。
【００６６】
改善ポイント指導部２６４は、前記ユーザの行動認識の結果に基づいて、前記図４に示した各「指導ポイント」が、対応する各「NG閾値」をクリアしているか否かを判断し、NG閾値をクリアできていなければ当該指導ポイントを改善ポイントとする指導をユーザに対して行う。
【００６７】
本実施形態では、例えばトレーニングメニュー「スクワット」に関して、「下脚の角度」が指導ポイントの一つとして登録されており、そのNG閾値が「４０°以上」とされている。前記改善ポイント指導部２６４は、前記行動認識の結果に基づいて下脚の角度を判別し、これが４０°以上であれば、音声番号「２０１」に登録された指導メッセージをトレーニングDB３から選択してユーザ端末１へ配信する。当該指導メッセージには、たとえば「下脚をもっと曲げてください」といった内容が登録されている。なお、指導メッセージは音声メッセージに限定されず、音声付きの映像メッセージであっても良い。
【００６８】
トレーニング質判定部２６５は、前記改善ポイント指導部２６４が指導した改善ポイントの指導回数やトレーニングのテンポなどに基づいてトレーニングの質を判断する。本実施形態では、改善ポイントの指導回数が多いほど、またトレーニングのテンポとして、例えば所定の動き（例えば、屈伸）に要する時間を計測し、当該テンポが標準テンポから外れるほど、トレーニングの質が低いと判定され、判定結果が例えば０．５（質が低い）〜１（質が高い）の値に定量化、正規化される。
【００６９】
トレーニング量カウント部２６６は、前記行動認識の結果を予め用意されている評価ポリシーに適用することでユーザのトレーニング量をカウントする。本実施形態では、配信したトレーニングメニューごとに、骨格の所定部位が所定の順序で所定の遷移条件を充足したことがカウント条件として規定され、トレーニング映像から取得した骨格情報に基づいて、前記カウント条件が充足されるごとにトレーニング量がカウントされる。
【００７０】
例えば、提供したトレーニングメニューがスクワットであれば、屈伸した際の膝の角度θ、１回の屈伸に要する時間（テンポ）t、屈伸時における頭と肘との側面視での相対位置Pなどが評価項目として登録されており、前記角度θ，時間tおよび相対位置Pが所定の条件を満足した回数がカウントされる。
【００７１】
スコア計算部２６７は、前記トレーニング量のカウント値に前記トレーニングの質に関する判断結果を反映して今回のトレーニングをスコア化する。本実施形態では、トレーニングの質に応じてトレーニング量のカウント値を減じてスコア化するものとし、例えば、トレーニング量のカウント値が「１００」であり、トレーニングの質が「０．８」であれば、スコアは１００×０．８=８０として計算される。以上のようにしてスコア化された評価結果は、前記評価結果配信部２６８によりユーザ端末１へ配信される。
【００７２】
トレーニング情報更新部２７は、前記ユーザIDと対応付けて前記トレーニングレベル記憶部３２に記憶されている当該ユーザのトレーニングレベルを今回の評価結果に基づいて更新する。トレーニングレベルは、初めはレベル１からスタートし、トレーニング量の累計が所定の基準値を超えるごとにレベル２、レベル３…レベルN（上級）へと更新される。
【００７３】
図１１は、前記ユーザ端末１、トレーニング支援サーバ２およびトレーニングDB３間での通信および各種処理の手順を時系列で示したシーケンスフローである。
【００７４】
時刻t1において、ユーザがユーザ端末１に予め実装されているトレーニング支援アプリケーションを起動すると、時刻t2では、ユーザ認証が実施されてユーザ端末１とトレーニング支援サーバ２との間に通信セッションが確立される。
【００７５】
時刻t3では、図１２(a)に示したように、ユーザ端末１のディスプレイ上に、今回のトレーニング目的をユーザに入力させるための選択画面が表示される。ユーザが「ダイエット」を選択すると、同図(b)に示したように、ダイエットを希望する具体的な部位を選択させる画面が表示される。本実施形態では、「全身」，「体幹・お腹周り」，「上半身・二の腕」，「下半身・ピップアップ」のいずれかを選択できる。
【００７６】
一方、前記選択画面で「コンディショニング」を選択すると、同図(c)に示したように、気になる症状を選択させる画面が表示される。本実施形態では、「肩こり改善」，「腰痛改善」，「柔軟性向上」のいずれかを選択できる。
【００７７】
時刻t4では、前記選択されたトレーニング目的およびその「部位」または「症状」がユーザ端末１からトレーニング支援サーバ２へ送信される。時刻t5では、トレーニング支援サーバ２が、前記ユーザIDに基づいてトレーニングDB３の属性情報記憶部３１およびトレーニングレベル記憶部３２を参照し、当該ユーザの属性情報およびトレーニングレベルを抽出する。そして、当該抽出した属性情報およびトレーニングレベル、ならびに前記送信されたトレーニング目的に基づいて、前記図９または図１０に示したバランス診断メニューを選択する。
【００７８】
時刻t6では、前記選択されたバランス診断メニューがユーザ端末１へ送信される。時刻t7では、ユーザ端末１の内蔵カメラが動画撮影モードで起動される。時刻t8では、図１３に示したように、ユーザ端末１の操作手順およびユーザ端末１とユーザとの相対位置を調整するための画面が、ユーザ端末１のディスプレイにスクロール形式で表示される。
【００７９】
ここで、ユーザが「測定開始」ボタンをタップ等すると、時刻t9では、図１４(a)に示したように、ユーザ端末１のディスプレイに、体幹バランス診断用のガイダンスが表示される。ここで、ユーザがメッセージ「画面の人型ガイドに合わせて、カメラの正面に立ってください」に応じて、ディスプレイ上での自身の表示位置をガイドに合わせると、同図(b)に示したように、前記バランス診断メニューが開始され、映像およびメッセージにしたがって体を動かすことが要求される。ユーザが前記バランス診断メニューに基づいて体を動かすと、時刻t10以降、その映像がユーザ端末１からトレーニング支援サーバ２へ診断映像として送信される。
【００８０】
時刻t11では、トレーニング支援サーバ２のバランス診断部２４において前記ユーザの体幹バランスが評価される。体調診断部２５は、バランス診断映像におけるユーザの顔色や動き（テンポ）を分析してユーザの現在の体調を診断する。時刻t12では、前記診断結果がユーザ端末１へ配信される。時刻t13では、図１５に示したように、前記診断結果がユーザ端末１のディスプレイに表示される。
【００８１】
本実施形態では、ユーザが選択したトレーニング目的「ダイエット」および気になる部位「お腹周り」と共に、体幹バランスの診断結果として「左重心」が表示されている。
【００８２】
前記診断結果画面でユーザが「決定」ボタンをタップすると、時刻t14では、トレーニング支援サーバ２のトレーニングメニュー選択部２６１が、前記体幹バランスの分析結果、トレーニング目的，ユーザのトレーニングレベル及び現在の体調、更には必要に応じて当該ユーザの属性情報を、予め構築されているトレーニングメニュー選択ポリシーに適用することで、現在のユーザに最適なトレーニングメニューを前記トレーニングメニュー記憶部３４から選択する。
【００８３】
例えば、体調診断の結果が「良好」であれば、体幹バランス、トレーニングレベルおよびトレーニング目的に適合するトレーニングメニューが選択される。これに対して、体調診断の結果が「不調」であれば、体幹バランス、トレーニングレベルおよびトレーニング目的に適合するトレーニングメニューよりも負荷の低いトレーニングメニューが選択される。なお、体調の「不調」の程度によっては今回のトレーニングを推奨しない旨のメッセージが配信されるようにしても良い。
【００８４】
また、ユーザの属性情報を更に考慮するのであれば、年齢や性別に応じてトレーニングメニューの負荷を増減させても良い。あるいは、既往症として「高血圧」が登録されているユーザであれば血圧を上昇させにくいトレーニングメニューが選択されえるようにしても良い。同様に、既往症として「腰痛」が登録されているユーザであれば、腰の負担が少ないトレーニングメニューが選択されるようにしても良い。
【００８５】
時刻t15では、トレーニング支援サーバ２からユーザ端末１へ、前記選択したトレーニングメニューがトレーニングメニュー配信部２６２により配信される。時刻t16では、図１６に示したように、前記選択されたトレーニングメニューが表示される。
【００８６】
図１６は、トレーニングメニューの開始画面の例を示した図であり、前記選択されたトレーニングメニューの内容および説明が表示される。
【００８７】
本実施形態では、トレーニング数が「４」であり、時間目安が２０分であり、トレーニング内容が４回とも「リバースランジ」である旨が表示されている。ユーザは提案されたメニューを完全に消化する必要は無く、例えば時間的な制約や体調から一部を実施したくない場合は、時刻t17において、実施したくないトレーニングの案件をタップ等することでスキップすることもできる。
【００８８】
以上のようにして、トレーニングメニューの修正が完了すると、図１７に示したように、今回のトレーニング内容が一覧表示される。この場合、前記スキップされたトレーニングはグレーアウトされる。
【００８９】
ユーザがトレーニング開始ボタンをタップすると、時刻t18においてトレーニングメニューがスタートし、図１８に示したように、実施するトレーニングごとにトレーニング内容や注意点が表示される。
【００９０】
時刻t19では、トレーニングするユーザを撮影したトレーニング映像がフレーム単位でトレーニング支援サーバ２へ送信される。時刻t20では、トレーニング支援サーバ２のトレーニング評価部２６が、前記トレーニング映像から推定したユーザの姿勢の変化に基づいて行動認識を行う。
【００９１】
時刻t21では、前記評価結果がユーザ端末１へ送信され、時刻t22でユーザ端末１のディスプレイに表示される。時刻t23では、今回のスコアを過去のスコアの履歴情報に累積することで既登録のトレーニングレベルが更新される。
【００９２】
本実施形態では、トレーニングレベルが例えば第１レベル（初級）から第５レベル（上級）まで規定されており、第nレベルにおいて獲得したスコアの累計が所定の閾値を上回ると、次の第n+1レベルに昇格するように構成されている。
【００９３】
図１９は、トレーニング後にユーザ端末に表示される評価結果の一例を示した図であり、実施したトレーニング内容、各トレーニングの個別スコアおよびメッセージが時系列で一覧表示されると共に、今回のトレーニングのトータルスコア「３９０」が表示されている。
【００９４】
前記トータルスコアは履歴情報として管理されており、図２０に示したように時系列で一覧表示させることもできる。これにより、ユーザはトレーニングの履歴を容易に確認することができるようになり、特にスコアを参照することで、トレーニングレベルが向上していることを客観的に感じることができるので、トレーニングに対するモチベーションの向上が期待できる。
【００９５】
図２１は、前記フレーム画像統合部２８の他の画像統合方法を模式的に示した図である。
【００９６】
上記の実施形態では、例えばフレームメモリMを４等分割して４つのカメラ画像（a，b，c，d）を統合［同図(a)］することで、同時に４人のユーザを対象に姿勢推定を実施しているときに、ユーザ数が増えて８つのカメラ画像（a，b，c，d，e，f，g，h）を統合する必要が生じると、フレームメモリMが適応的に９等分割［同図(b)］され、最大で９人のユーザに対して同時に姿勢推定を実施できるものとして説明した。
【００９７】
しかしながら、本発明はこれのみに限定されるものではなく、同図(c)に示したように、フレームメモリMの４等分割は維持したまま、統合対象のカメラ画像集合を２つのグループ（a，b，c，d）および（e，f，g，h）に分類し、フレーム単位で統合するグループを順次に切り換えることで、一つのGPUで８人のユーザに対して実質的に同時に姿勢推定を実施できるようにしても良い。
【００９８】
すなわち、k番目の処理ではフレームメモリMに一方のグループのカメラ画像集合（a1，b1，c1，d1）を配置し、k+１番目の処理では他方のグループのカメラ画像集合（e1，f1，g1，h1）を配置し、k+2番目の処理では再び一方のグループのカメラ画像集合（a2，b2，c2，d2）を配置し…といったように、各グループのカメラ画像集合を順番に統合するようにしても良い。
【００９９】
このように、m個のカメラ画像を対象に、１番目からn（＜m）番目の各カメラ画像をフレームメモリの各部分領域に配置して今回の統合フレーム画像を生成し、次の周期ではn+１番目からm番目の各カメラ画像を前記フレームメモリの各部分領域に配置して統合フレーム画像を生成し、これを後続のm個のカメラ画像ごとに繰り返せば、GPUごとに、画像解像度の低下を抑えながら、フレームメモリの分割数を超える個数のカメラ画像を同時に処理できるようになる。
【０１００】
なお、トレーニング支援サーバ２におけるフレーム画像の処理レートが各ユーザ端末1によるカメラ画像の送信周期を下回ると、トレーニング支援サーバ側にバッファ溢れ等の不都合が生じうる。そこで、本実施形態でもトレーニング支援サーバ２におけるフレーム画像の処理レートが各ユーザ端末1によるカメラ画像の送信周期を下回ると、トレーニング支援サーバ２から各ユーザ端末1へカメラ画像の送信周期を低下させる変更要求が送信される。
【０１０１】
各ユーザ端末１は、同図(d)に一例を示したように、前記変更要求に応答して、ユーザを撮影した動画像から静止画をキャプチャする際のサンプリング周期を長くし、これと同期するようにカメラ画像の送信周期を低下させる。
さらに、上記の実施形態では、カメラ画像のキャプチャ部１０２、トリミング部１０３および縮小部１０４をユーザ端末１に設けるものとして説明したが、本発明はこれのみに限定されるものではなく、これらの全てまたは一部をトレーニング支援サーバ２に設けるようにしてもよい。
【符号の説明】
【０１０２】
１…ユーザ端末，２…トレーニング支援サーバ，３…トレーニングDB，２２…ユーザ認証部，２３…トレーニング目的受付部，２４…バランス診断部，２５…体調診断部，２６…トレーニング評価部，２７…トレーニング情報更新部，２８…フレーム画像統合部，２９…姿勢推定部，３１…属性情報記憶部，３２…トレーニングレベル記憶部，３３…診断メニュー記憶部，３４…トレーニングメニュー記憶部
【図１】
2020080096.tif 000003
【図２】
2020080096.tif 000004
【図３】
2020080096.tif 000005
【図４】
2020080096.tif 000006
【図５】
2020080096.tif 000007
【図６】
2020080096.tif 000008
【図７】
2020080096.tif 000009
【図８】
2020080096.tif 000010
【図９】
2020080096.tif 000011
【図１０】
2020080096.tif 000012
【図１１】
2020080096.tif 000013
【図１２】
2020080096.tif 000014
【図１３】
2020080096.tif 000015
【図１４】
2020080096.tif 000016
【図１５】
2020080096.tif 000017
【図１６】
2020080096.tif 000018
【図１７】
2020080096.tif 000019
【図１８】
2020080096.tif 000020
【図１９】
2020080096.tif 000021
【図２０】
2020080096.tif 000022
【図２１】
2020080096.tif 000023