news 2026/7/15 1:07:01

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

作者头像

张小明

前端开发工程师

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

红外船舶数据集,包含 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/trainval:./infrared_ships/images/valtest:./infrared_ships/images/testnc:1# 类别数量(1类)names:['ship']# 类别名称# 下载数据集download:''

2. 安装YOLOv8

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

gitclone https://github.com/ultralytics/yolov8.gitcdyolov8 pipinstall-r requirements.txt

3. 训练模型

3.1. 配置训练

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

python train.py --data ./infrared_ships/data.yaml --img500--batch16--epochs100--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. 数据预处理示例
importcv2importosdefresize_images(input_dir,output_dir,size=(500,500)):ifnotos.path.exists(output_dir):os.makedirs(output_dir)forfilenameinos.listdir(input_dir):iffilename.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. 训练模型
importtorch# 确保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. 数据预处理示例
importcv2importosdefresize_images(input_dir,output_dir,size=(500,500)):ifnotos.path.exists(output_dir):os.makedirs(output_dir)forfilenameinos.listdir(input_dir):iffilename.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. 运行和调试

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/13 22:49:16

微软开源Agent开发教程(37k start )

读者收益:这个全面的学习路径将引导你探索AI智能体的精彩世界,从基础概念到生产级实现。无论你是希望为应用程序增加智能体功能的开发者,还是想了解这项变革性技术的科技爱好者,本课程为你提供了入门所需的一切。 概述(什么是智能…

作者头像 李华
网站建设 2026/7/13 13:09:15

别再被 RAG 绕晕了!3 分钟搞懂大模型“检索-增强-生成”逻辑!

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种结合了信息检索技术与语言生成模型的人工智能技术。 该技术通过从外部知识库中检索相关信息,并将其作为提示(Prompt)输入给大型语言模型&#xf…

作者头像 李华
网站建设 2026/7/13 16:29:28

学网络安全 = 当黑客?揭秘技术本质、正统领域与白帽职业路径

提及网络安全,很多人都是既熟悉又陌生,所谓的熟悉就是知道网络安全可以保障网络服务不中断。那么到底什么是网络安全?网络安全包括哪几个方面?通过下文为大家介绍一下。 一、什么是网络安全? 网络安全是指保护网络系统、硬件、软件以及其中的数据免受…

作者头像 李华