基于YOLOv3算法的目标检测与识别系统的设计与实现外文翻译资料
2022-08-08 11:56:47
英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
摘要
我们介绍了YOLO,这是一种新的对象检测方法。先前有关对象检测的工作将分类器重新用于每个表单检测。取而代之的是,我们将对象检测框架化为空间分隔的边界框和相关类概率的回归问题。单个神经网络可以在一次评估中直接从完整图像中预测边界框和类概率。由于整个检测管道是单个网络,因此可以直接在检测性能上进行端到端优化。我们的统一体系结构非常快。我们的基本YOLO模型以每秒45帧的速度实时处理图像。较小的网络Fast YOLO每秒可处理惊人的155帧,同时仍可实现其他实时检测器的mAP两倍的性能。与最新的检测系统相比,YOLO会产生更多的定位错误,但预测背景的假阳性的可能性较小。 最后,YOLO学习了非常普通的对象表示形式。 从自然图像到艺术品等其他领域进行一般化处理时,它的性能优于其他检测方法,包括DPM和R-CNN。
1.引言
人们瞥了一眼图像,立即知道图像中的对象,它们在哪里以及它们如何相互作用。人类的视觉系统快速准确,使我们能够执行复杂的任务,例如不加思索地驾驶。快速,准确的对象检测算法将使计算机无需专用传感器即可驾驶汽车,使辅助设备能够向人类用户传达实时场景信息,并释放通用响应型机器人系统的潜力。
当前的检测系统改变分类器的用途以进行形式检测。为了检测物体,这些系统采用了该物体的分类器,并在测试图像的各个位置和比例上对其进行了评估。 像可变形零件模型(DPM)之类的系统使用滑动窗口方法,其中分类器在整个图像上均匀分布的位置运行[10]。R-CNN等最新方法使用区域提议:
图1:YOLO检测系统
使用YOLO处理图像非常简单明了。我们的系统(1)将输入图像的大小调整为448times;448,(2)在图像上运行单个卷积网络,并且(3)通过模型的置信度
首先,生成图像中潜在边界框,然后在这些拟议的框上运行分类器的方法。 分类后,使用后处理来精简边界框,消除重复的检测,并根据场景中的其他对象对这些框进行重新评分[13]。 这些复杂的管道运行缓慢且难以优化,因为每个单独的组件都必须分别进行训练。
我们将对象检测重新构造为单个回归问题,直接从图像像素到边界框坐标和类概率。使用我们的系统,您只需要看一次(YOLO)图像即可预测存在的物体及其位置。
YOLO令人耳目一新,非常简单:请参见图1。单层卷积网络同时预测了YOLO训练完整图像并直接优化检测性能。与传统的对象检测方法相比,此统一模型具有多个优点。
首先,YOLO非常快。由于我们将检测框架视为回归问题,因此不需要复杂的流程。我们只需在测试时在新图像上运行神经网络即可预测检测结果。我们的基本网络以每秒45帧的速度运行,在Titan X GPU上没有批处理,而快速版本的运行速度超过150 fps。这意味着我们可以以不到25毫秒的延迟实时处理流视频。 此外,YOLO达到了其他实时系统平均平均精度的两倍以上。有关在网络摄像头上实时运行的系统的演示,请参阅我们的项目网页:
其次,当输入的边界框 置信度类概率图上的最终像素为1779 Stimes;S网格时,YOLO会对图像进行全局推理。与基于滑动窗口和区域提议的技术不同,YOLO在训练和测试期间会看到整个图像,因此它隐式地编码有关类及其外观的contu tual信息。
快速R-CNN是一种顶部检测方法[14],因为它看不到较大的上下文,因此将图像中的地面斑块误认为是物体。与Fast R-CNN相比,YOLO产生的背景错误少于一半。
其次,当输入的边界框 置信度类概率图上的最终像素为1779 Stimes;S网格时,YOLO会对图像进行全局推理。与基于滑动窗口和区域提议的技术不同,YOLO在训练和测试期间会看到整个图像,因此它隐式地编码有关类及其外观的contu tual信息。快速R-CNN是一种顶部检测方法[14],因为它看不到较大的上下文,因此将图像中的地面斑块误认为是物体。与Fast R-CNN相比,YOLO产生的背景错误少于一半。
第三,YOLO学习对象的可概括表示。当接受自然图像训练并经过艺术品测试时,YOLO在很大程度上优于DPM和R-CNN等顶级检测方法。由于YOLO具有高度通用性,因此在应用于新域或意外输入时,分解的可能性较小。
YOLO在准确性方面仍落后于最新的检测系统。 尽管它可以快速识别图像中的物体,但它仍难以精确地定位某些物体,尤其是小型物体。我们在实验中进一步研究了这些折衷。
我们所有的培训和测试代码都是开源的,各种预训练的模型也可以下载。
2.统一检测
我们将对象检测的各个组成部分统一到一个神经网络中。我们的网络使用整个图像中的特征来预测每个边界框。它还可以同时预测图像中所有类别的所有边界框。 这意味着我们的网络会全面讨论整个图像和图像中的所有对象。 YOLO设计可实现端到端的培训和实时速度,同时保持较高的平均精度。
我们的系统将输入图像划分为Stimes;S网格。如果对象的中心落入网格单元,则该网格单元负责检测该对象。
每个网格单元预测B边界框和这些框的置信度得分。这些置信度得分反映了模型对盒子包含一个对象的信心,以及它认为盒子预测的准确性。对于mally,我们将置信度定义为Pr(Object)* IOUtruth pred。如果该单元格中没有对象,则置信度分数应为零。否则,我们希望置信度分数等于预测框与地面实况之间的并集交集(IOU)。
每个边界框由5个预测组成:x,y,w,h和置信度。(x,y)坐标表示框相对于网格单元边界的中心。相对于整个图像预测宽度和高度。最后,置信度预测表示预测框与任何地面真实框之间的IOU。
每个网格单元还预测C个条件类别的概率Pr(Classi | Object)。这些概率取决于包含对象的网格单元。无论框B的数量如何,我们仅预测每个网格单元的一组类概率。
在测试时,我们将条件类别的概率和各个框的置信度预测相乘,
这为我们提供了每个盒子的特定班级的置信度得分。这些分数既编码了该类别出现在盒子中的概率,也预测了预测的盒子适合对象的程度。
图2:模型
我们的系统将检测建模为回归问题。 它将图像划分为Stimes;S网格,并为每个网格单元预测B边界框,这些框的置信度和C类概率。这些预测被编码为Stimes;Stimes;(B lowast; 5 C)张量。
为了评估PASCAL VOC上的YOLO,我们使用S=7,B=2。PASCALVOC具有20个标记的类,因此C=20。我们的最终预测是7times;7times;30张量。
2.1 网络设计
我们将该模型实现为卷积神经网络,并在PASCAL VOC检测数据集上对其进行了评估[9]。网络的初始卷积层从图像中提取特征,而完全连接的层则预测输出概率和坐标。
我们的网络体系结构受到用于图像分类的GoogLeNet模型的启发[33]。我们的网络有24个卷积层,其后是2个完全连接的层。与Lin等[22]相似,我们没有使用GoogLeNet的初始模块,而是简单地使用1times;1归约层,然后是3times;3的卷积层。完整的网络如图3所示。
我们还训练了一种快速版本的YOLO,旨在突破快速物体检测的界限。Fast YOLO使用的神经网络具有较少的卷积层(从9个而不是24个),并且这些层中的过滤器较少。除了网络的规模外,YOLO和Fast YOLO之间的所有训练和测试参数都相同。
图3:架构。
我们的检测网络具有24个卷积层,其后是2个完全连接的层。交替的1times;1卷积层减少了前一层的特征空间。我们以一半的分辨率(224times;224输入图像)对ImageNet分类任务上的卷积层进行预训练,然后将分辨率提高一倍以进行检测。我们网络的最终输出是预测的7times;7times;30张量。
2.2 训练
我们在ImageNet1000类竞赛数据集上对卷积层进行预训练[29]。对于预训练,我们使用图3中的前20个卷积层,然后是平均池层和完全连接层。我们对这个网络进行了大约一周的训练,在ImageNet 2012验证集上达到了单作物top-5的准确性,达到88%,与Caffe模型动物园中的GoogLeNet模型相当[24]。
然后,我们将模型转换为执行检测。结果表明,将卷积层和连接层都添加到预训练的网络中可以提高性能[28]。按照他们的示例,我们添加了四个卷积层和两个完全连接的层,这些层具有随机初始化的权重。检测通常需要细粒度的视觉信息,因此我们将网络的输入分辨率从224times;224增加到448times;448。
我们的最后一层可以预测类概率和边界框坐标。我们通过图像的宽度和高度对边界框的宽度和高度进行归一化,使它们落在0和1之间。我们将边界框的x和y坐标参数化为特定网格单元位置的偏移量,因此它们也被限制在0之间 和1。
我们对最终层使用线性激活函数,而所有其他层均使用以下泄漏校正线性激活:
我们针对模型输出中的平方和误差进行了优化。我们使用平方和误差是因为它易于优化,但是它并不完全符合我们使平均精度最大化的目标。它对定位错误的权重与分类错误的权重相等,这可能不是理想的选择。同样,在每个图像中,许多网格单元都不包含任何对象。这会将这些单元格的“置信度”得分推向零,通常会超过确实包含对象的单元格的梯度。这可能会导致模型不稳定,从而导致训练在早期就出现分歧。
为了解决这个问题,对于不包含对象的盒子,我们增加了边界框坐标预测的损失,并减少了置信度预测的损失。我们使用两个参数lambda;coord和lambda;noobj来完成此操作。我们设置lambda;coord= 5和lambda;noobj= .5。
平方和误差也平均地权衡了大盒子和小盒子中的误差。我们的误差度量标准应该反映出,大盒子中的小偏差比小盒子中的小偏差要小。为了部分解决这个问题,我们预测边界框的宽度和高度的平方根,而不是直接预测宽度和高度。YOLO预测每个网格单元有多个边界框。
在训练时,我们只希望一个边界框预测变量对每个对象负责。我们将一个预测变量指定为“负责任的”预测对象,基于哪个预测具有最高的当前IOU和地面真实性。这导致边界框预测变量之间的专用化。每个预测器都可以更好地预测某些大小,宽高比或对象类别,从而改善总体召回率。在训练期间,我们优化了以下多部分781损失函数:
其中表示对象是否出现在单元格i中,而指出,单元格i中的第j个边界框预测变量对于该预测是“负责任的”。
请注意,如果该网格单元中存在对象,则损失函数只会惩罚分类错误(因此,前面讨论的条件分类概率)。如果该预测变量对地面真值框“负责”(即该网格单元中所有预测变量的IOU最高),则也只能确定边界框坐标误差。
在PASCAL VOC 2007和2012的培训和验证数据集上,我们对网络进行了135个时期的培训。在2012年进行测试时,我们还包含了VOC 2007的测试数据进行培训。在整个训练过程中,我们使用的批次大小为64,动量为0.9,衰减为0.0005。
我们的学习率时间表如下:在第一个时期,我们将学习率从1003缓慢提高到1002。如果我们以较高的学习率开始,则由于不稳定的梯度,我们的模型经常会发散。我们将继续训练1002个75个时期,然后训练1003个30个时期,最后训练1004个30个时期。
为了避免过度拟合,我们使用了辍学和广泛的数据扩充功能。在第一个连接的层之后,速率为.5的退出层可防止层之间的共适应[18]。对于数据扩充,我们引入了随机缩放和最多原始图像大小20%的转换。 我们还将在HSV颜色空间中将图像的曝光和饱和度随机调整至1.5倍。
2.3 推理
就像在训练中一样,预测测试图像的检测仅需要进行一次网络评估。在PASCAL VOC上,网络可预测每个图像98个边界框以及每个框的类概率。与基于分类器的方法不同,YOLO只需要进行一次网络评估,因此测试时间非常快。网格设计在边界框预测中强制执行空间分集。通常,很明显,一个对象属于哪个网格单元,并且网络仅为每个对象预测一个框。但是,多个单元格可以很好地定位某些大型物体或多个单元格边界附近的物体。非最大抑制可用于修复这些多次检测。尽管对于R-CNN或DPM而言,对性能并不重要,但非最大抑制功能会在mAP中增加23%。
2.4 YOLO的局限性
YOLO在边界框预测上施加了强大的空间约束,因为每个网格单元只能预测两个框并且只能具有一个类别。这种空间限制限制了我们的模型可以预测的附近物体的数量。我们的模型与成组出现的小物体(例如成群的鸟)作斗争。
由
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[258045],资料为PDF文档或Word文档,PDF文档可免费转换为Word