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
Last synced: 10 months ago · JSON representation

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
Created almost 3 years ago · Last pushed over 2 years ago
Metadata Files
Readme Contributing License Code of conduct

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

framework

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:

demo1

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.

demo1

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

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 (8)

Dependencies

poetry.lock pypi
  • 124 dependencies
pyproject.toml pypi
requirements.txt pypi
  • 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