首页 > 其他分享 >如何使用红外船舶数据集进行训练,步骤和代码示例应该是如何?含 1284 幅红外遥感图像和3061个船舶实例。 图像大小为 500*500 TXT(YOLO)格式。 含 924 个实例;911离岸场景

如何使用红外船舶数据集进行训练,步骤和代码示例应该是如何?含 1284 幅红外遥感图像和3061个船舶实例。 图像大小为 500*500 TXT(YOLO)格式。 含 924 个实例;911离岸场景

时间:2024-12-08 17:31:52浏览次数:9  
标签:train ships infrared 红外 实例 dir images path 500

红外船舶数据集,包含 1284 幅红外遥感图像和3061个船舶实例。 图像大小为 500*500。 所有图像都经过辐射校准和快速视线光谱超立方体大气分析。共有 373 个近岸场景,包含 924 个实例;911 个离岸场景,包含 2137 个实例。

已做好标注,有TXT(YOLO)和XML格式在这里插入图片描述
红外船舶数据集,包含 1284 幅红外遥感图像和3061个船舶实例。在这里插入图片描述

图像大小为 500*500。 收集了Landsat8卫星拍摄的图像,该卫星携带了具有九个成像波段的陆地成像仪和具有两个热红外成像波段的热红外传感器。 在这里插入图片描述

融合了陆地成像仪的三个波段(波段 7、波段 5 和波段 4),从而获得短波红外图像。 所有图像都经过辐射校准和快速视线光谱超立方体大气分析。共有 373 个近岸场景,包含 924 个实例;911 个离岸场景,包含 2137 个实例。
在这里插入图片描述

已做好标注,有TXT(YOLO)和XML格式

好的,让我们继续细化如何使用红外船舶数据集进行训练,并提供详细的步骤和代码示例。

1. 数据集准备

1.1. 数据集结构

确保你的数据集按照以下结构组织:

infrared_ships/
│
├── images/
│   ├── train/
│   ├── val/
│   └── test/
│
├── labels/
│   ├── train/
│   ├── val/
│   └── test/
│
└── data.yaml
1.2. 创建数据配置文件 (data.yaml)
train: ./infrared_ships/images/train
val: ./infrared_ships/images/val
test: ./infrared_ships/images/test

nc: 1  # 类别数量(1类)
names: ['ship']  # 类别名称

# 下载数据集
download: ''

2. 安装YOLOv8

确保你已经安装了YOLOv8。YOLOv8是YOLO系列的最新版本,可以从Ultralytics的GitHub仓库中获取。

git clone https://github.com/ultralytics/yolov8.git
cd yolov8
pip install -r requirements.txt

3. 训练模型

3.1. 配置训练

使用YOLOv8进行红外船舶检测。以下是一个示例命令:

python train.py --data ./infrared_ships/data.yaml --img 500 --batch 16 --epochs 100 --name yolov8_custom_ship_detection --weights yolov8s.pt

4. 评估模型

4.1. 运行评估

在验证集上评估训练好的模型:

python val.py --data ./infrared_ships/data.yaml --weights runs/train/yolov8_custom_ship_detection/weights/best.pt
4.2. 可视化结果

你可以使用val命令的--save标志来可视化结果:

python val.py --data ./infrared_ships/data.yaml --weights runs/train/yolov8_custom_ship_detection/weights/best.pt --save

5. 示例代码

5.1. 数据预处理示例
import cv2
import os

def resize_images(input_dir, output_dir, size=(500, 500)):
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    for filename in os.listdir(input_dir):
        if filename.endswith(('.jpg', '.png', '.jpeg')):
            img_path = os.path.join(input_dir, filename)
            img = cv2.imread(img_path)
            img_resized = cv2.resize(img, size)
            output_path = os.path.join(output_dir, filename)
            cv2.imwrite(output_path, img_resized)

# 示例用法
resize_images('./infrared_ships/images/train', './infrared_ships/images/train_resized')
resize_images('./infrared_ships/images/val', './infrared_ships/images/val_resized')
resize_images('./infrared_ships/images/test', './infrared_ships/images/test_resized')
5.2. 训练模型
import torch

# 确保YOLOv8路径正确
YOLO_PATH = 'path/to/yolov8'

# 加载YOLOv8模型
model = torch.hub.load(YOLO_PATH, 'custom', path='runs/train/yolov8_custom_ship_detection/weights/best.pt')

# 训练模型
model.train()
model.fit(data='infrared_ships/data.yaml', imgsz=500, batch=16, epochs=100)
5.3. 评估模型
# 加载训练好的模型
model = torch.hub.load(YOLO_PATH, 'custom', path='runs/train/yolov8_custom_ship_detection/weights/best.pt')

# 评估模型
results = model.val(data='infrared_ships/data.yaml', weights='runs/train/yolov8_custom_ship_detection/weights/best.pt', save=True)
print(results.metrics)

6. 其他建议

  • 数据增强:使用数据增强技术来提高模型的鲁棒性。YOLOv8支持多种数据增强方法,如翻转、旋转、裁剪等。
  • 模型集成:集成多个模型以提高性能。
  • 模型量化:量化模型以适应边缘设备。

7. 示例代码

7.1. 数据预处理示例
import cv2
import os

def resize_images(input_dir, output_dir, size=(500, 500)):
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    for filename in os.listdir(input_dir):
        if filename.endswith(('.jpg', '.png', '.jpeg')):
            img_path = os.path.join(input_dir, filename)
            img = cv2.imread(img_path)
            img_resized = cv2.resize(img, size)
            output_path = os.path.join(output_dir, filename)
            cv2.imwrite(output_path, img_resized)

# 示例用法
resize_images('./infrared_ships/images/train', './infrared_ships/images/train_resized')
resize_images('./infrared_ships/images/val', './infrared_ships/images/val_resized')
resize_images('./infrared_ships/images/test', './infrared_ships/images/test_resized')

8. 运行和调试

确保你的环境配置正确,并且所有依赖项都已安装。运行模型训练和评估时,确保模型文件路径正确,并且数据集路径正确。

标签:train,ships,infrared,红外,实例,dir,images,path,500
From: https://blog.csdn.net/2401_88440984/article/details/144280333

相关文章

  • 在GPU实例上部署NGC环境
    本文介绍如何在GPU云主机上部署NGC环境。NVIDIANGC是用于深度学习、机器学习和HPC的GPU优化软件的中心,可提供容器、模型、模型脚本和行业解决方案,以便数据科学家、开发人员和研究人员可以专注于更快地构建解决方案和收集见解。前提条件用户需要注册NGC的账号:NGC账号注册。......
  • CEF 浏览器内核的嵌入与实例化
    在实际的CEF浏览器应用开发中,如何高效地嵌入和实例化CefBrowser对象,如何管理浏览器的生命周期,以及如何实现浏览器进程和主程序进程之间的通信是至关重要的技术点。本节将深入探讨如何创建和管理CefBrowser实例,如何进行浏览器进程与主程序进程的通信,确保数据交互流畅且稳......
  • 实战 | C# 中使用YOLOv11实现实例分割 (步骤 + 源码)
    导 读    本文主要介绍在C#中使用YOLOv11实现实例检测,并给详细步骤和源码。C#YOLO11实例分割——本文实现效果:......
  • 大学生网页设计制作作业实例代码 (全网最全,建议收藏) HTML+CSS+JS (1)
    文章目录......
  • 38 基于单片机的宠物喂食(ESP8266、红外、电机)
    目录一、主要功能二、硬件资源三、程序编程四、实现现象一、主要功能基于STC89C52单片机,采用L298N驱动连接P2.3和P2.4口进行电机驱动,然后串口连接P3.0和P3.1模拟ESP8266,红外传感器连接ADC0832数模转换器连接单片机的P1.0~P1.2口,MPX4117重量传感器连接ADC0832数模......
  • 38 基于单片机的宠物喂食(ESP8266、红外、电机)
    目录一、主要功能二、硬件资源三、程序编程四、实现现象一、主要功能基于STC89C52单片机,采用L298N驱动连接P2.3和P2.4口进行电机驱动,然后串口连接P3.0和P3.1模拟ESP8266,红外传感器连接ADC0832数模转换器连接单片机的P1.0~P1.2口,MPX4117重量传感器连接ADC0832数模......
  • 38 基于单片机的宠物喂食(ESP8266、红外、电机)
    目录一、主要功能二、硬件资源三、程序编程四、实现现象一、主要功能基于STC89C52单片机,采用L298N驱动连接P2.3和P2.4口进行电机驱动,然后串口连接P3.0和P3.1模拟ESP8266,红外传感器连接ADC0832数模转换器连接单片机的P1.0~P1.2口,MPX4117重量传感器连接ADC0832数模......
  • 38 基于单片机的宠物喂食(ESP8266、红外、电机)
    目录一、主要功能二、硬件资源三、程序编程四、实现现象一、主要功能基于STC89C52单片机,采用L298N驱动连接P2.3和P2.4口进行电机驱动,然后串口连接P3.0和P3.1模拟ESP8266,红外传感器连接ADC0832数模转换器连接单片机的P1.0~P1.2口,MPX4117重量传感器连接ADC0832数模......
  • P5007 DDOSvoid 的疑惑 题解
    题目传送门思路树形dp模版题。设\(dp_i\)为\(pos\)的最优解,\(dp2_i\)为只考虑\(pos\)子树时,毒瘤集的数量。可得:\(dp_i=dp_{i}\timesdp2_{son}+dp_{son}\timesdp2_{i}+dp_i+dp_{son}\)\(dp2_i=dp2_{i}\timesdp2_{son}+dp2_{i}+dp2_{son}\)用深搜来更新\(dp\)......
  • [深入探索Brave Search API:使用实例和应用指南]
    #深入探索BraveSearchAPI:使用实例和应用指南##引言随着隐私保护和数据收集问题日益受到关注,越来越多的用户和开发者开始寻找替代传统搜索引擎的解决方案。BraveSearch作为一款新兴搜索引擎,凭借其独立的网络索引和隐私友好的设计,吸引了很多人的关注。本文将深入探讨......