Metadata-Version: 2.4
Name: qp-perception
Version: 0.1.0
Summary: Modular visual perception library - detection, tracking, Re-ID, and target selection
License-Expression: MIT
Project-URL: Homepage, https://github.com/Kitjesen/qp-perception
Project-URL: Repository, https://github.com/Kitjesen/qp-perception
Project-URL: Issues, https://github.com/Kitjesen/qp-perception/issues
Keywords: computer-vision,tracking,reid,kalman,yolo
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ultralytics>=8.3.0
Requires-Dist: opencv-python>=4.8.0
Requires-Dist: numpy>=1.24.0
Requires-Dist: scipy>=1.11.0
Provides-Extra: reid
Requires-Dist: torch>=2.0.0; extra == "reid"
Requires-Dist: torchvision>=0.15.0; extra == "reid"
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: ruff>=0.3.0; extra == "dev"
Requires-Dist: mypy>=1.5.0; extra == "dev"
Dynamic: license-file

# qp-perception

Modular visual perception library for detection, tracking, Re-ID, and target selection.

## Install

```bash
pip install qp-perception

# With Re-ID support:
pip install "qp-perception[reid]"
```

For local development:

```bash
pip install -e .
pip install -e ".[dev]"
```

## Quick Start

```python
from qp_perception.types import BoundingBox, Detection
from qp_perception.tracking import SimpleIoUTracker
from qp_perception.selection import WeightedTargetSelector

tracker = SimpleIoUTracker()
selector = WeightedTargetSelector()

detections = [
    Detection(
        bbox=BoundingBox(x=100, y=120, w=60, h=90),
        confidence=0.95,
        class_id="person",
    )
]

tracks = tracker.update(detections, timestamp=0.0)
target = selector.select(tracks, timestamp=0.0)
```

## Package Structure

```text
src/qp_perception/
    __init__.py
    types.py
    interfaces.py
    config.py
    kalman.py
    detection/
    tracking/
    selection/
    reid/
```

## Release

This package is published from GitHub Actions to PyPI using Trusted Publishing.

Release a new version with:

```bash
git tag v0.1.0
git push origin v0.1.0
```
