image cls 2-binary (smoke/fire) cvat2 project 23/36 (496K frames) 18 ablations + Best7 ensemble 訓練:2026-05-07 | 5090-2 dual-GPU agent
import torch, timm
from PIL import Image
import torchvision.transforms as T
ckpt = torch.load("fire_smoke_v20260507E_ema.pt", weights_only=False)
# ckpt['model_name'] = "mobilenetv3_large_100.ra_in1k"
# ckpt['classes'] = ['smoke', 'fire'], img_size = 224
model = timm.create_model(ckpt["model_name"], pretrained=False,
num_classes=len(ckpt["classes"])).eval()
model.load_state_dict(ckpt["model_state"])
mean = [0.485, 0.456, 0.406]; std = [0.229, 0.224, 0.225]
tf = T.Compose([T.Resize((224, 224)), T.ToTensor(), T.Normalize(mean, std)])
x = tf(Image.open("frame.jpg").convert("RGB")).unsqueeze(0)
with torch.no_grad():
probs = torch.sigmoid(model(x))[0]
# probs[0] = smoke prob, probs[1] = fire prob
# 推薦 thr:smoke=0.30 (FP 最低), fire=0.50
已上線 https://ppe-demo.intemotech.com/,dropdown 選「🔥 火煙 | v20260507E camaug+EMA ⭐」。baseline v20260410 並列保留為 fire_smoke_baseline。
Generated 2026-05-07 | rai-vision-training | 8hr autonomous research on 5090-2 | kaggle-reports.pages.dev