A Python package for controlled and automated image and video recording with the raspberry pi
pirecorder is a Python package, built on the picamera and OpenCV libraries, that provides a flexible solution for the collection of consistent image and video data with the raspberry pi. It was developed to overcome the need for a complete solution to help researchers, especially those with limited coding skills, to easily set up and configure their raspberry pi to run large numbers of controlled and automated image and video recordings using optimal settings.
A paper accompanying this package is published in the Journal of Open Source Software:
Jolles, J.W. (2020). pirecorder: controlled and automated image and video recording with the raspberry pi. J. Open Source Softw. 5, 2584. doi: 10.21105/joss.02584.
pirecorder consists of a main PiRecorder
module to run image and video recordings, stream
and camconfig
modules with interactive user interfaces for help setting up, calibrating, and configuring the camera, a schedule
module for scheduling future recordings, and a convert
module for the easy converting of (folders of) recorded images and videos.
Note: ! pirecorder relies on picamera, which is not properly integrated in the latest Raspberry Pi OS (Bullseye). Therefore it is highly recommended to use the previous OS Buster to use pirecorder and picamera. It still works but there may be issues with dependencies. You can download Buster OS here and find more information from the Raspberry Pi foundation about the issue here. I hope to be able to update pirecorder later this year to work easier with bullseye.
To install the latest release of pirecorder, simply open a terminal window and enter:
pip install pirecorder
To install the latest development version, enter:
pip install git+https://github.com/jollejolles/pirecorder.git --upgrade
pirecorder builds strongly on the picamera package. As some users want to use pirecorder on computers other than a raspberry pi, the picamera package is not set as a dependency. Therefore when using pirecorder for any other functionality it needs to be installed: pip install "picamera[array]"
.
pirecorder also uses numpy and pyyaml, and relies on various utility functions of the accompanying pythutils package. Scheduling functionality is based on CronTab and the associated python-crontab package. All these ependencies are automatically installed with pirecorder.
For detailed documentation and tutorials about pirecorder and all its functionalities, see the dedicated website jollejolles.github.io/pirecorder/.
To test all functionalities of the pirecorder package, run the tests/test.py
file (here), or alternatively run commands manually using the documented jupyter files here. Note that running the tests will require user input as some of the functionalities are interactive.
pirecorder is developed by Dr Jolle Jolles, a research fellow at the Max Planck Institute of Animal Behavior, and at the Zukunftskolleg, Institute of Advanced Study at the University of Konstanz.
For an overview of version changes see the CHANGELOG and for detailed changes see the commits page. Please submit bugs or feature requests to the GitHub issue tracker here.
Contributions to this package are welcomed via the usual pull request mechanism.
If you use pirecorder in your research, please cite the accompanying paper:
@misc{Jolles2020,
title = {pirecorder: controlled and automated image and video recording with the raspberry pi},
author = {Jolles, Jolle W.},
year = {2020},
volume = {5},
number = {54},
pages = {2584},
doi = {https://doi.org/10.21105/joss.02584}
}
Released under a Apache 2.0 License. See LICENSE for details.