How to use from the
Use from the
ultralytics library
# 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)

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

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 μ˜μ‘΄μ„± μ—†μŒ).

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 (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 μž…λ‹ˆλ‹€.

Downloads last month
55
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for albitro/phoenix_detection

Finetuned
(93)
this model