论文笔记:You Only Look Once:Unified, Real-Time Object Detection(YOLO)

论文笔记:YOLO

简介

这是CVPR2016的一篇很经典的目标检测论文,一阶段目标检测鼻祖,提出了一个非常实时的目标检测算法。YOLO把检测问题视为一个单纯的回归问题,比起之前的算法,YOLO预测出假阳性结果(把背景预测成某个类别)的可能性比较低,但是位置误差比较大。当然,YOLO最大的特点就是速度快,可以实现实时检测。
论文笔记:You Only Look Once:Unified, Real-Time Object Detection(YOLO)_第1张图片

方法

  1. 将图片分成S*S个格子(s=7)
  2. 每个格子负责预测中心B个(B=2)落在格子内的物体的检测框和1个类别,x,y,w,h,confidence(都是0-1),和类别(20类的话,就是20个0-1范围的数字表示每个类别的概率),也就是网络输出尺寸是一个20+2*5的向量
  3. 通过每个格子预测出的向量,就可以知道所有的检测结果(检测框中心位置、尺寸、confidence、类别),再通过设置阈值和NMS,就可以把符合要求的结果筛选出来。
网络设计

论文笔记:You Only Look Once:Unified, Real-Time Object Detection(YOLO)_第2张图片

训练

loss采用SSE(平方和误差),因为这样的loss容易训练,但是这样的话,会存在这几个问题:

  1. 位置误差和分类误差同等对待并不合理
  2. 很多格子里面没有任何物体,直接这么训练容易让所有confidence收敛到0

因此,增加有物体的格子的loss权重,减小没有物体的格子的loss权重,取λcoord = 5 , λnoobj = 0.5进行加权计算loss。
此外,为了反映小物体的尺寸小偏差比大物体的尺寸小偏差影响严重,box宽高选择开根后误差的平方进行计算。
计算公式如下:

论文笔记:You Only Look Once:Unified, Real-Time Object Detection(YOLO)_第3张图片

局限性

  • 每个格子只能预测两个框,一个类别,导致网络难以处理成群小目标;
  • 难以处理长宽比不寻常的目标;
  • 训练时对大小目标的误差一视同仁,然而实际上一个小偏差对于大目标来说影响很小,但是对于小目标来说影响很大。

实验结果

论文笔记:You Only Look Once:Unified, Real-Time Object Detection(YOLO)_第4张图片
论文笔记:You Only Look Once:Unified, Real-Time Object Detection(YOLO)_第5张图片

你可能感兴趣的:(论文笔记,目标检测)