“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帧图像,缺点是定位误差易出错

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

yolo算法部分简单理解相关推荐

  1. 协同过滤算法的简单理解《推荐系统实践》

    协同过滤算法的简单理解 本文主要是讲解一下<推荐系统实践>中UserCF和ItemCF这两种基于领域的推荐算法,写出自己的理解. UserCF(基于用户的协同过滤算法) 这种推荐算法的出发 ...

  2. KMP算法的简单理解

    引入 对于串的匹配,较为简单的有BF算法,但这种方法的可用性却较差.因为在每次不匹配的时候,主串(m位)和子串(n位)都会回溯,有一种最坏的情况就是,主串每前进一位,都在n次匹配后失败然后回溯,如: ...

  3. RANSAC算法的简单理解

    图像拼接中看到了特征匹配的部分,特征匹配主要是特征点的匹配.在特征点匹配的时候,首先进行粗匹配,粗匹配通常是进行一对匹配点进行对比,误差越小越可能是一对匹配点:精匹配方法中,我们可以用到RANSAC( ...

  4. BOOTH 算法的简单理解

    学习FPGA时,对于乘法的运算,尤其是对于有符号的乘法运算,也许最熟悉不过的就是 BOOTH算法了. 这里讲解一下BOOTH算法的计算过程,方便大家对BOOTH的理解.        上图是BOOTH ...

  5. 图像分割算法——Normalized Cuts(Ncuts) 算法的简单理解

    ​ 最近在做毕业设计,看文献综述时查了一些资料,打算在CSDN上对现有的图像分割方法做一些简单的笔记: 首先需要介绍的是,该算法是一种基于图论的算法:将图像整幅图像映射为一幅带权值的无向图G=(V, ...

  6. 迪杰斯特拉算法。简单理解。内含示例

    参考视频:https://www.bilibili.com/video/BV1oV411R7Yo 视频讲解通俗易懂.建议1.5倍速食用! 下面的总结,估计仅仅适合我自己看.不太明白的地方.请去原视频观 ...

  7. CPD配准算法及代码的简单理解(Coherent Point Drift)

    我的毕业设计用到了CPD算法,以及CPD代码工具包,当时刚开始接触CPD时在网上没找到几篇教程或是经验总结的东西.现在毕设做完了,就结合我的理解写一篇文章.可能写的会有点乱,因为我也是一时兴起想要做一 ...

  8. 人工智能:深度学习算法及应用——简单理解CNN卷积神经网络并python实现(带源码)

    深度学习算法及应用 一. 实验目的 二. 实验要求 三. 实验的硬件.软件平台 四. 实验原理 1.1. 深度学习概述 1.2. 深度学习的常见结构 1.3. 卷积神经网络(CNN) **卷积** * ...

  9. 直观地简单理解Tarjan算法(寻找有向图中的强连通图)

    简单理解Tarjan算法   按照百度百科的播报应该是读成['ta:rdʒən]?看过了几篇网络上的解释虽然都讲得比较具体但刚开始都难以理解,所以打算写一个更直观的理解方式.   Tarjan算法是求 ...

  10. YOLO目标检测算法的深入理解

    YOLO框架概述 YOLO(You only look once)是一种目标检测算法,目标检测算法分为两大任务:目标分类和定位,YOLO创造性的将候选区和对象识别这两个阶段合二为一,看一眼图片(不用看 ...

最新文章

  1. java weka 聚类_简单开源数据挖掘工具weka进行文本聚类
  2. 【数据结构基础】-线性表的顺序实现(数组实现)基本操作
  3. python中使用C类型的数组
  4. linux7.0 端口占用,Windows 7如何处理 80端口被占用
  5. mysql社工库搭建教程,分享我的社工库的裤子+sphinx社工库搭建教程
  6. 四叶草clover配置工具:Clover Configurator for Mac
  7. usb声卡驱动(五):声卡驱动的开始
  8. PMP 项目沟通管理
  9. FOI2022 夏令营基础班 day1题解
  10. 电脑右下角没有看到小喇叭图标了该怎么办
  11. 给学计算机的男友买什么礼物,毕业季,男朋友初入职场送礼好物推荐!
  12. Stata连享会:分享一大堆资料
  13. oracle教程课件,Oracle入门教程(PPT课件)
  14. [算法]Floyd-Warshall算法理解
  15. 个人大数据征信查询浅谈与撸待现象
  16. CICD使用阿里云 云效实现自动发布代码
  17. 因计算机而强大在线读,读书分享会丨《因计算机而强大:计算机如何改变我们的思考与学习》...
  18. MP1584降压芯DC-DC设计总结
  19. appnode环境软件命令参考 - AppNode帮助中心
  20. php 百度大搜信息流跳转技术,百度竞价跳转代码,

热门文章

  1. 白帽子讲Web安全pdf
  2. 查看局域网内的所有设备的IP地址
  3. html iframe jsp页面跳转页面,js页面跳转和js对iframe进行页面跳转、刷新
  4. JAVA JVM优化总结
  5. 常用的18个免费论文文献网站,分享给大家
  6. java时间格式转换
  7. 大数据、智慧城市与智慧交通 (全集)
  8. mysql5.7 jmeter_JMeter5连接Mysql数据库
  9. 2、如何利用CommMonitor串口监控,抓取串口Modbus RTU数据包
  10. easyexcel导出excel文件之图片导出