1. 磐创AI首页
  2. Medium

YOLO目标检测

引言

YOLO(你只看一次)是一种广泛使用的目标检测系统,由于其速度优势,最适合于实时目标检测。它与单次放炮多盒检测器(SSD)的相似之处在于,它在卷积网络的单次通过中预测包围盒和类别概率。这不同于其他最先进的物体检测系统,如更快的R-CNN,后者使用区域建议网络。Single Shot MultiBox Detector (SSD)

YOLO系列的主要优势是这些系统运行得更快,但与R-CNN系列相比,这有时是以较低的平均精度为代价的。

这篇文章总结了YOLO系列的每个版本,并展示了它是如何随着时间的推移而发展到2021年9月仍然是最先进的物体检测系统之一。

YOLOv1

将目标检测问题框架化为单一回归问题,并使用单一卷积网络同时预测多个包围盒和类别概率。YOLO在训练和测试期间可以看到整个图像,因此它使用从边界框中的对象和背景中提取的特征。

图像被分成S*S网格,网格中的每个单元负责检测在该单元内居中的对象。每个单元格预测B个边界框,并预测框中存在对象的可能性的置信度分数。对于每个边界框,将生成5个输出:框中心的(x,y)坐标、框的宽度和高度以及置信度分数。每个网格单元格还预测C个条件类概率,这意味着如果对象确实在框内,则该对象在每个类中的概率是多少。总体而言,YOLO模型输出S*S*(5B+C)张量。

网络体系结构由24个卷积层和2个完全连接层组成,卷积层在1 x 1和3 x 3滤波器之间交替。称为Fast YOLO的较小网络使用9个卷积层,而不是24个,其他一切都与YOLO相同。

YOLOv2(YOLO9000)

YOLOv2之所以被命名为YOLO9000,是因为它能够检测9000多个对象类。为了实现这一点,最大的障碍是获得足够大的带标签的数据集,这对于9000个对象类来说将是非常昂贵的。因此,使用分层对象分类结构,这使得能够使用多个不同的数据集进行训练(使得每个数据集不需要包含所有9000个类),甚至使用对象分类数据集,这比获得对象检测数据集便宜得多。

YOLOv2的重点是在保持分类准确率的同时,提高YOLO的召回率和本地化程度。YOLOv2中引入了以下方法:

批次标准化。通过对所有卷积层添加批归一化,我们可以将正则化引入到模型中,并且可以在不过拟合的情况下去除丢失步骤。

高分辨率分类器。原始的YOLO在训练时将所有输入图像的大小调整为224 x 224,并将分辨率提高到448 x 448以进行检测。YOLOv2使用448 x 448分辨率进行训练和检测,这使得学习变得更容易。

锚箱。YOLOv2没有使用完全连接的图层来预测边界框坐标,而是删除了完全连接的图层,并使用锚点框而不是坐标来预测偏移,这简化了问题,使网络更容易学习。使用锚框还允许网络预测更多的框,这大大提高了召回率,而精确度只有很小的下降。

维簇。在训练集包围盒上运行k-均值聚类,自动寻找好的先验,而不是人工挑选锚盒。

直接位置预测。使用锚框会带来稳定性问题:因为预测框是无约束的,所以预测的偏移值会在迭代之间波动,并且需要很长时间才能稳定下来。因此,在位置预测中加入了约束条件,使网络更加稳定,学习速度更快。

细粒度功能。通过将相邻要素堆叠到不同通道(而不是空间位置),添加通过图层来连接较高分辨率要素和较低分辨率要素。这使网络能够访问更细粒度的功能,以捕获更小的详细信息。

多规模集训。网络不固定输入图像的大小,而是每隔几批随机调整输入图像的大小。该技术允许网络在跨不同输入图像维度进行预测时变得更加稳健。

暗网-19。这种新的网络结构由19个卷积层和5个最大汇聚层组成,以提高预测速度。

分层分类。

原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/09/20/yolo%e7%9b%ae%e6%a0%87%e6%a3%80%e6%b5%8b/

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息