(57)【要約】      （修正有）【課題】対象が光学式マーカやセンサを装着することなく、光学式モーションキャプチャ技術に代えることのできる精度をもつモーションキャプチャを提供する。【解決手段】多関節構造を備えた対象は、複数の関節を含む複数の身体上の特徴点を備え、各特徴点間の距離が得られている。モーションキャプチャシステムは、１枚あるいは同時刻で撮影された複数枚の入力画像から各特徴点の位置の確からしさの尤度の空間分布を取得する。この尤度の空間分布を用いて、各特徴点に対応する１つあるいは複数の特徴点の位置候補を取得する。特徴点の位置候補と対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、対象の各関節角を取得し、関節角を用いて順運動学計算を行うことで、対象の関節を含む特徴点の位置を取得する。【選択図】図１
2020042476.tif 000002
【特許請求の範囲】
【請求項１】
多関節構造を備えた対象は、複数の関節を含む身体上の複数の特徴点を備え、隣接する特徴点間の距離が定数として得られており、
１枚あるいは同時刻で撮影された複数枚の入力画像から各特徴点の位置の確からしさの尤度の空間分布を取得し、
前記尤度の空間分布を用いて、各特徴点に対応する１つあるいは複数の特徴点の位置候補を取得し、
前記特徴点の位置候補と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得し、
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、
関節位置の取得方法。
【請求項２】
前記特徴点の位置候補の取得は、フレームtで取得されている各特徴点の位置の近傍空間を探索範囲として、フレームt+1で取得された尤度の空間分布を用いて、フレームt+1における各関節位置の１つあるいは複数の特徴点位置候補を取得するものである、請求項１に記載の関節位置の取得方法。
【請求項３】
前記特徴点の位置候補の取得における特徴点位置候補の探索範囲は、フレームtで取得されている各特徴点の位置に加えて、あるいは、代えて、フレームtよりも前の１つあるいは複数のフレーム、あるいは／および、フレームt+2以降の１つあるいは複数のフレームで取得されている特徴点の位置の近傍空間である、請求項２に記載の方法。
【請求項４】
前記探索範囲は、前記特徴点の位置を中心として所定間隔で３次元状に分布する所定数の点群である、請求項２ないし３に記載の方法。
【請求項５】
前記逆運動学に基づく最適化計算において、前記尤度の空間分布が用いられる、請求項１〜４いずれか１項に記載の方法。
【請求項６】
前記特徴点の位置を、他の複数のフレームで取得された複数の特徴点の位置を用いて時間方向に平滑化し、
平滑化された特徴点の位置と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得する、
請求項１〜５いずれか１項に記載の方法。
【請求項７】
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、請求項６に記載の方法。
【請求項８】
前記入力画像よりも以前のフレームから取得された情報に基づく前処理ステップを備え、
前記前処理ステップは、
(a)入力画像の回転、
(b)入力画像のトリミングあるいは/および縮小、
(c)入力画像のマスキング、
(d)カメラの選択による入力画像の選択、
(e)入力画像のスティッチング、
の少なくとも１つの処理を含む、
を含む、請求項１〜７いずれか１項に記載の方法。
【請求項９】
前記前処理は、入力画像の回転を含み、
前記入力画像よりも以前のフレームにおける対象の身体の正立ポーズに対する傾きを取得すること、
前記傾きに応じて入力画像を回転させて正立姿勢ないし正立に近い姿勢とすること、
回転した画像に基づいて前記尤度の空間分布を取得すること、
前記尤度の空間分布が取得された画像を回転させて元画像に戻すこと、
を含む、請求項８に記載の方法。
【請求項１０】
請求項１〜８いずれか１項に記載の関節位置の取得方法を用いて、
各フレームにおいて前記関節角及び前記関節位置の取得を行うことで、対象の関節角及び関節位置の時系列データを取得する、
動作の取得方法。
【請求項１１】
関節位置の取得装置は、記憶部と処理部とを備え、
前記記憶部には、複数の関節を含む身体上の複数の特徴点を備えた多関節構造を規定するファイルと、隣接する特徴点間の距離が定数として格納されており、
前記処理部は、
１枚あるいは同時刻で撮影された複数枚の入力画像から各特徴点の位置の確からしさの尤度の空間分布を取得し、
前記尤度の空間分布を用いて、各特徴点に対応する１つあるいは複数の特徴点の位置候補を取得し、
前記特徴点の位置候補と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得し、
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、
ように構成されている、
関節位置の取得装置。
【請求項１２】
前記記憶部には、取得された特徴点の位置の時系列データが格納されており、
前記処理部は、フレームtで取得されている各特徴点の位置の近傍空間を探索範囲として、フレームt+1で取得された尤度の空間分布を用いて、フレームt+1における各関節位置の１つあるいは複数の特徴点位置候補を取得する、請求項１１に記載の関節位置の取得装置。
【請求項１３】
前記処理部は、
フレームtで取得されている各特徴点の位置に加えて、あるいは、代えて、フレームtよりも前の１つあるいは複数のフレーム、あるいは／および、フレームt+2以降の１つあるいは複数のフレームで取得されている特徴点の位置の近傍空間を探索範囲として、前記特徴点の位置候補を取得する、請求項１２に記載の装置。
【請求項１４】
前記探索範囲は、前記特徴点の位置を中心として所定間隔で３次元状に分布する所定数の点群である、請求項１２ないし１３に記載の装置。
【請求項１５】
前記逆運動学に基づく最適化計算において、前記尤度の空間分布が用いられる、請求項１１〜１４いずれか１項に記載の装置。
【請求項１６】
前記処理部は、
前記特徴点の位置を、他の複数のフレームで取得された複数の特徴点の位置を用いて時間方向に平滑化し、
平滑化された特徴点の位置と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得する、
ように構成されている、
請求項１１〜１５いずれか１項に記載の装置。
【請求項１７】
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、請求項１６に記載の装置。
【請求項１８】
前記処理部は、
前記入力画像よりも以前のフレームから取得された情報に基づく前処理を実行し、
前記前処理は、
(a)入力画像の回転、
(b)入力画像のトリミングあるいは/および縮小、
(c)入力画像のマスキング、
(d)カメラの選択による入力画像の選択、
(e)入力画像のスティッチング、
の少なくとも１つの処理を含む、
を含む、請求項１１〜１７いずれか１項に記載の装置。
【請求項１９】
前記前処理は、入力画像の回転を含み、
前記処理部は、
前記入力画像よりも以前のフレームにおける対象の身体の正立ポーズに対する傾きを取得し、
前記傾きに応じて入力画像を回転させて正立姿勢ないし正立に近い姿勢とし、
回転した画像に基づいて前記尤度の空間分布を取得し、
前記尤度の空間分布が取得された画像を回転させて元画像に戻すように構成されている、請求項１８に記載の装置。
【請求項２０】
前記装置は、さらに、前記入力画像を取得する１つあるいは複数のカメラを備え、
前記処理部は、前記カメラから前記入力画像を受信する、
請求項１１〜１９いずれか１項に記載の装置。
【請求項２１】
前記１つあるいは複数のカメラは、少なくとも１つの可動カメラを備え、
前記処理部は、毎フレームで前記可動カメラのキャリブレーションを実行する、
請求項２０に記載の装置。
【請求項２２】
請求項１１〜２１いずれか１項に記載の関節位置の取得装置を備え、
各フレームにおいて前記関節角及び前記関節位置の取得を行うことで、対象の関節角及び関節位置の時系列データを取得する、
動作の取得装置。
【請求項２３】
コンピュータを、請求項１１〜２２に記載の記憶部、処理部として機能させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーションキャプチャに係り、詳しくは、対象の関節位置の取得、対象のポーズ取得、対象の動作の取得及び分析に関するものである。
【背景技術】
【０００２】
モ―ションキャプチャは人間の動作の取得や解析に不可欠な技術であり、スポーツ、医療、ロボティクス、コンピュータグラフィックス、コンピュータアニメーション等の分野で広く用いられている。モーションキャプチャの方式としては、光学式モーションキャプチャが良く知られている。光学式モーションキャプチャは、再帰性反射材が塗布された複数の光学式マーカを対象の身体に取り付け、赤外線カメラなどの複数のカメラで対象の動作を撮影することで、光学式マーカの移動軌跡から対象の動作を取得する。
【０００３】
他のモーションキャプチャ方式として、加速度センサやジャイロスコープ、地磁気センサなどのいわゆる慣性センサを対象の身体に装着して、対象のモーションデータを取得することも知られている。
【０００４】
上記光学方式や慣性センサを用いた方式は、高精度のモーションデータを取得することができるが、対象の身体に複数のマーカや複数のセンサを装着する必要があるため、動作計測の準備に時間や人手がかかる、対象の動きが制限されて、自然な動きを妨げるおそれがある、という欠点がある。また、システムやデバイスが高額であることから、広く一般に利用できる技術になっていないという課題がある。光学式モーションキャプチャでは計測場所が限定されてしまうため、屋外や広い空間における動作のモーションデータを取得することが困難である、という欠点がある。
【０００５】
光学式マーカやセンサを装着しない、いわゆるマーカレスモーションキャプチャも知られている。カメラと深度センサを用いたモーションキャプチャとして、非特許文献１〜５を例示することができる。しかし、これらの手法は深度データを取得するレーザの時間・空間分解能性能が低いため、屋外や遠方、高速移動する対象の計測を行うことが困難である。
【０００６】
深層学習により画像認識の手法と精度が飛躍的に向上したことにより、１視点からのRGB画像を解析してモーションデータを取得するビデオモーションキャプチャも提案されている（非特許文献６〜１１）。この手法は、屋外・遠方といった条件下でも利用可能で、カメラの性能を選択することで比較的低コストで時間・空間分解能を高くすることができる。しかし、１視点の計測ではオクルージョンによって対象のポーズ推定が困難になる場合が多く、精度に関しては複数台のカメラを用いる光学式モーションキャプチャに及ばない。
【０００７】
深層学習によって、単一のビデオ画像から人間の姿を見つけ関節位置の確からしさの尤度の空間分布を表すヒートマップを生成する研究も行われている。１つの代表的な研究がOpenPose（非特許文献１２）である。OpenPoseでは１枚のRGB 画像から手首や肩といった複数人の特徴点(keypoints)の推定をリアルタイムに行うことができる。これはWeiらによる、CNNを用いて１枚のRGB 画像から各関節のPart Confidence Maps(PCM)を生成して各関節の位置を推定する研究（非特許文献１３）、CaoらによるPart Affinity Fields(PAF)という隣接する関節の方向を表すベクトル場を計算して、上記手法を複数人に対してもリアルタイムで関節位置の推定を行うように拡張を行った研究（非特許文献１４）、に基づいて開発されたものである。また、各関節位置の確からしさを表す尤度の空間分布であるヒートマップ（OpenPoseにおけるPCM）を取得する手法としては様々な手法が提案されており、入力画像から人間の関節位置を推定する手法の精度を競うコンテストも開催されている（非特許文献１５）。
【０００８】
しかしながら、ヒートマップ情報を用いて関節位置の３次元再構成を行う手法であって、光学式モーションキャプチャのように高い精度で動作計測を行う技術は実現されてない。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Z. Zhang. Microsoft kinect sensor and its effect. IEEE MultiMedia, 19(2):4-10, Feb 2012.
【非特許文献２】J. Shotton, A. Fitzgibbon, M. Cook, T. Sharp, M. Finocchio, R. Moore, A. Kipman, and A. Blake. Real-time human pose recognition in parts from single depth images. In Proceedings IEEE Conference on Computer Vision and Pattern Recognition. CVPR 2011, CVPR '11, pages 1297-1304, Washington, DC, USA, 2011. IEEE Computer Society.
【非特許文献３】J. Tong, J. Zhou, L. Liu, Z. Pan, and H. Yan. Scanning 3d full human bodies using kinects. IEEE Transactions on Visualization and Computer Graphics, 18(4):643-650, April 2012.
【非特許文献４】Luciano Spinello, Kai O. Arras, Rudolph Triebel, and Roland Siegwart. A layered approach to people detection in 3d range data.In Proceedings of the Twenty-Fourth AAAI Conference on ArtificialIntelligence, AAAI’10, pages 1625-1630. AAAI Press, 2010.
【非特許文献５】A. Dewan, T. Caselitz, G. D. Tipaldi, and W. Burgard. Motion-based detection and tracking in 3d lidar scans. In 2016 IEEE International Conference on Robotics and Automation (ICRA), pages 4508-4513,May 2016.
【非特許文献６】C. J. Taylor. Reconstruction of articulated objects from point correspondences in a single uncalibrated image. In Proceedings IEEE Conference on Computer Vision and Pattern Recognition. CVPR 2000, volume 1, pages 677-684 vol.1, 2000.
【非特許文献７】I. Akhter and M. J. Black. Pose-conditioned joint angle limits for 3d human pose reconstruction. In Proceedings IEEE Conference on Computer Vision and Pattern Recognition. CVPR 2015, pages 1446-1455, June 2015.
【非特許文献８】Dushyant Mehta, Helge Rhodin, Dan Casas, Oleksandr Sotnychenko, Weipeng Xu, and Christian Theobalt. Monocular 3d human pose estimation using transfer learning and improved CNN supervision. The Computing Research Repository, abs/1611.09813, 2016.
【非特許文献９】Dushyant Mehta, Srinath Sridhar, Oleksandr Sotnychenko, Helge Rhodin, Mohammad Shaei, Hans-Peter Seidel, Weipeng Xu, Dan Casas, and Christian Theobalt. Vnect: Real-time 3d human pose estimation with a single RGB camera.
【非特許文献１０】Angjoo Kanazawa, Michael J. Black, David W. Jacobs, and Jitendra Malik. End-to-end recovery of human shape and pose. arXiv:1712.06584, 2017.
【非特許文献１１】Xiao Sun, Jiaxiang Shang, Shuang Liang, and Yichen Wei. Compositional human pose regression. The Computing Research Repository, abs/1704.00159, 2017.
【非特許文献１２】Openpose. https://github.com/CMU-Perceptual-Computing-Lab/openpose.
【非特許文献１３】Shih-En Wei, Varun Ramakrishna, Takeo Kanade, and Yaser Sheikh. Convolutional pose machines. In Proceedings IEEE Conference on Computer Vision and Pattern Recognition. CVPR 2016, 2016.
【非特許文献１４】Zhe Cao, Tomas Simon, Shih-En Wei, and Yaser Sheikh. Realtime multi-person 2d pose estimation using part affinity fields. In Proceedings IEEE Conference on Computer Vision and Pattern Recognition. CVPR 2017, 2017.
【非特許文献１５】http://cocodataset.org/#keypoints-leaderboard
【非特許文献１６】Y. Nakamura, K. Yamane, Y. Fujita, and I. Suzuki. Somatosensory computation for man-machine interface from motion-capture data and musculoskeletal human model. Trans. Rob., 21(1):58-66, Feb 2005.
【非特許文献１７】K. Ayusawa and Y. Nakamura. Fast inverse kinematics algorithm for large dof system with decomposed gradient computation based on recursive formulation of equilibrium. In 2012 IEEE/RSJ InternationalConference on Intelligent Robots and Systems, pages 3447-3452, Oct 2012.
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、屋内、屋外、服装を問わずマーカレスで、精度の高い動作計測を行うことを目的とするものである。
【課題を解決するための手段】
【００１１】
本発明が採用した技術手段は、
多関節構造を備えた対象は、複数の関節を含む身体上の複数の特徴点を備え、隣接する特徴点間の距離が定数として得られており、
１枚あるいは同時刻で撮影された複数枚の入力画像から各特徴点の位置の確からしさの尤度の空間分布を取得し、
前記尤度の空間分布を用いて、各特徴点に対応する１つあるいは複数の特徴点の位置候補を取得し、
前記特徴点の位置候補と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得し、
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、
関節位置の取得方法、である。
【００１２】
１つの態様では、前記特徴点の位置候補の取得は、フレームtで取得されている各特徴点の位置の近傍空間を探索範囲として、フレームt+1で取得された尤度の空間分布を用いて、フレームt+1における各関節位置の１つあるいは複数の特徴点位置候補を取得するものである。
１つの態様では、前記特徴点の位置候補の取得における特徴点位置候補の探索範囲は、フレームtで取得されている各特徴点の位置に加えて、あるいは、代えて、フレームtよりも前の１つあるいは複数のフレーム、あるいは／および、フレームt+2以降の１つあるいは複数のフレームで取得されている特徴点の位置の近傍空間である。
１つの態様では、前記探索範囲は、前記特徴点の位置を中心として所定間隔で３次元状に分布する所定数の点群である。
【００１３】
１つの態様では、前記逆運動学に基づく最適化計算において、前記尤度の空間分布が用いられる。
【００１４】
１つの態様では、前記特徴点の位置を、他の複数のフレームで取得された複数の特徴点の位置を用いて時間方向に平滑化し、
平滑化された特徴点の位置と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得する。
１つの態様では、前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する。
【００１５】
１つの態様では、前記入力画像よりも以前のフレームから取得された情報に基づく前処理ステップを備え、
前記前処理ステップは、
(a)入力画像の回転、
(b)入力画像のトリミングあるいは/および縮小、
(c)入力画像のマスキング、
(d)カメラの選択による入力画像の選択、
(e)入力画像のスティッチング、
の少なくとも１つの処理を含む。
１つの態様では、
前記前処理は、入力画像の回転を含み、
前記入力画像よりも以前のフレームにおける対象の身体の正立ポーズに対する傾きを取得すること、
前記傾きに応じて入力画像を回転させて正立姿勢ないし正立に近い姿勢とすること、
回転した画像に基づいて前記尤度の空間分布を取得すること、
前記尤度の空間分布が取得された画像を回転させて元画像に戻すこと、
を含む、
【００１６】
本発明は、上記関節位置の取得方法を用いて、各フレームにおいて前記関節角及び前記関節位置の取得を行うことで、対象の関節角及び関節位置の時系列データを取得する、動作の取得方法として提供される。
【００１７】
本発明が採用した関節位置の取得装置は、記憶部と処理部とを備え、
前記記憶部には、複数の関節を含む身体上の複数の特徴点を備えた多関節構造を規定するファイルと、隣接する特徴点間の距離が定数として格納されており、
前記処理部は、
１枚あるいは同時刻で撮影された複数枚の入力画像から各特徴点の位置の確からしさの尤度の空間分布を取得し、
前記尤度の空間分布を用いて、各特徴点に対応する１つあるいは複数の特徴点の位置候補を取得し、
前記特徴点の位置候補と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得し、
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、
ように構成されている。
本発明は、また、上記関節位置の取得装置を備え、各フレームにおいて前記関節角及び前記関節位置の取得を行うことで、対象の関節角及び関節位置の時系列データを取得する、動作の取得装置として提供される。
本発明は、また、コンピュータを、上記装置の記憶部、処理部として機能させるコンピュータプログラム、あるいは、当該コンピュータプログラムを記憶したコンピュータ可読媒体として提供される。
【発明の効果】
【００１８】
本発明は、カメラ映像から屋内、屋外、服装を問わずマーカレスで、モーションキャプチャを行うことを可能とする。カメラ映像から深層学習を用いて推定した関節位置から、対象の多関節構造（例えば骨格構造）と運動の連続性を考慮して３次元再構成を行うことで、従来の光学式モーションキャプチャに近い滑らかな運動計測を行うことを可能とする。
【図面の簡単な説明】
【００１９】
【図１】モーションキャプチャシステムの全体図である。
【図２】モーションキャプチャシステムのハードウェア構成を示す概略図である。
【図３】入力画像の処理工程を示すフローチャートである。
【図４】カメラキャリブレーション、骨格モデルの初期姿勢・関節間距離の取得の処理工程を示すフローチャートである。
【図５】関節位置候補取得部の処理工程を示すフローチャートである。
【図６】関節位置取得部（異なる格子間隔を用いる場合）の処理の工程を示すフローチャートである。
【図７】関節位置候補取得部の他の処理工程を示すフローチャートである。
【図８】入力画像を回転させてPCMを取得する工程を示すフローチャートである。
【図９】モーションキャプチャを用いた動作分析の工程を示すフローチャートである。
【図１０】左図は本実施形態に係る骨格モデルを示し、右図はOpenPoseの特徴点を示す。
【図１１】探索範囲である点群を例示する図である。
【発明を実施するための形態】
【００２０】
［Ａ］本実施形態に係るモーションキャプチャシステムの全体構成
図１に示すように、本実施形態に係るモーションキャプチャシステムは、対象の動作を取得する動画取得部と、動画取得部で取得された画像に基づいて、関節位置を含む特徴点（Keypoints）の位置の確からしさの程度を色強度で表示するヒートマップ情報を取得するヒートマップ取得部と、ヒートマップ取得部で取得されたヒートマップ情報を用いて対象の関節位置を取得する関節位置取得部と、関節位置取得部で取得された関節位置を平滑化する平滑化処理部と、対象の身体の骨格構造、動画取得部で取得された画像の時系列データ、関節位置取得部で取得された関節位置の時系列データ等を記憶する記憶部と、動画取得部で取得された対象の画像や対象のポーズに対応する骨格構造等を表示するディスプレイと、を備えている。対象の身体上の特徴点は主として関節であるため、本明細書及び図面において、特徴点を代表して「関節」という文言を用いており、「関節」についての説明は、関節以外の特徴点にも適用される点に留意されたい。
【００２１】
本実施形態に係るモーションキャプチャシステムのハードウェアは、前記動画取得部を構成する複数のカメラと、カメラ画像を取得する１つあるいは複数のローカルコンピュータと、それらとネットワークで繋がった１つあるいは複数のコンピュータと、１つあるいは複数のディスプレイとからなる。１つの実施形態では、１つのカメラに１つのローカルコンピュータを対応させてカメラ画像を取得し、同時にヒートマップ取得部を構成し、その後、前記関節位置取得部、前記平滑化処理部、前記記憶部をネットワークで繋がった１つあるいは複数のコンピュータで構成する。また、別の実施形態では、カメラと繋がったローカルコンピュータが画像を必要に応じて圧縮して、ネットワークで送信し、繋がったコンピュータで、ヒートマップ取得部、前記関節位置取得部、前記平滑化処理部、前記記憶部を構成する。構成される。各コンピュータは、入力部、処理部、記憶部（RAM、ROM）、出力部を備えている。
【００２２】
各カメラは同期しており、同時刻で取得された各カメラ画像は対応するヒートマップ取得部に送信され、ヒートマップ取得部によってヒートマップが生成される。
ヒートマップは、身体上の特徴点の位置の確からしさの尤度の空間分布を表す。生成されたヒートマップ情報は関節位置取得部に送信され、関節位置取得部によって関節位置が取得される。取得された関節位置データは、関節位置の時系列データとして記憶部に格納される。取得された関節位置データは、平滑化処理部に送信され、平滑化関節位置、関節角が取得される。平滑化された関節位置ないし関節角、及び、対象の身体の骨格構造によって対象のポーズが決定され、ポーズの時系列データからなる対象の動作をディスプレイに表示する。
【００２３】
動画取得部は、複数のカメラからなり、例えば、外部同期信号発生器を用いて同期されている。なお、複数のカメラ画像を同期させる手法は限定されない。複数のカメラは対象を囲むように配置され、全部あるいは一部のカメラによって同時に対象を撮影することで対象の複視点動画を取得する。各カメラからは、例えば、60fps、1024×768のRGB画像が取得され、RGB画像がヒートマップ取得部にリアルタイム、あるいは、非リアルタイムで送信される。動画取得部で取得された画像データをネットワークを介してヒートマップ取得部に送信する場合には、画像内容や用途によっては、圧縮あるいは暗号化を行ってもよい。画像の時系列データを記憶部に記録してもよい。画像の時系列データは、動画としてリアルタイムあるいは非リアルタイムでディスプレイに表示してもよい。
【００２４】
本実施形態では、動画取得部は複数のカメラから構成され、同時刻で取得された複数枚のカメラ画像がヒートマップ取得部に送信される。ヒートマップ取得部は、動画取得部から入力された画像に基づいてヒートマップを生成する。なお、動画取得部は１台のカメラから構成してもよい。動画取得部を１台のカメラから構成する場合には、例えば、この１台のカメラは、奥行情報を備えたカメラ画像を出力する。ヒートマップ取得部が、１枚の奥行情報を備えたカメラ画像からヒートマップを生成する場合には、前記１枚の画像について、身体上の特徴点の３次元的な存在位置の確からしさが学習されている畳み込みニューラルネットワーク（CNN）等を用いてヒートマップを生成する。１枚の入力画像から人間の３次元ポーズを生成する研究も行われており（非特許文献９）、例えば、この研究を利用して、１台のカメラで生成された１枚のカメラ画像からヒートマップを生成してもよい。本実施形態では、動画取得部を構成するカメラは固定カメラであるが、可動カメラであってもよい。可動カメラを用いる場合には、毎フレームで、SLAM（Simultaneous Localization and Mapping）などの方法により、カメラのキャリブレーションを並行して実行する。可動カメラの態様としては、回転、直動、２次元ないし３次元上の任意の運動（ドローンなどを用いた飛行を含む）が例示される。
【００２５】
１枚の画像に含まれる対象の数は限定されない。１つの態様では、カメラによって複数人の人間の動作を撮影することで、各画像には、複数の人間が含まれており、各画像において、前記複数の人間から選択された１人あるいは任意数の複数の人間の関節位置を取得する。１枚の画像に複数人が含まれている場合に、例えば、PAFとPCMを用いれば、各人毎に関節位置を同時に取得することができる。また、計測初期時に各人毎に関節位置を識別すれば、その後はフレーム間の連続性で関節位置を追跡することで、各人を識別することができる。
【００２６】
モーションキャプチャシステムによる動作取得において、対象はリンク構造ないし多関節構造を備えている。典型的には対象は人間であり、前記多関節構造は身体の骨格構造である。ヒートマップ取得部で用いる学習データを対象に合わせて用意する必要があるが、人間以外の対象（例えば、人間以外の動物やロボット）にも適用し得る。また、対象は、例えば人間の全身に限定されるものではなく、身体の部分であってもよい。
【００２７】
記憶部には、計測データや処理データが格納される。例えば、動画取得部によって取得された画像の時系列データ、関節位置取得部によって取得された関節位置データ、関節角度データが格納される。記憶部には、さらに、平滑化処理部によって取得された平滑化関節位置データ、平滑化関節角度データ、ヒートマップ取得部により生成されたヒートマップデータ、その他処理過程で生成されたデータを格納してもよい。
【００２８】
記憶部には、さらに、対象の身体の骨格構造を決定するデータが格納されている。このデータには、身体の骨格モデルを規定するファイル、対象の隣接する関節間距離データが含まれる。多関節体である骨格モデルの各関節の位置から、関節角度や対象のポーズが決定される。本実施形態で用いた骨格モデルを図１０左図に示す。図１０左図に示す骨格モデルは４０自由度であるが、この骨格モデルは例示である。後述するように、対象の隣接する関節間の距離を表す定数は、モーションキャプチャの初期設定時に取得することができる。対象の各関節間距離は他の手法で予め取得してもよく、あるいは、既に取得されている関節間距離を用いてもよい。本実施形態では、対象の身体の骨格構造データを用いることで、関節位置の算出において、隣接する関節間距離が時間的に不変という骨格構造特有の拘束条件を与えることができる。
【００２９】
ディスプレイには、動画取得部によって取得された対象の動画、モーションキャプチャによって取得された対象のポーズを表す時系列骨格画像などが表示される。例えば、コンピュータの処理部において、対象固有の骨格構造、算出された関節角及び関節位置の時系列データを用いて、フレーム毎に骨格画像（対象のポーズ）データが生成され、骨格画像データを所定のフレームレートで出力して動画としてディスプレイに表示する。図２では、典型的な出力装置として、ディスプレイを示したが、出力装置は、ディスプレイに限定されず、他のデバイス（例えば、分析用のコンピュータ）であってもよい。
【００３０】
［Ｂ］ヒートマップ取得部
ヒートマップ取得部は、入力画像に基づいて、各関節位置を含む身体上の特徴点（keypoints）の位置の確からしさの尤度の２次元あるいは３次元の空間分布を生成し、前記尤度の空間分布をヒートマップ形式で表示する。ヒートマップは、空間に広がって変化する値を温度分布のように色強度で空間上に表示すものであり、尤度の可視化を可能とする。尤度の値は例えば０〜１であるが、尤度の値のスケールは任意である。本実施形態において、ヒートマップ取得部は、各関節を含む身体上の特徴点の位置の確からしさの尤度の空間分布、すなわち、ヒートマップ情報（画像の各ピクセルが尤度を表す値を保持している）が取得されていればよく、必ずしも、ヒートマップを表示することを要しない。
【００３１】
ヒートマップ取得部は、典型的には、畳み込みニューラルネットワーク（CNN）を用いて、入力された単一の画像から対象の身体上の特徴点の位置（典型的には関節位置）を、ヒートマップとして推定する。畳み込みニューラルネットワーク（CNN）は入力層、中間層（隠れ層）、出力層を備え、中間層は、特徴点の画像上への２次元写像の存在位置の教師データを用いた深層学習によって構築されている。
【００３２】
本実施形態では、ヒートマップ取得部で取得された尤度は、２次元の画像上の各ピクセルに与えられており、複数視点からのヒートマップ情報を総合して特徴点の３次元的な存在位置の確からしさの情報を得ることができる。ヒートマップ取得部で取得された尤度は、２次元空間の各点（x,ｙ）が、３次元座標（X, Y, Z）を用いて、２次元情報を割り当てた場合には尤度λ＝λ(x, y, fx(X,Y,Z), fy(X,Y,Z))を持ち、３次元情報を割り当てた場合には尤度λ＝λ（x, y, X, Y, Z）を持つ。
【００３３】
ヒートマップ取得部として、オープンソフトウェアであるOpenPose（非特許文献１２）を用いることができる。OpenPoseでは、身体上の１８個の特徴点（keypoints）が設定されている（図１０右図参照）。具体的には、１８個の特徴点は、１３個の関節と、鼻、左右の目、左右の耳からなる。OpenPoseは、訓練された畳み込みニューラルネットワーク（CNN）を用いることで、１枚のRGB 画像から１８個の身体上の各特徴点（keypoints）のPart Confidence Maps(PCM)をオフラインあるいはリアルタイムで生成し、ヒートマップ形式で表示する。本明細書において、身体上の特徴点の位置の確からしさの尤度の空間分布ないしヒートマップについて、PCMという文言を用いる場合があるが、各関節位置を含む身体上の特徴点の位置の確からしさの尤度の空間分布を表す指標をPCMに限定するものでない点に留意されたい。
【００３４】
同期する複数のカメラから取得した各RGB画像に対し、OpenPoseによって１８個の特徴点のPart Condence Maps(PCM)が生成される。本実施形態では、各カメラに対してヒートマップを生成する１台のローカルコンピュータを用意し、ヒートマップの生成を並列計算で実行する。カメラ数が増えた場合であっても、並列計算により計算量の増加を抑えることができる。ヒートマップデータはヒートマップ取得部から関節位置取得部（コンピュータ）へネットワークを介して送信される。ヒートマップデータの送信に際しては、ヒートマップデータを必要に応じて圧縮あるいは暗号化してもよい。ヒートマップデータはスパースな画像であるため、生成されたヒートマップデータを効率良く圧縮することができる。また、ヒートマップデータには、個人を識別可能な情報を含まないため、ヒートマップ生成までの計算をカメラに直結されたローカルコンピュータで行えば、個人情報を含まないヒートマップデータのみをネットワークで送信することができ、セキュリティ上も安全である。
【００３５】
ヒートマップ取得部には、OpenPose以外の他の手法を用いることができる。対象の身体上の特徴点の位置の確からしさを表すヒートマップを取得する手法としては様々な手法が提案されている。例えば、COCO Keypoints challenge（非特許文献１５）で上位入賞した手法を採用することもできる。また、独自にヒートマップ取得部のための学習器を作成して、畳み込みニューラルネットワーク（CNN）を構築してもよい。
【００３６】
［Ｃ］本実施形態に係るモーションキャプチャシステムの初期設定
図３を参照しつつ、本実施形態に係るモーションキャプチャシステムにおける、カメラのキャリブレーション、骨格モデルの初期姿勢の取得、対象の関節間距離の取得について説明する。
【００３７】
［Ｃ−１］カメラキャリブレーション
キャリブレーション画像からカメラの内部パラメータ、外部パラメータを取得し、これらのカメラパラメータから入力画像の歪曲収差の補正を行う。カメラのキャリブレーションは当業者に周知なので、詳細な説明は省略する。内部パラメータや外部パラメータ等のカメラパラメータはシステムの記憶部に格納される。
【００３８】
焦点距離、光学中心、画像中心（光軸と投影面の交点）、カメラの内部パラメータ、外部パラメータなどを用いることで、任意の三次元上の点をカメラi の撮影面のピクセル位置に変換する関数（行列）Pi の導出を行う。関数Piは記憶部に格納される。なお、可動カメラを用いる場合には、毎フレームで、SLAM（Simultaneous Localization and Mapping）などの方法により、カメラのキャリブレーションを並行して実行し、毎フレームで上記関数（行列）Pi を取得する。キャリブレーションで取得したカメラパラメータや上記関数（行列）Pi は記憶部に格納される。
【００３９】
［Ｃ−２］骨格モデルとヒートマップが生成される身体上の特徴点との対応
骨格モデルの各関節（図１０左図）と、ヒートマップ取得部における身体の特徴点（図１０右図、ａ，ｏ，ｐ，ｑ，ｒを除く）とを対応させる。対応関係を表１に示す。
【表１】
2020042476.tif 000003
本実施形態に係る骨格モデルの関節と、OpenPoseにおける１８個の特徴点は完全に一致してはいない。例えば、骨格モデルのpelvis(base body)、 waist、 chest、 right clavicle、left clavicle、Headに対応する特徴点は、OpenPoseには存在しない。なお、本実施形態に係る骨格モデルにおける関節、OpenPoseにおける１８個の特徴点は、共に、身体上の特徴点の代表的な特徴点であって、可能性のある全ての特徴点を網羅しているものではない。例えば、さらに詳細な特徴点を設定してもよい。あるいは、全ての身体上の特徴点が関節であってもよい。OpenPoseの１８個の特徴点だけでは決まらない関節角度については、可動範囲などの制約を考慮した最適化の結果として決定される。なお、骨格モデルの関節と、尤度の空間分布が取得される特徴点と、が初めから対応している場合には、この対応づけは不要である。
【００４０】
［Ｃ−３］骨格モデルの初期姿勢・関節間距離の取得
対象の動作計測の始点となる初期姿勢を取得する。本実施形態では、関節間距離・初期姿勢の推定を、歪曲収差補正後画像に対し、OpenPoseを適用することで算出された特徴点のピクセル位置から求める。先ず、各カメラで取得された初期画像に基づいて、初期ヒートマップが取得される。本実施形態では、カメラの光学中心と、OpenPoseから算出した各特徴点の初期ヒートマップの重心のピクセル位置とを結ぶ光線を各カメラから考え、２台のカメラの光線の共通垂線の長さが最小になる２台を決定し、その共通垂線の長さが所定の閾値（例えば20mm）以下のとき、その共通垂線の２つの足の中点を３次元上の特徴点の位置とするよう求め、これを用いて骨格モデルの関節間距離・初期姿勢の取得を行う。
【００４１】
特徴点の初期位置の推定手法については、当業者において様々な手法が採り得る。例えば、各カメラ画像上の対応する点の位置と、カメラパラメータを用いて、ＤＬＴ（Direct Linear Transformation）法により、３次元空間上の特徴点の初期位置を推定することができる。ＤＬＴ法を用いた三次元再構成は当業者に知られているので、詳細な説明は省略する。
【００４２】
逆運動学に基づく最適化計算には隣接する特徴点間の距離（関節間距離）の定数、すなわちリンク長が必要となるが、リンク長は対象毎に異なるため、対象毎に骨格モデルのリンク長を算出する。本実施形態に係るモーションキャプチャの精度を向上させるためには、対象毎にスケーリングを行うことが望ましい。骨格モデルは、人間の標準的な骨格構造のモデルであり、これを全身で、あるいは部位ごとにスケーリングして、対象の体型に適合した骨格モデルを生成する。
【００４３】
本実施形態では、得られた初期姿勢を基にして骨格モデルの各リンク長の更新を行う。骨格モデルの初期リンク長に対し、リンク長更新に用いるスケーリングパラメータを各特徴点の位置より、図１０、表１の対応を基にして算出する。図１０の左図におけるリンク長のうち、１−２、２−３、３−４、３−６、３−１０、６−７、１０−１１、のそれぞれのリンク長については、対応する特徴点が存在しないためスケールパラメータが同様の方法では決まらない。このため、その他のリンク長のスケールパラメータを用いて長さを決定する。なお、本実施形態では、人体骨格は基本的に左右対称な長さとなるため、各スケーリングパラメータは左右均等になるよう左右の平均から求めており、また骨格モデルの初期リンク長は左右均等である。Neck-Head 間のスケーリングパラメータの算出については、両耳の特徴点位置の中点を頭関節の存在する場所としてスケーリングパラメータの算出を行う。取得したスケーリングパラメータを用いて、骨格モデルの各リンク長の更新を行う。鼻・目・耳の位置を算出については、表２に示すような対応関係をもとにして各仮想関節（鼻、目、耳）の位置を算出する。
【表２】
2020042476.tif 000004
なお、リンク長は他の手法で取得してもよいし、予め取得したものを用いてもよい。あるいは、対象者に固有の骨格モデルが得られている場合には、それを用いてもよい。
【００４４】
［Ｄ］関節位置取得部
関節位置取得部は、ヒートマップ取得部から取得されたヒートマップ情報を用いて関節位置候補を推定し、当該関節位置候補を用いて逆運動学に基づく最適化計算を実行することで骨格モデルの関節角、関節位置を更新する点に特徴を備えている。関節位置取得部は、ヒートマップデータに基づいて関節位置候補を推定する関節位置候補取得部と、関節位置候補を用いて逆運動学に基づく最適化計算を実行して関節角を算出する逆運動学計算部と、算出された関節角を用いて順運動学計算を実行して関節位置を算出する順運動学計算部と、を備えている。
【００４５】
本実施形態に係る関節位置候補取得部では、前フレーム（フレームt）の関節位置データを用いて現フレーム（フレームt+1）の関節位置、関節角の計算を行う。フレームtの関節位置から、フレームt+1の関節角度・関節位置を取得する処理をt=Tとなるまで繰り返すことで全Tフレームのビデオモーションキャプチャを行う。
【００４６】
１フレームにおける関節位置の変化は微小であるため、フレームtにおける関節nの関節位置の３次元座標をtＪn、フレームt+1における関節位置をt+1Ｊnとすると、t+1ＪnはtＪn近傍に存在すると考えられる。そこで、tＪnを中心に広がった間隔sの(2k+1)３個の格子点（kは正の整数）を考え、その集合を
【数１】
2020042476.tif 000005
と表す。例えば、tＪnを中心とした図１１のような間隔sの11×11×11（k=5）の格子状の点を考える。格子点の距離ｓは画像ピクセルの大きさとは無関係である。
【００４７】
フレームtにおける関節位置tＪnに基づく探索範囲は、例えば、関節位置tＪnの近傍空間内の点群であり、近傍空間内の総点数(2k+1)３及び点の間隔sによって決定される。探索範囲の決め方において、図１１では立方体を示したが、探索範囲の形状は限定されず、例えば、球状の範囲で探索を行ってもよい。あるいは、過去フレームの関節位置変化に基づいて、探索範囲を狭めた直方体状や長球としたり、探索範囲の中心点をtＪnから別の点としたりして探索を行ってもよい。
【００４８】
探索範囲（例えば、中心点、パラメータkや、探索幅s）は、当業者において適宜設定され得る。対象の運動の種類に応じて探索範囲を変化させてもよい。また、対象の運動の速度および加速度（例えば、対象のポーズの変化速度）に応じて、探索範囲を変化させてもよい。また、撮影するカメラのフレームレートに応じて探索範囲を変化させてもよい。また、関節の部位ごとに探索範囲を変化させてもよい。
【００４９】
tＪnにおける全ての点は、関数Ｐｉを用いて任意のカメラの投影面のピクセル座標に変換することができることに着目する。tＪnにおける１点tＪnａ，ｂ，ｃを、カメラｉの画像平面のピクセル位置に変換する関数をＰｉ、そのピクセル位置からフレームt+1におけるPCM 値を取得する関数をt+1Ｓnｉとすると、nc個のカメラから算出したPCM 値の和の最大点が、フレームt+1において関節nの最も確からしい存在位置であるとみなすことができ、t+1Ｊnpredは
【数２】
2020042476.tif 000006
によって求められる。この計算をnj個（OpenPoseの場合は１８個）の関節全てにおいて実行する。
【００５０】
そして、フレームt+1の各関節位置t+1Ｊnは、関節角t+1Ｑの関数であることに着目し、式（３）に示すように、逆運動学に基づく最適化計算により関節角t+1Ｑを算出し、順運動学計算により関節位置t+1Ｊnを算出する。
【数３】
2020042476.tif 000007
なお、逆運動学に基づく最適化計算における各関節の重みt+1Ｗnには
【数４】
2020042476.tif 000008
と規定されるように、各関節の予測位置におけるPCM値の和を用いる。
関節位置取得部でリアルタイムあるいは非リアルタイムで取得された各関節位置は、関節位置の時系列データとして記憶部に格納される。本実施形態では、関節位置取得部でリアルタイムあるいは非リアルタイムで取得された各関節位置は平滑化処理部によって平滑化処理されて、平滑化関節位置が生成される。
【００５１】
逆運動学に基づく最適化計算については、例えば、非特許文献１７に記載されたアルゴリズムを用いることができる。逆運動学に基づく最適化計算の手法としては幾つかの方法が当業者に知られており、具体的な最適化計算手法は限定されない。１つの好ましい例として、勾配法による数値解法を挙げることができる。また、逆運動学に基づく最適化計算における各関節の重みを規定する式（４）は好ましい１つの態様であり、例示である。例えば、本実施形態では、平滑化処理部において、平滑化後関節位置の重みについては全関節の重みを均一とし、逆運動学に基づく最適化計算を解いている。また、逆運動学に基づく最適化計算を行うにあたり、当業者において適宜拘束条件を与えてもよいことが理解される。
【００５２】
上記探索手法では、探索範囲が格子間隔ｓに依存するため、各格子点と格子点の間に最も高いPCMスコアを持つ点が存在した場合、その点を発見することができない。本実施形態では、式（２）にて最大値となる格子点のみを求めるのではなく、全格子点の中の複数の点を関節位置点群としてPCMスコアが高くなる場所を探索することによって、逆運動学に基づく最適化計算を実行してもよい。前記関節位置点群は、例えば、７点である。７という数値は、式（２）で求める最大点の前後上下左右にも同様に尤度が高い点が存在するという予想から定めた値である。
【００５３】
異なる格子間隔sを用いて関節位置を取得してもよい。本実施形態の１つでは、関節位置候補の探索と逆運動学に基づく最適化計算をsの値を20mm、4mmと変えることで２回実行し、フレームtの関節位置からフレームt+1の関節角・位置を取得するという処理をt=Tとなるまで繰り返すことで全Tフレームのビデオモーションキャプチャを行う。これにより、探索速度と探索精度を両立させることが可能となる。図６に、異なる格子間隔を用いた関節位置取得工程を示す。
【００５４】
先ず、フレームtにおける関節位置tＪnに基づく第１探索範囲（関節位置tＪnの近傍空間内の点の間隔s1）におけるフレームt+1における関節位置候補の探索を行う。間隔s1は、例えば、20mmである。この工程において、フレームt+1における関節位置第１候補を取得する。関節位置第１候補を用いて逆運動学に基づく最適化計算、順運動学計算を実行して、フレームt+1における関節位置第２候補を取得する。
【００５５】
次いで、フレームt+1における関節位置第２候補に基づく第２探索範囲（関節位置第２候補の近傍空間内の点の間隔s2、s2＜s1）におけるフレームt+1における関節位置候補の探索を行う。間隔s2は、例えば、4mmである。この工程において、フレームt+1における関節位置第３候補を取得する。関節位置第３候補を用いて、逆運動学に基づく最適化計算、順運動学計算を実行して、フレームt+1における関節角、関節位置を取得する。
【００５６】
本実施形態では、直前フレームtで取得されている関節位置に基づいて探索範囲を決定しているが、直前フレームtで取得されている関節位置に加えて、あるいは、代えて、フレームtよりも前の１つあるいは複数のフレーム、あるいはフレームt+2以降の１つあるいは複数のフレームで取得されている関節位置を用いてもよい。例えば、関節位置をリアルタイムで取得する場合に、フレームt-1やフレームt-2などの２フレーム以上前のフレームにおける関節位置に基づいて探索範囲を設定してもよい。また、偶数フレームと奇数フレームにおいて並列計算で、別個に特徴点位置探索を行い、交互に出される特徴点位置候補に、平滑化処理を実行してもよい。
【００５７】
式（２）の計算において、評価する尤度についてはモーションキャプチャの精度の高さの指標となる。この尤度について閾値を設定し、尤度が閾値よりも低い場合には、対象のポーズのトラッキングに失敗したものとみなし、関節位置候補の探索範囲を広げて探索を行ってもよい。これは、全身のポーズのうちの一部の部位に対して行ってもよく、あるいは、全身に対して行ってもよい。また、オクル―ジョンなどによって特徴点を一時的に見失った場合には、オフラインの解析では時間を先に進めて同一対象のヒートマップを決定し、そこから動作の連続性を利用して時間を遡ることでオクルージョンによりトラッキングに失敗した部分の関節位置の軌道を回復するようにしてもよい。これによって、オクル―ジョンによる見失いを最小にすることができる。
【００５８】
このように、本実施形態では、PCMスコアが最大となる3次元空間上の点を探索する方法として、３次元空間上の点群を２次元平面に投影し、そのピクセル座標のPCM値を取得し、その和（PCMスコア）を求め、点群のうちPCMスコアが最も高かった点を、PCMスコアが最大となる３次元空間上の点として関節位置候補とする。３次元上の点を各カメラ平面に投影し、そのPCMのスコアを算出する計算は軽い。本実施形態に係る関節位置候補の探索は、前フレームの情報を用いた探索範囲の限定、及び、探索範囲内の格子点の３次元位置の２次元画像(PCM)への再投影によって計算量の低減、および外れ値の除外を実現している。
【００５９】
図７を参照しつつ、関節位置候補取得部の他の態様について説明する。先ず、対象者の動き得る領域（例えば、4m×4m×2m）を設定する。前記領域を一定間隔でセル（例えば、1cmごと、400×400×200のセルを生成）に分割する。
【００６０】
ピンホールカメラモデルを考え、あるカメラについて、例えば、ピクセル位置をx=20, y=25とした場合、[x=19.5,y=24.5]、[x=19.5,y=25.5]、[x=20.5,y=24.5]、[x=20.5,y=25.5]のピクセル範囲にそのピクセル位置のPCM値を与える。格子点で囲まれた１つの３次元のセルをPiによってカメラ画像面に投影し、その領域に含まれる全ピクセル範囲のPCM値の平均値をセルのPCM値とする。上記処理をすべてのカメラにおいて実行する。
【００６１】
すべてのセルのPCMスコア（PCM値の和）を調べ、その最大値を備えたセルを算出する。そのセルの位置が、その時刻での、ある関節が存在する尤度が高い位置となる。この手法を、関節の初期位置の推定に用いてもよい。
【００６２】
さらに、関節位置候補取得部は、複数の２次元ヒートマップから検出したPCM値の重心座標や極大値の座標を用いて３次元再構成することで、関節位置候補を推定するものでもよい。この３次元再構成には、例えば、ＤＬＴ法を用いることができる。推定された関節位置候補に対して、逆運動学に基づく最適化計算、順運動学計算を適用してもよい。なお、関節位置候補取得部は、並行して実行される複数の関節位置候補取得手法を備えていてもよい。
【００６３】
［Ｅ］平滑化処理部
関節位置取得部で用いたPCMの取得、逆運動学に基づく最適化計算は時系列的な関係を考慮していないため、出力される関節位置が時間的に滑らかである保証は無い。平滑化処理部の平滑化関節位置取得部では、関節の時系列情報を用いて、時間的な連続性を考慮した平滑化処理を行う。例えば、フレームt+1で取得された関節位置を平滑化する場合には、典型的には、フレームt+1で取得された関節位置、フレームtで取得された関節位置、フレームt-1で取得された関節位置が用いられる。フレームtで取得された関節位置、フレームt-1で取得された関節位置については、平滑化前の関節位置が用いられるが、平滑化後の関節位置を用いることもできる。非リアルタイムで平滑化処理を実行する場合には、後の時刻で取得された関節位置、例えば、フレームt+2以降のフレームの関節位置を用いてもよい。また、平滑化関節位置取得部では、必ずしも連続するフレームを用いなくてもよい。計算を単純にするために、先ず、身体構造情報を用いずに平滑化を行う。このため隣接する関節の距離であるリンク長は保存されない。次いで、平滑化後の関節位置を用いて、再度、対象の骨格構造を使った逆運動学に基づく最適化計算を行って、前記対象の各関節角を取得することで、リンク長を保存した平滑化を行う。
【００６４】
平滑化関節位置取得部は、ローパスフィルタによる関節位置の時間的平滑化を行う。関節位置取得部によって取得した関節位置にローパスフィルタによる平滑化処理を適用し、平滑化関節位置を各関節の目標位置とし、逆運動学に基づく最適化計算を行う。これにより、関節位置の時間変化の滑らかさを、各関節間距離が不変であるという骨格条件の下で生かすことが可能となる。
【００６５】
平滑化処理部について、より具体的に説明する。本実施形態では、表３に示すIIRローパスフィルタを設計し、関節位置にローパスフィルタによる平滑化処理を行う。なお、カットオフ周波数の値は、当業者において適宜設定できる値であり、例えば、経験的には表３の値を用いることができる。計測する運動の種類や撮影するカメラのフレームレートに応じて平滑化フィルタのパラメータの調整を行ってもよい。
【表３】
2020042476.tif 000009
ローパスフィルタの特性上、ローパスフィルタに通した関節位置の取得はフィルタ次数の半分にあたる３フレームの遅延が生じ、かつ、関節角更新開始から３フレームはローパスフィルタを適応することができないという問題がある。本実施形態では、フィルタに適応前に、第１フレームの関節位置を第−２フレーム、第−１フレーム、第０フレームとおくことで、２フレーム分計算時間の遅れは生じるものの、空間的な誤差の少ない全フレームの関節位置の平滑処理を行う。
【００６６】
上記フィルタによって求めた各関節位置をビデオモーションキャプチャの出力とすると、各関節の時間的な滑らかさは得られるが、隣接する関節間距離が定数という条件が崩れることがある。本実施形態では、このローパスフィルタ適応後の関節位置をあらためて各関節の目標関節位置と置き、再度逆運動学に基づく最適化計算を行った。逆運動学に基づく最適化計算には式（３）を用いることができるが、全関節の重みを均一（これには限定されないが）として逆運動学に基づく最適化計算を実行する。これにより、ローパスフィルタに適応した関節位置の時間変化の滑らかさを、各関節間距離が不変であるという骨格条件の下で生かすことができる。
【００６７】
平滑化処理部の出力には、例えば、関節角情報と骨格構造、およびその２つから一意に算出できる関節位置情報が含まれる。例えば、CG描画時に、関節角情報と、身体の骨格構造ファイルを用いて順運動学計算で身体の運動を描画する。平滑化処理部の出力に含まれる情報を記憶部に格納してもよい。
【００６８】
［Ｆ］前処理部
本実施形態に係るモーションキャプチャシステムは、ヒートマップの計算に先立って、前フレーム（1つの態様では直前フレームであるが、直前フレームには限定されない）で取得された情報に基づいて前処理を実行する前処理部を備えていてもよい。１つの態様では、前処理は、入力画像からヒートマップを計算するコンピュータによって実行されるが、他のコンピュータによって実行されてもよい。
【００６９】
［Ｆ−１］入力画像の回転
ヒートマップの計算では、画像の中で人が正立する画像に対して、人が横臥の姿勢や倒立に近い姿勢でいる画像に対して精度が下がることがある。これは、ヒートマップ取得部で用いる学習データの中に正立に近い画像が多いというデータの偏りによって、対象の逆立ちや側転といった倒立運動では下半身の推定誤差が大きくなるためである。この場合、前フレームでの対象の体の傾きに応じて画像を回転させ、できるだけ対象が正立に近い姿勢で画像に現れるようにする。本実施形態では下半身のPCMを回転画像から取得した。
【００７０】
一般化すると、対象が所定の第１ポーズセット（例えば、横臥や倒立）の時にヒートマップ情報の精度が大きく劣化し、対象が所定のある第２ポーズセット（例えば、正立）の時にヒートマップ情報の精度が高いことが既知の場合に、入力画像における対象の身体の傾きから対象のポーズが第１ポーズセットに含まれるか否かを判定し、入力画像を対象のポーズが第２ポーズセットに含まれるポーズ（正立）となるように入力画像を回転させてヒートマップ情報を取得する。特にリアルタイムでヒートマップ情報を取得する場合には、対象の傾きの判定は、前のフレームにおける入力画像に基づいて実行される。入力画像を回転させてヒートマップ情報を取得するという考えは、本実施形態にかかるモーションキャプチャとは独立して、ヒートマップ取得部に一般に適用し得る技術である。なお、学習データの蓄積および畳み込みニューラルネットワーク（CNN）の改良によって、入力画像の回転を必要としない場合もあり得る。また、可動カメラを用いる場合において、対象の動きに合わせてカメラ自体を物理的に回転させて、フレーム毎に関数Piを取得することで、入力画像の回転を必要としない場合もあり得る。
【００７１】
図８を参照しつつ、入力画像を回転させてPCMを取得する工程について説明する。フレームtの入力画像において、対象の身体の傾き（１つの態様では、trunkの傾き）を検出する。例えば、対象の腰と首を結ぶベクトルを算出する。具体的には、図１０左図の骨格モデルのPelvis関節とNeck関節の３次元座標位置を算出する。３次元上の点をカメラiの画像平面のピクセル位置に変換する関数Piを用いてフレームtにおけるカメラi での対象の身体の傾き（腰と首を結ぶベクトルを各カメラ方向に正射影した際の角度）を求める。
【００７２】
対象の身体の傾きに基づいて画像回転処理の要否を判定する。本実施形態では、得られた身体の傾き（正射影ベクトルの角度）に応じて、フレームt+1の画像を、正射影ベクトルが鉛直上向きに向くように回転させる。例えば、予め複数の回転角度のセット（例えば、３０度刻みに、０度、３０度、６０度、９０度、．．．３３０度）、及び、各回転角度に対応する角度範囲（例えば、１５度〜４５度を３０度に対応させる）を設定しておき、入力画像の回転判定用のテーブルとして記憶部に格納しておく。このテーブルを参照して、前フレームにおける対象の身体の傾き（正射影ベクトルの角度）がどの角度範囲に該当するかを判定し、判定された角度範囲に対応する角度だけ入力画像を回転させてPCMを取得する。オフラインでヒートマップを取得する場合には、回転角度毎にPCMを取得して記憶部に格納しておき、正射影ベクトルの角度に応じてPCMを選択してもよい。回転画像において、OpenPoseのネットワークへの入力を容易にするため、背景（四隅）を黒で埋める処理を行う。回転画像にOpenPoseを適用し、対象の下半身のPCMの算出を行う。回転画像をPCMと共に元の画像の姿勢に戻す。そして、関節位置候補の探索を行う。入力画像の回転の判定に用いる前フレームは、フレームtのみならず、フレームt-1以前のフレームであってもよい。
【００７３】
［Ｆ−２］他の前処理
前処理は、対象の身体の傾きに応じて入力画像を回転させる処理に限定されない。前フレームにおける１人あるいは複数人の対象の３次元位置情報を用いて実行される前処理としては、トリミングあるいは/および縮小、マスク処理、カメラ選択、スティッチングを例示することができる。
【００７４】
トリミングは、前フレームにおける対象の画像上の位置を参考に、画像のトリミングを行い、トリミングした部分のみPCM計算を行うことである。トリミングによって、PCMの計算時間を短縮することは、対象の動作のリアルタイム取得において有利である。同様に、入力画像が十分大きい場合、画像の縮小を行ってもOpenPoseのPCM作成精度がほぼ変化しないことがあるので、画像の縮小によってPCMの計算時間を短縮できる場合がある。
【００７５】
前処理としてのマスク処理は、入力画像に対象以外の人物等が含まれている場合に、対象以外の人物等にマスク処理を適用して、対象のPCM計算を行う処理である。マスク処理を行うことで、複数の対象のPCMの混合を防止することができる。なお、マスク処理を、PCM計算後、関節位置取得部において実行してもよい。
【００７６】
カメラ選択は、動画取得部が複数のカメラを含む場合に、カメラを選択することで、対象の動作取得や動作解析に用いる入力画像を選択することである。例えば、広範囲のフィールドで多数のカメラを用いてモーションキャプチャを行う時に、使用する全てのカメラからの情報を用いて動作取得や動作解析を行うのではなく、前処理において対象が映っていると予想されるカメラを選択し、選択したカメラからの入力画像を用いてモーションキャプチャを行うことである。また、前処理として、入力画像のスティッチングを行ってもよい。スティッチングは、各カメラがそれぞれの画角においてオーバーラップする領域があった際に、取得済みのカメラパラメータを用いて各カメラ画像をつなぎ合わせ、シームレスな１つの画像に合成することを指す。これにより、入力画像の端部に対象が部分的に現れているような場合であっても、PCMの推定を良好に行うことができる。
【００７７】
［Ｇ］モーションキャプチャを用いた動作解析
図９にモーションキャプチャを用いた動作解析の処理工程を例示する。本実施形態に係るモーションキャプチャにより対象の動作を取得する。取得した関節角及び関節位置の時系列データを取得する。さらにこれに基づいて、逆動力学計算により関節トルクを取得し、前記関節トルクを用いて、筋を模倣したワイヤーを備えた筋骨格モデルにおけるワイヤー張力を最適化計算（２次計画法や線形計画法）により取得し、前記ワイヤー張力を用いて筋活動度を算出し、筋活動度の程度に応じた色が割り当てられた筋骨格画像を生成し、視覚化された筋活動度を伴う筋骨格画像を所定のフレームレートで出力して動画としてディスプレイに表示する。以下、詳細に説明する。
【００７８】
モーションキャプチャによって取得した骨格の全自由度の時系列のフレーム間変位を連続関数で補間することによって、各フレーム時刻における骨格の全自由度の変位、その時間微分である速度、またその時間微分である加速度を計算する。それらから算出された各リンクの位置・角度・速度・角速度・加速度・角加速度を逆動力学エンジンに送り、質量を仮定した骨格の運動に伴う、力学情報の計算を行うことで、運動に整合した関節トルクを算出する。骨格の各セグメントは剛体とし、その質量、重心位置、慣性テンソルは、体格情報を用い人の各部位の統計的な計測情報から推定したものを用いることができる。あるいは対象の運動情報からの同定によりこれらのパラメータを推定することもできる。推定に用いる対象の体格情報は事前に取得される。
【００７９】
筋をモデル化した全身に分布させたワイヤーの張力をバイアス・重み付き２次計画法を用いて計算する。このワイヤー張力の計算については、非特許文献１６を参照することができる。分類された運動に応じて拮抗筋が使われる際の力分布の計測値を求めておき、それを参考にしたバイアス、重みを使うことで、実際の筋の張力をよりよく近似する解を得ることができる。筋張力の取得において、筋電計や床反力計を用いてもよい。
【００８０】
取得された筋張力を当該筋の想定した最大筋張力で割った値を筋活動度とし、筋活動度に合わせて筋の色を変えた全身筋骨格系の画像を生成し、これをフレームレート（典型的には３０ＦＰＳ）で出力して映像としてディスプレイに表示する。また、骨格のポーズの画像を生成し、フレームレートで出力して映像としてディスプレイに表示する。さらに、各変数（例えば、関節角度、速度、筋張力、床反力、重心位置など）の値の変化をグラフ化して出力する。これらの出力を解析結果として映像やグラフで提示し、運動時の筋や身体の活動、あるいは体の各部位の動作の記録とする。このように、対象の運動の撮影から、運動時の対象の３次元ポーズの取得、運動に必要な筋活動の推定と可視化までを、自動的に効率的に行うことができる。
【００８１】
［Ｈ］入力画像から対象の特徴点の位置を取得するまでの流れ
本実施形態に係る入力画像から関節角度、特徴点の位置を取得するまでの工程を、図３を参照しつつ説明する。複数の同期したカメラによって対象者の動作が撮影され、各カメラから所定のフレームレートでRGB画像が出力される。処理部は、入力画像を受信すると、前処理の要否を判定する。前処理は、例えば、画像の回転の要否である。所定の判定基準によって画像の回転が必要だと判定された場合には、入力画像を回転した状態でヒートマップが取得される。画像の回転が不要だと判定された場合には、入力画像に基づいてヒートマップが取得される。
【００８２】
身体上の全特徴点において、身体上の特徴点の位置の確からしさの尤度の空間分布（ヒートマップ）が生成され、処理部に送信される。処理部では、特徴点の位置候補の探索が行われる。１つの態様では、フレームt+1の入力画像から生成したヒートマップを受信すると、フレームtの特徴点の位置を基に探索範囲が設定され、特徴点の位置候補の探索が行われる。そして全関節において同じ処理を実行し、全関節の関節位置候補を取得する。
【００８３】
全特徴点の位置候補に対して逆運動学に基づく最適化計算を実行する。特徴点の位置候補と骨格モデルの関節（特徴点）が対応付けられており、骨格モデルは、対象者固有の骨格モデルに適合されている。特徴点の位置候補と重みを基に、逆運動学に基づく最適化計算、順運動学計算を実行して関節角、特徴点の位置を取得する。
【００８４】
取得された特徴点の位置に対して、過去のフレームにおける関節位置を用いて、平滑化処理を実行することで、関節位置の時間的な動きを滑らかにする。平滑化された特徴点の位置を用いて再度逆運動学に基づく最適化計算を実行して、対象の関節角を取得し、取得した関節角を用いて順運動学計算を実行して、対象の関節位置を取得する。
【００８５】
本実施形態では、PCMスコアが最大となる点を現在のフレームにおいて最も相応しいポーズであると考えて、関節位置候補の取得を実行する一方、PCMスコアが下がることを許容しつつ、その後の処理で、逆運動学に基づく最適化計算、ローパスフィルタによるスムージングを行う。対象の骨格構造、特徴点の位置の時間的な連続性を考慮して、逆運動学に基づく最適化計算を実行することで、特徴点の位置の推定誤差を小さくすることを可能とした。
【００８６】
本実施形態における関節位置候補取得部において、式（１）〜（４）で示すアルゴリズムを採用することには以下の利点がある。ヒートマップとして空間的な広がりをもった、あいまいな関節位置を、人間の骨格形状を参考にすること（逆運動学に基づく最適化計算）で最適化する。関節位置候補の探索においては、各カメラからの入力画像から取得した、空間的な広がりを持った複数のヒートマップ情報をそのまま用い、その後は、対象の骨格構造を考慮することで、関節位置候補を用いて逆運動学に基づく最適化計算により関節位置を求める。尤度の空間的広がりという豊かな情報を持つ、複数方向からのヒートマップ情報を活用することで、１枚の画像だけでは関節位置推定を誤るような運動にも対応することができる。例えば、あるカメラからの入力画像から望ましいヒートマップが生成されなかったときも、他のカメラからの入力画像から生成したヒートマップを用いるため修正が効く。ある特徴点が誤った位置に３次元再構成されそうなときも、他の特徴点の位置情報と関節間距離不変という拘束条件を用いるため修正が効く。あるフレームにおいて、誤った関節位置が推定されそうなときも、前フレームの関節位置情報と時間的に滑らかという条件を用いるため修正が効く。
【００８７】
骨格構造において、ヒートマップ情報を用いて取得した特徴点の位置だけでは決定できない骨格の自由度の変位の決定が必要な場合には、事前知識を条件に含めた最適化によって決定してもよい。例えば、手や足先については  それぞれ手首、足首の先に存在するという事前知識を用いて初期角度を与える。手や足先の情報が取得される場合には、初期角度をフレーム毎に変化させ、手や足先の情報が取得されない場合には、手や足先の角度は前フレームの角度から変化せず固定される。また、肘や膝の可動域に応じて手首・足首の各自由度に重み・制限を持たせ、手首、足首の反転を防ぐ、身体は地面を貫通しないという制限を与える、といった事前知識を用いることで逆運動学に基づく最適化計算を行ってもよい。
【００８８】
本実施形態に係るモーションキャプチャは、複数のカメラの映像から深層学習を用いて推定した関節位置から、人間の骨格の構造と運動の連続性を考慮して３次元再構成を行うことで、従来の光学式モーションキャプチャに匹敵する滑らかな運動計測を取得する。上記モーションキャプチャは、以下に記載のように、様々な課題を解決することができる。
【００８９】
動作解析を、トップアスリートや特殊技能を持つ舞踏家たちだけでなく、一般の運動愛好家や、学生スポーツの場や、リハビリテーションの患者や高齢者の身体機能のモニタリングに広く活用するためには、設備の簡略化、準備やキャプチャー後の後処理に関わる人手と時間の短縮、を通じてモーションキャプチャを低コスト化することが課題であった。これに対して、本実施形態に係るモーションキャプチャは、複数台のカメラ映像から屋内、屋外、服装を問わずマーカレスでモーションキャプチャを行うことを可能とするものであり、ビデオカメラ以外の特別なデバイスを必要としない。
【００９０】
また、データの取得から運動の３次元再構成と運動解析までの計算を可能な限り、リアルタイムで実施できるようにすることも課題であった。これらを解決することによって、計測する運動の時間の長さに依存しない（例えば、サッカーの試合時間のように長時間であっても、運動終了時には解析が完了するというように）システムを構成することができれば、だれもがモーションキャプチャ技術者や専門のトレーナを介さずに運動解析を利用することができるようになる。これに対して、本実施形態に係るモーションキャプチャは、屋内、屋外、着ている服装を問わずマーカレスで、ビデオ映像だけからのリアルタイムの運動解析を可能とする。これによって、従来のマーカを取り付けて行うモーションキャプチャでは、時間と手間がかかって行えなかった大人数の運動計測が可能となり、運動データのビッグデータ化を推進することもできる。また、本実施形態に係るモーションキャプチャは、ビデオ映像をアップロードするだけで動作解析結果を返信するサービスとして実施することができる。また、本ビデオモーションキャプチャ技術を用いて、ヒートマップ取得部作成に必要な学習データ（入力画像と特徴点位置が記述されたファイル）を新たに作成することも可能となる。
【００９１】
本モーションキャプチャシステムは、スポーツ（運動解析、コーチング、戦術提案、競技の自動採点、トレーニングの詳細ログ）、スマートライフ（一般の健康生活、高齢者の見守り、不審行動の発見）、エンターテイメント（ライブパフォーマンス、ＣＧ作成、仮想現実ゲームや拡張現実ゲーム）、介護、医療等の多岐にわたる分野において利用可能である。
【図１】
2020042476.tif 000010
【図２】
2020042476.tif 000011
【図３】
2020042476.tif 000012
【図４】
2020042476.tif 000013
【図５】
2020042476.tif 000014
【図６】
2020042476.tif 000015
【図７】
2020042476.tif 000016
【図８】
2020042476.tif 000017
【図９】
2020042476.tif 000018
【図１０】
2020042476.tif 000019
【図１１】
2020042476.tif 000020