红外船舶数据集,包含 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