---
pipeline_tag: object-detection
library_name: rfdetr
license: other
license_name: composite-research-release
datasets:
- fireviewer/fire-smoke-detection-corpus-v1
tags:
- fireviewer
- fire
- smoke
- wildfire
- object-detection
- rf-detr
- research
model-index:
- name: FireViewer RF-DETR Medium 1.10 strict v1
  results:
  - task:
      type: object-detection
      name: Fire and smoke object detection
    dataset:
      name: FireViewer strict corpus validation split
      type: fireviewer/fire-smoke-detection-corpus-v1
      split: validation
    metrics:
    - type: map
      name: EMA mAP50-95
      value: 0.468331
    - type: map
      name: EMA mAP50
      value: 0.734626
---

# FireViewer RF-DETR Medium 1.10 strict v1

Research release of an RF-DETR Medium 1.10.0 detector trained for two classes:
`smoke_visible` and `flame_visible`.

This repository is publicly accessible for reproducibility, but the model has
**not yet passed the frozen independent FireViewer benchmark**. The values on
this page are training-validation metrics and are not directly comparable with
the independent results published for D-FINE-M or YOLO11-M.

## Training result

- Corpus: [`fireviewer/fire-smoke-detection-corpus-v1`](https://huggingface.co/datasets/fireviewer/fire-smoke-detection-corpus-v1)
- Input resolution: 576
- Batch size: 16
- Precision: BF16
- EMA: enabled
- Planned maximum: 30 epochs
- Clean early stopping: after epoch 24, following six validations without a new best
- Selected validation checkpoint: epoch 18

| Validation metric | Selected result |
| --- | ---: |
| EMA mAP50-95 | 0.468331 |
| EMA mAP50 | 0.734626 |
| EMA mAR | 0.624893 |
| F1 | 0.697713 |
| Precision | 0.755401 |
| Recall | 0.649472 |
| Smoke AP50-95 | 0.5867 |
| Flame AP50-95 | 0.3500 |

![Training-validation curves](assets/validation-curves.png)

## Checkpoints

- `checkpoint_best_total.pth`: selected inference candidate containing the best EMA state.
- `checkpoint_best_ema.pth`: best EMA checkpoint from epoch 18.
- `last_ema.pth`: final EMA state after epoch 24.
- `checkpoint_23.ckpt`: full optimizer/scheduler state; its zero-based epoch field is 23.
- `fireviewer_inference.py`: minimal RF-DETR 1.10 loading and prediction wrapper.
- `metrics.csv`, `training_config.json` and `validation-metrics.json`: machine-readable evidence.

All four checkpoints were reloaded with RF-DETR 1.10.0 before their initial
upload. `checkpoint_best_total.pth` is the default inference candidate;
`checkpoint_23.ckpt` exists for exact resume and is not the preferred serving
artifact.

## Minimal inference

```bash
python fireviewer_inference.py \
  --checkpoint checkpoint_best_total.pth \
  --image example.jpg \
  --threshold 0.25 \
  --device cuda
```

Threshold `0.25` is only an example. It has not been calibrated on the frozen
independent benchmark and must not be presented as an operational threshold.

## Evidence boundary

The current evidence supports retaining this model as a serious benchmark
candidate. It does not establish superiority over D-FINE-M or suitability for
field deployment. Public visibility is not a production promotion.

No benchmark image or annotation is stored in this model repository. The
independent test split must remain isolated from training, threshold fitting
and model selection.

## Rights and safety

The RF-DETR implementation and every training source retain their own licence
and attribution requirements; see
[`RIGHTS_AND_ATTRIBUTION.md`](RIGHTS_AND_ATTRIBUTION.md). No single licence is
asserted for all upstream data.

This model is not a certified warning system. It must not be used alone to
confirm a fire, trigger an alert, order an evacuation or direct emergency
response.
