# Appendix for OA-SORT

## Realization and Discussion 
The `Appendix.pdf` exhibits the Pseudo-code about OAM, OAO, and BAM as well as how to utilize them for completing association. In addition, the file has the additional discussion.

## How to Evaluate
* For validation set, you can follow the [TrackEval protocol](https://github.com/DanceTrack/DanceTrack/tree/main/TrackEval) for evaluation on the officially released validation set. 
* You can also follow [one provided by Hybrid-SORT](https://github.com/ymzis69/HybridSORT). After preparing the dataset, run instruction for outputs `*.txt` in its root. For example:

```python
python trackeval/scripts/run_mot_challenge.py  --SPLIT_TO_EVAL val  --METRICS HOTA CLEAR Identity --GT_FOLDER datasets/dancetrack/val --SEQMAP_FILE datasets/dancetrack/val/val_seqmap.txt --SKIP_SPLIT_FOL True --TRACKERS_TO_EVAL '' --TRACKER_SUB_FOLDER ''  --USE_PARALLEL True --NUM_PARALLEL_CORES 8 --PLOT_CURVES False --TRACKERS_FOLDER {Results_folder:}
```

* For test set, you need to submit the results `*.txt` to the corresponding site, i.e., [DanceTrack evaluation site](https://codalab.lisn.upsaclay.fr/competitions/5830), [MOTChallenge](https://motchallenge.net/), [SportsMOT evaluation site](https://codalab.lisn.upsaclay.fr/competitions/12424).

## Final Key Results and Their Raw Data
In this appendix, we provide [OA-SORT results in DanceTrack-Val](Experiment/oasort_dancetrack_val/), [OA-SORT results in MOT17-test](Experiment/oasort_mot17_test/), and [etc.](./Experiment/). In addition, we provide the results of other trackers after integrating with occlusion-awareness, including sort (OA-sort), ByteTrack (OA-Byte), OC-SORT (OA-OC), SparseTrack (OA-Sparse), PD-SORT (OA-PD), and so on. You could get evaluated resutls according to code or the corresponding site, and the evaluted results are obtained as follows:

| Method       |    Dataset     | HOTA| MOTA| AssA| IDF1|IDSW|Results Path|
|--------------|----------------|-----|-----|-----|-----|----|----|
|OA-sort       |DanceTrack-val  |50.43|89.16|34.43|53.26|1,816|[Results Path](./Experiment/sort_dancetrack_val/)|
|OA-OC         |DanceTrack-val  |53.78|88.95|37.16|53.92|2,136|[Results Path](./Experiment/oaoc_dancetrack_val/)|
|OA-Byte       |DanceTrack-val  |49.32|88.30|34.69|55.71|1,814|[Results Path](./Experiment/oabyte_dancetrack_val)|
|OA-SORT       |DanceTrack-val  |61.49|89.73|48.03|63.65|1,603|[Results Path](./Experiment/oasort_dancetrack_val)|
|TrackTrack    |DanceTrack-val  |59.33|90.31|44.55|61.13|1,540|[Results Path](./Experiment/tracktrack_dancetrack_val_base)|
|OA-TrackTrack |DanceTrack-val  |59.84|90.27|45.43|62.04|1,525|[Results Path](./Experiment/tracktrack_dancetrack_val_OAO_BAM)|
|Hybrid-SORT   |MOT17-val-Hybrid|66.75|75.65|68.36|77.64|250 |[Results Path](./Experiment/hybrid-sort_mot17_val_hybrid)|
|OA-SORT       |MOT17-val-Hybrid|67.06|76.29|68.74|78.19|239 |[Results Path](./Experiment/oasort_mot17_val_hybrid)|
|Hybrid-SORT   |MOT17-val-Public|50.16|46.55|59.49|56.89|152 |[Results Path](./Experiment/hybrid-sort_mot17_val_public)|
|OA-SORT       |MOT17-val-Public|50.22|46.64|59.54|57.04|151 |[Results Path](./Experiment/oasort_mot17_val_public)|
|Hybrid-SORT   |MOT17-val-cmc   |67.83|76.21|70.15|80.25|204 |[Results Path](./Experiment/hybrid-sort_mot17_val_cmc)|
|OA-SORT       |MOT17-val-cmc   |68.22|76.75|70.73|80.93|170 |[Results Path](./Experiment/oasort_mot17_val_cmc)|
|OA-SORT       |SportsMOT-test  |73.39|94.38|62.32|74.15|2,599|[Results Path](./Experiment/oasort_sportsmot_test)|
|Hybrid-SORT   |SportsMOT-test  |72.95|94.28|61.62|73.34|2,791|[Results Path](./Experiment/hybrid_sportsmot_test)|
|OA-SORT       |SportsMOT-test  |73.39|94.38|62.32|74.15|2,599|[Results Path](./Experiment/oasort_sportsmot_test)|
|OA-SORT       |MOT17-test      |64.16|79.64|64.03|79.13|1,698|[Results Path](./Experiment/oasort_mot17_test)|
|OA-BOT        |MOT17-test      |65.09|80.92|64.83|79.42|1,371|[Results Path](./Experiment/OA-BOT-MOT17-test)|
|Hybrid-SORT   |SportsMOT-test  |72.95|94.28|61.62|73.34|2,791|[Results Path](./Experiment/hybrid_sportsmot_test)|
|OA-SORT       |SportsMOT-test  |73.39|94.38|62.32|74.15|2,599|[Results Path](./Experiment/oasort_sportsmot_test)|
|Hybrid-SORT+  |SportsMOT-test  |74.77|96.20|63.21|75.01|2,484|[Results Path](./Experiment/hybrid_sportsmot_test+)|
|OA-SORT+      |SportsMOT-test  |75.16|96.32|63.81|75.75|2,333|[Results Path](./Experiment/oasort_sportsmot_test+)|
|OA-Byte       |DanceTrack-test |48.99|89.64|33.66|55.86|1,998|[Results Path](./Experiment/oabyte_dancetrack_test)|
|OA-OC         |DanceTrack-test |56.54|91.25|39.58|57.56|2,155|[Results Path](./Experiment/oaoc_dancetrack_test)|
|OA-Sparse     |DanceTrack-test |57.85|91.51|41.78|60.17|1,687|[Results Path](./Experiment/oasparse_dancetrack_test)|
|OA-PD         |DanceTrack-test |60.41|91.40|44.93|60.84|1,932|[Results Path](./Experiment/oapd_dancetrack_test)|
|OA-SORT       |DanceTrack-test |63.13|91.66|48.53|64.17|1,517|[Results Path](./Experiment/oasort_dancetrack_test)|
|OA-SORT       |MOT20-test      |62.60|76.50|62.10|76.60|1,274|[Results Path](./Experiment/OA-SORT-MOT20-test)|

where **+** indicates that detectors are trained using the SportsMOT train and validation sets; the results [OA-sort](./Experiment/sort_dancetrack_val) is in `Experiment/sort_dancetrack_val`.

For [all results](Experiment/), we provide **raw data (results.7z or output.zip)** and **evaluated results (stdout.txt or val_log.txt)** in each folder or zip (or .7z). For example, the raw data and results of [OA-Byte in DanceTrack-test](Experiment/oabyte_dancetrack_test/stdout.txt) are in `Experiment/oabyte_dancetrack_test/results.7z` and `Experiment/oabyte_dancetrack_test/stdout.txt`. Notably, you can unzip `*.7z` or `*.zip` to get results or raw data `*.txt` that can be used to evaluate performance.