本节课学习了YOLOv1和YOLOv2,在学习YOLOv1和YOLOv2这两款经典目标检测算法的过程中,我了解到,YOLOv1作为开创性的单阶段目标检测算法,它最大的创新在于将目标检测任务转化为回归问题,实现了端到端的检测流程,这极大地提升了检测速度,使实时目标检测成为可能。不过,YOLOv1也存在一些明显的短板,比如定位精度不够高,对小目标的检测效果欠佳,而且由于其将图像划分为固定网格进行预测,对于密集目标容易出现漏检。
YOLOv2则在YOLOv1的基础上进行了一系列卓有成效的改进。引入了批量归一化(BN)技术,加速了模型收敛,提高了训练的稳定性和准确性;采用高分辨率分类器,让模型在更高分辨率的图像上进行训练和预测,提升了对细节的捕捉能力;新的锚框机制更是显著提升了定位精度,多尺度预测策略也增强了对不同大小目标的检测能力。
通过这次学习,我深刻认识到算法的发展是一个不断改进和完善的过程,每一次的创新都推动着目标检测技术迈向新的高度。未来,我将把所学应用到实践中,不断探索优化目标检测性能的方法,为相关领域的发展贡献自己的力量。
课程总结
YOLOv1(经典的one-stage方法)
YOLOv1(You Only Look Once v1)是一种具有开创性的目标检测算法
将目标检测任务当作一个回归问题来处理,把输入图像划分为S\times S的网格,若目标中心落在某个网格内,则该网格负责预测这个目标。每个网格预测B个边界框和这些边界框的置信度,以及C个类别概率。最终通过非极大值抑制等操作得到检测结果。
采用了类似GoogLeNet的网络结构,包含24个卷积层和2个全连接层。先通过卷积层提取图像特征,然后全连接层进行目标类别和位置的预测。为了降低计算量和模型复杂度,在一些卷积层之间使用了池化层来降低特征图的分辨率。
由定位损失、置信度损失和分类损失三部分组成。定位损失用于监督边界框的坐标预测;置信度损失衡量预测框与真实框的匹配程度;分类损失采用交叉熵损失,用于监督类别预测的准确性。通过平衡这三部分损失,使模型在定位和分类上都能取得较好的效果。
每个数字的含义:
10 =(X,Y,H,W,C)*B(2个)
当前数据集中有20个类别
7*7表示最终网格的大小
(S*S)*(B*5+C)
损失函数
NMS(非极大值抑制)
优点
速度快、全局视野、简单
缺点
定位精度低、小目标检测效果差、难以检测密集目标
YOLOv2
YOLOv2是在YOLOv1基础上改进的目标检测算法,相对于YOLOv1更快、更强!
主要改进
Batch Normalization
1.引入Batch Normalization、使用高分辨率分类器、采用Anchor Boxes、多尺度训练
2.V2版本舍弃Dropout,卷积后全部加入Batch Normalization
3.网络的每一层的输入都做了归一化,收敛相对更容易
4.经过Batch Normalization处理后的网络会提升2%的mAP
5.从现在的角度来看,Batch Normalization已经成网络必备处理
更大的分辨率
1.V1训练时用的是224*224,测试时使用448*448
2.可能导致模型水土不服,V2训练时额外又进行了10次448*448的微调
3.使用高分辨率分类器后,YOLOv2的mAP提升了约4%
网络结构
1.DarkNet,实际输入为416*416
2.没有FC层,5次降采样(13*13)
3.1*1卷积节省了很多参数
聚类提取先验框
faster-rcnn系列选择的先验比例都是常规的,但是不一定完全适合数据集
K-means聚类中的距离:
Anchor Box
通过引入anchor boxes,使得预测的box数量更多(13*13*n)
跟faster-rcnn系列不同的是先验框并不是直接按照长宽固定比给定
Directed Location Prediction
1.bbox:中心为(xp,yp);宽和高为(wp,hp),则: tx=1,则将bbox在x轴向右移动wp;
2.tx=−1则将其向左移动wp
3.这样会导致收敛问题,模型不稳定,尤其是刚开始进行训练的时候
4.V2中并没有直接使用偏移量,而是选择相对grid cell的偏移量
计算公式为
例如预测值(σtx,σty,tw,th)=(0.2,0.1,0.2,0.32),anchor框为
在特征图位置:
在原位置:
感受野
概述来说就是特征图上的点能看到原始图像多大区域。
如果堆叠3个3*3的卷积层,并且保持滑动窗口步长为1,其感受野就是7*7的了,这跟一个使用7*7卷积核的结果是一样的,那为什么非要堆叠3个小卷积呢?------------感受野不同
假设输入大小都是h*w*c,并且都使用c个卷积核(得到c个特征图),可以来计算一下其各自所需参数:
很明显,堆叠小的卷积核所需的参数更少一些,并且卷积过程越多,特征提取也会越细致,加入的非线性变换也随着增多,还不会增大权重参数个数,这就是VGG网络的基本出发点,用小的卷积核来完成体特征提取操作。
Fine-Grained Features
最后一层时感受野太大了,小目标可能丢失了,需融合之前的特征。
Multi-Scale
都是卷积操作可没人能限制我了!一定iterations之后改变输入图片大小。
最小的图像尺寸为320 x 320。
最大的图像尺寸为608 x 608。