フィルタプラグイン

TrackingStabilizer for AviUtl ExEdit2

概要

トラッキング手振れ補正

詳細説明

TrackingStabilizer for AviUtl ExEdit2

AviUtl ExEdit2 向けの手ブレ補正(スタビライズ)フィルタ効果プラグインです。

解説動画: 使い方の紹介動画 (ニコニコ動画)

MotionTracking MK-II Plus for AviUtl2
など、モーショントラッキングプラグインが出力した追跡点(図形オブジェクト)の
座標を読み取り、基準フレームからの移動量を打ち消す方向に映像を動かすことで、
手ブレを補正します。

自前の画像処理は行わず、AviUtl ExEdit2 本体が持つ「他オブジェクトの座標を
参照するAPI」だけを使って補正しているため、処理は軽量です。

特長

  • モーショントラッキングプラグインとの連携だけで動作し、追加の解析処理は不要
  • 移動平均によるノイズ低減(低フレームレート書き出し時のガタつき対策)
  • 平行移動(X/Y)に加えて、回転(ロール)・拡大縮小ブレの補正にも対応(任意)
  • 補正強度・軸ごとのON/OFFなど、細かい調整が可能
  • 追跡対象が見つからない場合も処理を継続する安全設計(クラッシュ対策)

動作イメージ

  1. モーショントラッキングプラグインで、映像内の動かない特徴点(壁の角、看板など)を追跡し、その結果を図形オブジェクトとしてタイムラインに挿入する
  2. 補正したい映像オブジェクトのフィルタ効果に本プラグインを追加する
  3. 追跡結果の図形があるレイヤー番号と、基準フレーム(ブレ無しとする基準位置、通常は先頭フレーム)を指定する
  4. 図形の移動量の符号を反転した値が、毎フレーム映像へ自動的に加算される
  5. (任意)回転・拡縮ブレも補正したい場合は、別の特徴点をもう1つ追跡し、2点を結ぶ直線の角度・距離のズレを同様に打ち消す

ダウンロード

ビルド済みの TrackingStabilizer.auf2Releases から
ダウンロードできます。.auf2 ファイルを AviUtl ExEdit2 のプレビュー画面へ
ドラッグ&ドロップすればインストールできます。

設定項目

平行移動(X/Y)

項目 説明
追跡レイヤー1 追跡結果の図形オブジェクトがあるレイヤー番号
基準フレーム ブレが無いとみなす基準フレーム(通常は映像の先頭)
補正強度(%) 100%で移動量をそのまま打ち消す
平滑化(フレーム) トラッキングの細かいノイズを均す移動平均の幅
X軸を補正する / Y軸を補正する 軸ごとの補正ON/OFF
移動量を反転して適用する 通常はON。トラッキング側で座標を反転済みの場合はOFF

回転・拡縮ブレ補正(任意)

項目 説明
追跡レイヤー2 回転・拡縮補正用の2点目の図形オブジェクトがあるレイヤー番号
回転を補正する ONにすると、追跡レイヤー1・2の2点を使って回転(ロール)ブレを補正する
回転を反対にする 補正が逆向きに回ってしまう場合にON
拡縮を補正する ONにすると、2点間の距離の変化から拡大縮小ブレを補正する
拡縮を反転する 補正が逆向き(拡大縮小が逆)になってしまう場合にON
回転補正強度(%) 100%で回転ズレをそのまま打ち消す
拡縮補正強度(%) 100%で拡縮ズレをそのまま打ち消す

回転・拡縮補正には、追跡レイヤー1とは別に2点目のトラッキングが必要です。
1点だけの追跡では「回転・拡縮した」のか「平行移動した」のか区別できないため、
どちらの補正にも必ず2点の追跡が必要になります。回転は2点を結ぶ直線の角度
の変化、拡縮は2点間の距離の変化を見て、それぞれ独立にON/OFFできます。

回転・拡縮はオブジェクト自身の中心を軸に行われるため、素直に適用するだけでは
追跡レイヤー1の点がその中心の周りに引きずられてズレてしまいます。そのため、
回転・拡縮を適用した場合に追跡レイヤー1の点がどこへ移動するかを計算したうえで、
その点が正しい位置に来るように平行移動量を補い直しています(v1.05)。

使い方

  1. モーショントラッキングプラグインで追跡用の図形を作成する
    • 「部分フィルタとして挿入」はOFFのまま(実体のある図形オブジェクトとして
      挿入する。部分フィルタはエフェクトのみで座標を読み取れません)
    • 「Invert Position」もOFFのまま(素直にブレと同じ方向に動く図形にし、
      本プラグイン側で符号反転します)
  2. 補正したい映像オブジェクトのフィルタ効果一覧から「手ブレ補正」を追加する
  3. 「追跡レイヤー1」に手順1で図形を挿入したレイヤー番号を指定する
  4. 「基準フレーム」にブレの無い基準フレームを指定する
  5. プレビューで確認しながら、補正強度・平滑化を調整する
  6. (任意)回転・拡縮ブレも補正したい場合、手順1と同様にもう1つ別の特徴点を
    追跡して図形を挿入し、「追跡レイヤー2」にそのレイヤー番号を指定したうえで
    「回転を補正する」「拡縮を補正する」をONにする。補正が逆向きにかかる場合は
    それぞれの「反転する」をONにする

制限事項

  • 手ブレ補正のぶん映像端に隙間が出ることがあります。必要に応じて「リサイズ」
    フィルタ等で少し拡大してください
  • 基準フレームは、追跡結果の図形オブジェクトが存在する範囲内のフレームを
    指定してください(範囲外だと基準座標の取得に失敗し、補正がかからなくなります)
  • 撮影者自身が歩いたり走ったりしている映像には向きません(基準フレームの位置に
    固定しようとするため、意図した移動まで打ち消そうとして破綻します)。この
    ようなケースは、多点トラッキング+経路の平滑化を行う本格的なスタビライザー
    (例: Adobe Warp Stabilizer、Gyroflow等)が必要な領域です

ビルド方法

Windows + Visual Studio 2022(「C++によるデスクトップ開発」ワークロード)と
CMake 3.20以上が必要です。

cmake -B build -A x64
cmake --build build --config Release

build\Release\TrackingStabilizer.auf2 が生成されます。

ライセンス

このリポジトリのコード(TrackingStabilizer.cpp, CMakeLists.txt)は
MITライセンスです。aviutl2_sdk フォルダ内のヘッダーファイルは
AviUtl ExEdit2 Plugin SDK(Kenkun氏、MITライセンス)のものを含んでいます。
詳細は aviutl2_sdk/license.txt を参照してください。