【目标检测】基于yolov5海上船舶目标检测(附代码和数据集)

简介: 今天给大家分享的目标检测项目是:基于yolov5海上船舶目标检测(附代码和数据集)

Hello,大家好,我是augustqi。今天给大家分享的目标检测项目是:基于yolov5海上船舶目标检测(附代码和数据集)

Part1 前言

传统的海上目标检测是通过雷达来实现,但是随着技术的发展,各种隐形涂料的船舰层出不穷,通过雷达进行目标探测受到了很大的限制。基于深度学习的目标检测方法,可以和雷达探测方法进行结合,从而实现更精准的目标识别。

Part 2 准备环节

2.1 软硬件

一个完整的项目,离不开软硬件的支持,本次项目核心配置如下:

内容 详情
系统 Ubuntu 20.04
显卡 Tesla P100
CUDA版本 11.2
CUDNN版本 8.1.1
torch版本 1.8.1

2.2 数据集

本次项目使用的数据集总体情况:

类型 数量
图片 7000
xml 7000

数据集中包含的类别以及每类的数量:

类别 目标数量
ore carrier 2199
passenger ship 474
container ship 901
bulk cargo carrier 1952
general cargo ship 1505
fishing boat 2199

使用labelimg或者其他标注工具查看数据:

image.gif编辑

将数据集划分为训练集和验证集:

image.gif编辑

将7000张图片放在VOCdevkit/VOC2007/JPEGImages目录下,将7000张xml文件放在VOCdevkit/VOC2007/Annotations目录下,使用脚本代码划分得到训练集5600张,验证集1400张,其中images和labels文件夹是运行脚本代码自动生成的。获取划分数据集的脚本代码prepare_train_val.py:

https://blog.csdn.net/AugustMe/article/details/127320880

Part 3 训练模型

代码结构如下:

image.gif编辑

文件 功能
data 数据集配置
models 模型配置
runs 存放训练结果
utils 存放工具类函数
VOCdevkit 存放数据集
weights 存放预训练权重
detect.py 检测脚本
train.py 训练脚本
export.py 模型转换脚本
val.py 验证脚本
prepare_train_val.py 划分数据集的脚本
hubconf.py pytorch hub相关代码
requirements.txt 存放项目依赖库的版本信息

本次项目使用yolov5训练一个海上船舶检测模型,yolov5代码的下载和环境配置请看微信公众号AIexplore之前发布的文章。

3.1 数据集配置


3.2 模型配置


Part 4 测试模型

使用detect.py加载训练好的模型,对验证集上的图片进行测试,这里放一部分验证集上的检测结果:

image.gif编辑

Part 5 结果分析

本项目使用yolov5训练了一个海上船舶目标检测模型,在2块Tesla P100显卡下训练了300 epoch,训练集和验证集上损失、精确率、召回率、mAP的变化图:

image.gif编辑

验证集上PR曲线:

image.gif编辑

Part 6 完整项目获取

https://blog.csdn.net/AugustMe/article/details/128111977


参考资料

[1]https://blog.csdn.net/AugustMe/article/details/127529441

[2]https://blog.csdn.net/AugustMe/article/details/127368318

[3]https://blog.csdn.net/AugustMe/article/details/127653996

[4]https://blog.csdn.net/See_Star/article/details/105820181

相关文章
|
算法 计算机视觉
yolov5 deepsort-船舶目标检测+目标跟踪+单目测距+速度测量(代码+教程)
yolov5 deepsort-船舶目标检测+目标跟踪+单目测距+速度测量(代码+教程)
|
算法 Go 计算机视觉
YOLOv8结构解读
YOLOv8是Ultralytics团队开发的最新目标检测模型,基于YOLO系列的高效单阶段架构,进一步优化了精度与速度。相比YOLOv5,YOLOv8在Backbone中移除了Focus模块,优化了CSP结构;在Neck部分增强了特征融合能力;Head部分采用Anchor-Free与解耦头设计,提升检测精度。此外,YOLOv8引入了更先进的损失函数、自对抗训练和动态标签分配等策略,显著提高了模型性能与鲁棒性。
3605 0
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
30275 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【Conv和Transformer】| GRSL-2024最新模块 卷积和自注意力融合模块 CAFM 减少图像中的噪声干扰
YOLOv11改进策略【Conv和Transformer】| GRSL-2024最新模块 卷积和自注意力融合模块 CAFM 减少图像中的噪声干扰
876 7
YOLOv11改进策略【Conv和Transformer】| GRSL-2024最新模块 卷积和自注意力融合模块 CAFM 减少图像中的噪声干扰
|
XML 数据格式 Python
将xml标签转换为txt(voc格式转换为yolo方便进行训练)
该文章提供了一个Python脚本,用于将VOC格式的XML标签文件转换为YOLO训练所需的TXT格式,包括修改数据集类别、输入图像与标注文件夹地址、转换过程和结果展示。
将xml标签转换为txt(voc格式转换为yolo方便进行训练)
|
机器学习/深度学习 自动驾驶 计算机视觉
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V1 基于 Ghost Module 和 Ghost Bottlenecks的轻量化网络结构
YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V1 基于 Ghost Module 和 Ghost Bottlenecks的轻量化网络结构
1387 13
|
机器学习/深度学习 传感器 编解码
万字长文 | 多目标跟踪最新综述(基于Transformer/图模型/检测和关联/孪生网络)(上)
随着自动驾驶技术的发展,多目标跟踪已成为计算机视觉领域研究的热点问题之一。MOT 是一项关键的视觉任务,可以解决不同的问题,例如拥挤场景中的遮挡、相似外观、小目标检测困难、ID切换等。为了应对这些挑战,研究人员尝试利用transformer的注意力机制、利用图卷积神经网络获得轨迹的相关性、不同帧中目标与siamese网络的外观相似性,还尝试了基于简单 IOU 匹配的 CNN 网络、运动预测的 LSTM。为了把这些分散的技术综合起来,作者研究了过去三年中的一百多篇论文,试图提取出近年来研究者们更加关注的解决 MOT 问题的技术。
万字长文 | 多目标跟踪最新综述(基于Transformer/图模型/检测和关联/孪生网络)(上)
|
机器学习/深度学习 人工智能 算法
基于YOLOv10的无人机巡航小目标实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
基于YOLOv10的无人机巡航小目标实时检测系统,通过7444张无人机场景训练图片,训练出能检测9类目标的模型,并开发了带GUI界面的系统,支持图片、视频和摄像头实时检测,具备背景和标题更换、模型选择、检测信息展示等功能。
2161 0
基于YOLOv10的无人机巡航小目标实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
|
机器学习/深度学习 传感器 监控
红外小目标检测:基于深度学习
本文介绍了红外小目标检测技术的优势、基本原理及常用方法,包括背景抑制、滤波、模型和深度学习等,并探讨了多传感器融合的应用。通过一个基于深度学习的实战案例,展示了从数据准备到模型训练的全过程。最后,文章展望了该技术在军事、安防、交通等领域的广泛应用及未来发展趋势。

热门文章

最新文章