开yun体育官网入口登录app yolo9000多尺度训练的策略

YOLO升级版:YOLOv2和YOLO9000分析

狗头山人七

狗头山人七

追随Google DeepMind巨头的脚步,研究深度学习。

117 人喜欢这篇文章

论文笔记:YOLO9000:更好、更快、更强;官方网站

点评:YOLO是一个基于深度学习方法的端到端实时目标检测系统(YOLO:Real-time Fast ObjectDetection)。 YOLO有两个升级版本:YOLOv2和YOLO9000。作者使用了一系列方法来优化YOLO的模型结构,并产生了YOLOv2云开·全站app中心手机版,其速度快且精度达到了state of the art。然后作者使用wordtree方法基于ImageNet数据集和COCO数据集训练YOLO9000,使其能够实时识别9000多个项目。这篇文章有以下几点值得你参考:

首先,模型的一系列分析和改进非常值得参考;

其次,采用多尺度训练方法,使模型能够适应不同的输入大小,非常值得借鉴。

第三,综合不同数据集的方法非常值得借鉴;

第四,联合训练的方法也非常值得借鉴;

5、YOLO的端到端实时检测识别思路非常值得借鉴。

总的来说,这篇文章值得参考。

介绍

YOLO9000是一个实时检测系统,可以检测9000多个类别。首先,作者在YOLO的基础上做了一系列的改进,产生了YOLOv2。 YOLOv2 在 PASCAL VOC 和 COCO 数据集上取得了最好的结果(state of the art)。然后,采用多尺度训练方法,YOLOv2可以根据速度和精度要求调整输入大小。在67FPS下,YOLOv2在VOC2007数据集上可以达到76.8mAP;在 40FPS 下,可以达到 78.6mAP,比目前最好的 Faster R-CNN 和 SSD 更准确、更快。最后,提出了一种目标检测和分类的协同训练方法。利用该方法,作者分别在COCO目标检测数据集和ImageNet分类数据集上训练YOLO9000。联合训练使得YOLO9000能够在没有标签的情况下预测目标检测数据。 YOLO9000 在 ImageNet 验证集(200 个类别)上取得了 19.7mAP。其中,有156个类别没有出现在COCO训练集中,YOLO9000获得了16.0mAP。 YOLO9000可以实时识别9000多个类别。

1 前言

物体检测系统需要快速、准确并且能够识别多种物种。然而,当前基于深度神经网络方法的检测系统可以识别的物品类型较少。原因是与项目分类数据集相比,对象检测数据集的项目类型较少。标记对象识别数据集比标记项目分类数据集需要更多的工作。项目分类数据集包含数万个类别和数百万张图像,而对象识别数据集要小得多。

在本文中,作者提出了一种组合不同类型数据集的方法。基于该方法,作者提出了一种新的联合训练方法,结合了当前物品分类数据集的优点,并将其应用于训练目标检测模型。该模型可以从目标检测数据集中学习准确定位目标,同时从物品分类数据集中学习识别更多类型,增强模型的鲁棒性。

利用这种方法,作者训练了一个实时目标检测识别系统——YOLO9000,可以识别9000多个项目。首先,作者在YOLO的基础上进行了改进,产生了YOLOv2(obtain of the art)。然后,作者采用数据集组合方法和联合训练方法,利用ImageNet和COCO数据集训练模型,使模型能够识别和检测9000多个类别。

2项改进-YOLOv2

与目前最好的目标检测系统相比,YOLO 的问题在于它不够准确。错误项分析表明,与Fast R-CNN相比,YOLO在目标定位方面具有更高的错误率。因此,YOLO的改进重点是在保持分类精度的同时增强定位精度。改进内容如表2-1所示。

表2-1 YOLOv2的改进

训练器综合方法图片_综合训练器训练方法_训练器综合方法有哪些

2.1 批量归一化

Batch Normalization可以提高模型收敛速度,减少过拟合。作者将 Batch Normalization 应用于所有卷积层,将结果提高了 2%。同时,Batch Normalization 的应用消除了 dropout,而不会出现过拟合。

2.2 高分辨率分类器

目前最好的图像分类器使用基于 ImageNet 数据集的预训练模型。大多数分类器的输入图像尺寸小于256×256。原始YOLO接受的图像尺寸为224×224。在YOLOv2中,作者首先使用448×448分辨率的ImageNet数据finetune来使网络适应高分辨率输入;然后将网络用于目标检测任务finetune。高分辨率输入将结果提高了 4% mAP。

2.3 带有锚框的卷积

YOLO使用全连接层直接预测边界框,而Fast R-CNN则使用手动选择的边界框。 Fast R-CNN中的区域提议网络仅使用卷积层来预测固定框(锚框)的偏移量和置信度。

作者去掉了YOLO的全连接层,使用anchor box来预测bounding box。首先,移除池化层以提高卷积层的输出分辨率。然后,修改网络输入尺寸:从448×448变为416,使得特征图只有一个中心。物品(尤其是大物品)更有可能出现在图像的中心。 YOLO的卷积层的下采样率为32,因此输入尺寸变为416,输出尺寸为13×13。

使用锚框可以提高准确性。 YOLO 每张图片预测 98 个框开yun体育官网入口登录app,但使用锚框,每张图片可以预测超过 1000 个框。 YOLO模型的准确率为69.5mAP,召回率为81%;使用anchor box方法后,结果为69.2mAP,召回率为88%。

2.4 维度簇

在 YOLO 模型上使用锚框有两个关键。首先,手动选择盒子尺寸。模型可以学习适应盒子,但如果手动选择更好的盒子,模型可以更轻松地学习。我们采用K-means聚类方法来自动选择最佳的初始框。我们希望手动选择的框能够提高 IOU 分数。因此,我们的公式定义为:

。 k-means 结果如图 2-1 所示。作者选择k=5。

综合训练器训练方法_训练器综合方法图片_训练器综合方法有哪些

图 2-1 k 均值结果

2.5 直接位置预测

在 YOLO 模型上使用锚框的第二个关键是模型不稳定,特别是在前几轮训练中。大多数不稳定性来自于预测框 (x, y) 的位置。作者将预测偏移改为YOLO的预测网格单元的位置坐标,并将预测值限制在0-1的范围内以增强稳定性。网络为特征图中的每个单元预测 5 个边界框。对于每个边界框,模型预测 5 个匹配值(

)。使用聚类方法选择框的尺寸并直接预测边界框的中心位置,使YOLO的准确率提高了近5%。

2.6 细粒度特征

改进后的YOLO在13×13的特征图上进行目标检测。更细粒度的特征可以改善小目标的检测。作者在网络中添加了passtrough层来增加特征。 Passthrough与ResNet类似,将高分辨率特征与低分辨率特征相结合,将26×26×512特征图转换为13×13×2048特征图。此改进将性能提高了 1%。

2.7 Multi-Scale Training(多尺度训练,非常有参考价值)

初始YOLO输入尺寸为448×448。添加锚框后,输入尺寸为416×416。该模型仅包含卷积层和池化层,因此输入大小可以随时更改。

在训练过程中,作者每隔几轮就改变模型输入大小,以使模型对不同大小的图像具有鲁棒性。对于每 10 个批次,模型随机选择一个新的输入图像大小(320, 352,...608,32 的倍数,因为模型下采样因子为 32),更改模型输入大小,并继续训练。

该训练规则迫使模型适应不同的输入分辨率。该模型处理小尺寸的输入速度更快,因此 YOLOv2 可以根据需要调整速度和精度。在低分辨率(288×288)的情况下,YOLOv2可以保持与Fast R-CNN相同的精度,处理速度可以达到90FPS。在高分辨率下,YOLOv2在VOC2007数据集上的准确率可以达到state of the art(78.6mAP),如表2-2所示。

表2-2 多尺度训练结果

训练器综合方法有哪些_训练器综合方法图片_综合训练器训练方法

2.8 其他实验

作者在VOC2012数据集和COCO数据集上进行了实验,结果如表2-3和表2-4所示。

表2-3 VOC2012测试结果

训练器综合方法图片_综合训练器训练方法_训练器综合方法有哪些

表2-4 COCO测试结果

综合训练器训练方法_训练器综合方法图片_训练器综合方法有哪些

3 检测速度更快

大多数检测框架都是基于VGG-16作为特征提取网络,但VGG-16相对复杂并且消耗大量计算量。 YOLO框架采用类似googlenet的网络结构,计算量比VGG-16小,精度比VGG16略低。

3.1 暗网-19

作者设计了一个新的分类网络(Darknet-19)作为YOLOv2的基础模型。 Darknet-19模型的结构如表3-1所示。

表3-1 Darknet-19网络参数

训练器综合方法图片_综合训练器训练方法_训练器综合方法有哪些

3.2 分类任务训练

作者使用ImageNet1000类数据集来训练分类模型。在训练过程中,使用了随机裁剪、旋转以及色调、饱和度和曝光偏移等数据增强方法。经过预训练后,作者使用高分辨率图像(448×448)对模型进行微调。

3.3 检测任务训练

作者去掉了分类模型的最后一个卷积层,代之以三个卷积层(3×3、1024个滤波器)。最后一层是1×1的卷积层,滤波器的数量就是要检测的数量。对于VOC数据集,我们需要预测5个框,每个框包含5个适应度值,每个框预测20个类别。因此,输出是125(5*20+5*5)个滤波器。最后,添加了一个直通层。

4 更强

作者提出了一种融合分类数据和检测数据的联合训练机制。该机制使用目标检测标签的数据来训练模型学习定位目标并检测某些类别的目标;然后,它使用分类标签中的数据来扩展模型对多个类别的识别能力。在训练过程中,目标检测和分类的数据集是混合的。当网络接收到目标检测的训练数据时,反馈网络使用YOLOv2损失函数;当网络接收到分类训练数据时,反馈网络仅更新一些网络参数。

这类训练方法有一定的难度。物体识别数据集仅包含常见物体和标签(例如狗、船);分类数据集包含更广泛和更深的标签。例如狗,ImageNet 包含 100 多个狗类别。如果需要联合训练,则需要合并这些标签。

大多数分类方法使用softmax来输出所有类别的概率。使用softmax的前提是类别不互相包含(例如狗和牧羊人互相包含)。因此,我们需要一个多标签模型来合成数据集,使得类别不互相包含。

4.1 层次分类(多层分类)

ImageNet的数据标签源自WordNet,具有一定的层次结构。作者在WordNet的基础上构建了一个ImageNet标签树(WordTree)。作者使用标签树来训练Darknet-19,结果如图4-1所示。

综合训练器训练方法_训练器综合方法图片_训练器综合方法有哪些

图4-1 WordTree训练结果

4.2 使用Wordtree综合数据集

作者使用wordtree综合了ImageNet和COCO数据集,如图4-2所示。

综合训练器训练方法_训练器综合方法有哪些_训练器综合方法图片

图 4-2 Wordtree 层次结构

4.3 联合分类与检测

作者使用综合数据集训练YOLO9000,结果如图4-3所示。

综合训练器训练方法_训练器综合方法有哪些_训练器综合方法图片

图4-3 YOLO9000测试结果

5 结论

通过改进YOLO网络结构和训练方法,作者提出了两种实时目标检测系统YOLOv2和YOLO9000。 YOLOv2在YOLO的基础上做了一系列改进,很快达到了state of the art。同时,YOLOv2可以适应不同的输入大小云开·全站app登录网页入口,并根据需要调整检测精度和检测速度(值得参考)。作者结合ImageNet数据集和COCO数据集,采用联合训练的方式,使系统能够识别9000多个项目。另外,作者提出的WordTree可以合成多个数据集的方法可以应用于其他计算机数感任务。

关键词:

客户评论

我要评论