首页 > 其他分享 >《深度学习》YOLO系列v2 网路构架解析

《深度学习》YOLO系列v2 网路构架解析

时间:2024-10-24 21:16:55浏览次数:3  
标签:13 卷积 YOLO v2 聚类 网络结构 网路

目录

一、YOLO系列v2

1、YOLO v1与v2对比

2、BatchNorm批次归一化

3、YOLO v2 更大的分辨率

4、YOLO v2网络结构

1)YOLO v2网络结构

2)传统的卷积神经网络系统

3)YOLO v2结构局限性

5、YOLO v2聚类提取先验框

1)k-means聚类

2)YOLO v2聚类流程

3)YOLO v2聚类框个数由来

6、YOLO v2 Anchor Box聚类先验框

二、Directed Location Prediction直接位置预测

1、概念

2、计算

1)计算公式:

2)例如

三、感受野

1、概念

2、作用

3、YOLO v2 Fine Grained Feature

4、YOLO-V2-Multi-Scale多尺度融合


一、YOLO系列v2

1、YOLO v1与v2对比

2、BatchNorm批次归一化

        V2版本舍弃Dropout(抛弃神经元比例),卷积后全部加入BatchNormalization,网络的每一层的输入都做了归一化,经过卷积后输出特征图,特征图输出到下一层卷积,收敛相对更容易,经过Batch Normalization处理后的网络会提升2%的mAP,从现在的角度来看,Batch Normalization已经成网络必备处理

3、YOLO v2 更大的分辨率

        V1训练时用的是224*224,测试时使用448*448,可能导致模型水士不服

        V2训练时额外又进行了10次448*448 的微调使用高分辨率分类器后,YOLOv2的mAP提升了约4%

4、YOLO v2网络结构

1)YOLO v2网络结构

        不在和YOLO v1一样使用GoogLeNet网络,而是使用DarkNet网络,实际输入416*416大小的图片,其没有fc全连接层,经过5次降采样,得到大小为13*13,

2)传统的卷积神经网络系统

        在前面学习的卷积神经网络中,如下图所示,当输入一张图片大小为224*224,经过卷积核处理后,得到的特征图再次进行卷积,到最后的全连接,可以发现,全连接前特征图大小为128*13*13,此时想要经过全连接得到2048个结果需要的权重参数w的个数为128*13*13*2048个,这个数目非常庞大,此时如果传入其他大小的图像,这个权重参数则无法对其进行更新,因为不同大小的输入图片对应输出的特征图大小都是不一样的,这就导致全连接时的权重参数个数都是不同的,所以针对不同尺度的图像,这个卷积神经网络的系统则无法进行处理。

        此时再回头可以看到YOLO v2的网络结构,其没有全连接层,只有最后一步的Avgpool全局平均池化,此时对输出的不同大小的特征图都进行同样的处理,使其返回1000个结果,然后通过softmax计算每个类别的概率,那么,无论传入多大的图片,最终的结果都是一样的,以此来实现多尺度的输入。

3)YOLO v2结构局限性

        输入图片的大小有所局限,因为该网络结构经过5次降采样,所以输入图片的大小必须是32的倍数

5、YOLO v2聚类提取先验框

        YOLO v1的预选框有2个,而YOLO v2则有5个预选框,预选框越多找到的目标就越精确,但是算力越多,faster-rcnn系列一共有9种预选框,这9种分为3类,每个类别大小不同,类别内的比例不同(每个类,1:1、2:1、1:2)。

        YOLO v2使用K-means聚类算法来提取先验框。K-means是一种无监督学习算法,用于将数据点分为K个不同的簇,以便找到数据的聚类结构。

        YOLO v2中假如有100万张图片,需要对其进行训练,每个图片都有标记框,此时有起码100万个标记框,每个标记框都有其高宽的信息,那么将这个w宽和h高当做成一个坐标(w,h),即表示每个框的信息,然后使用k-means对其进行聚类,以此来区分

1)k-means聚类

        k-means聚类(如下所示)中的距离:d(box,centroids) = 1-IOU(box,centroids),之前用的是欧氏距离,而yolo v2使用1-交并集比值的大小来将其当做距离。

2)YOLO v2聚类流程

        在模型训练之前,提前把训练集的标签值提取出来,通过k-means聚类的方法,聚类出5个类别,然后计算平均值,将其结果当作是先验框。 最后在进行模型训练。

3)YOLO v2聚类框个数由来

6、YOLO v2 Anchor Box聚类先验框

        通过引入聚类先验框,使得预测的box数量更多(13*13*n),跟faster-rcnn系列不同的是,先验框并不是直接按照长宽固定比给定

二、Directed Location Prediction直接位置预测

1、概念

        Directed Location Prediction是一种方法,其目的是进行位置微调,预测偏移量。它用于限制偏移量,以防止在训练时出现发散。这种方法预测的是相对位置,即相对于网格的偏移量。

        或者说,是一种改进的目标边界框位置预测方法,其核心在于它直接在卷积层的特征图上预测边界框的位置,而不是像一些传统方法那样通过全连接层进行预测。

2、计算

        1)计算公式:

        预测的偏移量包括tx、ty、tw、th(第一次为先验框及初始化的中心坐标在模型中输出的结果与真实框损失值得到的偏移量值),调整后的预测值bx、by、bw、bh是通过计算得到的。

        如上图所示,通过预选框预测出来的中心点的坐标x,y可能不在想要预测的网格内,所以将预测的x、y值传入sigmoid函数,使其结果变为0-1之间的小数,然后再加上关键点的位置编号的值,使其范围缩小在一个网格中

        2)例如

        特征图是已经经过压缩32倍的大小,输入原图图像大小为416*416经过压缩后变成13*13的特征图,所以得到的特征图位置的值再乘以32即为原图中的位置

三、感受野

1、概念

        感受野是指特征图上每个点在原始图像中对应的视野大小,特征图中的一个单元格就相当于上一层输入图中的多个单元格的浓缩。

2、作用

        感受野的作用在于它决定了网络能够看到输入图像的多大区域,这对于目标检测任务尤为重要,因为它影响着网络对物体位置和大小的判断。

        在YOLO v2的网络结构中,感受野的大小会受到卷积层、池化层等网络层的影响,随着网络的深入,特征图的尺寸会逐渐减小,而感受野的大小会逐渐增大。这有助于网络在深层捕捉到更大范围的信息,但也可能导致小目标的丢失。

3、YOLO v2 Fine Grained Feature

        最后一层的感受野太大了,小目标可能丢失,需融合之前的特征。

        再网络结构中特征图为512*26*26的时候,将其额外复制出来,然后将其分割成四份,改编成4*13*13*512的格式,然后再将其拼接到最后产生的1024*13*13的特征图后,以此来保留部分的小目标信息

4、YOLO-V2-Multi-Scale多尺度融合

        整个网络结构不包含全连接层,因此输入图片的大小可以任意,

        最小的图像尺寸为320*320,也可以更小,但是很多关键信息就看不见了

        最大的图像尺寸为608*608

        注意:输入的图片应该需要被32整除。

标签:13,卷积,YOLO,v2,聚类,网络结构,网路
From: https://blog.csdn.net/qq_64603703/article/details/143169515

相关文章

  • 《深度学习》YOLO v1网络架构 、损失值、NMS极大值抑制
    目录一、Yolo系列v11、核心思想2、示例3、流程图解析二、YOLO系列v1损失函数1、位置误差2、置信度误差3、类别概率损失三、NMS非极大值抑制1、概念2、步骤四、YOLOv1优缺点1、优点1)速度快2)端到端3)多尺度预测4)网络结构简单2、缺点1)对小目标检测效果差2)每个......
  • [C++]在windows基于C++编程署yolov11-pose的openvino姿态估计模型cmake项目部署演示源
    【算法介绍】在Windows系统上,基于C++编程部署YOLOv11-Pose的OpenVINO姿态估计模型,可以通过CMake项目来实现。以下是简要介绍:首先,需要准备开发环境,包括安装OpenVINOToolkit、CMake、OpenCV和C++编译器(如GCC或MSVC)。OpenVINO是英特尔开发的一款用于优化和部署深度学习模型的工具套件......
  • [C++]在windows基于C++编程署yolov11-cls的openvino图像分类模型cmake项目部署演示源
    【算法介绍】在Windows系统上,基于C++编程部署YOLOv11-CLS的OpenVINO图像分类模型,可以通过CMake项目来实现。以下是简要介绍:首先,需要准备开发环境,包括安装OpenVINOToolkit、CMake、OpenCV和C++编译器(如GCC或MSVC)。OpenVINO是英特尔开发的一款用于优化和部署深度学习模型的工具套件,......
  • 从零开始学习 YOLOv8:目标检测与车牌识别实例
    1.引言什么是目标检测?目标检测就像是在寻找隐藏的宝藏。想象一下,你在一个巨大的图画里,里面藏着无数的物体,而你的任务是迅速找到其中的几样,比如说,一只流浪的小猫和一辆红色的小轿车。目标检测就是让计算机“眼明手快”,准确找出这些目标,甚至告诉你“喵,那个小猫正躲在花丛......
  • 【YOLOv11改进- 原理解析】 YOLO11 架构解析 以及代码库关键代码逐行解析
    YOLOv11目标检测创新改进与实战案例专栏文章目录:YOLOv11创新改进系列及项目实战目录包含卷积,主干注意力,检测头等创新机制以及各种目标检测分割项目实战案例专栏链接:YOLOv11目标检测创新改进与实战案例文章目录YOLOv11目标检测创新改进与实战案例专栏冷笑话......
  • YOLOv5-6.0训练出错及解决方法(RuntimeError)
    知识经验分享——YOLOv5-6.0训练出错及解决方法(RuntimeError)一、问题bug不知道小伙伴们在训练YOLOv5-6.0或者其他版本有没有遇到以下问题:RuntimeError:resulttypeFloatcan'tbecasttothedesiredoutputtypelongint二、解决方法步骤1:打开utils/loss.py文......
  • 《YOLO目标检测》—— YOLO v2 详细介绍
    文章目录一、核心原理二、网络框架三、改进策略四、性能表现YOLOv2,又称为YOLO9000,是YOLO(YouOnlyLookOnce)系列算法中的一个重要版本,由JosephRedmon等人在2016年提出。该算法在目标检测领域取得了显著的成就,以其高效、准确的特点受到了广泛关注。以下是对YOLOv2......
  • 《深度学习》YOLO V3 网络构架解析
    目录一、YOLOV3 1、了解YOLOv32、3个scale3、残差连接二、YOLOv3核心网络构架1、核心网络构架2、输入映射到输出3、先验框设计4、softmax层替代一、YOLO系列V3 1、了解YOLOv3        相比于YOLOv1和v2,YOLOv3最大的改进就是网络结构,使其更适合小目标......
  • 2024小白YOLOv8环境配置
    目录前言一、PyCharm的安装1.下载 2.安装步骤二、配置YOLOv8的虚拟环境1.Anaconda中创建一个虚拟环境 2.Pycharm中使用虚拟环境(1)下载YOLOv8开源包(要挂梯子)(2)在设置中找到解释器,选择创建好的YOLOv8环境(3)配置终端的启动路径(4)启动终端,下载YOLOv8依赖包 (5)下载权重......
  • KerasCV YOLOv8实现交通信号灯检测
    关注底部公众号,回复暗号:13,免费获取600多个深度学习项目资料,快来加入社群一起学习吧。1.项目简介本项目旨在通过深度学习模型实现交通信号灯的检测,以提高交通管理系统的智能化水平,增强驾驶辅助功能。随着智能交通系统的快速发展,准确地识别交通信号灯对于无人驾驶汽车和高......