【目标检测】基于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-船舶目标检测+目标跟踪+单目测距+速度测量(代码+教程)
|
算法 数据库 计算机视觉
Dataset之COCO数据集:COCO数据集的简介、下载、使用方法之详细攻略
Dataset之COCO数据集:COCO数据集的简介、下载、使用方法之详细攻略
|
机器学习/深度学习 存储 安全
基于YOLOv8深度学习的复杂场景下船舶目标检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测
基于YOLOv8深度学习的复杂场景下船舶目标检测系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标检测
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
19072 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
11月前
|
机器学习/深度学习 编解码 Java
YOLO11创新改进系列:卷积,主干 注意力,C3k2融合,检测头等创新机制(已更新100+)
《YOLO11目标检测创新改进与实战案例》专栏已更新100+篇文章,涵盖注意力机制、卷积优化、检测头创新、损失与IOU优化、轻量级网络设计等多方面内容。每周更新3-10篇,提供详细代码和实战案例,帮助您掌握最新研究和实用技巧。[专栏链接](https://blog.csdn.net/shangyanaf/category_12810477.html)
YOLO11创新改进系列:卷积,主干 注意力,C3k2融合,检测头等创新机制(已更新100+)
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
20169 2
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
18506 0
|
XML 数据格式 Python
将xml标签转换为txt(voc格式转换为yolo方便进行训练)
该文章提供了一个Python脚本,用于将VOC格式的XML标签文件转换为YOLO训练所需的TXT格式,包括修改数据集类别、输入图像与标注文件夹地址、转换过程和结果展示。
将xml标签转换为txt(voc格式转换为yolo方便进行训练)
|
机器学习/深度学习 人工智能 算法
基于YOLOv8的河道漂浮物实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
基于YOLOv8的河道漂浮物实时检测系统,利用2400张图片训练有效模型,开发了带GUI界面的系统,支持图片、视频和摄像头检测,具备模型权重导入、检测置信度调节等功能,旨在维护水体生态平衡和环境卫生。
605 0
基于YOLOv8的河道漂浮物实时检测系统【训练和系统源码+Pyside6+数据集+包运行】
|
XML 数据格式 Python
YOLOv5入门实践(3)——手把手教你划分自己的数据集
YOLOv5入门实践(3)——手把手教你划分自己的数据集
5167 0
YOLOv5入门实践(3)——手把手教你划分自己的数据集