1.はじめに
今回ご紹介するのは、動画に映っている人物の3Dモデルをトラッキングする、PHALPという技術です。
*この論文は、2021.12に提出されました。
2.PHALPとは?
下記がPHALP(Predicting Human Appearance, Location and Pose for Tracking )の概要です。
各フレームのすべてのバウンディングボックスについて、人物の外観(Appearance)、ポーズ(Pose)、位置(Location)の3つをトラックレット(Tracklet)という形でまとめ、累積した情報を統合(Aggregation)します。
そして、この統合結果を元に予測した次のフレームのトラックレット(Prediction)と、次のフレームで検出したトラックレット(Detections)との関連付け(Association)によってトラッキングを行います。
3.コード
コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンク」をクリックし表示されたノートブックの先頭にある「Colab on Web」ボタンをクリックすると動かせます。
まず、セットアップを行います。なお、この colab はオリジナル github の公式版(youtubeからダウンロードするデモ)を改造したものです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#@title #**セットアップ** # githubからコードを取得 PHALP_ROOT="PHALP" ! git clone https://github.com/cedro3/PHALP.git $PHALP_ROOT %cd PHALP # ライブラリーのインストール ! pip install pyrender ! pip install opencv-python ! pip install joblib ! pip install cython ! pip install scikit-learn==0.22 ! pip install scikit-image ! pip install git+https://github.com/facebookresearch/detectron2.git ! pip install git+https://github.com/brjathu/pytube.git ! pip install git+https://github.com/brjathu/NMR.git ! pip install chumpy ! pip install ipython ! pip install gdown ! pip install dill ! pip install scenedetect # 関数のインポート from function import * # フォルダの作成 reset_folder('_DEMO/youtube_data') |
movie フォルダの中にある動画(mp4)の中から1つ選んで movie: に記入して実行します。自分の用意した動画を使う場合は、事前に movie フォルダにアップロードしておいて下さい。ここでは、movie:dance.mp4 と設定して実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#@title #**トラッキング動画の作成** import shutil #@markdown ・音声付き動画を使用して下さい\ #@markdown ・HDで30秒以内が目安 movie = 'dance.mp4' #@param {type:"string"} shutil.copy('movie/'+movie, '_DEMO/youtube_data/youtube.mp4') # トラッキング動画の作成 !./scripts/_PHALP.sh # 音声の抽出・付加 clear_output() print('preparation for sound...') video_file = '_DEMO/youtube_data/youtube.mp4' out_file = 'out/Videos_v1/PHALP_youtube_data_mask.mp4' ! ffmpeg -y -i $video_file -loglevel error sound.mp3 ! ffmpeg -y -i $out_file -i sound.mp3 -loglevel error output.mp4 # 動画の再生 clear_output() display_mp4('output.mp4') |
踊っている3人が色分けされ、フォーメーションが変わっても、ちゃんとトラッキングされていることが分かります。なお、この動画はoutput.mp4に保存されていますので、必要に応じて手動でダウンロードして下さい。
では、また。
(オリジナルgithub)https://github.com/brjathu/PHALP