Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run the votchallenge.net benchmark on mosse-tracker #6

Merged
merged 27 commits into from
Oct 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
fd26cf6
silence linter warning about camelcase
alsuren Sep 30, 2022
b412b79
skeleton implementation of vot challenge protocol
alsuren Sep 30, 2022
93b0a4f
also commit generated config.yaml
alsuren Oct 3, 2022
35ddb27
use env_logger in votchallenge example
alsuren Oct 3, 2022
a09d7c1
REVERTME: temporarily ignore files needed by vot challenge framework
alsuren Oct 3, 2022
b3ae7ef
REVERTME: use debug profile to reduce iteration time for protocol non…
alsuren Oct 3, 2022
f3baff1
use anyhow in votchallenge example
alsuren Oct 3, 2022
1e6720b
remove unused imports
alsuren Oct 3, 2022
7973eb1
parse Image and Region from init message
alsuren Oct 3, 2022
df720b1
split votchallenge.rs into multiple files
alsuren Oct 4, 2022
7ed8354
rename server.make_hello_message()
alsuren Oct 4, 2022
dac02aa
add fixme
alsuren Oct 4, 2022
533c177
impl Debug for MosseTracker
alsuren Oct 4, 2022
120384b
implement process_init()
alsuren Oct 4, 2022
8380d6d
implement 'track' message (Test concluded successfuly)
alsuren Oct 4, 2022
ba261d1
debug predictions as images
alsuren Oct 6, 2022
73795a0
get x and y the right way around
alsuren Oct 6, 2022
9bdcc25
get the square in the right place
alsuren Oct 6, 2022
dc31f10
compile in release mode; skip debug image writing
alsuren Oct 6, 2022
58e8546
be more desperate for scientific benchmark
alsuren Oct 6, 2022
f634202
move the vot nonsense into examples/votchallenge; write README
alsuren Oct 6, 2022
e7bdc8d
copy comment updates from my trackers.ini file
alsuren Oct 6, 2022
2534384
run vot analysis and include outputs
alsuren Oct 6, 2022
060ad57
clean up some FIXMEs
alsuren Oct 6, 2022
71b68f1
try min(width, height) as window size
alsuren Oct 7, 2022
a226dbb
describe how to re-run the analysis
alsuren Oct 7, 2022
be1d571
Use max(width, height) as window size
alsuren Oct 7, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,15 @@
target/
.DS_Store

# python venv for the `vot` tool
examples/votchallenge/vot_venv

# folders generated by the `vot` tool
examples/votchallenge/results
examples/votchallenge/sequences
examples/votchallenge/logs
examples/votchallenge/analysis
examples/votchallenge/cache

# config file for `vot` that needs to be hand-edited per machine
examples/votchallenge/trackers.ini
111 changes: 111 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ rusttype = "0.9.2"
wasm-bindgen = { version = "0.2" }

[dev-dependencies]
anyhow = "1.0.65"
env_logger = "0.9.1"
log = "0.4.17"
time = "0.3.11"

[profile.release]
Expand Down
1 change: 1 addition & 0 deletions examples/votchallenge/.python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.9.14
93 changes: 93 additions & 0 deletions examples/votchallenge/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# Running the votchallenge.net benchmarks against mosse-tracker

These instructions are adapted from https://www.votchallenge.net/howto/tutorial_python.html

All instructions assume that you are in this directory.

## Installing vot tool in a python virtualenv

First, you need to install the vot python tool, to run the benchmarks.

At the time of writing, vot does not work with python 3.10 on macos (import error when starting up), so you may need to use an older version.

```bash
cd examples/votchallenge # if you are not already here

python3.9 -m venv vot_venv
source vot_venv/bin/activate
pip install git+https://github.com/votchallenge/vot-toolkit-python
```

## Set things up for this project

```bash
cd examples/votchallenge # if you are not already here

cargo build --release --example=votchallenge
cp trackers.template.ini trackers.ini
```

Then change the last line of your new `trackers.ini`, to point at your
`target/release/examples/votchallenge` executable. This must be an absolute path.

## Check with a dummy sequence

```bash
cd examples/votchallenge && source vot_venv/bin/activate # if you are not already here

vot test MosseRust
```

## Run the full benchmark suite

```bash
cd examples/votchallenge && source vot_venv/bin/activate # if you are not already here

vot test MosseRust
```

This only uses a couple of cores, and take around 30 minutes, so go make yourself a cup of tea. You should see output like this:

```
Downloading sequence dataset "VOT2020" with 60 sequences.
Downloading |███████████████████████████████████████████████████████████████████████████| 100% [02:30<00:00]
Download completed
Loading dataset |███████████████████████████████████████████████████████████████████████████| 100% [00:00<00:00]
Loaded workspace in '/Users/alsuren/src/mosse-tracker/examples/votchallenge'
Found data for 1 trackers
Evaluating tracker MosseRust
MosseRust/baseline |███████████████████████████████████████████████████████████████████████████| 100% [13:24<00:00]
MosseRust/realtime |███████████████████████████████████████████████████████████████████████████| 100% [13:11<00:00]
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's no difference between our scores for these two. I think that they represent 1. and 2. in the paper, but I'm not sure. We're given them as bounding boxes because that's all we support. It might be better to use an older benchmark dataset that only deals in terms of bounding boxes, to give ourselves less of a handicap.

  1. VOT-ST2020 challenge: This challenge was addressing short-term track-
    ing in RGB images and has been running since VOT2013 with annual up-
    dates and modifications. A significant novelty compared to 2019 was that
    the target position was encoded by a segmentation mask.
  2. VOT-RT2020 challenge: This challenge addressed the same class of track-
    ers as VOT-ST2020, except that the trackers had to process the sequences in
    real-time. The challenge was introduced in VOT2017. A significant novelty
    compared to 2019 was that the target position was encoded by a segmenta-
    tion mask.
  3. VOT-LT2020 challenge: This challenge was addressing long-term track-
    ing in RGB images. The challenge was introduced in VOT2018. The target
    positions were encoded by bounding boxes.
  4. VOT-RGBT2020 challenge: This challenge was addressing short-term
    tracking in RGB+thermal imagery. This challenge was introduced in VOT2019
    and can be viewed as evolution of the VOT-TIR challenge introduced in
    VOT2015. The target positions were encoded by bounding boxes.
  5. VOT-RGBD2020 challenge: This challenge was addressing long-term
    tracking in RGB+depth (RGBD) imagery. This challenge was introduced
    in VOT2019. The target positions were encoded by bounding boxes.

I've kind-of ignored the unsupervis results, because I'm not sure what they mean.

MosseRust/unsupervis |███████████████████████████████████████████████████████████████████████████| 100% [01:34<00:00]
Evaluation concluded successfuly
```

## Checking your scores

```bash
cd examples/votchallenge && source vot_venv/bin/activate # if you are not already here

vot analysis MosseRust
```

This is a bit quicker, and will give you something like:

```
Loading dataset |██████████████████████████████████████████████████████████████████████████████████| 100% [00:00<00:00]
Loaded workspace in '/Users/alsuren/src/mosse-tracker/examples/votchallenge'
Found data for 1 trackers
Running analysis |██████████████████████████████████████████████████████████████████████████████████| 100% [00:21<00:00]
Analysis successful, report available as 2022-10-06T22-54-20.997015
```

You can then open ./analysis/2022-10-06T22-54-20.997015/report.html in your web browser, to view the results.

## Rerunning the analysis after making a change

```bash
cd examples/votchallenge && source vot_venv/bin/activate # if you are not already here

cargo build --release --example=votchallenge
rm -rf cache/ results/
vot evaluate MosseRust && vot analysis MosseRust
```
3 changes: 3 additions & 0 deletions examples/votchallenge/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
registry:
- ./trackers.ini
stack: vot2020
Loading