构建 基于无人机 RGB+红外(RGBT)双模态小目标行人检测系统 无人机视角下RGB+红外对齐行人小目标检测数据集 航拍无人机多模态行人检测数据集 红外可见光行人检测数据集

构建 基于无人机 RGB+红外(RGBT)双模态小目标行人检测系统 无人机视角下RGB+红外对齐行人小目标检测数据集 航拍无人机多模态行人检测数据集 红外可见光行人检测数据集

无人机视角下RGB+红外对齐行人小目标检测数据集
模态与视角:无人机搭载 RGBT 双光相机,从 50–80 m 高度、45°–60° 俯视角采集,同步 RGB + 热红外图像对。
规模:6,125 对图像(4,900 train / 1,225 test),分辨率 640×512,共 70,880 个行人实例。
任务:专门面向 tiny person detection 的无人机 RGBT 检测 benchmark。

在这里插入图片描述


1

在这里插入图片描述


1

在这里插入图片描述


以下是 无人机视角下 RGB+红外对齐行人小目标检测数据集 的详细信息整理成表格:


📊 无人机 RGBT 行人小目标检测数据集概览表

项目内容
数据集名称DroneRGBT-Pedestrian(或自定义命名)
任务类型小目标行人检测(Tiny Person Detection)
应用场景低空安防、应急搜救、智慧城市、边境巡检、夜间监控
采集平台无人机(UAV)搭载 RGB + 热红外(Thermal)双光相机
模态双模态同步图像对
• 可见光(RGB)
• 热红外(Infrared / Thermal)
采集高度50 – 80 米
俯视角45° – 60° 斜向俯拍
图像分辨率640 × 512 像素(RGB 与红外严格对齐)
图像对数量6,125 对(每对含 1 张 RGB + 1 张红外图)
数据划分- 训练集(train):4,900 对
- 测试集(test):1,225 对
标注格式支持 YOLO / COCO / VOC 等(通常提供边界框 .txt.json
目标类别1 类:行人(Person)
总实例数70,880 个行人标注框(平均每个图像约 11.6 个目标)
目标特点- 小目标为主(多数 < 32×32 像素)
- 包含遮挡、密集、远距离、夜间/低照度场景
- 红外模态增强弱光/夜间检测能力
对齐方式像素级空间对齐(经标定与配准,RGB 与红外图一一对应)
适用模型- 单模态:YOLOv8(RGB 或 Thermal)
- 多模态融合:Fusion-YOLO、CFT、MFFNet、GLAD 等 RGBT 检测模型
用途• 无人机小目标检测 benchmark
• 多模态特征融合研究
• 跨模态对齐与迁移学习

该数据集专为 挑战性极高的无人机小行人检测任务 设计,特别适合评估模型在 远距离、小尺度、复杂光照(含夜间) 条件下的鲁棒性。

以下是构建 基于无人机 RGB+红外(RGBT)双模态小目标行人检测系统 的完整代码方案,采用 YOLOv8 多模态融合架构(简化版),支持训练、推理与可视化。由于 Ultralytics YOLOv8 原生不直接支持双模态输入,我们将通过 早期融合(Early Fusion) 方式将 RGB 与红外图拼接为 4 通道输入,并微调模型。

💡 注:本方案适用于科研/工程落地,可作为 benchmark 系统基础。

📁 一、项目结构

DroneRGBT_Detection/ ├── datasets/ │ ├── images/ │ │ ├── train/ # 存放融合后的 4 通道 .npy 或拼接图 │ │ └── val/ │ └── labels/ │ ├── train/ │ └── val/ ├── models/ │ └── yolov8s-rgbt.yaml # 自定义 4 通道输入模型配置 ├── tools/ │ ├── fuse_rgb_thermal.py # 将 RGB + 红外融合为 4 通道图像 │ └── create_labels.py # (若需从原始标注生成 YOLO 格式) ├── train.py # 训练脚本 ├── detect.py # 推理脚本(支持单图/视频) └── rgbt_drone.yaml # 数据集配置文件

🔧 二、1. 融合 RGB + 红外图像(fuse_rgb_thermal.py

# tools/fuse_rgb_thermal.pyimport os import cv2 import numpy as np deffuse_rgb_thermal(rgb_dir, thermal_dir, output_dir): os.makedirs(output_dir, exist_ok=True) rgb_files =sorted(os.listdir(rgb_dir))for rgb_file in rgb_files:ifnot rgb_file.lower().endswith(('.jpg','.png')):continue thermal_file = rgb_file # 假设文件名一致 rgb_path = os.path.join(rgb_dir, rgb_file) thermal_path = os.path.join(thermal_dir, thermal_file) rgb = cv2.imread(rgb_path)# (H, W, 3) thermal = cv2.imread(thermal_path, cv2.IMREAD_GRAYSCALE)# (H, W)if rgb isNoneor thermal isNone:print(f"Skip {rgb_file}")continue# 调整 thermal 到 3 通道(可选)或保留单通道 thermal = np.expand_dims(thermal, axis=2)# (H, W, 1) fused = np.concatenate([rgb, thermal], axis=2)# (H, W, 4)# 保存为 .npy(推荐)或拼接图(如用 4 通道 TIFF) np.save(os.path.join(output_dir, rgb_file.replace('.jpg','.npy')), fused)# 示例使用if __name__ =='__main__': fuse_rgb_thermal( rgb_dir='raw_data/train/rgb', thermal_dir='raw_data/train/thermal', output_dir='datasets/images/train')
✅ 输出为 .npy 文件(含 4 通道),便于后续加载。

🛠️ 三、2. 自定义 YOLOv8 模型(4 通道输入)

创建 models/yolov8s-rgbt.yaml

# YOLOv8s for RGBT (4-channel input)nc:1# number of classesscales:[0.33,0.50]# model depth and width scalingbackbone:# [from, repeats, module, args]-[-1,1, Conv,[64,3,2]]# 0-P1/2 (input must be 4-channel!)-[-1,1, Conv,[128,3,2]]# 1-P2/4-[-1,3, C2f,[128,True]]-[-1,1, Conv,[256,3,2]]# 3-P3/8-[-1,6, C2f,[256,True]]-[-1,1, Conv,[512,3,2]]# 5-P4/16-[-1,6, C2f,[512,True]]-[-1,1, Conv,[1024,3,2]]# 7-P5/32-[-1,3, C2f,[1024,True]]-[-1,1, SPPF,[1024,5]]# 9head:-[-1,1, nn.Upsample,[None,2,'nearest']]-[[-1,6],1, Concat,[1]]# cat backbone P4-[-1,3, C2f,[512]]# 12-[-1,1, nn.Upsample,[None,2,'nearest']]-[[-1,4],1, Concat,[1]]# cat backbone P3-[-1,3, C2f,[256]]# 15 (P3/8-small)-[-1,1, Conv,[256,3,2]]-[[-1,12],1, Concat,[1]]# cat head P4-[-1,3, C2f,[512]]# 18 (P4/16-medium)-[-1,1, Conv,[512,3,2]]-[[-1,9],1, Concat,[1]]# cat head P5-[-1,3, C2f,[1024]]# 21 (P5/32-large)-[[15,18,21],1, Detect,[nc]]# Detect(P3, P4, P5)
⚠️ 关键修改:首层 Conv 输入通道自动适配 4 通道(无需改代码,PyTorch 自动推断)。

📂 四、3. 数据集配置(rgbt_drone.yaml

# rgbt_drone.yamltrain: ./datasets/images/train # 实际存放 .npy 路径val: ./datasets/images/val nc:1names:['person']
❗ 注意:Ultralytics 默认读取图像文件(.jpg/.png),但我们需要加载 .npy。因此需自定义数据加载器。

🧩 五、4. 自定义数据加载器(关键!)

train.py 中重写 load_image 行为(简化版):

# train.pyfrom ultralytics import YOLO import torch import numpy as np import os from pathlib import Path # 替换默认的图像加载方式defcustom_load_image(self, i):"""Load 4-channel .npy image""" path = self.files[i]if path.endswith('.npy'): img = np.load(path)# (H, W, 4) img = img.transpose(2,0,1)# (4, H, W) img = torch.from_numpy(img).float()return img, img.shape[1], img.shape[2]else:# fallbackreturn self._old_load_image(i)# Monkey patch(仅用于训练)from ultralytics.data.dataset import YOLODataset YOLODataset._old_load_image = YOLODataset.load_image YOLODataset.load_image = custom_load_image # 修改标签加载(确保 .txt 对应 .npy)defcustom_get_label_file(self, img_path):returnstr(Path(img_path).with_suffix('.txt')) YOLODataset.get_label_file = custom_get_label_file 
更稳健做法:继承 YOLODataset 并注册新类,但上述 monkey patch 可快速验证。

▶️ 六、5. 完整训练脚本(train.py

# train.py(完整版)from ultralytics import YOLO import torch import numpy as np from pathlib import Path # === 自定义数据加载(支持 .npy)===from ultralytics.data.dataset import YOLODataset defload_image_npy(self, i): f = self.im_files[i]if f.endswith('.npy'): im = np.load(f)# (H, W, 4) im = im.transpose(2,0,1)# (4, H, W) im = torch.from_numpy(im).float() h, w = im.shape[1], im.shape[2]return im, h, w else:return self._orig_load_image(i)defget_label_file_npy(self, img_path):returnstr(Path(img_path).with_suffix('.txt'))# Patch YOLODataset._orig_load_image = YOLODataset.load_image YOLODataset.load_image = load_image_npy YOLODataset.get_label_file = get_label_file_npy # === 开始训练 ===if __name__ =='__main__': model = YOLO('models/yolov8s-rgbt.yaml')# 从头训练# 或加载预训练权重(需修改首层 conv1.weight)# model = YOLO('yolov8s.pt')# model.model.model[0].conv = torch.nn.Conv2d(4, 64, 3, 2, 1) # 手动替换 model.train( data='rgbt_drone.yaml', epochs=100, imgsz=512, batch=16, name='drone_rgbdet', project='runs', device=0, cache=False, workers=4)

🔍 七、6. 推理脚本(detect.py

# detect.pyimport torch import numpy as np import cv2 from ultralytics import YOLO model = YOLO('runs/drone_rgbdet/weights/best.pt')defdetect_rgbd_pair(rgb_path, thermal_path): rgb = cv2.imread(rgb_path)# (H, W, 3) thermal = cv2.imread(thermal_path, cv2.IMREAD_GRAYSCALE)# (H, W) thermal = np.expand_dims(thermal, axis=2) fused = np.concatenate([rgb, thermal], axis=2)# (H, W, 4) fused = fused.transpose(2,0,1)# (4, H, W) fused = torch.from_numpy(fused).float().unsqueeze(0)/255.0# 归一化 results = model(fused, augment=True)# 可视化:叠加在 RGB 图上 annotated = results[0].plot() cv2.imshow('Detection', annotated) cv2.waitKey(0)# 示例 detect_rgbd_pair('test/rgb/001.jpg','test/thermal/001.jpg')

✅ 八、部署建议

方案说明
科研实验使用 .npy + 自定义 DataLoader
工程部署将 RGB + 红外拼接为 4 通道 TIFF / PNG(需扩展 OpenCV 支持)
加速推理导出 ONNX 后使用 TensorRT(需处理 4 通道输入)
替代融合策略中期融合(Two-Stream + 特征拼接)效果更佳,但需重写模型

Read more

Stable Diffusion v2-1-base终极使用指南:从安装到精通AI绘画

Stable Diffusion v2-1-base是由Stability AI开发的最新文本到图像生成模型,专为AI绘画初学者设计。这款模型在继承前代优秀性能的基础上,通过220k额外训练步骤进一步优化了生成质量,让每个人都能轻松创作出令人惊艳的AI艺术作品。 【免费下载链接】stable-diffusion-2-1-base 项目地址: https://ai.gitcode.com/hf_mirrors/ai-gitcode/stable-diffusion-2-1-base 核心功能亮点 Stable Diffusion v2-1-base模型具备以下突出特点: * 高质量图像生成:基于512×512分辨率训练,支持生成细节丰富的艺术作品 * 高效推理速度:优化的UNet架构确保快速完成图像生成任务 * 多格式支持:提供ckpt、safetensors等多种权重文件格式 * 完整组件集成:包含文本编码器、VAE、UNet等所有必要模块 环境准备与一键安装 在开始AI绘画之旅前,请确保你的系统满足基本要求: 系统环境检查清单: * Python 3.7

国内首篇!融合语言模型的多模态触觉传感器,推动机器人触觉迈向人类水平

国内首篇!融合语言模型的多模态触觉传感器,推动机器人触觉迈向人类水平

本研究为机器人触觉提供了多个富有前景的发展方向:硬件方面通过传感器微型化、低功耗芯片及高集成封装,提升机器人手内操作的灵活性并解决高负载下的散热稳定性难题。 论文第一作者为清华大学博士、南洋理工大学博士后李寿杰,清华大学博士生吴同和人工智能硕士生徐建乐。论文通讯作者包括清华大学深圳国际研究生院副教授丁文伯,大连理工大学教授解兆谦,新加坡国立大学助理教授吴昌盛和香港城市大学教授于欣格。 随着机器人技术从「预设程序执行」向「具身智能交互」跨越,触觉感知作为理解物体属性、实现精细操作的核心感测方式,其重要性日益凸显,但当前系统在感知维度、分辨率及信号解读能力上仍远逊于人类,导致机器人往往处于「有感无知」的状态。 在此背景下,清华大学深圳国际研究生院丁文伯团队联合无界智航(Xspark AI)及多所国内外科研机构,从鸽子卓越的多光谱视觉和非成像感知机制中获得灵感,研发出了一种仿生多模态触觉传感器 SuperTac。 该系统将多光谱成像、摩擦电感测与惯性测量融为一体,并通过构建 8.5B 参数的触觉语言模型 DOVE,实现了触觉信号从底层感知到高层语义推理的突破。 相关成果作为封面元素

低小慢无人机目标识别跟踪

低小慢无人机目标识别跟踪

MS2 光电无人机识别跟踪系统在极弱小目标(极微弱、极小型、远距离、低信噪比目标,如微型无人机、FPV竞速机、低RCS小型多旋翼、低热对比度目标等)的探测、识别与稳定跟踪能力上,展现出行业领先水平,是目前被动光电类设备中针对此类“难目标”表现最突出的产品之一。下面从核心技术维度进行详细介绍: 1. 超低信噪比(Ultra-Low SNR)下的微弱目标发现能力 MS2 采用高灵敏度长波红外(LWIR)热成像 + 高动态范围可见光双通道融合设计,结合专为小目标优化的嵌入式深度学习检测网络(无需外接算力盒),能在目标像素极少(甚至低至 3~8 像素级别)、热对比度极低(ΔT < 0.5K)、背景杂波强烈的复杂场景下实现可靠发现。 典型场景表现: * 在 2~4 km 距离上稳定探测热信号微弱的塑料/碳纤维小型四轴/六轴无人机(电池发热为主)。 * 在白天强逆光/

【FPGA】Quartus Prime Lite 23.1 最新版 安装教程 ModelSim_18.1 下载安装 + 联调仿真教程 + 详细安装教程 2025最新

【FPGA】Quartus Prime Lite 23.1 最新版 安装教程 ModelSim_18.1 下载安装 + 联调仿真教程 + 详细安装教程 2025最新

前言         本文章基于截至2025年 Quartus_Prime_Lite的最新版 23.1 版本,详细的,一步一步的教你怎么安装,每一步都教你怎么做,按照流程绝对能安装成功。创作不易希望大家看完后点个赞支持创作,谢谢大家啦! 目录  软件下载地址 Quartus Prime Lite 23.1 ModelSim-Intel® FPGA 标准版软件版本 18.1 若不想在官网下载或官网下载速度太慢 点个关注+收藏可以免费用下面的百度链接进行下载  两个软件的安装包都在里面。如果使用百度链接下载则可跳过两个软件的下载流程,直接看安装流程。 一、Quartus Prime Lite 23.1 下载以及安装流程 1.1 Quartus Prime Lite 23.1 官方网站下载流程 第一步 打开上方链接到达如下界面 确保软件名称和版本如下图