Similari  by insight-platform

Build high-performance real-time object trackers

Created 3 years ago
251 stars

Top 99.8% on SourcePulse

GitHubView on GitHub
Project Summary

A Rust framework with Python bindings, Similari enables the creation of high-performance, real-time multiple object tracking (MOT) systems. It is designed for developers building sophisticated, in-memory tracking engines, particularly for dynamic environments where objects are frequently added, updated, or removed. Similari offers efficient, parallelized implementations of SORT, DeepSORT-like (VisualSORT), and custom tracking algorithms, accelerating development with its robust core components and optimized algorithms.

How It Works

Similari's core is a Rust-based engine optimized for speed and memory efficiency, accessible via a Python API. It excels at managing object tracks that evolve over time, supporting multiple observations per object. Its design prioritizes dynamic object spaces, making it suitable for complex video analysis and real-time systems where tracks are frequently managed. Key components include advanced Kalman filters and similarity metrics for robust track association.

Quick Start & Requirements

Installation is straightforward via pip: pip3 install similari-trackers-rs. For maximum performance, building from source is recommended, requiring a Rust toolchain (>= 1.67) and Python (>= 3.8). Build instructions leverage maturin and suggest compiler flags like RUSTFLAGS="-C target-cpu=native -C opt-level=3" for CPU-specific optimizations. Dockerfiles are provided for reproducible builds.

Highlighted Details

  • Implements SORT and VisualSORT (DeepSORT-like) tracking algorithms, supporting both axis-aligned and oriented bounding boxes.
  • Features advanced Kalman filters for bounding box and point motion prediction, alongside Non-Maximum Suppression (NMS) and Sutherland-Hodgman clipping.
  • Leverages SIMD computations via the ultraviolet library and parallel processing for high throughput.
  • Includes batch processing capabilities (Batch SORT, Batch VisualSORT) for platforms supporting batched inference.
  • Supports track lifecycle management with dynamic attributes for filtering and similarity calculations.

Maintenance & Community

No specific details on maintainers, community channels (e.g., Discord, Slack), or roadmap were found in the provided text.

Licensing & Compatibility

The license type and compatibility notes for commercial use were not explicitly stated in the provided README content.

Limitations & Caveats

Similari is less efficient for static or append-only object databases compared to specialized similarity search libraries like HNSW. Performance can vary significantly based on Rust build optimizations; the PyPI package may not achieve the same speed as a locally compiled, highly optimized version.

Health Check
Last Commit

7 months ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
4 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.