yolo算法部分简单理解

“You Only Look Once”或“YOLO”是一个对象检测算法的名字

“You Only Look Once”的意思是只看一次,进一步把目标判定和目标识别两个步骤合二为一,所以识别速度有了很大提升

YOLO系列是one-stage且是基于深度学习的回归方法,而R-CNN、Fast-RCNN、Faster-RCNN等是two-stage且是基于深度学习的分类方法。

什么是one-stage?

目前的目标检测算法分为两类,一类是two-stage(两阶段)一类是one-stage(单阶段),two-stage检测算法把检测问题划分为两个阶段,先产生候选区,然后对候选区分类,他们识别错误率低,漏识别率也较低,缺点是速度较慢,而one-stage没有生成先验框,不需产生候选区域则为单阶段,直接产生物体的类别概率和位置坐标值,经过单次检测就可以直接给出最终的检测结果

one-stage的意思是直接回归物体的类别概率和位置坐标值

one-stage的目标检测方法是直接通过主干网络给出类别和位置信息,没有使用RPN网路。这样的算法速度更快,但是精度相对Two-stage目标检测网络了略低

YOLO将对象检测重新定义为一个回归问题。它将单个卷积神经网络(CNN)应用于整个图像,将图像分成网格,并预测每个网格的类概率和边界框。Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测,核心思想是利用整张图作为网络的输入,直接在输出层回归 bounding box(边界框)的位置及其所属的类别,相比R-CNN算法,其是一个统一的框架,其速度更快。

yolo网络结构简单,是单纯的做卷积操作,池化后加了两层全连接,这里先拿yolov1来简单讲述

yolo v1首先利用了卷积神经网络进行了特征提取

利用整张图作为网络的输入,直接在输出层回归bounding box的位置及其所属的类别。将一幅图像分成 SxS 个网格,如果某个对象(object) 的中心落在这个网格中,则这个网格就负责预测这个对象。 

每个网格要预测 B 个 bounding box,每个 bounding box 除了要回归自身的位置之外,要附带预测一个 confidence 值。confidence表征的是对应的bounding box是否包含目标以及该bounding box对目标位置的预测是准确程度。代表了所预测的bounding box中是否含有object和若有object,这个object预测得有多准的两重信息。还有C个类别的概率,与分类中的类别预测类似,主要在于这个类别概率是在边界框内包含目标的前提下的概率,所以称为条件类别概率其中每个bounding box包含5个值,分别是目标的中心点坐标(x, y),目标宽度和高度(w, h)以及confidence,所以每个网格的输出就是(5+C)的Tensor(张量),共有SxS个网格,那么网络的完整输出就是SxSx(B*5 + C)的Tensor。

yolov1基础版网络是24层卷积+两个全连接层。

Yolo的训练过程是end-to-end的,ImageNet上分类预训练前20层,在加上4个卷积,2个全连接层训练检测网络。最后一个网络层的输出是类概率和边界框坐标,使用线性激活函数,使用平方差进行优化

为了优化神经网络,应用到了损失函数,损失就是网络实际输出值与样本标签值之间的偏差,

在进行模型训练时,我们需要构造训练样本和设计损失函数,才能利用梯度下降对网络进行训练。模型预测,将图片resize成448x448的大小,送入到yolo网络中,输出一个 7x7x30 的张量(tensor)来表示图片中所有网格包含的对象概率以及该对象可能的2个bounding box和置信度。在采用NMS(非极大值抑制)算法选出最有可能是目标的结果。

YOLO 结构十分的快,标准的 YOLO 版本每秒可以实时地处理45帧图像,缺点是定位误差易出错

本文仅做了解作用,专业性并不强

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值