YOLO(You Only Look Once:Unified, Real-Time Object Detection)是目标检测中的一种重要方法,
其最核心的内容可以通过YOLOv1这篇论文了解。
一、摘要
之前的目标检测主要是使用分类器进行检测,而YOLO则是将目标检测视为回归问题。对边界框与分类任务使用一个网络即可。
二、介绍
与之前的目标检测方法(先生成预测框再通过分类器)不同,YOLO直接从像素得到预测框与类别,并且由于其网络结构单一,可以达到非常快的检测速度。(在Tian GPU上基本网络运行速率为150fps)。与滑动窗口和基于区域建议的技术不同,YOLO在训练期间是一个全局的过程,其隐含的编码了有关类及其外观的上下文信息。
三、联合检测
YOLO将图像分为SxS个小块,如果图像中心在某一方块中则这一方框负责进行该对象的检测,通过置信分如下图来描述一个对象检测的准确性。当预测框中没有目标时,置信分则为0。
(候选框存在目标的概率*预测框与真实框的交并比)
每一个边界框都存在(x,y,w,h,s)四个值,中心坐标:x,y;长宽:w,h;置信分:s
除此之外还可以预测条件概率,即目标属于某一类别的概率
因为有SxS个子格,每个格子会生成B个方框,每个方框有五个需要确定的值(xywhs)。每个方每个方框可能的类别为C所以最后输出的为S*S*(B*5+C)维的张量。在PASCAL VOC中S=7,B=2,C=5。所以最后输出的是一个7*7*30维张量
四、网络设计
1.网络结构
2.loss函数
所有的误差都是使用的均方差来实现的。
λcoord = 5 and λnoobj =0.5分别代表坐标误差和置信分误差的权重,表示在第i个子格中,第j个预测框中是最匹配的目标,每个对象最后只会对应一个预测框,纵使两个框有重合但是只取重合度最高的那一张。
第一部分是 xywh的损失,wh有根号是因为,当真实框与预测框出现9*9 5*5 1*1 这种情况时,wh的误差都是4,而其面积是不同的所以使用根号来调整这个误差
第二部分是置信度误差,包括存在目标的置信分和不包含物体时的置信分,包含物体时用上面那个,不包含时用下面这个。
第三部分是类别误差是概率的均方差。
真实的置信度与概率均为1。