摘要:
将目标检测制定为一个回归问题,基于一个单独的end-to-end网络,完成从原始图像到题位置和类别的输出。
一、引入
相对传统的目标检测方法,YOLO有几个方面的优点。
- 速度非常快,将整个检测框架作为一个回归问题,不许哟啊复杂的管道。基础网络处理速度,每秒45fps,Titan X GPU,可以处理实时视频序列。
- Yolo 在训练和测试时可以看到整张图片,所以它隐式地编码了目标类别及其外观的上下文信息。
- Yolo 学习目标的广义(概括性的,普遍性的)表示。
二、联合检测Unified detection
Yolo 使用整张图片的特征来预测每一个回归框。这意味着我们的网络全局的理解整张网络和网络中的对象。
把整张图片分成SxS个的网格,如果一个目标的中心落入到一个网格内,这个网格负责检测这个目标。每个网格预测B个回归框和回归框的置信分数。
置信分数计算定义:
每一个回归框包括五个预测值,和置信分数。
每个网格单元还预测C个附条件类的概率。每一个网格只预测一组分类概率。
最后在测试阶段,将附加类别概率与单个框的分数预测,反映出每个框所属类别的概率和预测框框选出目标的程度。
2.1 网络设计
受到google的inception 模块的启发,在3x3卷积层之后用1x1的reduction层,Yolo 网络包含24个卷积层和两个全联接层。Fast Yolo包含9个卷积层,每一层的滤波器更少。
2.2 训练
作者通过图像宽度和高度将边界框的宽度和高度标准化,使它们落在0和1之间。将边界框x和y坐标参数化为特定网格单元位置的偏移,因此它们也在0和1之间。
使用和平方差,因为优化简单,但是他不能很好的符合最大化平均精度的目标。这会权衡定位误差和分类误差一样重要。但实际上这是不理想的。
为了补偿这种状况,增加回归框坐标预测的损失,减小不包含目标的置信度预测的损失。
每个网格会得到多个回归框。作者根据哪个预测具有最高当前IOU和基础事实,将一个预测器指定为“负责”以预测对象。
作者在2007年和2012年的PA S C A L VOC训练和验证数据集上训练了大约135个周期。在2012年进行测试时,我们还包括用于训练的VOC 2007测试数据。在整个培训过程中,我们使用的batchsize为64,动量为0.9,衰减为0.0005。
在第一轮训练中,从到慢慢增长学习率。75个epoches用的学习率,然后接着30个epoches用的学习率,最后30个epoches用的学习率。
为避免过拟合,使用dropout和数据扩充。在第一个连接层之后,速率= 0.5的dropout层防止了层之间的共同适应。
对于数据增强,作者引入了高达原始图像大小的20%的随机缩放和翻译。作者还在HSV颜色空间中随机调整图像的曝光和饱和度达1.5倍。
2.3 推断
YOLO在测试时非常快,因为它只需要一次网络评估,不像基于分类器的方法(先完成检测,再完成分类)。
非极大抑制可以修正多检测。
2.4 YOLO 的限制
YOLO对边界框预测施加了强烈的空间约束,因为每个网格单元只预测两个框,并且只能有一个类。此空间约束限制了模型可以预测的附近对象的数量。YOLO 很难识别群体中的小目标,例如鸟群。
因为模型是从数据中学习去预测回归框,因此很难在新的或者不寻常的高宽比或者配置中归纳出目标。
我们的模型还使用相对粗略的特征来预测边界框,因为我们的体系结构具有来自输入图像的多个下采样层。
错误的主要来源是不正确的定位。
3. 算法对比
检测流水线开始要从图片中提取一组鲁棒性的特征(Haar,SIFT,HOG,卷积特征),然后分类器或者定位器在特征空间中识别目标。这些分类器或定位器可以在整个图像上以滑动窗口方式运行,也可以在图像中的某些区域子集上运行。
DMP(Deformable parts models)使用不相交的流水线提取特征,区域分类,预测回归框,每个模块分离。YOLO用一个卷积神经网络替代这些分离的模块。网络不是用静态特征,而是在线训练功能并针对检测任务对其进行优化。
YOLO是一种通用探测器,可以学习同时探测各种物体。
4. 实验
首先在Pascal VOC2017上,比较了其他实时监测器。比较了YOLO和Fast R-CNN的误差。基于不同的错误配置文件,显示YOLO可用于重新调整快速R-CNN检测并减少背景误报的错误,从而显着提升性能。
在VOC2012上与最佳的检测器比较了mAP。最后展示了,在两个艺术作品数据集上,YOLO相比其他的检测器更好的推广到新领域。