yolov8模型训练 红外可见光无人机检测数据集 可见光(RGB)和红外(IR)的无人机检测数据集的训练及应用 多模态可见光红外无人机数据集
如何训练自己处理好的的数据集之—红外可见光无人机检测数据集 双模态红外可见光无人机检测数据集
文章目录
-
-
- 数据集概览
- 数据准备与组织结构
-
- 1. 数据目录结构
- 2. 创建 `data_rgb.yaml` 和 `data_ir.yaml` 文件
- 环境搭建
- 模型训练
-
- 使用命令行进行训练:
-
- 训练可见光数据集
- 训练红外数据集
- 参数说明:
- 推理与结果展示
-
- 单张图像推理:
- 视频流实时检测:
- 性能评估
- 模型导出(可选)
- 进一步优化与部署
-
可见光(RGB)和红外(IR)的无人机检测数据集,两种数据集是对应上的,可见光或者红外均有5019张训练集和1233张验证集。来源于开源数据集anti-uav310,数据集格式已转化为yolo格式,可直接训练,有训练好的模型直接训练
两种数据集相对应,可见光或者红外均有5019张训练集1233张验证集,已转化为yolo格式可直接训练,+模型,红外可见光无人机数据集 红外无人机数据集 可见光无人机数据集
可见光(RGB)与红外(IR)无人机检测数据集介绍
数据集概述
可见光(RGB)和红外(IR)的无人机检测数据集,两种数据集是对应上的,可见光或者红外均有5104张训练集和2209张验证集和2203张测试集。来源于开源数据集anti-uav300,对视频进行了20抽帧。仅收取整理费用。yolo格式,可直接训练
训练指标具体如图(map50-95为0.657的是红外,map50-95为0.713的是可见光)
YOLOv8 训练一个针对可见光(RGB)和红外(IR)无人机检测的数据集,你可以按照以下步骤进行。假设你的数据集已经转换为 YOLO 格式,并且分为训练集和验证集。代码示例,仅供参考。
数据集概览
- 图像总数: 可见光和红外图像各有 5019 张训练集和 1233 张验证集。
- 标注格式: YOLO txt 文件(每个图像对应一个
.txt
文件) - 类别: 假设只有一个类别
drone
,如果有更多类别请根据实际情况调整。
数据准备与组织结构
1. 数据目录结构
确保同学你的数据集按如下结构组织:
anti_uav310_dataset/├── rgb/│ ├── images/│ │ ├── train/│ │ └── val/│ └── labels/│ ├── train/│ └── val/└── ir/ ├── images/ │ ├── train/ │ └── val/ └── labels/ ├── train/ └── val/
每个图像文件都有对应的 .txt
文件,内容格式为:
class_id x_center y_center width height
其中:
class_id = 0
表示drone
2. 创建 data_rgb.yaml
和 data_ir.yaml
文件
创建两个名为 data_rgb.yaml
和 data_ir.yaml
的配置文件,分别用于描述可见光和红外数据集的路径和类别信息:
data_rgb.yaml
train: anti_uav310_dataset/rgb/images/train/val: anti_uav310_dataset/rgb/images/val/nc: 1names: [\'drone\']
data_ir.yaml
train: anti_uav310_dataset/ir/images/train/val: anti_uav310_dataset/ir/images/val/nc: 1names: [\'drone\']
环境搭建
安装 Ultralytics YOLOv8 环境:
# 克隆仓库git clone https://github.com/ultralytics/ultralytics.gitcd ultralytics# 安装依赖pip install -r requirements.txt
模型训练
使用命令行进行训练:
选择分别对可见光和红外数据集进行训练,也可以尝试联合训练(如果模型支持多模态输入)。这里我们先介绍如何分别训练两个数据集。
训练可见光数据集
yolo train data=data_rgb.yaml model=yolov8s.pt epochs=100 batch=16 imgsz=640
训练红外数据集
yolo train data=data_ir.yaml model=yolov8s.pt epochs=100 batch=16 imgsz=640
参数说明:
data
model
epochs
batch
imgsz
推理与结果展示
单张图像推理:
from ultralytics import YOLO# 加载最佳模型model_rgb = YOLO(\'runs/train/exp/weights/best_rgb.pt\') # 可见光模型model_ir = YOLO(\'runs/train/exp/weights/best_ir.pt\') # 红外模型# 推理单张图像results_rgb = model_rgb(\'test_images/rgb_image.jpg\')results_ir = model_ir(\'test_images/ir_image.jpg\')# 显示结果for r in results_rgb: print(r.boxes) # 输出预测框信息 annotated_img = r.plot() cv2.imshow(\"RGB Detection\", annotated_img) cv2.waitKey(0)for r in results_ir: print(r.boxes) # 输出预测框信息 annotated_img = r.plot() cv2.imshow(\"IR Detection\", annotated_img) cv2.waitKey(0)
视频流实时检测:
def detect_video(source, model): cap = cv2.VideoCapture(source) while cap.isOpened(): ret, frame = cap.read() if not ret: break results = model(frame) annotated_frame = results[0].plot() cv2.imshow(\"Real-time Detection\", annotated_frame) if cv2.waitKey(1) == 27: # ESC键退出 break cap.release() cv2.destroyAllWindows()# 调用函数detect_video(\'path/to/rgb_video.mp4\', model_rgb)detect_video(\'path/to/ir_video.mp4\', model_ir)
性能评估
使用验证命令评估 mAP、Recall、Precision 等指标:
# 对于可见光数据集yolo val data=data_rgb.yaml model=runs/train/exp/weights/best_rgb.pt imgsz=640# 对于红外数据集yolo val data=data_ir.yaml model=runs/train/exp/weights/best_ir.pt imgsz=640
输出包括:
mAP@0.5
mAP@0.5:0.95
- Precision / Recall 曲线
- F1-score
模型导出(可选)
将模型导出为 ONNX、TensorRT 或 OpenVINO 等格式以便部署:
# 导出可见光模型yolo export model=runs/train/exp/weights/best_rgb.pt format=onnx# 导出红外模型yolo export model=runs/train/exp/weights/best_ir.pt format=onnx
支持格式:onnx
, engine
, coreml
, tflite
, pb
, pt
等
进一步优化与部署
根据验证结果,你可能需要进一步调整模型超参数或尝试不同的模型架构以获得更好的性能。此外,考虑将模型导出为适合边缘设备的格式以便在实际应用中部署。