为什么会叫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. android 网站上下的 adt 不能显示没有安装的

    问题描述 使用SDK Manager更新时出现问题Failed to fetch URL https://dl-ssl.google.com/android/repository/repository ...

  2. 33. Pay Gap for the Brightest Female Graduatea 最聪明的大学女毕业生面临的工资差距

    33. Pay Gap for the Brightest Female Graduatea 最聪明的大学女毕业生面临的工资差距 ① When young women were found to ma ...

  3. 201709012工作日记--Android消息机制

    1. android的消息机制——Handler机制 参考:http://www.jianshu.com/p/9e4d1fab0f36. Android异步消息处理机制完全解析,带你从源码的角度理解: ...

  4. (二进制 异或)Team Formation --ZOJ --3870

    链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3870 http://acm.hust.edu.cn/vjudge/ ...

  5. yum 常用命令

    yum是一个用于管理rpm包的后台程序,用python写成,可以非常方便的解决rpm的依赖关系.在建立好yum服务器后,yum客户端可以通过 http.ftp方式获得软件包,并使用方便的命令直接管理. ...

  6. EBS Archiving and Purging: You Know you need to

    A number of trends in the IT industry have contributed to the increasing size of ERP application dat ...

  7. Jersey Client Post Bean参数

    代码: public static void main(String[] args) { Student st = new Student("Adriana", "Bar ...

  8. TSQL--按某字段列分组,在将各组中某列合并成一行

    鉴于群里很多同事在问这个问题,我简单写个Demo,希望对初学者有帮助! 无真相,无解说,不解释,直接上Code! --========================================= ...

  9. C# WebAPI中使用Swagger

    随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.前后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远. 前端和后端的唯一联系变成了API接口:API文档变成了前 ...

  10. C#存储过程调用的三个方法

    //带参数的SQL语句 private void sql_param() { SqlConnection conn = new SqlConnection("server=WIN-OUD59 ...