Strand Camera — low-latency marker-free 2D tracking
Strand Camera is free, open-source software for low-latency camera acquisition, video recording, and marker-free 2D tracking of animals, robots, or other moving objects. It can run closed-loop single-camera experiments or serve as the camera layer for real-time 3D tracking with Braid.
Strand Camera is the successor of fview, and is the result of a rewrite focused on performance, ease of use, and flexibility.
Science enabled
Strand Camera supports experiments that need precise video timestamps and low-latency measurements during behavior. It supplies the image coordinates used by FLO's high-resolution outdoor insect videography and acts as the camera layer for Braid's real-time multi-camera experiments.
Features
- Low-latency, marker-free 2D tracking of multiple animals based on high-performance background subtraction.
- Tracking latency is dominated by image acquisition time, with all aspects of the program written to prioritize low latency image acquisition and processing.
- Basler USB3 and GigE area cameras are supported
- Recording of compressed video into MP4 files with precise timestamps
- H264 hardware encoding via Nvidia NVENC (direct) or via ffmpeg (supports NVENC, Intel Quick Sync, AMD AMF, and software encoding)
- Post triggering to enable "time travel" to the past. Images are continuously buffered to computer memory and then, if the command is given, this data from the past is used at the start of recording an MP4 video to disk.
- Web based user interface allowing easy remote control
- Loading of camera settings files saved with the manufacturer-supplied camera application.
- Integrated Python scripting
- Python-based image processing (e.g. with DeepLabCut)
- Python-based control of all user interface elements in the web-based interface.
Documentation
- User's guide for Strand Camera (and Braid)
- Curated developer-documentation overview
- API documentation for
flydra_feature_detector_types::ImPtDetectCfg. Follow links for other API documentation.
Download
Releases are provided via GitHub.
Supported operating system
Ubuntu Linux (64 bit Intel/AMD) is supported. The lab tests internally on macOS and Windows.
Licensing
Strand Camera is free and open source software.
Support
Support is offered on a best effort basis via the github repository or the online forum. Contact Andrew Straw regarding potential availability for collaboration or custom development.
Funding
Strand Camera development was supported in part by the BeeTracked project, funded by the VolkswagenStiftung. Further support comes from the University of Freiburg.