MotionTracking MK-II Plus for AviUtl2
概要
AviUtl2 でオブジェクトトラッキングを行うプラグイン
詳細説明
MotionTracking MK-II Plus for AviUtl2
AviUtl ExEdit2 でオブジェクトトラッキングを行うプラグイン
必要動作環境
- AVX2をサポートしたCPU
- Windows 10以降のOS
- DirectX11.3 が利用できる環境
- AviUtl ExEdit2 version 2.0beta48 以降
- AviUtl ExEdit2 version 2.1.0 にて動作確認済み。
インストール
zip内の.aux2ファイルをAviUtl ExEdit2 が汎用プラグインを読み込むお好きなディレクトリに置いてください。
MotionTracking_modelディレクトリは、MotionTrackingMKIIPlusforAviUtl2.aux2が存在するディレクトリと同じ場所に新規作成してください。
AviUtl ExEdit2 の表示メニューに"MotionTracking MK-II Plus for AviUtl2"が追加されていたら成功です。
また、機械学習を用いたトラッキングアルゴリズムであるDaSiamRPN, Nano, Vitを使用する場合、追加で作業が必要です。(学習データを同梱することが困難であるため)
DaSiamRPN 用
こちらのURLのソースコードにコメントアウトとして記載されているURLより
- dasiamrpn_model.onnx
- dasiamrpn_kernel_r1.onnx
- dasiamrpn_kernel_cls1.onnx
をダウンロードし、MotionTracking_modelディレクトリ内に置いてください。
Nano 用
こちらのURLより
- nanotrack_backbone_sim.onnx
- nanotrack_head_sim.onnx
をダウンロードし、MotionTracking_modelディレクトリ内に置いてください。
Vit 用
こちらのURLより
- vitTracker.onnx
をダウンロードし、MotionTracking_modelディレクトリ内に置いてください。
ヘルパープラグイン
重要
ヘルパープラグインについては、アップデートで対応予定です。現段階では、未実装です。
一つのAUX2ファイルに2つのヘルパープラグインを同梱しています。
-
Pre-track: HSV Cvt
RGB画像をHSVに変換し、それをRGB画像の様に表示させます。また、HSVチャンネルの一つのみを表示させることができます。 -
Pre-track: BGSubtraction
背景から動く物体を分離することを目的とするプラグインです。分離したRGB画像を出力するか、グレースケールのマスクを出力することができます。Rangeの値を大きくしすぎた場合、メモリ不足を引き起こす可能性がありますので、ご注意ください。
ヘルプ
MotionTracking MK-II Plus
使用方法
- トラッキングしたいフレームの範囲を選択する。
- 「Select Object」ボタンをクリックし、ポップアップウィンドウ内で追跡するオブジェクトをドラッグして指定する。ポップアップウィンドウをxまたはF3で閉じる。
- 「Analyze」ボタンをクリックし、解析終了まで待つ。解析を中断するには、x ボタンをクリックする。
- 「View Result」ボタンをクリックし、結果を確認。もし結果が良かった場合は、「Invert Position」オプションを用途によって有効化し、「Insert Object」をクリックしてInset Object または、Object ファイルを保存する。よくなかった場合は、「Clear Result」をクリックして、結果を削除し、ステップ0か1に戻る。
Export Object File
正常な結果に1フレームのみ挟まれたエラーの自動補正機能が搭載されています。
CJKファイル名もサポートされています。
オプション
プルダウンメニューのオプション
Method
解析で使用するアルゴリズムを指定します
- Multi Instance Learning
- KCF
- CSRT
- DaSiamRPN
- Nano
- Vit
Hue
Object SelectionやView Resultで表示される矩形の色相を指定します。
Wnd Scale
Select Object / View Result で表示されるウィンドウの表示倍率を設定します。0.00~1.00 の範囲で指定できます。一番右(--)で無効になります。
外部から強制的に画面サイズを変更している関係上、View Result でトラックバーが極端に小さくなる不具合があります。View Result で利用する場合は、お気を付けください。
Smooth (Savitzky–Golay filter)
解析結果の震えを抑制します。
- Strength : Weak / Medium / Strong / Custom からフィルタの強さを選択する。
Window > Polyorderが必須条件のため、これを満たさないとエラーになる。 - Window : 計算に使用するデータ点数を指定する。
3, 5, 7, 9, 11の中から指定可能。大きすぎる場合、数値の細かな特徴が失われる。小さすぎる場合、ノイズが十分に除去されない。 - Polyorder : 近似に用いる多項式の次数。
2, 3, 4の中から指定可能。高すぎる場合、過剰なフィッティングに伴い、新たなノイズが生じる可能性がある。低すぎる場合、平滑化されすぎるため、大きな動きに追従できない可能性がある。
Insert Object のオプション
- As Sub-filter/部分フィルタ? : 部分フィルタとして出力するか
- Invert Position : トラッキング結果の座標を反転させるか
- Ignore Aspect Ratio : アスペクト比を無視し、拡大率で出力するか
Pre-track:BGSubtraction
重要
Pre-track:BGSubtraction については、アップデートで対応予定です。現段階では、未実装です。
共通パラメータ
- Range : 現在のフレームの前後何フレームを解析に使用するか [30]
- Shadow : 1= 影の検出を有効化 [0]
MOG2のみ
- NMix : 背景モデルのガウス成分の数 [5]
- BG% : 背景比率 [70%]
KNNのみ
- d2T : あるピクセルがそのサンプルに近いかどうかを判断するための、ピクセルとサンプルの距離の2乗のしきい値
ソースからのビルド
.github/workflows/build.ymlをご覧ください。
以下では、Windows上でMSVCを用いてビルドする手順(Release版/Debug版共通)を説明します。
必要なもの
- Windows 10/11
- Visual Studio 2022 (「C++によるデスクトップ開発」ワークロード。MSVC v143 ツールセット、Windows 10/11 SDK を含む)
- Git(サブモジュール取得のため)
- Python 3.13 以上
- Poetry(Pythonの依存関係・仮想環境管理。この後の手順でConanをインストールするために使用)
- Chocolatey(make / CMake の導入に使用)
- make
- CMake 3.20 以上
Python は python.org のインストーラーを使うか、winget で導入できます。
winget install --id Python.Python.3.13 -e
winget 版はインストール時に py ランチャーと PATH を自動設定します。インストール後は新しいシェルを開いて、py --version が 3.13 以上を返すことを確認してください。
補足: 通常は不要ですが、過去に Python を使っていた環境などで Microsoft Store のダミー(
WindowsApps\python.exe)が優先され、pythonコマンドが Store を開いてしまう場合は、「設定 > アプリ > アプリ実行エイリアス」でpython.exe/python3.exeを無効化してください。
1. リポジトリの取得
サブモジュール(src/aviutl2_sdk)を含めて取得してください。
git clone --recursive https://github.com/nullruptr/MotionTracking_MK-II_Plus_for_AviUtl2.git
cd MotionTracking_MK-II_Plus_for_AviUtl2
すでにサブモジュールなしでクローン済みの場合は、以下で取得できます。
git submodule update --init --recursive
2. Poetry のインストール
公式のインストーラーを使用してインストールしてください。(Poetry公式ドキュメント)
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
インストール後、poetry --version が実行できることを確認してください。PATHが通っていない場合は、以下を実行して Poetry のインストール先(%APPDATA%\pypoetry\venv\Scripts)をユーザーの PATH に追加してください。
$p = "$env:APPDATA\pypoetry\venv\Scripts"
[Environment]::SetEnvironmentVariable("Path",[Environment]::GetEnvironmentVariable("Path","User")+";$p","User")
PATH の変更は新しく開いたシェルから有効になります。シェルを再起動してから poetry --version を再確認してください。
3. Conan のセットアップ
リポジトリのルートで、以下を実行し、Poetryの仮想環境(Conanを含む)を作成します。
poetry install
これにより、pyproject.tomlに記載されているconan(Conan 2系)が仮想環境内にインストールされます。以降のConanコマンドはpoetry run conan ...のように実行します。
Conanを初めて使用する場合(~/.conan2/profiles/defaultが存在しない場合)は、ビルド環境用(build context用)のデフォルトプロファイルを1度だけ作成してください。
poetry run conan profile detect --force
なお、実際にビルドで使用するホスト側(host context)のプロファイルは、リポジトリに同梱されている以下のファイルを使用します(手動での作成は不要です)。
- Release版:
profiles/msvc-release - Debug版:
profiles/msvc-debug
4. MSVC でのビルド
依存ライブラリ(OpenCV)のビルドを含むため、初回は時間がかかります(30分以上かかる場合があります)。
ビルドは「x64 Native Tools Command Prompt for VS 2022」または「Developer PowerShell for VS 2022」から実行することを推奨します。
make / CMake のセットアップ
make と CMake は Chocolatey からインストールします(CI と同じ構成)。
Chocolatey が未導入の場合は、公式手順に従い、管理者権限の PowerShell で先にインストールしてください。
その後、管理者権限の PowerShell(スタートメニューで「PowerShell」を右クリック →「管理者として実行」)で、以下を実行してください。
choco install make -y
choco install cmake -y
インストール後は新しいシェルを開いて、make --version と cmake --version(3.20 以上)が実行できることを確認してください(PATH は Chocolatey が自動で設定します)。
補足: Visual Studio 2022 の「C++によるデスクトップ開発」ワークロードには CMake が同梱されており、「Developer PowerShell for VS 2022」から実行する場合はそちらが PATH に入るため、
choco install cmakeは不要です(入れても問題ありません)。
make のセットアップ完了後、下記内容を実行します。
cd src
# Release 版
make compile
# Debug 版
make compile-debug
clangd を利用する場合は、ビルド後に make compdb を別途実行して compile_commands.json を生成してください。
5. ビルド成果物
ビルドが成功すると、以下の場所に.aux2ファイルが生成されます。
- Release版:
src/build/build/Release/MotionTrackingMKIIPlusforAviUtl2.aux2 - Debug版:
src/build-debug/build/Debug/MotionTrackingMKIIPlusforAviUtl2.aux2
生成された.aux2ファイルと、MotionTracking_modelディレクトリを、AviUtl ExEdit2 が汎用プラグインを読み込むディレクトリに配置してください(詳細は上記「インストール」の項を参照)。
6. デバッグの方法
デバッグは以下の手順で行います。
- ビルドで生成された Debug版の
MotionTrackingMKIIPlusforAviUtl2.aux2とMotionTrackingMKIIPlusforAviUtl2.pdbをプラグインを読み込むディレクトリにコピー src/build-debug/build/MotionTrackingMKIIPlusforAviUtl2.slnをVisual Studioで開く- ソリューションエクスプローラーで、
MotionTrackingMKIIPlusforAviUtl2を右クリック - 右クリックメニューより、
スタートアップ プロジェクトに設定をクリック MotionTrackingMKIIPlusforAviUtl2が太字になっていることを確認する- 再度、
MotionTrackingMKIIPlusforAviUtl2を右クリック -> プロパティ ->MotionTrackingMKIIPlusforAviUtl2 プロパティ ページを開く - 画面左のツリーを、構成プロパティ -> デバッグの順で開く
- コマンドに
aviutl2.exeが存在するフルパスを入力(AviUtl2 のデフォルト設定ならC:\Program Files\AviUtl2\aviutl2.exe) - 作業ディレクトリに
aviutl2.exeが存在するフォルダパスを入力(AviUtl2 のデフォルト設定なら、C:\Program Files\AviUtl2) プロパティ ページ変更内容を適用し、閉じる- F5 でデバッグを開始