高点摄像山火烟雾检测数据集(并按照低、中详细标注烟雾浓度)。主要针对初期山火,任何野火检测系统的最重要目标是在火势扩大之前及时检测到火灾。在初期阶段,野火由非火焰性的燃烧烟雾组成,热量相对较低。在这个阶段识别火灾能够提供最佳的抑制机会。在这个阶段通常看不到火焰;因此,任何旨在早期检测的野火检测系统必须集中在检测烟雾而不是火焰上。该数据集全部为山顶开阔区域架设的高点摄像头拍摄,共2890张图像,分辨率1920×1080,标注采用json格式,标注了每个烟雾的位置,烟雾浓度等级(低,中,高),共1.1GB
高点摄像山火烟雾检测数据集
名称
高点摄像山火烟雾检测数据集
规模
- 图像数量:2890张
- 分辨率:1920×1080
- 数据量:约1.1GB
采集设备
- 摄像头位置:山顶开阔区域架设的高点摄像头
- 视野:覆盖广阔的森林和山区,能够捕捉到远处的烟雾
数据特点
- 初期山火检测:主要针对初期山火,重点在于检测非火焰性的燃烧烟雾。
- 详细标注:每个图像中的烟雾位置和浓度等级(低、中、高)都进行了详细标注。
- 高分辨率:所有图像均为1920×1080分辨率,提供了丰富的细节信息,有助于提高检测精度。
- 多样化场景:图像涵盖了不同时间段和天气条件下的场景,确保模型具有良好的通用性和适应性。
标注格式
- 文件格式:JSON
- 标注内容 :
- 烟雾的位置(边界框)
- 烟雾浓度等级(低、中、高)
示例JSON标注文件内容:
{
"image_id": "image_0001.jpg",
"annotations": [
{
"bbox": [500, 300, 600, 400],
"smoke_concentration": "low"
},
{
"bbox": [1000, 600, 1200, 800],
"smoke_concentration": "medium"
}
]
}
应用场景
- 早期火灾检测:在火势扩大之前及时检测到火灾,提供最佳的抑制机会。
- 智能监控系统:集成到智能监控系统中,自动检测并报警,减少人工监控的工作量。
- 灾害响应:快速识别火灾发生地点,支持应急响应和救援行动。
- 环境监测:持续监测森林和山区的烟雾情况,评估空气质量。
- 研究与教育:用于科研机构的研究以及相关院校的教学,帮助学生和研究人员更好地了解山火检测技术。
数据集结构
假设数据集的文件结构如下:
wildfire_smoke_detection_dataset/
├── images/
│ ├── image_0001.jpg
│ ├── image_0002.jpg
│ └── ...
├── annotations/
│ ├── annotation_0001.json
│ ├── annotation_0002.json
│ └── ...
└── metadata.csv
metadata.csv
文件内容示例:
image_id, date, time, location
image_0001, 2023-07-01, 10:00:00, Mountain A
image_0002, 2023-07-02, 10:30:00, Mountain B
...
代码示例
下面是一个简单的Python脚本示例,展示如何加载和可视化这些数据集的一部分。我们将使用OpenCV来读取图像,并从JSON文件中解析标注信息。
import os
import cv2
import json
import pandas as pd
import numpy as np
def load_wildfire_data(image_dir, annotation_dir, metadata_file):
images = []
annotations = []
metadata = pd.read_csv(metadata_file)
for index, row in metadata.iterrows():
image_id = row['image_id']
date = row['date']
time = row['time']
location = row['location']
# 加载图像
img_path = os.path.join(image_dir, f"{image_id}.jpg")
image = cv2.imread(img_path)
# 加载对应的标注
annotation_filename = f"annotation_{image_id.split('_')[1]}.json"
annotation_path = os.path.join(annotation_dir, annotation_filename)
with open(annotation_path, 'r') as f:
annotation = json.load(f)
if image is not None and annotation is not None:
images.append((image, date, time, location))
annotations.append(annotation)
else:
print(f"Failed to load image or annotation: {img_path} or {annotation_path}")
return images, annotations, metadata
# 假设图像存储在'image'目录下,标注文件存储在'annotations'目录下,元数据文件为'metadata.csv'
image_dir = 'path_to_your_image_directory'
annotation_dir = 'path_to_your_annotation_directory'
metadata_file = 'path_to_your_metadata_file'
images, annotations, metadata = load_wildfire_data(image_dir, annotation_dir, metadata_file)
# 显示第一张图像及其对应的标注框
img, date, time, location = images[0]
annotation = annotations[0]
for obj in annotation['annotations']:
bbox = obj['bbox']
smoke_concentration = obj['smoke_concentration']
(xmin, ymin, xmax, ymax) = bbox
color = (0, 255, 0) if smoke_concentration == 'low' else (0, 255, 255) if smoke_concentration == 'medium' else (0, 0, 255)
cv2.rectangle(img, (xmin, ymin), (xmax, ymax), color, 2)
cv2.putText(img, smoke_concentration, (xmin, ymin - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, color, 2)
cv2.imshow('Image with Annotations', img)
cv2.setWindowTitle('Image', f'Image: Date {date}, Time {time}, Location {location}')
cv2.waitKey(0)
cv2.destroyAllWindows()
说明
- 路径设置 :请根据实际的数据集路径调整
path_to_your_image_directory
、path_to_your_annotation_directory
和path_to_your_metadata_file
。 - 文件命名 :假设图像文件名分别为
.jpg
,标注文件为.json
。如果实际命名规则不同,请相应修改代码。 - 可视化:通过绘制边界框和标注烟雾浓度等级,可以直观地看到图像中的烟雾位置和浓度。
进一步的应用
- 训练深度学习模型:可以使用这个数据集来训练卷积神经网络(CNN)或其他机器学习模型,以实现自动化的山火烟雾检测。
- 数据增强:为了增加数据集的多样性和鲁棒性,可以使用数据增强技术(如旋转、翻转、缩放等)生成更多的训练样本。
- 评估与优化:通过交叉验证和测试集评估模型性能,并不断优化模型参数,以提高检测准确率。
这个数据集对于早期山火检测具有重要的实用价值,可以帮助相关部门及时发现和处理火灾,减少损失并保护生态环境。