「MagicAnimateでオリジナル動画を使いたい」
「Motion Sequenceを作成したい」
このような場合には、Vid2DensePoseがオススメです。
この記事では、Vid2DensePoseについて解説しています。
本記事の内容
- Vid2DensePoseとは?
- Vid2DensePoseのシステム要件
- Vid2DensePoseのインストール
- Vid2DensePoseの動作確認
それでは、上記に沿って解説していきます。
Vid2DensePoseとは?
Vid2DensePoseは、DensePoseモデルをビデオに適用し、
各フレームの詳細な「Part Index」視覚化を生成するための強力なツールです。
この説明だけ見ると意味不明かもしれません。
そのような場合は、次の動画をご覧ください。
Vid2DensePoseを用いると、左の動画を右の動画に変換できます。
では、こんなことができて一体何になるのでしょうか?
それは、MagicAnimateで役に立つのです。
MagicAnimate上では、「Motion Sequence」と呼んでいます。
Vid2DensePoseで作成した動画により、次のような動画を作成できるのです。
Vid2DensePoseのシステム要件
Vid2DensePoseのシステム要件は、以下がポイントになります。
- Python 3.8 以降
- PyTorch
- Detectron2
- FFmpeg
この中ではDetectron2が、厄介な存在になります。
Detectron2のサポートOSは、以下となっています。
- Linux
- macOS
Windowsはサポート対象外です。
そのため、Vid2DensePoseもWindowsにインストールできません。
ただし、WSLにインストールは可能です。
ここでは、結果論だけで説明します。
私の環境では、Ubuntu 20.04はアウトでした。
Ubuntu 22.04の環境ならVid2DensePoseを導入できました。
したがって、WSLを利用する場合はUbuntu 22.04をオススメしておきます。
PyTorchは、CUDA 11.8用をインストールしています。
Ubuntu上でも、そのバージョンに合わせたCUDAをインストール済みです。
また、FFmpegもインストールする必要があります。
FFmpegは、事前にインストールしておきましょう。
Vid2DensePoseのインストール
Vid2DensePoseのインストールする際は、Python仮想環境の利用をオススメします。
まずは、プロジェクトをダウンロードします。
git clone https://github.com/Flode-Labs/vid2densepose.git cd vid2densepose
ダウンロードできたら、リポジトリルートに移動しておきます。
ここで次のファイルを確認できます。
requirements.txt
torch==2.1.0 torchvision==0.16.0 opencv-python gradio git+https://github.com/facebookresearch/detectron2@main#subdirectory=projects/DensePose
やることは、PyTorch関連のコメントアウトです。
#torch==2.1.0 #torchvision==0.16.0 opencv-python gradio git+https://github.com/facebookresearch/detectron2@main#subdirectory=projects/DensePose
このファイルを実行する前に、PyTorchをインストールします。
ここでは、次のコマンドでPyTorchをインストールしています。
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
PyTorchのインストールが完了したら、次のコマンドの実行です。
pip install -r requirements.txt
インストールが完了したら、ラッキー!!
失敗した場合は、Detectron2のインストール失敗を疑ってみるべきです。
Ubuntuの場合は、初めからコンパイラが導入済みのはずです。
だから、以下の要件を満たさないということはないとは思います。
gcc & g++ ≥ 5.4
それ以外だと、CUDAのバージョン関係でエラーになりそうですね。
最後にDetectron2のリポジトリをダウンロードしておきます。
git clone https://github.com/facebookresearch/detectron2.git
この時点での「vid2densepose」ディレクトリは、次のような構成です。
$ tree -L 1 . ├── LICENSE ├── README.md ├── app.py ├── detectron2 ├── flagged ├── main.py ├── requirements.txt ├── sample_videos └── venv
Vid2DensePoseの動作確認
Vid2DensePoseを起動させるコマンドは、以下となります。
python app.py
起動に成功すると、コンソールに次のように表示されます。
Running on local URL: http://127.0.0.1:7860 To create a public link, set `share=True` in `launch()`.
ブラウザで「http://127.0.0.1:7860」にアクセスすると、次のような画面を確認できます。
あとは、動画をアップロードして「Submit」ボタンをクリックするだけです。
GPUのパワーによりますが、そこまで待つという感じではありません。
動画の編集系にしては、比較的処理は速いと思います。