当前位置: 首页 > news >正文

YOLO系列改进

yolo核心思想:把目标检测转变成一个回归问题。将整个图像作为网络的输入,仅仅经过一个神经网络,得到边界框的位置及其所属的类别。

YOLOv1 CVPR2016
请添加图片描述

输出7×7×30的张量表示2个框的5个参数和20个种类。leaky ReLU,leaky并不会让负数直接为0,而是乘以一个很小的系数(恒定),保留负数输出,但衰减负数输出。y=x,x>0;0.1x,otherwise;分而治之;端到端训练,损失函数的传播贯穿整个网络。第一个全连接层,把输入图像的所有卷积特征整合到一起;第二个全连接层,将所有神经元得到的卷积特征进行维度转换,最后得到与目标检测网络输出维度相同的维度。

YOLOv2 CVPR2017

(1)yolov2借鉴了Faster R-CNN的思想,引入Anchor机制,并利用K-means聚类的方法在训练集中聚类计算出更好的Anchor模板,大大提高了算法的召回率;
(2)同时结合图像细粒度特征,将浅层特征与深层特征相连,有助于对小尺寸目标的检测。

特点:折中,可以自己平衡速度和准确率

改进:batch normalize(BN):加速收敛,正则化模型,可以去掉dropout,map提升2%

Convolutional with Anchor Boxs:相比于v1每张图预测98个预测框,anchor boxes可以预测1000个

Dimension Clusters:anchor遇到的第一个问题 需要动手设定模板框prior 使用k-means聚类折中取得k=5

Direct location prediction:第二个问题 box预测(x,y)位置时,模型不稳定。直接预测对于网格单元的相对位置。w和h通过bbox prior调整 。模型提高5%

Fine-Grained Features:添加passthough层,从26×26的分辨率得到特征

multi-scale training:用多种分辨率的输入图片进行训练

darknet-19:backbone使用darknet-19搭配BN加速收敛

YOLOv3结构框图
请添加图片描述

CBL:最小组件Conv+BN+Leaky Relu激活函数组成

Res unit:借鉴Resnet残差结构,网络更深

ResX:CBL+n个Res unit,CBL用来下采样 608–>304–>152–>76–>38–>19 1/32

Concat:张量拼接;

add:张量相加,纬度不变=shortcut

Backbone:每个ResX包含1+2*X个卷积层,Darknet=1+(1+2×2)+(1+2×8)+(1+2×8)+(1+2×4)+FC全连接层(不包含)=53

改进点:predictions across scales:输出三种不同尺度的 feature map。深度255原因:coco80个类别,每个单元需要3个box,每个box还需要五个位置参数,3×(5+80)=255

v3对bbox预测时采用logistic regression可以去掉不必要anchor。

YOLOv4结构框图

请添加图片描述

组件

CBM:最小组件Conv+Bn+Mish激活函数

CBL:Conv+Bn+Leaky_relu

Res_unit:Resnet网络中的残差结构

CSPX:借鉴CSPNet网络,由卷积层和X个Res_unit模块Concate组成

SPP:采用1×1,5×5,9×9,13×13的最大池化方式,多尺度融合。通过最大池化将不同尺寸的输入图像变得尺寸一致,使得输入图像不再限制于固定尺寸,增大感受野。

Backbone:每个CSPX包含5+2*X个卷积层,1+(5+2×1)+(5+2×2)+(5+2×8)+(5+2×8)+(5+2×4)=72

创新点

输入端:Mosaic数据增强、cmBN、SAT自对抗训练

BackBone主干网络:CSPDarknet53、Mish激活函数、Dropblock缓解过拟合

Neck:SPP模块(有效的增加主干特征的接收范围,显著的分离了最重要的上下文特征)、FPN+PAN结构

Prediction:训练时的损失函数CIOU_Loss、预测框筛选的nms变为DIOU_nms

**IOU_Loss:**主要考虑检测框和目标框重叠面积。

**GIOU_Loss:**在IOU的基础上,解决边界框不重合时的问题。

**DIOU_Loss:**在IOU和GIOU的基础上,考虑边界框中心点距离的信息。

**CIOU_Loss:**YOLOv4采用CIOU_Loss,在DIOU的基础上,考虑边界框宽高比的尺度信息。

Mosaic数剧增强:随机缩放、随机裁剪、随机排布的方式进行拼接。均衡小中大三类目标

BackBone:608->304->152->76->38->19 CSPNet将基础层的特征映射划分为两部分,通过跨阶段层次结构将其合并,减少计算量保证准确率。

FPN层自顶向下传达强语义特征,而特征金字塔则自底向上传达强定位特征

深度学习backbone汇总

非轻量化:

LeNet5:(1998)
AlexNet:(2012)
VGG:(2014)
GoogLeNet(InceptionNet)系列:Inception-v1(GoogleNet): (2015)、Inception-v2 (2015,BN-inception)、Inception-v3 (2015)、Inception-v4: (2017)、Inception-resnet-v2: (2017)
Resnet: (2016)
ResNet变种:ResNeXt (2016)、ResNeSt(2020)、Res2Net(2019)、DenseNet (2017)
DPNet:(2017)
NasNet:(2018)
SENet及其变体SKNet:SENet(2017)、SKNet(2019)
EfficientNet 系列:EfficientNet-V1(2019)、EfficientNet-V2(2021)
Darknet系列:Darknet-19 (2016, YOLO v2 的 backbone)、Darknet-53 (2018, YOLOv3的 backbone)
DLA (2018, Deep Layer Aggregation)

轻量化:

SqueezeNet:(2016)
MobileNet-v1:(2017)
XCeption:(2017, 极致的 Inception)
MobileNet V2:(2018)
ShuffleNet-v1:(2018)
ShuffleNet-v2:(2018)
MnasNet:(2019)
MobileNet V3 (2019)
CondenseNet(2017)
ESPNet系列:ESPNet (2018)、ESPNetv2 (2018)
ChannelNets
PeleeNet
IGC系列:IGCV1、IGCV2、IGCV3
FBNet系列:FBNet、FBNetV2、FBNetV3
GhostNet
WeightNet
MicroNet

ViT(Vision Transformer )Backbone结构

ViT-H/14 和 ViT-L/16(2020)(Vision Transformer,ViT)
Swin Transformer(2021)
PVT(2021, Pyramid Vision Transformer)
MPViT (CVPR 2022,Multi-path Vision Transformer, 多路径 Vision Transformer)
EdgeViTs (CVPR 2022,轻量级视觉Transformer)

(CNNs+Transformer / Attention)Backbone结构

CoAtNet(2021)

BoTNet(2021)

YOLOv5结构框图

请添加图片描述

输入端:Mosaic数据增强(随机缩放随机裁剪随机排布的方式进行拼接)、自适应锚框计算(初始设定长宽的锚框)、自适应图片缩放 trick(datasets.py的letterbox函数)对原始图像添加最少的黑边减少冗余 结果显著,训练未采用,预测采用

Backbone:Focus结构:切片操作,将608×608×3–>304×304×12

CSP结构:YOLOv4借鉴CSPNet网络,YOLOv5的CSP2应用在Neck上加强网络特征融合能力

CSP是由n和gd控制的,n = n_ = max(round(n * gd), 1) if n > 1 else n

Neck:FPN+PAN结构

Prediction:GIOU_Loss DIOU_nms对重叠框有所改进

YOLOv7

请添加图片描述

改进点:

RepVGG(2021):RepVGG无论是在精度还是速度上都已经超过了 ResNet、EffcientNet 以及 ResNeXt 等网络。采用结构重参数化,(1)训练时,使用ResNet-style的多分支模型(特点:增加模型的表征能力)(2)测试时,转化成VGG-style的单线路模型(特点:速度更快、更省内存并且更加的灵活)

将BN和3x3卷积进行融合,转换成3x3卷积:将BN公式拆解为 一元二次方程(y1 = k1* x1 + b1);然后与损失函数(y2 = k2* x2 + b2)进行合并得到新的方程(y3 = k3* x3 + b3)。

多分支融合:将1x1卷积 + BN全部转换为3x3卷积,然后与3x3卷积进行合并,得到一个3x3卷积。

YOLOv8
请添加图片描述

Backbone:轻量化C2f替换了C3

PAN-FPN:删除YOLOv5上采样阶段中的卷积结构,C2f替换了C3

Decoupled—Head

Anchor-Free

损失函数:VFL Loss作为分类损失,DFL Loss+CIOU Loss

样本匹配:Task-Aligned Assigner

Backbone:轻量化C2f替换了C3

PAN-FPN:删除YOLOv5上采样阶段中的卷积结构,C2f替换了C3

Decoupled—Head

Anchor-Free

损失函数:VFL Loss作为分类损失,DFL Loss+CIOU Loss

样本匹配:Task-Aligned Assigner

相关文章:

YOLO系列改进

yolo核心思想:把目标检测转变成一个回归问题。将整个图像作为网络的输入,仅仅经过一个神经网络,得到边界框的位置及其所属的类别。 YOLOv1 CVPR2016 输出7730的张量表示2个框的5个参数和20个种类。leaky ReLU,leaky并不会让负数…...

cuda与cudnn下载(tensorflow-gpu)

目录 前言 正文 前言 !!!tensorflow-gpu的版本要与cuda与cudnn想对应。这点十分重要!推荐下载较新的。即tensorflow-gpu2.60及以上,cuda11.x及以上,cudnn8.x及以上。 所以,下载之前先检查好…...

git 多分支实现上传文件但避免冲突检测

文章目录 背景实现步骤 背景 对于某些通过命令生成的配置文件(如 TypeScript 类型文件等) 实现步骤 1...

聊聊 golang 中 channel

1、引言 Do not communicate by sharing memory; instead, share memory by communicating Golang 的并发哲学是“不要通过共享内存进行通信,而要通过通信来共享内存”,提倡通过 channel 进行 goroutine 之间的数据传递和同步,而不是通过共享…...

SK Hynix 3D DRAM良率突破56.1%,开启存储新时代

根据韩国财经媒体Business Korea独家报道:在刚刚结束的VLSI 2024国际研讨会上,韩国半导体巨头SK Hynix公布了一项振奋人心的进展:其五层堆叠3D DRAM的制造良率已达到56.1%。此成果标志着3D DRAM技术在商业化道路上迈出了坚实的一步&#xff0…...

如何封装自动化测试框架?

封装自动化测试框架,测试人员不用关注框架的底层实现,根据指定的规则进行测试用例的创建、执行即可,这样就降低了自动化测试门槛,能解放出更多的人力去做更深入的测试工作。 本篇文章就来介绍下,如何封装自动化测试框…...

基于Java的在线编程考试系统【附源码】

毕业设计(论文) 题目:基于 二级学院: 现代技术学院 专业(方向): 计算机应用技术 班 级: 计科B2015 学 生: 指导教师: 2024年1月 29 日 本科毕业论文(设计)学术诚信声明 本人郑重…...

Beautiful Soup的使用

1、Beautiful Soup简介 Beautiful Soup是一个Python的一个HTML或XML的解析库,我们用它可以方便地从网页中提取数据。 Beautiful Soup 提供一些简单的、Python 式的函数来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓…...

633. 平方数之和(中等)

633. 平方数之和 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java内存溢出溢出代码正确代码与截图 1. 题目描述 题目中转:633. 平方数之和 2.详细题解 本题是167. 两数之和 II - 输入有序数组(中等)题目的变型,由两数之和变…...

GIT回滚

1. 使用 git revert git revert 命令会创建一个新的提交,这个提交会撤销指定提交的更改。这通常用于公共分支(如 main 或 master),因为它不会重写历史。 git revert HEAD # 撤销最近的提交 # 或者指定一个特定的提交哈希值 …...

BEVM基于OP-Stack发布首个以WBTC为GAS连接以太坊和比特币生态的中继链

为了更好的连接以太坊和比特币生态,BEVM团队正在基于OPtimism的OP Stack来构建一个以WBTC为GAS兼容OP-Rollup的中继链,这条中继链将作为一种完全去中心化的中间层,把以太坊上的主流资产(WBTC/ ETH/USDC/USDT等)引入到BEVM网络。 不仅如此&am…...

【vuejs】 $on、$once、$off、$emit 事件监听方法详解以及项目实战

1. Vue实例方法概述 1.1 vm.$on vm.$on是Vue实例用来监听自定义事件的方法。它允许开发者在Vue实例上注册事件监听器,当事件被触发时,指定的回调函数会被执行。 事件监听:vm.$on允许开发者绑定一个或多个事件到Vue实例上,并且可…...

如何下载植物大战僵尸杂交版,最全攻略来了

《植物大战僵尸杂交版》由热爱原版游戏的B站UP主“潜艇伟伟迷”独立开发,带来了创新的游戏体验。如果你是策略游戏的爱好者,下面这份全面的下载和游玩攻略将是你的理想选择。 游戏亮点: 杂交植物系统:结合不同植物特性&#xff0c…...

小公司全栈是归宿吗?

在软件开发领域,特别是在小公司或初创公司中,全栈开发者的角色确实相对普遍和重要。然而,说“全栈是归宿”可能过于绝对,因为每个开发者的职业路径和兴趣点都是不同的。 以下是关于全栈开发在小公司的一些考虑: 需求…...

对https://registry.npm.taobao.org/tyarn的请求失败,原因:证书过期

今天安装yarn时,报错如下: request to https://registry.npm.taobao.org/yarn failed, reason: certificate has expired 原来淘宝镜像过期了,需要重新搞一下 记录一下解决过程: 1.查看当前npm配置 npm config list 2.清…...

Redisson-Lock-加锁原理

归档 GitHub: Redisson-Lock-加锁原理 Unit-Test RedissonLockTest 说明 源码类:RedissonLock // 加锁入口 Override public void lock() { lock(-1, null, false); }/*** 加锁实现 */ private void lock(long leaseTime, TimeUnit unit, boolean interruptib…...

deepspeed win11 安装

目录 git地址: aio报错: 编译 报错 ops已存在: 修改拷贝代码: git地址: Bug Report: Issues Building DeepSpeed on Windows Issue #5679 microsoft/DeepSpeed GitHub aio报错: setup.py 配置变量 os.environ[DISTUTILS_USE_SDK]=1 os.environ[DS_BUILD_AIO]=…...

Python列表函数append()和extend()的区别

Python列表提供了两个容易混淆的追加函数:append()和extend()。它们之间的使用区别如下: list.append(obj):对象进栈。将一个对象作为整体追加到列表最后,返回Nonelist.extend(iter):可迭代对象的元素逐个进栈。将一个…...

Spring AI 实现调用openAi 多模态大模型

什么是多模态? 多模态(Multimodal)指的是数据或信息的多种表现形式。在人工智能领域,我们经常会听到这个词,尤其是在近期大型模型(如GPT-4)开始支持多模态之后。 模态:模态是指数据的一种形式,例如文本、图像、音频等。每一种形式都是一种模态。多模态:多模态就是将…...

《妃梦千年》第十二章:层层迷雾

第十二章:层层迷雾 苏珊遭遇险境的消息让林清婉感到紧张。她知道,宫中有些人对她的势力感到威胁,试图通过伤害苏珊来打击她。林清婉决定采取更谨慎的措施保护自己和苏珊,同时查明幕后黑手的身份。 几天后,林清婉收到…...

FPGA高速收发器CDR模块深度解析:从NRZ码中“捞出”时钟的RXOUTCLKPMA是怎么工作的?

FPGA高速收发器CDR模块技术探秘:解码NRZ数据中的时钟玄机 在高速数字通信系统中,时钟数据恢复(CDR)技术如同一位技艺精湛的侦探,能够从看似杂乱无章的NRZ(非归零码)数据流中,精准地&…...

YOLOX核心创新点深度剖析:从Anchor-Based到Anchor-Free的演进之路

1. YOLOX的诞生背景与技术挑战 记得第一次在GitHub上看到YOLOX开源项目时,我正在调试YOLOv5的检测头。当时业内普遍认为YOLOv5已经是目标检测的"天花板",但YOLOX团队却用实验数据证明:通过架构层面的创新,模型性能还能再…...

AI记忆系统健康管理:行为数据驱动的OpenClaw记忆污染解决方案

1. 项目概述:为AI记忆系统装上“听诊器”如果你正在用OpenClaw,或者任何类似的AI智能体开发框架,那你肯定对它的记忆系统又爱又恨。爱的是,它能记住你项目里的关键代码片段、常用指令,下次对话时能直接调出来用&#x…...

基于MCP协议与SearXNG构建AI智能体私有化搜索接口

1. 项目概述:一个为AI智能体打造的“搜索引擎接口”最近在折腾AI智能体(Agent)开发的朋友,可能都听说过MCP(Model Context Protocol)这个协议。简单来说,它就像给AI智能体装上了一套标准化的“插…...

2026年DLL修复工具深度测评:免费解决DLL缺失的可行方案

电脑运行办公软件、打开大型游戏时,经常弹出XXX.dll 缺失、无法找到入口点、无法加载动态链接库等报错窗口?相信绝大多数 Windows 用户都遇到过这种糟心情况:好好的程序突然打不开,游戏双击没任何反应,重装软件不起作用…...

ClawPaw:将Android手机转化为AI智能体的可编程执行节点

1. 项目概述:ClawPaw,一个将手机变成AI智能体的“手”与“眼” 如果你正在探索AI智能体(Agent)如何与现实世界交互,或者想让你的自动化脚本、个人助手能直接操作你的手机,那么ClawPaw这个项目绝对值得你花…...

用Java+MySQL从零搭建一个鲜花商城,我踩过的这些坑你别再踩了(附完整源码)

用JavaMySQL从零搭建一个鲜花商城,我踩过的这些坑你别再踩了(附完整源码) 去年毕业设计选题时,我毫不犹豫选择了"鲜花商城系统"这个看似简单的项目。本以为用JavaMySQL组合开发一个基础电商平台是水到渠成的事&#xff…...

ARM错误恢复中断机制与ERRERICR2寄存器详解

1. ARM错误恢复中断机制概述在ARM架构的可靠性、可用性和可维护性(RAS)系统中,错误恢复中断是实现硬件容错的关键机制。当处理器检测到可恢复的错误条件时,通过这套机制能够快速通知系统进行错误处理,而ERRERICR2寄存器…...

终极指南:如何永久免费使用Cursor Pro AI编程神器

终极指南:如何永久免费使用Cursor Pro AI编程神器 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your trial r…...

汽车资讯网站|基于springboot+vue的汽车资讯网站(源码+数据库+文档)

汽车资讯网站 目录 基于springbootvue的汽车资讯网站 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博主介绍:✌️大厂码农|毕设布道师,阿里云开…...