yolov算法详解_YOLOv1到YOLOv3的演变过程及每个算法详解

本文详细介绍了YOLO(You Only Look Once)算法,从YOLOv1的基本原理、网络结构、损失函数到YOLOv3的改进,包括多尺度检测、Darknet-53网络结构和K-means聚类确定先验框等。YOLO系列算法以其高效和准确性在目标检测领域占有一席之地。
摘要由CSDN通过智能技术生成

1,YOLOv1算法的简介

YOLO算法使用深度神经网络进行对象的位置检测以及分类,主要的特点是速度够快,而且准确率也很高,采用直接预测目标对象的边界框的方法,将候选区和对象识别这两个阶段合二为一,

与faster rcnn区分开来,是一刀流的检测方法。

Yolo算法不再是窗口滑动了,而是直接将原始图片分割成互不重合的小方块,然后通过卷积最后生产这样大小的特征图,基于上面的分析,可以认为特征图的每个元素也是对应原始图片的一个小

方块,然后用每个元素来可以预测那些中心点在该小方格内的目标,这就是Yolo算法的朴素思想,

最新的YOLOv3算法再以往的结构上做出了改进,增加了多尺度检测,以及更深的网络结构darknet53,这是比较主要的改进,还有某些细节上的变动。

2,YOLOv1算法的原理

实际操作如图所示,分为7*7个小格子,每个格子预测两个bounding box。

如果一个目标的中心落入一个网格单元中,该网格单元负责检测 该目标。

对每一个切割的小单元格预测(置信度,边界框的位置),每个bounding box需要4个数值来表示其位置,(Center_x,Center_y,width,height),即(bounding box的中心点的x坐标,y坐标,bounding box的宽度,高度)

置信度定义为是否存在目标与iou值的乘积,

还要得到分类的概率结果;20个分类每个类别的概率。

7*7*30中的30=(20类概率+2*5(置信度,边框位置))

2.1    YOLOv1的网络结构

YOLO采用单个的卷积神经网络进行预测,YOLO的整个结构就是输入图片经过神经网络的变换得到一个输出的张量 。   步骤如下:

(1)将输入图像调整为448×448,(2)在图像 上运行单个卷积网络,以及(3)由模型的置信度对所得到的检测进行阈值处理

首先,YOLO速度非常快。由于我们将检测视为回归问题,所以不需要复杂的流程。测试时在一张新图像 上简单的运行我们的神经网络来预测检测

其次,YOLO在进行预测时,会对图像进行全面地推理。与基于滑动窗口和区域提出的技术不同,YOLO在训练期间和测试时会看到整个图像,所以它隐式地编码了

关于类的上下文信息以及它们的外观。快速R-CNN是一种顶级的检测方法,但是它看不到更大的上下文信息,所以在图像中会将背景块误检为目标。与快速R-CNN相比,YOLO的背景误检数量少了一半

然后,由于YOLO具有高度泛化能力,因此在应用于新领域或碰到意外的输入时不太可能出故障。

所使用的卷积结构如图所示:受到GoogLeNet图像分类模型的启发。网络有24个卷积层,后面是2个全连接层,最后输出层用线性函数做激活函数,其它层激活函数都是Leaky ReLU。

我们 只使用1*1降维层,后面是3*3卷积层,

3, YOLOv1的损失函数和训练过程

YOLO的损失函数定义如下:

YOLO在ImageNet分类任务上以一半的分辨率(224*224的输入图像)预训练卷积层,然后将分辨 率加倍来进行检测。

训练中采用了drop out和数据增强(data augmentation)来防止过拟合.

4.    预测过程以及结果的处理

直接把训练好的YOLO网络模型输入一张图片,得到一个7*7*30的结果向量,通过NMS(非极大值抑制)来选择最终的结果;

NMS就是通过打分来选出最好的结果,与这个结果重叠的对象去掉,是一个不断迭代的过程。

score = 某个对象的概率 * 置信度

所以对于每个网格有20*2个得分,每个对象有49*2个得分;这里的2是bounding box的个数;

具体的过程是:

1,设置一个分数阈值,低于的直接置为0;

2,遍历对于每个对象:

选出分数最高的那个及其bounding box放到输出列表中;

将其他的与上面选出的分数最高的那个

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值