Skip to main content

detect and classify insects on a raspberry pi

Project description

bugcam

Raspberry Pi insect detection CLI using Hailo AI accelerator and the edge26 processing pipeline. Records video, detects and classifies insects on-device, and uploads results to S3.

Default API endpoint: https://api.sensinggarden.com/v1

Quick Start

curl -sSL https://raw.githubusercontent.com/MIT-Senseable-City-Lab/sensing-garden/main/install.sh | bash
bugcam setup
bugcam models list
bugcam models download <model-name>
bugcam run

Commands

Command Description
bugcam run Full pipeline: record + process + upload + heartbeat
bugcam record single Record a single video
bugcam process Process existing videos with edge26
bugcam upload Upload processed output to S3
bugcam heartbeat Write a heartbeat snapshot
bugcam environment Collect one environmental sensor reading
bugcam dot-info Show DOT sensor setup instructions
bugcam models list List available and installed models
bugcam models download <name> Download a model bundle
bugcam models info <name> Show model details
bugcam models delete <name> Delete a model bundle
bugcam status System diagnostics (hardware, deps, camera, Hailo)
bugcam setup Device registration + Hailo installation
bugcam autostart enable Enable systemd service for boot
bugcam autostart disable Disable systemd service
bugcam autostart status Show service status
bugcam autostart logs View service logs
bugcam update Update to latest version
bugcam --version Show installed version

Architecture

  • edge26 pipeline lives in bugcam/edge26/ (vendored from the edge26 repo). Handles recording, processing, and output formatting.
  • BugSpot library handles motion detection and insect tracking.
  • Hailo accelerator runs classification on detected insects.
  • Upload sends results to S3 via presigned URLs obtained from the backend API. No AWS credentials are stored on-device -- only a per-device API key issued during bugcam setup.
  • S3 trigger Lambda indexes uploaded results into DynamoDB.

Configuration

Config file: ~/.config/bugcam/config.json

Field Description
api_url Backend API endpoint
api_key Per-device API key (from registration)
flick_id FLICK device identifier
dot_ids List of DOT device identifiers
s3_bucket Output S3 bucket name

Models are stored in ~/.cache/bugcam/models/<bundle>/ (each bundle contains model.hef + labels.txt).

Requirements

  • Raspberry Pi 5 with 8GB RAM
  • Raspberry Pi AI HAT+ (Hailo-8L or Hailo-8)
  • Pi Camera (HQ Camera recommended)
  • Optional SEN55 environmental sensor on I2C for bugcam environment and periodic environment uploads
  • Python 3.11+
  • Raspberry Pi OS Bookworm 64-bit
  • build-essential and libcjson-dev for building the bundled SEN55 reader

DOT Sensors

DOTs are mobile devices (iPhones) that detect insects and send data to a FLICK (Raspberry Pi) for classification. Run bugcam dot-info on the FLICK to see full setup instructions.

Each DOT puts files in the FLICK's input folder using this structure:

{dot_id}_{YYYYMMDD}/
├── crops/{track_id}_{HHMMSS}/
│   ├── frame_000001.jpg
│   └── done.txt                ← signals track is ready to process
├── labels/{track_id}.json      ← bounding boxes per frame
├── videos/{dot_id}_{YYYYMMDD}_{HHMMSS}.mp4
└── {HHMMSS}_background.jpg     ← reference frame without insects

DOTs also write heartbeat and environment data to the output folder:

{dot_id}/
├── heartbeats/{YYYYMMDD_HHMMSS}.json
└── environment/{YYYYMMDD_HHMMSS}.json

DOT IDs are auto-generated during bugcam setup (e.g. garden-london-1-dot01).

Development

git clone https://github.com/MIT-Senseable-City-Lab/sensing-garden.git
cd sensing-garden
poetry install
poetry run bugcam --help

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bugcam-0.3.0.tar.gz (80.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bugcam-0.3.0-py3-none-any.whl (106.0 kB view details)

Uploaded Python 3

File details

Details for the file bugcam-0.3.0.tar.gz.

File metadata

  • Download URL: bugcam-0.3.0.tar.gz
  • Upload date:
  • Size: 80.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.14.4 Linux/6.12.47+rpt-rpi-2712

File hashes

Hashes for bugcam-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6e915633b23c10ef8636121148a38b0a884e1476de347188c9392a5d8a14ccab
MD5 1183ea7797a48c49e9ffd9f63d8f4074
BLAKE2b-256 5a2f2fe56b1dfef08feab31bbbe4db2a8d2809481305c9b5ab0d0179b5f272a6

See more details on using hashes here.

File details

Details for the file bugcam-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: bugcam-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 106.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.14.4 Linux/6.12.47+rpt-rpi-2712

File hashes

Hashes for bugcam-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b986d0be4b458de6e93520b497a3cf0e627915cbb82f10745bb98a2a21ad9c2b
MD5 0d8fca698b47337b0d40ca653be77a9f
BLAKE2b-256 259c3bb7eb7a27f383ec948c8230f259a33c44b472a51b3adc4ef22f690a6ab5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page