Spaces:
Configuration error
Configuration error
|
Download docs/CASCADE_V25.md from fireviewer/README: direct link, hf CLI and curl.
- Browser
- Download file 7.4 kB
-
https://huggingface.co/spaces/fireviewer/README/resolve/main/docs/CASCADE_V25.md
- Command line
-
hf download hf://spaces/fireviewer/README/docs/CASCADE_V25.md
-
curl -L -o CASCADE_V25.md https://huggingface.co/spaces/fireviewer/README/resolve/main/docs/CASCADE_V25.md
7.4 kB
| # FireViewer v2.5 · native PyTorch cascade | |
| [Presentation](../README.md) · [Choose a component](CHOOSING_VARIANTS.md) · [Dataset guide](DATASET_V25.md) · [Update log](../CHANGELOG.md) | |
| Four selected native PyTorch checkpoints implement full-image proposals, visible-flame refinement, one visual anchor per accepted flame crop and a separate smoke-compatibility branch. The published cascade diagnostic used PyTorch on NVIDIA L4. | |
| | Stage | Native checkpoint | Input | | |
| | --- | --- | --- | | |
| | Generate single-class probable_fire candidate regions from full images. | [rfdetr-medium-probable-fire-v2.5](https://huggingface.co/fireviewer/rfdetr-medium-probable-fire-v2.5) | 1088 px | | |
| | Find visible flames inside probable-fire proposals. | [rfdetr-medium-visible-flame-v2.5](https://huggingface.co/fireviewer/rfdetr-medium-visible-flame-v2.5) | 1088 px | | |
| | Predict one visual flame anchor for each detected flame box. | [dinov2-small-visible-flame-monopoint-v2.5](https://huggingface.co/fireviewer/dinov2-small-visible-flame-monopoint-v2.5) | 448 px | | |
| | Estimate fire-associated smoke compatibility with an abstention interval. | [dinov2-small-fire-associated-smoke-v2.5](https://huggingface.co/fireviewer/dinov2-small-fire-associated-smoke-v2.5) | 448 px | | |
|  | |
| ## Functional routing | |
| ```mermaid | |
| flowchart TD | |
| I[RGB whole image] --> P[RF-DETR M probable_fire · 1088] | |
| P --> R[score .10 · NMS .75 · at most 6 ROI] | |
| R --> V[30% context · min 128px · RF-DETR M visible_flame · 1088] | |
| V --> F[Flame boxes · score .25 · reprojection · global NMS .60] | |
| F --> K[Tight flame crops · DINOv2-S heatmap · 448] | |
| K --> A[One flame_base_anchor per detected flame] | |
| V --> G[ROI without a local confirmed flame] | |
| G --> S[45% context · min 160px · DINOv2-S smoke classifier · 448] | |
| S --> T[Calibrated compatibility · low / ambiguous / high] | |
| ``` | |
| Context is added on each side: expanded width and height are multiplied by `1 + 2 × context`, before the minimum side and image clipping. RF-DETR receives NCHW float32 RGB resized with half-pixel bilinear interpolation, **no antialias**, with RGB converted to float before resize; normalization is ImageNet mean `[.485,.456,.406]`, std `[.229,.224,.225]`. Point crops use Pillow bilinear; smoke crops use Pillow bicubic. All models stretch to the specified square size. The supplied NumPy/Pillow runner preserves these differences. | |
| Proposal score ≥0.10, NMS IoU 0.75, limit 6; visible score ≥0.25 and global image-space NMS 0.60, limit 100. Tight point crops use floor for the minimum and ceil for the maximum. The heatmap point is the argmax followed by a local 5×5 softmax expectation at heatmap pixel centers. It is an appearance anchor, **not an ignition location**, geographic position or independently calibrated source confidence. | |
| Smoke temperature is **1.1490650177001953**. Low compatibility ≤**0.30160276398937463**; high compatibility ≥**0.8199750333466715**; values between these are ambiguous and do not raise the benchmark image alarm. Smoke is a binary visual compatibility classifier. It supplies no mask, smoke-core, smoke point or origin. No learned fire-group association is performed. | |
| ## Recorded external diagnostic · 680 images | |
| Frozen PyTorch FP32 pipeline on L4; no fitting or threshold selection on this panel. Case mix: 179 flame, 70 smoke, 431 negative images, 229 visual families. There may be several views of a family; families are not verified independent fire incidents. | |
| | Endpoint | Result | Numerator / denominator | | |
| |---|---:|---:| | |
| | Positive-image alarm recall | 88.35% | 220 / 249 | | |
| | Sampled image alarm precision | 81.78% | 220 / 269 | | |
| | Negative-image false-alarm rate | 11.37% | 49 / 431 | | |
| | Flame-image any-branch alarm recall | 99.44% | 178 / 179 | | |
| | Smoke-only any-branch alarm recall | 60.00% | 42 / 70 | | |
| | Flame bbox recall, IoU ≥ .5 | 25.64% | 231 / 901 | | |
| | Flame bbox precision, IoU ≥ .5 | 27.57% | 231 / 838 | | |
| | Tiny flame recall | 22.59% | 178 / 788 | | |
| | Multi-flame instance recall | 24.72% | 219 / 886 | | |
| | Expanded-proposal containment | 97.89% | 882 / 901 | | |
| | Point inside matched GT flame bbox | 97.84% | 226 / 231 | | |
| | Smoke-only image with false flame | 10.00% | 7 / 70 | | |
| An image alarm is any visible-flame output **or** high smoke compatibility; it is not a statement that every flame has a precise box. There were TP=220, FP=49, FN=29, TN=382 for image alarms; flame localization TP=231, FP=607, FN=670. Tiny means bbox area/image area ≤ `(32/1088)^2`, a protocol bin rather than original-pixel COCO-small. Proposal containment means at least 90% of the GT box lies within an expanded proposal. The 229-image one-representative-per-family panel still has tiny recall 101/399=25.31%. | |
| **Interpretation:** stage 1 generally provides coverage, while precise instance separation/localization of small visible flames remains the primary weakness. In the inspected worst-error gallery, several small annotated flames are merged into a broader detection. This is an observed error pattern, not a proven causal attribution for every miss. Good image suspicion and low box recall can coexist. The point-in-box statistic measures consistency only: no independent human flame-base GT is available, so PCK and base accuracy are unmeasured. Smoke-only labels establish visible smoke, not independently verified fire association. | |
| Mean end-to-end inference latency was 226.82 ms/image, median 172.44 ms, P95 458.01 ms on **L4 PyTorch**. All invoked stages, decoding, preprocessing, NMS and reprojection are included; model loading/warmup are excluded. Stage calls: proposal 680, visible 1636, point 838, smoke 855. These measurements describe the frozen native PyTorch cascade on NVIDIA L4. | |
| The image-level SHA/perceptual novelty audit covered all known historical splits including private sources and legacy FASDD/Pyro-SDIS manifests. Detected neighbors and suspected FLAME1 scenes were excluded before inference. No detected duplicate proves neither unseen events nor complete unknown provenance. Sources: [DIFD](https://zenodo.org/records/15860575) and [SAINetset v8](https://huggingface.co/datasets/SAINetset/SAINetset_v8.0), whose images may include synthetic/donated material. Only 208 retained images had a visual QA pass; there is no independent human annotation audit. Ratios describe this selected correlated panel, with no independent-event confidence intervals or deployment certification. | |
| ## Sources | |
| [Retained scientific source](https://huggingface.co/fireviewer/litert-models/blob/261c16b47744b893261481da089a4d9d5de569aa/docs/CASCADE_V25.md) · [Original diagnostic report](https://huggingface.co/fireviewer/litert-models/blob/261c16b47744b893261481da089a4d9d5de569aa/reports/cascade-v25-680/REPORT.md) · [Original metric JSON](https://huggingface.co/fireviewer/litert-models/blob/261c16b47744b893261481da089a4d9d5de569aa/reports/cascade-v25-680/metrics.json) · [Frozen release manifest](https://huggingface.co/fireviewer/litert-models/blob/261c16b47744b893261481da089a4d9d5de569aa/cascade/v2.5/source-release-manifest.json). Source-specific rights and the original evidence dates remain applicable. This English presentation extracts native-model routing and diagnostic results from the retained records; it does not rerun the cascade. | |