見出し画像

【技術解説】tf-pose-estimationを用いたオーディオコントローラーを作ってみた

こんにちは!デザイニウムのBBOY/エンジニアの平澤@eatora22)です。今回は機械学習による骨格検出技術を用いたオーディオコントローラーのご紹介をしようと思います。

はじめに

まずは以下のデモ動画をご覧ください。

骨格検出用の機械学習モデルから得られた座標情報をもとにオーディオの再生速度や周波数特性をコントロールしています。これらは単眼カメラのみを用いて動かすことが可能です。

技術紹介

骨格検出にはtf-pose-estimationという機械学習モデルを使用しています。これは骨格検出分野でとても有名なOpenPoseTensorFlow用に移植したものです。また本家OpenPoseとは異なりライセンスは「Apache License 2.0」なので商用の場合でも自由に使用することが可能です。

tf-pose-estimationでは18個の部位の座標情報を取得することができます(Nose, Neck, RShoulder, RElbow, RWrist, LShoulder, LElbow, LWrist, RHip, RKnee, RAnkle, LHip, LKnee, LAnkle, REye, LEye, REar, LEar)。またこれらは認識した人数分のリストに含まれる形で返されます。

モデルへの画像の入力解像度ですが、432x368 or 656x368 or 1312x736が推奨されていました(学習データの解像度に準拠しているようです)。ちなみに他の解像度でも動きますが16の倍数に設定しなければなりません。

さらに推論実行時のモデルも複数の種類から選ぶことができます(cmu, mobilenet_thin, mobilenet_v2_large, mobilenet_v2_small)。モデルや入力解像度別の出力結果の違いを以下の動画にまとめてみたのでご覧ください。※tensorflow-gpuを使いWindows機のGPU上(GeForce RTX2070 MAX-Q Design)で動作確認。

精度的にはcmuモデルが一番優れているようです。上記の動画だと分かりにくいですが、推論速度的はmobilenet_v2_smallが良さそうですね。

別の動画でも試してみました。ブレイクダンスのフットワーク(地面に手をついて行うステップ)中でも意外と検出できています。

ちなみに骨格検出用の機械学習用モデルといえばGoogleが公開しているPoseNetがあります。以下の動画は以前制作した、体で操作する「BodyDrum」のデモです。

PoseNetでは17個の部位の座標情報が検出できます(こちらにはNeckが含まれていません)。精度的にはtf-pose-estimationの方が優れている印象です。ただし、ブラウザ上で実行できる点や導入の容易さからも非常に使いやすいモデルでおすすめです。

システム構成

画像1

システム構成としては図のような感じです。tf-pose-estimationで取得した座標情報をOSC通信によりTouchDesigner側へ送信し、その座標位置や移動変位を計算することでビジュアルやオーディオの再生速度、周波数特性(EQ)をコントロールしています。ビジュアルの作成については以下のチュートリアルも参考にさせていただきました。

Aurora Audio Spectrum – TouchDesigner Tutorial 2

EQ(イコライザー)としてのインタラクション機能は以下のデモでも扱っています。表情で操作するというなかなか斬新?な仕組みになっているので、よろしければそちらもご覧ください。

また今回のデモとしては必要なかったのですが、おまけで取得したカメラ映像もSpout for Pythonを使ってTouchDesigner側に共有しています。Spoutを利用した例としては以下の記事もご参照ください。

今回のデモ動画だと分かりにくいかもしれないので、OSC&Spoutによる簡単な連携の例も載せておきます。取得した部位の座標上にTouchDesigner側で水色のもわもわを描画しています。

Twitter投稿の方には載せませんでしたがオシレーター(Oscillator)機能も作ってみました(以下動画の最初の方です)。Sin波の周波数や振幅などをコントロールして音を鳴らすことができます。こちらではTouchDesignerのAudio Oscillator CHOPを使いました。オシレーター機能はまだ色々と深掘りできそうです。


さいごに

以上、骨格検出技術を用いたオーディオコントローラーのご紹介をいたしました。映画「マイノリティ・リポート」のようにSFチックな世界も実現できそうですね。他にもデザイニウムでは様々な開発を行っていますので、気になる方は他の記事やSNSアカウントも是非チェックしてみてください!

The Designium.inc
デザイニウム インタラクティブサイト
Twitter
Facebook

編集後記

広報のマリコです。まさかデザイニウムの検証動画でブレイクダンスを見れる日が来るとは❗私はまったく踊れない人なので、機械学習と音楽とダンスが好きな平澤ならではの技術解説はいつも見ているだけでも面白いです。そして尊敬します。ちなみに「BodyDrum」はそんな私でも楽しくプレイできたのでどなたでも楽しめると思いますよ!社内で行ったテストは大盛りあがりでした。今後も他ではなかなか見られない、「機械学習をつかってダンスから音楽を生成する」R&Dをお楽しみに!

この記事が気に入ったらサポートをしてみませんか?