学习笔记--目标检测2 yolo系列

文章目录

  • 1、双阶段
  • 2、单阶段
  • 3、机器学习--基于特征工程
  • 4、yolo1
  • 5、yolo2
  • 6、yolo9000
  • 7、yolo3
  • 8、yolo4

1、双阶段

第一级网络用于候选框区域提取,第二级网络对提取的候选区域进行分类和精确坐标回归

2、单阶段

摒弃了候选框区域提取这一步骤,只用一级网络就完成了分类和回归任务

3、机器学习–基于特征工程

特征提取–特征筛选–输入分类器

4、yolo1

4.1、一次性输出所检测到的目标信息:类别和位置
4.2、只要求这个物体的中心在某个grid之内
每个grid都预测B个bounding boxes,这个bounding boxes有5个值
每个grid还要负责预测这个框中的物体是什么类别

4.3、如果有SXS个框框,每个框框的bounding boxes个数为B,分类器可以识别出C种不同的物体,那么各种ground truth的长度就为SXSX(BX5+C)
框框的粗细代表置信度

4.4、bounding boxes细节
为了防止目标尺寸变化过大,中心点的位置根据左上角的坐标来变换rescale,长和宽按照图片的比例进行缩放

4.5、confidence计算
C=Pr(obj)*IOU
IOU是预测的bounding box和真实的物体位置的交并比,pr是grid有物体的概率,在有物体的时候ground truth为1,没有物体时ground truth为0

4.6、ground truth
标签顺序是confidence\ x\ y\ w\ h\ c1\ c2\ c3
没目标:0, ? ? ? ? ? ? ?
有目标:iou,iou是现场计算的
归一化后的四个值\x\y\w\h\,
是哪一类,哪一类就是1,其他几个是0,假如是c1类(1,0,0)

4.7、损失函数
学习笔记--目标检测2 yolo系列_第1张图片
学习笔记--目标检测2 yolo系列_第2张图片
损失计算:
第一行:坐标;
第二行:宽高;开根号,对小尺寸目标更敏感
第三行:confidence;
第四行,没目标的confidence;
第五行:分类结果
损失前有参数,放大1,2,缩小4

4.8、缺点
一个grid只能识别一种物体
bounding box的预测准确度不好

5、yolo2

改进使用coco,可以识别80类
yolo9000,结合两个数据集,可以识别9000类

改进:BN、高分辨率的方式、卷积代替全连接、anchor box、backbone等
5.1、BN添加
mAP提升了2%,去掉了dropout
5.2、高分辨率的预训练方法
224–224变为448–448,mAP提升了4%
5.3、anchor box替换全连接层
神经网络不对预测矩形框的宽高的绝对值进行预测,而是预测与anchor框的偏差
在训练时,最接近ground truth的框产生loss,其余框不产生loss
2中移除了1最后的两层全连接
5.4、宽高由聚类生成:
聚类必须要定义聚类之间的距离函数,d(box,centroid)=1-iou(box,centroid)
5.5、绝对位置的预测:
用偏差求解实际数值
5.6、细粒度特征:
在26X26的特征图,经过卷积层等,变为13X13的特征图后,作者认为损失了很多细粒度的特征,导致小尺寸物体的识别效果不佳,所以添加passthrough层
即将26X26的特征图,变成13X13X4的特征图,这次操作中不损失细粒度特征—多个小特征图
5.7、多尺寸训练:
只要是32的倍数就可以咯,因为只有卷积和池化层
每10个batch就resize成32的倍数中的一种,不同的输入,最后产生的格点数不
在引入了多尺寸训练后,迫使卷积核学习不同尺寸比例大小的特征,当输入设置为544X544甚至更大,他的mAP超越了当时其他检测算法
5.8、darknet-19

6、yolo9000

6.1、Word tree,更细粒度的分类
联合训练:当输入是监测数据及时,标注信息有类别,位置,那么对整个loss函数计算6.2、loss,进行反向传播,当输入图片质保函分类信息时,loss函数只计算分类loss,其他为0

7、yolo3

7.1、关于输出特征图解码
不同输入,得到不同输出

先验框与检测框:
每个特征图的每个格子都配3个不同的先验框,最后得到三个特征图
4+1+80

置信度与类别解码:
运用V2的思想
解码就是进行scale转换为正常

置信度在输出85维中占一位,由sigmoid解码到0-1之间
用sigmoid(不一定为1)进行激活分类而不是softmax(之和必须为1),取消了类别互斥,有可能某个给grid的置信度都很高,就可以同时预测两个以上目标,而不是只能预测一个

训练时,每个box都送入打标签函数进行后一步的标签及损失函数的计算
测试时,选取一个置信度阈值,过滤掉低阈值box,再经过nms,就可以得出预测结果了

7.2、网络结构
darknet-19兼具78FPS和93.8top5
7.2.1、只有卷积层
通过调节步长控制输出特征图的尺寸,所以对于输入尺寸没有特别限制
7.2.2、金字塔特征图
小尺寸特征图用于检测大尺寸物体,相反则反之
7.2.3、借鉴resnet
将输入的特征图与输出的特征图对应维度进行相加
7.2.4、借鉴densenet
将特征图按照通道维度进行直接拼接
7.3、训练策略
预测框
正例:取一个ground truth,与所有的框计算iou,最大为正例,正例产生置信度loss,检测框loss,类别loss,ground truth为对应的预测框的标签
负例:与全部ground truth的iou都小于阈值,负例只产生置信度loss,置信度标签为0
忽略样例:除了上述以外,与任何一个ground truth的iou大于阈值,忽略样例不产生loss(见5.3)
7.4、损失函数

关键:
特征图解码
快速的检测方式

创新:
结合检测和识别
3个尺度特征图
置信度和类别解码方式

8、yolo4

马赛克数据增强
自对抗训练方式:加噪声再训练
改进attention:之前是用通道的,现在是用像素的
改机通道的组合方式
cross mini-batch normal:跨batch的BN

启发点:
平衡正负样本
注意力机制
数据增强

你可能感兴趣的:(目标分类,识别,分类,目标检测,yolo系列)