烟火检测数据集 9600张 烟雾火焰检测 带标注 voc yolo
烟火检测数据集介绍
数据集名称
烟火检测数据集 (Fire and Smoke Detection Dataset)
数据集概述
该数据集专为训练和评估基于YOLO系列目标检测模型(包括YOLOv5、YOLOv6、YOLOv7等)而设计,旨在帮助研究人员和开发者创建能够高效识别图像中的火焰和烟雾的系统。通过使用这个数据集,可以开发出适用于火灾预警、安全监控等多种应用场景的技术解决方案。
数据集规格
- 总图像数量:9,600张
- 训练集:具体划分比例未提供,通常建议按照70%(训练)、20%(验证)、10%(测试)的比例来分配。
- 标注格式:
- VOC格式:每个图像对应一个XML文件,包含边界框坐标及类别信息。
- YOLO格式:每个图像对应一个TXT文件,包含边界框坐标及类别ID。
- 分辨率:图像分辨率可能有所不同,但为了保证一致性,推荐将所有图像调整至统一尺寸,如640x640或1280x1280像素。
- 类别:涵盖两种常见的烟火类型,包括火焰 (fire) 和烟雾 (smoke)。
数据集结构
fire_smoke_dataset/
├── images/
│ ├── train/
│ ├── val/
│ └── test/
├── labels/
│ ├── train/
│ ├── val/
│ └── test/
└── data.yaml
images/
目录下存放的是原始图像文件。labels/
目录存放与图像对应的标注文件,每个图像文件都有一个同名的.txt
文件存储其YOLO格式的标注信息,以及一个同名的.xml
文件存储其VOC格式的标注信息。data.yaml
文件包含了关于数据集的基本信息,如路径指向、类别数目及其名称等关键参数。
数据集配置文件 (data.yaml
)
# 训练集图像路径
train: path_to_your_train_images
# 验证集图像路径
val: path_to_your_val_images
# 测试集图像路径(如果有的话)
test: path_to_your_test_images
# 类别数量
nc: 2
# 类别名称
names: ['fire', 'smoke']
标注统计
- 火焰 (fire):假设共有4,000张图像,共8,000个实例
- 烟雾 (smoke):假设共有5,600张图像,共12,000个实例
- 总计 (total):9,600张图像,共20,000个实例
请注意,上述标注统计是假设的数据,实际数据集的具体数字需要根据实际情况进行更新。
标注示例
YOLO格式
对于一张图片中包含一个“火焰”情况,相应的.txt
文件内容可能是:
0 0.5678 0.3456 0.1234 0.2345
这里0
代表“火焰”这一类别的ID,后续四个数字依次表示物体在图像中的相对位置(中心点x, 中心点y, 宽度w, 高度h),所有值均归一化到[0, 1]范围内。
VOC格式
对于同一张图片,相应的.xml
文件内容可能是:
<annotation>
<folder>images</folder>
<filename>000001.jpg</filename>
<size>
<width>640</width>
<height>640</height>
<depth>3</depth>
</size>
<object>
<name>fire</name>
<bndbox>
<xmin>180</xmin>
<ymin>200</ymin>
<xmax>300</xmax>
<ymax>400</ymax>
</bndbox>
</object>
</annotation>
这里<name>
标签指定了类别名称(fire),<bndbox>
标签定义了边界框的坐标。
使用说明
-
准备环境:
- 确保安装了必要的软件库以支持所选版本的YOLO模型。例如,对于YOLOv5,可以使用以下命令安装依赖库: bash
深色版本
pip install -r requirements.txt
- 确保安装了必要的软件库以支持所选版本的YOLO模型。例如,对于YOLOv5,可以使用以下命令安装依赖库: bash
-
数据预处理:
- 将图像和标注文件分别放在
images/
和labels/
目录下。 - 修改
data.yaml
文件中的路径以匹配你的数据集位置。 - 如果需要,可以使用脚本将VOC格式的标注文件转换为YOLO格式,或者反之。
- 将图像和标注文件分别放在
-
修改配置文件:
- 更新
data.yaml
以反映正确的数据路径。 - 如果使用YOLOv5或其他特定版本的YOLO,还需要更新相应的模型配置文件(如
models/yolov5s.yaml
)。
- 更新
-
开始训练:
- 使用提供的训练脚本启动模型训练过程。例如,对于YOLOv5,可以使用以下命令进行训练:
python train.py --img 640 --batch 16 --epochs 100 --data data.yaml --weights yolov5s.pt
- 使用提供的训练脚本启动模型训练过程。例如,对于YOLOv5,可以使用以下命令进行训练:
-
性能评估:
- 训练完成后,使用验证集或测试集对模型进行评估,检查mAP等指标是否达到预期水平。例如,对于YOLOv5,可以使用以下命令进行评估:
python val.py --data data.yaml --weights runs/train/exp/weights/best.pt --img 640
- 训练完成后,使用验证集或测试集对模型进行评估,检查mAP等指标是否达到预期水平。例如,对于YOLOv5,可以使用以下命令进行评估:
-
部署应用
-
python detect.py --source path_to_your_test_images --weights runs/train/exp/weights/best.pt --conf 0.4
-
注意事项
- 数据增强:可以通过调整数据增强策略来进一步提高模型性能,例如随机裁剪、旋转、亮度对比度调整等。
- 超参数调整:根据实际情况调整学习率、批大小等超参数,以获得最佳训练效果。
- 硬件要求:建议使用GPU进行训练,以加快训练速度。如果没有足够的计算资源,可以考虑使用云服务提供商的GPU实例。
- 平衡数据:注意数据集中各类别之间的不平衡问题,可以通过过采样、欠采样或使用类别权重等方式来解决。
- 烟火特性:烟火图像可能具有复杂的背景和光照条件,因此在训练时需要注意模型对这些特性的适应性。
通过上述步骤,你可以成功地使用YOLO系列模型进行火焰和烟雾检测,并获得高精度的检测结果。该数据集为研究者们提供了一个良好的起点,用于探索如何有效地利用计算机视觉技术解决各种实际问题,特别是在火灾预警和安全监控领域。