当前位置:   article > 正文

【超详细】基于YOLOv8改进1-Drone-YOLO复现

drone-yolo

主要内容如下:

1、论文Drone-YOLO解析
2、网络结构
3、论文实验结果
4、论文结构复现,包括:主干网络添加RepVGG、增强小目标检测头、三明治结构

运行环境:Python=3.8(要求>=3.8),torch1.12.0+cu113(要求>=1.8)

1 论文Drone-YOLO解析

论文Drone-YOLO
文章改进点主要为 3 个部分:
改进 1:在网络的主干部分,我们使用 RepVGG 结构的重新参数化卷积模块作为下采样层。
该模块优势:在训练过程中,这种卷积结构同时训练 3×3 和 1×1 卷积。在推理过程中,两个卷积核被合并为一个 3×3 卷积层。这种机制使网络能够在不影响推理速度或扩大模型大小的情况下学习更稳健的特征。

改进 2:三明治结构(作者提出),相比于原先的 concat 操作,多融合了一个上层大尺度特征(深度可分离卷积下采样),文章说增强了多尺度检测头收集待检测对象的空间定位信息的能力。

改进 3:加了一个小目标分支 160*160(P2)【论文涨点核心】;

总网络结构
总结构
三明治结构
在这里插入图片描述

2 论文实验结果

实验结果 1
如下图所示,在 yolov8-n 基础改进上,精度有所提升,参数变化不大,但是推理速度大幅增加(主要是三明治结构+P2 层的影响,REPVGG 不影响推理速度)。NVIDIA Tegra TX2:
在这里插入图片描述
实验结果 2(消融实验):
如下图,改进 3(加小目标分支)是提升最显著,为 6.8 个点,无人机小目标较多(P2 是 v8 自带配置);作者主要提出的三明治改进提升最小,为 0.2 个点(该改进类似 v6 的 BIC 操作,加入了深度可分离卷积);Repvgg 是常用的涨点操作,训练时通过增加模型复杂度来提升模型效果,为 0.6 个点;
在这里插入图片描述

3 结构复现

注意:这里只复现 YOLOv8s 版本。

3.1 加小目标层

yolov8 自带 yolov8-p2.yaml 文件,如下:
在这里插入图片描述

3.2 主干网络下采样换成 RepVGG 模块

步骤 1:复制 1 份 P2.yaml 文件改名为 yolov8-p2-repvgg.yaml
在这里插入图片描述
步骤 2:在 block.py 中添加 RepVGGBlock 模块
(具体实现代码见 ultralytics/ultralytics/nn/modules/block.py 尾部)

# Ultralytics YOLO 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Guff_9hys/article/detail/857404
推荐阅读
相关标签