モーションキャプチャーのしくみ
そもそもモーションキャプチャとは?
光学式モーションキャプチャは,スポーツなどのヒトの身体運動を含めて一般に反射マーカやLEDマーカの3次元位置を計測・トラッキング(各マーカの3次元位置を計測するだけでなく,位置が変化しても同一のマーカとして識別)するシステムを指します.モーションキャプチャシステムOptiTrackは,最高1kHz,カメラから最長約30mの距離の被写体の撮影も可能です.
ヒトの運動を計測するセンサや計測システムとして,関節角度を計測するゴニオメータ,加速度を計測する加速度センサ,角速度を計測するジャイロセンサなど多種多様ですが,ここでは他の類似システムと比較することで光学式モーションキャプチャについてご説明します.
なお,光学式モーションキャプチャシステムの最大の特徴は計測精度で,ここで取り上げる他のシステムと比較すると,最も高い計測精度を得られます.
代表的なその他の運動計測システム
3次元画像解析:光学式モーションキャプチャの基礎となる計測系です.使用するカメラは様々で,通常の家庭用ビデオカメラ(通常,30または60 fpsでの撮影.fps:1秒あたりの撮影フレーム数,フレームレート)を運動計測に使用することもできますが,高速度カメラはさらに高速フレームレートでの撮影を可能とします.また,現在では,スマートホンやデジタルカメラで高速撮影が可能となり,残念ながらビデオカメラで高速フレームレートで撮影できるカメラの選択肢が減りました.このような比較的廉価なカメラに対して,以前は,正確にカメラ間(他のシステム)との同期を可能とする同期信号の入出力や,1 kfps以上の高速フレームレートや,グローバルシャッターで撮影できるタイプのカメラを高速度カメラと呼んでいて,このような規格を有するだけで,通常のビデオカメラと比較するとかなり高価なカメラとなります.また,この中間的な存在で,産業用カメラ(注1)という位置づけのカメラもかなり選択肢が増えてきました.
このように高速度撮影を行う選択肢は増えましたが,カメラ自体は2次元の情報しか取得できませんので複数のカメラを使用し,3次元座標を復元します.このため,各カメラの位置関係などを知るためにキャリブレーションが必要となりますが,古典的な方法としてDLT法(注2)などの方法が使用されます.正確なキャリブレーションを行うためには手間もかかりますが,OpenCV(注3)などでも使用されるチェスボードマーカやARマーカ(図2)などの利用により,簡便化する方法もあります.
光学式モーションキャプチャと計測原理はほぼ同じと考えて構いませんが,モーションキャプチャではハードもソフトも3次元位置計測に特化し,使用するカメラの台数を増やすことなどで,計測が飛躍的に簡便化・高精度化しています.
骨格推定:機械学習や深層学習の技術発展から近年登場した新しい計測技術です.関節などの特徴点にマーカなどを貼付することなく認識し,無拘束の計測を実現するため.マーカレスモーションキャプチャなどとも呼ばれます.OpenPose(注4)に代表され,身体の動きをビデオカメラで撮影し,主要な関節点(手首,肘,股関節等)の位置を,2次元や3次元で出力することができます.機械学習の結果を利用しているので,通常の3次元計測と異なりキャリブレーション等が不要であったり(3次元化で必要なケースもあります),複数人の動きを算出したり,動画に重ね合わせて骨格(スティックピクチャとも呼ばれる,関節を結んだ線画.図3参照)を表示することも可能となり便利なシステムです.精度は決して良くありませんが,静止画も含めてカメラで撮影するだけで手軽に運動を計測できるため,利用が広まっています.
デプスセンサ(3Dセンサ):いくつかの計測原理のものが存在しますが,センサからの点群の深度情報を利用して3次元位置を測定します.身体運動計測では主として前述の骨格推定と併用して利用します.特別なカメラを購入する必要はありますが比較的低価格で入手しやすいですが,奥行方向の精度は同様に低くなります.Kinect(マイクロソフト社製)やRealSense(Interl社製)に代表されますが,Kinectはすでに市場から撤退し,RealSenseも撤退の情報が流れています.
磁気センサ:Polhemus社製の製品に代表される,磁場発生装置によって計測環境に構成される磁界を利用して位置と姿勢角度を計測するシステムです.光学系の計測システムと異なりオクルージョン(注5)が発生しません.また,サンプリングレート(カメラのフレームレートに相当.一般にHzの単位を使用)はモーションキャプチャと同様に100~1kHz程度まで計測できますが,大雑把にみて光学式モーションキャプチャと比較して1桁程度精度が低いと考えて良いでしょう.またセンサなどは有線の計測システムになります.
ゴニオメータ:もともとは身体運動に限らず角度を測る計測機器でしたが,医療・体育の分野などで昔から身体運動の関節角度を計測する機器として使用され続けています.一般的には身体各部位の長軸方向と一致させた軸間のなす角度や回旋角度を計測することが基本で,典型的なセンサとしてポテンショメータ(軸の回転角度に応じて抵抗値が変化する可変抵抗)を使用したもが多いですが,現在では多様に変化しています.その発展形として光ファイバを使用したデータグローブなどもあります.図4右図のように全身の3次元計測を行うことはあまり現実的ではありませんし,精度もあまりよくはありません.部分的な関節角度等を気軽に計測するときには適したセンサです.
非光学式(慣性センサ式)モーションキャプチャ:Xsens MVN(XSENS社製)やShadow(Motion Workshop社製)に代表される,慣性センサ(IMUやAHRS)を用い,特に身体運動に特化した計測システムの技術も発展してきました.光学式モーションキャプチャと異なり計測位置が拘束されず,広い空間での計測に適しています.使用しているセンサは,ジャイロセンサ,加速度センサ,システムによっては地磁気センサを使用します(図5参照).計測の基本がジャイロセンサによって計測される角速度と,加速度センサから計測される加速度を利用した積分演算のため,特に補正の難しい基準となる身体座標の原点位置座標に誤差が蓄積します(ドリフトと呼びます).姿勢角度に関しては身体の解剖学的な拘束を考慮することによって補正が行われ.計測結果をアニメーションなどで見ると,一見非常に精度よく計測できているように感じますが,実際の関節の姿勢角の精度も光学式モーションキャプチャと比較するとかなり低くなります.
骨格推定のように関節位置だけでなく(図3参照),各部位の3次元の姿勢(たとえば大腿や下腿などの部位の長軸周りの回転も含めた姿勢角度.クォータニオンなどで出力)を出力できます.近年,多くの非光学式モーションキャプチャの製品が増えてきました.
光学式モーションキャプチャの特徴と計測原理
光学式モーションキャプチャ:使用するカメラは高速度カメラとほぼ同等な仕様のカメラで,3次元座標復元の原理も複数のカメラを使用する3次元画像解析とほぼ同等です.しかし,モーションキャプチャでは様々な自動化と高精度化の実現のためのさまざまな工夫による3次元位置計測に特化したシステムが構築され,わずかな遅延(数ms)でオンラインでデータを出力することもできます.
カメラの特徴としてはカメラに装備されたLEDから可視光の波長に近い近赤外線(多くのシステムで800nm程度の波長が採用されています)を発光し,一般には再帰性反射材と呼ばれる材料を塗布または,シート状のもの細かく貼った球形の再帰性反射マーカの位置を,特定のLEDの波長だけをフィルタリングすることで計測し,反射した部分のカメラの撮影画像における重心位置を算出しています.このため,マーカの大きさは基本的には関係ありません.小さいもので3mmぐらいのものから,カメラのセンサに適切に収まるのでしたらいくらでも大きくても構いません.ここで「再帰性」とは乱反射せずに光源方向にだけ反射する性質を持った材料で,いわゆる自転車や夜間の工事現場などで使用される反射材です.光源であるカメラに向かって反射するので,効率よく反射したマーカの光だけを捉えることができ,知りたいマーカ位置の情報だけ光学的に適切かつ簡便に抽出できます(図6参照).
キャリブレーションと3次元座標復元原理
カメラに撮影される前述のマーカーの重心位置は2次元情報なので,複数台のカメラを使用しないと3次元位置を同定できません.一般にカメラの台数が増えれば,精度良くかつ広範囲に計測が可能となります.
そして3次元の位置情報に復元する際,カメラのキャリブレーションを計測前に行うことが必要となります.カメラのキャリブレーションとは,「計測する3次元の位置座標」と『カメラの2次元座標」間の関係(座標変換等)を記述することになります.ただしDLT法とは異なり,『マーカが計測空間のどの位置に存在しても,複数のカメラで計測される同一マーカであるならば,同じ3次元位置に存在する』という仮定を用いて,計測空間内にわたって同一マーカを多く計測することで,計測空間内の各カメラ間の位置姿勢を表す座標変換係数等(「カメラ定数」と呼びます)を最適化によって同定します.DLT法ではキャリブレーションに『既知の3次元位置座標」を利用するのに対して,モーションキャプチャは先程の仮定を用いて,多数(1000点ぐらい)計測空間に渡って計測することでカメラ定数を最適化して取得します.
繰り返しになりますが,大雑把に述べるとカメラのキャリブレーションとは図7のように『全カメラ間の方向や配置・姿勢(座標変換,スケール,レンズ歪等)』,言い換えるなら最終的に『3次元座標とカメラの2次元座標の対応関係』を決定する作業です.その対応関係は,カメラから見たマーカの方向を示す図7の青色の線(OptiTrackではRay・光線と呼ばれます)に象徴されていますので,キャリブレーションとは3次元空間において正しい方向にカメラからのRayを描けるように全カメラの配置・姿勢等を確認する作業とも言えます.
そこで一旦キャリブレーションが終われば,カメラ定数を利用し各カメラから撮影された反射マーカの方向が図8の緑色の線(Ray・光線)として算出されます.しかし,1台ではカメラから見た奥行方向の情報がわかりません(カメラからするとRay上にある点はすべて同じ位置に見えてしまいます).そこで,複数台のカメラで撮影し,図8の左図のように,その線が最も集中する点をリアルタイムで計算し,その点を3次元位置とします.このため,最低でも2台のカメラから反射マーカが撮影されている必要があります.しかし,実際には誤差が少なからず発生しますので,線が厳密に交わることはありませんので,最も線間の距離が最小となる(集中する)点を算出します.図8の右図は,OptiTrackでマーカを拡大して,さらにマーカの内部を透視して見ている様子です(OptiTrackを使用すれば実際に確認できます).実際には各カメラから見た緑色のRay(光線)は交わることはなく,最もRay間の距離が短いところを3次元位置として算出しています.このようなプロセスでマーカの3次元座標が復元(計測)されます.
ちなみにOptiTrackでは,各カメラの各マーカについて,この算出された3次元位置と各Ray間の距離を計算していて,この平均距離をResidual(残差)と呼んでキャリブレーションで計算しています.OptiTrackではもし何らかの要因でこの計算された(または設定された)残差よりも大きくなってしまったRayは使用せず,信頼できるカメラ情報だけ使用します.また,ユーザによるResidualの設定も可能としています.Residualは自動的に設定もされますが,このような柔軟なシステムが,OptiTrackの精度を高める要因となっています.
図9にキャリブレーションと3次元座標復元についてまとめました.キャリブレーションとは3次元座標とカメラの2次元座標の空間的な関係を記述するカメラ定数を算出する作業で,基準となる3次元空間に対して各カメラの2次元空間座標の配置・姿勢等を決める作業に相当します.3次元座標復元(計測)とはそのカメラ定数で算出された各カメラからみたマーカを示す「各Ray(光線)間の距離が最小となる点」,すなわち図中の赤色の「Residualの和が最小となる点」を最小二乗法で計算する作業になります.
身体各部に複数のマーカを貼付することで,身体のスケルトンモデルをリアルタイムで推定し,関節の位置座標のみならず各部位の姿勢角度をクォータニオンやオイラー角として,リアルタイムで出力したり,CSVファイルなどにも出力可能です.
光学式モーションキャプチャの特徴
長所:カメラの性能や台数に依存しますが,運動するヒトなどの位置計測が可能なシステムとして,0.1mmオーダーの精度を実現するシステムは他にほとんどないと思います.他のページでも解説しますが,二階微分した加速度を計算しても加速度計とほぼ同等の精度で算出することも可能です.このことは,力学計算で威力を発揮します.逆に述べると3次元空間における関節トルク(モーメント)などの力学計算に,光学式モーションキャプチャ以外の計測精度では実現が難しいとも言えます.
短所:2台や3台のカメラだけで実現する廉価なシステム(OptiTrack Duo/Trio)もありますが,一般的には高価格なシステムとなります.
短所でもあり長所でもありますが,身体への拘束はマーカーが必要で,マーカーが小さいとはいえ完全な無拘束ではありません.非光学式モーションキャプチャであれば,場所の拘束もありませんが,カメラの設置も必要で,そのために計測空間の拘束もあります.
オクルージョン(カメラから見えない部分のデータの欠損)対策も必要です.OptiTrackの制御ソフトである新しいMotive3.0の登場により,RigidBodyやスケルトン(骨格モデル)のトラッキングが,少ないカメラでも大幅にロバストになり,オクルージョンに対してかなり頑健になりました.RigidBodyやスケルトンが使用できるなら,ラベリングで悩むことは殆ど起こらないでしょう.
モーションキャプチャの原型
モーションキャプチャの原型となる技術はいろいろな形で発展してきましたが,代表的なところでは19世紀のエドワード・マイブリッジ(Eadweard Muybridge)の馬の歩容(ギャロップ)の連続撮影が有名です.詳細はWikiをご覧ください.
日本語のWikiによれば,トーマス・エジソン(Thomas Alva Edison)がこの馬の連続撮影に触発されて,映写機の発明を行ったとされています.より,モーションキャプチャに近い計測は20世紀に入り,Motor Control(運動制御)の研究分野などで,ベルンシュタイン問題という身体の自由度のに関する問題提起で有名なロシアのニコライ・ベルンシュタイン(Nikolai Bernstein)の計測が有名です.詳細は動画をご覧になると一目瞭然です.3次元ではありませんが,これこそモーションキャプチャの原型と言えるでしょう.
ちなみに,このようなたくさんの点の運動を観察するだけで,どのような運動か認識できることを心理学ではバイオロジカルモーションと呼んでいます(動画の例).Bernsteinの計測に通じる,モーションキャプチャ的な表示方法の典型例です.
参考文献
[1] 宮崎,身体運動の計測ー歩行を中心として:医用電子と生体工学,1986 年 24 巻 4 号 p. 266-271(doi)
[2] 持丸,身体の運動計測技術の動向:計測と制御,1997 年 36 巻 9 号 p. 609-614(doi)
注1)産業用カメラ:GigEカメラなどに代表される,工場などにおける画像処理等の目的の特化したカメラで,家庭用ビデオカメラと比較すると,録画ボタンやオートフォーカスなどの多くの機能がありません.極論すると映像情報を送信するだけのカメラ.
注2)DLT法(Direct linear transformation法):3次元座標とカメラの2次元座標間の投影変換(座標変換やスケール)の関係式を線形化してキャリブレーション用パラメータを算出するキャリブレーション方法の一つです.既知の3次元座標(スポーツ科学ではコントロールポイントなどと呼ばれることが多い)と対応するカメラの2次元座標のデータから,最小二乗法を用いてキャリブレーション用パラメータを算出します.DLT方の詳細は,ページや「実践コンピュータビジョン」(オライリー・ジャパン)などを参照すると良いでしょう.スポーツ・バイオメカニクスの分野では多く用いられてきた方法です.
注3)OpenCV:オープンソースのコンピュータビジョン向けライブラリで,画像処理やキャリブレーションツールが含まれ,幅広く使用されています.
注4)OpenPose:ヒトの骨格と呼んでいる18箇所の関節点の2次元座標を,深層学習(ディープラーニング)で推定するシステム.特にマーカーなどを使用せずとも,計測できることからマーカレスモーションキャプチャと呼ばれることもあります.
注5)オクルージョン(Occlusion):画像計測系では,カメラから遮蔽物などがあり計測したい対象(点等)を撮影できず計測できないことを意味します.