Un survol drone au dessus d'une zone protégée doit répondre à plus d'une question. Où sont les animaux. Où sont les personnes. Où sont les véhicules. Une équipe de conservation a besoin des trois pour compter la faune, détecter les incursions de braconnage et cartographier l'activité humaine dans une réserve. DroneMegaDetector est un détecteur d'objets généraliste conçu pour l'imagerie et la vidéo drone aérienne, entraîné à trouver les trois classes en un seul passage. Il analyse automatiquement les images aériennes haute résolution, entoure chaque animal, personne et véhicule détecté d'un cadre, et écrit les résultats dans un format standard que les outils de conservation existants peuvent lire. Il est publié sous licence MIT avec le code d'inférence complet et les poids du modèle, et un preprint documente son développement.

Ce que détecte le modèle, et pourquoi trois classes

DroneMegaDetector repose sur RF-DETR Medium, un transformateur de détection compact d'environ trente cinq millions de paramètres. Cette taille réduite est délibérée. Elle rend le modèle assez rapide pour traiter de grandes études sur un seul GPU, et assez léger pour fonctionner sur CPU lorsqu'aucun GPU n'est disponible. Le modèle est entraîné comme un détecteur à trois classes. La classe zéro est la personne, la classe un est l'animal, et la classe deux est le véhicule. Les trois sont des sorties à part entière, non des ajouts après coup. Un seul modèle qui trouve ensemble animaux, personnes et véhicules est ce qui le rend utile pour la lutte contre le braconnage, où une personne ou un véhicule dans une zone protégée est le signal recherché, autant que pour le recensement de la faune, où l'animal l'est. La catégorie animal est en réalité une catégorie mammifère, car presque tous les exemples d'entraînement sont des mammifères, aussi les performances sur les oiseaux, les reptiles ou les poissons sont indéfinies et ne doivent pas être supposées. Le projet prolonge la lignée de MegaDetector, le détecteur de pièges photographiques largement utilisé, et l'un de ses contributeurs est l'auteur original de MegaDetector. La sortie est écrite dans le même format JSON que MegaDetector, ce qui permet d'intégrer les résultats aux outils de conservation existants sans conversion.

Là où il fonctionne le mieux, et là où il échoue

Les données d'entraînement proviennent majoritairement de vols de drone entre cinquante et cent vingt mètres au dessus du sol, avec quelques images d'aéronef habité. Cette plage est l'enveloppe de fonctionnement représentée dans les données, non une exigence stricte. À mesure que l'altitude augmente, toute cible, animal, personne ou véhicule, occupe moins de pixels, et la performance de détection diminue lorsque les cibles deviennent nettement plus petites que celles vues à l'entraînement. C'est la limite pratique la plus importante. Un modèle entraîné sur des cibles vues à quatre vingts mètres manquera les mêmes objets vus à deux cents mètres, non parce qu'il a échoué, mais parce que l'objet ne ressemble plus à rien dans sa distribution d'entraînement. Les seuils de confiance doivent être ajustés à l'altitude et à la résolution de caméra de chaque étude, et le seuil de démonstration par défaut de zéro virgule trois n'est qu'un point de départ. Les trois classes ne sont pas également faciles. Les véhicules sont généralement les plus détectables car grands et réguliers, les personnes sont plus petites, et les animaux varient fortement en taille, aussi un seuil adapté à une classe peut être trop laxiste ou trop strict pour une autre.

Comment fonctionne l'inférence, et pourquoi le tuilage est essentiel

Les images de drone sont grandes, souvent plusieurs milliers de pixels, tandis que le modèle a été entraîné à mille deux cent quatre vingts pixels. Un seul passage après rééchantillonnage réduirait les petites cibles sous la taille détectable. La solution est l'inférence par tuiles. L'image est divisée en tuiles de mille deux cent quatre vingts par mille deux cent quatre vingts pixels, chaque tuile est détectée indépendamment, et les tuiles adjacentes se chevauchent de cent pixels par défaut. Les détections dupliquées dans les zones de chevauchement sont éliminées par suppression non maximale. Le tuilage s'active par un seul argument, et c'est le mode recommandé pour toute image d'étude réelle. Le dépôt propose cinq scripts d'inférence couvrant chaque flux pratique. inference-demo.py traite une image et affiche le résultat, pour vérifier l'installation. inference-batch.py parcourt un dossier récursivement, traite les images et les trames vidéo échantillonnées, et écrit les résultats en JSON. inference-video.py échantillonne les trames vidéo à une cadence choisie. Les deux scripts de suivi ajoutent ByteTrack pour associer les détections entre trames, produisant des identifiants de piste persistants et une vidéo annotée, l'un avec le point de contrôle local et l'autre avec la version Hugging Face. Pour les patrouilles anti braconnage, les scripts de suivi sont particulièrement précieux car une personne ou un véhicule en mouvement conserve la même identité entre trames, ce qui rend un trajet visible au lieu d'un nuage de détections isolées.

Installer et exécuter localement, étape par étape

Chaque commande ci dessous est sur sa propre ligne afin de pouvoir être sélectionnée et copiée directement. Ouvrez un terminal et suivez les dans l'ordre.

git clone https://github.com/ConservationDronesAI/DroneMegaDetector.git

cd DroneMegaDetector

pip install -r requirements.txt

Téléchargez les poids du modèle depuis la page des releases, ou utilisez le lien direct de la version un point un, puis placez le fichier .pth dans le dossier du projet. Testez l'installation sur une seule image.

python src/inference-demo.py --image path/to/image.jpg --weights DroneMegaDetector_RFDETRMedium_2026.10.04.pth --conf 0.5 --output output.jpg

Pour une étude réelle, exécutez le script de traitement par lots sur un dossier. L'option de tuilage est presque toujours appropriée pour l'imagerie drone. Les résultats sont écrits dans un fichier JSON au format MegaDetector, avec une entrée par image ou vidéo et une étiquette de classe pour chaque détection.

python src/inference-batch.py DroneMegaDetector_RFDETRMedium_2026.10.04.pth path/to/survey_folder results.json --tiled

Pour les utilisateurs de l'écosystème Hugging Face, une version compatible transformers est disponible. Installez les dépendances testées et chargez le modèle avec les classes standard.

pip install torch==2.14.0 torchvision==0.29.0 transformers==5.18.0 Pillow==12.3.0

from transformers import pipeline; pipe = pipeline("object-detection", model="ConservationDrones/DroneMegaDetector")

Pour la vidéo, les scripts de suivi ajoutent des identités persistantes entre trames et produisent un MP4 annoté en plus du JSON. Le script de traitement par lots accepte un argument d'échantillonnage temporel pour les vidéos, une trame toutes les N secondes par défaut, ce qui maintient le temps de traitement proportionnel à la durée de l'étude plutôt qu'au nombre de trames.

Les limites à garder en tête

Quatre mises en garde doivent guider tout usage réel. Premièrement, la classe animal ne couvre que les mammifères, et le modèle ne détectera pas de façon fiable les oiseaux, les reptiles ou les poissons, bien que la détection des personnes et des véhicules reste fiable. Deuxièmement, la qualité de détection chute avec l'altitude pour les trois classes, aussi une étude survolée plus haut que la plage d'entraînement exige une validation sur un sous ensemble annoté manuellement avant que les résultats ne soient fiables. Troisièmement, les exemples de sortie du dépôt sont uniquement illustratifs ; les auteurs indiquent explicitement qu'ils n'établissent pas la précision, car on ignore si ces images figuraient dans l'entraînement. Quatrièmement, l'inférence CPU fonctionne mais est lente ; un GPU CUDA est recommandé pour tout dossier dépassant quelques centaines d'images. Le modèle est un détecteur, non un classificateur. Il indique quel type d'objet est présent et où. Une étape séparée de classification des espèces, ou une relecture manuelle, est nécessaire pour transformer les détections d'animaux en estimations de population, de même qu'une analyse séparée est nécessaire pour transformer les détections de personnes et de véhicules en alerte anti braconnage.

D'autres notes sur l'IA appliquée et les systèmes drones sont publiées sur le blog, et les demandes de projet peuvent être envoyées via la page contact. Le code et les poids sont sur github.com/ConservationDronesAI/DroneMegaDetector, le modèle Hugging Face sur huggingface.co/ConservationDrones/DroneMegaDetector, et le preprint sur doi:10.64898/2026.10.12.758430.