赞
踩
如果目标的中心落在cell中,那么这个cell就负责预测这个类别。
由于每个cell预测两个bbox,那么选择与GT IOU大的bbox来预测这个目标,也就是这一个框的
1
i
j
o
b
j
=
1
,
1
i
j
n
o
b
j
=
0
1_{ij}^{obj}=1,1_{ij}^{nobj}=0
1ijobj=1,1ijnobj=0,其余不负责目标的都视为没有目标,即
1
i
j
o
b
j
=
0
,
1
i
j
n
o
b
j
=
1
1_{ij}^{obj}=0,1_{ij}^{nobj}=1
1ijobj=0,1ijnobj=1。
如果多个目标的中心落入同一个cell,那么仍然选取IOU最大的一组GT和bbox进行预测。
结论:
可以看出,整个图像中有几个GT,那么就有几个正样本,样本严重不平衡。
目标检测、语义分割、深度估计、超分辨率、CNN、GAN、目标跟踪、人脸识别、数据增广、人脸检测、数据集、 边缘检测、场景文本检测、视频实例分割、3D点云、模型压缩、人脸对齐、超分辨、去噪、强化学习、行为识别、OpenCV、场景文本识别、机器学习、风格迁移、视频目标检测、去模糊、显著性检测、活体检测、人脸关键点检测、视频修复、人脸表情识别、时序动作检测、图像检索、异常检测等。
feature map每个单元(像素)输出:2*(4+1)+20。
2:2个bounding box(类似anchor,用于目标定位)(并不是anchor,anchor是不同长宽比尺度的预选框,而这里仅仅是为了回归两个结果,没有anchor中长宽比的概念);
4:box的4个值;
1:该box的置信度=该box有目标概率(1或0)× 与真实box的IOU。
20:该cell的类别,注意两个box都是这一个类别。
在test的时候,每个网格预测的class信息和bounding box预测的confidence信息相乘,就得到每个bounding box的class-specific confidence score:
等式左边第一项就是每个网格预测的类别信息,第二三项就是每个bounding box预测的confidence。这个乘积即encode了预测的box属于某一类的概率,也有该box准确度的信息。
得到每个box的class-specific confidence score以后,设置阈值,滤掉得分低的boxes,对保留的boxes进行NMS处理,就得到最终的检测结果。
输出:5*(4+1)+ ?变成了5个anchor,结合coco(检测数据集20类)和ImageNet(分类数据集)使得分类总数达到9000
文章提出了一种新的训练方法–联合训练算法,这种算法可以把这两种的数据集混合到一起。使用一种分层的观点对物体进行分类,用巨量的分类数据集数据来扩充检测数据集,从而把两种不同的数据集混合起来。
联合训练算法的基本思路就是:同时在检测数据集和分类数据集上训练物体检测器(Object Detectors ),用检测数据集的数据学习物体的准确位置,用分类数据集的数据来增加分类的类别量、提升健壮性。
为什么下采样32倍为后为奇数,而不是偶数?
由于图片中的物体都倾向于出现在图片的中心位置,特别是那种比较大的物体,所以有一个单独位于物体中心的位置用于预测这些物体。YOLO的卷积层采用32这个值来下采样图片,所以通过选择416×416用作输入尺寸最终能输出一个13×13的Feature Map。使用Anchor Box会让精度稍微下降,但用了它能让YOLO能预测出大于一千个框,同时recall从81%达到88%,mAP达到69.2%
召回率升高,mAP轻微下降的原因是:因为YOLOV2不使用anchor boxes时,每个图像仅预测98个边界框。但是使用anchor boxes,YOLOV2模型预测了一千多个框,由于存在很多无用的框,导致训练受到大量负样本的影响使检测框回归困难,mAP值下降。但是由于预测的框多了,所以能够预测出来的属于ground truth的框就多了,所以召回率就增加了。目标检测不是只以mAP为指标的,有些应用场景下要求召回率高。
如果我们用标准的欧式距离的k-means,尺寸大的框比小框产生更多的错误。因为我们的目的是提高IOU分数,这依赖于Box的大小,所以距离度量使用IOU距离:
centroid是聚类时被选作中心的边框,box就是其它边框,d就是两者间的“距离”。IOU越大,“距离”越近。
由于 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oGXx19LZ-1663941358297)(https://www.zhihu.com/equation?tex=t_x%2Ct_y)] 的取值没有任何约束,因此预测边框的中心可能出现在任何位置,训练早期阶段不容易稳定。YOLO调整了预测公式,将预测边框的中心约束在特定gird网格内。
其中,
是要学习的参数,分别用于预测边框的中心和宽高,以及置信度。 σ是sigmoid函数。
是当前网格左上角到图像左上角的距离,要先将网格大小归一化,即令一个网格的宽=1,高=1。
是先验框的宽和高**。
是预测边框的中心和宽高。
是预测边框的置信度,YOLO1是直接预测置信度的值,这里对预测参数 t0进行σ变换后作为置信度的值。
每10个Batches,网络会随机地选择一个新的图片尺寸,由于使用了下采样参数是32,所以不同的尺寸大小也选择为32的倍数{320,352……608},最小 320 ∗ 320 320*320 320∗320,最大 608 ∗ 608 608*608 608∗608
通过将两个数据集混合训练,如果遇到来自分类集的图片则只计算分类的Loss,遇到来自检测集的图片则计算完整的Loss。
YOLOv3不使用Softmax对每个框进行分类,主要考虑因素有两个:
分类损失采用binary cross-entropy loss。
yolov3是在训练的数据集上聚类产生prior boxes的一系列宽高(是在图像416x416的坐标系里),默认9种。YOLOV3思想理论是将输入图像分成SxS个格子(有三处进行检测,分别是在52x52, 26x26, 13x13的feature map上,即S会分别为52,26,13),若某个物体Ground truth的中心位置的坐标落入到某个格子,那么这个格子就负责检测中心落在该栅格中的物体。三次检测,每次对应的感受野不同,32倍降采样的感受野最大(13x13),适合检测大的目标,每个cell的三个anchor boxes为(116 ,90),(156 ,198),(373 ,326)。16倍(26x26)适合一般大小的物体,anchor boxes为(30,61), (62,45),(59,119)。8倍的感受野最小(52x52),适合检测小目标,因此anchor boxes为(10,13),(16,30),(33,23)。所以当输入为416×416时,实际总共有(52×52+26×26+13×13)×3=10647个proposal boxes。
图 2:带有维度先验和定位预测的边界框。我们边界框的宽和高以作为离聚类中心的位移,并使用 Sigmoid 函数预测边界框相对于滤波器应用位置的中心坐标。
yolov3对每个bounding box预测偏移量和尺度缩放四个值 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(
(网络需要学习的目标),对于预测的cell(一幅图划分成S×S个网格cell)根据图像左上角的偏移 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
,每个grid cell在feature map中的宽和高均为1,以及预设的anchor box的宽和高 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
(预设聚类的宽高需要除以stride映射到feature map上)。最终得到的边框坐标值是
b
∗
b*
b∗,而网络学习目标是
t
∗
t*
t∗,用sigmod函数、指数转换。可以对bounding box按如下的方式进行预测:
公式中为何使用sigmoid函数呢?
YOLO不预测边界框中心的绝对坐标,它预测的是偏移量,预测的结果通过一个sigmoid函数,迫使输出的值在0~1之间。例如,若对中心的预测是(0.4,0.7),左上角坐标是(6,6),那么中心位于13×13特征地图上的(6.4,6.7)。若预测的x,y坐标大于1,比如(1.2,0.7),则中心位于(7.2,6.7)。注意现在中心位于图像的第7排第8列单元格,这打破了YOLO背后的理论,因为如果假设原区域负责预测某个目标,目标的中心必须位于这个区域中,而不是位于此区域旁边的其他网格里。为解决这个问题,输出是通过一个sigmoid函数传递的,该函数在0到1的范围内缩放输出,有效地将中心保持在预测的网格中。
其实图像在输入之前是按照图像的长边缩放为416,短边根据比例缩放(图像不会变形扭曲),然后再对短边的两侧填充至416,这样就保证了输入图像是416*416的。
对小物体的检测率提高
分类网络使用Darknet-53
可以实现一个目标的多个label检测
open image数据集中,一个object可以有两个标签(如person and woman)
使用logistic替代softmax完成多label object detection
每种尺度预测3个box, anchor的设计方式仍然使用聚类,得到9个聚类中心,将其按照大小均分给3个尺度.
网络必须具备能够“看到”不同大小的物体的能力。并且网络越深,特征图就会越小,所以越往后小的物体也就越难检测出来。SSD中的做法是,在不同深度的feature map获得后,直接进行目标检测,这样小的物体会在相对较大的feature map中被检测出来,而大的物体会在相对较小的feature map被检测出来,从而达到对应不同scale的物体的目的。然而在实际的feature map中,深度不同所对应的feature map包含的信息就不是绝对相同的。只利用浅层高分辨率的特征图进行预测将会导致特征信息不足,因此需要使用FPN结构将高层信息和底层信息结合。
如上图所示,对于多重scale,目前主要有以下几种主流方法。
(a) Featurized image pyramid: 这种方法最直观。首先对于一幅图像建立图像金字塔,不同级别的金字塔图像被输入到对应的网络当中,用于不同scale物体的检测。但这样做的结果就是每个级别的金字塔都需要进行一次处理,速度很慢。
(b) Single feature map: 检测只在最后一个feature map阶段进行,这个结构无法检测不同大小的物体。
© Pyramidal feature hierarchy: 对不同深度的feature map分别进行目标检测。SSD中采用的便是这样的结构。每一个feature map获得的信息仅来源于之前的层,之后的层的特征信息无法获取并加以利用。
(d) Feature Pyramid Network 与©很接近,但有一点不同的是,当前层的feature map会对未来层的feature map进行上采样,并加以利用。这是一个有跨越性的设计。因为有了这样一个结构,当前的feature map就可以获得“未来”层的信息,这样的话低阶特征与高阶特征就有机融合起来了,提升检测精度。
YOLOv3中使用了ResNet结构(对应着在上面的YOLOv3结构图中的Residual Block)。Residual Block是有一系列卷基层和一条shortcut path组成。shortcut如下图所示。
Residual Block
图中曲线箭头代表的便是shortcut path。除此之外,此结构与普通的CNN结构并无区别。随着网络越来越深,学习特征的难度也就越来越大。但是如果我们加一条shortcut path的话,学习过程就从直接学习特征,变成在之前学习的特征的基础上添加某些特征,来获得更好的特征。这样一来,一个复杂的特征H(x),之前是独立一层一层学习的,现在就变成了这样一个模型:H(x)=F(x)+x,其中x是shortcut开始时的特征,而F(x)就是对x进行的填补与增加,成为残差。因此学习的目标就从学习完整的信息,变成学习残差了。这样以来学习优质特征的难度就大大减小了。
Softmax层被替换为一个1x1的卷积层+logistic激活函数的结构。使用softmax层的时候其实已经假设每个输出仅对应某一个单个的class,但是在某些class存在重叠情况(例如woman和person)的数据集中,使用softmax就不能使网络对数据进行很好的拟合。
回归loss会乘以一个(2-wxh)的比例系数,用来加大对小box的损失。
TinyYOLOv3只用了两个尺度,stride=32和stride=16,这里需要注意一点的是512层和1024层之间的maxpooling的stride=1,而不是2,因此,为了保证输入输出不改变feature map的宽高,需要补左0右1、上0下1的zero padding,用PyTorch来写就是:
nn.ZeroPad2d((0,1,0,1))
具体参考《110_YOLOv4详解.md》
Yolo-V4的主要目的在于设计一个能够应用于实际工作环境中的快速目标检测系统,且能够被并行优化,并没有很刻意的去追求理论上的低计算量(BFLOP)。同时,Yolo-V4的作者希望算法能够很轻易的被训练,也就是说拥有一块常规了GTX-2080ti或者Titan-XP GPU就能够训练Yolo-V4, 同时能够得到一个较好的结果。整个introduction可以总结为以下几点:
主要贡献:
提出了一种高效而强大的目标检测模型。它使每个人都可以使用1080 Ti或2080 Ti GPU 训练超快速和准确的目标检测器(牛逼!)。
在检测器训练期间,验证了SOTA的Bag-of Freebies 和Bag-of-Specials方法的影响。
改进了SOTA的方法,使它们更有效,更适合单GPU训练,包括CBN [89],PAN [49],SAM [85]等。文章将目前主流的目标检测器框架进行拆分:input、backbone、neck 和 head.
具体如下图所示:
作者的目标是在输入网络分辨率,卷积层数,参数数量和层输出(filters)的数量之间找到最佳平衡。
YOLOv4 = CSPDarknet53+SPP+PAN+YOLOv3
其中YOLOv4用到相当多的技巧:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。