基于YOLOV8复杂场景下船舶目标检测系统
1. 背景
全球海洋覆盖了地球表面约71%的区域,并在全球范围内承担着维持人类生存与发展的重要生态功能。 ships serve as essential platforms for various marine activities, including maritime transportation, resource exploration, and environmental monitoring. 在复杂多变的海洋环境中实现船舶目标的有效检测被视为现代航海技术发展的重要里程碑。
2. YOLOv8算法
为什么我应该使用 YOLOv8?
- 该模型提供了一系列便于开发人员使用的功能模块
- 这些功能模块不仅涵盖从友好易用的命令行界面到结构清晰的Python包组件
- 表明在计算机视觉领域中拥有大量专业的支持者和开发者
- 其中许多专家都熟悉YOLO及其核心原理
- 尽管目前YOLOv8还未广泛发布但在GitHub等开源平台上有大量学习资源可供参考
- 这些资源包括:
- Roboflow 模型上的 YOLOv8 模型卡
- 如何在自定义数据集上训练YOLOv8模型
- 用于训练YOLOv8目标检测模型的谷歌Colab笔记本
- 用于训练YOLOv8分类模型的谷歌Colab笔记本
- 用于训练YOLOv8分割模型的谷歌Colab笔记本
- 使用YOLOv8和ByteTRACK跟踪和计数车辆)深入探讨其独特架构的同时对比分析其与以往版本的主要区别
2.1 YOLOv8检测网络

2.2 模型结构
如图所示,在左边部分显示的是YOLOv5-s模型,在右边部分展示的是YOLOv8-s模型。暂不深入分析头部模块的影响情况下,通过比较YOLOv5和YOLOv8的配置文件可以看出改动较为有限。


3. 软件界面功能
- 该系统具备在线处理多种复杂场景中船舶定位的能力,并能准确呈现目标数量。
- 该平台兼容图片、视频流以及摄像头等多种输入源,并支持批量处理。
- 操作界面可即时呈现目标位置坐标、总数统计以及准确性评价指标等关键数据。
- 该系统能够存储来自图像或视频流的各种检测结果。
4. 数据集与训练
该数据集专门收集了多样化的船舶图像,在各种复杂的环境中进行了标注。
总共有5,090张图像样本,在这之中训练样本占了4,576个案例、验证样本有509个案例、测试样本仅包括了5个实例。
该数据集旨在解决复杂场景下船舶目标检测的问题。
它涵盖了丰富多样的环境特征:
繁忙港口区域,
渔船密集区域,
以及水陆交织区域。
与传统的目标检测数据不同,
本集合特别针对实际应用中的挑战进行了优化:
ships may not always be the primary subject in images or video frames,
并且可能会被其他物体遮挡。
此外,
集合还包括部分船只或完全被遮挡的对象。
这些特点使其非常适合开发和评估能够在复杂且部分遮挡条件下工作的目标检测算法,
从而推动相关领域的研究和发展,
满足航海安全、渔业管理和海洋保护等日益增长的实际需求。


data.yaml的具体内容如下:
train: D:\BoatDetection\datasets\Data\train
val: D:\BoatDetection\datasets\Data\val
nc: 1
names: ['boat']
代码解读
根据内存大小调整,最小为1
根据内存大小调整,最小为1
完成数据准备后,在运行train.py文件的过程中完成模型训练。其中,在运行train.py文件的过程中完成模型训练。其中,在运行train.py文件的过程中完成模型训练。其中,在运行train.py文件的过程中完成模型训练.其中,在运行 train.py 文件的过程中完成模型训练.其中,在运行 train.py 文件的过程中完成模型训练.其中,在运行 train.py 文件的过程中完成模型训练.其中在运行 train.py 文件的过程中完成了模型的训练过程
from ultralytics import YOLO# 加载预训练模型
model = YOLO("yolov8n.pt")
# Use the model
if __name__ == '__main__':# Use the modelresults = model.train(data='D:\BoatDetection\datasets\Data\data.yaml', epochs=300, batch=4) # 训练模型
代码解读
4.1 训练结果评估
在深度学习领域中,在模型的整个 training 过程中, 我们通常通过 loss 函数下降曲线的变化趋势来评估 model 的 performance. YOLOv8 在 training 任务中主要由三个部分构成: bounding box regression loss (box_loss), classification loss (cls_loss), 和 dynamic feature learning loss (dfl_loss). 当完成一次完整的 model training 后, 可以通过访问 runs/ 目录中的位置获取 detailed 的 training records. 这些记录位于该 directory 中指定的位置。

本文训练结果如下:

PR曲线:

5. 检测结果识别

6. 结论与展望
YOLOv8 ships' object detection system offers an efficient and precise solution for ship monitoring and management in complex marine environments. In the foreseeable future, with advancements in artificial intelligence and deep learning technology, this system will further enhance its value in marine applications, contributing more significantly to the construction of a beautiful ocean and the pursuit of sustainable development.
