Motion detection & video recording software based on OpenCV, built for research on Bumblebees (hence the name).
This software was built to meet the need of tracking, and/or recording clips of marked Bumblebee individuals in a scientific research project. It has been used with a Raspberry Pi 4[^1] and a Raspberry Pi HQ Camera[^2] pointed at the entrance of a Bombus terrestris nest, in order to record clips of the entry/exit events, based on motion. This considerably reduced the storage space required for the recordings and completely removed the need of post processing work, since it was only recording clips in which individuals appeared in the video frame.
bombuscv-rs
offers realtime motion detection & video recording[^3] using
camera input and can be directly used on fieldwork. However, using the video
option, live camera input can be replaced with a pre-recorded video file: this
is useful to remove dead moments from videos and reduce/remove the need of
manual video trimming.
means this setup can be also reproduced in locations where no AC is available
Below a brief example of the produced video output:
https://user-images.githubusercontent.com/74802223/171311278-c5caf303-832f-46f6-a4cc-a3e05f823349.mp4
More examples can be found here.
Clone the repository and build the project with cargo
:
sh
git clone https://github.com/marcoradocchia/bombuscv-rs.git
cd bombuscv-rs
cargo build --release
``` bombuscv-rs 0.1.0 Marco Radocchia marco.radocchia@outlook.com OpenCV based motion detection/recording software built for research on bumblebees.
USAGE: bombuscv [OPTIONS]
OPTIONS:
-d, --directory
All options can be set in a optional configuration file stored at
$XDG_CONFIG_HOME/bombuscv/config.toml
by default or at any location in the
filesystem specified by setting BOMBUSCV_CONFIG
environment variable. CLI
arguments/flags override options defined in the configuration file.
Note that if using video
option in order to use bombuscv
with a
pre-recorded video input, framerate
, resolution
and overlay
options are
ignored: the first two are auto-detected from the input file using ffprobe
(ffmpeg
tool), while the last makes no sense if used with a non-live video
feed; same rules apply to CLI arguments.
Below listed an example configuration file:
```toml
index = 0
video
)framerate = 10.0
video
)resolution = "720p"
video
)overlay = true
quiet = false
directory = "~/output_directory/"
format = "%Y-%m-%dT%H:%M:%S"
```
Complete CHANGELOG.
video
or directory
options in the configuration file using
~/<path>
results in an error: in the Deserialize expanding ~
to
absolute path is required.video
, date&time overlay generated on frame grabbed makes no
sense: disable video overlay while using video
option.main
to newly defined run
.