All Projects → Zhongdao → UniTrack

Zhongdao / UniTrack

Licence: MIT license
[NeurIPS'21] Unified tracking framework with a single appearance model. It supports Single Object Tracking (SOT), Video Object Segmentation (VOS), Multi-Object Tracking (MOT), Multi-Object Tracking and Segmentation (MOTS), Pose Tracking, Video Instance Segmentation (VIS), and class-agnostic MOT (e.g. TAO dataset).

Programming Languages

python
139335 projects - #7 most used programming language
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
java
68154 projects - #9 most used programming language
cython
566 projects
CMake
9771 projects

Projects that are alternatives of or similar to UniTrack

Homography-Based-MOTDT
MOTDT with Homography Matrix for Multi-Object Tracking
Stars: ✭ 21 (-92.83%)
Mutual labels:  object-tracking, multi-object-tracking
Towards Realtime Mot
Joint Detection and Embedding for fast multi-object tracking
Stars: ✭ 1,948 (+564.85%)
Mutual labels:  tracking-by-detection, multi-object-tracker
pcan
Prototypical Cross-Attention Networks for Multiple Object Tracking and Segmentation, NeurIPS 2021 Spotlight
Stars: ✭ 294 (+0.34%)
Mutual labels:  video-instance-segmentation, multi-object-tracking-segmentation
object-tracking
Multiple Object Tracking System in Keras + (Detection Network - YOLO)
Stars: ✭ 89 (-69.62%)
Mutual labels:  object-tracking, single-object-tracking
CrowdFlow
Optical Flow Dataset and Benchmark for Visual Crowd Analysis
Stars: ✭ 87 (-70.31%)
Mutual labels:  multi-object-tracking, tracking-by-detection
Siammask
[CVPR2019] Fast Online Object Tracking and Segmentation: A Unifying Approach
Stars: ✭ 3,205 (+993.86%)
Mutual labels:  object-tracking, video-object-segmentation
SiamMaskCpp
C++ Implementation of SiamMask
Stars: ✭ 92 (-68.6%)
Mutual labels:  video-object-segmentation
RMNet
Implementation of "Efficient Regional Memory Network for Video Object Segmentation". (Xie et al., CVPR 2021)
Stars: ✭ 76 (-74.06%)
Mutual labels:  video-object-segmentation
PeekingDuck
A modular framework built to simplify Computer Vision inference workloads.
Stars: ✭ 143 (-51.19%)
Mutual labels:  object-tracking
Gocv
Go package for computer vision using OpenCV 4 and beyond.
Stars: ✭ 4,511 (+1439.59%)
Mutual labels:  object-tracking
chainer-sort
Simple, Online, Realtime Tracking of Multiple Objects (SORT) implementation for Chainer and ChainerCV.
Stars: ✭ 20 (-93.17%)
Mutual labels:  object-tracking
SRN
Code for "SRN: Stacked Regression Network for Real-time 3D Hand Pose Estimation" BMVC 2019
Stars: ✭ 27 (-90.78%)
Mutual labels:  pose-tracking
OpenCV
Computer Vision programs like Motion Detection, Color Tracking, Motion Rcording, Optical Flow and Object Tracking using Python with OpenCV library
Stars: ✭ 21 (-92.83%)
Mutual labels:  object-tracking
OpenCV-Object-Tracking
Object Tracking Using OpenCV and Python Plus Comparing different Trackers
Stars: ✭ 32 (-89.08%)
Mutual labels:  object-tracking
video labeler
A GUI tool for conveniently label the objects in video, using the powerful object tracking.
Stars: ✭ 87 (-70.31%)
Mutual labels:  object-tracking
SiamFusion
No description or website provided.
Stars: ✭ 26 (-91.13%)
Mutual labels:  object-tracking
siam-mot
SiamMOT: Siamese Multi-Object Tracking
Stars: ✭ 446 (+52.22%)
Mutual labels:  multi-object-tracking
Prediction-using-Bayesian-Neural-Network
Prediction of continuous signals data and Web tracking data using dynamic Bayesian neural network. Compared with other network architectures aswell.
Stars: ✭ 28 (-90.44%)
Mutual labels:  object-tracking
VBT-Barbell-Tracker
A proof of concept app to optically track a barbell through its range of motion using OpenCV to give the lifter realtime feedback on concentric avg velocity, cutoff velocity, and displacement for a Velocity Based Training program.
Stars: ✭ 53 (-81.91%)
Mutual labels:  object-tracking
Keras-LSTM-Trajectory-Prediction
A Keras multi-input multi-output LSTM-based RNN for object trajectory forecasting
Stars: ✭ 88 (-69.97%)
Mutual labels:  object-tracking


[NeurIPS 2021] Do different tracking tasks require different appearance model?

[ArXiv] [Project Page]

UniTrack is a simple and Unified framework for addressing multiple tracking tasks.

Being a fundamental problem in computer vision, tracking has been fragmented into a multitude of different experimental setups. As a consequence, the literature has fragmented too, and now the novel approaches proposed by the community are usually specialized to fit only one specific setup. To understand to what extent this specialization is actually necessary, we present UniTrack, a solution to address multiple different tracking tasks within the same framework. All tasks share the same appearance model. UniTrack

Demo

Multi-Object Tracking demo for 80 COCO classes (YOLOX + UniTrack)

In this demo we run the YOLOX detector and perform MOT for the 80 COCO classes. Try the demo by:

python demo/mot_demo.py --classes cls1 cls2 ... clsN

where cls1 to clsN represent the indices of classes you would like to detect and track. See here for the index list. By default all 80 classes are detected and tracked.

Single-Object Tracking demo for custom videos

python demo/sot_demo.py --config ./config/imagenet_resnet18_s3.yaml --input /path/to/your/video

In this demo, you are asked to annotate the target to be tracked, by drawing a rectangle in the first frame of the video. Then the algorithm tracks the target in following timesteps without object detection.

Tasks & Framework

tasksframework

Tasks

We classify existing tracking tasks along four axes: (1) Single or multiple targets; (2) Users specify targets or automatic detectors specify targets; (3) Observation formats (bounding box/mask/pose); (2) Class-agnostic or class-specific (i.e. human/vehicles). We mainly experiment on 5 tasks: SOT, VOS, MOT, MOTS, and PoseTrack. Task setups are summarized in the above figure.

Appearance model

An appearance model is the only learnable component in UniTrack. It should provide universal visual representation, and is usually pre-trained on large-scale dataset in supervised or unsupervised manners. Typical examples include ImageNet pre-trained ResNets (supervised), and recent self-supervised models such as MoCo and SimCLR (unsupervised).

Propagation and Association

Propagation and Association are the two core primitives used in UniTrack to address a wide variety of tracking tasks (currently 7, but more can be added), Both use the features extracted by the pre-trained appearance model. For propagation, we adopt exiting methods such as cross correlation, DCF, and mask propation. For association we employ a simple algorithm as in JDE and develop a novel reconstruction-based similairty metric that allows to compare objects across shapes and sizes.

Getting started

  1. Installation: Please check out docs/INSTALL.md
  2. Data preparation: Please check out docs/DATA.md
  3. Appearance model preparation: Please check out docs/MODELZOO.md
  4. Run evaluation on all datasets: Please check out docs/RUN.md

Results

Below we show results of UniTrack with a simple ImageNet Pre-trained ResNet-18 as the appearance model. More results can be found in RESULTS.md.

Single Object Tracking (SOT) on OTB-2015

Video Object Segmentation (VOS) on DAVIS-2017 val split

Multiple Object Tracking (MOT) on MOT-16 test set private detector track (Detections from FairMOT)

Multiple Object Tracking and Segmentation (MOTS) on MOTS challenge test set (Detections from COSTA_st)

Pose Tracking on PoseTrack-2018 val split (Detections from LightTrack)

Acknowledgement

A part of code is borrowed from

VideoWalk by Allan A. Jabri

SOT code by Zhipeng Zhang

Citation

@article{wang2021different,
  author    = {Wang, Zhongdao and Zhao, Hengshuang and Li, Ya-Li and Wang, Shengjin and Torr, Philip and Bertinetto, Luca},
  title     = {Do different tracking tasks require different appearance models?},
  journal   = {Thirty-Fifth Conference on Neural Infromation Processing Systems},
  year      = {2021},
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].