当前位置: 首页 > news >正文

YOLO模型如何训练SAR船舶检测数据集 1160张 1类 SAR 影像船舶检测数据集 遥感影像,适用于海上船舶识别、海事监测场景

SAR船舶检测 1160张 1类

name:[ ship]
名称:船
共1160张,按8:1:1比例划分为train:928张,val:116张,test:116张。标注文件为xml格式。可以直接用于深度学习训练。

SAR船舶检测数据集(单类别VOC格式)

一、数据集基础信息表

项目详情
数据集名称SAR影像船舶检测数据集
图像总量1160 张
检测类别单类:ship(船舶)
标注格式VOC 标准.xml标注文件,图片与标注一一对应
数据划分训练集928张、验证集116张、测试集116张(比例 8:1:1,已划分完成)
适用模型YOLO、Faster R-CNN、SSD 等主流目标检测算法
图像特点SAR遥感影像,适用于海上船舶识别、海事监测场景

二、数据集目录结构(VOC标准格式)

sar_ship_voc/ ├── Annotations/ # 全部xml标注文件 │ ├── train/ │ ├── val/ │ └── test/ ├── JPEGImages/ # 全部图片文件 │ ├── train/ │ ├── val/ │ └── test/ └── ImageSets/ └── Main/ ├── train.txt ├── val.txt └── test.txt

三、应用场景

  1. 海事智能监测:基于SAR遥感影像实现海域船舶自动识别、船只统计、违规船只筛查。
  2. 海洋安防监管:近海、航道、港口全天候船舶目标检测,不受昼夜、天气影响。
  3. 算法训练与测试:VOC格式标准数据集,用于遥感影像小目标、弱纹理目标检测算法研发与对比实验。
  4. 学业/项目实战:计算机视觉、遥感图像处理、深度学习相关毕设、课程项目、竞赛练习。
  5. 海洋资源管理:结合时序SAR数据,分析海域船只活动规律,辅助海洋运维管理。

四、公众号标签(直接复用)

分类标签

#数据集#目标检测#SAR影像#遥感检测#船舶识别#深度学习#计算机视觉

组合标签(推文/封面)

  1. 技术向:#VOC数据集 #目标检测 #SAR船舶检测 #CV实战
  2. 行业向:#遥感影像 #海事监测 #智慧海洋 #智能识别
  3. 精简标签:#数据集 #船舶检测 #深度学习

五、完整代码实现

环境依赖

pipinstallultralytics lxml opencv-python numpy

说明

数据集为VOC(xml)格式,下面提供两套方案:

  1. 方案一:YOLOv8 直接加载VOC数据集训练(推荐,最简)
  2. 方案二:VOC转YOLO txt格式脚本(如需原生YOLO标签使用)

5.1 方案一:YOLOv8 直接训练VOC数据集(无需转格式)

1)创建数据集配置文件sar_ship_voc.yaml

# VOC格式 SAR船舶检测配置path:./sar_ship_voctrain:JPEGImages/trainval:JPEGImages/valtest:JPEGImages/test# 类别数 & 类别名nc:1names:0:ship# 标注格式类型format:voc

2)训练代码train_sar_ship.py

针对SAR影像特征(对比度低、目标纹理简单、小目标)优化参数

fromultralyticsimportYOLOdeftrain_sar_ship():# 加载预训练权重model=YOLO("yolov8s.pt")model.train(data="./sar_ship_voc.yaml",epochs=120,imgsz=640,batch=16,# 显存不足改为 8/4device=0,# 无GPU填写 device="cpu"workers=4,patience=25,pretrained=True,optimizer="Adam",lr0=0.001,# 数据增强(适配SAR遥感影像)mosaic=0.8,hsv_h=0.01,hsv_s=0.3,hsv_v=0.2,fliplr=0.5,# 检测阈值(SAR小目标适当降低置信度)conf=0.2,iou=0.4,project="runs/sar_ship",name="train_yolov8",exist_ok=True)print("训练完成,最优模型:runs/sar_ship/train_yolov8/weights/best.pt")if__name__=="__main__":train_sar_ship()

3)推理测试代码predict_sar.py

fromultralyticsimportYOLO# 加载训练权重model=YOLO("./runs/sar_ship/train_yolov8/weights/best.pt")if__name__=="__main__":# 1. 单张图片检测# model("test_sar.jpg", save=True, conf=0.2)# 2. 批量图片检测model(source="./test_sar_images",save=True,conf=0.2)# 3. 视频检测# model("sea_video.mp4", save=True, conf=0.2)print("检测结果已保存至 runs/detect 目录")

5.2 方案二:VOC(xml) 转 YOLO(txt) 格式转换脚本

若你需要传统YOLOtxt标签,运行该脚本批量转换:

importosimportxml.etree.ElementTreeasET# ==================== 配置路径 ====================voc_anno_path="./sar_ship_voc/Annotations"# xml标注目录yolo_label_path="./sar_ship_voc/labels"# 输出txt标签目录classes=["ship"]# 类别列表# 创建输出文件夹ifnotos.path.exists(yolo_label_path):os.makedirs(yolo_label_path)defconvert_voc2yolo(xml_path,txt_path):tree=ET.parse(xml_path)root=tree.getroot()size=root.find("size")img_w=int(size.find("width").text)img_h=int(size.find("height").text)withopen(txt_path,"w")asf:forobjinroot.iter("object"):cls_name=obj.find("name").text.strip()ifcls_namenotinclasses:continuecls_id=classes.index(cls_name)bndbox=obj.find("bndbox")xmin=float(bndbox.find("xmin").text)ymin=float(bndbox.find("ymin").text)xmax=float(bndbox.find("xmax").text)ymax=float(bndbox.find("ymax").text)# VOC坐标 -> YOLO归一化坐标x_center=(xmin+xmax)/2.0/img_w y_center=(ymin+ymax)/2.0/img_h w=(xmax-xmin)/img_w h=(ymax-ymin)/img_h f.write(f"{cls_id}{x_center:.6f}{y_center:.6f}{w:.6f}{h:.6f}\n")# 批量转换forfileinos.listdir(voc_anno_path):iffile.endswith(".xml"):xml_file=os.path.join(voc_anno_path,file)txt_name=os.path.splitext(file)[0]+".txt"txt_file=os.path.join(yolo_label_path,txt_name)convert_voc2yolo(xml_file,txt_file)print("VOC转YOLO标签完成!")

转换完成后,使用标准YOLO数据集结构和yaml配置即可训练。


六、使用&调优建议

  1. SAR影像特点:目标偏小、灰度单一、无彩色信息,不要调高置信度,建议conf=0.15~0.25
  2. 显存不足:降低batch,使用yolov8n.pt轻量模型。
  3. 漏检严重:适当调高mosaic增强,增加小目标样本多样性。
  4. 部署方向:模型导出ONNX/TensorRT,嵌入遥感解译平台、海事监控系统,实现海上船舶自动巡检。
http://www.cnnetsun.cn/news/3402086.html

相关文章:

  • LED恒流驱动IC选型与电路设计实战指南
  • 5分钟解决Windows绘图难题:draw.io桌面版完整安装指南
  • 西门子的伺服的线也有高仿了?
  • 彻底解决UFO项目Follower模式提前终止问题:从根源到方案
  • 3大场景解锁APK-Installer:Windows平台智能安卓应用安装效率革命
  • Gemma-4-26B-A4B-it-mxfp4 API开发教程:构建视觉AI服务的完整流程
  • Swindler:终极macOS窗口管理库,用Swift夺回桌面控制权
  • 如何在Windows上直接运行安卓应用:APK安装器的完整使用指南
  • Boss-Key老板键:Windows隐私保护终极指南,一键隐藏所有敏感窗口
  • 如何用novel-downloader实现全网小说一键批量下载?终极免费指南
  • 气压制动系统设计
  • 个人微信API二次开发,发消息失败后状态总是对不上?难道没用过“本地消息表”保证最终一致吗?
  • 免疫炎症研究陷困局,云克隆11因子检测方案带来系统性突破
  • Steam游戏自动破解:3步解锁离线游戏的终极解决方案
  • VideoPose3D深度解析:基于时序卷积的高效3D人体姿态估计算法实战指南
  • 如何快速掌握Citra模拟器:终极3DS游戏仿真引擎完全指南
  • HowToCookOnMiniprogram买菜直达功能:一键跳转购物小程序终极指南 [特殊字符]
  • Cookiecutter-Golang:打造生产级Go项目的终极模板,5分钟快速启动开发
  • 5款高效macOS系统清理优化工具:让你的Mac重获新生
  • 小程序毕设项目:基于 Android 的诗词专项练习刷题系统 基于 SpringBoot的诗词学习记录统计系统的设计与实现 (源码+文档,讲解、调试运行,定制等)
  • UFO³开发者大赛:如何构建跨设备智能代理的终极竞赛指南
  • 为什么你的Kimi读不懂合并单元格?资深架构师拆解底层解析引擎的3层渲染机制(含xlsx结构逆向图谱)
  • Palworld存档工具终极指南:专业级Python库实战应用
  • C++实现一维数组的中值滤波
  • 开源项目 `fatih/color` 使用教程
  • 为什么92%的Blender用户还在手动调材质?AI自动风格匹配引擎上线首周即封禁内测(限时开放3个白名单通道)
  • 深度学习数据增强必读:Random Erasing论文核心观点与代码复现
  • 探索GiveawayBot核心功能:自动开奖、多 winner 设置与智能重抽详解
  • fastquant多策略回测教程:同时运行RSI、MACD与布林带策略的高效方法
  • AppBrewery Flutter Null Safety最佳实践:避免常见陷阱的7个专家建议