はじめに
ReCamMasterは、1つのビデオから新しいカメラビューを生成するコア機能を持つオープンソースのビデオ処理ツールです。ユーザーはカメラ軌道を指定し、ビデオを再レンダリングすることで、異なるアングルのダイナミックな画像を得ることができる。浙江大学とRacer Technologyのチームによって開発されたReCamMasterは、テキストからビデオへの拡散モデルに基づいており、ビデオスタビライゼーション、超解像強調、フレーム拡張をサポートしており、ビデオ作成、自動操縦データ生成、バーチャルリアリティ開発に適しています。ReCamMasterは、ビデオスタビライゼーション、超解像拡張、フレーム拡張をサポートし、ビデオ作成、自律走行データ生成、バーチャルリアリティ開発に適しています。オープンソースコードはWan2.1モデルをベースにしているが、会社のポリシーの制限により、フルモデルはまだ利用できないので、最高の結果を体験するには公式リンクを経由する必要がある。チームはまた、関連研究を促進するために、136,000のマルチビュー動画を含むMultiCamVideoデータセットも公開している。
近日発売予定 効果的 国際版の経験。現在のところ、公式テストアドレスでビデオを提出し、公式フィードバックを待って結果を出すことしかできません。
機能一覧
- カメラ軌道制御:ユーザーが選択またはカスタマイズしたカメラ軌道で、新しいパースペクティブ映像を生成。
- 手ブレ補正:手持ち撮影のシーンで、手ブレを滑らかな映像に変換します。
- 超解像機能:ズームトラックを通して映像の鮮明度を高め、詳細な画像を生成します。
- Screen Extension(スクリーン拡張):ビデオの境界を拡張し、元のスクリーンを超えるシーンコンテンツを生成する。
- データエンハンスメント:自律走行やロボットビジョンのためのマルチビュートレーニングデータの生成。
- バッチ処理:複数のビデオを同時に処理し、新しいパースペクティブの結果を自動的に出力します。
- データセットのサポート:同期されたマルチビュービデオを持つMultiCamVideoデータセットを提供します。
ヘルプの使用
ReCamMasterの核心は、カメラトラック制御により、1つのビデオから新しい視点を生成する機能です。以下に、オンライントライアル、ローカルラン、データセットの使用方法など、ユーザがすぐに使い始められるよう、詳細なユーザガイドを掲載します。
オンライン・トライアルの流れ
ReCamMasterは便利なオンライントライアルを提供しており、ユーザーはインストールすることなく体験することができる。手順は以下の通り:
- トライアルリンクへ::
- Googleフォームの公式リンク https://docs.google.com/forms/d/e/1FAIpQLSezOzGPbm8JMXQDq6EINiDf6iXn7rV4ozj6KcbQCSAzE8Vsnw/viewform?usp=dialog を開いてください。
- レンダリング結果の受信に有効なEメールアドレスを入力してください。
- ビデオのアップロード::
- 動画はMP4形式で、推奨時間は81フレーム(約3秒)以上、解像度は480p以上のものをご用意ください。
- 映像コンテンツが明瞭で、シーンが適度にダイナミックであることを確認し、過度に暗かったり、露出が高かったり、純粋に静止した映像は避ける。
- ファイルサイズの制限(フォームの指示にもよりますが、通常は100MB)に注意しながら、フォームに動画をアップロードしてください。
- カメラトラックの選択::
- ReCamMasterには、一般的な視点のバリエーションをカバーする10種類のプリセット・トラックが用意されています:
- 右パン:水平方向に移動し、シーンの幅を表示します。
- 左パン:逆方向へ水平移動。
- チルトアップ:垂直方向にチルトアップすると、細部が強調されます。
- チルトダウン:垂直に下に傾けると、グラウンドのコンテンツが表示されます。
- ズームイン:被写体に近づいて輪郭を強調します。
- ズームアウト:レンズを引いて視野を広げる。
- Translate Up:回転しながら上に移動する。
- Translate Down:回転を伴った下方向への移動。
- 左アーク:体の左側を中心に回転する。
- 右アーク:体の右側を中心に回転する。
- フォームで軌道を選択するか、カスタム要件(確認のためにチームに連絡する必要があります)をメモしてください。
- ReCamMasterには、一般的な視点のバリエーションをカバーする10種類のプリセット・トラックが用意されています:
- 結果を提出し、受け取る::
- フォームを送信すると、システムが自動的にビデオを処理します。処理時間はサーバーの負荷にもよりますが、通常数時間から1日程度です。
- 結果はMP4形式で、件名を "Inference Results of ReCamMaster "として、ユーザーのメールアドレス宛に送信される。
jianhongbai@zju.edu.cn
もしかしたらcpurgicn@gmail.com
. - 受信トレイと迷惑メールフォルダを確認してください。1日経っても届かない場合は、チームまでご連絡ください。
銘記する::
- ユーザーごとに無料トライアルが利用できるが、頻繁に提出すると処理が遅れる可能性がある。
- 結果の質はビデオコンテンツに依存し、ダイナミックなシーンの方がより効果的である。
- 将来的には、より簡単に操作できるオンライン・トライアルサイトを立ち上げる予定だ。
ローカルオペレーション
オープンソースのコードはWan2.1モデルに基づいており、技術的なバックグラウンドを持つユーザーに適しています。以下は、詳細なインストールと実行時の手順です:
1.環境準備
- ハードウェア要件GPU 搭載デバイス(NVIDIA RTX 3060 以上など)を推奨します。
- ソフトウェア要件::
- パイソン3.10
- Rust と Cargo (DiffSynth-Studio のコンパイル用)
- Gitとpip
2.インストール手順
- クローン倉庫::
git clone https://github.com/KwaiVGI/ReCamMaster.git cd ReCamMaster
- 錆の設置::
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source "$HOME/.cargo/env"
- 仮想環境の構築::
conda create -n recammaster python=3.10 conda activate recammaster
- 依存関係のインストール::
pip install -e . pip install lightning pandas websockets
- モデルウェイトのダウンロード::
- Wan2.1モデル:
python download_wan2.1.py
- ReCamMasterで事前に訓練された重み:
https://huggingface.co/KwaiVGI/ReCamMaster-Wan2.1/blob/main/step20000.ckpt からダウンロードstep20000.ckpt
に入れる。models/ReCamMaster/checkpoints
フォルダー
- Wan2.1モデル:
3.テスト例ビデオ
- 以下のコマンドを実行し、プリセットされた軌道(例えば、右にパンする)を使用してテストする:
python inference_recammaster.py --cam_type 1
- 出力はプロジェクト・ディレクトリの
output
フォルダにMP4形式で保存する。
4.カスタムビデオのテスト
- データの準備::
- 確立
custom_test_data
フォルダにMP4ビデオ(少なくとも81フレーム)を入れる。 - 生成
metadata.csv
ビデオパスと説明的キャプションを記録します。例video_path,caption test_video.mp4,"A person walking in the park"
- 字幕は手動で書くことも、LLaVAなどのツールを使って生成することもできる。
- 確立
- 走り推理::
python inference_recammaster.py --cam_type 1 --dataset_path custom_test_data
銘記する::
- オープンソースのモデルは論文モデルとは異なるため、ローカルランはオンライントライアルほどうまくいかないかもしれない。
- GPUメモリが十分であることを確認する(少なくとも12GB)。
- エラーが発生した場合は、依存関係のバージョンを確認するか、GitHub Issuesを参照してください。
5.トレーニングモデル
カスタムモデルが必要な場合は、MultiCamVideoデータセットを用意し、それをトレーニングする:
- データセットをダウンロード::
https://huggingface.co/datasets/KwaiVGI/MultiCamVideo-Dataset からダウンロードし、解凍する:cat MultiCamVideo-Dataset.part* > MultiCamVideo-Dataset.tar.gz tar -xzvf MultiCamVideo-Dataset.tar.gz
- 抽出特性::
CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" python train_recammaster.py --task data_process --dataset_path path/to/MultiCamVideo/Dataset --output_path ./models --text_encoder_path "models/Wan-AI/Wan2.1-T2V-1.3B/models_t5_umt5-xxl-enc-bf16.pth" --vae_path "models/Wan-AI/Wan2.1-T2V-1.3B/Wan2.1_VAE.pth" --tiled --num_frames 81 --height 480 --width 832 --dataloader_num_workers 2
- 字幕の生成::
LLaVAなどのツールを使って動画の説明文を作成し、それをmetadata.csv
. - トレーニング開始::
CUDA_VISIBLE_DEVICES="0,1,2,3,4,5,6,7" python train_recammaster.py --task train --dataset_path recam_train_data --output_path ./models/train --dit_path "models/Wan-AI/Wan2.1-T2V-1.3B/diffusion_pytorch_model.safetensors" --steps_per_epoch 8000 --max_epochs 100 --learning_rate 1e-4 --accumulate_grad_batches 1 --use_gradient_checkpointing --dataloader_num_workers 4
- トレーニングモデルのテスト::
python inference_recammaster.py --cam_type 1 --ckpt_path path/to/your/checkpoint
注意を引く::
- トレーニングには複数の高性能GPUが必要で、シングルカードでのトレーニングではバッチサイズを調整する必要があるかもしれない。
- ハイパーパラメータ(学習率など)は、結果を改善するために最適化することができる。
MultiCamVideoデータセットの使用
MultiCamVideoデータセットには、13,600のダイナミックなシーンをカバーする136,000のビデオが含まれており、それぞれが10台の同期したカメラで撮影されている。以下はその使い方のガイドである:
1.データセットの構造
MultiCamVideo-Dataset
├── train
│ ├── f18_aperture10
│ │ ├── scene1
│ │ │ ├── videos
│ │ │ │ ├── cam01.mp4
│ │ │ │ ├── ...
│ │ │ └── cameras
│ │ │ └── camera_extrinsics.json
│ │ ├── ...
│ ├── f24_aperture5
│ ├── f35_aperture2.4
│ ├── f50_aperture2.4
└── val
└── 10basic_trajectories
├── videos
│ ├── cam01.mp4
│ ├── ...
└── cameras
└── camera_extrinsics.json
- ビデオフォーマット解像度1280x1280、81fps、15fps。
- カメラパラメーター焦点距離(18mm、24mm、35mm、50mm)、絞り(10、5、2.4)。
- トラックファイル::
camera_extrinsics.json
カメラの位置と回転を記録する。
2.データセットの使用
- 映像生成モデルの学習とカメラ制御効果の検証。
- 同期ビデオ制作や3D/4D再構成を研究する。
- カメラ軌道生成アルゴリズムのテスト。
3.オペレーション例
- データセットを解凍する::
tar -xzvf MultiCamVideo-Dataset.tar.gz
- カメラ軌道の視覚化::
python vis_cam.py
カメラの移動経路を示す軌跡マップを出力する。
銘記する::
- データセットは大きい(1TBのストレージ確保を推奨)。
- ビデオの比率(例:16:9)は、モデルに合わせてトリミングすることができます。
機能
1.新たな展望の創出
- 官能性例えば、正面からの映像を側面や回り込みの映像に変えることができます。
- オンライン操作::
- ビデオをアップロードし、トラック(右アークなど)を選択します。
- システムは軌跡から再レンダリングし、MP4ファイルを生成する。
- ローカルオペレーション::
- うごきだす
inference_recammaster.py
指定--cam_type
(例:左アークは9)。 - プローブ
output
の結果をフォルダに保存する。
- うごきだす
- 注意を引く静的な背景は不自然に生成される可能性があります。
2.ビデオスタビライゼーション
- 官能性ハンドヘルドビデオのジッターを除去し、滑らかな画像を生成します。
- リグ::
- オンライン:ビデオをアップロードする。
- ローカル:現時点では直接安定化コマンドはなく、並進軌道でシミュレートする必要がある。
- 効果例えば、走って撮影したジリジリした映像を、ジンバル効果に近づけるように加工したもの。
3.超解像とアウトリーチ
- 超解像::
- ズームトラックを選択して、画像の細部を強調します。
- 低解像度のビデオに適しており、明確なローカライズされたコンテンツを生成する。
- 外延::
- 画面境界を広げるには、Shrink Trackを選択します。
- 狭いシーンにフィットし、追加の背景を生成する。
- リグ::
- オンライン:"ズームイン "または "ズームアウト "トラックを選択します。
- ローカル:設定
--cam_type 5
(ズームイン)または--cam_type 6
(縮小)。
4.データ強化
- 官能性自動操縦やロボットのトレーニング用にマルチビュービデオを生成します。
- リグ::
- 動画をアップロードし、複数のトラックを一括選択。
- あるいは、データセットを使ってモデルを直接訓練し、多様なデータを生成する。
- 典型例自動運転モデルのためのサラウンドビュー道路ビデオの生成。
よくある質問
- 結果の遅れスパムのチェック、またはお問い合わせ
jianhongbai@zju.edu.cn
. - 虚しいビデオに十分なフレーム数(少なくとも81フレーム)があり、シーンがダイナミックであることを確認してください。
- ローカルエラーメッセージ(LEM)Python のバージョン (3.10)、Rust のインストール、依存関係の更新を確認します。
- モデル重みの欠落Hugging Faceから正しいファイルをダウンロードし、パスを確認してください。
ReCamMasterは使いやすく、オンライントライアルは特に初心者に適している。このデータセットは研究者に豊富なリソースを提供し、将来の機能拡張が期待される。
アプリケーションシナリオ
- ビデオ制作
ReCamMasterは、ショートビデオ、コマーシャル、映画の予告編にダイナミックな視点を加えます。例えば、固定されたショットを回り込み効果に変えて、視覚的なインパクトを高めます。 - 自動運転
自動運転モデルを学習するために、マルチビューの運転シーン映像を生成する。異なる角度からの道路状況をシミュレートでき、データ収集のコストを削減できる。 - バーチャルリアリティ
VR/AR開発にマルチビューコンテンツを提供し、没入型シナリオに適応させる。例えば、VRゲーム用のダイナミックな環境映像の生成など。 - 研究と教育
研究者は、MultiCamVideo データセットを使用してアルゴリズムを検証できます。教育者は、New Perspectivesのビデオを使用して実験手順を実演し、教育や学習を強化することができます。 - 3D/4D再構成
このデータセットは、動的なシーンの3Dモデルを再構築するための同期ビデオ研究をサポートしている。
品質保証
- ReCamMasterはどんなビデオフォーマットに対応していますか?
現在MP4をサポートし、少なくとも81フレーム、解像度480p以上、ダイナミックシーンエフェクトがより良いことを示唆している。 - オンライン・トライアルは無料ですか?
現在は無料だが、処理速度はサーバーの負荷に依存する。将来的には有料の高速化サービスが利用できるようになるかもしれません。 - ローカルで実行するにはどのような設定が必要ですか?
NVIDIA RTX 3060以上、ビデオメモリ12GB以上、Python 3.10環境を推奨。 - データセットのダウンロード方法は?
https://huggingface.co/datasets/KwaiVGI/MultiCamVideo-Dataset、解凍すると約1TBのストレージを消費する。 - トラックをカスタマイズすることは可能ですか?
オンライントライアルは10種類のプリセット軌道をサポート。ローカルランでは、コードによって軌道パラメータを変更することができます。