论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection

论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection


本文主要包含如下内容:

  论文地址
  参考博客


主要思想


  YOLO 的核心思想就是利用整张图作为网络的输入,仅仅经过一个 neural network, 直接在输出层回归 bounding box 的位置和 bounding box 所属的类别, 可以直接 end-to-end 的优化。


算法思想


  
  将一幅图像分成 SxS 个网格( grid cell ),如果某个 object 的中心落在这个网格中,则这个网格就负责预测这个 object。
  
  每个 grid cell 预测 B 个 bounding box 和其对应的 confidence scores (置信度得分)。这些 confidence scores 反映了 box 含有物体的置信度大小与 box 是否含有物体的概率大小。最后,作者定义置信度为。如果这个 grid cell 中不含有物体,则置信度为0。否则作者希望置信度得分等于预测出的 box 和 ground truth box 的 IOU (交集除以并集)。
  
  每个 bounding box 包含5个预测值: x,y,w,h 和 confidence。(x,y) 表示相对于 grid cell 边界的 box 中心点坐标。w 和 h 表示相对于整张图片的 box 宽高。最后,confidence 表示预测出的 box 与任一 ground truth box 的 IOU。每个 grid cell 也预测 C 种物体的条件概率,Pr(Classi|Object)。这个概率依托于 grid cell 中是否含有物体概率。不管 boxes B 有多少个,作者只为每个 grid cell 预测物体种类。输出就是 S x S x (5*B+C) 的一个 tensor。
  注意:class 信息是针对每个网格的,confidence 信息是针对每个 bounding box 的。
  在 test 的时候,每个网格预测的 class 信息和 bounding box 预测的 confidence 信息相乘,就得到每个 bounding box 的 class-specific confidence score:其中,等式左边第一项就是每个网格预测的类别信息,第二三项就是每个 bounding box 预测的 confidence。这个乘积即 encode 了预测的 box 属于某一类的概率,也有该 box 准确度的信息。
  
  得到每个box 的 class-specific confidence score 以后,设置阈值,滤掉得分低的 boxes,对保留的 boxes 进行 NMS 处理,就得到最终的检测结果。


网络结构


  
  网络训练部分,作者使用 ImageNet 进行初始训练,使用上图中的前20层加一个 maxpooling 层及两个全连接层进行训练,1星期训练得到 top-5error 为88%。

  接着,作者在上述网络后面添加了4个卷积网络层和2个全连接层,用于目标检测。这6层刚开始都是随机权值,由于检测需要更为精细的信息,作者将网络输入由224*224调整至448*448,后面这6层就是用于处理回归问题的。

  网络的最后一层预测 class 概率和 bounding box,在最后一层使用逻辑激活函数,其他层使用 leaky ReLU:
  


损失函数


存在问题:

  第一,8维的 localization error 和20维的 classification error 同等重要显然是不合理的;
  第二,如果一个网格中没有 object(一幅图中这种网格很多),那么就会将这些网格中的 box 的 confidence push 到0,相比于较少的有object的网格,这种做法是 overpowering 的,这会导致网络不稳定甚至发散。
  第三, 对不同大小的 box 预测中,相比于大 box 预测偏一点,小 box 预测偏一点肯定更不能被忍受的。

解决办法:

  更重视8维的坐标预测,给这些损失前面赋予更大的 loss weight, 记为在 pascal VOC 训练中取5。
  对没有 object 的 box 的 confidence loss,赋予小的 loss weight,记为在 pascal VOC 训练中取0.5。
  有 object 的 box 的 confidence loss 和类别的 loss 的 loss weight 正常取1。
  将 box 的 width 和 height 取平方根代替原本的 height 和 width.

  网络输出使用平方和误差,并引入尺度因子 λ 对类概率和 bounding box 的误差进行加权,同时为了反映出偏离在大的 bounding box 中的影响比较小,paper 使用 bounding box 宽高的平方根,最终的损失函数是: 损失函数:
  


网络缺陷


  由于 YOLO 具有极强的空间限制,它限制了模型在邻近物体上的预测,如果两个物体出现在同一个 grid cell 中,模型只能预测一个物体,所以在小物体检测上会出问题。如对于一群鸟儿,这种相邻数量很多,而且又太小的物体,YOLO 难以进行很好的检测。
  对测试图像中,同一类物体出现的新的不常见的长宽比和其他情况是。泛化能力偏弱。
  由于损失函数的问题,定位误差是影响检测效果的主要原因。loss 函数对大小 bounding box 采取相同的 error 也是个问题。


实验结果


   YOLO 的速度提升比较明显,在 voc2007 上的实验结果对比如下:

  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值