https://github.com/amazon-science/object-centric-multiple-object-tracking
https://github.com/amazon-science/object-centric-multiple-object-tracking
Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.6%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: amazon-science
- License: apache-2.0
- Language: Python
- Default Branch: main
- Size: 16.5 MB
Statistics
- Stars: 37
- Watchers: 3
- Forks: 3
- Open Issues: 9
- Releases: 0
Metadata Files
README.md
Object-Centric Multiple Object Tracking (OC-MOT)
This is the official implementation of the ICCV'23 paper Object-Centric Multiple Object Tracking. The code was implemented by Zixu Zhao, Jiaze Wang, Max Horn and Tianjun Xiao.
Introduction

OC-MOT is a framework designed to perform multiple object tracking on object-centric representations without object ID labels. It consists of an index-merge module that adapts the object-centric slots into detection outputs and an unsupervised memory module that builds complete object prototypes to handle occlusions. Benefited from object-centric learning, we only requires sparse detection labels for object localization and feature binding. Our experiments significantly narrow the gap between the existing object-centric model and the fully supervised state-of-the-art and outperform several unsupervised trackers.
Development Setup
Installing OC-MOT requires at least python3.8. Installation can be done using poetry. After installing poetry, check out the repo and setup a development environment:
bash
git clone https://github.com/amazon-science/object-centric-learning-framework.git
cd object-centric-multiple-object-tracking
poetry install
This installs the ocl package and the cli scripts used for running experiments in a poetry managed virtual environment. Activate the poetry virtual environment poetry shell before running the experiments.
Running experiments
Experiments are defined in the folder configs/experiment and can be run
by setting the experiment variable. For example, if we run OC-MOT on Cater dataset, we can follow:
bash
poetry run python -m ocl.cli.train +experiment=OC-MOT/cater
poetry run python -m ocl.cli.eval +experiment=OC-MOT/cater_eval
The result is saved in a timestamped subdirectory in outputs/<experiment_name>, i.e. outputs/OC-MOT/cater/<date>_<time> in the above case. The prefix path outputs can be configured using the experiment.root_output_path variable.
Besides, you can use tensorboard for visualization:
bash
cd outputs/<experiment_name>
tensorboard --logdir version_0
Checkpoints
The pre-trained models will be uploaded soon.
Demo
MOT performance comparison with video object-centric model SAVi:

Extension to real-world videos. We point out in the main paper that existing object-centric models show bad detection / segmentation performance on real-world videos. However, one highlight of this work is our novel framework to learn object association in a self-supervised manner, which is agnostic to the detection module. For real-world purposes, we replace the detection module with SEEM and train OC-MOT with self-supervised feature loss. From the visualizations below, we also observe quite inspring tracking performance on objects such as persons and cars.

Citation
Please cite our paper if you find this repo useful!
bibtex
@article{zhao2023object,
title={Object-Centric Multiple Object Tracking},
author={Zhao, Zixu and Wang, Jiaze and Horn, Max and Ding, Yizhuo and He, Tong and Bai, Zechen and Zietlow, Dominik and Simon-Gabriel, Carl-Johann and Shuai, Bing and Tu, Zhuowen and others},
journal={arXiv preprint arXiv:2309.00233},
year={2023}
}
Related projects that this paper is developed upon:
bibtex
@misc{oclf,
author = {Max Horn and Maximilian Seitzer and Andrii Zadaianchuk and Zixu Zhao and Dominik Zietlow and Florian Wenzel and Tianjun Xiao},
title = {Object Centric Learning Framework (version 0.1)},
year = {2023},
url = {https://github.com/amazon-science/object-centric-learning-framework},
}
License
This project is licensed under the Apache-2.0 License.
Owner
- Name: Amazon Science
- Login: amazon-science
- Kind: organization
- Website: https://amazon.science
- Twitter: AmazonScience
- Repositories: 80
- Profile: https://github.com/amazon-science
GitHub Events
Total
- Issues event: 1
- Watch event: 1
Last Year
- Issues event: 1
- Watch event: 1
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 2
- Total pull requests: 8
- Average time to close issues: N/A
- Average time to close pull requests: 15 days
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 0.5
- Average comments per pull request: 0.13
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 8
Past Year
- Issues: 1
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 1
- Pull request authors: 0
- Average comments per issue: 0.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- fangxin2github (1)
- alibustami (1)
Pull Request Authors
- dependabot[bot] (8)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- 124 dependencies
- CacheControl ==0.12.11
- Markdown ==3.3.5
- Pillow ==9.0.1
- PyYAML ==5.4.1
- SecretStorage ==3.3.2
- Werkzeug ==2.1.2
- absl-py ==1.1.0
- aiohttp ==3.8.1
- aiosignal ==1.2.0
- antlr4-python3-runtime ==4.9.3
- async-timeout ==4.0.2
- attrs ==21.4.0
- awscli ==1.25.22
- awscrt ==0.13.8
- black ==22.6.0
- botocore ==1.27.22
- braceexpand ==0.1.7
- cachetools ==5.2.0
- cachy ==0.3.0
- certifi ==2022.6.15
- cfgv ==3.3.1
- charset-normalizer ==2.1.0
- cleo ==0.8.1
- click ==8.1.3
- clikit ==0.6.2
- colorama ==0.4.4
- crashtest ==0.3.1
- cycler ==0.11.0
- decorator ==4.4.2
- decord ==0.6.0
- distlib ==0.3.4
- docutils ==0.16
- filelock ==3.7.1
- filterpy ==1.4.5
- flake8 ==4.0.1
- flake8-bugbear ==22.7.1
- flake8-docstrings ==1.6.0
- flake8-isort ==4.1.1
- flake8-tidy-imports ==4.8.0
- fonttools ==4.33.3
- frozenlist ==1.3.0
- fsspec ==2022.7.1
- google-auth ==2.9.0
- google-auth-oauthlib ==0.4.6
- grpcio ==1.47.0
- html5lib ==1.1
- hydra-core ==1.2.0
- hydra-zen ==0.7.1
- identify ==2.5.1
- idna ==3.3
- imageio ==2.19.3
- imageio-ffmpeg ==0.4.7
- importlib-metadata ==4.2.0
- importlib-resources ==5.8.0
- iniconfig ==1.1.1
- isort ==5.10.1
- jeepney ==0.8.0
- jmespath ==1.0.1
- joblib ==1.1.0
- keyring ==23.8.2
- kiwisolver ==1.4.3
- lap ==0.4.0
- llvmlite ==0.39.1
- lockfile ==0.12.2
- matplotlib ==3.5.2
- mccabe ==0.6.1
- motmetrics ==1.2.5
- moviepy ==1.0.3
- msgpack ==1.0.4
- multidict ==6.0.2
- mypy-extensions ==0.4.3
- nodeenv ==1.7.0
- numba ==0.56.4
- numpy ==1.21.6
- oauthlib ==3.2.0
- omegaconf ==2.2.2
- packaging ==21.3
- pandas ==1.3.5
- pastel ==0.2.1
- pathspec ==0.9.0
- pexpect ==4.8.0
- pkginfo ==1.8.3
- platformdirs ==2.5.2
- pluggy ==1.0.0
- poetry ==1.1.14
- poetry-core ==1.0.8
- pre-commit ==2.19.0
- proglog ==0.1.10
- protobuf ==3.20.1
- ptyprocess ==0.7.0
- py ==1.11.0
- pyDeprecate ==0.3.2
- pyamg ==4.2.3
- pyasn1 ==0.4.8
- pyasn1-modules ==0.2.8
- pycodestyle ==2.8.0
- pydocstyle ==6.1.1
- pyflakes ==2.4.0
- pylev ==1.4.0
- pyparsing ==3.0.9
- pytest ==7.1.2
- python-dateutil ==2.8.2
- pytorch-lightning ==1.6.4
- pytz ==2022.4
- requests ==2.28.1
- requests-oauthlib ==1.3.1
- requests-toolbelt ==0.9.1
- rsa ==4.7.2
- s3transfer ==0.6.0
- scikit-learn ==1.0.2
- scipy ==1.7.3
- setuptools-scm ==7.0.4
- shellingham ==1.5.0
- six ==1.16.0
- snowballstemmer ==2.2.0
- tensorboard ==2.9.0
- tensorboard-data-server ==0.6.1
- tensorboard-plugin-wit ==1.8.1
- testfixtures ==6.18.5
- threadpoolctl ==3.1.0
- toml ==0.10.2
- tomli ==2.0.1
- tomlkit ==0.11.3
- torch ==1.12.1
- torchmetrics ==0.8.2
- torchtyping ==0.1.4
- torchvision ==0.13.1
- tqdm ==4.64.0
- typeguard ==2.13.3
- typing_extensions ==4.3.0
- urllib3 ==1.26.9
- virtualenv ==20.15.1
- webdataset ==0.1.103
- webencodings ==0.5.1
- xmltodict ==0.13.0
- yarl ==1.7.2
- zipp ==3.8.0