必威体育Betway必威体育官网
当前位置:首页 > IT技术

YOLO

时间:2019-09-26 19:44:29来源:IT技术作者:seo实验室小编阅读:77次「手机版」
 

yolo

论文链接:https://arxiv.org/abs/1506.02640

自制PPT与讲解视频链接:https://github.com/DHUB721/Object-Detection (注:仅个人理解,如有错误请多多指正,轻喷,谢谢!)

1. 论文背景

作者在对比很多目标检测方法后发现,目前的目标检测方法都是基于分类的,本论文提出将目标检测作为一个回归问题来考虑。作为分类问题的缺点:(1)RCNN系列方法基本都是multi-stage任务(注:faster RCNN使用RPN替代RCNN/Fast RCNN的Selective Search模块,将RPN集成到Fast RCNN检测网络中,得到一个统一的检测网络。尽管RPN与Fast RCNN共享卷积层,但是在模型训练过程中,仍采用反复训练RPN网络和Fast RCNN网络方法)。(2)RCNN/Fast RCNN/Faster RCNN将检测结果分为两部分求解:物体类别(分类问题),物体位置(回归问题)。

作者将目标检测作为一个回归问题有明显的优点:(1)将一个网络同时预测Bounding Boxes与框的类别概率,速度非常快。(2)在训练与测试过程中充分利用全局信息(背景误检率低false positive)。(3)可以学习对象一般化的表示,因此具有更好的通用性。

但是YOLO也有识别物体位置精准性差、召回率低的缺点。

2. 论文亮点

We unify the separate components of object detection into a single neural network.

3. 论文细节

(1)If the center of an object falls into a grid cell, that grid cell is responsible for detecting that object. 如何判断一个对象的中心是否落在这个单元格内呢?目标的Bounding BOX(标注框)的中心点是否落在某个网格内。

(2)Each grid cell predicts B bounding boxes and confidence scores for those boxes. 每个网格单元预测B个bounding boxes,并且为每一个box预测一个置信度

在这里插入图片描述IoU好计算,但是如何判断一个对象在网格单元内呢?也就是 Pr(Object) 值怎么求? 参考上一点。

(3)Each grid cell also predicts C conditional class probabilities, Pr(Classi|Object). These probabilities are conditioned on the grid cell containing an object. 在网格单元有对象的前提下,计算该对象属于某个类别的概率,可是这个怎么计算呢? 这个概率是通过损失函数不断计算的,事先是不知道的。注:每个网格单元只能预测一组概率,不管有多少个Bounding Boxes,即不能对同一对象有两个不同的预测概率。

(4)which gives us class-specific confidence scores for each box. These scores encode both the probability of that class APPearing in the box and how well the predicted box fits the object. 这个概率表明预测的box属于某一类的概率。

在这里插入图片描述

(5)This pushes the “confidence” scores of those cells towards zero, often overpowering the gradient from cells that do contain objects. This can lead to model instability, causing training to perge early on. 为什么不包含对象的网格单元会严重“压迫”包含对象的网格单元的梯度?我认为:因为不包含对象的网格要远多于有对象的网格,若采用相同的权值,那么不包含对象的网格的confidence误差必然产生更大的影响,为平衡有无对象对更新权重的影响,采用系数进行限制。

(6)multi-part loss function:

在这里插入图片描述

损失函数中的 pi ( c ) 表示什么?我认为是Pr(Classi|Object)。

(7)选取最后预测结果:一般情况下,会设置置信度阈值,就是将置信度小于该阈值的box过滤掉,所以经过这层处理,剩余的是置信度比较高的预测框。最后再对这些预测框使用NMS算法,最后留下来的就是检测结果。但是YOLO却采用另外一种方式。对于98个boxes(一个框预测一个置信度),首先将小于置信度阈值的值归为0,然后分类别地对置信度值采用NMS,这里NMS处理结果不是剔除,而是将其置信度值归为0。最后才是确定各个box的类别(根据score位置索引),当其置信度值不为0时才做出检测结果输出。

4. 论文有待改进之处

(1)YOLO方法模型训练依赖于物体识别标注数据,对于非常规的物体形状或比例,YOLO的检测效果并不理想。

(2)YOLO采用了多个下采样层,网络学到的物体特征并不精细。

(3)YOLO loss函数中,在大物体和小物体上同等对待误差(虽然采用求平方根方式,但没有根本解决问题)。因此,对于小物体,小的误差也会对IoU产生很大的影响,从而降低了物体检测的定位准确性。

相关阅读

YOLO文章详细解读

文章《You Only Look Once: Unified, Real-Time Object Detection》提出方法下面简称YOLO。 目前,基于深度学习算法的一系列目标检

yoloV3的惊艳结果--比较yoloV2

转自:https://zhuanlan.zhihu.com/p/35394369【目标检测简史】进击的YOLOv3,目标检测网络的巅峰之作浩克匠心计算视觉与深度学习老

YOLOv3 论文翻译及解读

yolo系列介绍好文章:https://www.cnblogs.com/makefile/p/YOLOv3.html YOLOv3: An Incremental Improvement(一项渐进式的更新)

从YOLOv1到YOLOv3,目标检测的进化之路

本文来自 CSDN 网站,作

初学JetsonTX2之部署YOLO

本人准备使用YOLO进行人脸检测,硬件设备为Jetson TX2。查阅YOLO官网,要部署YOLO,首先要安装CUDA、CUDNN、OPENCV,然后部署Darknet,最后

分享到:

栏目导航

推荐阅读

热门阅读