Advertisement

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

阅读量:

修改说明

虽然路程遥远不易抵达,但只要坚持不懈,终会到达目的地;即便事情看似困难重重,但只要持之以恒努力,就一定能成功实现目标。只要具备那种坚持不懈的精神力量、那种持之以恒的努力精神,脚踏实地地奋斗,埋头苦干地探索,积累每一步微小的努力终将抵达理想的彼岸,就一定能够把宏伟的目标转化为现实中的美好成果。

你好!欢迎来到我的个人简介页面。我叫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或者其他标注工具查看数据:

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

请在VOCdevkit/VOC2007目录下配置好以下内容:将7,000张图像归类至VOCdevkit/VOC2007/JPEGImages目录中的'dataset'子目录内;将对应的7,000份XML标注文件归类至VOCdevkit/VOC2007/Annotations目录下的'dataset'子目录内。通过预先编写的训练验证数据划分脚本生成训练集5,6个批次(5,6,8)各56个样本、验证集14个批次(14-16)各14个样本的数据集划分结果文件。其中images和labels文件夹系运行该训练数据分割脚本自动创建的。获取该划分数据集的具体脚本代码prepare_train_val.py:

Part 3 训练模型

代码结构如下:

文件 功能
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技术来训练海上船舶检测系统,并对代码进行了详细说明以及操作指导,请参考微信公众号AIexplore previously published articles for more details.

3.1 数据集配置

在data目录下新建一个VOC_sea.yaml文件,写入内容如下:

3.2 模型配置

在models目录中创建一个yolov5s_sea.yaml文件,并填写其中的内容(根据需求选择yolov5s、yolov5l、yolov5m、yolov5n或yolov5x)

打开终端,执行训练命令:

复制代码
    python train.py --weights weights/yolov5s.pt --cfg models/yolov5s_sea.yaml --data data/VOC_sea.yaml --epochs 300 --batch-size 16 --imgsz 1280

根据自己机器上的配置,修改batch-size、imgsz等参数。

Part 4 测试模型

导入预训练的模型权重文件,并通过detect.py执行模型加载操作;在验证数据集上运行预测过程,并将预测结果保存到指定目录中;以展示验证效果为例,在附录中列出部分预测结果。

Part 5 结果分析

本项目采用yolov5算法进行海上船舶目标检测模型的训练,在两块NVIDIA Tesla P100显卡上进行了连续300个epocs的训练工作。通过对比训练集与验证集的损失值变化趋势以及各项评估指标(包括损失值下降、准确率提升、召回率优化和mAP性能增强)可以看出模型的学习效果不断优化。

验证集上PR曲线:

Part 6 完整项目获取

项目完整代码和数据集,获取方式请看下面。

本项目的代码与数据集可通过扫描下方二维码关注并添加官方vx助手进行获取(注:此服务仅限于订阅该专栏内容的服务),即可获取本文的数据集及相关代码。具体详情也可通过扫描二维码与我们联系。特别注意:一旦订阅该专栏,在此前提下即可免费阅读全文内容,请务必谨慎注意的是,在此前提下无法获取完整的源码与数据集。

参考资料

[1]<>

[2]<>

[3]<>

[4]

全部评论 (0)

还没有任何评论哟~