Skip to content

Commit

Permalink
Support Vit
Browse files Browse the repository at this point in the history
  • Loading branch information
Mr-Ojii committed Jan 4, 2024
1 parent 3516ebb commit 8f32669
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 7 deletions.
13 changes: 10 additions & 3 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ zip内の.aufファイルと.xmlファイルを`aviutl.exeと同じディレク

AviUtlのフィルタメニューに"MotionTracking MK-II Plus"が追加されていたら成功です。

また、機械学習を用いたトラッキングアルゴリズムであるMethod 4, 5, 6を使用する場合、追加で作業が必要です。(学習データを同梱することが困難であるため)
また、機械学習を用いたトラッキングアルゴリズムであるMethod 4, 5, 6, 7を使用する場合、追加で作業が必要です。(学習データを同梱することが困難であるため)

### Method 4 (GOTURN)用
[こちらのURL](https://github.com/opencv/opencv_extra/tree/c4219d5eb3105ed8e634278fad312a1a8d2c182d/testdata/tracking)よりそれぞれのデータをダウンロード・分割ZIPを解凍し、
Expand All @@ -42,14 +42,20 @@ AviUtlのフィルタメニューに"MotionTracking MK-II Plus"が追加され

をダウンロードし、`aviutl.exeと同じディレクトリ`に置いてください。

### Method 7 (Vit)用
[こちらのURL](https://github.com/opencv/opencv_extra/blob/4.x/testdata/dnn/onnx/models/vitTracker.onnx)より

- vitTracker.onnx

をダウンロードし、`aviutl.exeと同じディレクトリ`に置いてください。

## ヘルパープラグイン
一つのAUFファイルに2つのヘルパープラグインを同梱しています。

1. Pre-track: HSV Cvt
RGB画像をHSVに変換し、それをRGB画像の様に表示させます。また、HSVチャンネルの一つのみを表示させることができます。

2. Pre-track: BGSubtraction
2. Pre-track: BGSubtraction
背景から動く物体を分離することを目的とするプラグインです。分離したRGB画像を出力するか、グレースケールのマスクを出力することができます。Rangeの値を大きくしすぎた場合、メモリ不足を引き起こす可能性がありますので、ご注意ください。


Expand All @@ -62,6 +68,7 @@ RGB画像をHSVに変換し、それをRGB画像の様に表示させます。
4. GOTURN
5. DaSiamRPN
6. Nano
7. Vit
#### 使用方法
0. トラッキングしたいフレームの範囲を選択する。
1. 「1. Select Object」ボタンをクリックし、ポップアップウィンドウ内で追跡するオブジェクトをドラッグして指定する。ポップアップウィンドウを閉じる。
Expand All @@ -87,7 +94,7 @@ CJKファイル名もサポートされています。

## ソースからのビルド
1. `git clone https://github.com/Mr-Ojii/MotionTracking_MKII_Plus.git`を実行
2. OpenCV 4.8.0 を静的ライブラリとしてビルド(DebugとRelease両方)
2. OpenCV 4.9.0 を静的ライブラリとしてビルド(DebugとRelease両方)
3. `src/CMakeLists.txt`よりVSのプロジェクトを生成
4. Visual Studioを用いてビルド

Expand Down
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ Additional work is required if Methods 4, 5, or 6 are to be used.

2. Dump each files into `AviUtl's root folder`

### For Method 7 (Vit)
1. Download the following file from [this URL](https://github.com/opencv/opencv_extra/blob/4.x/testdata/dnn/onnx/models/vitTracker.onnx)

- vitTracker.onnx

2. Dump each files into `AviUtl's root folder`

## Helper Plugins
The single AUF actually contains two more helper plugins:
Expand All @@ -63,6 +69,7 @@ BGSubtraction aims to isolate the moving object from the background. It can outp
4. GOTURN
5. DaSiamRPN
6. Nano
7. Vit
#### Steps
0. Mark a section to track
1. Click 1st button, Drag a box on the object to be tracked(in popup Window). Close the popup Window.
Expand All @@ -88,7 +95,7 @@ Support CJK filename

## Building From Source
1. Run `git clone https://github.com/Mr-Ojii/MotionTracking_MKII_Plus.git`
2. Build your own OpenCV 4.8.0 STATIC (Both Debug and Release builds)
2. Build your own OpenCV 4.9.0 STATIC (Both Debug and Release builds)
3. Generate VS project file from src/CMakeLists.txt
4. Build with Visual Studio

Expand Down
17 changes: 14 additions & 3 deletions src/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
#include "opencv2\video\tracking.hpp"
#include "resource.h"

#define METHOD_N 6
TCHAR* track_method[] = { "MIL", "KCF", "CSRT", "GOTURN", "DaSiamRPN", "Nano"};
#define METHOD_N 7
TCHAR* track_method[] = { "MIL", "KCF", "CSRT", "GOTURN", "DaSiamRPN", "Nano", "Vit"};

#define TRACK_N 1 // トラックバーの数
TCHAR *track_name[] = { "Method" }; // トラックバーの名前
Expand Down Expand Up @@ -507,14 +507,25 @@ BOOL func_WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam, void *e
tracker = cv::TrackerDaSiamRPN::create(params);
break;
}
default:
case 5:
{
auto params = cv::TrackerNano::Params();
params.backbone = "nanotrack_backbone.onnx";
params.neckhead = "nanotrack_head.onnx";
tracker = cv::TrackerNano::create(params);
break;
}
default:
{
//なんか2つモデルがあるが、上のほうが良い?
//https://github.com/opencv/opencv_extra/blob/4.x/testdata/dnn/onnx/models/vitTracker.onnx
//https://github.com/opencv/opencv_zoo/blob/main/models/object_tracking_vittrack/object_tracking_vittrack_2023sep.onnx

auto params = cv::TrackerVit::Params();
params.net = "vitTracker.onnx";
tracker = cv::TrackerVit::create(params);
break;
}
}
}
catch (cv::Exception e)
Expand Down

0 comments on commit 8f32669

Please sign in to comment.