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

GitHub源码地址:https://github.com/pjreddie/darknet

翻译:
http://noahsnail.com/2017/08/02/2017-8-2-YOLO%E8%AE%BA%E6%96%87%E7%BF%BB%E8%AF%91%E2%80%94%E2%80%94%E4%B8%AD%E6%96%87%E7%89%88/

理解参考:
https://zhuanlan.zhihu.com/p/25236464

核心技术:
YOLO将输入的图像分割为SxS个格子,如果一个检测目标的中心落入一个单元格中,则该网格负责检测该目标.
例如下图中的狗就由第五行,第二格的格子负责预测狗的boundingbox.
YOLO-论文笔记-理解
每个网格单元预测这些盒子的B个边界框和置信度分数。这些置信度分数反映了该模型对盒子是否包含目标的信心,以及它预测盒子的准确程度。在形式上,我们将置信度定义为Pr(Object)IOUpredtruth.如果该单元格中不存在目标,则置信度分数应为零。否则,我们希望置信度分数等于预测框与真实值之间联合部分的交集(IOU).

每个边界框包含五个预测:x,y,w,h和置信度,(x,y)坐标表示边界框相对于网格单元边界框的中心坐标,宽度和高度是相对于整个图片进行预测的.最后置信度预测表示预测框和实际边界框之间的IOU.

每个网格单元还预测C个条件类别概率Pr(Classi|Object).这些概率以包含目标的网格单元为条件,每个网格单元我们只预测一组类别概率,不管边界框的数量B是多少(每个网格单元只对一个目标负责).

例如在Pascal VOC上进行训练测试的时候,使用S=7,B=2,.Pascal VOC有20个标注类,所以C=20,最终得到的就是一个7x7x30的张量.

网络结构如下:
YOLO-论文笔记-理解

Loss Function定义:
YOLO使用均方和误差作为loss函数来优化模型参数,即网络输出的S*S*(B*5+C)维向量与真实图像的对应S*S*(B*5+C)维向量的均方和误差.其中coordError,iouError,classRrror分别代表预测数据与标定数据之间的坐标误差,IOU误差和分类误差.

loss=i=0s2coordError+iouError+classError

YOLO对上面这个loss function进行了一些修正.
1)位置相关误差(坐标,IOU)与分类误差对网络loss的共享值是不同的,因此YOLO在计算loss时,使用λcoord=5修正coordError
2)在计算IOU的时候,包含物体的格子与不包含物体的格子,二者的IOU误差对loss的共享是不同的,若采用相同权重,那么不包含物体的格子的confidence值近似为0,变相放大了包含物体的格子的confidence误差在计算网络参数梯度时的影响。为解决这个问题,YOLO 使用λnoobj=0.5修正iouError(注此处的‘包含’是指存在一个物体,它的中心坐标落入到格子内).
3)对于相等的误差值,大物体误差对检测的影响应小于小物体误差对检测的影响。这是因为,相同的位置偏差占大物体的比例远小于同等偏差占小物体的比例。YOLO将物体大小的信息项(w和h)进行求平方根来改进这个问题。(注:这个方法并不能完全解决这个问题
(注:此部分转载自知乎用户”赵丽丽”的专栏文章)
下面是YOLO中优化的多部分损失函数.
loss=λcoordi=0s2j=0B1ijobj[(xix^i)2+(yiy^i)2]+λcoordi=0s2j=0B1ijobj[(wiw^i)2+(hih^i)2]+i=0s2j=0B1ijobj(CiC^i)2+λnoobji=0s2j=0B1ijnoobj(CiC^i)2+i=0s21iobjcclasses(pi(c)p^i(c))2

其中1iobj表示目标是否出现在网格单元i中,1ijobj表示网格单元i中的第j个边界框预测器负责该预测.
注意,如果目标存在于该网格单元中(前面讨论的条件类别概率),则损失函数仅惩罚分类错误。如果预测器“负责”实际边界框(即该网格单元中具有最高IOU的预测器),则它也仅惩罚边界框坐标错误。

突出贡献:
YOLO将物体检测作为回归问题求解。基于一个单独的end-to-end网络,完成从原始图像的输入到物体位置和类别的输出
.同时达到速度快效果好的目标.

缺陷:
虽然每个格子可以预测B个bounding box,但是最终只选择只选择IOU最高的bounding box作为物体检测输出,即每个格子最多只预测出一个物体。当物体占画面比例较小,如图像中包含畜群或鸟群时,每个格子包含多个物体,但却只能检测出其中一个。这是YOLO方法的一个缺陷。
1)对小物体的检测效果不够好.
2)对boundingBox的预测不够精确.

相关文章:

  • 2022-02-28
  • 2021-07-24
  • 2021-08-06
  • 2021-06-22
  • 2021-11-18
  • 2021-06-27
猜你喜欢
  • 2021-09-22
  • 2021-05-11
  • 2021-07-26
  • 2021-10-12
  • 2022-01-14
  • 2021-09-08
相关资源
相似解决方案