热成像目标检测数据集

news2024/11/24 2:09:14

热成像目标检测数据集 V2 版本

在这里插入图片描述

项目背景

热成像技术因其在安防监控、夜间巡逻、消防救援等领域的独特优势而受到重视。本数据集旨在提供高质量的热成像图像及其对应的可见光图像,支持热成像目标检测的研究与应用。

数据集概述
  • 名称:热成像目标检测数据集 V2
  • 规模:总计26,442帧
    • 可见光图像:9,233张
    • 热成像图像:9,711张
    • 匹配的热成像/可见光视频帧:7,498帧
  • 标注目标数量:520,000个
  • 目标类别:包括人、自行车、汽车、摩托车、巴士、火车、卡车、灯、消防栓、交通标志、狗、滑板、婴儿车、电动踏板车及其他车辆
    在这里插入图片描述
数据集特点
  • 多样化:涵盖多种场景下的目标检测,包括人、交通工具以及其他常见物体。
  • 高质量标注:每个目标均进行了精细标注,确保数据质量。
  • 多模态数据:提供热成像图像和可见光图像的匹配数据,适合跨模态学习任务。
  • 大规模数据量:包含大量标注目标,有助于训练鲁棒性强的检测模型。
数据集内容
  • 可见光图像:包含在不同环境下的可见光图像,用于辅助热成像图像的理解。
  • 热成像图像:包含在不同环境下的热成像图像,用于目标检测。
  • 匹配的热成像/可见光视频帧:包含匹配的热成像和可见光视频帧,适用于多模态目标检测任务。
数据集用途
  • 目标检测:可用于训练和评估目标检测模型,特别是在热成像条件下的目标检测。
  • 安防监控:帮助识别夜间或低光照条件下的目标,提高安防系统的有效性。
  • 学术研究:为热成像技术的应用提供丰富的数据支持,促进相关领域的研究进展。
  • 实际应用:可应用于夜间巡逻、消防救援等多个实际场景,提高系统的鲁棒性和可靠性。
标注详情
  • :标注了各类人群,包括不同年龄、性别的人。
  • 自行车:标注了不同类型的自行车。
  • 汽车:标注了不同品牌和型号的汽车。
  • 摩托车:标注了不同类型的摩托车。
  • 巴士:标注了不同类型的巴士。
  • 火车:标注了火车及其车厢。
  • 卡车:标注了不同类型的卡车。
  • :标注了各种灯具。
  • 消防栓:标注了消防栓的位置。
  • 交通标志:标注了各种交通标志。
  • :标注了不同品种的狗。
  • 滑板:标注了滑板及其使用者。
  • 婴儿车:标注了婴儿车及其使用者。
  • 电动踏板车:标注了电动踏板车及其使用者。
  • 其他车辆:标注了除上述类别之外的其他车辆。
使用场景
  • 安防监控:在夜间或低光照条件下,利用热成像技术进行目标检测。
  • 消防救援:在火灾现场,利用热成像技术快速定位人员和重要设施。
  • 夜间巡逻:在夜间巡逻中,利用热成像技术识别潜在威胁。
  • 交通监控:在交通监控中,利用热成像技术进行车辆和行人的检测。
技术指标
  • 数据量:总计26,442帧,包含多种图像类型。
  • 标注目标数量:520,000个标注目标,确保数据的丰富性和多样性。
  • 标注格式:支持多种标注格式(如JSON、VOC、YOLO),方便导入不同的检测框架。
注意事项
  • 数据隐私:在使用过程中,请确保遵守相关法律法规,保护个人隐私。
  • 数据预处理:在使用前,建议进行一定的数据预处理,如图像归一化等。
获取方式
  • 下载链接:请访问项目主页获取数据集下载链接。
  • 许可证:请仔细阅读数据集的使用许可协议。
关键代码示例

数据加载

import os
import cv2
from ultralytics import YOLO
import numpy as np

# 数据集路径
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')

# 加载数据集
def load_dataset():
    visible_images = []
    thermal_images = []
    matched_frames = []
    labels = []

    for img_file in os.listdir(VISIBLE_IMAGES_DIR):
        if img_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)

            with open(label_path, 'r') as f:
                label = f.read().strip()

            visible_images.append(visible_image)
            thermal_images.append(thermal_image)
            matched_frames.append(matched_frame)
            labels.append(label)

    return visible_images, thermal_images, matched_frames, labels

visible_images, thermal_images, matched_frames, labels = load_dataset()

模型训练

# 初始化YOLOv8模型
model = YOLO('yolov8n.pt')

# 定义训练参数
EPOCHS = 100
BATCH_SIZE = 16

# 训练模型
results = model.train(data='thermal_detection.yaml', epochs=EPOCHS, batch=BATCH_SIZE)

模型检测

# 加载训练好的模型
model = YOLO('best.pt')

# 检测图像
def detect_targets(image):
    results = model.predict(image)
    for result in results:
        boxes = result.boxes
        for box in boxes:
            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)
    
    return image

# 测试图像
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/images
val: path/to/val/images

nc: 14  # Number of classes
names: ['person', 'bicycle', 'car', 'motorcycle', 'bus', 'train', 'truck', 'light', 'fire_hydrant', 'traffic_sign', 'dog', 'skateboard', 'baby_carriage', 'electric_scooter', 'other_vehicle']

# Training parameters
batch_size: 16
epochs: 100
img_size: [640, 640]  # Image size
使用指南
  • 数据准备:确保数据集路径正确,并且数据集已准备好。
  • 模型训练:运行训练脚本,等待训练完成。
  • 模型检测:使用训练好的模型进行检测,并查看检测结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2140836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多目标优化算法求解LSMOP(Large-Scale Multi-Objective Optimization Problem)测试集,MATLAB代码

LSMOP(Large-Scale Multi-Objective Optimization Problem)测试集是用于评估大规模多目标优化算法性能的一组标准测试问题。这些测试问题通常具有大量的决策变量和目标函数,旨在模拟现实世界中的复杂优化问题。 LSMOP测试集包含多个子问题&am…

深度学习之微积分预备知识点

极限(Limit) 定义:表示某一点处函数趋近于某一特定值的过程,一般记为 极限是一种变化状态的描述,核心思想是无限靠近而永远不能到达 公式: 表示 x 趋向 a 时 f(x) 的极限。 知识点口诀解释极限的存在左…

2024 VMpro 虚拟机中如何给Ubuntu Linux操作系统配置联网

现在这是一个联网的状态 可以在商店里面下载东西 也能ping成功 打开虚拟网络编辑器 放管理员权限 进行设置的更改 选择DNS设置 按提示修改即可 注意的是首选的DNS服务器必须是114.114.114.114 原因 这边刚刚去查了一下 114.114.114.114 是国内的IP地址 8.8.8.8 是国外的I…

【人工智能】OpenAI最新发布的o1-preview模型,和GPT-4o到底哪个更强?最新分析结果就在这里!

在人工智能的快速发展中,OpenAI的每一次新模型发布都引发了广泛的关注与讨论。2023年9月13日,OpenAI正式推出了名为o1的新模型,这一模型不仅是其系列“推理”模型中的首个代表,更是朝着类人人工智能迈进的重要一步。本文将综合分析…

PFC和LLC的本质和为什么要用PFC和LLC电路原因

我们可以用电感和电容的特性,以及电压和电流之间的不同步原理来解释PFC(功率因数校正)和LLC(谐振变换器)。 电感和电容的基本概念 电感(Inductor): 电感是一种储存电能的组件。它的…

PhotoZoom Pro / Classic 9.0.2激活版安装激活图文教程

图像格式中,位图格式的图像是由点阵像素组成的数据文件,所以呢在把位图图像放大的时候,就会发现看到它是由于许多点构成,这就是为什么数码照片在使用普通的工具放大时会失真的原因。不过呢由于一些日常需求,我们经常需…

图神经网络模型扩展5--3

以图卷积网络为例,在每一层卷积中,我们需要用到两个输入A∈Rnn 和X∈Rnd。 很容易想象,当输入的图数据很大时(n 很大),图卷积网络的计算量是很大的,所需要的内存也是很大的。推广到更一般的信息传递网络,在每一层中&am…

Python 课程12-Python 自动化应用

前言 Python 自动化应用 可以帮助开发者节省时间和精力,将重复性、手动操作变为自动化脚本。例如,Python 可以用于自动化处理文件、邮件、生成报表,甚至可以控制浏览器执行复杂的网页操作任务。借助 Python 的强大库和工具,可以轻…

Kubernetes 常用指令2

kubernetes 常用命 令 1. 编写 yaml 文件 2. kubectl create 通过配置文件名或标准输入创建一个集群资源对象,支 持 json 和 yaml 格式的文件 语法: kubectl create -f 文件名 kubectl create deployment 资源名 --image镜像名 kubectl create deplo…

视频格式转为mp4(使用ffmpeg)

1、首先安装ffmpeg,下载链接如下 https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.1.1-full_build.7z 安装后确保ffmpeg程序加到PATH路径里,cmd执行ffmpeg -version出现下图内容表示安装成功。 2、粘贴下面的脚本到文本文件中,文件后缀…

【Linux进程控制】进程创建|终止

目录 一、进程创建 fork函数 写时拷贝 二、进程终止 想明白:终止是在做什么? 进程退出场景 常见信号码及其含义 进程退出的常见方法 正常终止与异常终止 exit与_exit的区别 一、进程创建 fork函数 在Linux中fork函数是非常重要的函数&#x…

魔方财务升级指南

本文将详细介绍如何升级魔方财务系统,确保您能够顺利地更新到最新版本。 重要提示 在进行任何系统升级之前,请务必备份数据。这是良好的习惯,也是我们的建议。 备份数据库,并下载到本地。最好将网站目录文件打包,并…

【最新华为OD机试E卷-支持在线评测】最长连续子序列(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 💻 ACM金牌🏅️团队 | 大厂实习经历 | 多年算法竞赛经历 ✨ 本系列打算持续跟新华为OD-E/D卷的多语言AC题解 🧩 大部分包含 Python / C / Javascript / Java / Cpp 多语言代码 👏 感谢大家的订阅➕ 和 喜欢�…

沉浸式利用自然语言无代码开发工具生成式AI产品应用(上)

背景 小伙伴们过去在开发应用时,经常需要编写大量代码文件以实现业务逻辑,想必肯定有小伙伴开发过类似于快消行业索赔处理、订单库存跟踪和项目审批等系统。去解决这些业务实际问题,我们需要定制地开发业务应用程序为这些问题提供解决方案。…

S100A9:鸡支原体感染中的免疫调控“双面间谍”【AbMole】

在生物学研究的广阔天地里,总有一些分子扮演着令人意想不到的角色。今天,我们要探索的主角是S100A9蛋白,一种在鸡支原体感染过程中展现出惊人双重功能的分子。这项来自华中农业大学动物科技学院与兽医学院的最新研究成果,揭示了S1…

(一)springboot2.6.13+mybatis-plus3.5.3.1+shardingsphere4.0.0-RC2

1,POM配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0…

【Mac】系统环境配置

常用工具 Navicat PJ版本&#xff1a;this Host切换器 SwitchHosts termius 一款好用的Linux服务器连接工具&#xff1a; termius 小飞机 dddd&#xff1a;&#x1fa9c; Git mac安装git有好多种方式&#xff0c;自带的xcode或者通过Homebrew来安装&#xff0c;本文的…

文心一言 VS 讯飞星火 VS chatgpt (348)-- 算法导论23.2 7题

七、假定图G的一棵最小生成树已经被计算出来。如果在图中加入一个新结点及其相关的新边&#xff0c;我们需要多少时间来对最小生成树进行更新&#xff1f;如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 在图中加入一个新节点及其相关边后&#xff0c;要更新最小…

【计算机毕设-大数据方向】基于Hadoop的在线教育平台数据分析可视化系统的设计与实现

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】关注并且私信我 【联系方式】&#x1f447;&#x1f447;&#x1f447;最下边&#x1f447;&#x1f447;&…

QGis二次开发 —— 3、程序加载栅格tif与矢量shp文件可进行切换控制,可进行导出/导入工程(附源码)

效果 功能说明 软件可同时加载.tif栅格图片与.shp矢量图片、加载图片后可进行自由切换查看图层、可对加载的图片进行关闭 关闭后清空图层、可对加载的图片进行导出.qgs的QGIS工程、可对.qgs的QGis工程导入并导入后可进行自由切换查看图层。 源码 注意: 在加载tif栅格文件后会在…