YOLOv1学习笔记

目前目标检测领域的深度学习算法主要分为两类:two stage的目标检测算法,以R-CNN系列为代表;one  stage 的目标检测算法,以YOLO系列为代表。前者是先由算法生成一系列的样本候选框,再通过卷积神经网络进行样本分类;而后者直接将目标边框定位问题转化为回归问题进行处理。前者在检测准确率和定位精度上占优,后者在算法速度上具有很大优势。

相对于R-CNN系列的看两眼(候选框提取与分类),YOLO只需要Look Once.

下面进行YOLOv1算法的解读,

1、YOLOv1算法核心

YOLO的核心思想就是将目标边框定位问题转化为回归问题,利用整张图作为网络输入,直接在输出层回归bounding box 的位置和bounding box 所属的类别。

整体来看,YOLO算法采用一个单独的CNN模型实现end-to-end的目标检测,相对于R-CNN系列的“看两眼”(候选框提取与分类),YOLO只需要Look Once。整个系统如图1所示。首先将输入图片resize到448x448,然后送入CNN网络,最后处理网络预测结果得到检测的目标。

                                               图1 Yolo检测系统 

2.YOLOv1算法具体细节

具体来说,YOLO的CNN网络将输入的图片分割成的网格,每个单元格会预测 B个边界框(bounding box)、边界框的置信度(confidence score)以及C个类别概率值,最终预测值为大小的张量。整个模型的预测值结构如图2所示。

                                          图2  模型预测值结构 

YOLO采用卷积网络来提取特征,然后使用全连接层来得到预测值。网络结构参考GooLeNet模型,包含24个卷积层和2个全连接层,如图3所示。对于卷积层,主要使用1x1卷积来做channle reduction,然后紧跟3x3卷积。对于卷积层和全连接层,采用Leaky ReLU激活函数:,但是最后一层却采用线性激活函数。可以看到网络的最后输出为大小的张量。 

                                             图3  YOLOv1网络结构 

3.YOLOv1算法的优缺点

最后总结一下YOLO的优缺点。首先是优点,YOLO采用一个CNN网络来实现检测,是单管道策略,其训练与预测都是end-to-end,所以YOLO算法比较简洁且速度快。第二点由于YOLO是对整张图片做卷积,所以其在检测目标有更大的视野,它不容易对背景误判。另外,YOLO的泛化能力强,在做迁移时,模型鲁棒性高。

最后不得不谈一下YOLO的缺点,首先YOLO各个单元格仅仅预测两个边界框,而且属于一个类别。对于小物体,YOLO的表现会不如人意。另外YOLO对于在物体的宽高比方面泛化率低,就是无法定位不寻常比例的物体。当然YOLO的定位不准确也是很大的问题。 

猜你喜欢

转载自blog.csdn.net/qq_29893385/article/details/81177912
今日推荐