About this project
DeadTrees is an end-to-end open-source platform for processing, analyzing and visualizing high-resolution aerial orthophotos, focused on deadwood detection and forest cover mapping. It accepts two input types: pre-processed GeoTIFF orthomosaics and raw drone image collections supplied as ZIP archives. Each dataset is standardized, enriched with geospatial metadata, and analyzed with deep learning models for semantic segmentation.
Processing pipeline
Data ingestion supports chunked uploads (50 MB chunks) of GeoTIFF orthomosaics, or ZIP archives of raw drone imagery with optional RTK correction files that are run through OpenDroneMap to produce georeferenced orthomosaics via structure-from-motion photogrammetry. Orthomosaics are then standardized for consistent tiling and coordinate reference system alignment.
Metadata enrichment derives geospatial context from the orthomosaic centroid: GADM v4.1.0 administrative boundaries (country, state/province, district), WWF Terrestrial Ecoregions v2.0 biome classification, and a 366-day MODIS phenology curve.
Product generation creates Cloud-Optimized GeoTIFFs (tiled, overviewed rasters suited to HTTP range-request streaming) plus JPEG thumbnails for quick visual assessment.
Semantic segmentation applies two models: a SegFormer-B5 model for deadwood detection (standing and fallen deadwood at individual object level) and a TCD SegFormer-MIT-B5 model for tree cover extent. Both output polygon-based vector geometries stored in the database.
Infrastructure and web application
The platform is deployed across two physical servers: an API server hosting the FastAPI backend, NGINX reverse proxy and persistent file storage, and a processor server running ODM, GeoTIFF processing and GPU-accelerated segmentation, with SSH data transfer between them. Services are containerized with Docker Compose; authentication and data management use Supabase (PostgreSQL with row-level security).
The frontend is a React single-page application using OpenLayers for interactive maps, offering dataset browsing with filtering and search, full-resolution COG rendering via WebGL tile layers, interactive label visualization and editing, upload with progress tracking, and a quality audit workflow for expert review of model predictions.
Repository layout and setup
Modules are organized as api/ (FastAPI backend), processor/ (pipeline and GPU jobs), shared/ (shared Python modules), supabase/ (schema and migrations), frontend/ (React + TypeScript) and deadtrees-cli/ (local development CLI). Local setup uses a Python virtual environment, npm install for the frontend, Supabase start, asset downloads and a development CLI; the frontend runs on port 5173 and the API on port 8080. Separate playbooks cover processor deployment and adding processor workers.
The data model tracks dataset metadata (platform, license, authors, acquisition date), pipeline status, original orthophoto information (bounding box, file size, SHA-256), COG metadata, enrichment data, segmentation labels with source attribution, and audit results.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.