Instructions to use albitro/phoenix_detection with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- ultralytics
How to use albitro/phoenix_detection with ultralytics:
# Couldn't find a valid YOLO version tag. # Replace XX with the correct version. from ultralytics import YOLOvXX model = YOLOvXX.from_pretrained("albitro/phoenix_detection") source = 'http://images.cocodataset.org/val2017/000000039769.jpg' model.predict(source=source, save=True) - Notebooks
- Google Colab
- Kaggle
File size: 5,616 Bytes
96f110e eed1467 96f110e eed1467 96f110e eed1467 96f110e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | ---
license: agpl-3.0
tags:
- object-detection
- ultralytics
- yolo
- yolo26
- fire-detection
- computer-vision
- pytorch
library_name: ultralytics
pipeline_tag: object-detection
base_model: Ultralytics/YOLO26
---
# Phoenix Detection β YOLO26s νμ¬Β·μ¬λ νμ§ (μ μ²λ¦¬ μ 무 λΉκ΅)
νμ¬ νμ₯μμ **λΆ(fire)** κ³Ό **μ¬λ(person)** μ νμ§νλ YOLO26s λͺ¨λΈ λ κ°μ
λλ€.
κ°μ λ°μ΄ν°μ
Β·κ°μ νμ΄νΌνλΌλ―Έν°λ‘ νμ΅νκ³ , **μ
λ ₯ μ΄λ―Έμ§ μ μ²λ¦¬ μ λ¬΄λ§ λ€λ¦
λλ€.**
| | `baseline/` | `filtered/` |
|---|---|---|
| νμ΅ μ΄λ―Έμ§ | Roboflow μλ³Έ | λν€μ΄μ¦ + CLAHE μ μ©λ³Έ |
| μΆλ‘ μ μ μ²λ¦¬ | λΆνμ | **νμ** (μλ μ°Έμ‘°) |
| μ©λ | λμ‘°κ΅° | μ°λ¬΄Β·μ λλΉ νκ²½ λμ |
## μ±λ₯ (test split, 71 images / 94 instances)
| λͺ¨λΈ | P | R | mAP@50 | mAP@50-95 |
|---|---|---|---|---|
| baseline | 0.967 | 0.967 | 0.982 | 0.702 |
| **filtered** | **0.983** | **0.980** | **0.994** | **0.715** |
ν΄λμ€λ³ (mAP@50 / mAP@50-95):
| ν΄λμ€ | baseline | filtered |
|---|---|---|
| fire | 0.971 / 0.616 | **0.995 / 0.634** |
| person | **0.994** / 0.788 | 0.992 / **0.796** |
μ μ²λ¦¬λ³Έμ΄ λͺ¨λ μ’
ν© μ§νμμ μμκ³ , νΉν `fire` ν΄λμ€μ mAP@50 μ΄ 0.971 β 0.995 λ‘ μ€λ¦
λλ€.
λ€λ§ **test μ
μ΄ 71μ₯λΏ**μ΄λΌ μ΄ μ°¨μ΄λ₯Ό ν΅κ³μ μΌλ‘ μ μνλ€κ³ λ¨μ νκΈ°λ μ΄λ ΅μ΅λλ€.
κ²½ν₯μ κ·Όκ±°λ‘λ§ λ³΄μκ³ , νλ¨μ΄ μ€μν μ©λλΌλ©΄ λ ν° μ
μμ μ¬νμΈνμΈμ.
κ° ν΄λμ `results.csv`(μνλ³ μ 체 곑μ ), `results.png`, `confusion_matrix_normalized.png`,
`BoxPR_curve.png` λ‘ νμ΅ κ³Όμ μ νμΈν μ μμ΅λλ€. νμ μμΉλ κ° λͺ¨λΈμ best 체ν¬ν¬μΈνΈλ₯Ό
test split μμ μ¬νκ°ν κ°μ
λλ€.
## μ¬μ©λ²
### baseline
```python
from ultralytics import YOLO
from huggingface_hub import hf_hub_download
w = hf_hub_download("albitro/phoenix_detection", "baseline/best.pt")
model = YOLO(w)
results = model("frame.jpg")
results[0].show()
```
### filtered β μ μ²λ¦¬λ₯Ό λ°λμ κ±°μ³μΌ ν©λλ€
μ΄ κ°μ€μΉλ μ μ²λ¦¬λ ν½μ
λ‘ νμ΅λμμ΅λλ€. μλ³Έ μ΄λ―Έμ§λ₯Ό κ·Έλλ‘ λ£μΌλ©΄ νμ΅/μΆλ‘ λΆν¬κ°
μ΄κΈλ μ±λ₯μ΄ λ¨μ΄μ§λλ€. νμ΅μ μ΄ κ²κ³Ό **λμΌν** νμ΄νλΌμΈμ `filtered/preprocess/` μ
ν¨κ» μ¬λ €λμμ΅λλ€ (`opencv-python`, `numpy` λ§ μμΌλ©΄ λμνλ©° ROS μμ‘΄μ± μμ).
```python
import cv2
from ultralytics import YOLO
from huggingface_hub import snapshot_download
repo = snapshot_download("albitro/phoenix_detection")
import sys; sys.path.insert(0, f"{repo}/filtered")
from preprocess import build_default_pipeline
pipe = build_default_pipeline() # filter_params.json μ κ° κ·Έλλ‘
model = YOLO(f"{repo}/filtered/best.pt")
bgr = cv2.imread("frame.jpg") # BGR, uint8
results = model(pipe.process(bgr))
results[0].show()
```
`pipe.process()` λ BGR uint8 μ λ°μ BGR uint8 μ λλ €μ€λλ€. λΉλμ€ μ€νΈλ¦Όμμλ
`pipe` λ₯Ό ν λ²λ§ λ§λ€μ΄ μ¬μ¬μ©νμΈμ (νλ μλ§λ€ μλ‘ λ§λ€ νμ μμ).
## μ μ²λ¦¬ νμ΄νλΌμΈ
`mode="full"` β κ°λ§ 보μ β Dark Channel Prior λν€μ΄μ¦(guided filter refinement) β CLAHE.
μ 체 νλΌλ―Έν°λ `filtered/filter_params.json` μ μκ³ `preprocess.DEFAULTS` μ μΌμΉν©λλ€.
μ£Όμ κ°: `omega=0.95`, `t0=0.1`, `patch=15`, `scale=0.25`, `a_max=0.92`,
`clahe_clip=2.0`, `clahe_tile=8`, `gamma=1.0`.
## λ°μ΄ν°μ
[Roboflow Universe β `-ssifa/it-t82tu` v1](https://universe.roboflow.com/-ssifa/it-t82tu/dataset/1)
(CC BY 4.0). 640Γ480, 2 ν΄λμ€, train 307 / valid 94 / test 71.
`filtered` λ°μ΄ν°μ
μ μλ³Έμ μ μ²λ¦¬λ₯Ό μ μ©ν μ¬λ³Έμ
λλ€. **λΆν λ©€λ²μΒ·νμΌλͺ
Β·λΌλ²¨μ΄ μλ³Έκ³Ό
μμ ν λμΌνκ³ ν½μ
κ°λ§ λ€λ¦
λλ€** β λν€μ΄μ¦μ CLAHE λ νμκ° λ³νμ΄λΌ λ°μ΄λ©λ°μ€κ°
μμ§μ΄μ§ μκΈ° λλ¬Έμ
λλ€. λ λͺ¨λΈμ μ°¨μ΄κ° μ μ²λ¦¬ ν¨κ³ΌμΈμ§ λΆν μ΄μΈμ§ ν·κ°λ¦¬μ§ μλλ‘
μλμ μΌλ‘ μ΄λ κ² λ§μ·μ΅λλ€. μ¬μμΆ μμ€μ΄ μ μ²λ¦¬ 쑰건μλ§ μΉνλ κ²μ νΌνλ €κ³ μ¬λ³Έμ
PNG 무μμ€λ‘ μ μ₯νμ΅λλ€.
λ°μ΄ν°μ
μ체λ μ΄ λ ν¬μ ν¬ν¨λΌ μμ§ μμ΅λλ€. ν΄λμ€ μ μλ `data.yaml` μ°Έμ‘°.
## νμ΅ μ€μ
λ λͺ¨λΈ 곡ν΅μ
λλ€. μ 체λ κ° ν΄λμ `args.yaml` μ μμ΅λλ€.
| | |
|---|---|
| base | `yolo26s.pt` (COCO pretrained) |
| epochs | 100 (baseline best @79, filtered best @95) |
| imgsz | 640 |
| batch | 16 |
| optimizer | auto |
| seed | 0 |
| device | Intel Arc B580 (XPU), PyTorch 2.13.0+xpu |
| ultralytics | 8.4.117 |
## νκ³
- **μμ λ°μ΄ν°μ
** (μ΄ 472μ₯). 촬μ νκ²½μ΄ νμ΅ λ°μ΄ν°μ λ€λ₯΄λ©΄ μΌλ°νκ° λ¨μ΄μ§ μ μμ΅λλ€.
- test μ
71μ₯ κΈ°μ€μ λΉκ΅λΌ λ λͺ¨λΈ κ° μ°¨μ΄μ μ 뒰ꡬκ°μ΄ λμ΅λλ€.
- `fire` μ mAP@50-95 κ° 0.63 μμ€μ
λλ€. νμ§ μ¬λΆ(mAP@50 0.995)λ μ λ’°ν λ§νμ§λ§
λΆκ½ κ²½κ³μ λ°μ€ μ λ°λλ κ·Έλ§νΌ λμ§ μμ΅λλ€ β λΆκ½μ κ²½κ³κ° λͺ¨νΈν λμμ
λλ€.
- μμ μ΄ κ±Έλ¦° μ©λμ λ¨λ
νλ¨ κ·Όκ±°λ‘ μ°μ§ λ§μΈμ. μ¬λμ νμΈμ κ±°μΉλ 경보 보쑰λ‘λ§ μ°μΈμ.
## λΌμ΄μ μ€
κ°μ€μΉλ Ultralytics YOLO μμ νμλμ΄ **AGPL-3.0** μ λ°λ¦
λλ€. λ€νΈμν¬ μλΉμ€λ‘ λ°°ν¬ν
κ²½μ° μμ€ κ³΅κ° μλ¬΄κ° λ°λΌμ΅λλ€. μμ© μ©λλΌλ©΄ Ultralytics μν°νλΌμ΄μ¦ λΌμ΄μ μ€λ₯Ό νμΈνμΈμ.
νμ΅ λ°μ΄ν°μ
μ CC BY 4.0 μ
λλ€.
|