論文解説 ReCapture: Generative Video Camera Controls forUser-Provided Videos using Masked Video Fine-Tuning
Project : https://generative-video-camera-controls.github.io/
arxiv : https://arxiv.org/abs/2411.05003
ひとことまとめ
動画のカメラの軌跡を変更できるモデル
概要
![](https://assets.st-note.com/img/1731149675-Vnj73A6xp2gOMYoQq48RFdEC.png?width=1200)
近年動画生成時にカメラの軌跡を制御できる手法が開発されているが、これらの手法では動画は新規生成されるものであり、ユーザが指定しているものではない。
この課題は、参照動画に含まれる情報が限られているため、そもそも不完全な問題であるが、ユーザが要望する近似解を作成することができる。近年の研究では同期した複数視点の動画が利用可能であると仮定し、4Dのニューラル表現の構築などに成功した。しかし元の視野外のコンテンツはとらえられない。本論文では、この問題を動画から動画への変換と再定義する。
Camera Dollyは動画から動画への変換パイプラインを構築したが、4D動画とシミュレーションを通じて取得する異なるカメラポーズが必要である。しかし自然環境で異なるカメラモーションを持つペア動画を取得することは困難である。そこで本研究では、画像および動画領域における拡散生成モデルの事前知識を活用し、要求されたカメラ軌道に合わせた効率的なアングル調整を実現する。
提案手法
提案手法は2段階に分かれており、1段階目に与えられた軌道の不完全かつノイズが多いアンカービデオを生成する。2段階目では、この生成動画をきれいかつ時間一貫性の高い動画を新たに提案するmasked video finetuing手法で生成する。
![](https://assets.st-note.com/img/1731202688-Lhi0MN5kDx9oBCXYFS6l4HpK.png?width=1200)
細かく説明すると、1段階目では画像ベースの新視点合成である。入力動画のフレームを独立して変換し、新しいカメラ位置の基づいたノイズの多いアンカーフレームとその有効マスクを生成する。これらのフレームは典型的に不完全であり、オクルージョンなどによる情報欠如で異常な物体が生成されたり、構造の歪みやちらつきなどの時間的一貫性の問題が生じたりする。
本手法では、第一段階でアンカーフレームを生成する際の具体的な技術には依存せず、点群シーケンスレンダリングとマルチビュー画像拡散という2つの異なる手法を検討した。
2段階目では、新規に提案するmasked video finetuning手法を使用する。まず、時間的な制約を持たせるTemporal motion LoRAをアンカービデオに対して訓練し、欠損した部分をマスクして損失計算をする。これにより、モデルはアンカービデオのカメラモーションや動態に従いながら、モデルの事前知識に基づいて欠落部分を補完する動画を生成すように誘導される。さらに、元の動画から生成した拡張画像に基づき、コンテキストに対応するSpatial LoRAも訓練する。この際、動画モデルのtemporal layerを無効にして画像単位で訓練を行う。このステップにより、アンカービデオ内の構造的な異常を修正できる。
ファインチューニング後、動画拡散モデルはアンカービデオを再生成し、欠落していた領域を時間・空間的に一貫した動画コンテンツでシームレスに埋められるようになる。これにより、元の動画の一貫性・内容・動態を保持しながら、第一段階のアーティファクトを除去し、新しいカメラモーションに基づいた出力が得られる。最終的な出力は、新しいカメラ軌道で撮影されたかのような、元の動画に含まれていないシーンの視点も含んだ動画となる。
Anchor Video with New Camera Motion (first stage)
このステージでは、$${N}$$フレームの動画$${V}$$が与えられたとき、その動画をユーザから与えられたカメラ軌道に基づいた新しい動画$${V^a}$$に変換する。この動画をアンカービデオと呼び、最終的な出力の基準となり、次の段階の条件として使用する。この動画には、シーン外の領域の異常生成や時間的一貫性の欠如が含まれている。
このアンカービデオを作成するための2つの方法を提案する。1つ目の手法は点群レンダリング手法を用いたもので、パンやチルト、ズームなどに適している。2つ目の手法は大きい回転に適している方法で、multiview拡散モデルを使用して新規視点を合成する。
Point Cloud Sequence Rendering
![](https://assets.st-note.com/img/1731202723-sx6f2jyJNzBmqpD9ieK0OkAX.png?width=1200)
初めに、ピクセルを3D空間に投射する。各フレームの深度はZoedepthを使用し別々に推定される。画像とその深度マップから3D点群$${P_i}$$を次のように初期化する。
$${P_i = \phi([I_i, D_i], K)}$$
ここで、$${\phi}$$はRGBD情報をカメラ座標系の3D点群にマッピングする関数を表し、$${K}$$はカメラの内部パラメータを表す。次に、カメラモーションを事前定義した行列 {$${P_1,...,P_{N−1}}$$}として入力する。それぞれの行列はカメラの姿勢を表す回転行列および並進行列を含んでおり、これを用いて点群をカメラ座標系内で回転および移動させる。
その後、点群を関数$${\psi}$$を使ってカメラ平面に再投影し、視点が変わった状態でレンダリングされた画像を取得する。
$${I^a_i = \psi(P_i, K, P_i)}$$
カメラの動作に対応する外部行列を計算することで多様なカメラ操作を表現できる。同時に、各フレームに対してバイナリマスク$${M_a \in \mathbb{R}^{N \times 1 \times H \times W}}$$を生成し、点群の再投影後、有効な画素は1,欠落した画素は0で表示される。
Multiview Image Diffusion for Each Frame
![](https://assets.st-note.com/img/1731202699-GAzrDSsxltmNQu7OeKHL1i8F.png?width=1200)
カメラ軌道が大きな回転や支店の変更を伴う場合、点群ではうまく機能できない。そのため、multiview拡散モデルを使用する。これもさきほどと同様に各フレームごとに別々に画像を変換する。
3D U-Netは2DのText to Imageモデルを拡張したもので、2Dのself attentionを3Dに拡張することで、2Dの空間次元と複数のビュー画像にまたがって処理できる。
条件フレームでカメラのポーズを取得するのは難しいため、CAT3Dに従い、条件画像と同じ次元のraymapを使用する。raymapは最初のカメラポーズから計算され、剛体変換に対してポーズ表現が不変になるようにする。
この手法においても各フレームを独立して処理することにより、時間的一貫性の欠如や異常生成が発生する。CAT3Dは未観測領域を補完できるが、各フレームで異なる方法でこれらの領域を生成する。これらの領域をマスクするために、追加のカメラ動作で失われた領域を示すマスク$${M_a}$$を点群レンダリングと同様のアプローチで取得する。
Masked Video Fine-tuning (second stage)
![](https://assets.st-note.com/img/1731202688-Lhi0MN5kDx9oBCXYFS6l4HpK.png?width=1200)
この段階では、アンカービデオの異常生成を除去し、高品質な出力を行う。これを実現するために、動画拡散モデルにコンテキストを補完するspatial LoRAと時系列動きのLoRA両方を取り入れたmasked fine-tuningを行う。動画拡散モデルの知識を活用することで、アンカービデオに基づいた高品質の動画生成を行う。
Temporal LoRAs with Masked Video Fine-tuning
アンカービデオは煮えない部分のオクルージョンによる異常生成やちらつきなどの時間一貫性の問題がある。これらを解決するために、temporal LoRAを学習する。LoRAはtemporal transformer blockの線形層に適用する。このとき、空間方向のレイヤに関しては固定にすることで、アンカービデオから基本的な動きパターンを学習することに集中する。動画拡散モデルからの強い時系列の一貫性により、生成動画の時系列の一貫性を向上させることができる。
また、アンカービデオの有効でない領域の損失を計算しないmasked diffusion lossを導入した。これによりモデルが意味のある空間からのみ学習できる。推論時は、動画生成モデルが自動的に有効でない領域を埋める。
Context-Aware Spatial LoRAs
動画拡散モデル+Temporal LoRAで自動的に無効な領域を削除できるが、元のコンテキストや見た目を再現できなかったり、黒いピクセルが生じる可能性がある。
![](https://assets.st-note.com/img/1731212612-BYPIWZEXjA18TxKvRQ9CpMNe.png?width=1200)
これを解決するために、空間方向のレイヤにLoRAを取り入れて学習することでこれを解消する。学習時、もとの動画からランダムなフレームを選択し学習する。このとき、temporal layerはスキップする。spatial LoRAは動画からもとのコンテキストを保持しており、元のピクセルと生成したピクセルをシームレスにつなぐ役目をもつ。spatial LoRAとtemporal LoRAの互換性を確保するために、temporal LoRAの訓練に使用する損傷した動画からの特徴も、spatial LoRAに通しますが、このときspatial LoRAのパラメータは更新しない。
Eliminating blurriness
両方のLoRA学習が終了したあと、動画拡散モデルを使用し、新しいカメラモーションを持ちつつ高品質の動画を生成する。最後にボケを軽減するため、spatial LoRAのみを使用してSD-editingで修正する。典型的にSD-editingはランダムに見た目が変化する可能性があるが、spatial LoRAにより元の見た目を維持しつつボケを軽減できる。
実験
![](https://assets.st-note.com/img/1731416133-1cidxrvb7X82m6BGwF3PyKlH.png?width=1200)
![](https://assets.st-note.com/img/1731416160-J3j8MVeQnl4bap9fv0CHsctA.png?width=1200)
提案手法は定量評価において他の手法よりも高い品質の動画を生成できていることがわかる。
![](https://assets.st-note.com/img/1731416072-XZghBoWkFNeKdMOL2VRSwxEJ.png?width=1200)
また、定性的に比較してもカメラの動きの自然さと、移っている物体の一貫性が高いことがわかる。
![](https://assets.st-note.com/img/1731416498-sKuiet3TPVE2YR7Iwo8SXHCA.png?width=1200)
![](https://assets.st-note.com/img/1731416580-MOXfl7eaKTrm2pg5PtRiuAVJ.png?width=1200)
また、zoomやpanなどの基本的の動きのほかに、軌道を変えるなどの操作も行うことができる。
まとめ
userの動画をもとに新しいカメラモーションの動画を生成する手法を提案
動画拡散モデルの事前知識を利用することで、異なる動画やシーンに対して驚くほど強い汎化能力を持ち、複雑なシーンや被写体の動き、およびシーンの詳細を忠実に再現できる