Instructions to use fireviewer/rtdetr-v2-r50-fire-smoke with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use fireviewer/rtdetr-v2-r50-fire-smoke with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("object-detection", model="fireviewer/rtdetr-v2-r50-fire-smoke")# Load model directly from transformers import AutoTokenizer, AutoModelForObjectDetection tokenizer = AutoTokenizer.from_pretrained("fireviewer/rtdetr-v2-r50-fire-smoke") model = AutoModelForObjectDetection.from_pretrained("fireviewer/rtdetr-v2-r50-fire-smoke", device_map="auto") - Notebooks
- Google Colab
- Kaggle
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
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 :
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
Model tree for fireviewer/rtdetr-v2-r50-fire-smoke
Base model
PekingU/rtdetr_v2_r50vdDataset used to train fireviewer/rtdetr-v2-r50-fire-smoke
Evaluation results
- mAP on FireViewer Fire and Smoke Detection Corpus v1test set self-reported0.448
- mAP@50 on FireViewer Fire and Smoke Detection Corpus v1test set self-reported0.712

