noahcao/OC_SORT

[CVPR2023] The official repo for OC-SORT: Observation-Centric SORT on video Multi-Object Tracking. OC-SORT is simple, online and robust to occlusion/non-linear motion.

What it solves

OC-SORT is designed to make multi-object tracking (MOT) more robust, specifically in crowded scenes where objects move in non-linear patterns. It addresses the limitations of traditional Kalman filters and the original SORT algorithm to prevent tracking failures when objects are occluded or move unpredictably.

How it works

The project implements a pure motion-model-based tracker. It uses an "Observation-centric Re-Update" (ORU) mechanism to fix errors in the motion model's predictions. It is designed to be flexible, allowing it to integrate with various object detectors and matching modules (such as appearance similarity) to maintain a real-time, online tracking pipeline.

Who it’s for

This is for developers and researchers working on computer vision and multi-object tracking, particularly those needing a real-time system that can handle complex, crowded environments.

Highlights

  • Real-time performance: Achieves high inference speeds (up to 700 FPS for association on a CPU).
  • Robustness: Specifically optimized for non-linear motion and crowded scenes.
  • ** uma flexible integration**: Compatible with with various detectors and cost metrics like GIoU and CIoU.
  • C++ Support: Provides C++ implementation for deployment.
  • Deployment options: Supports ONNX, TensorRT, and ncnn.