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で表示される矩形の色相を指定します
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をインストールするために使用)
- CMake 3.20 以上
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が通っていない場合は、シェルを再起動するか、PATHを追加してください。
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 のセットアップ
make は、Make for Windowsを利用します。
インストールするものは、Descriptionにある、Complete package, except sourcesの、Setup です。
ダウンロードが完了したら、インストーラから make をインストールします。
インストール後、パスを通してセットアップしてください。
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 でデバッグを開始