为什么会叫YOLO呢?

YOLO:you only look once。只需要看一眼,就可以检测识别出目标,主要是突出这个算法 快 的特点。(原文:Yolo系列之前的文章:主要是rcnn系列的,他们的基本思想都是通过产生大量的 region proposal,然后再用分类器去判断分类和对bounding box进行修正。为检测一个对象,在检测图像上的各个位置、不同尺度进行评估。

yolo系列的文章提出了一个不一样的思路。大致思想就是将物体检测任务当做一个回归问题来处理,在输出层对bounding box 的位置和所属类别进行回归。

1. yolo v1 的基本思想

we frame  object detection as a regressionproblem to spatially separated boundind boxes and associated classprobabilities.

我们设计将目标检测作为一个回归问题来处理空间分隔的边界框和相关的类概率

rcnn系列算法慢的原因:each individual component must be trainedseparately.

pipeline

使用YOLO来检测物体,其流程是非常简单明了的:

1、将图像resize到448 * 448作为神经网络的输入

2、运行神经网络,得到一些bounding box坐标、box中包含物体的置信度和class probabilities

3、进行非极大值抑制,筛选Boxes

问题:怎么产生box的?(带着问题去阅读)

Unified Detection(统一检测)

l 将输入图片划分成 S*S 的网格。如果目标的中心落入到网格内(我怎么知道目标的中心是否在网格内,注意是有监督的训练,给出的数据集会给出目标中心坐标),则这个网格就负责进行这个目标的检测

l 置信项反映包含目标的置信度和预测位置的准确度,相应的公式为  confidence = Pr(Object) * IOU

l 每个grid cell同时预测B个bounding box的位置和一个置信度。(这里的B个怎么理解:猜测意思就是每一个grid cell对应多个不同尺度比例的bbox

l 每个bounding box要预测(x,y, w, h)和confidence共5个值,每个网格还要预测一个类别信息,记为C类。

(x,y)表示框的中心相对于网格单元的边界的尺度;

(w,h)预测框相对于整个图像。

没有目标,则confidence就是零;有目标,confidence就是预测框与ground truth的IOU。

则SxS个网格,每个网格要预测B个bounding box还要预测C个categories。输出就是S x S x (5*B+C)的一个tensor。

上面这个公式表明了在box内类别出现的可能性和预测框匹配目标的好坏程度。

注意:class信息是针对每个网格的,confidence信息是针对每个bounding box的。

l 得到每个box的class-specificconfidence score以后,设置阈值,滤掉得分低的boxes,对保留的boxes进行NMS处理,就得到最终的检测结果。

根据图片描述整个算法过程

1.      输入一张图片,首先划分成 7*7 的网格grid cell。(接下来是每一个网格提取feature map,以便进行分类预测)

2.      将整张图片送进CNN网络,原图尺寸为448*448*3,经过CNN后变成了7*7*1024;

原来在原图上的一个grid cell, 大小是7*7*3(RGB图像,3通道),经过CNN后变成了 1*1*1024(也就是说原图上的一个7*7小格,对应的feature map 上 的一个像素点)

3. 最终448*448*3的图像,输出7*7*30的向量,30个通道的意思是(2*5+ 20)(20个通道,不同的通道提取出不同的信息,以便后面的处理)

20:使用Pascal VOC20数据集,分类种类数是20

2 :每一个grid cell对应两种不同尺度的bbox

5 :  bbox的5中信息,中心坐标x,y,宽和高w,h,置信度评分confidence

已知输入和输出,如何设计中间的卷积层?

2. Loss function

目标检测算法—YOLO-V1的更多相关文章

  1. 目标检测算法YOLO算法介绍

    YOLO算法(You Only Look Once) 比如你输入图像是100x100,然后在图像上放一个网络,为了方便讲述,此处使用3x3网格,实际实现时会用更精细的网格(如19x19).基本思想是, ...

  2. 目标检测:YOLO(v1 to v3)——学习笔记

    前段时间看了YOLO的论文,打算用YOLO模型做一个迁移学习,看看能不能用于项目中去.但在实践过程中感觉到对于YOLO的一些细节和技巧还是没有很好的理解,现学习其他人的博客总结(所有参考连接都附于最后 ...

  3. 目标检测之YOLO V1

    前面介绍的R-CNN系的目标检测采用的思路是:首先在图像上提取一系列的候选区域,然后将候选区域输入到网络中修正候选区域的边框以定位目标,对候选区域进行分类以识别.虽然,在Faster R-CNN中利用 ...

  4. 第三十五节,目标检测之YOLO算法详解

    Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: You only look once: Unified, real-time object de ...

  5. 目标检测算法的总结(R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD、FNP、ALEXnet、RetianNet、VGG Net-16)

    目标检测解决的是计算机视觉任务的基本问题:即What objects are where?图像中有什么目标,在哪里?这意味着,我们不仅要用算法判断图片中是不是要检测的目标, 还要在图片中标记出它的位置 ...

  6. CNN之yolo目标检测算法笔记

    本文并不是详细介绍yolo工作原理以及改进发展的文章,只用做作者本人回想与提纲. 1.yolo是什么 输入一张图片,输出图片中检测到的目标和位置(目标的边框) yolo名字含义:you only lo ...

  7. (六)目标检测算法之YOLO

    系列文章链接: (一)目标检测概述 https://www.cnblogs.com/kongweisi/p/10894415.html (二)目标检测算法之R-CNN https://www.cnbl ...

  8. 第三十六节,目标检测之yolo源码解析

    在一个月前,我就已经介绍了yolo目标检测的原理,后来也把tensorflow实现代码仔细看了一遍.但是由于这个暑假事情比较大,就一直搁浅了下来,趁今天有时间,就把源码解析一下.关于yolo目标检测的 ...

  9. 深度学习与CV教程(13) | 目标检测 (SSD,YOLO系列)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...

  10. 目标检测之YOLO V2 V3

    YOLO V2 YOLO V2是在YOLO的基础上,融合了其他一些网络结构的特性(比如:Faster R-CNN的Anchor,GooLeNet的\(1\times1\)卷积核等),进行的升级.其目的 ...

随机推荐

  1. 2018.09.29 bzoj3166: [Heoi2013]Alo(01trie+双向链表)

    传送门 01trie经典题目. 我们可以通过计算每个数作为次小值时对答案的贡献. 显然对于每个iii需要求出一个包含a[i]a[i]a[i]且的区间[l,r][l,r][l,r]且区间所有值都小于a[ ...

  2. 2018.07.03 BZOJ 1007: [HNOI2008]水平可见直线(简单计算几何)

    1007: [HNOI2008]水平可见直线 Time Limit: 1 Sec Memory Limit: 162 MB Description 在xoy直角坐标平面上有n条直线L1,L2,-Ln, ...

  3. 2018.09.01 hdu4405 Aeroplane chess (期望dp)

    传送门 期望dp简单题啊. 不过感觉题意不太对. 手过了一遍样例发现如果有捷径必须走. 这样的话就简单了啊. 设f[i]" role="presentation" sty ...

  4. Spring bean加载2--FactoryBean情况处理

    Spring bean加载2--FactoryBean情况处理 在Spring bean加载过程中,每次bean实例在返回前都会调用getObjectForBeanInstance来处理Factory ...

  5. HDU 1166敌兵布阵 2016-09-14 18:58 89人阅读 评论(0) 收藏

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  6. C++总的const使用说明

    C++总的const使用说明 1. const修饰类成员变量 程序: #include <iostream> using namespace std; class A { public: ...

  7. The Activities of September

  8. Android-Java-进程与线程

    1.进程:什么是进程: Mac操作系统,Windows操作系统 ...... 等等,都是由多个进程来运行(系统进程,普通进程,等) 操作系统最小的控制单元是进程,一个应用就是一个进程 进程 全称为:操 ...

  9. IOS下HTML5获取焦点 弹键盘

    IOS下sifari和webview默认屏蔽textarea/inputbox获取焦点弹出键盘 苹果移动设备的WebView默认屏蔽textarea/inputbox获取焦点弹出键盘,需要在APP页面 ...

  10. Windows10 家庭版添加【本地组策略编辑器】

    Windows10 家庭版默认没有[本地组策略编辑器],添加方法: 新建记事本复制以下内容 @echo off pushd "%~dp0" dir /b C:\Windows\se ...