FireViewer RT-DETRv2-R50 Fire/Smoke

RT-DETRv2-R50 adapté à la détection de fumée et de flammes visibles pour le pipeline FireViewer.

  • classe 0 : smoke_visible ;
  • classe 1 : flame_visible.

Le modèle de base est PekingU/rtdetr_v2_r50vd, révision 282494075698cab9faa1096ae26856890030c817.

Entraînement

Le checkpoint publié correspond à la fin du plan exécuté :

  • 24 042 mises à jour optimiseur, 3 époques ;
  • batch effectif 20 ;
  • BF16 sur NVIDIA GeForce RTX 5070 Ti ;
  • vue globale 768 px ;
  • entraînement multi-échelle 640, 768, 896 et 960 px ;
  • tuiles positives 1 024 px, recouvrement 25 %, au plus une tuile positive par image et 5 % de tuiles négatives ;
  • corpus partagé de 170 409 images : fireviewer/fire-smoke-detection-corpus-v1.

Évaluation indépendante

L'ancien export local contenait des résultats validation/test identiques. Ils ne sont pas publiés ici. Le modèle a été réévalué avec un Trainer neuf par split sur une sélection déterministe :

  • 2 000 images de validation ;
  • 2 000 images de test ;
  • résolution 768 px ;
  • sélection SHA-256 : 103fd8711f3756b3da694c208f8b88104b309624c95b719f3418c70581c8a328.
Split mAP mAP@50 mAP@75 Flamme mAP Fumée mAP mAR@100
Validation 0,4435 0,6994 0,4651 0,3622 0,5249 0,6651
Test 0,4480 0,7116 0,4677 0,3818 0,5142 0,6647

Les fichiers exacts de sélection, de plan et de résultats sont disponibles dans evaluation/.

Audit de reproductibilité du 28 juillet 2026

Le contrat d'inférence initialement documenté sur cette page était incorrect : AutoImageProcessor ajoutait le padding en bas et à droite, puis post_process_object_detection(..., target_sizes=taille_originale) remettait directement les boîtes à l'échelle sans retirer ce padding. Cette combinaison produisait artificiellement 0,0186 mAP sur le test officiel.

La réévaluation a utilisé la révision exacte d1614fa68923bd540f4867e97f3f2eff5bb3ebcd, le fichier de poids dont le SHA-256 est indiqué plus bas, et les 2 000 images du split test officiel, vérifiées par empreinte :

Contrat testé mAP mAP@50 Conclusion
Ancien exemple HF, incorrect 0,0186 0,0822 padding non retiré
Prétraitement du trainer, FP32 + autocast BF16 0,4484 0,7109 score d'entraînement reproduit
Prétraitement du trainer, FP32 0,4519 0,7191 contrôle FP32
Coordonnées originales, FP32 0,4562 0,7262 padding correctement retiré

Les poids publiés sont donc valides. L'échec venait du contrat d'inférence, pas du checkpoint. Le rapport brut et le script de reproduction sont publiés dans evaluation/.

Résultats visuels

Audit du contrat d'inférence RT-DETR

La planche ci-dessus distingue deux causes qui ne doivent plus être confondues :

  • le contrat géométrique, qui doit retirer le padding avant de revenir aux coordonnées de l'image source ;
  • le mode numérique, qui doit conserver les poids FP32 et réserver BF16 à l'autocast d'inférence.

Sur le benchmark commun de 2 000 images, RT-DETR FireViewer reste le détecteur principal devant D-FINE FireViewer et Pyronear :

Comparaison des détecteurs feu et fumée

Cette comparaison utilise la sélection matérialisée dont le SHA-256 canonique est b1a73eb4760a26a4f0da99198eefde0a842c72e777ac16ea7518b6265173bc63. Elle contient 1 356 cibles fumée, 1 411 cibles flamme et 745 images négatives. Les versions SVG des deux graphiques sont également fournies dans assets/.

Utilisation

Ne pas envoyer directement une image rectangulaire au processeur puis utiliser sa taille originale comme target_sizes : cette séquence ne retire pas le letterboxing. Utiliser le helper versionné fourni dans ce dépôt, qui applique le même centrage 768 px que le trainer et reconvertit les boîtes vers les coordonnées originales.

from fireviewer_inference import FireViewerRTDETR

detector = FireViewerRTDETR.from_pretrained(
    "fireviewer/rtdetr-v2-r50-fire-smoke",
    device="cuda",
)
results = detector("image.jpg", threshold=0.35)

Sur CUDA, le helper conserve les poids en FP32 et utilise l'autocast BF16, comme le trainer. Convertir définitivement tous les poids en BF16 fait baisser le test à environ 0,4182 mAP et n'est pas le contrat recommandé.

Intégrité

SHA-256 de model.safetensors : 75aa67a0ed2411d15fd14886932ab18ffa409666ac7b80bf285efb3224e083e0.

Limites et usage prévu

Le modèle détecte des flammes et de la fumée visibles. Il ne détermine pas à lui seul un périmètre, une géolocalisation, un front caché ou une décision opérationnelle. Les faux positifs liés aux nuages, brouillards, poussières, lumières et reflets restent possibles. Toute sortie FireViewer doit être croisée avec les autres sources puis validée humainement.

Le modèle de base est Apache-2.0. Le corpus d'adaptation agrège plusieurs licences ; consulter la fiche du dataset et respecter les obligations par source avant redistribution ou usage.

Downloads last month
58
Safetensors
Model size
42.9M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for fireviewer/rtdetr-v2-r50-fire-smoke

Finetuned
(80)
this model

Dataset used to train fireviewer/rtdetr-v2-r50-fire-smoke

Evaluation results