Kunpeng 4dee7f664d chore: untrack pretrained/checkpoint weights and server logs, fix yolo26n run path
- Track only trained best.pt under runs/*/weights; ignore epoch/last
  checkpoints, downloaded base weights, and server logs (.gitignore)
- Move runs/detect/runs/detect/smoke_fire_yolo26n_v2-3 to
  runs/detect/smoke_fire_yolo26n_v2-3 and update docs/model_comparison.md
- Replace the Git LFS claim with an accurate plain-file statement
2026-08-13 16:37:45 +08:00
2026-08-13 15:03:34 +08:00
2026-08-13 15:03:34 +08:00
2026-08-13 15:03:34 +08:00
2026-08-13 15:03:34 +08:00
2026-08-07 16:04:13 +08:00
2026-08-13 15:03:34 +08:00

Smoke and Fire YOLO

Ultralytics YOLO training, validation, prediction, and export pipeline for the Smoke-Fire-Detection-YOLO dataset.

Project layout

configs/datasets/smoke_fire.yaml  Dataset configuration
models/pretrained/yolo11s.pt      Default pretrained model
src/yolo/cli.py                   Command-line entry point
src/yolo/config.py                Training configuration
src/yolo/defaults.py              Project defaults
src/yolo/engine.py                Train, validate, predict, and export
src/yolo/checkpoints.py           Checkpoint discovery and resume support
src/yolo/reporting.py             Training result reporting

Setup

uv sync

Commands

Fine-tune from the current best YOLO11s checkpoint:

uv run fire-yolo train

Resume from the newest checkpoint:

uv run fire-yolo train --resume

Validate a trained model:

uv run fire-yolo val --weights runs/detect/<run-name>/weights/best.pt

Run inference:

uv run fire-yolo predict --weights runs/detect/<run-name>/weights/best.pt --source path/to/image-or-video

Export a model:

uv run fire-yolo export --weights runs/detect/<run-name>/weights/best.pt --format onnx

Default training settings

  • Model: runs/detect/smoke_fire_yolo11s_v1-4/weights/best.pt
  • Dataset: configs/datasets/smoke_fire.yaml
  • Epochs: 80
  • Image size: 768
  • Batch: 24
  • Workers: 0
  • Optimizer: AdamW
  • Initial learning rate: 0.0002
  • Mosaic/MixUp: disabled
  • Prediction confidence: 0.40
  • Checkpoint interval: every 5 epochs
  • Output: runs/detect

Training writes last.pt, best.pt, periodic checkpoints, and best_point.json to the run directory.

Web Detection Service

After training finishes, install the web dependencies and run the integrated frontend and inference API:

uv sync
uv run uvicorn backend.main:app --host 127.0.0.1 --port 8000

Open http://127.0.0.1:8000 to use the fire prevention management platform. It provides a system overview, local-video inspection, alert event handling, a risk register, robot channel status, and effective model settings. The browser plays selected videos locally and sends sequential JPEG frames to POST /api/detect; requests do not overlap.

Management endpoints include GET /api/dashboard, GET /api/events, PATCH /api/events/{event_id}, and GET /api/robots. Alert events can be marked as pending, acknowledged, or resolved. The robot endpoint reports Enterprise WeChat and Feishu configuration and delivery statistics without exposing webhook credentials. Use POST /api/robots/{channel}/test to send a connection test to a configured group robot. The current implementation retains the most recent 500 events and robot delivery counters in process memory, so they are cleared when the API service restarts.

The local .env file contains optional robot settings. Set WECHAT_WEBHOOK_URL for an Enterprise WeChat group robot, FEISHU_WEBHOOK_URL for a Feishu custom group robot, or both. If Feishu signature verification is enabled, also set FEISHU_SECRET. Alerts require three consecutive positive frames by default and use separate 60-second cooldowns for fire and smoke. ALERT_CONFIRM_FRAMES and ALERT_COOLDOWN_SECONDS override these settings. Without a webhook, video detection still works and the UI reports that notifications are disabled.

Description
No description provided
Readme 969 MiB
Languages
Python 43%
CSS 22%
JavaScript 20.4%
HTML 14.6%