怀化电视台网站,网站建设一般需要什么软件,seo俱乐部,WordPress修改评论者昵称YOLOv5是目标检测领域一种非常优秀的模型#xff0c;其具有以下几个优势#xff1a; 1. 高精度#xff1a;YOLOv5相比于其前身YOLOv4#xff0c;在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进#xff0c;如更深的网络结构、更多的特征层和更高分辨率的输入图… YOLOv5是目标检测领域一种非常优秀的模型其具有以下几个优势 1. 高精度YOLOv5相比于其前身YOLOv4在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进如更深的网络结构、更多的特征层和更高分辨率的输入图像以提升精度。 2. 高效性能YOLOv5在目标检测任务中具有很高的处理速度和实时性。相比于其他目标检测模型YOLOv5采用了更少的计算量和参数数量因此它在目标检测任务中具有更快的推理速度。 3. 简单易用YOLOv5是一个开源项目源代码公开并且提供了预训练的模型权重。这使得使用YOLOv5进行目标检测变得非常方便无需从头开始训练模型只需进行适当的微调即可。 4. 多平台适用YOLOv5可以在多种平台上运行包括PC端、嵌入式设备和移动设备等。这使得YOLOv5可以在各种场景下应用如自动驾驶、智能安防、人脸识别等。 5. 多功能YOLOv5可以检测和分类多个不同的目标类别包括人、车辆、动物等。此外YOLOv5还可以检测出目标的位置和大小并提供相应的置信度。 总之YOLOv5具有高精度、高效性能、简单易用、多平台适用和多功能等优势使其成为目标检测领域中的一种前沿模型。 本文介绍了基于Yolov5的火焰烟雾检测模型包括训练过程和数据准备过程同时提供了推理的代码。对准备计算机视觉相关的毕业设计的同学有着一定的帮助。
示例图下 一、安装YoloV5
yolov5和yolov8的开发团队相同v5集成在v8中。官方文档主页 - Ultralytics YOLOv8 文档
安装部分参考官方安装教程
二、数据集准备
火灾烟雾检测数据集检测2种火焰和烟雾。训练集总共6007张图验证集667张图。
示例图片如下 本文提供转换好的yolov5格式数据集可以直接放入yolov5中训练数据集地址yolov5和yolov8格式相同火灾、烟雾检测yolov5数据集
三、模型训练
1、数据集配置文件
在ultralytics/ultralytics/cfg/datasets目录下添加fire_smoke.yaml添加以下内容path修改为自己的路径
# Ultralytics YOLO , AGPL-3.0 license
# COCO 2017 dataset http://cocodataset.org by Microsoft
# Example usage: yolo train datacoco.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco ← downloads here (20.1 GB)# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: datasets/fire_smoke/fire_smoke-yolov8 # 替换为自己的数据集路径
train: images/train
val: images/val
test: images/val # Classes
names:# 0: normal0: fire1: smoke
2、修改模型配置文件
在ultralytics/ultralytics/cfg/models/v5目录下添加yolov5_fire_smoke.yaml添加以下内容
# Ultralytics YOLO , AGPL-3.0 license
# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5# Parameters
nc: 2 # number of classes
scales: # model compound scaling constants, i.e. modelyolov5n.yaml will call yolov5.yaml with scale n# [depth, width, max_channels]n: [0.33, 0.25, 1024]s: [0.33, 0.50, 1024]m: [0.67, 0.75, 1024]l: [1.00, 1.00, 1024]x: [1.33, 1.25, 1024]# YOLOv5 v6.0 backbone
backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2[-1, 1, Conv, [128, 3, 2]], # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]], # 3-P3/8[-1, 6, C3, [256]],[-1, 1, Conv, [512, 3, 2]], # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]], # 9]# YOLOv5 v6.0 head
head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 6], 1, Concat, [1]], # cat backbone P4[-1, 3, C3, [512, False]], # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, nearest]],[[-1, 4], 1, Concat, [1]], # cat backbone P3[-1, 3, C3, [256, False]], # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14], 1, Concat, [1]], # cat head P4[-1, 3, C3, [512, False]], # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]], # cat head P5[-1, 3, C3, [1024, False]], # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5)]3、训练模型
使用如下命令训练模型相关路径更改为自己的路径建议绝对路径
yolo detect train projectdeploy nameyolov5_fire_smoke exist_okFalse optimizerauto valTrue ampTrue epochs100 imgsz640 modelultralytics/ultralytics/cfg/models/v5/yolov5_fire_smoke.yaml dataultralytics/ultralytics/cfg/datasets/fire_smoke.yaml4、验证模型
使用如下命令验证模型相关路径根据需要修改
yolo detect val imgsz640 modeldeploy/yolov5_fire_smoke/weights/best.pt dataultralytics/ultralytics/cfg/datasets/fire_smoke.yaml四、推理
训练好了模型可以使用如下代码实现推理将权重放到同级目录
from PIL import Image
from ultralytics import YOLO# 加载预训练的YOLOv8n模型
model YOLO(best.pt)# 在bus.jpg上运行推理
image_path fire_000824.jpg
results model(image_path) # 结果列表# 展示结果
for r in results:im_array r.plot() # 绘制包含预测结果的BGR numpy数组im Image.fromarray(im_array[..., ::-1]) # RGB PIL图像im.show() # 显示图像im.save(results.jpg) # 保存图像本教程训练好的权重和推理代码、示例代码连接推理代码和训练好的权重