Yolo系列各代网络结构分析(一)

Yolo系列

Yolo系列算是目标检测领域的常青树了,从v1到最近的v9,一直都在不断迭代,不断改进,但是细看其各代网络的发展,其实还是有很多一脉相承之处以及算法设计偏好的,总结主要为以下几个方面:

  • 网络结构
  • 预处理 & 后处理
  • 损失函数
  • anchor算法:如何将目标检测做成端到端一阶段算法的关键

Yolov1

网络结构

在这里插入图片描述
在这里插入图片描述

第一代yolo,DarkNet作为backbone,没有neck和backbone部分。

划分grid & anchor

yolov1提出了划分网格来实现目标检测的方案,将一张图片划分为 S × S S\times S S×S个网格,每个网格负责预测中心点在该网格内的目标。
在这里插入图片描述
anchor就类似于之前目标检测算法中的待检测框,之前的目标检测算法是使用region proposal来提取待检测框,yolo系列则是使用提取预设好的anchor。yolov1每个grid有5个anchor,在yolov1中称为boundingbox,yolov1中是直接预测bbox的长宽,并没有预设anchor的尺寸。

也有说每个grid预测两个boundingbox的,模型版本不同,参数也可能有变化,这不是重点,重点是这种思想。

正负样本处理 & 损失函数

对于每个grid来说,如果有ground truth的,与GT的IOU最大的框为正样本,其余为负样本,至于正负样本数量不平衡问题,令损失函数中正负样本的损失添加不同的系数。
yolov1把目标检测当作回归问题,所以其损失函数为:
在这里插入图片描述

预处理 & 后处理

Yolov1没有预处理,如果说resize也算预处理的话,那就有预处理。
Yolov1的后处理就是将输出的结果进行NMS非极大值抑制,剔除重复的框。

Yolov2

yolov2的主要贡献:

  • 在模型中添加了BN层【关于BN层可以看之前的blog:BN层详解】
  • 引入了Anchor机制,使用聚类算法来预设Anchor的尺寸,v1中直接预测bbox的宽高,v2中挑一个IOU最大的anchor作为bbox,预测bbox左上角角点的偏差,同时对anchor的宽高进行微调。

正负样本处理 & 损失函数

IOU小于阈值的,统统作为负样本,只考虑置信度误差,IOU最大的,同时考虑置信度误差,类别误差,以及定位误差。和v1一样,同样采用在正负样本前加上参数的方式来平衡正负样本误差。

Yolov3

在这里插入图片描述

又是比较经典的一代,主要贡献:
-网络结构基本定型,形成backbone+neck+head的结构,采用darknet-53作为backbone,同时生成三种特征图用于提取不同尺度上的特征。

正负样本 & 损失函数

不再使以grid来负责物体的预测,但是还用grid来分配anchor,只不过计算IOU的时候GT会对所有的anchor都计算IOU,找到一个IOU最大的作为正样本,对于IOU小于阈值的作为负样本,其余的都忽略不算loss。loss的计算依旧是使用正负样本分别添加系数,负样本只计算置信度,正样本计算置信度,类别误差和坐标误差。不过由于三个特征图,所以loss是三个特征图的loss之和。

Yolov5

在这里插入图片描述

最经典,最常用的一代,网络结构讲解可以看之前的blog:yolov5
主要贡献:

  • 采用bottleneck结构,有效降低计算量
  • 采用CSP结构,降低计算量和内存瓶颈,增加梯度路径
  • 采用SPP结构,图像金字塔池化,实现全局特征和局部特征的融合
  • 采用了FPN结构,图像金字塔,小目标精度更好
  • 采用PANet结构【6.0版本后加的】,可以做图像分割。

正负样本处理 & 损失函数

yolov5的正负样本处理相较于v3做了很大改进,提高了正样本的数量。
yolov5中的正样本选择不再使用最大IOU规则,而是先根据shape将GT分到不同的特征层,根据GT的宽高比,将该GT分配到一个特征层,该层内GT中心点所在的grid以及附近的两个grid都负责预测该GT,这三个grid的anchor都作为正样本,其余作为负样本。
xywh的损失采用了CIOU损失,IOU的发展路程可以看:IOU那点事儿
类别和置信度的损失采用了BCEloss,也就是交叉熵损失

所谓经典,其实也不是说他们的效果比别的模型有多出众,而是他们开箱即用,不断更新,更能吸引更多人来使用并不断迭代,这才是为什么yolov3和yolov5一直这么火,这两个是一家公司ultralytics做的,他们实现的yolov5被称为u版,目前已经迭代到了7.0版本。
模型的改进可以分为两点,第一点是对模型本身的改进,也就是结构的改进,第二点是对于整个工程来说,trick的使用和改进,也就是超参的选择方式等,yolov5的模型改进不多,trick改进很多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/745744.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机视觉】二、图像形成:1、向量和矩阵的基本运算:线性变换与齐次坐标

文章目录 一、向量和矩阵的基本运算1、简单变换1. 平移变换2. 缩放变换3. 旋转变换4. 一般线性变换 2、齐次坐标0. 齐次坐标表示1. 2D点的齐次坐标变换2. 投影空间 ( x , y , w ) (x, y, w) (x,y,w)3. 2D直线的齐次坐标表示a. 直线的参数方程表示b. 直线的法向量和原点距离表示…

深度解析Elasticsearch索引数据量过大的优化与部署策略

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 1. 分片和副本策略 1.1分片策略 1.1.1 数据量 1.1.…

sqllab第二十一关通关笔记

知识点: 错误注入 最大长度为32超过需要利用截取函数分段读取cookie注入base64加密会保留符号的原始属性 通过admin admin进行登录发现和第二十关显示的内容一样,猜测应该还是cookie注入; 直接截取带有cookie的数据包,发现uname…

【计算机网络】概述

文章目录 一、Internet 因特网1.1 网络、互联网、因特网1.2 因特网的组成 二、三种交换方式2.1 电路交换 (Circuit Switching)2.2 *分组交换 (Packet Switching)2.3 报文交换 (Message Switching) 三、计算…

100W-150W电阻器-TO-247模压厚膜电阻(1)

EAK封装的TO-247功率电阻器为设计工程师提供稳定的晶体管式封装的大功率电阻器件,功率为100W-150W。这些电阻器专为需要精度和稳定性的应用而设计。该电阻器采用氧化铝陶瓷层设计,可将电阻元件和安装片分开。 EAK模压TO-247厚膜功率电阻器 这种结构提供了…

Redis基本使用

Redis基本使用 1.通用命令2.基本数据类型2.1 String2.2 Hash2.3 List2.4 Set2.5 SortedSet 3. SpringDataRedis3.1 简介3.2 快速代码示例3.3 序列化 1.通用命令 针对所有数据类型的操作可以在Redis官方文档查看。以下是通用的命令。 KEYS:查看符合模板的所有key D…

React——react 的基本使用

前提:安装全局的脚手架,通过create-creat-app 项目名,我们创建好一个新项目,cd进去,通过npm start去运行该项目 注意:简单看下demo的配置,在根目录我们可以看到,没有任何webpack的…

rviz上不显示机器人模型(模型只有白色)

文档中的是base_footprint,需要根据自己所设的坐标系更改,我的改为base_link 如何查看自己设的坐标系: 这些parent父坐标系就是 同时打开rviz后需要更改成base_link

20232831 2023-2024-2 《网络攻防实践》第2次作业

目录 20232831 2023-2024-2 《网络攻防实践》第2次作业1.实验内容2.实验过程3.学习中遇到的问题及解决4.学习感悟、思考等参考资料 20232831 2023-2024-2 《网络攻防实践》第2次作业 1.实验内容 (1)从www.csdn.net、www.163.com等中选择一个DNS域名进行…

结构设计模式 - 组合设计模式 - JAVA

组合设计模式 一. 介绍二.代码示例2.1 定义Component2.2 定义Leaf2.3 定义Composite 三. 参考案例 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 一. 介绍 由不同的对象组合成一个…

OSI(Open Systems Interconnection)模型和TCP/IP模型

OSI模型 OSI模型是一个概念模型,由国际标准化组织(ISO)在1984年提出,用于促进不同系统间的通信互联。OSI模型将网络通信的过程分为七层,每一层都有其特定的功能,从下至上依次是: 物理层&#x…

【机器学习智能硬件开发全解】(四)—— 政安晨:嵌入式系统基本素养【后摩尔时代】

随着物联网、大数据、人工智能时代的到来,海量的数据分析、大量复杂的运算对CPU的算力要求越来越高。 CPU内部的大部分资源用于缓存和逻辑控制,适合运行具有分支跳转、逻辑复杂、数据结构不规则、递归等特点的串行程序。 在集成电路工艺制程将要达到极…

一个H5页面中直接使用React的示例与说明

示例 如题&#xff0c;下面的个简单代码示例—在H5页面中直接使用React <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&q…

Pytorch从零开始实战21

Pytorch从零开始实战——Pix2Pix理论与实战 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——Pix2Pix理论与实战内容介绍数据集加载模型实现开始训练总结 内容介绍 Pix2Pix是一种用于用于图像翻译的通用框架&#xff0c;即图像到图像的转换。…

【数学】【计算几何】1453. 圆形靶内的最大飞镖数量

作者推荐 视频算法专题 本文涉及知识点 数学 计算几何 LeetCoce:1453. 圆形靶内的最大飞镖数量 Alice 向一面非常大的墙上掷出 n 支飞镖。给你一个数组 darts &#xff0c;其中 darts[i] [xi, yi] 表示 Alice 掷出的第 i 支飞镖落在墙上的位置。 Bob 知道墙上所有 n 支飞…

分布式之网关Gateway

Spring Cloud Gateway 1、网关简介 网关作为流量的入口&#xff0c;常用的功能包括路由转发&#xff0c;权限校验&#xff0c;限流等。 2、Gateway简介 Spring Cloud Gateway 是Spring Cloud官方推出的第二代网关框架&#xff0c;定位于取代 Netflix Zuul。相比 Zuul 来说&…

抖音在线点赞任务发布接单运营平台PHP网站源码

源码简介 抖音在线点赞任务发布接单运营平台PHP网站源码 多个支付通道分级会员制度 介绍&#xff1a; 1、三级代理裂变&#xff0c;静态返佣/动态返佣均可设置。&#xff08;烧伤制度&#xff09;。 2、邀请二维码接入防红跳转。 3、自动机器人做任务&#xff0c;任务时间…

软考高级:信息系统分类-业务处理系统(TPS)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

创新发展,探索智慧园区平台架构设计与实现

随着信息技术的快速发展&#xff0c;智慧园区平台作为集成物联网、大数据、人工智能等技术的综合性服务平台&#xff0c;正逐步成为推动企业数字化转型的重要驱动力。本文将深入探讨智慧园区平台的架构设计思路、关键技术和应用场景&#xff0c;助力读者了解如何打造智慧化、协…

C# 连接neo4j数据库,包括非默认的neo4j默认库

官方文档没找见&#xff0c;自己在源码里面找到的 private string _dbHost "bolt://localhost:7687"; private string _dbUser "neo4j"; private string _dbPassword "******"; private IDriver? _driver;public CQLOperation(string _data…