【CV论文阅读】YOLO:Unified, Real-Time Object Detection
YOLO的一大特点就是快,在处理上可以达到完全的实时。原因在于它整个检测方法非常的简洁,使用回归的方法,直接在原图上进行目标检测与定位。
多任务检测:
网络把目标检测与定位统一到一个深度网络中,而且可以同时在原图上检测多个物体。步骤总结如下:
(1)把图片分割成S*S个方格,假如某个物体的中点落在其中一个方格,那么这个方格就对这个物体负责。这里说的物体的中点应该是指ground truth box中的物体的中心。
(2)对于每个格子,预测B个bounding box以及相应的confidence。Bounding box 的如何选择让我思考了一番,回忆起faster cnn中,在网络上预测bounding box会有比例与大小,但这里不需要,因为faster cnn中的box的选择其实算是regoin proposal的一部分,而在YOLO这个box直接通过回归方程计算出来的。在这里,confidence的计算包含两个部分:
,当格子中没有物体,则Pr(Object) = 0,否则等于1。可以从式子中看到,它包含了是否存在物体以及预测的精确度两个方面的信息。除此以外,对于bounding box会有四个坐标即x、y、w、h。
(3)对于每个含有物体的格子预测C个类别的概率信息,而且每个格子还要预测B个box,这样最后会得到S*S*(B*5+C)的张量。
以上是根据ground truth box训练的部分。
(4)在test的时候,预测到了S*S*(B*5+C)的张量,把类别概率与confidence相乘,
就得到每个bounding box 的class – specific confidence分数
(5)根据以上得到的分数设置阈值进行过滤,然后执行NMS处理,得到最终检测结果。

网络结构:
网络结构与GoogLeNet非常相似,都使用了1*1的卷积核压缩信息,构造更加非线性的抽象特征,因为这相当于多层感知机的作用。论文中截图的结构,从通道数来看,中间应该缺少了一些卷积层。

一些细节问题:
预训练:使用imageNet预训练,网络结构是前20层网络加上一个平均池化层和一个全连接层。
预测:由于预测需要更加精细的像素,所以把输入扩展成448*448,并且增加了四个卷积层和两个全连接层。在最后一层预测中,需要预测概率和bounding box,这里把bounding box的预测归一化成0到1。
激活函数:最后一层的激活函数使用线性激活函数,而其他层使用leaky ReLU的激活函数:

误差传播:误差的计算采用简单的平方和误差函数。但是,从网络结构可以知道,预测概率的维数比预测bounding box的维数要高,而且,在图片中大多的格子是没有物体的,这会使得它们的confidence趋于0。它们的贡献过大,会使得网络无法收敛。
论文采用一个办法就是加权,赋予不同的权值,对于预测bounding box的
,而对于没有object的格子的误差赋予权值
。同时,对于大的box的小误差肯定要比小box的小误差影响更小,于是,采用对w,h,x,y取平方根的做法,因为平方根函数的图像随着x的增大会变得平缓。
此外(这里还没搞得太明白),一个网格可能会预测多个box,希望每个box负责专门的object的预测。方法是,对于一个物体的truth box,看哪个bounding box的IOU更大,就让它负责这个box。我估计这个负责的分配会随着每次的网络的更新会动态的改变选择。前提是,object的中心要落在那个格子里面,于是公式为:

其中
对应格子i如果有物体,那相应的bounding box j负责这个物体的预测。
表示格子i中是否有物体。
训练方法:使用随机梯度下降法,以及dropout的方法。
缺点:
(1)对于靠近的物体,还有很小的群体预测不好。这是因为格子预测的框属于一类的,而且往往格子较大,不能精细。
(2)对于不寻常的长宽比的物体,泛化能力偏弱
(3)误差函数影响定位的精确性。
【CV论文阅读】YOLO:Unified, Real-Time Object Detection的更多相关文章
- 论文阅读 | FCOS: Fully Convolutional One-Stage Object Detection
论文阅读——FCOS: Fully Convolutional One-Stage Object Detection 概述 目前anchor-free大热,从DenseBoxes到CornerNet. ...
- 论文阅读之 DECOLOR: Moving Object Detection by Detecting Contiguous Outliers in the Low-Rank Representation
DECOLOR: Moving Object Detection by Detecting Contiguous Outliers in the Low-Rank Representation Xia ...
- 论文阅读:Adaptive NMS: Refining Pedestrian Detection in a Crowd
论文阅读:Adaptive NMS: Refining Pedestrian Detection in a Crowd 2019年04月11日 23:08:02 Kivee123 阅读数 836 ...
- 【CV论文阅读】 Fast RCNN + SGD笔记
Fast RCNN的结构: 先从这幅图解释FAST RCNN的结构.首先,FAST RCNN的输入是包含两部分,image以及region proposal(在论文中叫做region of inter ...
- 论文阅读:Review of Visual Saliency Detection with Comprehensive Information
这篇文章目前发表在arxiv,日期:20180309. 这是一篇针对多种综合性信息的视觉显著性检测的综述文章. 注:有些名词直接贴原文,是因为不翻译更容易理解.也不会逐字逐句都翻译,重要的肯定不会错过 ...
- [论文理解] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 简介 Faster R-CNN是很经典的t ...
- 论文笔记:Structure Inference Net: Object Detection Using Scene-Level Context and Instance-Level Relationships
Structure Inference Net: Object Detection Using Scene-Level Context and Instance-Level Relationships ...
- [论文理解]Focal Loss for Dense Object Detection(Retina Net)
Focal Loss for Dense Object Detection Intro 这又是一篇与何凯明大神有关的作品,文章主要解决了one-stage网络识别率普遍低于two-stage网络的问题 ...
- 【CV论文阅读】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
由RCNN到FAST RCNN一个很重要的进步是实现了多任务的训练,但是仍然使用Selective Search算法来获得ROI,而FASTER RCNN就是把获得ROI的步骤使用一个深度网络RPN来 ...
随机推荐
- 268 Missing Number 缺失的数字
给出一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数.案例 1输入: [3,0,1]输出: 2案例 2输入: [9,6,4,2,3,5,7, ...
- 横向移动-广告图(web)
项目 (移动的广告牌) 要求: 1,实现图片一次以移动的方式出现,到最后一张完全出现时,回弹到第一张 2,鼠标放在图片上面图片移动,鼠标离开,图片停止移动 HTML结构 <!DOCTYPE ht ...
- gdb如何保存和读取断点
刚开始在linux下学编程使用gdb的同学可能会发现,每次用gdb设置断点调试程序,但下次打开的时候所有断点都没有了,很不方便.下面介绍保存和读取断点的方法. 1. 保存断点 先用info b 查看一 ...
- 冒泡 [Python]
冒泡Python class BubbleSort: def __init__(self): self.initArr() def initArr(self): self.arrInfo = [60, ...
- ProcessBar 与SeekBar进度条
1.进度条关键属性 2.进度条的常用方法 progress = (ProgressBar) findViewById(R.id.horiz); (1)获取第一进度条:progress.getProgr ...
- 配置服务器 Ubuntu 记录+踩坑
从零开始配置服务器用于ss+站点 1. SS 首先安装pyenv,安装pyenv之前先安装必要环境,具体命令行请见: https://github.com/pyenv/pyenv/wiki/Commo ...
- Crash (computing)
In computing, a crash (or system crash) occurs when a computer program, such as a software applicati ...
- 打造完美的ImageLoader——LruCache+DiskLruCache
做android应用少不了要和网络打交道,在我刚开始学android的时候总是处理不好网络图片的加载,尤其是图片乱跳的问题,后来发现了各种缓存图片的方法:本地缓存.软引用.LruCache.... 我 ...
- block相关归纳
经过今天的Block的学习.上网查询相关文章归纳了一下 一.一个使用Block的好处有: Block可以用在许多不同的环境中,这样可以让代码更加简单,以及减少函数声明的数量,不用实现代理协议. 简单性 ...
- ORACLE 查看当前用户信息(用户,表视图,索引,表空间,同义词,存储过程,约束条件)
1.用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select ...