YOLOv5至YOLOv12升级:舰船检测与识别系统的设计与实现(完整代码+界面+数据集项目)

摘要 :开发高可靠的舰船检测与识别系统对于海上交通监管、港口智能调度与海事安防具有重要意义。老思在本文中围绕"YOLOv5 至 YOLOv12 的升级演进"构建并复现了一套可落地的舰船目标检测工程方案,给出从数据集构建与清洗、标注与划分、训练与评估、到部署推理与界面联动 的完整实现路径。系统能够在复杂海况与多尺度场景下对多类舰船目标进行精确检测与分类,并输出检测框、类别与置信度及统计信息;前端采用 PySide6 设计交互式 UI,支持图片/视频/摄像头多源输入,提供阈值(Conf/IOU)调节、可视化结果展示、结果保存与导出等功能;后端以 SQLite 实现用户注册登录、配置与历史结果持久化管理,形成"训练---评测---推理---管理"的闭环工程流程。算法侧对 YOLOv5~YOLOv12 共 8 个系列模型进行系统对比,结合 mAP、F1、PR 曲线与训练曲线等指标分析不同版本结构改动对舰船场景的影响。文末随文提供完整项目代码、界面工程与数据集资源,便于复现与二次开发。


文章目录

  • [1. 前言综述](#1. 前言综述)
  • [2. 数据集介绍](#2. 数据集介绍)
  • [3. 模型设计与实现](#3. 模型设计与实现)
  • [4. 训练策略与模型优化](#4. 训练策略与模型优化)
  • [5. 实验与结果分析](#5. 实验与结果分析)
    • [5.1 实验设计与对比基线](#5.1 实验设计与对比基线)
    • [5.2 度量指标与阈值选取](#5.2 度量指标与阈值选取)
    • [5.3 结果对比与讨论](#5.3 结果对比与讨论)
  • [6. 系统设计与实现](#6. 系统设计与实现)
    • [6.1 系统设计思路](#6.1 系统设计思路)
    • [6.2 登录与账户管理](#6.2 登录与账户管理)
  • [7. 下载链接](#7. 下载链接)
  • [8. 参考文献(GB/T 7714)](#8. 参考文献(GB/T 7714))

➷点击跳转至文末所有涉及的完整代码文件下载页☇


1. 前言综述

海上交通态势感知、港口与航道安防、海上救援以及海洋权益维护等场景,对"快速、稳定、可解释"的舰船检测与识别能力提出了刚性需求;然而在岸基视频与遥感影像中,舰船目标常同时呈现小尺度、密集停泊、强背景干扰与跨域成像差异等特征,使该任务在学术与工程两端都长期保持挑战性。1 以公开视频监控为代表的 SeaShips 数据集推动了近岸复杂场景下的标准化评测与工程化落地讨论,并将实时性、误警控制与长时稳定性从"指标"变为"系统约束"。2 (lianpp.com) 进一步地,面向全天候与复杂海况的 SAR 观测需求,OpenSARShip 通过与 AIS 信息关联的公开数据,为雷达成像条件下的舰船检测、识别与跨模态研究提供了可复现的样本基础。3 (OPENSAR)

在深度学习成为主流之前,相关方法多依赖边缘、纹理、显著性、形状先验或运动线索构建规则化判别器;这类方法对成像条件与阈值策略高度敏感,面对尺度变化、遮挡、海天线干扰及光照突变时容易出现鲁棒性下降与泛化不足。4 随着 GPU 计算与数据驱动范式成熟,通用目标检测框架被快速迁移到舰船场景:一方面,两阶段检测器借助候选区域机制在复杂背景下具备较强的定位与分类能力,成为遥感舰船检测中长期可用的强基线;另一方面,一阶段检测器以更低的端到端时延满足在线监控与边缘部署的工程要求,从而使"检测---告警---联动"的闭环系统具备可实现性。[5][6]

为了更直观地把握国内外研究脉络,老思将具有代表性的算法路线、常用数据集与典型改进整理如表 1 所示,其中既包含通用检测范式在遥感任务中的迁移,也覆盖了针对旋转目标、小目标与密集场景的结构化改进。

代表工作(路线) 典型数据集/任务域 关键设计与改进要点 优点 局限 参考
两阶段检测(Faster R-CNN 系) 遥感舰船/复杂背景 RPN 生成候选区域,分阶段优化分类与回归 复杂背景下定位更稳、可作为强基线 推理链路长,实时性与端侧部署压力较大 [5]
一阶段检测(YOLO 系) 视频监控/实时检测 单次前向同时回归框与类别,强调端到端速度 时延低,便于工程部署与实时告警 小目标与密集遮挡下易出现漏检与框粘连 [6]
航拍/遥感基准(DOTA) 多类别遥感目标(含 ship) 面向任意方向目标的标注体系与大幅宽场景覆盖 促进旋转框与密集目标检测研究 数据偏向航拍复杂地物,向近岸视频迁移仍需域适配 [7] (CVF Open Access)
旋转检测(RoI Transformer) DOTA/HRSC 等 学习旋转 RoI 表征以适配任意方向目标 对长条形、任意角度目标更友好 结构更复杂,训练与推理代价上升 [8]
特征对齐(S 2 ^2 2A-Net) DOTA/HRSC 等 缓解锚框与卷积特征错位,提升旋转检测一致性 兼顾精度与效率,旋转场景表现强 仍依赖较强先验设计,对极端小目标仍敏感 [9]
国内改进(密集 RFB + LSTM) 遥感舰船/复杂背景 强化多尺度特征与上下文建模以抑制误检 对复杂背景与尺度变化更鲁棒 结构引入序列建模,部署复杂度与调参成本上升 [10]

从算法演进角度看,舰船检测的发展已从"迁移通用检测器"逐步走向"面向任务的结构化改造",其中一个清晰趋势是注意力机制与 Transformer 范式对检测框架的持续渗透,DETR 以集合预测的方式重塑了端到端检测的建模视角,并为后续的注意力驱动结构提供了重要参考。[11] 与此同时,大规模遥感目标基准进一步扩展了数据尺度与细粒度类别体系,使得模型在跨地域、跨传感器条件下的泛化评估成为可能。[12] 面向工程侧的轻量化与高精度并行需求,近两年大量工作围绕 YOLO 框架在特征增强、轻量模块与小目标优化上进行定向改进,体现为更少参数下的更高可用精度。[13][14] 值得注意的是,最新的 YOLOv12 将注意力置于架构核心,尝试在保持实时性的同时获得更强表征能力,为"高精度---低时延"矛盾提供了新的折中路径。[15] (Ultralytics Docs)

尽管研究持续推进,面向真实海事业务的系统化落地仍面临若干关键难点:其一,海天线、岸线建筑与浪涌反光等造成的强背景干扰,使误检控制与稳定阈值策略成为系统可靠性的核心;其二,远距离小目标与密集停泊带来的极端尺度不均衡,要求检测器在多尺度表征与后处理抑制(如框粘连、遮挡冲突)之间取得更细致的平衡;其三,数据分布随港口、季节、天气、成像设备变化而显著漂移,模型的跨域泛化、持续更新与可维护性直接决定系统寿命;其四,工程系统不仅要"跑得快",还要在交互界面、结果追溯、批量处理与权限隔离等方面满足可用性与可审计性。

因此,本文(博主)将围绕"YOLOv5 至 YOLOv12 升级"的主线,面向舰船检测与识别任务给出一套可复现、可部署的完整实现:在同一数据集与统一评测协议下系统对比 YOLO 系列多版本模型效果,结合任务特性进行必要的结构与训练策略调整,并构建基于 PySide6 的可交互检测软件,实现图片/视频/摄像头多源输入、可视化结果展示与统计分析;同时提供数据集构建与划分流程、标注与预处理规范,以及完整代码与资源包,便于读者直接复现与二次开发。
主要功能演示:

(1)启动与登录:系统启动后首先进入登录界面,用户可完成注册、登录与记住状态等操作;登录成功后自动加载该用户的历史配置与检测记录,并进入主界面,实现不同用户间的结果隔离与配置持久化。下图为启动与登录界面演示图。

启动与登录界面图

(2)多源输入与实时检测(摄像头/视频/图片/文件夹):在主界面中,输入源以统一的交互入口组织,支持单张图片检测、图片文件夹批量检测、本地视频文件检测以及摄像头实时检测;推理过程中界面同步显示检测框、类别与置信度,并提供播放/暂停、进度控制与结果保存等操作,使离线评测与在线巡检都能在同一套流程中完成。下图为多源输入与实时检测功能演示图。

多源输入与实时检测功能图

(3)模型选择与对比演示:系统内置 YOLOv5--YOLOv12 多版本权重切换机制,用户可在界面中选择目标模型并一键加载,在同一输入源与同一阈值设置下快速对比不同模型的检测效果与时延表现;同时可结合 mAP、F1、推理耗时等统计信息辅助选型,形成"场景---模型---效果"的可解释对比。下图为模型选择与对比演示界面图。

模型选择与对比演示图

(4)主题修改功能:为适配不同作业环境与展示需求,系统提供主题切换与样式自定义能力,可在不改动核心推理逻辑的前提下调整窗口主题色、按钮样式与背景图等视觉元素;主题修改即时生效并随用户账号保存,实现"个性化外观---个性化配置"的一致体验。下图为主题修改功能演示图。

主题修改功能图


2. 数据集介绍

本文面向舰船检测与识别任务构建了专用数据集,数据总量为 5,725 张图像,并按照训练/验证/测试划分为 4,022/1,130/573 张。数据类别覆盖 6 类典型海上目标,分别为 a(A型)buoy(浮标)container(货轮)cruise(游轮)fish-b(渔船)warship(军舰) 。从类别实例统计可以观察到一定程度的长尾与不均衡现象,其中 "a(A型)" 与 "cruise(游轮)"占比更高,而 "buoy(浮标)"相对较少;该分布会直接影响分类边界的学习难度与置信度校准,因此在训练阶段通常需要配合更稳健的增强策略与评估口径来避免指标被头部类别主导。

python 复制代码
Chinese_name = {'a': "A型", 'buoy': "浮标", 'container': "货轮", 'cruise': "游轮", 'fish-b': "渔船", 'warship': "军舰"}

从标注框的空间与尺度分布来看,目标中心点在归一化坐标系中呈现向图像中部聚集的趋势,说明数据存在一定的"目标居中"采样特征;同时,宽高分布表现出明显的小目标密集特性,并伴随少量大尺度目标与宽高比差异较大的长条形框,这与远距离航拍/监控视角下的舰船形态一致。本文训练与推理流程采用 YOLO 族模型的标准输入规范:标注以归一化坐标( x , y , w , h x,y,w,h x,y,w,h)写入 TXT 文件,训练时对图像进行 Letterbox 等比例缩放与填充到固定输入尺寸,并结合 Mosaic 等增强以提升对尺度变化与背景扰动的鲁棒性;在不改变标注语义的前提下,这些预处理能更好地匹配 YOLO 系列的特征金字塔与多尺度检测头。

📊 数据集规格说明 (Dataset Specification)

维度 参数项 详细数据
基础信息 标注软件 LabelImg
标注格式 YOLO TXT (Normalized)
数量统计 训练集 (Train) 4,022 张 (≈70.2%)
验证集 (Val) 1,130 张 (≈19.7%)
测试集 (Test) 573 张 (≈10.0%)
总计 (Total) 5,725 张
类别清单 Class ID: 0 a(A型)
Class ID: 1 buoy(浮标)
Class ID: 2 container(货轮)
Class ID: 3 cruise(游轮)
Class ID: 4 fish-b(渔船)
Class ID: 5 warship(军舰)
图像规格 输入尺寸 640 * 640
数据来源 自有数据 / 混合数据集 / 实地拍摄 / 公开数据集 (手动清洗)

3. 模型设计与实现

本系统的检测内核以 YOLOv12n 作为默认基线模型,同时兼容导入 YOLOv5 至 YOLOv12 的不同权重文件,用于在同一数据集与同一推理链路下完成横向对比。老思在工程实现上刻意保持"模型无关"的接口约束:输入侧统一采用 Letterbox 等比例缩放与填充,将任意分辨率图像规范到 640 × 640 640\times640 640×640;网络侧统一抽象为 Backbone--Neck--Head 三段式结构;输出侧统一规约为 ( b i , s i , c i ) {(b_i, s_i, c_i)} (bi,si,ci),其中 b i = ( x 1 , y 1 , x 2 , y 2 ) b_i=(x_1,y_1,x_2,y_2) bi=(x1,y1,x2,y2) 为像素坐标检测框, s i s_i si 为置信度, c i c_i ci 为类别索引,并在 UI 层使用 Chinese_name 完成中英文标签映射。这种抽象的好处在于:无论是 YOLOv5 的锚框式检测头,还是 YOLOv8/11/12 更偏向无锚与解耦的预测形式,最终都能被规约到相同的数据结构,便于 PySide6 的绘制、统计与结果持久化逻辑复用。YOLOv5 的典型结构由 CSPDarknet53 主干、SPPF 与 PANet 颈部以及检测头组成,强调在多尺度特征上完成一次前向预测,从而获得较低推理时延。 (Ultralytics Docs)

从结构设计角度,YOLO 系列在舰船任务中最关键的能力来自"多尺度表征与高效特征融合"。舰船目标既可能以远距离小目标密集出现,也可能在近景画面中占据大比例区域,因此系统默认启用三尺度(或更多尺度)检测分支以覆盖不同感受野。Backbone 负责在逐级下采样过程中提取语义信息,Neck 负责把高层语义与低层细节进行跨层融合(常见为 FPN/PAN 结构思想),Head 则在不同尺度特征图上输出分类与定位预测。进入 YOLOv12 后,模型把"注意力"提升为架构核心,采用面向效率的 Area Attention 将特征图划分为规则区域来近似大感受野自注意力,并结合 R-ELAN 的特征聚合与残差缩放来改善训练稳定性;同时通过可选 FlashAttention 等实现降低注意力的访存开销,使注意力模块更接近实时检测的速度边界。 (Ultralytics Docs) 这类设计对舰船场景的直接收益在于:当背景存在海天线、岸线建筑与浪涌反光等强干扰时,注意力更容易把"可分辨的船体结构与关键区域"从复杂纹理中凸显出来,从而在相同输入尺寸下提升有效特征的利用率。

在任务建模上,系统将舰船识别视为标准多类别目标检测问题,类别数为 K = 6 K=6 K=6,训练目标可概括为分类与定位的联合优化。工程实现中通常将总损失写成加权和形式
L = λ box L box + λ cls L cls + λ obj L obj , L=\lambda_{\text{box}}L_{\text{box}}+\lambda_{\text{cls}}L_{\text{cls}}+\lambda_{\text{obj}}L_{\text{obj}}, L=λboxLbox+λclsLcls+λobjLobj,

其中 L box L_{\text{box}} Lbox 多采用 IoU 家族损失(如 CIoU/GIoU 等)来约束框的重叠与几何一致性, L cls L_{\text{cls}} Lcls 常用二元交叉熵或交叉熵完成多类判别, L obj L_{\text{obj}} Lobj 则用于刻画候选位置的目标性(对无锚/解耦头的实现细节,不同版本的参数化方式有所差异,但最终都能映射为"位置是否存在目标"的概率学习)。推理阶段系统执行置信度阈值筛选与 NMS 抑制,用户可在界面上调节 ConfIOU 两个关键阈值来控制误检与漏检的权衡;对于停泊密集与遮挡较强的港口画面,适当降低 Conf 并提高 IOU 往往有助于缓解框粘连与重复框的问题,但会带来更多候选框,因而需要结合帧率与算力余量综合设定。

实现层面,检测器模块以 Ultralytics 推理接口为主线完成"加载权重---输入预处理---前向推理---后处理---结果规约",并将结果以信号槽形式推送至主线程完成渲染与统计。下面给出核心推理流程的最小实现示例,实际工程中会进一步加入模型缓存、半精度推理、异常处理与多源输入调度等逻辑: (Ultralytics Docs)

python 复制代码
from ultralytics import YOLO

Chinese_name = {'a': "A型", 'buoy': "浮标", 'container': "货轮",
                'cruise': "游轮", 'fish-b': "渔船", 'warship': "军舰"}

class Detector:
    def __init__(self, weight_path: str, device: str = "cuda:0"):
        self.model = YOLO(weight_path)
        self.device = device

    def infer(self, img_bgr, conf=0.25, iou=0.45):
        # Ultralytics 内部包含 letterbox/归一化等预处理
        results = self.model.predict(source=img_bgr, conf=conf, iou=iou, device=self.device, verbose=False)
        r0 = results[0]
        boxes = r0.boxes.xyxy.cpu().numpy()
        scores = r0.boxes.conf.cpu().numpy()
        cls_ids = r0.boxes.cls.cpu().numpy().astype(int)
        # 统一输出:[(x1,y1,x2,y2,score,cls_id,cls_name_zh)]
        out = []
        names = r0.names  # id -> english name
        for b, s, cid in zip(boxes, scores, cls_ids):
            en = names[cid]
            zh = Chinese_name.get(en, en)
            out.append((float(b[0]), float(b[1]), float(b[2]), float(b[3]), float(s), int(cid), zh))
        return out

4. 训练策略与模型优化

本系统的训练流程以"可复现、可迁移、可对比"为基本目标:在同一数据集划分与相同输入尺度(默认 640 × 640 640\times640 640×640)下,对 YOLOv5--YOLOv12 的不同模型变体采用统一的训练协议,以保证横向对比的公平性。硬件环境默认使用单卡 RTX 4090(24GB),训练框架采用 Ultralytics(YOLOv8/11/12 统一接口)或对应版本的官方实现(如 YOLOv5),并启用 AMP 混合精度以降低显存占用、提升吞吐;同时固定随机种子与数据加载策略,避免由随机增强与多线程加载带来的评估波动。为了使模型更快收敛并增强跨场景泛化,训练通常从 COCO 等大规模数据上的预训练权重开始,再在舰船数据集上进行迁移学习;该策略对本任务尤为关键,因为图像中存在大量海面纹理与强背景干扰,若从零训练往往需要更长的收敛时间且更容易出现早期过拟合。

在数据增强与训练节奏上,老思更倾向于采用"前期强增强、后期弱增强"的安排来兼顾泛化与定位稳定性:训练早期打开 Mosaic 等增强以提升多尺度与密集目标的鲁棒性,靠近收敛阶段逐步关闭 Mosaic(close_mosaic)并减弱几何扰动,使模型在更接近真实分布的样本上细化边界与置信度校准。学习率策略通常使用预热(warmup)叠加余弦衰减或等价的平滑下降方案:预热阶段在前若干 epoch 内将学习率从较小值线性提升到初始学习率 l r 0 lr_0 lr0,以缓解大 batch 或强增强带来的不稳定;进入稳定训练后逐步衰减至 l r f lr_f lrf,避免后期震荡。其直观形式可写为
l r ( t ) = l r f + 1 2 ( l r 0 − l r f ) ( 1 + cos ⁡ ( π t T ) ) , lr(t)=lr_f+\tfrac{1}{2}(lr_0-lr_f)\left(1+\cos\left(\pi \tfrac{t}{T}\right)\right), lr(t)=lrf+21(lr0−lrf)(1+cos(πTt)),

其中 t t t 为当前迭代进度, T T T 为总训练进度。对于类别不均衡较明显的数据(从你给的统计图可见头部类占比更高),这种"强增强 + 平滑衰减"组合通常比激进的学习率跳变更稳健,能够在保证召回的同时降低误检漂移。

工程侧的优化主要围绕两点展开:一是提高训练稳定性与可复现实验效率,二是为部署推理做准备。训练稳定性方面,启用 Early Stopping(patience)在验证集指标长期无提升时提前停止,可减少无效 epoch;weight_decay 抑制过拟合,momentum(或 AdamW 的一阶动量)帮助在复杂背景下更平滑地逼近最优;当显存紧张或需要更高分辨率时,可采用梯度累积模拟更大 batch。部署侧则建议在训练完成后导出 ONNX,再视硬件条件转 TensorRT;同时开启 FP16 推理以降低端到端时延。需要强调的是,UI 系统中 Conf/IOU 的默认阈值并非"固定常数",而应基于验证集 PR 曲线或业务对误警/漏警的容忍度进行再标定:港口密集停泊场景更关注重复框与粘连抑制,而远距离小目标巡检更关注召回,二者在阈值选择上往往呈现相反倾向。

为便于复现实验,本文采用的关键训练超参数可归纳如下(未特别说明时均为默认建议值),其设置在 YOLOv5--YOLOv12 的对比实验中保持一致,仅在模型版本确有差异的配置项上做最小化调整。

名称 作用(简述) 数值
epochs 最多训练轮数 120
patience 早停耐心 50
batch 总批大小 16
imgsz 网络输入分辨率 640
pretrained 预训练权重 true
optimizer 优化器 auto
lr0 初始学习率 0.01
lrf 最终学习率占比 0.01
momentum 动量系数 0.937
weight_decay 权重衰减 0.0005
warmup_epochs 预热轮数 3.0
mosaic Mosaic 强度/概率 1.0
close_mosaic 后期关闭 Mosaic 10

5. 实验与结果分析

5.1 实验设计与对比基线

本节实验以同一份舰船数据集(训练/验证/测试为 4022/1130/573,类别为 a、buoy、container、cruise、fish-b、warship)为唯一变量控制对象,核心目标是回答两个工程问题:其一,YOLOv5--YOLOv12 的"代际改动"在舰船场景是否能稳定转化为可观测的精度收益;其二,在 UI 需要实时交互的约束下,轻量模型(n 系列)与较大模型(s 系列)在精度--时延之间的折中点如何选择。训练侧默认采用 640 × 640 640\times640 640×640 输入与统一训练轮数(120 epochs),并尽量保持数据增强、学习率策略与早停规则一致,从而保证横向对比的可解释性;推理侧统计分解为预处理、网络前向与后处理三段耗时,便于在界面端做性能预算与卡顿定位。

为了覆盖"轻量实时"与"更高精度"两类典型部署诉求,本文分别构造了两组基线:n-type 组包括 YOLOv5nu、YOLOv6n、YOLOv7-tiny、YOLOv8n、YOLOv9t、YOLOv10n、YOLOv11n、YOLOv12n;s-type 组包括 YOLOv5su、YOLOv6s、YOLOv7、YOLOv8s、YOLOv9s、YOLOv10s、YOLOv11s、YOLOv12s。除特别说明外,各模型均在同一评测协议下输出 Precision、Recall、F1、mAP@0.5 与 mAP@0.5:0.95 等指标,并统计总时延 t total = t pre + t inf + t post t_{\text{total}}=t_{\text{pre}}+t_{\text{inf}}+t_{\text{post}} ttotal=tpre+tinf+tpost 作为系统交互体验的直接度量。

5.2 度量指标与阈值选取

评价指标方面,本文采用检测任务的标准口径:Precision 衡量误检抑制能力,Recall 衡量漏检控制能力,二者的调和指标为
F 1 = 2 P R P + R . F1=\frac{2PR}{P+R}. F1=P+R2PR.

mAP@0.5 用于刻画较宽松 IoU 门限下的综合识别能力,而 mAP@0.5:0.95(步长 0.05)更强调定位质量与边界一致性,因此对密集停泊、长条形船体与遮挡场景更敏感。由于 UI 端需要用户可调的 Conf/IOU 参数,本节进一步使用 F1--Confidence 曲线与 PR 曲线为阈值设置提供依据:前者直接给出"全类整体最优 F1"对应的置信度阈值位置,后者用于观察各类目标在高召回区域的精度衰减形态,从而判断是应提高阈值以压制误检,还是降低阈值以补偿漏检。

从 F1--Confidence 曲线可以读出,整体最优点出现在 Conf≈0.304,对应全类别 F1 约为 0.76;这意味着在默认 NMS 设置不变时,系统将 UI 的默认置信度设为 0.30 左右通常更接近"精度--召回"的均衡点,而将阈值进一步上调会快速牺牲召回,导致远距离小船与模糊目标更易漏检。与此同时,PR 曲线揭示了显著的类别差异:buoy 与 cruise 的 AP 值分别约为 0.961 与 0.965,fish-b 约为 0.927,warship 约为 0.722,而 a 与 container 分别约为 0.586 与 0.548;这一现象通常可由两方面解释,一方面 buoy、cruise 的外观与背景区分度较高,另一方面 a 与 container 更容易与岸线结构、海面纹理或相近船型发生外观混淆,且在尺度变化与遮挡下其边界定位不稳定,从而在高召回区域出现更明显的精度塌陷。因此,在业务偏"巡检搜船"的场景中可维持 Conf≈0.30 并适度下调以提高召回,而在"告警联动"的场景中更建议提高 Conf 并结合 IOU 抑制重复框,以将误警控制在可接受范围内。

5.3 结果对比与讨论

首先给出 n-type 组的综合对比结果。表 5-1 中可以看到,YOLOv11n 在 F1(0.771)与 mAP50(0.795)上同时取得组内最优,而 YOLOv8n 具有最低的总时延(10.17 ms),在交互式 UI 场景中更容易保证实时刷新;YOLOv6n 的 Recall 最高(0.830),但 Precision 相对偏低(0.712),体现为"更激进的召回策略"带来的误检上升;YOLOv10n 的 Precision 最高(0.766)但 Recall 偏低(0.749),更接近"谨慎输出"的风格;YOLOv7-tiny 在本数据集上出现了明显的精度与时延双重劣化(mAP50 仅 0.724,且总时延 21.08 ms),说明在当前实现与推理链路下其收益不足以抵消代价。另一个值得注意的现象是 YOLOv9t 的 mAP50-95 达到组内最高(0.575),但推理时延较大(19.67 ms),这更像是"更强定位质量"与"更高算力开销"的典型交换。

表 5-1 n-type 模型综合对比(同一数据集与评测协议)

Model Params(M) FLOPs(G) TotalTime(ms) Precision Recall F1 Score mAP50 mAP50-95
YOLOv5nu 2.600 7.700 10.940 0.759 0.768 0.764 0.783 0.552
YOLOv6n 4.300 11.100 10.340 0.712 0.830 0.767 0.787 0.560
YOLOv7-tiny 6.200 13.800 21.080 0.657 0.784 0.715 0.724 0.451
YOLOv8n 3.200 8.700 10.170 0.754 0.782 0.768 0.786 0.560
YOLOv9t 2.000 7.700 19.670 0.741 0.781 0.760 0.784 0.575
YOLOv10n 2.300 6.700 13.950 0.766 0.749 0.758 0.787 0.562
YOLOv11n 2.600 6.500 12.970 0.748 0.795 0.771 0.795 0.572
YOLOv12n 2.600 6.500 15.750 0.738 0.783 0.760 0.788 0.568

从可视化对比图进一步观察(F1 与 mAP50 双柱状图),n-type 组的整体差距并不夸张,除 YOLOv7-tiny 明显落后外,其余模型的 mAP50 大多分布在 0.78 左右的窄区间内;这表明在当前数据规模与类别难度下,"代际升级"更常体现为稳定性与局部类别的边界改善,而非大幅跃迁。工程含义是:若以 UI 实时性为第一约束,YOLOv8n 属于较稳的默认选择;若以总体精度为第一约束,YOLOv11n 更接近"精度上限";若需要更强定位质量并能容忍时延,YOLOv9t 的 mAP50-95 优势更突出。

在训练动态层面,n-type 的 mAP50 随 epoch 的变化曲线显示各模型在前 20 个 epoch 内快速上升,随后进入缓慢爬升并在后期趋于平台;YOLOv11n/YOLOv12n 在中后期更稳定地贴近上包络线,这与其最终 mAP50 的领先相一致。该现象说明:在统一训练协议下,后期性能差距更多来自特征表征与回归质量的细小增益,而非收敛速度差异。

其次看 s-type 组(表 5-2)。与 n-type 相比,s-type 的参数量与 FLOPs 明显上升,但在本数据集上的精度提升并非线性增长:YOLOv6s 在 mAP50(0.798)与 mAP50-95(0.573)上取得组内最优,YOLOv11s 则在 F1(0.776)与 Recall(0.832)上表现最好;然而最小总时延仍由 YOLOv8s 给出(11.39 ms),其 mAP50 为 0.781,体现出较优的实时可用性。与 n-type 类似,YOLOv7 在本组中同样出现精度与时延的双重劣势(mAP50 0.733、总时延 29.52 ms),说明其在当前工程链路与数据分布下并不适合作为默认部署模型。

表 5-2 s-type 模型综合对比(同一数据集与评测协议)

Model Params(M) FLOPs(G) TotalTime(ms) Precision Recall F1 Score mAP50 mAP50-95
YOLOv5su 9.100 24.000 12.240 0.770 0.770 0.770 0.787 0.557
YOLOv6s 17.200 44.200 12.260 0.730 0.825 0.774 0.798 0.573
YOLOv7 36.900 104.700 29.520 0.668 0.760 0.711 0.733 0.476
YOLOv8s 11.200 28.600 11.390 0.737 0.781 0.758 0.781 0.556
YOLOv9s 7.200 26.700 22.170 0.732 0.814 0.771 0.780 0.569
YOLOv10s 7.200 21.600 14.190 0.715 0.787 0.749 0.769 0.559
YOLOv11s 9.400 21.500 13.470 0.728 0.832 0.776 0.788 0.564
YOLOv12s 9.300 21.400 16.740 0.726 0.800 0.761 0.785 0.567

从柱状对比图与训练曲线可见,s-type 组的 mAP50 同样集中在 0.77--0.80 区间,整体差距更像是"边界细节的渐进改善"。在部署决策上,若以 mAP50-95(定位质量)为重点且时延预算允许,YOLOv6s 更具优势;若业务更强调召回与综合 F1,YOLOv11s 更接近最优;若需要更顺滑的实时交互体验,YOLOv8s 的时延优势更明显。

综合上述实验,老思在系统默认配置上更倾向于采用"n 型模型优先保证交互流畅,再提供一键切换到更高精度模型"的策略:例如默认加载 YOLOv8n 以获得更低时延,并在需要更高精度或更稳健 PR 上包络时切换至 YOLOv11n;若部署侧允许更高算力且关注定位质量,可进一步提供 YOLOv6s 或 YOLOv11s 作为"高精度档"。这种"多模型可切换"的工程设计与 UI 的 Conf/IOU 可调机制结合后,能够更贴近真实业务在不同海况、不同距离与不同告警容忍度下的动态需求。


6. 系统设计与实现

6.1 系统设计思路

本系统以"界面驱动、检测内核解耦、结果可追溯"为总体设计原则:PySide6 负责交互与状态管理,Detector 负责模型加载、推理与后处理,SQLite 负责用户体系、配置与检测记录的持久化。老思在工程结构上采用典型的分层组合方式:MainWindow 作为控制中枢统一调度输入源、推理线程与 UI 状态;Ui_MainWindow 仅承载控件布局与样式配置,避免界面逻辑与业务逻辑互相缠绕;Detector 则以"输入张量化---推理---NMS---结果规约"为稳定接口对接不同 YOLO 族权重,从而保证 YOLOv5 到 YOLOv12 的切换不会引起界面层的连锁修改。

在多源输入方面,系统把摄像头、视频、图片与文件夹统一抽象为"帧流(frame stream)",将每一次推理视作对一帧(或一张图)的确定性处理。对视频与摄像头,系统提供播放控制、帧率节流与暂停恢复;对文件夹批处理,系统按序遍历并在 UI 中以列表或进度条反馈处理进度。所有输入在进入 Detector 前统一执行 Letterbox 等比例缩放与归一化,以保证不同分辨率与纵横比的图像在固定输入尺度下具有一致的几何语义。

在跨层通信上,系统严格依赖 Qt 信号槽完成"后台推理线程 → 主线程渲染"的数据传递,避免耗时推理阻塞 GUI 事件循环。推理结果在控制层被规约为统一数据结构(检测框、类别、置信度与统计),再由界面层负责绘框、表格刷新与状态栏提示;同时可选择写入 SQLite 形成可追溯的历史记录,并支持按用户维度隔离保存路径、主题配置与阈值参数,使系统既能用于实时监控,也能用于离线评测与报告复现。

图 系统流程图

图注:系统从初始化到多源输入,完成预处理、推理与界面联动,并通过交互形成闭环。

6.2 登录与账户管理

登录与账户管理模块以"账号隔离 + 配置持久化 + 与检测主流程无缝衔接"为设计目标:系统启动后进入登录界面,用户可选择注册或登录,注册过程将账号信息写入 SQLite 并回到登录入口;登录时对输入凭据进行数据库查询与校验,通过后加载该用户的主题、阈值、历史检测记录与导出目录等个性化配置,并直接进入主界面开始多源检测。进入系统后,用户可在资料管理中更新头像与密码,相关变更即时写入数据库以保证跨次启动一致;当用户注销或切换账号时,系统清理会话状态并返回登录界面,从而确保不同用户的检测结果、界面偏好与配置参数在同一台设备上仍保持严格隔离,同时又不会破坏主检测链路的实时交互体验。


7. 下载链接

若您想获得博文中涉及的实现完整全部资源文件 (包括测试图片、视频,py, UI文件,训练数据集、训练代码、界面代码等),这里见可参考博客与视频,已将所有涉及的文件同时打包到里面,点击即可运行,完整文件截图如下:

完整资源中包含数据集及训练代码,环境配置与界面中文字、图片、logo等的修改方法请见视频:➷➷➷

详细介绍文档博客: YOLOv5至YOLOv12升级:舰船检测与识别系统的设计与实现(完整代码+界面+数据集项目)

环境配置博客教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境配置教程

或者环境配置视频教程:(1)Pycharm软件安装教程;(2)Anaconda软件安装教程;(3)Python环境依赖配置教程

数据集标注教程(如需自行标注数据):数据标注合集


8. 参考文献(GB/T 7714)

1 黄泽贤, 吴凡路, 傅瑶, 等. 基于深度学习的遥感图像舰船目标检测算法综述[J]. 光学精密工程, 2023, 31(15): 2295-2318. DOI:10.37188/OPE.20233115.2295.
2 SHAO Z, WU W, WANG Z, et al. SeaShips: A Large-Scale Precisely Annotated Dataset for Ship Detection[J]. IEEE Transactions on Multimedia, 2018, 20(10): 2593-2604. DOI:10.1109/TMM.2018.2865686.
3 HUANG L, LIU B, LI B, et al. OpenSARShip: A Dataset Dedicated to Sentinel-1 Ship Interpretation[J]. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2018, 11(1): 195-208. DOI:10.1109/JSTARS.2017.2755672.
4 王彦情, 马雷, 田原. 光学遥感图像舰船目标检测与识别综述[J]. 自动化学报, 2011, 37(9): 1029-1039. DOI:10.3724/SP.J.1004.2011.01029.

5\] REN S, HE K, GIRSHICK R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks\[J\]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031. \[6\] REDMON J, DIVVALA S, GIRSHICK R, et al. You Only Look Once: Unified, Real-Time Object Detection\[C\]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, USA: IEEE, 2016: 779-788. DOI:10.1109/CVPR.2016.91. \[7\] XIA G S, BAI X, DING J, et al. DOTA: A Large-Scale Dataset for Object Detection in Aerial Images\[C\]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Salt Lake City, USA: IEEE, 2018: 3974-3983. \[8\] DING J, XUE N, LONG Y, et al. RoI Transformer: Learning Rotated Region of Interest for Oriented Object Detection in Aerial Images\[C\]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). Long Beach, USA: IEEE, 2019: 2849-2858. \[9\] HAN J, DING J, LI J, et al. Align Deep Features for Oriented Object Detection\[J\]. IEEE Transactions on Geoscience and Remote Sensing, 2022, 60: 1-11. DOI:10.1109/TGRS.2021.3062048. \[10\] 叶建腾, 卢文杰, 邓琳. 基于密集 RFB 和 LSTM 的遥感图像舰船目标检测\[J\]. 遥感学报, 2020, 24(5): 599-612. DOI:10.11834/jrs.20190112. \[11\] CARION N, MASSA F, SYNNAEVE G, et al. End-to-End Object Detection with Transformers\[C\]//Computer Vision -- ECCV 2020. Cham: Springer, 2020: 213-229. \[12\] SUN X, WANG P, YAN Z, et al. FAIR1M: A Benchmark Dataset for Fine-grained Object Recognition in High-Resolution Remote Sensing Imagery\[J\]. ISPRS Journal of Photogrammetry and Remote Sensing, 2022, 184: 116-130. DOI:10.1016/j.isprsjprs.2021.12.004. \[13\] ZHANG Y, CHEN W, LI S, et al. YOLO-Ships: Lightweight Ship Object Detection Based on Feature Enhancement\[J\]. Journal of Visual Communication and Image Representation, 2024, 102: 104170. DOI:10.1016/j.jvcir.2024.104170. \[14\] WANG Z, HAN D, HAN B, et al. SVN-YOLO: A High-Precision Ship Detection Algorithm Based on Improved YOLOv10n\[J\]. The Journal of Supercomputing, 2025, 81: 1294. DOI:10.1007/s11227-025-07743-4. \[15\] TIAN Y, YE Q, DOERMANN D. YOLOv12: Attention-Centric Real-Time Object Detectors\[EB/OL\]. (2025-02-18)\[2026-02-14\]. arXiv:2502.12524.

相关推荐
byzy2 小时前
【论文笔记】RC-GeoCP: Geometric Consensus for Radar-Camera Collaborative Perception
论文阅读·深度学习·计算机视觉·自动驾驶
AI医影跨模态组学2 小时前
Eur Radiol(IF=4.7)山西医科大学第一医院核磁影像科王效春等团队:基于Transformer增强型卷积神经网络的多中心MRI评估膀胱癌肌层浸润
人工智能·深度学习·论文·transformer·医学·医学影像
久菜盒子工作室3 小时前
面试经验|AI产品经理|深度学习知识
人工智能·深度学习·产品经理
殷忆枫3 小时前
AI学习笔记三十六:基于 YOLOv8 与 Qwen3.5 的多模态视频行为分析系统
笔记·学习·yolo
深度学习lover3 小时前
<数据集>yolo 葡萄叶片病害识别<目标检测>
人工智能·python·yolo·目标检测·计算机视觉·葡萄叶片病害识别
思绪无限3 小时前
YOLOv5至YOLOv12升级:稻田虫害检测系统的设计与实现(完整代码+界面+数据集项目)
深度学习·yolo·目标检测·yolov12·yolo全家桶·稻田虫害检测
前网易架构师-高司机4 小时前
带标注的起重机手势信号识别数据集,识别率97.9%,8848张图,支持yolo,coco json,voc xml,文末有模型训练代码
yolo·数据集·手势·起重机·吊车
思绪无限4 小时前
YOLOv5至YOLOv12升级:番茄成熟度识别系统的设计与实现(完整代码+界面+数据集项目)
深度学习·yolo·目标检测·yolov12·yolo全家桶·番茄成熟度识别
长沙红胖子Qt4 小时前
深度学习开发笔记(一):跨平台纯C++训练和推理框架LibTorch介绍、开发环境搭建和Demo
pytorch·深度学习·c++深度学习·纯c++训练