news 2026/4/25 1:18:41

如何使用红外船舶数据集进行训练,步骤和代码示例应该是如何?含 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/4/21 5:43:28

前端技术栈,零基础入门到精通,收藏这篇就够了

文章目录 0)前端 1、什么是前端?2、为什么需要前端? 前端的发展简史: 3、前端开发的类型 Web前端开发:客户端(APP)开发: 4、前端与后端的交互 Ajax:Socket: …

作者头像 李华
网站建设 2026/4/20 20:30:59

从基础到领域:一文读懂网络安全涵盖的方方面面与职业方向

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

作者头像 李华
网站建设 2026/4/21 16:01:19

掌握Rust并发数据结构(从零开始构建线程安全的多线程应用)

在现代软件开发中,Rust并发数据结构是构建高性能、安全应用程序的核心。Rust以其“无畏并发”(fearless concurrency)著称,通过其独特的所有权系统和类型系统,在编译期就阻止了数据竞争(data race&#xff…

作者头像 李华
网站建设 2026/4/18 10:09:54

AI大模型调优工程:突破显存墙与灾难性遗忘的双重挑战

面对万亿参数模型,传统全参数微调已成为资源黑洞。本文提出动态混合稀疏微调框架(DySparse),通过结构感知参数选择、梯度稀疏化压缩、神经路径蒸馏三大核心技术,在Llama3-405B模型实现调显存占用下降89%(8x…

作者头像 李华