Yolo v3
- 五角星指标分析: YOLOv3展示了其在速度(探测延迟仅22ms)、精度(mAP高)以及对小目标检测的优化上的强大优势。
1.yolo v3 核心改进点
- 使其更适合小目标检测特征做的更细致,
- 使用更复杂的特征图进行融合。
- 网络深度增加至53层,称为Darknet-53。
- 开始采用残差网络结构(Residual Network)来增强深层网络的训练效果
- 多尺寸特征融合: 网络从不同层级提取特征图(如13x13, 26x26, 52x52),并通过上采样、拼接(concat)、卷积等方式进行特征融合。这允许模型利用高层抽象信息指导低层细节检测,提升对小目标的识别能力。
- 先验框优化: 借鉴COCO数据集,在13x13、26x26和52x52的特征图上分别部署不同大小的九个先验框。大的先验框适合检测大目标,小的则用于检测小目标。
- Softmax函数替换: 新的方式使用多个独立的逻辑回归(Logistic Regression)分类器代替原有的Softmax函数。这使得模型可以为同一物体分配多个标签(如“狗”、“动物”),更符合现实场景。
2.scale
为了能检测到不同大小的物体,设计了3个scale
①scale变换经典方法
不利于yolo的检测速度
左图:图像金字塔,右图:单一的输出
左图:对不同的特征图加以利用,右图:不同的特征图融合后
3.残差连接-为了更好的特征
从今天的角度来看,基本所有网络架构都用上了残差连接的方法
V3中也用了resnet的思想,堆叠更多的层来进行特征提取
4.核心网络架构
没有池化和全连接层,全部卷积
下采样通过stride为2实现
3种scale,更多先验框
基本上当下经典做法全融入了
Conv Block表示该模块是一个普通的卷积模块,Residual Bolck代表该模块是一个残差网络
5.输入映射到输出
6.先验框设计(coco数据集训练得出)
COCO数据集的介绍:https://blog.csdn.net/qq_44554428/article/details/122597358
YOLO-V2中选了5个,这回更多了,一共有9种
13*13特征图上:(116x90),(156x198),(373x326)
26*26特征图上:(30x61),(62x45),(59x119)
52*52特征图上:(10x13),(16x30),(33x23)
大的先验框在感受野大的特征图中检测
YOLO3延续了K-means聚类得到先验框的尺寸方法,为每种下采样尺度设定3种先验框,总共聚类出9种尺寸的先验框。在COCO数据集这9个先验框是:(10x13),(16x30),(33x23),(30x61),(62x45),(59x119),(116x90),(156x198),(373x326)。 分配上,在最小的13*13特征图上(有最大的感受野)应用较大的先验框(116x90),(156x198),(373x326),适合检测较大的对象。中等的26*26特征图上(中等感受野)应用中等的先验框(30x61),(62x45),(59x119),适合检测中等大小的对象。较大的52*52特征图上(较小的感受野)应用较小的先验框(10x13),(16x30),(33x23),适合检测较小的对象。
7.Logistic分类器
YOLOv3用多个独立的Logistic分类器替代了传统目标检测模型中常用的Softmax分类层
Softmax函数将神经网络的输出转换为概率分布,所有类别的概率之和为1。然而,Softmax函数的是每个样本只属于一个类别。但在更复杂的目标检测场景中,一个物体可能同时属于多个类别,例如一个人可能同时被标记为“人”和“行人”。这种情况下,Softmax函数就不再适用,因为它会强制每个样本只属于一个类别。
在Logistic分类器(逻辑回归)中,每个类别的预测是独立进行的。对于输入样本,分类器会为每个类别计算一个概率值,表示该样本属于该类别的可能性。
Logistic分类器通常使用Sigmoid函数(也称为Logistic函数)作为激活函数。Sigmoid函数将神经网络的输出映射到(0, 1)区间,表示样本属于某个类别的概率。Sigmoid函数的数学表达式为如下图,其中,z是神经网络的原始输出。
假设有一个图像分类任务,需要识别图像中是否包含“猫”、“狗”和“鸟”三种动物。使用Logistic分类器时,模型会为每个类别(猫、狗、鸟)分别计算一个概率值。例如:
图像A:猫的概率=0.8,狗的概率=0.3,鸟的概率=0.1
图像B:猫的概率=0.2,狗的概率=0.7,鸟的概率=0.6
设定阈值为0.5,则:
图像A会被标记为“猫”(因为猫的概率>0.5),而不会被标记为“狗”或“鸟”(因为它们的概率<0.5)。
图像B会被标记为“狗”和“鸟”(因为它们的概率都>0.5),而不会被标记为“猫”(因为猫的概率<0.5)。