アルファ付きVR動画作成ツール rvm_alpha公開
RVMはAIを使って画像内の人物を抽出できるので それをアルファ画像とし魚眼VR動画の端に書き込みます。
Robust Video Matting公式サイト

アルファ付き動画は私が公開しているMeta Quest版 アマレコVRで利用できます。
VR動画の人物のみを残し パススルー映像やほかの動画と合成することができます。
【主な内容】
・通常のVR動画からアルファ付き動画またはグリーンバック動画の作成
・連番PNGファイルからアルファ付き動画の作成
・オーディオストリームのコピー
・バッチファイルへ動画をD&Dするだけで利用可能
・4KのVR動画に対し GTX1080で15fps、RTX4090で30fps程度の処理能力
【動作条件】
・Windows10,Windows11
・4GB以上のnVIDIA製ビデオカード
・Python 3.11.4
1.インストール
1.1.実行に必要なもの
rvm_alpha.zipをダウンロードし解凍してできるフォルダへ 次のファイルをコピーしてください
ダウンロードページ
■RVM公式サイトから次の2つ
・modelフォルダ一式
・rvm_mobilenetv3.pth


■ffmpegから2つ
・ffmpeg.exe
・ffprobe.exe
https://github.com/GyanD/codexffmpeg/releases/tag/2020-12-20-git-ab6a56773f
ffmpeg-2020-12-20-git-ab6a56773f-full_build.zip
全てコピーするとこうなります

1.2.Pythonのインストール
このツールはPython用のスクリプトになっていますので、Pythonをインストールしていない場合はPython公式サイトからダウンロードしてインストールしてください。
・python-3.11.4-amd64.exe

※ AppStore版も使えますがAppStore版は若干遅いようなのでデスクトップ版をお勧めします。
インストール画面ではカスタマイズを選択し Pythonへパスを通すオプションをONにしてください。


インストールが終わったらPCを再起動します(再起動しないとパス設定が有効にならない)。
Windows PowerShellを起動してPythonが使えることを確認します。Pythonから抜けるには[Ctrl] + [Z]。

※ AppStoreのPythonのページが表示されるようなら パスの設定ができていません。
インストーラーで修復か再インストールしてください。
1.3.実行するのに必要なPythonモジュールをインストール
rvm_alpha同梱のmodule_install.batをWindows PowerShellで実行してください。
最後にCUDAに対応したPyTorchをインストールします。
PyTorchの公式サイトから PCの環境等を選択するとインストールコマンドが表示されますのでコピーしてWindows PowerShellで実行します。
※ PyTorchは2GB程度あるので インストールに数分かかります。
すぐに終わってしまう場合は 既に別のPyTorchがインストールされていてCUDA版のインストールがキャンセルされています。
次のようにオプションを指定して 強制的に再インストールしてください
例
pip install --upgrade --force-reinstall torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
2.アンインストール
rvm_alphaにはアンインストールはありません。ダウンロードしたファイルを削除してください。
Pythonについては 本体をアインインストールしても 追加したモジュールファイルが数ギガバイト単位で残ります。
「python 完全にアンインストール」で検索して 必要に応じて残ったファイルの削除の仕方を調べてください。
3.使い方
drop here alpha.batへ動画ファイルをD&Dするとrvm_alphaフォルダへ アルファ付きの動画を作成します。
drop here green.batで背景を緑にした動画を作成します。
drop hear pngへpngの連番ファイルを保存したフォルダをD&Dすると アルファ付きの動画を作成します。
バッチファイルは デスクトップ等へショートカットを作って使うことができます。
[esc]キーで終了。[S]キーで現在処理している画像を確認できます。
4.注意事項
・アルファ付き動画は魚眼サイドバイサイドのVR動画専用です
・CPU処理も可能ですが遅すぎるので 実質CUDAで使って下さい

deviceの項目がcudaならCUDAを使って処理しています。cpuとなっていたら CUDAは使っていません。
5.主なエラー原因
・CUDAが使えない →ビデオカードのドライバーを最新のものにアップデートするなど
・ビデオメモリが足りない →4K動画を扱うなら4GB以上必要
・PyTorchでエラーがでる →CUDAに対応したPyTorchを強制再インストールする
・画像サイズが適合しない →4KやFHD、HDなどで使ってください
6.ダウンロード
ダウンロードページ
Robust Video Mattingによる背景透過
背景が緑一色の動画を作成できれば あとはアマレコVRのクロマキー合成により自動背景透過と同様の効果が得られます。
アマレコVRの自動背景透過は 固定カメラ、安定した照明、適度に被写体が動くなどかなり使用できる条件が限られますが、
RVMでは画像に映っている人物を検出する方式のため、背景が動いていてもほぼ影響無く幅広いシーンでの活用が期待できます。
・Robust Video Matting
https://github.com/PeterL1n/RobustVideoMatting
・RVM使用例
https://www.youtube.com/watch?v=VL-0K6HjhvQ
■テスト
次のサンプル動画(640x360)を上記使用例に沿ってRVMで処理
https://pixabay.com/ja/videos/%E3%82%AF%E3%83%AA%E3%82%B9%E3%83%9E%E3%82%B9-x-%E7%B7%9A%E3%83%9E%E3%82%B9-%E5%86%AC-57916/
作成された動画
http://www.amarectv.com/download/2180763146santa.mp4
アマレコVRへ簡易クロマキー合成を実装し試した結果はこのようになります。

■課題
被写体が緑になる(曖昧な部分を半透明にするため?)
RVMの方で完全な透明か不透明の2値で処理してほしい
輪郭が緑になったり背景にできる影などはアマレコVRの方で何とかできるかもしれませんが
被写体内部まで緑になってしまうのは辛い
VR動画の左右の画像で異なる結果となってしまう
右眼に映る人は服着ているけど、左眼は服が透明になってしまうケースがある
■精度
RVMのデモとして公開されている動画と比べ
私のところで作成できたものはひどい結果のように見えます。
python、pytorch、RVMいずれも初めてなので私が上手くできていない可能性が
高いと思われますので上記サンプル動画をRVMで処理してもっとうまくできるよ
というのがありましたら アドバイス頂けるとありがたいです。
(うまく処理できている結果を見せていただければ もう少し頑張ってみようと思います)