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

目录

一、YOLO系列v2

[1、YOLO v1与v2对比](#1、YOLO v1与v2对比)

2、BatchNorm批次归一化

[3、YOLO v2 更大的分辨率](#3、YOLO v2 更大的分辨率)

[4、YOLO v2网络结构](#4、YOLO v2网络结构)

[1)YOLO v2网络结构](#1)YOLO v2网络结构)

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

[3)YOLO v2结构局限性](#3)YOLO v2结构局限性)

[5、YOLO v2聚类提取先验框](#5、YOLO v2聚类提取先验框)

1)k-means聚类

[2)YOLO v2聚类流程](#2)YOLO v2聚类流程)

[3)YOLO v2聚类框个数由来](#3)YOLO v2聚类框个数由来)

[6、YOLO v2 Anchor Box聚类先验框](#6、YOLO v2 Anchor Box聚类先验框)

[二、Directed Location Prediction直接位置预测](#二、Directed Location Prediction直接位置预测)

1、概念

2、计算

1)计算公式:

2)例如

三、感受野

1、概念

2、作用

[3、YOLO v2 Fine Grained Feature](#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整除。

相关推荐
youcans_8 分钟前
【微软:多模态基础模型】(5)多模态大模型:通过LLM训练
人工智能·计算机视觉·大模型·大语言模型·多模态
飞凌嵌入式11 分钟前
飞凌嵌入式T113-i开发板RISC-V核的实时应用方案
人工智能·嵌入式硬件·嵌入式·risc-v·飞凌嵌入式
sinovoip13 分钟前
Banana Pi BPI-CanMV-K230D-Zero 采用嘉楠科技 K230D RISC-V芯片设计
人工智能·科技·物联网·开源·risc-v
谢眠26 分钟前
深度学习day3-自动微分
python·深度学习·机器学习
搏博35 分钟前
神经网络问题之一:梯度消失(Vanishing Gradient)
人工智能·机器学习
z千鑫35 分钟前
【人工智能】深入理解PyTorch:从0开始完整教程!全文注解
人工智能·pytorch·python·gpt·深度学习·ai编程
YRr YRr44 分钟前
深度学习:神经网络的搭建
人工智能·深度学习·神经网络
威桑1 小时前
CMake + mingw + opencv
人工智能·opencv·计算机视觉
爱喝热水的呀哈喽1 小时前
torch张量与函数表达式写法
人工智能·pytorch·深度学习
肥猪猪爸1 小时前
使用卡尔曼滤波器估计pybullet中的机器人位置
数据结构·人工智能·python·算法·机器人·卡尔曼滤波·pybullet