YOLO模型如何训练SAR船舶检测数据集 1160张 1类 SAR 影像船舶检测数据集 遥感影像,适用于海上船舶识别、海事监测场景
SAR船舶检测 1160张 1类name[ ship]名称船共1160张按8:1:1比例划分为train928张val116张test116张。标注文件为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三、应用场景海事智能监测基于SAR遥感影像实现海域船舶自动识别、船只统计、违规船只筛查。海洋安防监管近海、航道、港口全天候船舶目标检测不受昼夜、天气影响。算法训练与测试VOC格式标准数据集用于遥感影像小目标、弱纹理目标检测算法研发与对比实验。学业/项目实战计算机视觉、遥感图像处理、深度学习相关毕设、课程项目、竞赛练习。海洋资源管理结合时序SAR数据分析海域船只活动规律辅助海洋运维管理。四、公众号标签直接复用分类标签#数据集#目标检测#SAR影像#遥感检测#船舶识别#深度学习#计算机视觉组合标签推文/封面技术向#VOC数据集 #目标检测 #SAR船舶检测 #CV实战行业向#遥感影像 #海事监测 #智慧海洋 #智能识别精简标签#数据集 #船舶检测 #深度学习五、完整代码实现环境依赖pipinstallultralytics lxml opencv-python numpy说明数据集为VOC(xml)格式下面提供两套方案方案一YOLOv8 直接加载VOC数据集训练推荐最简方案二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:voc2训练代码train_sar_ship.py针对SAR影像特征对比度低、目标纹理简单、小目标优化参数fromultralyticsimportYOLOdeftrain_sar_ship():# 加载预训练权重modelYOLO(yolov8s.pt)model.train(data./sar_ship_voc.yaml,epochs120,imgsz640,batch16,# 显存不足改为 8/4device0,# 无GPU填写 devicecpuworkers4,patience25,pretrainedTrue,optimizerAdam,lr00.001,# 数据增强适配SAR遥感影像mosaic0.8,hsv_h0.01,hsv_s0.3,hsv_v0.2,fliplr0.5,# 检测阈值SAR小目标适当降低置信度conf0.2,iou0.4,projectruns/sar_ship,nametrain_yolov8,exist_okTrue)print(训练完成最优模型runs/sar_ship/train_yolov8/weights/best.pt)if__name____main__:train_sar_ship()3推理测试代码predict_sar.pyfromultralyticsimportYOLO# 加载训练权重modelYOLO(./runs/sar_ship/train_yolov8/weights/best.pt)if__name____main__:# 1. 单张图片检测# model(test_sar.jpg, saveTrue, conf0.2)# 2. 批量图片检测model(source./test_sar_images,saveTrue,conf0.2)# 3. 视频检测# model(sea_video.mp4, saveTrue, conf0.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):treeET.parse(xml_path)roottree.getroot()sizeroot.find(size)img_wint(size.find(width).text)img_hint(size.find(height).text)withopen(txt_path,w)asf:forobjinroot.iter(object):cls_nameobj.find(name).text.strip()ifcls_namenotinclasses:continuecls_idclasses.index(cls_name)bndboxobj.find(bndbox)xminfloat(bndbox.find(xmin).text)yminfloat(bndbox.find(ymin).text)xmaxfloat(bndbox.find(xmax).text)ymaxfloat(bndbox.find(ymax).text)# VOC坐标 - YOLO归一化坐标x_center(xminxmax)/2.0/img_w y_center(yminymax)/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_fileos.path.join(voc_anno_path,file)txt_nameos.path.splitext(file)[0].txttxt_fileos.path.join(yolo_label_path,txt_name)convert_voc2yolo(xml_file,txt_file)print(VOC转YOLO标签完成)转换完成后使用标准YOLO数据集结构和yaml配置即可训练。六、使用调优建议SAR影像特点目标偏小、灰度单一、无彩色信息不要调高置信度建议conf0.15~0.25。显存不足降低batch使用yolov8n.pt轻量模型。漏检严重适当调高mosaic增强增加小目标样本多样性。部署方向模型导出ONNX/TensorRT嵌入遥感解译平台、海事监控系统实现海上船舶自动巡检。