YOLO视觉模型训练,生成火焰识别模型
·
目标
基于yolo8m模型进行火焰类型的识别训练,生成一个可识别fire和smoke的视觉模型。
一、yolo模型类别
ultralytics通过coco训练集得到的yolo模型主要的识别类别如下
# Classes
names:
0: person
1: bicycle
2: car
3: motorcycle
4: airplane
5: bus
6: train
7: truck
8: boat
9: traffic light
10: fire hydrant
11: stop sign
12: parking meter
13: bench
14: bird
15: cat
16: dog
17: horse
18: sheep
19: cow
20: elephant
21: bear
22: zebra
23: giraffe
24: backpack
25: umbrella
26: handbag
27: tie
28: suitcase
29: frisbee
30: skis
31: snowboard
32: sports ball
33: kite
34: baseball bat
35: baseball glove
36: skateboard
37: surfboard
38: tennis racket
39: bottle
40: wine glass
41: cup
42: fork
43: knife
44: spoon
45: bowl
46: banana
47: apple
48: sandwich
49: orange
50: broccoli
51: carrot
52: hot dog
53: pizza
54: donut
55: cake
56: chair
57: couch
58: potted plant
59: bed
60: dining table
61: toilet
62: tv
63: laptop
64: mouse
65: remote
66: keyboard
67: cell phone
68: microwave
69: oven
70: toaster
71: sink
72: refrigerator
73: book
74: clock
75: vase
76: scissors
77: teddy bear
78: hair drier
79: toothbrush
二、数据训练集
训练集:17,221张图片
测试集:4,306张图片
验证集:47张图片
三、建立数据集yaml文件
train: "/mnt/workspace/demos/YOLOv8-Fire-and-Smoke-Detection/datasets/fire-8/train/images"
val: "/mnt/workspace/demos/YOLOv8-Fire-and-Smoke-Detection/datasets/fire-8/valid/images"
test: "/mnt/workspace/demos/YOLOv8-Fire-and-Smoke-Detection/datasets/fire-8/test/images" # 可选,确保路径正确
nc: 3 # 类别数,例如 1 类
names: ["fire","default","smoke"] # 类别名称
四、CV模型训练
from ultralytics import YOLO
# 加载模型(也可以使用 yolov8n.pt / yolov8s.pt 等)
model = YOLO('yolov8m.pt') #此处填写的模型会在进程中进行下载
# 开始训练
model.train(
data='/mnt/workspace/demos/CV/Fire-Detection-using-YOLOv8/ultralytics/yolo/data/datasets/fire.yaml', # 数据集配置路径
epochs=100, # 训练轮数
batch=16, # 每批次图像数量
imgsz=800, # 输入图像大小
scale=0.75, # 多尺度增强(代替 multi_scale)
patience=20, # 提前终止等待轮数
project='runs/fire-detection', # 输出根目录
name='fire-v1-m', # 当前训练的子目录名
exist_ok=True, # 若目录存在则继续写入
cos_lr=True
)
训练任务中的参数设置需要依赖于GPU、内存等性能指标决定
(阿里云环境的 8vgpu 单卡 NVIDIA A10 内存30GiB的环境下,batch设置为64时报错内存不足,降低为16时可正常训练)
五、CV模型格式转换
完成训练后得到训练指标结果以及best.pt模型
执行第一条语句进行格式转换,PyTorch 格式的模型被转换为TensorRT ,以便使用导出的模型进行推理,转换后获得.engine和.onnx格式的模型。
# Export a YOLO11n PyTorch model to TensorRT format
yolo export model=yolo11n.pt format=engine # creates 'yolo11n.engine'
# Run inference with the exported model
yolo predict model=yolo11n.engine source='https://ultralytics.com/images/bus.jpg'
六、结果测试

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)