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.2.1.tar.gz (73.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.2.1-py3-none-any.whl (98.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bugcam-0.2.1.tar.gz
  • Upload date:
  • Size: 73.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.14.3 Darwin/25.2.0

File hashes

Hashes for bugcam-0.2.1.tar.gz
Algorithm Hash digest
SHA256 affc08ea0adbb9f8bd0015b6ae55bd2cac116f57cbc6b5b594f25f2c7285fef4
MD5 e4b8d510ab23caff52892fef4944149c
BLAKE2b-256 5ff642614a4b314168fa8e2ab5ae156925eb773b90e7d459c9ccf7460ffba0bd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: bugcam-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 98.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.1 CPython/3.14.3 Darwin/25.2.0

File hashes

Hashes for bugcam-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f297ce63d12db8215fd7e4994bd948a3daa462329eb430e1a62f522fa1a9aa96
MD5 ebd41fcb9bf04a9050998c312378f70f
BLAKE2b-256 5df0f1c672012ef8297be0ad9c36a85c115291de96faa39980cc14a1c8653b4e

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