Skip to main content

🚀 Solovision

Solovision Logo

Python 3.9+ License: AGPL v3 PyPI - Downloads PyPI - Version

Solovision is a state-of-the-art real-time object detection and tracking system that seamlessly integrates with ReID (Re-Identification) architecture. Built on top of YOLO object detection, it provides robust multi-object tracking capabilities with advanced features for identity preservation across frames.

SoloVision Results

✨ Key Features

  • 🎯 High-Performance Tracking: Implements ByteTrack algorithm for reliable multi-object tracking
  • 🔄 ReID Integration: Advanced re-identification capabilities for maintaining object identity
  • 🚀 Real-time Processing: Optimized for real-time applications with efficient processing
  • 📊 Multiple Detection Backends: Support for YOLOv8, YOLOv9, YOLOv11 and all other previous YOLO variants
  • 💪 Robust Motion Prediction: Kalman filtering for smooth trajectory estimation
  • 🎨 Flexible Visualization: Customizable visualization options for tracking results
  • 🔧 Easy-to-use CLI: Simple command-line interface for quick deployment

🛠️ Installation

Install the solovision package in a Python>=3.9 environment.

pip install solovision

Install from source:

git clone https://github.com/AIEngineersDev/solovision.git
cd solovision
pip install .

Install in Dev

pip install poetry
poetry install
poetry shell

🚀 Quick Start

Basic Usage

from solovision import ByteTracker
from ultralytics import YOLO
import cv2

# Initialize tracker
tracker = ByteTracker(
    reid_weights="path/to/reid/weights",
    device="cuda",
    half=True
)

# Process video
cap = cv2.VideoCapture(0)
while True:
    ret, frame = cap.read()
    if not ret:
        break
        
    # Get detections from yolo
    model = YOLO('yolov8m.pt')
    detections = model.predict(frame)
    
    # Update tracker
    tracks = tracker.update(detections, frame)
    
    # Process tracking results
    for track in tracks:
        bbox = track[:4]
        track_id = track[4]
        # Draw or process tracking results

Command Line Interface

# Detect objects across videos or streams
solovision detect --source video_path --conf 0.25 --iou 0.45  

# Track objects using unique id with custom settings
solovision track --source video_path --yolo-model yolov8n.pt --reid-model osnet_x1_0_msmt17.pt --show --save --half \
                --show-trajectories --save-txt --save-crops --per-class \
                --classes 0 2 --device 0 --imgsz 640

# Runs Interactive Web Application to perform real-time inference
solovision run_app 

# View all available CLI args
solovision --help

🎯 ReID Models Support

Solovision supports various state-of-the-art ReID architectures:

  • OSNet (x0.25, x0.5, x0.75, x1.0)
  • OSNet-AIN
  • OSNet-IBN
  • ResNet (50, 101)
  • CLIP-ReID

Check out the Model Zoo for pre-trained weights and performance benchmarks.

🔧 Advanced Features

  • Tracking Analytics: Line graphs and timestamp plotting for track id's
  • Separate Merged Tracks: Save separate videos of persistant tracks from multiple video sources
  • Per-Class Tracking: Enable separate tracking for different object classes
  • Feature History: Maintain temporal appearance features for robust tracking
  • Camera Motion Compensation: Automatic adjustment for camera movement
  • Multi-Camera Support: Persist Tracker across multiple cameras/source

📊 Performance

  • Runs at 30+ FPS on modern GPUs with YOLOv8n
  • Support for half-precision (FP16) inference
  • Optimized for both accuracy and speed
  • Scalable for multi-camera deployments

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

📝 License

This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.

📚 Citation

@software{solovision2024,
  author = {Diddi, Dhruv and Mohammed, Zeeshaan},
  title = {Solovision: State-of-the-art Real-Time Object Tracking System},
  year = {2024},
  publisher = {GitHub},
  organization = {AIEngineersDev},
  url = {https://github.com/AIEngineersDev/solovision}
}

🙏 Acknowledgments

  • ByteTrack algorithm implementation
  • Ultralytics YOLO
  • OSNet for ReID features
  • BOXMOT
  • FastReID

Made with ❤️ by Solo

Metadata

Release files for solovision 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for solovision 0.0.1
File Size Uploaded
solovision-0.0.1.tar.gz 1.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for solovision 0.0.1
File Interpreter ABI Platform
solovision-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.9 MB

Release files / solovision-0.0.1.tar.gz

Download URL solovision-0.0.1.tar.gz
Size 1.5 MB
Tags Source
SHA-256 checksum
How to use checksums
86f3a4227a4b44e8bd96d96ea4e1a3e2c3f545260b1699d723ae2e99b5475c8b
BLAKE2b-256 checksum
How to use checksums
7985aa29d3a9c0ea25adc834aa4e5a7aed407bb5d9f6571d32652668d29225ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.10

Release files / solovision-0.0.1-py3-none-any.whl

Download URL solovision-0.0.1-py3-none-any.whl
Size 1.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b02e4a13fd0dee58952b3d4053adac629282cb5b4fdbfe7899a803f231de0225
BLAKE2b-256 checksum
How to use checksums
9d10d45ade989b296794b0349a8af3c9f970e097b8cc5d9f99be8cd55d1904ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.10

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page