pirecorder

pirecorder: Controlled and automated image and video recording with the raspberry pi - Published in JOSS (2020)

https://github.com/jollejolles/pirecorder

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.0%) to scientific vocabulary

Keywords

camera-calibration raspberrypi recording rpi
Last synced: 6 months ago · JSON representation

Repository

Controlled and automated image and video recording with the raspberry pi

Basic Info
Statistics
  • Stars: 47
  • Watchers: 5
  • Forks: 8
  • Open Issues: 7
  • Releases: 15
Topics
camera-calibration raspberrypi recording rpi
Created about 7 years ago · Last pushed 12 months ago
Metadata Files
Readme Changelog License

README.md

Downloads

pirecorder

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.

Key Features

  • Controlled recording using custom, easy-to-edit configuration files
  • Record single images and videos, timelapses, and sequences of videos
  • Configure camera settings interactively via a live camera stream
  • Dynamically draw the region of interest for your recordings
  • Automatic naming of files and folders with relevant and custom labels
  • Easy scheduling and automating recordings in the future
  • Direct control of all modules via simple terminal commands
  • Convert (folders of) images and videos with resize, monitor, and label options
  • Dedicated documentation website with detailed guides and tutorials
  • Jupyter notebook tutorial files

An overview

Modules

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.

Install

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

Dependencies

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. * OpenCV: has to be manually installed due to its various dependencies on raspberry pi. Click here for my quick install guide. * FFmpeg: is only needed for the convert functionality of pirecorder. Click here and here for guides to install on raspberry pi and OS X respectively.

Documentation

For detailed documentation and tutorials about pirecorder and all its functionalities, see the dedicated website jollejolles.github.io/pirecorder/. 1. quick guide 2. the pirecorder package 3. setting up your raspberry pi 4. installing pirecorder 5. position and calibrate the camera 6. configure recording settings 7. configure camera settings 8. record and schedule recordings 9. converting media 10. run from the command line

Tests

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.

Development

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.

Citing

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} }

License

Released under a Apache 2.0 License. See LICENSE for details.

Owner

  • Name: JolleJolles
  • Login: JolleJolles
  • Kind: user
  • Company: @jolleslab

Postdoctoral Researcher studying Animal Behaviour with a focus on the role of individual differences in collective behaviour.

GitHub Events

Total
  • Watch event: 5
  • Push event: 3
  • Fork event: 1
Last Year
  • Watch event: 5
  • Push event: 3
  • Fork event: 2

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 821
  • Total Committers: 6
  • Avg Commits per committer: 136.833
  • Development Distribution Score (DDS): 0.147
Past Year
  • Commits: 3
  • Committers: 1
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
joljols j****s@g****m 700
Jolle Jolles j****s@J****l 59
Jolle W Jolles j****s@J****l 33
Jolle Jolles j****s@J****x 18
Jolle Jolles j****s@J****x 10
Jolle Jolles j****s@w****L 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 26
  • Total pull requests: 12
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 6 minutes
  • Total issue authors: 11
  • Total pull request authors: 1
  • Average comments per issue: 0.85
  • Average comments per pull request: 0.08
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • JolleJolles (15)
  • stever2022 (1)
  • amchagas (1)
  • roaldarbol (1)
  • jabril23 (1)
  • defra1 (1)
  • biprav (1)
  • MahejabeenNidhi (1)
  • tooh (1)
  • ubdbra001 (1)
  • CanroDaply (1)
Pull Request Authors
  • JolleJolles (12)
Top Labels
Issue Labels
enhancement (9) Installation issue (1) Performance (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 13 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 1
  • Total versions: 13
  • Total maintainers: 1
pypi.org: pirecorder

A python package for controlled and automated image and video recording with the raspberry pi

  • Versions: 13
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 13 Last month
Rankings
Dependent packages count: 10.0%
Average: 21.2%
Dependent repos count: 21.7%
Downloads: 32.0%
Maintainers (1)
Last synced: 6 months ago

Dependencies

setup.py pypi
  • cron-descriptor *
  • croniter *
  • future *
  • localconfig ==0.4.2
  • localconfig ==1.1.1
  • multiprocess *
  • numpy ==1.16.5
  • numpy *
  • python-crontab *
  • pythutils *
  • pyyaml *
docs/Gemfile rubygems
  • github-pages >= 0 development
  • jekyll-feed >= 0 development
  • jekyll-gist >= 0 development
  • jekyll-include-cache >= 0 development
  • activesupport >= 4.1.11
  • jekyll ~> 3.8.5
  • jekyll-remote-theme >= 0
  • just-the-docs >= 0
  • tzinfo ~> 1.2
  • tzinfo-data >= 0