关键词:
SPD-Conv源于2022年一篇专门针对于小目标和低分辨率图像研究提出来的新技术,可以用于目标检测任务,能够一定程度提升模型的检测效果,今天正好有时间就想基于SPD融合yolov5s模型来开发路面裂痕裂缝检测模型,同时与原生的yolov5s模型进行对比分析,首先看下效果图。
接下来看下数据情况。
标注文件如下:
原生yolov5s模型文件如下:
# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
# Parameters
nc: 1 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple
anchors:
- [10,13, 16,30, 33,23] # P3/8
- [30,61, 62,45, 59,119] # P4/16
- [116,90, 156,198, 373,326] # P5/32
# YOLOv5 v6.0 backbone
backbone:
# [from, number, module, args]
[[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2
[-1, 1, Conv, [128, 3, 2]], # 1-P2/4
[-1, 3, C3, [128]],
[-1, 1, Conv, [256, 3, 2]], # 3-P3/8
[-1, 6, C3, [256]],
[-1, 1, Conv, [512, 3, 2]], # 5-P4/16
[-1, 9, C3, [512]],
[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
[-1, 3, C3, [1024]],
[-1, 1, SPPF, [1024, 5]], # 9
]
# YOLOv5 v6.0 head
head:
[[-1, 1, Conv, [512, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[[-1, 6], 1, Concat, [1]], # cat backbone P4
[-1, 3, C3, [512, False]], # 13
[-1, 1, Conv, [256, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[[-1, 4], 1, Concat, [1]], # cat backbone P3
[-1, 3, C3, [256, False]], # 17 (P3/8-small)
[-1, 1, Conv, [256, 3, 2]],
[[-1, 14], 1, Concat, [1]], # cat head P4
[-1, 3, C3, [512, False]], # 20 (P4/16-medium)
[-1, 1, Conv, [512, 3, 2]],
[[-1, 10], 1, Concat, [1]], # cat head P5
[-1, 3, C3, [1024, False]], # 23 (P5/32-large)
[[17, 20, 23], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
]
融合 SPD-Conv模型文件如下:
# Parameters
nc: 1 # number of classes
depth_multiple: 0.33 # model depth multiple
width_multiple: 0.50 # layer channel multiple
anchors:
- [10,13, 16,30, 33,23] # P3/8
- [30,61, 62,45, 59,119] # P4/16
- [116,90, 156,198, 373,326] # P5/32
backbone:
[[-1, 1, Focus, [64, 3]], # 0-P1/2
[-1, 1, Conv, [128, 3, 1]], # 1
[-1,1,space_to_depth,[1]], # 2 -P2/4
[-1, 3, C3, [128]], # 3
[-1, 1, Conv, [256, 3, 1]], # 4
[-1,1,space_to_depth,[1]], # 5 -P3/8
[-1, 6, C3, [256]], # 6
[-1, 1, Conv, [512, 3, 1]], # 7-P4/16
[-1,1,space_to_depth,[1]], # 8 -P4/16
[-1, 9, C3, [512]], # 9
[-1, 1, Conv, [1024, 3, 1]], # 10-P5/32
[-1,1,space_to_depth,[1]], # 11 -P5/32
[-1, 3, C3, [1024]], # 12
[-1, 1, SPPF, [1024, 5]], # 13
]
head:
[[-1, 1, Conv, [512, 1, 1]], # 14
[-1, 1, nn.Upsample, [None, 2, 'nearest']], # 15
[[-1, 9], 1, Concat, [1]], # 16
[-1, 3, C3, [512, False]], # 17
[-1, 1, Conv, [256, 1, 1]], # 18
[-1, 1, nn.Upsample, [None, 2, 'nearest']], # 19
[[-1, 6], 1, Concat, [1]], # 20
[-1, 3, C3, [256, False]], # 21
[-1, 1, Conv, [256, 3, 1]], # 22
[-1,1,space_to_depth,[1]], # 23
[[-1, 18], 1, Concat, [1]], # 24
[-1, 3, C3, [512, False]], # 25
[-1, 1, Conv, [512, 3, 1]], # 26
[-1,1,space_to_depth,[1]], # 27
[[-1, 14], 1, Concat, [1]], # 28
[-1, 3, C3, [1024, False]], # 29
[[21, 25, 29], 1, Detect, [nc, anchors]], # Detect(P3, P4, P5)
]
默认在相同的数据配置下,均执行100次epoch的迭代计算,接下来看下模型的实际表现。
yolov5s结果输出:
spd结果输出:
从训练结果输出上面来看:spd的结果要优于原生的YOLOv5s模型的,在训练时间上直观来看spd的训练时长达到了yolov5s的两倍,实际则不然,因为训练原生yolov5s的时候是独占显卡的,但是训练yolov5s-spd模型的时候因为有其他的模型训练在并行进行,所以时长消耗被拉长了。
接下来看下结果详情对比。
混淆矩阵:
F1值曲线:
PR曲线:
综合对比可以看到:SPD模型都是要优于原生模型的。
LABEL可视化:
batch计算实例如下:
最终基于专门的界面实现可视化推理,样例如下:
简单实践记录一下,关于spd的介绍在我之前的文章中有详细的介绍,本文主要是以应用为主就没有再赘述了。
芒果改进yolov7系列:首发改进特征融合网络bifpn结构,融合更多有效特征
改进yolov7-tiny系列:首发改进结合bifpn结构的特征融合网络,网络融合更多有效特征,高效涨点
yolov8改进策略:internimage与yolov8深度融合,动态卷积dcnv3大显神威
文章目录摘要“书生2.5”的应用1.图像模态任务性能2.图文跨模态任务性能核心技术改进方法结果对比摘要他来了!他来了!他带着氩弧焊的光芒过来了!作为CV的大模型,InternImage的光芒太强了。2023年3月14日: 查看详情
芒果改进yolov7系列:全网首发最新mobilevitv3系列最强改进版本|轻量化transformer视觉转换器,简单有效地融合了本地全局和输入特征,高效涨点
yoloair,一个基于pytorch的yolo工具箱...
点击机器学习算法与Python学习,选择加星标精彩内容不迷路机器之心编辑部YOLOAir算法代码库是一个基于PyTorch的YOLO系列目标检测开源工具箱。使用统一模型代码框架、统一应用方式、统一调参,该库包含大量的改进模块... 查看详情
目标检测tph-yolov5:基于transformer的改进yolov5的无人机目标检测(代码片段)
简介最近在使用VisDrone作为目标检测任务的数据集,看到了这个TPH-YOLOv5这个模型在VisDrone2021testset-challenge数据集上的检测效果排到了第五,mAP达到39.18%。于是开始阅读它的论文,并跑一跑的它的代码。论文地址:ht... 查看详情
改进yolov5系列:增加swin-transformer小目标检测头(代码片段)
...低改进难度,改进点包含【Backbone特征主干】、【Neck特征融合】、【Head检测头】、【注意力机制】、【IoU损失函数】、【NMS】、【Loss计算方式】、【自注意力机制】、【数据增强部分】、【标签分配策略】、【激活函数】等各个... 查看详情
yolov5yolov添加asff,网络改进优化(代码片段)
...正。文章目录前言一、ASFF来源及功能二、ASFF代码二、ASFF融合Yolov5网络三、构建使用ASFF的网络四、查看效果一、ASFF来源及功能ASFF:AdaptivelySpatialFeatureFusion(自适应空间特征融合)论文来源:LearningSpatialFusionforSingle-ShotObjectD... 查看详情
yolov3算法的详细说明
...详细说明YOLOv3没有太多的创新,主要是借鉴一些好的方案融合到YOLO里面。不过效果还是不错的,在保持速度优势的前提下,提升了预测精度,尤其是加强了对小物体的识别能力。本文主要讲v3的改进,由于是以v1和v2为基础,关... 查看详情
yolov5改进yolov7改进iou损失函数:yolov7涨点trick,改进添加siou损失函数eiou损失函数giou损失函数α-iou损失函数(代码片段)
...有文章都是全网首发原创改进内容🚀💡本篇文章基于YOLOv5、YOLOv7芒果改进YOLO系列:YOLOv7改进IoU损失函数:YOLOv7涨点Trick,改进添加SIoU损失函数、EIoU损失函数、GIoU损失函数、α-IoU损失函数、打造全新YOLOv7检测... 查看详情
目标检测论文解读复现no.25基于改进yolov5的地铁隧道附属设施与衬砌表观病害检测方法
前言此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新目标... 查看详情
yolov3算法的详细说明
YOLOv3没有太多的创新,主要是借鉴一些好的方案融合到YOLO里面。不过效果还是不错的,在保持速度优势的前提下,提升了预测精度,尤其是加强了对小物体的识别能力。本文主要讲v3的改进,由于是以v1和v2为基础,关于YOLO1和YOL... 查看详情
改进yolov5系列:8.增加acmix结构的修改,自注意力和卷积集成(代码片段)
...集改进🏆、创新点改进👇💡YOLOAir项目:基于YOLOv5代码框架,结合不同模块来构建不同的YOLO目标检测模型。🌟本项目包含大量的改进方式,降低改进难度,改进点包含Backbone、Neck、Head、注意力机制、IoU损失... 查看详情
全网独家首发|极致版yolov7改进大提升(推荐)网络配置文件仅24层!更清晰更方便更快的改进yolov7网络模型(代码片段)
...力,数层数都要数很久,还很容易出错,而且基于YOLOv5代码架构,Debug起来也确实比较费时,所以博主对YOLOv7网络配置进行了一个结构改造,一个🚀极致简洁直观的YOLOv7网络配置结构🚀(强烈... 查看详情
目标检测论文解读复现之八:基于yolov5s的滑雪人员检测研究
前言 此前出了目标改进算法专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读最新... 查看详情
yolov5改进技巧详解(代码片段)
本文以yolov5-7.0的代码进行讲解yolov5的改进技巧。1.使用yolov5-p6以及yolov5-p7模型yolov5官方实现的代码,提供了多种架构的模型配置文件,包括:yolov3-spp,yolov5-bifpn,yolov5-p6,yolov5-p7,yolov5-panet,yolov5-transformer如果想训练不同架构的模型,... 查看详情
yolov5/v7/v8改进最新主干系列biformer:顶会cvpr2023即插即用,小目标检测涨点必备,首发原创改进,基于动态查询感知的稀疏注意力机制构建高效金字塔网络架构,打造高精度检测器
芒果改进目录一览|改进yolov5yolov7等yolo模型全系列目录(代码片段)
芒果改进系列必读🔥博客内的改进文章,内均包含多种模型改进方式,均适用于YOLOv5系列以及YOLOv7系列改进(重点)!!!🔥专栏创新点教程均有不少同学反应和我说已经在自己的数据集上有... 查看详情