文章目录

  • 1. one-stage与two-stage检测算法
  • 1. 模型过程
    • 1.1 grid cell
    • 1.2 bounding box与confidence score
    • 1.3 类别预测
    • 1.4 预测目标
  • 2. 网络的学习
    • 2.1 网络输出的数据与预测集数据
    • 2.2 损失函数
    • 2.3 网络的设计

1. one-stage与two-stage检测算法

two-stage:
one-stage目标检测算法:一步到位,速度较快。

yolo_v1的基本思想:预测框的位置、大小和物体分类都通过CNN暴力predict出来。

1. 模型过程

yolo v1进行目标检测的过程如下图所示

就拿yolo如何检测出这只小狗的过程来说,引出yolo是如何进行目标检测和在这个过程中的相关概念。

1.1 grid cell

首先,将图片分为7*7的网格,每个网格叫做grid或则和grid cell。所以一张图片有49个grid。如果一个目标的中心位置落在某个格子,那么这个格子就负责检测出这个目标(If the center of an object falls into a grid cell, that grid cell is responsible for detecting that object.)。比如下面狗的中心落在(5,2)grid,所以该grid负责预测狗。

1.2 bounding box与confidence score

上文中含有小狗中心的那个grid cell会预测2个bounding boxes(边界框)和这些框框的confidence scores(置信度分数)。
这些confidence scores反映了模型对框中包含对象的置信度,以及它认为框预测的准确性。也就是一个bounding box对应一个confidences score
在这里,需要明确一点,一个grid cell会有多个bounding box,而每个bounding box会有一个confidence score。比如,下面的一个grid cell就有三个bounding box。每个bounding box会对应一个confidences score

其中,confidences score的定义公式为:
置信度=Pr(Object)∗IOUpredtruth置信度=Pr(Object)*IOU^{truth}_{pred} 置信度=Pr(Object)∗IOUpredtruth​
其中,Pr(Object)代表bounding box对应的grid cell中是否有含有物体中心。若有,为1,若没有,则为0(没有的话,计算IOU没有任何意义)。
关于IOU,它表示的是真实框与预测框的交并比。其意义如下图所示。

所以confidences score代表其所对应的bounding box预测能力的强弱。

每个bounding box有5个属性,x、y、w、h和confidence core。(x,y)表示的是某个grid cell下的bounding box的中心(The (x, y) coordinates represent the center of the box relative to the bounds of the grid cell.)。w和h表示预测的图片的宽和高(个人理解,w和h就是bounding box的宽和高)。最后,confidence反应的是预测图像和真实图像的IOU。

1.3 类别预测

每个grid cell有预测C个条件概率:Pr(Classi|Object),即在一个grid cell包含一个Object的前提下,它属于某个类的概率。 每个网格单元预测一组类概率,不管框的数量是多少。也就是说,类别预测只是跟grid cell是相关的,与这个grid cell有多少个bounding box无关。

最终每个网格会得到一个30维度向量。

所以,最后一张图片会生成一个7730的张量。

其中,置信度confidence score计算为

所以上面说的类别预测的条件概率乘以单个盒子的置信度即:
=Pr(Classi)∗IOUpredtruth=Pr(Class_{i})*IOU^{truth}_{pred} =Pr(Classi​)∗IOUpredtruth​
这个给了我们每个box一个分数特殊类别预测。这些分数编码了类出现在框中的概率以及预测框与对象的匹配程度。

1.4 预测目标

在测试阶段,将每个网格的类别预测与每个 bounding box的 confidence相乘:
在有目标中心的情况下,即Pr(Object)不等于0
Pr(Classi∣Object)∗置信度=Pr(Classi∣Object)∗Pr(Object)∗IOUpredtruth=Pr(Classi)∗IOUpredtruthPr(Class_{i}|Object)*置信度=Pr(Class_{i}|Object)*Pr(Object)*IOU^{truth}_{pred} =Pr(Class_{i})*IOU^{truth}_{pred} Pr(Classi​∣Object)∗置信度=Pr(Classi​∣Object)∗Pr(Object)∗IOUpredtruth​=Pr(Classi​)∗IOUpredtruth​
这是我看到的一篇博客的图。

在训练过程中,关于拿如何把狗这个对象预测出来。整个过程有三点:

首先,将整个图片分成S*S个grid cell(网格)。每个grid cell会预测B个(多个)

2. 网络的学习

对于上面的过程,可能会有如下疑问:

  1. 模型是如何知道“狗”的中心点在哪个网格,或者说模型是如何知道网格中是否包含物体中心点
  2. 模型是如何选择bbox的,即预测框是如何框的
  3. 模型是如何预测方框中的对象是“狗”,而不是猫或者其他的东西

2.1 网络输出的数据与预测集数据

由1中可知,神经网络每次回输出7730(即SS(B*5+C))的张量。
对于每个网格会输出一个30维张量。
同时,我们的数据集经过处理过后,会有一个25维的张量(一个真实框+类别)。
拿预测的值和真实值进行对比。以此达到训练的目的。
所以:

  1. 模型开始并不知道“狗”的中心点在哪个网格,它会随机预测一个,拿它与真实值对比。以此达到学目的。
  2. 模型开始也是随机选择bbox的,然后拿它跟真实框对比,以此来学习。
  3. 至于预测网格中对象是“狗”而不是“猫”,则是类似于手写识别字

2.2 损失函数

损失函数的设计目标就是让坐标(x,y,w,h),confidence,classification 这个三个方面达到很好的平衡。

2.3 网络的设计

YOLO的检测网络分为24个卷积层和2个全连接层,如下图所示:

其中,卷积层用来提取图像特征,全连接层用来预测图像位置和类别概率。

《You Only Look Once: Unified, Real-Time Object Detection》YOLO一种实时目标检测方法 阅读笔记(未完成版)相关推荐

  1. Tensorflow object detection API 搭建自己的目标检测模型并迁移到Android上

    参考链接:https://blog.csdn.net/dy_guox/article/details/79111949 之前参考上述一系列博客在Windows10下面成功运行了TensorFlow A ...

  2. 使用tensorflow object detection API 训练自己的目标检测模型 (三)

    在上一篇博客"使用tensorflow object detection API 训练自己的目标检测模型 (二)"中介绍了如何使用LabelImg标记数据集,生成.xml文件,经过 ...

  3. 【目标检测论文阅读笔记】Feature-Enhanced CenterNet for Small Object Detection in Remote Sensing Images

    Abstract: 与 anchor-based基于锚点的检测器相比,anchor-free无锚点检测器 具有灵活性和较低计算复杂度的优点.然而,在复杂的遥感场景中,受限的几何尺寸.目标的弱特征 以及 ...

  4. 使用tensorflow object detection API 训练自己的目标检测模型 (二)labelImg的安装配置过程

    上一篇博客介绍了goggle的tensorflow object detection API 的配置和使用, 这次介绍一下如何用这个API训练一个私人定制的目标检测模型. 第一步:准备自己的数据集.比 ...

  5. Tensorflow object detection API训练自己的目标检测模型 详细配置教程 (一)

    Tensorflow object detection API 简单介绍Tensorflow object detection API: 这个API是基于tensorflow构造的开源框架,易于构建. ...

  6. 毫米波目标检测论文 阅读笔记 | Radar Transformer: An Object Classification Network Based on 4D MMW Imaging Radar

    毫米波目标检测论文 | Radar Transformer: An Object Classification Network Based on 4D MMW Imaging Radar Jie Ba ...

  7. 【视频目标检测论文阅读笔记】Optimizing Video Object Detection via a Scale-Time Lattice

    1.1 论文信息 标题 Optimizing Video Object Detection via a Scale-Time Lattice 会议 CVPR 2018 原文链接 Optimizing ...

  8. CVPR,2018,THP-Towards High Performance Video Object Detection面向高性能的视频目标检测

    CVPR是IEEE Conference on Computer Vision and Pattern Recognition的缩写,IEEE国际计算机视觉与模式识别会议.该会议是由IEEE举办的计算 ...

  9. CL3D: Camera-LiDAR 3D Object Detection With Point Feature Enhancement and Point-Guided Fusion 阅读笔记

    IEEE Transactions on Intelligent Transportation Systems  智能交通系统领域top期刊 一区 IF=9.55 摘要 Camera-LiDAR三维目 ...

最新文章

  1. 话里话外:从“种房子”谈流程与制度的差别
  2. Hibernate实体映射配置1(java@注解方式)
  3. 一些常用的字符串方法
  4. 计算机组成原理alu功能实现代码_计算机组成原理小课堂(3)——易错知识点...
  5. cell数组变为字符串_字符串匹配 ---- BM 算法原理
  6. Database2Sharp之混合型Winform框架代码生成
  7. C#程序设计语言2.0简介
  8. 去除Xcode6创建工程时自带的storyboard
  9. linux 终端 qmake,qt中的qmake命令设置
  10. Ecshop去版权方法?如何去除Ecshop版权?
  11. 6.这就是搜索引擎:核心技术详解 --- 链接分析
  12. 按键精灵手机助手找回素材
  13. PJSIP添加G729编码
  14. OpenStack环境下安装Mistral
  15. 皮尔森相关系数的python实现_深入理解皮尔逊相关系数python代码
  16. 排线颜色及排序视觉检测系统
  17. php设置延迟代码执行,PHP实现延迟执行程序
  18. mysql成绩表_mysql--学生课程成绩表
  19. [Swift]LeetCode120. 三角形最小路径和 | Triangle
  20. github删除repository

热门文章

  1. python播放音乐同步歌词_python终端播放音乐同定制步显示本地或网络歌词
  2. web服务器获取项目路径问题,读取web项目properties文件路径 解决tomcat服务器找不到properties路径问题...
  3. jsp mysql修改密码_Servlet+JSP+MySQL实现用户管理模块之七、实现用户信息更新和重置密码...
  4. 多特征值数据预处理_「人工智能」No.6 特征工程之数据预处理
  5. 七月在线 《关键点检测概览与环境配置》
  6. tornado连接数据库
  7. 【Python金融量化 6- 100 】、六、蒙特卡洛预测微软股票
  8. CVPR 2021 | 自适应激活函数ACON:统一ReLU和Swish的新范式
  9. 限时免费 | 人工智能项目实战训练营,给你一个成为AI算法工程师的机会
  10. 中文数据集有奖公开征集