π Challenge Page | π Dataset | π₯ Baseline Code | π Leaderboard
The SMOT4SB (Small Multi-Object Tracking for Spotting Birds) challenge aims to advance object tracking and detection techniques for small objects in real-world scenarios. Participants are expected to develop tracking methods that improve the SO-HOTA (Small Object Higher-Order Tracking Accuracy) metric, a new evaluation criterion tailored for this challenge.
πΉ Task: Small Multi-Object Tracking
πΉ Dataset: SMOT4SB dataset
πΉ Metric: SO-HOTA
For more details, visit the challenge webpage.
Additionally, the SOD4SB Challenge@MVA2023 baseline model (GitHub repository) and dataset (Google Drive) are also available for use.
The submission format follows the TrackEval's format, which is based on the MOT Challenge format, as shown below:
1,1,912,484,97,109,0,7,1
2,1,912,484,97,109,0,7,1
3,1,912,484,97,109,0,7,1
...
The meaning of each column may differ between ground truth (GT) and predictions (pred). Please refer to the table below for details.
cols | GT | pred |
---|---|---|
1 | frame | |
2 | track id | |
3 | bbox left | |
4 | bbox top | |
5 | bbox width | |
6 | bbox height | |
7 | evaluation flag (0 means not evaluated) |
confidence (evaluated even if 0) |
8 | class id (fixed 1 for bird only) | |
9 | visibility ratio (set to 1) |
- Python 3.8.20
- FFmpeg (Required if using the visualizer in scripts/visualize_for_mot_sub.py)
To properly clone this repository along with its submodules, use the following command:
git clone --recurse-submodules https://github.com/IIM-TTIJ/MVA2025-SMOT4SB.git
cd MVA2025-SMOT4SB
Download the SMOT4SB dataset from here, and place it under datasets
. The directory structure should look like this:
datasets
β SMOT4SB
γ β train
γ β pub_test
γ β private_test
γ β annotations
After that, run the following command to format the dataset according to the baseline code and place it in OC_SORT/datasets
:
python3 scripts/prepare_dataset.py
pip3 install -r requirements.txt
pip3 install git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI
cd OC_SORT
python3 setup.py develop
cd ..
First, run the following command under the project root to get the COCO-pretrained YOLOX model and save it under OC_SORT/pretrained:
mkdir OC_SORT/pretrained
wget -P OC_SORT/pretrained https://github.com/Megvii-BaseDetection/storage/releases/download/0.0.1/yolox_x.pth
You can also use any model from this link.
To train the model, run the following command:
sh scripts/train.sh -f OC_SORT/exps/smot4sb.py -d 8 -b 48 --fp16 -c OC_SORT/pretrained/yolox_x.pth
Outputs will be saved under YOLOX_outputs/smot4sb
.
To make predictions using the trained model, run the following command:
sh scripts/predict.sh -f OC_SORT/exps/smot4sb.py --path OC_SORT/datasets/SMOT4SB/pub_test --ckpt YOLOX_outputs/smot4sb/best_ckpt.pth.tar
Outputs will be saved under YOLOX_outputs/smot4sb/predictions
as MOT Challenge format.
To submit the predictions, you need to compress the prediction txt files into a zip file. Run the following command to do so:
python3 scripts/create_submission.py -i YOLOX_outputs/smot4sb/predictions/pub_test/
The submission file will be saved as <YYYY-MM-DD_hh-mm-ss>.zip
.
Once the submission file is generated, go to the CodaBench Submission Page and upload your zip file under the My Submission tab. Your submission will be evaluated automatically, and the results will be displayed on the leaderboard.
To visualize the predictions, run the following command:
python3 scripts/visualize_for_mot_ch.py -m YOLOX_outputs/smot4sb/predictions/pub_test/0001.txt -o visualized_video -i OC_SORT/datasets/SMOT4SB/pub_test/0001 --mp4 --show-bbox
This will generate a video named visualized_video.mp4
in the cwd.
The 0001
represents the video name, matching a subdirectory under datasets/SMOT4SB/pub_test
. To process a different video, replace 0001
in both the -m
and -i
options with the corresponding video name.
For evaluation, the ground truth (GT) and predictions must be in the format and directory structure compatible with TrackEval. The following commands prepare the necessary files:
# Make predictions on the validation data
sh scripts/predict.sh -f OC_SORT/exps/smot4sb.py --path OC_SORT/datasets/SMOT4SB/val --ckpt YOLOX_outputs/smot4sb/best_ckpt.pth.tar
# Modify the directory structure of the predictions
python scripts/cp_preds_for_eval.py -i YOLOX_outputs/smot4sb/predictions/val/ -o eval_inputs
# Prepare the GT
python3 scripts/oc_sort_ann_to_mot_ch.py -i OC_SORT/datasets/SMOT4SB/annotations/val.json -o eval_inputs
The conversion results will be output to the eval_inputs
directory.
Next, evaluate using the following command:
python3 TrackEval/scripts/run_smot4sb_challenge.py eval_inputs eval_outputs val --metric-smot4sb
The evaluation results will be saved in the eval_outputs
directory.
π Sample detection and tracking results:
![]() Public test (0001) |
![]() Public test (0004) |
If you use this baseline, please cite:
@inproceedings{mva2025_smot4sb_challenge,
title={{MVA2025 Small Multi-Object Tracking for Spotting Birds Challenge: Dataset, Methods, and Results}},
author={Yuki Kondo and Norimichi Ukita and Riku Kanayama and Yuki Yoshida and Takayuki Yamaguchi and [Challenge winners]},
booktitle={2025 19th International Conference on Machine Vision and Applications (MVA)},
note={\url{https://www.mva-org.jp/mva2025/challenge}},
year={2025}}
Note: This paper is scheduled to be published in July 2025, and the title and other details are subject to change.
@misc{baselinecode_mva2025_smot4sb_challenge,
title={{Baseline code for SMOT4SB by IIM-TTIJ}},
author={Riku Kanayama and Yuki Yoshida and Yuki Kondo},
license={MIT},
url={\url{https://github.com/IIM-TTIJ/MVA2025-SMOT4SB}},
year={2025}}
We welcome contributions! If you find any issues or want to improve this repository, please submit a pull request.