热成像车辆行人数据集 目标检测数据集
热成像目标检测数据集 V2 版本
项目背景
热成像技术因其在安防监控、夜间巡逻、消防救援等领域的独特优势而受到重视。本数据集旨在提供高质量的热成像图像及其对应的可见光图像,支持热成像目标检测的研究与应用。
数据集概述
- 名称:热成像目标检测数据集 V2
- 规模:总计26,442帧
- 可见光图像:9,233张
- 热成像图像:9,711张
- 匹配的热成像/可见光视频帧:7,498帧
- 标注目标数量:520,000个
- 目标类别:包括人、自行车、汽车、摩托车、巴士、火车、卡车、灯、消防栓、交通标志、狗、滑板、婴儿车、电动踏板车及其他车辆
数据集特点
- 多样化:涵盖多种场景下的目标检测,包括人、交通工具以及其他常见物体。
- 高质量标注:每个目标均进行了精细标注,确保数据质量。
- 多模态数据:提供热成像图像和可见光图像的匹配数据,适合跨模态学习任务。
- 大规模数据量:包含大量标注目标,有助于训练鲁棒性强的检测模型。
数据集内容
- 可见光图像:包含在不同环境下的可见光图像,用于辅助热成像图像的理解。
- 热成像图像:包含在不同环境下的热成像图像,用于目标检测。
- 匹配的热成像/可见光视频帧:包含匹配的热成像和可见光视频帧,适用于多模态目标检测任务。
数据集用途
- 目标检测:可用于训练和评估目标检测模型,特别是在热成像条件下的目标检测。
- 安防监控:帮助识别夜间或低光照条件下的目标,提高安防系统的有效性。
- 学术研究:为热成像技术的应用提供丰富的数据支持,促进相关领域的研究进展。
- 实际应用:可应用于夜间巡逻、消防救援等多个实际场景,提高系统的鲁棒性和可靠性。
标注详情
- 人:标注了各类人群,包括不同年龄、性别的人。
- 自行车:标注了不同类型的自行车。
- 汽车:标注了不同品牌和型号的汽车。
- 摩托车:标注了不同类型的摩托车。
- 巴士:标注了不同类型的巴士。
- 火车:标注了火车及其车厢。
- 卡车:标注了不同类型的卡车。
- 灯:标注了各种灯具。
- 消防栓:标注了消防栓的位置。
- 交通标志:标注了各种交通标志。
- 狗:标注了不同品种的狗。
- 滑板:标注了滑板及其使用者。
- 婴儿车:标注了婴儿车及其使用者。
- 电动踏板车:标注了电动踏板车及其使用者。
- 其他车辆:标注了除上述类别之外的其他车辆。
使用场景
- 安防监控:在夜间或低光照条件下,利用热成像技术进行目标检测。
- 消防救援:在火灾现场,利用热成像技术快速定位人员和重要设施。
- 夜间巡逻:在夜间巡逻中,利用热成像技术识别潜在威胁。
- 交通监控:在交通监控中,利用热成像技术进行车辆和行人的检测。
技术指标
- 数据量:总计26,442帧,包含多种图像类型。
- 标注目标数量:520,000个标注目标,确保数据的丰富性和多样性。
- 标注格式:支持多种标注格式(如JSON、VOC、YOLO),方便导入不同的检测框架。
注意事项
- 数据隐私:在使用过程中,请确保遵守相关法律法规,保护个人隐私。
- 数据预处理:在使用前,建议进行一定的数据预处理,如图像归一化等。
获取方式
- 下载链接:请访问项目主页获取数据集下载链接。
- 许可证:请仔细阅读数据集的使用许可协议。
关键代码示例
数据加载
importosimportcv2fromultralyticsimportYOLOimportnumpyasnp# 数据集路径DATASET_PATH='path/to/dataset'VISIBLE_IMAGES_DIR=os.path.join(DATASET_PATH,'visible_images')THERMAL_IMAGES_DIR=os.path.join(DATASET_PATH,'thermal_images')MATCHED_FRAMES_DIR=os.path.join(DATASET_PATH,'matched_frames')LABELS_DIR=os.path.join(DATASET_PATH,'labels')# 加载数据集defload_dataset():visible_images=[]thermal_images=[]matched_frames=[]labels=[]forimg_fileinos.listdir(VISIBLE_IMAGES_DIR):ifimg_file.endswith('.jpg'):visible_img_path=os.path.join(VISIBLE_IMAGES_DIR,img_file)thermal_img_path=os.path.join(THERMAL_IMAGES_DIR,img_file)matched_frame_path=os.path.join(MATCHED_FRAMES_DIR,img_file)label_path=os.path.join(LABELS_DIR,img_file.replace('.jpg','.txt'))visible_image=cv2.imread(visible_img_path)thermal_image=cv2.imread(thermal_img_path)matched_frame=cv2.imread(matched_frame_path)withopen(label_path,'r')asf:label=f.read().strip()visible_images.append(visible_image)thermal_images.append(thermal_image)matched_frames.append(matched_frame)labels.append(label)returnvisible_images,thermal_images,matched_frames,labels visible_images,thermal_images,matched_frames,labels=load_dataset()模型训练
# 初始化YOLOv8模型model=YOLO('yolov8n.pt')# 定义训练参数EPOCHS=100BATCH_SIZE=16# 训练模型results=model.train(data='thermal_detection.yaml',epochs=EPOCHS,batch=BATCH_SIZE)模型检测
# 加载训练好的模型model=YOLO('best.pt')# 检测图像defdetect_targets(image):results=model.predict(image)forresultinresults:boxes=result.boxesforboxinboxes:x1,y1,x2,y2=box.xyxy[0]conf=box.conf class_id=box.cls# 显示结果cv2.rectangle(image,(int(x1),int(y1)),(int(x2),int(y2)),(0,255,0),2)cv2.putText(image,f'Class:{class_id}, Conf:{conf:.2f}',(int(x1),int(y1)-10),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,255,0),2)returnimage# 测试图像test_image=cv2.imread('path/to/test_image.jpg')result_image=detect_targets(test_image)cv2.imshow('Detected Targets',result_image)cv2.waitKey(0)cv2.destroyAllWindows()配置文件thermal_detection.yaml
train:path/to/train/imagesval:path/to/val/imagesnc:14# Number of classesnames:['person','bicycle','car','motorcycle','bus','train','truck','light','fire_hydrant','traffic_sign','dog','skateboard','baby_carriage','electric_scooter','other_vehicle']# Training parametersbatch_size:16epochs:100img_size:[640,640]# Image size使用指南
- 数据准备:确保数据集路径正确,并且数据集已准备好。
- 模型训练:运行训练脚本,等待训练完成。
- 模型检测:使用训练好的模型进行检测,并查看检测结果。
