Metadata-Version: 2.4
Name: beehaviourlab
Version: 0.1.3
Summary: BEEhaviourLab provides tools for detecting, tracking, and analysing bee behaviour from video data.
Author-email: Rachel Parkinson <rachel.parkinson@biology.ox.ac.uk>, Oliver King <oliver.king@dtc.ox.ac.uk>
License: Apache-2.0
Project-URL: Documentation, https://beehaviourlab.github.io/BEEhaviourLab/
Project-URL: Source, https://github.com/BEEhaviourLab/BEEhaviourLab
Project-URL: Issues, https://github.com/BEEhaviourLab/BEEhaviourLab/issues
Project-URL: Changelog, https://github.com/BEEhaviourLab/BEEhaviourLab/blob/main/CHANGELOG.md
Keywords: bee,behaviour,tracking,computer-vision,yolo
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ultralytics==8.3.78
Requires-Dist: polars>=0.20.0
Requires-Dist: click>=8.0.0
Requires-Dist: opencv-python>=4.5.0
Requires-Dist: numpy>=1.20.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: matplotlib>=3.3.0
Requires-Dist: pyyaml>=5.4.0
Provides-Extra: docs
Requires-Dist: sphinx>=7.0.0; extra == "docs"
Requires-Dist: pydata-sphinx-theme>=0.15.0; extra == "docs"
Requires-Dist: sphinx-autodoc-typehints>=2.0.0; extra == "docs"
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "docs"
Provides-Extra: test
Requires-Dist: pytest>=7.2.0; extra == "test"
Requires-Dist: pytest-cov>=5.0.0; extra == "test"
Provides-Extra: dev
Requires-Dist: sphinx>=7.0.0; extra == "dev"
Requires-Dist: pydata-sphinx-theme>=0.15.0; extra == "dev"
Requires-Dist: sphinx-autodoc-typehints>=2.0.0; extra == "dev"
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "dev"
Requires-Dist: pytest>=7.2.0; extra == "dev"
Requires-Dist: pytest-cov>=5.0.0; extra == "dev"
Dynamic: license-file

# BEEhaviourLab

[![tests](https://github.com/BEEhaviourLab/BEEhaviourLab/actions/workflows/tests.yml/badge.svg)](https://github.com/BEEhaviourLab/BEEhaviourLab/actions/workflows/tests.yml)

BEEhaviourLab provides tools for detecting, tracking, and analysing bee behaviour from video data.

Documentation
-------------
Full documentation is published on GitHub Pages:
https://beehaviourlab.github.io/BEEhaviourLab/

Installation
------------
Install from PyPI:

```
pip install beehaviourlab
```

Install with docs or test extras:

```
pip install "beehaviourlab[docs]"
pip install "beehaviourlab[test]"
```

Install with dev extras (docs + tests):

```
pip install "beehaviourlab[dev]"
```

Install from source (recommended for development):

```
pip install -e .
```

For docs tooling:

```
pip install -e ".[docs]"
```

Tracking module
---------------
All tracking commands are available under the `bee track` group.

Common commands:

```
bee track run-pipeline --input /path/to/video.mp4 --output /path/to/output_dir
bee track run-yolo --model-path /path/to/model.pt --source-video /path/to/video.mp4 --output-path /path/to/out.csv
bee track fix-ids /path/to/tracking.csv --output /path/to/fixed.csv --num-objects 5
bee track extract-flow /path/to/fixed.csv --output /path/to/flow.csv
bee track speed-analysis /path/to/flow.csv --output-dir /path/to/output_dir
bee track visualise-tracking --video /path/to/video.mp4 --csv /path/to/fixed.csv --out /path/to/annotated.mp4
```

Batch processing
----------------
There is also a batch-processing command for running the tracking pipeline over all videos in a
directory tree and writing outputs into a per-video subdirectory.

Usage:

```
bee track batch-process --input-dir /path/to/videos
bee track batch-process --input-dir /path/to/videos --filter hiveA
bee track batch-process --input-dir /path/to/videos --output-dir-name tracking_outputs
```

Configuration
-------------
To create editable config files in your working directory:

```
bee config init
```

This writes:
- `tracking_config.yaml`
- `tracking/custom_tracker.yaml`

The CLI will automatically use a `tracking_config.yaml` in your current working
directory if present.
