À propos du projet

DeadTrees est une plateforme open source de bout en bout pour le traitement, l’analyse et la visualisation d’orthophotos aériennes à haute résolution, axée sur la détection du bois mort et la cartographie du couvert forestier. Elle accepte deux types d’entrée : des orthomosaïques GeoTIFF prétraitées et des collections d’images de drone brutes fournies sous forme d’archives ZIP. Chaque jeu de données est standardisé, enrichi de métadonnées géospatiales et analysé avec des modèles de deep learning pour la segmentation sémantique. Pipeline de traitement L’ingestion des données prend en charge les téléversements par blocs (blocs de 50 Mo) d’orthomosaïques GeoTIFF, ou des archives ZIP d’imagerie de drone brute avec fichiers de correction RTK optionnels, qui sont traités via OpenDroneMap pour produire des orthomosaïques géoréférencées par photogrammétrie structure-from-motion. Les orthomosaïques sont ensuite standardisées pour un tuilage cohérent et un alignement du système de référence de coordonnées. L’enrichissement des métadonnées dérive le contexte géospatial à partir du centroïde de l’orthomosaïque : limites administratives GADM v4.1.0 (pays, État/province, district), classification des biomes WWF Terrestrial Ecoregions v2.0 et une courbe phénologique MODIS sur 366 jours. La génération de produits crée des Cloud-Optimized GeoTIFFs (rasters tuilés avec aperçus adaptés au streaming par requêtes HTTP range) ainsi que des vignettes JPEG pour une évaluation visuelle rapide. La segmentation sémantique applique deux modèles : un modèle SegFormer-B5 pour la détection du bois mort (bois mort sur pied et au sol au niveau de l’objet individuel) et un modèle TCD SegFormer-MIT-B5 pour l’étendue du couvert arboré. Les deux produisent des géométries vectorielles à base de polygones stockées dans la base de données. Infrastructure et application web La plateforme est déployée sur deux serveurs physiques : un serveur API hébergeant le backend FastAPI, un reverse proxy NGINX et un stockage de fichiers persistant, et un serveur de traitement exécutant ODM, le traitement GeoTIFF et la segmentation accélérée par GPU, avec transfert de données par SSH entre eux. Les services sont conteneurisés avec Docker Compose ; l’authentification et la gestion des données utilisent Supabase (PostgreSQL avec sécurité au niveau des lignes). Le frontend est une application monopage React utilisant OpenLayers pour des cartes interactives, offrant la navigation dans les jeux de données avec filtrage et recherche, le rendu COG en pleine résolution via des couches de tuiles WebGL, la visualisation et l’édition interactives des labels, le téléversement avec suivi de progression, et un workflow d’audit qualité pour l’examen expert des prédictions du modèle. Organisation du dépôt et configuration Les modules sont organisés en api/ (backend FastAPI), processor/ (pipeline et tâches GPU), shared/ (modules Python partagés), supabase/ (schéma et migrations), frontend/ (React + TypeScript) et deadtrees-cli/ (CLI de développement local). La configuration locale utilise un environnement virtuel Python, npm install pour le frontend, Supabase start, des téléchargements d’assets et une CLI de développement ; le frontend s’exécute sur le port 5173 et l’API sur le port 8080. Des playbooks distincts couvrent le déploiement du processor et l’ajout de workers de traitement. Le modèle de données suit les métadonnées du jeu de données (plateforme, licence, auteurs, date d’acquisition), l’état du pipeline, les informations sur l’orthophoto d’origine (boîte englobante, taille de fichier, SHA-256), les métadonnées COG, les données d’enrichissement, les labels de segmentation avec attribution de source, et les résultats d’audit.