Metadata-Version: 2.4
Name: beehaviourlab
Version: 0.1.4
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: AGPL-3.0-only
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 :: GNU Affero General Public License v3
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: lap>=0.5.12
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. Tracking data is output to CSV files for downstream analyses. The object detection (YOLO) model can be substituted for your own to enable different use-cases. 

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

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

```
pip install beehaviourlab
```

For more other installation options, please see the [installation docs](https://beehaviourlab.github.io/BEEhaviourLab/installation.html).

## Configuration and command line use

For more comprehensive instructions, please see the [docs pages](https://beehaviourlab.github.io/BEEhaviourLab/).

### Tracking module
---------------

#### 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.

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

#### Common commands:

Run the entire bee tracking pipeline on a video file:

```
bee track run-pipeline --input /path/to/video_file --output /path/to/output_dir
```

#### Batch processing
----------------
There is 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`

You can also filter the video files to just those that contain a particular string, in this example "hiveA":

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

## Contributing

We welcome contributions from the community. Please take a look at our [contribution guidelines](https://github.com/BEEhaviourLab/BEEhaviourLab?tab=contributing-ov-file) for more information.
