IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 国立大学法人 東京大学の特許一覧

特許7209333関節位置の取得方法及び装置、動作の取得方法及び装置
<>
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図1
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図2
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図3
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図4
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図5
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図6
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図7
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図8
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図9
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図10
  • 特許-関節位置の取得方法及び装置、動作の取得方法及び装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-12
(45)【発行日】2023-01-20
(54)【発明の名称】関節位置の取得方法及び装置、動作の取得方法及び装置
(51)【国際特許分類】
   G06T 7/60 20170101AFI20230113BHJP
   G06T 7/00 20170101ALI20230113BHJP
【FI】
G06T7/60 150D
G06T7/00 660B
【請求項の数】 25
(21)【出願番号】P 2018168597
(22)【出願日】2018-09-10
(65)【公開番号】P2020042476
(43)【公開日】2020-03-19
【審査請求日】2021-08-12
【新規性喪失の例外の表示】特許法第30条第2項適用 平成30年5月15日 東京大学 本郷キャンパス 工学部2号館3階31B会議室にて、公開で記者会見を行い、発表
(73)【特許権者】
【識別番号】504137912
【氏名又は名称】国立大学法人 東京大学
(74)【代理人】
【識別番号】100103137
【弁理士】
【氏名又は名称】稲葉 滋
(74)【代理人】
【識別番号】100145838
【弁理士】
【氏名又は名称】畑添 隆人
(72)【発明者】
【氏名】中村 仁彦
(72)【発明者】
【氏名】高野 渉
(72)【発明者】
【氏名】池上 洋介
(72)【発明者】
【氏名】大橋 拓也
(72)【発明者】
【氏名】山本 和輝
(72)【発明者】
【氏名】武本 健太郎
【審査官】笠田 和宏
(56)【参考文献】
【文献】特開2007-333690(JP,A)
【文献】山本和輝,外5名,高次情報モーメントを用いた逆運動学によるビデオモーションキャプチャ,ロボティクスメカトロニクス講演会2018講演会論文集,1P1-E08,2018年06月01日,p. 1-4
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/60
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
多関節構造を備えた対象は、複数の関節を含む身体上の複数の特徴点を備え、隣接する特徴点間の距離が定数として得られており、
1枚あるいは同時刻で撮影された複数枚の入力画像から各特徴点の位置の確からしさの尤度の空間分布を取得し、
前記尤度の空間分布を用いて、各特徴点に対応する1つあるいは複数の特徴点の位置候補を取得し、
前記特徴点の位置候補と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得し、
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、
関節位置の取得方法。
【請求項2】
前記特徴点の位置候補の取得は、1つあるいは複数の過去のフレームで取得された1つあるいは複数の特徴点の位置に基づいて決定された探索範囲において、前記尤度の空間分布を用いて、各関節位置の1つあるいは複数の特徴点位置候補を取得するものである、請求項1に記載の関節位置の取得方法。
【請求項3】
前記特徴点の位置候補の取得は、フレームtで取得されている各特徴点の位置の近傍空間を探索範囲として、フレームt+1で取得された尤度の空間分布を用いて、フレームt+1における各関節位置の1つあるいは複数の特徴点位置候補を取得するものである、請求項1、2いずれか1項に記載の関節位置の取得方法。
【請求項4】
前記特徴点の位置候補の取得における特徴点位置候補の探索範囲は、フレームtで取得されている各特徴点の位置に加えて、あるいは、代えて、フレームtよりも前の1つあるいは複数のフレーム、あるいは/および、フレームt+2以降の1つあるいは複数のフレームで取得されている特徴点の位置の近傍空間である、請求項3に記載の方法。
【請求項5】
前記探索範囲は、前記特徴点の位置を中心として所定間隔で3次元状に分布する所定数の点群である、請求項2~4いずれか1項に記載の方法。
【請求項6】
前記逆運動学に基づく最適化計算において、前記尤度の空間分布が用いられる、請求項1~5いずれか1項に記載の方法。
【請求項7】
前記特徴点の位置を、他の複数のフレームで取得された複数の特徴点の位置を用いて時間方向に平滑化し、
平滑化された特徴点の位置と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得する、
請求項1~6いずれか1項に記載の方法。
【請求項8】
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、請求項7に記載の方法。
【請求項9】
前記入力画像よりも以前のフレームから取得された情報に基づく前処理ステップを備え、
前記前処理ステップは、
(a)入力画像の回転、
(b)入力画像のトリミングあるいは/および縮小、
(c)入力画像のマスキング、
(d)カメラの選択による入力画像の選択、
(e)入力画像のスティッチング、
の少なくとも1つの処理を含む、
請求項1~8いずれか1項に記載の方法。
【請求項10】
前記前処理は、入力画像の回転を含み、
前記入力画像よりも以前のフレームにおける対象の身体の正立ポーズに対する傾きを取得すること、
前記傾きに応じて入力画像を回転させて正立姿勢ないし正立に近い姿勢とすること、
回転した画像に基づいて前記尤度の空間分布を取得すること、
前記尤度の空間分布が取得された画像を回転させて元画像に戻すこと、
を含む、請求項9に記載の方法。
【請求項11】
請求項1~10いずれか1項に記載の関節位置の取得方法を用いて、
各フレームにおいて前記関節角及び前記関節位置の取得を行うことで、対象の関節角及び関節位置の時系列データを取得する、
動作の取得方法。
【請求項12】
関節位置の取得装置は、記憶部と処理部とを備え、
前記記憶部には、複数の関節を含む身体上の複数の特徴点を備えた対象の多関節構造を規定するファイルと、隣接する特徴点間の距離が定数として格納されており、
前記処理部は、
1枚あるいは同時刻で撮影された複数枚の入力画像から各特徴点の位置の確からしさの尤度の空間分布を取得し、
前記尤度の空間分布を用いて、各特徴点に対応する1つあるいは複数の特徴点の位置候補を取得し、
前記特徴点の位置候補と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得し、
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、
ように構成されている、
関節位置の取得装置。
【請求項13】
前記記憶部には、取得された特徴点の位置の時系列データが格納されており、
前記処理部は、1つあるいは複数の過去のフレームで取得された1つあるいは複数の特徴点の位置に基づいて決定された探索範囲において、前記尤度の空間分布を用いて、各関節位置の1つあるいは複数の特徴点位置候補を取得する、請求項12に記載の関節位置の取得装置。
【請求項14】
前記記憶部には、取得された特徴点の位置の時系列データが格納されており、
前記処理部は、フレームtで取得されている各特徴点の位置の近傍空間を探索範囲として、フレームt+1で取得された尤度の空間分布を用いて、フレームt+1における各関節位置の1つあるいは複数の特徴点位置候補を取得する、請求項12、13いずれか1項に記載の関節位置の取得装置。
【請求項15】
前記処理部は、
フレームtで取得されている各特徴点の位置に加えて、あるいは、代えて、フレームtよりも前の1つあるいは複数のフレーム、あるいは/および、フレームt+2以降の1つあるいは複数のフレームで取得されている特徴点の位置の近傍空間を探索範囲として、前記特徴点の位置候補を取得する、請求項14に記載の装置。
【請求項16】
前記探索範囲は、前記特徴点の位置を中心として所定間隔で3次元状に分布する所定数の点群である、請求項13~15いずれか1項に記載の装置。
【請求項17】
前記逆運動学に基づく最適化計算において、前記尤度の空間分布が用いられる、請求項12~16いずれか1項に記載の装置。
【請求項18】
前記処理部は、
前記特徴点の位置を、他の複数のフレームで取得された複数の特徴点の位置を用いて時間方向に平滑化し、
平滑化された特徴点の位置と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得する、
ように構成されている、
請求項12~17いずれか1項に記載の装置。
【請求項19】
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、請求項18に記載の装置。
【請求項20】
前記処理部は、
前記入力画像よりも以前のフレームから取得された情報に基づく前処理を実行し、
前記前処理は、
(a)入力画像の回転、
(b)入力画像のトリミングあるいは/および縮小、
(c)入力画像のマスキング、
(d)カメラの選択による入力画像の選択、
(e)入力画像のスティッチング、
の少なくとも1つの処理を含む、
請求項12~19いずれか1項に記載の装置。
【請求項21】
前記前処理は、入力画像の回転を含み、
前記処理部は、
前記入力画像よりも以前のフレームにおける対象の身体の正立ポーズに対する傾きを取得し、
前記傾きに応じて入力画像を回転させて正立姿勢ないし正立に近い姿勢とし、
回転した画像に基づいて前記尤度の空間分布を取得し、
前記尤度の空間分布が取得された画像を回転させて元画像に戻すように構成されている、請求項20に記載の装置。
【請求項22】
前記装置は、さらに、前記入力画像を取得する1つあるいは複数のカメラを備え、
前記処理部は、前記カメラから前記入力画像を受信する、
請求項12~21いずれか1項に記載の装置。
【請求項23】
前記1つあるいは複数のカメラは、少なくとも1つの可動カメラを備え、
前記処理部は、毎フレームで前記可動カメラのキャリブレーションを実行する、
請求項22に記載の装置。
【請求項24】
請求項12~23いずれか1項に記載の関節位置の取得装置を備え、
各フレームにおいて前記関節角及び前記関節位置の取得を行うことで、対象の関節角及び関節位置の時系列データを取得する、
動作の取得装置。
【請求項25】
コンピュータを、請求項12~24いずれか1項に記載の記憶部、処理部として機能させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モーションキャプチャに係り、詳しくは、対象の関節位置の取得、対象のポーズ取得、対象の動作の取得及び分析に関するものである。
【背景技術】
【0002】
モ―ションキャプチャは人間の動作の取得や解析に不可欠な技術であり、スポーツ、医療、ロボティクス、コンピュータグラフィックス、コンピュータアニメーション等の分野で広く用いられている。モーションキャプチャの方式としては、光学式モーションキャプチャが良く知られている。光学式モーションキャプチャは、再帰性反射材が塗布された複数の光学式マーカを対象の身体に取り付け、赤外線カメラなどの複数のカメラで対象の動作を撮影することで、光学式マーカの移動軌跡から対象の動作を取得する。
【0003】
他のモーションキャプチャ方式として、加速度センサやジャイロスコープ、地磁気センサなどのいわゆる慣性センサを対象の身体に装着して、対象のモーションデータを取得することも知られている。
【0004】
上記光学方式や慣性センサを用いた方式は、高精度のモーションデータを取得することができるが、対象の身体に複数のマーカや複数のセンサを装着する必要があるため、動作計測の準備に時間や人手がかかる、対象の動きが制限されて、自然な動きを妨げるおそれがある、という欠点がある。また、システムやデバイスが高額であることから、広く一般に利用できる技術になっていないという課題がある。光学式モーションキャプチャでは計測場所が限定されてしまうため、屋外や広い空間における動作のモーションデータを取得することが困難である、という欠点がある。
【0005】
光学式マーカやセンサを装着しない、いわゆるマーカレスモーションキャプチャも知られている。カメラと深度センサを用いたモーションキャプチャとして、非特許文献1~5を例示することができる。しかし、これらの手法は深度データを取得するレーザの時間・空間分解能性能が低いため、屋外や遠方、高速移動する対象の計測を行うことが困難である。
【0006】
深層学習により画像認識の手法と精度が飛躍的に向上したことにより、1視点からのRGB画像を解析してモーションデータを取得するビデオモーションキャプチャも提案されている(非特許文献6~11)。この手法は、屋外・遠方といった条件下でも利用可能で、カメラの性能を選択することで比較的低コストで時間・空間分解能を高くすることができる。しかし、1視点の計測ではオクルージョンによって対象のポーズ推定が困難になる場合が多く、精度に関しては複数台のカメラを用いる光学式モーションキャプチャに及ばない。
【0007】
深層学習によって、単一のビデオ画像から人間の姿を見つけ関節位置の確からしさの尤度の空間分布を表すヒートマップを生成する研究も行われている。1つの代表的な研究がOpenPose(非特許文献12)である。OpenPoseでは1枚のRGB 画像から手首や肩といった複数人の特徴点(keypoints)の推定をリアルタイムに行うことができる。これはWeiらによる、CNNを用いて1枚のRGB 画像から各関節のPart Confidence Maps(PCM)を生成して各関節の位置を推定する研究(非特許文献13)、CaoらによるPart Affinity Fields(PAF)という隣接する関節の方向を表すベクトル場を計算して、上記手法を複数人に対してもリアルタイムで関節位置の推定を行うように拡張を行った研究(非特許文献14)、に基づいて開発されたものである。また、各関節位置の確からしさを表す尤度の空間分布であるヒートマップ(OpenPoseにおけるPCM)を取得する手法としては様々な手法が提案されており、入力画像から人間の関節位置を推定する手法の精度を競うコンテストも開催されている(非特許文献15)。
【0008】
しかしながら、ヒートマップ情報を用いて関節位置の3次元再構成を行う手法であって、光学式モーションキャプチャのように高い精度で動作計測を行う技術は実現されてない。
【先行技術文献】
【非特許文献】
【0009】
【文献】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.
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明は、屋内、屋外、服装を問わずマーカレスで、精度の高い動作計測を行うことを目的とするものである。
【課題を解決するための手段】
【0011】
本発明が採用した技術手段は、
多関節構造を備えた対象は、複数の関節を含む身体上の複数の特徴点を備え、隣接する特徴点間の距離が定数として得られており、
1枚あるいは同時刻で撮影された複数枚の入力画像から各特徴点の位置の確からしさの尤度の空間分布を取得し、
前記尤度の空間分布を用いて、各特徴点に対応する1つあるいは複数の特徴点の位置候補を取得し、
前記特徴点の位置候補と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得し、
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、
関節位置の取得方法、である。
【0012】
1つの態様では、前記特徴点の位置候補の取得は、フレームtで取得されている各特徴点の位置の近傍空間を探索範囲として、フレームt+1で取得された尤度の空間分布を用いて、フレームt+1における各関節位置の1つあるいは複数の特徴点位置候補を取得するものである。
1つの態様では、前記特徴点の位置候補の取得における特徴点位置候補の探索範囲は、フレームtで取得されている各特徴点の位置に加えて、あるいは、代えて、フレームtよりも前の1つあるいは複数のフレーム、あるいは/および、フレームt+2以降の1つあるいは複数のフレームで取得されている特徴点の位置の近傍空間である。
1つの態様では、前記探索範囲は、前記特徴点の位置を中心として所定間隔で3次元状に分布する所定数の点群である。
【0013】
1つの態様では、前記逆運動学に基づく最適化計算において、前記尤度の空間分布が用いられる。
【0014】
1つの態様では、前記特徴点の位置を、他の複数のフレームで取得された複数の特徴点の位置を用いて時間方向に平滑化し、
平滑化された特徴点の位置と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得する。
1つの態様では、前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する。
【0015】
1つの態様では、前記入力画像よりも以前のフレームから取得された情報に基づく前処理ステップを備え、
前記前処理ステップは、
(a)入力画像の回転、
(b)入力画像のトリミングあるいは/および縮小、
(c)入力画像のマスキング、
(d)カメラの選択による入力画像の選択、
(e)入力画像のスティッチング、
の少なくとも1つの処理を含む。
1つの態様では、
前記前処理は、入力画像の回転を含み、
前記入力画像よりも以前のフレームにおける対象の身体の正立ポーズに対する傾きを取得すること、
前記傾きに応じて入力画像を回転させて正立姿勢ないし正立に近い姿勢とすること、
回転した画像に基づいて前記尤度の空間分布を取得すること、
前記尤度の空間分布が取得された画像を回転させて元画像に戻すこと、
を含む、
【0016】
本発明は、上記関節位置の取得方法を用いて、各フレームにおいて前記関節角及び前記関節位置の取得を行うことで、対象の関節角及び関節位置の時系列データを取得する、動作の取得方法として提供される。
【0017】
本発明が採用した関節位置の取得装置は、記憶部と処理部とを備え、
前記記憶部には、複数の関節を含む身体上の複数の特徴点を備えた多関節構造を規定するファイルと、隣接する特徴点間の距離が定数として格納されており、
前記処理部は、
1枚あるいは同時刻で撮影された複数枚の入力画像から各特徴点の位置の確からしさの尤度の空間分布を取得し、
前記尤度の空間分布を用いて、各特徴点に対応する1つあるいは複数の特徴点の位置候補を取得し、
前記特徴点の位置候補と前記対象の多関節構造を用いた逆運動学に基づく最適化計算を行うことで、前記対象の各関節角を取得し、
前記関節角を用いて順運動学計算を行うことで、前記対象の関節を含む特徴点の位置を取得する、
ように構成されている。
本発明は、また、上記関節位置の取得装置を備え、各フレームにおいて前記関節角及び前記関節位置の取得を行うことで、対象の関節角及び関節位置の時系列データを取得する、動作の取得装置として提供される。
本発明は、また、コンピュータを、上記装置の記憶部、処理部として機能させるコンピュータプログラム、あるいは、当該コンピュータプログラムを記憶したコンピュータ可読媒体として提供される。
【発明の効果】
【0018】
本発明は、カメラ映像から屋内、屋外、服装を問わずマーカレスで、モーションキャプチャを行うことを可能とする。カメラ映像から深層学習を用いて推定した関節位置から、対象の多関節構造(例えば骨格構造)と運動の連続性を考慮して3次元再構成を行うことで、従来の光学式モーションキャプチャに近い滑らかな運動計測を行うことを可能とする。
【図面の簡単な説明】
【0019】
図1】モーションキャプチャシステムの全体図である。
図2】モーションキャプチャシステムのハードウェア構成を示す概略図である。
図3】入力画像の処理工程を示すフローチャートである。
図4】カメラキャリブレーション、骨格モデルの初期姿勢・関節間距離の取得の処理工程を示すフローチャートである。
図5】関節位置候補取得部の処理工程を示すフローチャートである。
図6】関節位置取得部(異なる格子間隔を用いる場合)の処理の工程を示すフローチャートである。
図7】関節位置候補取得部の他の処理工程を示すフローチャートである。
図8】入力画像を回転させてPCMを取得する工程を示すフローチャートである。
図9】モーションキャプチャを用いた動作分析の工程を示すフローチャートである。
図10】左図は本実施形態に係る骨格モデルを示し、右図はOpenPoseの特徴点を示す。
図11】探索範囲である点群を例示する図である。
【発明を実施するための形態】
【0020】
[A]本実施形態に係るモーションキャプチャシステムの全体構成
図1に示すように、本実施形態に係るモーションキャプチャシステムは、対象の動作を取得する動画取得部と、動画取得部で取得された画像に基づいて、関節位置を含む特徴点(Keypoints)の位置の確からしさの程度を色強度で表示するヒートマップ情報を取得するヒートマップ取得部と、ヒートマップ取得部で取得されたヒートマップ情報を用いて対象の関節位置を取得する関節位置取得部と、関節位置取得部で取得された関節位置を平滑化する平滑化処理部と、対象の身体の骨格構造、動画取得部で取得された画像の時系列データ、関節位置取得部で取得された関節位置の時系列データ等を記憶する記憶部と、動画取得部で取得された対象の画像や対象のポーズに対応する骨格構造等を表示するディスプレイと、を備えている。対象の身体上の特徴点は主として関節であるため、本明細書及び図面において、特徴点を代表して「関節」という文言を用いており、「関節」についての説明は、関節以外の特徴点にも適用される点に留意されたい。
【0021】
本実施形態に係るモーションキャプチャシステムのハードウェアは、前記動画取得部を構成する複数のカメラと、カメラ画像を取得する1つあるいは複数のローカルコンピュータと、それらとネットワークで繋がった1つあるいは複数のコンピュータと、1つあるいは複数のディスプレイとからなる。1つの実施形態では、1つのカメラに1つのローカルコンピュータを対応させてカメラ画像を取得し、同時にヒートマップ取得部を構成し、その後、前記関節位置取得部、前記平滑化処理部、前記記憶部をネットワークで繋がった1つあるいは複数のコンピュータで構成する。また、別の実施形態では、カメラと繋がったローカルコンピュータが画像を必要に応じて圧縮して、ネットワークで送信し、繋がったコンピュータで、ヒートマップ取得部、前記関節位置取得部、前記平滑化処理部、前記記憶部を構成する。構成される。各コンピュータは、入力部、処理部、記憶部(RAM、ROM)、出力部を備えている。
【0022】
各カメラは同期しており、同時刻で取得された各カメラ画像は対応するヒートマップ取得部に送信され、ヒートマップ取得部によってヒートマップが生成される。
ヒートマップは、身体上の特徴点の位置の確からしさの尤度の空間分布を表す。生成されたヒートマップ情報は関節位置取得部に送信され、関節位置取得部によって関節位置が取得される。取得された関節位置データは、関節位置の時系列データとして記憶部に格納される。取得された関節位置データは、平滑化処理部に送信され、平滑化関節位置、関節角が取得される。平滑化された関節位置ないし関節角、及び、対象の身体の骨格構造によって対象のポーズが決定され、ポーズの時系列データからなる対象の動作をディスプレイに表示する。
【0023】
動画取得部は、複数のカメラからなり、例えば、外部同期信号発生器を用いて同期されている。なお、複数のカメラ画像を同期させる手法は限定されない。複数のカメラは対象を囲むように配置され、全部あるいは一部のカメラによって同時に対象を撮影することで対象の複視点動画を取得する。各カメラからは、例えば、60fps、1024×768のRGB画像が取得され、RGB画像がヒートマップ取得部にリアルタイム、あるいは、非リアルタイムで送信される。動画取得部で取得された画像データをネットワークを介してヒートマップ取得部に送信する場合には、画像内容や用途によっては、圧縮あるいは暗号化を行ってもよい。画像の時系列データを記憶部に記録してもよい。画像の時系列データは、動画としてリアルタイムあるいは非リアルタイムでディスプレイに表示してもよい。
【0024】
本実施形態では、動画取得部は複数のカメラから構成され、同時刻で取得された複数枚のカメラ画像がヒートマップ取得部に送信される。ヒートマップ取得部は、動画取得部から入力された画像に基づいてヒートマップを生成する。なお、動画取得部は1台のカメラから構成してもよい。動画取得部を1台のカメラから構成する場合には、例えば、この1台のカメラは、奥行情報を備えたカメラ画像を出力する。ヒートマップ取得部が、1枚の奥行情報を備えたカメラ画像からヒートマップを生成する場合には、前記1枚の画像について、身体上の特徴点の3次元的な存在位置の確からしさが学習されている畳み込みニューラルネットワーク(CNN)等を用いてヒートマップを生成する。1枚の入力画像から人間の3次元ポーズを生成する研究も行われており(非特許文献9)、例えば、この研究を利用して、1台のカメラで生成された1枚のカメラ画像からヒートマップを生成してもよい。本実施形態では、動画取得部を構成するカメラは固定カメラであるが、可動カメラであってもよい。可動カメラを用いる場合には、毎フレームで、SLAM(Simultaneous Localization and Mapping)などの方法により、カメラのキャリブレーションを並行して実行する。可動カメラの態様としては、回転、直動、2次元ないし3次元上の任意の運動(ドローンなどを用いた飛行を含む)が例示される。
【0025】
1枚の画像に含まれる対象の数は限定されない。1つの態様では、カメラによって複数人の人間の動作を撮影することで、各画像には、複数の人間が含まれており、各画像において、前記複数の人間から選択された1人あるいは任意数の複数の人間の関節位置を取得する。1枚の画像に複数人が含まれている場合に、例えば、PAFとPCMを用いれば、各人毎に関節位置を同時に取得することができる。また、計測初期時に各人毎に関節位置を識別すれば、その後はフレーム間の連続性で関節位置を追跡することで、各人を識別することができる。
【0026】
モーションキャプチャシステムによる動作取得において、対象はリンク構造ないし多関節構造を備えている。典型的には対象は人間であり、前記多関節構造は身体の骨格構造である。ヒートマップ取得部で用いる学習データを対象に合わせて用意する必要があるが、人間以外の対象(例えば、人間以外の動物やロボット)にも適用し得る。また、対象は、例えば人間の全身に限定されるものではなく、身体の部分であってもよい。
【0027】
記憶部には、計測データや処理データが格納される。例えば、動画取得部によって取得された画像の時系列データ、関節位置取得部によって取得された関節位置データ、関節角度データが格納される。記憶部には、さらに、平滑化処理部によって取得された平滑化関節位置データ、平滑化関節角度データ、ヒートマップ取得部により生成されたヒートマップデータ、その他処理過程で生成されたデータを格納してもよい。
【0028】
記憶部には、さらに、対象の身体の骨格構造を決定するデータが格納されている。このデータには、身体の骨格モデルを規定するファイル、対象の隣接する関節間距離データが含まれる。多関節体である骨格モデルの各関節の位置から、関節角度や対象のポーズが決定される。本実施形態で用いた骨格モデルを図10左図に示す。図10左図に示す骨格モデルは40自由度であるが、この骨格モデルは例示である。後述するように、対象の隣接する関節間の距離を表す定数は、モーションキャプチャの初期設定時に取得することができる。対象の各関節間距離は他の手法で予め取得してもよく、あるいは、既に取得されている関節間距離を用いてもよい。本実施形態では、対象の身体の骨格構造データを用いることで、関節位置の算出において、隣接する関節間距離が時間的に不変という骨格構造特有の拘束条件を与えることができる。
【0029】
ディスプレイには、動画取得部によって取得された対象の動画、モーションキャプチャによって取得された対象のポーズを表す時系列骨格画像などが表示される。例えば、コンピュータの処理部において、対象固有の骨格構造、算出された関節角及び関節位置の時系列データを用いて、フレーム毎に骨格画像(対象のポーズ)データが生成され、骨格画像データを所定のフレームレートで出力して動画としてディスプレイに表示する。図2では、典型的な出力装置として、ディスプレイを示したが、出力装置は、ディスプレイに限定されず、他のデバイス(例えば、分析用のコンピュータ)であってもよい。
【0030】
[B]ヒートマップ取得部
ヒートマップ取得部は、入力画像に基づいて、各関節位置を含む身体上の特徴点(keypoints)の位置の確からしさの尤度の2次元あるいは3次元の空間分布を生成し、前記尤度の空間分布をヒートマップ形式で表示する。ヒートマップは、空間に広がって変化する値を温度分布のように色強度で空間上に表示すものであり、尤度の可視化を可能とする。尤度の値は例えば0~1であるが、尤度の値のスケールは任意である。本実施形態において、ヒートマップ取得部は、各関節を含む身体上の特徴点の位置の確からしさの尤度の空間分布、すなわち、ヒートマップ情報(画像の各ピクセルが尤度を表す値を保持している)が取得されていればよく、必ずしも、ヒートマップを表示することを要しない。
【0031】
ヒートマップ取得部は、典型的には、畳み込みニューラルネットワーク(CNN)を用いて、入力された単一の画像から対象の身体上の特徴点の位置(典型的には関節位置)を、ヒートマップとして推定する。畳み込みニューラルネットワーク(CNN)は入力層、中間層(隠れ層)、出力層を備え、中間層は、特徴点の画像上への2次元写像の存在位置の教師データを用いた深層学習によって構築されている。
【0032】
本実施形態では、ヒートマップ取得部で取得された尤度は、2次元の画像上の各ピクセルに与えられており、複数視点からのヒートマップ情報を総合して特徴点の3次元的な存在位置の確からしさの情報を得ることができる。ヒートマップ取得部で取得された尤度は、2次元空間の各点(x,y)が、3次元座標(X, Y, Z)を用いて、2次元情報を割り当てた場合には尤度λ=λ(x, y, fx(X,Y,Z), fy(X,Y,Z))を持ち、3次元情報を割り当てた場合には尤度λ=λ(x, y, X, Y, Z)を持つ。
【0033】
ヒートマップ取得部として、オープンソフトウェアであるOpenPose(非特許文献12)を用いることができる。OpenPoseでは、身体上の18個の特徴点(keypoints)が設定されている(図10右図参照)。具体的には、18個の特徴点は、13個の関節と、鼻、左右の目、左右の耳からなる。OpenPoseは、訓練された畳み込みニューラルネットワーク(CNN)を用いることで、1枚のRGB 画像から18個の身体上の各特徴点(keypoints)のPart Confidence Maps(PCM)をオフラインあるいはリアルタイムで生成し、ヒートマップ形式で表示する。本明細書において、身体上の特徴点の位置の確からしさの尤度の空間分布ないしヒートマップについて、PCMという文言を用いる場合があるが、各関節位置を含む身体上の特徴点の位置の確からしさの尤度の空間分布を表す指標をPCMに限定するものでない点に留意されたい。
【0034】
同期する複数のカメラから取得した各RGB画像に対し、OpenPoseによって18個の特徴点のPart Condence Maps(PCM)が生成される。本実施形態では、各カメラに対してヒートマップを生成する1台のローカルコンピュータを用意し、ヒートマップの生成を並列計算で実行する。カメラ数が増えた場合であっても、並列計算により計算量の増加を抑えることができる。ヒートマップデータはヒートマップ取得部から関節位置取得部(コンピュータ)へネットワークを介して送信される。ヒートマップデータの送信に際しては、ヒートマップデータを必要に応じて圧縮あるいは暗号化してもよい。ヒートマップデータはスパースな画像であるため、生成されたヒートマップデータを効率良く圧縮することができる。また、ヒートマップデータには、個人を識別可能な情報を含まないため、ヒートマップ生成までの計算をカメラに直結されたローカルコンピュータで行えば、個人情報を含まないヒートマップデータのみをネットワークで送信することができ、セキュリティ上も安全である。
【0035】
ヒートマップ取得部には、OpenPose以外の他の手法を用いることができる。対象の身体上の特徴点の位置の確からしさを表すヒートマップを取得する手法としては様々な手法が提案されている。例えば、COCO Keypoints challenge(非特許文献15)で上位入賞した手法を採用することもできる。また、独自にヒートマップ取得部のための学習器を作成して、畳み込みニューラルネットワーク(CNN)を構築してもよい。
【0036】
[C]本実施形態に係るモーションキャプチャシステムの初期設定
図3を参照しつつ、本実施形態に係るモーションキャプチャシステムにおける、カメラのキャリブレーション、骨格モデルの初期姿勢の取得、対象の関節間距離の取得について説明する。
【0037】
[C-1]カメラキャリブレーション
キャリブレーション画像からカメラの内部パラメータ、外部パラメータを取得し、これらのカメラパラメータから入力画像の歪曲収差の補正を行う。カメラのキャリブレーションは当業者に周知なので、詳細な説明は省略する。内部パラメータや外部パラメータ等のカメラパラメータはシステムの記憶部に格納される。
【0038】
焦点距離、光学中心、画像中心(光軸と投影面の交点)、カメラの内部パラメータ、外部パラメータなどを用いることで、任意の三次元上の点をカメラi の撮影面のピクセル位置に変換する関数(行列)Pi の導出を行う。関数Piは記憶部に格納される。なお、可動カメラを用いる場合には、毎フレームで、SLAM(Simultaneous Localization and Mapping)などの方法により、カメラのキャリブレーションを並行して実行し、毎フレームで上記関数(行列)Pi を取得する。キャリブレーションで取得したカメラパラメータや上記関数(行列)Pi は記憶部に格納される。
【0039】
[C-2]骨格モデルとヒートマップが生成される身体上の特徴点との対応
骨格モデルの各関節(図10左図)と、ヒートマップ取得部における身体の特徴点(図10右図、a,o,p,q,rを除く)とを対応させる。対応関係を表1に示す。
【表1】
本実施形態に係る骨格モデルの関節と、OpenPoseにおける18個の特徴点は完全に一致してはいない。例えば、骨格モデルのpelvis(base body)、 waist、 chest、 right clavicle、left clavicle、Headに対応する特徴点は、OpenPoseには存在しない。なお、本実施形態に係る骨格モデルにおける関節、OpenPoseにおける18個の特徴点は、共に、身体上の特徴点の代表的な特徴点であって、可能性のある全ての特徴点を網羅しているものではない。例えば、さらに詳細な特徴点を設定してもよい。あるいは、全ての身体上の特徴点が関節であってもよい。OpenPoseの18個の特徴点だけでは決まらない関節角度については、可動範囲などの制約を考慮した最適化の結果として決定される。なお、骨格モデルの関節と、尤度の空間分布が取得される特徴点と、が初めから対応している場合には、この対応づけは不要である。
【0040】
[C-3]骨格モデルの初期姿勢・関節間距離の取得
対象の動作計測の始点となる初期姿勢を取得する。本実施形態では、関節間距離・初期姿勢の推定を、歪曲収差補正後画像に対し、OpenPoseを適用することで算出された特徴点のピクセル位置から求める。先ず、各カメラで取得された初期画像に基づいて、初期ヒートマップが取得される。本実施形態では、カメラの光学中心と、OpenPoseから算出した各特徴点の初期ヒートマップの重心のピクセル位置とを結ぶ光線を各カメラから考え、2台のカメラの光線の共通垂線の長さが最小になる2台を決定し、その共通垂線の長さが所定の閾値(例えば20mm)以下のとき、その共通垂線の2つの足の中点を3次元上の特徴点の位置とするよう求め、これを用いて骨格モデルの関節間距離・初期姿勢の取得を行う。
【0041】
特徴点の初期位置の推定手法については、当業者において様々な手法が採り得る。例えば、各カメラ画像上の対応する点の位置と、カメラパラメータを用いて、DLT(Direct Linear Transformation)法により、3次元空間上の特徴点の初期位置を推定することができる。DLT法を用いた三次元再構成は当業者に知られているので、詳細な説明は省略する。
【0042】
逆運動学に基づく最適化計算には隣接する特徴点間の距離(関節間距離)の定数、すなわちリンク長が必要となるが、リンク長は対象毎に異なるため、対象毎に骨格モデルのリンク長を算出する。本実施形態に係るモーションキャプチャの精度を向上させるためには、対象毎にスケーリングを行うことが望ましい。骨格モデルは、人間の標準的な骨格構造のモデルであり、これを全身で、あるいは部位ごとにスケーリングして、対象の体型に適合した骨格モデルを生成する。
【0043】
本実施形態では、得られた初期姿勢を基にして骨格モデルの各リンク長の更新を行う。骨格モデルの初期リンク長に対し、リンク長更新に用いるスケーリングパラメータを各特徴点の位置より、図10、表1の対応を基にして算出する。図10の左図におけるリンク長のうち、1-2、2-3、3-4、3-6、3-10、6-7、10-11、のそれぞれのリンク長については、対応する特徴点が存在しないためスケールパラメータが同様の方法では決まらない。このため、その他のリンク長のスケールパラメータを用いて長さを決定する。なお、本実施形態では、人体骨格は基本的に左右対称な長さとなるため、各スケーリングパラメータは左右均等になるよう左右の平均から求めており、また骨格モデルの初期リンク長は左右均等である。Neck-Head 間のスケーリングパラメータの算出については、両耳の特徴点位置の中点を頭関節の存在する場所としてスケーリングパラメータの算出を行う。取得したスケーリングパラメータを用いて、骨格モデルの各リンク長の更新を行う。鼻・目・耳の位置を算出については、表2に示すような対応関係をもとにして各仮想関節(鼻、目、耳)の位置を算出する。
【表2】
なお、リンク長は他の手法で取得してもよいし、予め取得したものを用いてもよい。あるいは、対象者に固有の骨格モデルが得られている場合には、それを用いてもよい。
【0044】
[D]関節位置取得部
関節位置取得部は、ヒートマップ取得部から取得されたヒートマップ情報を用いて関節位置候補を推定し、当該関節位置候補を用いて逆運動学に基づく最適化計算を実行することで骨格モデルの関節角、関節位置を更新する点に特徴を備えている。関節位置取得部は、ヒートマップデータに基づいて関節位置候補を推定する関節位置候補取得部と、関節位置候補を用いて逆運動学に基づく最適化計算を実行して関節角を算出する逆運動学計算部と、算出された関節角を用いて順運動学計算を実行して関節位置を算出する順運動学計算部と、を備えている。
【0045】
本実施形態に係る関節位置候補取得部では、前フレーム(フレームt)の関節位置データを用いて現フレーム(フレームt+1)の関節位置、関節角の計算を行う。フレームtの関節位置から、フレームt+1の関節角度・関節位置を取得する処理をt=Tとなるまで繰り返すことで全Tフレームのビデオモーションキャプチャを行う。
【0046】
1フレームにおける関節位置の変化は微小であるため、フレームtにおける関節nの関節位置の3次元座標をtn、フレームt+1における関節位置をt+1nとすると、t+1ntn近傍に存在すると考えられる。そこで、tnを中心に広がった間隔sの(2k+1)個の格子点(kは正の整数)を考え、その集合を
【数1】
と表す。例えば、tnを中心とした図11のような間隔sの11×11×11(k=5)の格子状の点を考える。格子点の距離sは画像ピクセルの大きさとは無関係である。
【0047】
フレームtにおける関節位置tnに基づく探索範囲は、例えば、関節位置tnの近傍空間内の点群であり、近傍空間内の総点数(2k+1)及び点の間隔sによって決定される。探索範囲の決め方において、図11では立方体を示したが、探索範囲の形状は限定されず、例えば、球状の範囲で探索を行ってもよい。あるいは、過去フレームの関節位置変化に基づいて、探索範囲を狭めた直方体状や長球としたり、探索範囲の中心点をtnから別の点としたりして探索を行ってもよい。
【0048】
探索範囲(例えば、中心点、パラメータkや、探索幅s)は、当業者において適宜設定され得る。対象の運動の種類に応じて探索範囲を変化させてもよい。また、対象の運動の速度および加速度(例えば、対象のポーズの変化速度)に応じて、探索範囲を変化させてもよい。また、撮影するカメラのフレームレートに応じて探索範囲を変化させてもよい。また、関節の部位ごとに探索範囲を変化させてもよい。
【0049】
tnにおける全ての点は、関数Piを用いて任意のカメラの投影面のピクセル座標に変換することができることに着目する。tnにおける1点tn a,b,cを、カメラiの画像平面のピクセル位置に変換する関数をPi、そのピクセル位置からフレームt+1におけるPCM 値を取得する関数をt+1n とすると、nc個のカメラから算出したPCM 値の和の最大点が、フレームt+1において関節nの最も確からしい存在位置であるとみなすことができ、t+1n pred
【数2】
によって求められる。この計算をnj個(OpenPoseの場合は18個)の関節全てにおいて実行する。
【0050】
そして、フレームt+1の各関節位置t+1nは、関節角t+1Qの関数であることに着目し、式(3)に示すように、逆運動学に基づく最適化計算により関節角t+1Qを算出し、順運動学計算により関節位置t+1nを算出する。
【数3】
なお、逆運動学に基づく最適化計算における各関節の重みt+1nには
【数4】
と規定されるように、各関節の予測位置におけるPCM値の和を用いる。
関節位置取得部でリアルタイムあるいは非リアルタイムで取得された各関節位置は、関節位置の時系列データとして記憶部に格納される。本実施形態では、関節位置取得部でリアルタイムあるいは非リアルタイムで取得された各関節位置は平滑化処理部によって平滑化処理されて、平滑化関節位置が生成される。
【0051】
逆運動学に基づく最適化計算については、例えば、非特許文献17に記載されたアルゴリズムを用いることができる。逆運動学に基づく最適化計算の手法としては幾つかの方法が当業者に知られており、具体的な最適化計算手法は限定されない。1つの好ましい例として、勾配法による数値解法を挙げることができる。また、逆運動学に基づく最適化計算における各関節の重みを規定する式(4)は好ましい1つの態様であり、例示である。例えば、本実施形態では、平滑化処理部において、平滑化後関節位置の重みについては全関節の重みを均一とし、逆運動学に基づく最適化計算を解いている。また、逆運動学に基づく最適化計算を行うにあたり、当業者において適宜拘束条件を与えてもよいことが理解される。
【0052】
上記探索手法では、探索範囲が格子間隔sに依存するため、各格子点と格子点の間に最も高いPCMスコアを持つ点が存在した場合、その点を発見することができない。本実施形態では、式(2)にて最大値となる格子点のみを求めるのではなく、全格子点の中の複数の点を関節位置点群としてPCMスコアが高くなる場所を探索することによって、逆運動学に基づく最適化計算を実行してもよい。前記関節位置点群は、例えば、7点である。7という数値は、式(2)で求める最大点の前後上下左右にも同様に尤度が高い点が存在するという予想から定めた値である。
【0053】
異なる格子間隔sを用いて関節位置を取得してもよい。本実施形態の1つでは、関節位置候補の探索と逆運動学に基づく最適化計算をsの値を20mm、4mmと変えることで2回実行し、フレームtの関節位置からフレームt+1の関節角・位置を取得するという処理をt=Tとなるまで繰り返すことで全Tフレームのビデオモーションキャプチャを行う。これにより、探索速度と探索精度を両立させることが可能となる。図6に、異なる格子間隔を用いた関節位置取得工程を示す。
【0054】
先ず、フレームtにおける関節位置tnに基づく第1探索範囲(関節位置tnの近傍空間内の点の間隔s1)におけるフレームt+1における関節位置候補の探索を行う。間隔s1は、例えば、20mmである。この工程において、フレームt+1における関節位置第1候補を取得する。関節位置第1候補を用いて逆運動学に基づく最適化計算、順運動学計算を実行して、フレームt+1における関節位置第2候補を取得する。
【0055】
次いで、フレームt+1における関節位置第2候補に基づく第2探索範囲(関節位置第2候補の近傍空間内の点の間隔s2、s2<s1)におけるフレームt+1における関節位置候補の探索を行う。間隔s2は、例えば、4mmである。この工程において、フレームt+1における関節位置第3候補を取得する。関節位置第3候補を用いて、逆運動学に基づく最適化計算、順運動学計算を実行して、フレームt+1における関節角、関節位置を取得する。
【0056】
本実施形態では、直前フレームtで取得されている関節位置に基づいて探索範囲を決定しているが、直前フレームtで取得されている関節位置に加えて、あるいは、代えて、フレームtよりも前の1つあるいは複数のフレーム、あるいはフレームt+2以降の1つあるいは複数のフレームで取得されている関節位置を用いてもよい。例えば、関節位置をリアルタイムで取得する場合に、フレームt-1やフレームt-2などの2フレーム以上前のフレームにおける関節位置に基づいて探索範囲を設定してもよい。また、偶数フレームと奇数フレームにおいて並列計算で、別個に特徴点位置探索を行い、交互に出される特徴点位置候補に、平滑化処理を実行してもよい。
【0057】
式(2)の計算において、評価する尤度についてはモーションキャプチャの精度の高さの指標となる。この尤度について閾値を設定し、尤度が閾値よりも低い場合には、対象のポーズのトラッキングに失敗したものとみなし、関節位置候補の探索範囲を広げて探索を行ってもよい。これは、全身のポーズのうちの一部の部位に対して行ってもよく、あるいは、全身に対して行ってもよい。また、オクル―ジョンなどによって特徴点を一時的に見失った場合には、オフラインの解析では時間を先に進めて同一対象のヒートマップを決定し、そこから動作の連続性を利用して時間を遡ることでオクルージョンによりトラッキングに失敗した部分の関節位置の軌道を回復するようにしてもよい。これによって、オクル―ジョンによる見失いを最小にすることができる。
【0058】
このように、本実施形態では、PCMスコアが最大となる3次元空間上の点を探索する方法として、3次元空間上の点群を2次元平面に投影し、そのピクセル座標のPCM値を取得し、その和(PCMスコア)を求め、点群のうちPCMスコアが最も高かった点を、PCMスコアが最大となる3次元空間上の点として関節位置候補とする。3次元上の点を各カメラ平面に投影し、そのPCMのスコアを算出する計算は軽い。本実施形態に係る関節位置候補の探索は、前フレームの情報を用いた探索範囲の限定、及び、探索範囲内の格子点の3次元位置の2次元画像(PCM)への再投影によって計算量の低減、および外れ値の除外を実現している。
【0059】
図7を参照しつつ、関節位置候補取得部の他の態様について説明する。先ず、対象者の動き得る領域(例えば、4m×4m×2m)を設定する。前記領域を一定間隔でセル(例えば、1cmごと、400×400×200のセルを生成)に分割する。
【0060】
ピンホールカメラモデルを考え、あるカメラについて、例えば、ピクセル位置を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値を与える。格子点で囲まれた1つの3次元のセルをPiによってカメラ画像面に投影し、その領域に含まれる全ピクセル範囲のPCM値の平均値をセルのPCM値とする。上記処理をすべてのカメラにおいて実行する。
【0061】
すべてのセルのPCMスコア(PCM値の和)を調べ、その最大値を備えたセルを算出する。そのセルの位置が、その時刻での、ある関節が存在する尤度が高い位置となる。この手法を、関節の初期位置の推定に用いてもよい。
【0062】
さらに、関節位置候補取得部は、複数の2次元ヒートマップから検出したPCM値の重心座標や極大値の座標を用いて3次元再構成することで、関節位置候補を推定するものでもよい。この3次元再構成には、例えば、DLT法を用いることができる。推定された関節位置候補に対して、逆運動学に基づく最適化計算、順運動学計算を適用してもよい。なお、関節位置候補取得部は、並行して実行される複数の関節位置候補取得手法を備えていてもよい。
【0063】
[E]平滑化処理部
関節位置取得部で用いたPCMの取得、逆運動学に基づく最適化計算は時系列的な関係を考慮していないため、出力される関節位置が時間的に滑らかである保証は無い。平滑化処理部の平滑化関節位置取得部では、関節の時系列情報を用いて、時間的な連続性を考慮した平滑化処理を行う。例えば、フレームt+1で取得された関節位置を平滑化する場合には、典型的には、フレームt+1で取得された関節位置、フレームtで取得された関節位置、フレームt-1で取得された関節位置が用いられる。フレームtで取得された関節位置、フレームt-1で取得された関節位置については、平滑化前の関節位置が用いられるが、平滑化後の関節位置を用いることもできる。非リアルタイムで平滑化処理を実行する場合には、後の時刻で取得された関節位置、例えば、フレームt+2以降のフレームの関節位置を用いてもよい。また、平滑化関節位置取得部では、必ずしも連続するフレームを用いなくてもよい。計算を単純にするために、先ず、身体構造情報を用いずに平滑化を行う。このため隣接する関節の距離であるリンク長は保存されない。次いで、平滑化後の関節位置を用いて、再度、対象の骨格構造を使った逆運動学に基づく最適化計算を行って、前記対象の各関節角を取得することで、リンク長を保存した平滑化を行う。
【0064】
平滑化関節位置取得部は、ローパスフィルタによる関節位置の時間的平滑化を行う。関節位置取得部によって取得した関節位置にローパスフィルタによる平滑化処理を適用し、平滑化関節位置を各関節の目標位置とし、逆運動学に基づく最適化計算を行う。これにより、関節位置の時間変化の滑らかさを、各関節間距離が不変であるという骨格条件の下で生かすことが可能となる。
【0065】
平滑化処理部について、より具体的に説明する。本実施形態では、表3に示すIIRローパスフィルタを設計し、関節位置にローパスフィルタによる平滑化処理を行う。なお、カットオフ周波数の値は、当業者において適宜設定できる値であり、例えば、経験的には表3の値を用いることができる。計測する運動の種類や撮影するカメラのフレームレートに応じて平滑化フィルタのパラメータの調整を行ってもよい。
【表3】
ローパスフィルタの特性上、ローパスフィルタに通した関節位置の取得はフィルタ次数の半分にあたる3フレームの遅延が生じ、かつ、関節角更新開始から3フレームはローパスフィルタを適応することができないという問題がある。本実施形態では、フィルタに適応前に、第1フレームの関節位置を第-2フレーム、第-1フレーム、第0フレームとおくことで、2フレーム分計算時間の遅れは生じるものの、空間的な誤差の少ない全フレームの関節位置の平滑処理を行う。
【0066】
上記フィルタによって求めた各関節位置をビデオモーションキャプチャの出力とすると、各関節の時間的な滑らかさは得られるが、隣接する関節間距離が定数という条件が崩れることがある。本実施形態では、このローパスフィルタ適応後の関節位置をあらためて各関節の目標関節位置と置き、再度逆運動学に基づく最適化計算を行った。逆運動学に基づく最適化計算には式(3)を用いることができるが、全関節の重みを均一(これには限定されないが)として逆運動学に基づく最適化計算を実行する。これにより、ローパスフィルタに適応した関節位置の時間変化の滑らかさを、各関節間距離が不変であるという骨格条件の下で生かすことができる。
【0067】
平滑化処理部の出力には、例えば、関節角情報と骨格構造、およびその2つから一意に算出できる関節位置情報が含まれる。例えば、CG描画時に、関節角情報と、身体の骨格構造ファイルを用いて順運動学計算で身体の運動を描画する。平滑化処理部の出力に含まれる情報を記憶部に格納してもよい。
【0068】
[F]前処理部
本実施形態に係るモーションキャプチャシステムは、ヒートマップの計算に先立って、前フレーム(1つの態様では直前フレームであるが、直前フレームには限定されない)で取得された情報に基づいて前処理を実行する前処理部を備えていてもよい。1つの態様では、前処理は、入力画像からヒートマップを計算するコンピュータによって実行されるが、他のコンピュータによって実行されてもよい。
【0069】
[F-1]入力画像の回転
ヒートマップの計算では、画像の中で人が正立する画像に対して、人が横臥の姿勢や倒立に近い姿勢でいる画像に対して精度が下がることがある。これは、ヒートマップ取得部で用いる学習データの中に正立に近い画像が多いというデータの偏りによって、対象の逆立ちや側転といった倒立運動では下半身の推定誤差が大きくなるためである。この場合、前フレームでの対象の体の傾きに応じて画像を回転させ、できるだけ対象が正立に近い姿勢で画像に現れるようにする。本実施形態では下半身のPCMを回転画像から取得した。
【0070】
一般化すると、対象が所定の第1ポーズセット(例えば、横臥や倒立)の時にヒートマップ情報の精度が大きく劣化し、対象が所定のある第2ポーズセット(例えば、正立)の時にヒートマップ情報の精度が高いことが既知の場合に、入力画像における対象の身体の傾きから対象のポーズが第1ポーズセットに含まれるか否かを判定し、入力画像を対象のポーズが第2ポーズセットに含まれるポーズ(正立)となるように入力画像を回転させてヒートマップ情報を取得する。特にリアルタイムでヒートマップ情報を取得する場合には、対象の傾きの判定は、前のフレームにおける入力画像に基づいて実行される。入力画像を回転させてヒートマップ情報を取得するという考えは、本実施形態にかかるモーションキャプチャとは独立して、ヒートマップ取得部に一般に適用し得る技術である。なお、学習データの蓄積および畳み込みニューラルネットワーク(CNN)の改良によって、入力画像の回転を必要としない場合もあり得る。また、可動カメラを用いる場合において、対象の動きに合わせてカメラ自体を物理的に回転させて、フレーム毎に関数Piを取得することで、入力画像の回転を必要としない場合もあり得る。
【0071】
図8を参照しつつ、入力画像を回転させてPCMを取得する工程について説明する。フレームtの入力画像において、対象の身体の傾き(1つの態様では、trunkの傾き)を検出する。例えば、対象の腰と首を結ぶベクトルを算出する。具体的には、図10左図の骨格モデルのPelvis関節とNeck関節の3次元座標位置を算出する。3次元上の点をカメラiの画像平面のピクセル位置に変換する関数Piを用いてフレームtにおけるカメラi での対象の身体の傾き(腰と首を結ぶベクトルを各カメラ方向に正射影した際の角度)を求める。
【0072】
対象の身体の傾きに基づいて画像回転処理の要否を判定する。本実施形態では、得られた身体の傾き(正射影ベクトルの角度)に応じて、フレームt+1の画像を、正射影ベクトルが鉛直上向きに向くように回転させる。例えば、予め複数の回転角度のセット(例えば、30度刻みに、0度、30度、60度、90度、...330度)、及び、各回転角度に対応する角度範囲(例えば、15度~45度を30度に対応させる)を設定しておき、入力画像の回転判定用のテーブルとして記憶部に格納しておく。このテーブルを参照して、前フレームにおける対象の身体の傾き(正射影ベクトルの角度)がどの角度範囲に該当するかを判定し、判定された角度範囲に対応する角度だけ入力画像を回転させてPCMを取得する。オフラインでヒートマップを取得する場合には、回転角度毎にPCMを取得して記憶部に格納しておき、正射影ベクトルの角度に応じてPCMを選択してもよい。回転画像において、OpenPoseのネットワークへの入力を容易にするため、背景(四隅)を黒で埋める処理を行う。回転画像にOpenPoseを適用し、対象の下半身のPCMの算出を行う。回転画像をPCMと共に元の画像の姿勢に戻す。そして、関節位置候補の探索を行う。入力画像の回転の判定に用いる前フレームは、フレームtのみならず、フレームt-1以前のフレームであってもよい。
【0073】
[F-2]他の前処理
前処理は、対象の身体の傾きに応じて入力画像を回転させる処理に限定されない。前フレームにおける1人あるいは複数人の対象の3次元位置情報を用いて実行される前処理としては、トリミングあるいは/および縮小、マスク処理、カメラ選択、スティッチングを例示することができる。
【0074】
トリミングは、前フレームにおける対象の画像上の位置を参考に、画像のトリミングを行い、トリミングした部分のみPCM計算を行うことである。トリミングによって、PCMの計算時間を短縮することは、対象の動作のリアルタイム取得において有利である。同様に、入力画像が十分大きい場合、画像の縮小を行ってもOpenPoseのPCM作成精度がほぼ変化しないことがあるので、画像の縮小によってPCMの計算時間を短縮できる場合がある。
【0075】
前処理としてのマスク処理は、入力画像に対象以外の人物等が含まれている場合に、対象以外の人物等にマスク処理を適用して、対象のPCM計算を行う処理である。マスク処理を行うことで、複数の対象のPCMの混合を防止することができる。なお、マスク処理を、PCM計算後、関節位置取得部において実行してもよい。
【0076】
カメラ選択は、動画取得部が複数のカメラを含む場合に、カメラを選択することで、対象の動作取得や動作解析に用いる入力画像を選択することである。例えば、広範囲のフィールドで多数のカメラを用いてモーションキャプチャを行う時に、使用する全てのカメラからの情報を用いて動作取得や動作解析を行うのではなく、前処理において対象が映っていると予想されるカメラを選択し、選択したカメラからの入力画像を用いてモーションキャプチャを行うことである。また、前処理として、入力画像のスティッチングを行ってもよい。スティッチングは、各カメラがそれぞれの画角においてオーバーラップする領域があった際に、取得済みのカメラパラメータを用いて各カメラ画像をつなぎ合わせ、シームレスな1つの画像に合成することを指す。これにより、入力画像の端部に対象が部分的に現れているような場合であっても、PCMの推定を良好に行うことができる。
【0077】
[G]モーションキャプチャを用いた動作解析
図9にモーションキャプチャを用いた動作解析の処理工程を例示する。本実施形態に係るモーションキャプチャにより対象の動作を取得する。取得した関節角及び関節位置の時系列データを取得する。さらにこれに基づいて、逆動力学計算により関節トルクを取得し、前記関節トルクを用いて、筋を模倣したワイヤーを備えた筋骨格モデルにおけるワイヤー張力を最適化計算(2次計画法や線形計画法)により取得し、前記ワイヤー張力を用いて筋活動度を算出し、筋活動度の程度に応じた色が割り当てられた筋骨格画像を生成し、視覚化された筋活動度を伴う筋骨格画像を所定のフレームレートで出力して動画としてディスプレイに表示する。以下、詳細に説明する。
【0078】
モーションキャプチャによって取得した骨格の全自由度の時系列のフレーム間変位を連続関数で補間することによって、各フレーム時刻における骨格の全自由度の変位、その時間微分である速度、またその時間微分である加速度を計算する。それらから算出された各リンクの位置・角度・速度・角速度・加速度・角加速度を逆動力学エンジンに送り、質量を仮定した骨格の運動に伴う、力学情報の計算を行うことで、運動に整合した関節トルクを算出する。骨格の各セグメントは剛体とし、その質量、重心位置、慣性テンソルは、体格情報を用い人の各部位の統計的な計測情報から推定したものを用いることができる。あるいは対象の運動情報からの同定によりこれらのパラメータを推定することもできる。推定に用いる対象の体格情報は事前に取得される。
【0079】
筋をモデル化した全身に分布させたワイヤーの張力をバイアス・重み付き2次計画法を用いて計算する。このワイヤー張力の計算については、非特許文献16を参照することができる。分類された運動に応じて拮抗筋が使われる際の力分布の計測値を求めておき、それを参考にしたバイアス、重みを使うことで、実際の筋の張力をよりよく近似する解を得ることができる。筋張力の取得において、筋電計や床反力計を用いてもよい。
【0080】
取得された筋張力を当該筋の想定した最大筋張力で割った値を筋活動度とし、筋活動度に合わせて筋の色を変えた全身筋骨格系の画像を生成し、これをフレームレート(典型的には30FPS)で出力して映像としてディスプレイに表示する。また、骨格のポーズの画像を生成し、フレームレートで出力して映像としてディスプレイに表示する。さらに、各変数(例えば、関節角度、速度、筋張力、床反力、重心位置など)の値の変化をグラフ化して出力する。これらの出力を解析結果として映像やグラフで提示し、運動時の筋や身体の活動、あるいは体の各部位の動作の記録とする。このように、対象の運動の撮影から、運動時の対象の3次元ポーズの取得、運動に必要な筋活動の推定と可視化までを、自動的に効率的に行うことができる。
【0081】
[H]入力画像から対象の特徴点の位置を取得するまでの流れ
本実施形態に係る入力画像から関節角度、特徴点の位置を取得するまでの工程を、図3を参照しつつ説明する。複数の同期したカメラによって対象者の動作が撮影され、各カメラから所定のフレームレートでRGB画像が出力される。処理部は、入力画像を受信すると、前処理の要否を判定する。前処理は、例えば、画像の回転の要否である。所定の判定基準によって画像の回転が必要だと判定された場合には、入力画像を回転した状態でヒートマップが取得される。画像の回転が不要だと判定された場合には、入力画像に基づいてヒートマップが取得される。
【0082】
身体上の全特徴点において、身体上の特徴点の位置の確からしさの尤度の空間分布(ヒートマップ)が生成され、処理部に送信される。処理部では、特徴点の位置候補の探索が行われる。1つの態様では、フレームt+1の入力画像から生成したヒートマップを受信すると、フレームtの特徴点の位置を基に探索範囲が設定され、特徴点の位置候補の探索が行われる。そして全関節において同じ処理を実行し、全関節の関節位置候補を取得する。
【0083】
全特徴点の位置候補に対して逆運動学に基づく最適化計算を実行する。特徴点の位置候補と骨格モデルの関節(特徴点)が対応付けられており、骨格モデルは、対象者固有の骨格モデルに適合されている。特徴点の位置候補と重みを基に、逆運動学に基づく最適化計算、順運動学計算を実行して関節角、特徴点の位置を取得する。
【0084】
取得された特徴点の位置に対して、過去のフレームにおける関節位置を用いて、平滑化処理を実行することで、関節位置の時間的な動きを滑らかにする。平滑化された特徴点の位置を用いて再度逆運動学に基づく最適化計算を実行して、対象の関節角を取得し、取得した関節角を用いて順運動学計算を実行して、対象の関節位置を取得する。
【0085】
本実施形態では、PCMスコアが最大となる点を現在のフレームにおいて最も相応しいポーズであると考えて、関節位置候補の取得を実行する一方、PCMスコアが下がることを許容しつつ、その後の処理で、逆運動学に基づく最適化計算、ローパスフィルタによるスムージングを行う。対象の骨格構造、特徴点の位置の時間的な連続性を考慮して、逆運動学に基づく最適化計算を実行することで、特徴点の位置の推定誤差を小さくすることを可能とした。
【0086】
本実施形態における関節位置候補取得部において、式(1)~(4)で示すアルゴリズムを採用することには以下の利点がある。ヒートマップとして空間的な広がりをもった、あいまいな関節位置を、人間の骨格形状を参考にすること(逆運動学に基づく最適化計算)で最適化する。関節位置候補の探索においては、各カメラからの入力画像から取得した、空間的な広がりを持った複数のヒートマップ情報をそのまま用い、その後は、対象の骨格構造を考慮することで、関節位置候補を用いて逆運動学に基づく最適化計算により関節位置を求める。尤度の空間的広がりという豊かな情報を持つ、複数方向からのヒートマップ情報を活用することで、1枚の画像だけでは関節位置推定を誤るような運動にも対応することができる。例えば、あるカメラからの入力画像から望ましいヒートマップが生成されなかったときも、他のカメラからの入力画像から生成したヒートマップを用いるため修正が効く。ある特徴点が誤った位置に3次元再構成されそうなときも、他の特徴点の位置情報と関節間距離不変という拘束条件を用いるため修正が効く。あるフレームにおいて、誤った関節位置が推定されそうなときも、前フレームの関節位置情報と時間的に滑らかという条件を用いるため修正が効く。
【0087】
骨格構造において、ヒートマップ情報を用いて取得した特徴点の位置だけでは決定できない骨格の自由度の変位の決定が必要な場合には、事前知識を条件に含めた最適化によって決定してもよい。例えば、手や足先については それぞれ手首、足首の先に存在するという事前知識を用いて初期角度を与える。手や足先の情報が取得される場合には、初期角度をフレーム毎に変化させ、手や足先の情報が取得されない場合には、手や足先の角度は前フレームの角度から変化せず固定される。また、肘や膝の可動域に応じて手首・足首の各自由度に重み・制限を持たせ、手首、足首の反転を防ぐ、身体は地面を貫通しないという制限を与える、といった事前知識を用いることで逆運動学に基づく最適化計算を行ってもよい。
【0088】
本実施形態に係るモーションキャプチャは、複数のカメラの映像から深層学習を用いて推定した関節位置から、人間の骨格の構造と運動の連続性を考慮して3次元再構成を行うことで、従来の光学式モーションキャプチャに匹敵する滑らかな運動計測を取得する。上記モーションキャプチャは、以下に記載のように、様々な課題を解決することができる。
【0089】
動作解析を、トップアスリートや特殊技能を持つ舞踏家たちだけでなく、一般の運動愛好家や、学生スポーツの場や、リハビリテーションの患者や高齢者の身体機能のモニタリングに広く活用するためには、設備の簡略化、準備やキャプチャー後の後処理に関わる人手と時間の短縮、を通じてモーションキャプチャを低コスト化することが課題であった。これに対して、本実施形態に係るモーションキャプチャは、複数台のカメラ映像から屋内、屋外、服装を問わずマーカレスでモーションキャプチャを行うことを可能とするものであり、ビデオカメラ以外の特別なデバイスを必要としない。
【0090】
また、データの取得から運動の3次元再構成と運動解析までの計算を可能な限り、リアルタイムで実施できるようにすることも課題であった。これらを解決することによって、計測する運動の時間の長さに依存しない(例えば、サッカーの試合時間のように長時間であっても、運動終了時には解析が完了するというように)システムを構成することができれば、だれもがモーションキャプチャ技術者や専門のトレーナを介さずに運動解析を利用することができるようになる。これに対して、本実施形態に係るモーションキャプチャは、屋内、屋外、着ている服装を問わずマーカレスで、ビデオ映像だけからのリアルタイムの運動解析を可能とする。これによって、従来のマーカを取り付けて行うモーションキャプチャでは、時間と手間がかかって行えなかった大人数の運動計測が可能となり、運動データのビッグデータ化を推進することもできる。また、本実施形態に係るモーションキャプチャは、ビデオ映像をアップロードするだけで動作解析結果を返信するサービスとして実施することができる。また、本ビデオモーションキャプチャ技術を用いて、ヒートマップ取得部作成に必要な学習データ(入力画像と特徴点位置が記述されたファイル)を新たに作成することも可能となる。
【0091】
本モーションキャプチャシステムは、スポーツ(運動解析、コーチング、戦術提案、競技の自動採点、トレーニングの詳細ログ)、スマートライフ(一般の健康生活、高齢者の見守り、不審行動の発見)、エンターテイメント(ライブパフォーマンス、CG作成、仮想現実ゲームや拡張現実ゲーム)、介護、医療等の多岐にわたる分野において利用可能である。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11