ACES エンジニアブログ

ACESのエンジニアブログです。

モーションキャプチャスタジオを借りて3D姿勢推定用データセットを構築した話

こんにちは、株式会社ACESの武市です。アルゴリズムエンジニアとしてDeep Learningを中心としたアルゴリズムの開発や各アルゴリズムを社内外で効率的に利用できるようにするパッケージ化の業務を行っています。

ACESでは「アルゴリズムで、社会をもっとシンプルに。」というビジョンの元、「Issue driven, simple solution.(最重要の課題発見から、最高の課題解決をしよう。)」、「Fact based, build trust.(客観的事実を大切にし、信頼関係を構築しよう。)」、「Gemba first, verify quickly.(自分の足で情報を得て、自分の手で検証しよう。)」という行動指針を掲げ、画像認識を中心に様々なアルゴリズムの開発を行っています。

AIアルゴリズムの開発にはモデルのアーキテクチャに加えて学習データが重要になりますが、特にACESの取り組んでいる現実世界の問題を解決するためには研究用に公開されているデータでは不十分なことも多いので、ACESでは「Gemba」の課題解決のために泥臭くデータの収集を行うことを含めてアルゴリズムの改善を行っています。

今回、普段我々がどのようにして「Gemba first」なアルゴリズムの開発を行っているかを知って頂くため、最近モーションキャプチャスタジオをお借りして行った3D姿勢推定のためのデータセットの構築についてご紹介させて頂きたいと思います。

3D姿勢推定とは

3D姿勢推定とはヒトの姿勢を3次元的に認識する技術のことを言います。3次元的に認識することができるようになるため、2次元の姿勢推定に比べてより高度な分析や多様なアプリケーションが可能になります。

従来は深度カメラが用いられることが多かったですが、近年ではDeep Learning技術を用いることで2次元画像から高精度に認識することができるようになってきています。ACESでも画像から3次元姿勢推定を行う技術の開発を行っています。

f:id:kazunaritakeichi:20210916130040p:plain

3D姿勢推定 [1]

3D姿勢のデータセット

Deep Learningを用いたアルゴリズムの開発には学習データが重要となります。

3D姿勢のデータセットとしてよく用られるものにHuman3.6M Dataset [2]があります。Human3.6Mは11名の被験者を4台のカラーカメラとモーションキャプチャシステムで食事、歩行等の15種類の動作を撮影した計約360万フレームのデータから構成されるデータセットです。

f:id:kazunaritakeichi:20210915180533p:plain

Human3.6Mデータの例

なぜデータセットの構築を行うのか

Human3.6Mのようなデータセットが世の中にあるにも関わらず新たに構築を行う理由は2つあります。

1つ目はデータセットのライセンスに制限があるためです。Human3.6Mもそうですが、公開されているデータセットには商用利用が不可のものが多くあります。

2つ目は多様かつ実世界での利用シーンに適した行動のデータセットを構築することで精度の向上が見込まれるためです。Human3.6Mでは食事や歩行などの日常的な動作を中心に15種類の動作で構築されていますが、ACESが解決しようとしている現実世界の課題では床に横たわっているなどより複雑な動作を認識する必要がある場合もあります。

撮影手順

モーションキャプチャスタジオ

3次元の姿勢データを計測するモーションキャプチャシステムには様々な種類がありますが、一般的には光学式モーションキャプチャシステムが最も高い精度で計測できます。光学式モーションキャプチャシステムを自社で構築するには数百万円単位での投資が必要ですが、国内にレンタルスタジオが10以上あります。複数のスタジオを検討し、今回は株式会社スパイスのモーションキャプチャスタジオを利用させて頂きました。

マーカーの貼り付け

モーションキャプチャ用スーツの上からモーションキャプチャシステムで認識することのできるマーカーを50点以上に貼り付けます。

f:id:kazunaritakeichi:20210917102032p:plain

ACESの社員が被撮影者をしました

モーションキャプチャシステムのキャリブレーション

モーションキャプチャで認識できるマーカーのついたワンドと呼ばれる器具を用いてモーションキャプチャシステムのキャリブレーションを行います。キャリブレーションを行うことでマーカーの3次元的な位置及びそれらから構築した人体のスケルトンが認識できるようになります。

f:id:kazunaritakeichi:20210916102124j:plain

モーションキャプチャシステムで認識している様子

カラーカメラのキャリブレーションによる内・外部パラメータ、歪みの推定

3D姿勢推定モデルの出力はカメラの位置を原点としたカメラ座標系であることが一般的です。しかし、モーションキャプチャシステムから得られた3次元姿勢はワールド座標系と呼ばれる別の座標系で定義されているため、学習に活用するには、カメラ座標系への変換が必要となります。変換を行うためには、カメラの内・外部パラメータ、歪みの値が必要で、それらの値はカラーカメラのキャリブレーションによって推定することができます。内部パラメータはカメラの焦点距離やカメラ中心の情報を持ち、外部パラメータはワールド座標系に対する回転・並進の情報を持ちます。

モーションキャプチャスタジオをお借りする場合、モーションキャプチャシステムのキャリブレーションはスタジオのスタッフの方に行って頂ける場合が多いようですが、カラーカメラのキャリブレーションは自分たちで行う必要があり、私たちは以下のような手順で行いました。

カラーカメラの内部パラメータ、歪みの推定

まずは内部パラメータ、歪みの推定のために各カメラでチェスボードパターンを多様な角度から撮影します。各画像から認識したチェスボードの角の位置の情報を用いて内部パラメータ、歪みの推定を行います。

f:id:kazunaritakeichi:20210915184828p:plain

内部パラメータ推定のためのキャリブレーションの様子
カラーカメラの外部パラメータの推定

外部パラメータの推定のためにモーションキャプチャで認識できるマーカーのついたワンドを各カメラで多様な角度から撮影します。カラーカメラ画像中のマーカーの位置とモーションキャプチャで計測されたマーカーの位置の関係から外部パラメータの推定を行います。

f:id:kazunaritakeichi:20210915190248p:plain

外部パラメータ推定のためのキャリブレーションの様子

動作の撮影

今回、ACESの取り扱う「Gemba」で認識したい動作を中心に51種類の動作について撮影を行いました(歩く、手を挙げるなど基本的な動作から、投げる打つなどのスポーツ動作、脚立の昇降、転倒、床に横たわるなどより実用的な動作まで含みました)。また、撮影をスムーズに行うために被撮影者の前方にカンペ動画を表示して撮影を行いました。

 

f:id:kazunaritakeichi:20210916102437p:plain

撮影の様子

効果の確認

今回構築したデータセットを用いて学習したモデル行い、ベンチマークモデルと比較してみました。例えば、床にうつ伏せになっている姿勢は、ベンチマークモデルでは認識が難しいですが、今回構築したデータセットで学習したモデルを用いることで正しく認識ができるようになっていることが確認できます。

f:id:kazunaritakeichi:20210928140601g:plain

3D姿勢推定結果の比較(黒:モーションキャプチャで認識した正解データ、青:今回構築したデータセットを用いて学習したモデルで認識した結果、赤:ベンチマークモデルで認識した結果

ACESでは積極的に採用を行っています!

ACESでは、積極的に採用を行っています。ACESでは「Gemba」の課題を解決するために様々な観点からアルゴリズムの開発を行っています。ACESに興味を持っていただいた方がいらっしゃいましたら、お気軽にご連絡下さい!

会社紹介資料はこちら↓

リクルートページはこちら↓

[1] J. Martinez, R. Hossain, J. Romero, J. J. Little, “A simple yet effective baseline for 3d human pose estimation,” In ICCV, 2017.

[2] C. Ionescu, D. Papava, V. Olaru, C. Sminchisescu, “Human3.6M: Large Scale Datasets and Predictive Methods for 3D Human Sensing in Natural Environments,” In TPAMI, 2014.