【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来 ...
随机推荐
- elasticsearch 查询优化
首先对不必要的字段不做分词也就是不做索引,禁止内存交换 1.shard 一个Shard就是一个Lucene实例,是一个完整的搜索引擎. 分片数过多会导致检索时打开比较多的文件,多台服务器之间通讯成本加 ...
- 在计算机视觉与人工智能领域,顶级会议比SCI更重要(内容转)
很多领域,SCI是王道,尤其在中国,在教师科研职称评审和学生毕业条件中都对SCI极为重视,而会议则充当了补充者的身份.但是在计算机领域,尤其是人工智能与机器学习领域里,往往研究者们更加青睐于会议 我无 ...
- .Net实战之反射相关类之间的人体经络关系
--1.类的部分组成成员 --2.巧记成员之间的关系 [MyTable("T_UserInfo")] public class UserInfo : Person, UserSer ...
- TypeError: slice indices must be integers or None or have an __index__ method
由于除法/自动产生的类型是浮点型,因此出现上述错误,修正方法为,将/更改为// roi_gray_lwpCV = gray_lwpCV[y:y + h // 2, x:x + w] # 检出人脸区域后 ...
- Selenium 进行参数化
Selenium参数化分为大小: 小:list.dict.函数 大:txt.excel.mysql.redis 哪种方式使自己的工作简单高效就选那种!!! Selenium进行参数化有多种形式: 本文 ...
- 【C++】智能指针简述(三):scoped_ptr
在介绍scoped_ptr之前,我们先回顾一下前两篇文章的内容. 首先,智能指针采用RAII机制,通过对象来管理指针,构造对象时,完成资源的初始化;析构对象时,对资源进行清理及汕尾. auto_ptr ...
- outlook 2016 接收发送无法及时收下邮件,如何更改接收时间?
1. 单击“文件” > “选项” > “高级” > “发送和接收”,单击”发送/接收“ 2. 组“所有账户”的设置 > 打勾“安排自动发送/接收的时间间隔为(V)” 1 分钟 ...
- JS高级——Blob处理二进制文件
https://www.cnblogs.com/hhhyaaon/p/5928152.html
- Redis系列(七)--Sentinel哨兵模式
在上一篇文章了解了主从复制,主从复制本身的容错性很差,一旦master挂掉,只能进行手动故障转移,很难完美的解决这个问题 而本文讲解的sentinel可以解决这个问题 Redis sentinel示意 ...
- Tomcat 使用redis实现session共享
准备工作: 1.安装nginx 环境搭建参考:https://blog.csdn.net/fd2025/article/details/79878326 nginx.conf的编辑: 2.同一台机器配 ...