news 2026/4/3 4:25:10

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

视频实时去雾:DCP+双边滤波,700毫秒一帧

在虚拟机上,大约700毫秒一帧,性能无法忍受。import cv2 import numpy as np import timedef dehaze(image, w1, t00.4, p0.8):# 估计全局大气光照dark_channel cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)dark_channel cv2.min(dark_channel, cv2.blur(d…

作者头像 李华
网站建设 2026/4/3 3:29:10

守护数字世界:解析网络安全的核心意义与实战防护策略

目录 一、什么是网络安全 二、网络安全为何重要? 1、数据安全 2、保护财务信息 3、遵守法律法规 4、防止网络攻击 三、网络安全常见问题隐患 1、弱密码 2、恶意软件 3、网络钓鱼 4、扫码领礼品 四、预防信息泄露普及 1、加强密码管理 2、保护个人信息…

作者头像 李华
网站建设 2026/4/3 0:12:22

网络安全攻击手段有哪些?

在当今社会,网络已经渗透到我们生活的方方面面,因此网络安全问题的严重性也随之凸显。而想要有效防止网络安全问题发生,我们就需要对网络攻击手段有一定的了解,这样才能做到防患于未然,那么网络安全攻击手段有哪些?以…

作者头像 李华
网站建设 2026/4/3 2:43:22

前端与JAVA后端分块上传的协同实现经验

《Java老哥的100元奇迹》 各位同行好啊!我是一名来自甘肃的Java老程序员,最近接了个"史诗级"外包项目——预算高达100元人民币!这价格连兰州牛肉面都吃不了几碗,但客户要的功能怕是马化腾来了都得摇头… 一、需求分析…

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

基于昇腾910B的文生图模型推理服务化部署

本次部署模型Qwen-Image。 1. vllm-Omni vLLM 最初是为了支持文本自动回归生成任务的大型语言模型而设计的。vLLM-Omni 是一个框架,它扩展了对全模态模型推理和服务的支持 全模态:文本、图像、视频和音频数据处理非自回归架构:将 vLLM 的 A…

作者头像 李华