深度学习物体检测(八)——YOLO2

神经网络学习过程本质就是为了学习数据分布,一旦训练数据与测试数据的分布不同,那么网络的泛化能力也大大降低;另外一方面,一旦每批训练数据的分布各不相同(batch 梯度下降),那么网络就要在每次迭代都去学习适应不同的分布,这样将会大大降低网络的训练速度。解决办法之一是对数据都要做一个归一化预处理。

YOLOv2网络通过在每一个卷积层后添加batch normalization,极大的改善了收敛速度同时减少了对其它regularization方法的依赖(舍弃了dropout优化后依然没有过拟合),使得mAP获得了2%的提升。类似于Resnet中的identity mappings。这个方法把26 * 26 * 512的特征图叠加成13 * 13 * 2048的特征图,与原生的深层特征图相连接。

高分辨率预训练分类

YOLOv2首先修改预训练分类网络的分辨率为448*448,在ImageNet数据集上训练10 epochs。这个过程让网络有足够的时间调整filter去适应高分辨率的输入。然后微调为检测网络。mAP获得了4%的提升。

卷积层上Anchor Boxes

YOLO使用全连接层数据进行bounding box预测(要把1470*1的全链接层reshape为7*7*30的最终特征),这会丢失较多的空间信息定位不准。

YOLOv2借鉴了Faster R-CNN中的anchor思想: 相当于在卷积特征图上进行滑窗采样,每个中心预测9种不同大小和比例的建议框。由于都是卷积不需要reshape,很好的保留的空间信息,最终特征图的每个特征点和原图的每个cell一一对应。而且用预测相对偏移(offset)取代直接预测坐标简化了问题,方便网络学习。

总的来说就是移除全连接层(以获得更多空间信息)使用 anchor boxes 取预测 bounding boxes。

维度聚类

使用统计学习中的K-means聚类方法,通过对数据集中的ground true box做聚类,找到ground true box的统计规律。以聚类个数k为anchor boxs个数,以k个聚类中心box的宽高维度为anchor box的维度。

直接定位预测

使用anchor boxes的另一个问题是模型不稳定,尤其是在早期迭代的时候。

YOLO2约束了位置预测的范围,参数就更容易学习参数,模型就更稳定。使用Dimension Clusters和Direct location prediction这两项anchor boxes改进方法,mAP获得了5%的提升。

细粒度特征

修改后的网络最终在13 * 13的特征图上进行预测,虽然这足以胜任大尺度物体的检测,如果用上细粒度特征的话可能对小尺度的物体检测有帮助。

Faser R-CNN和SSD都在不同层次的特征图上产生区域建议以获得多尺度的适应性。

YOLO2使用了一种不同的方法,简单添加一个 passthrough layer,把浅层特征图(分辨率为26 * 26)连接到深层特征图。

passthroughlaye把高低分辨率的特征图做连结,叠加相邻特征到不同通道(而非空间位置)

YOLOv2的检测器使用的就是经过扩展后的的特征图,它可以使用细粒度特征,使得模型的性能获得了1%的提升。

多尺度训练

原始YOLO网络使用固定的448 * 448的图片作为输入,加入anchor boxes后输入变成416 * 416,由于网络只用到了卷积层和池化层,就可以进行动态调整(检测任意大小图片)。

在YOLO2上,不同于固定网络输入图片尺寸的方法,每经过10 batches训练,就会随机选择新的图片尺寸。网络使用的降采样参数为32,于是使用32的倍数{320,352,…,608},最小的尺寸为320 * 320,最大的尺寸为608 * 608。 调整网络到相应维度然后继续进行训练。

这种机制使得网络可以更好地预测不同尺寸的图片,同一个网络可以进行不同分辨率的检测任务,在小尺寸图片上YOLO2运行更快,在速度和精度上达到了平衡。

在低分辨率图片检测中,YOLO2是检测速度快(计算消耗低),精度较高的检测器。输入为228 * 228的时候,帧率达到90FPS,mAP几乎和Faster R-CNN的水准相同。

在高分辨率图片检测中,VOC2007 上mAP为78.6%,而且超过实时速度要求。

YOLO2使用了一个新的分类网络作为特征提取部分,类似于VGG,网络使用了较多的3 * 3卷积核,在每一次池化操作后把通道数翻倍。借鉴了network in network的思想,网络使用了global average pooling做预测,把1 * 1的卷积核置于3 * 3的卷积核之间,用来压缩特征。使用batch normalization稳定模型训练,加速收敛,正则化模型。

最终得出的基础模型就是Darknet-19,包含19个卷积层、5个最大值池化层。

Darknet-19处理一张照片需要55.8亿次运算,imagenet的top-1准确率为72.9%,top-5准确率为91.2%。

分类训练

使用Darknet-19在ImageNet上训练了160次,用随机梯度下降法。训练的时候仍使用了很多常见的data augmentation。

初始的224 * 224训练后把分辨率上调到了448 * 448,使用同样的参数又训练了10次,学习率调整到了0.001。高分辨率下训练的分类网络top-1准确率76.5%,top-5准确率93.3%。

检测训练

为了把分类网络改成检测网络,去掉原网络最后一个卷积层,增加了三个 3 * 3 (1024 filters)的卷积层,并且在每一个卷积层后面跟一个1 * 1的卷积层,输出维度是检测所需数量。

对于VOC数据集,预测5种boxes,每个box包含5个坐标值和20个类别,所以总共是5 * (5+20)= 125个输出维度。

另外也添加了passthrough layer,从最后3 * 3 * 512的卷积层连到倒数第二层,使模型有了细粒度特征。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
深度学习物体检测是计算机视觉领域的一个重要问题,它的目标是在给定的图像中准确地识别出各种不同的物体。而YOLO(You Only Look Once)是一种流行的深度学习物体检测算法。 YOLO算法通过将物体检测任务转化为一个回归问题来高效地进行物体检测。它将图像分割为较小的网格,每个网格预测出若干个边界框和类别概率。每个边界框定义了一个物体的位置和大小,而类别概率则表示了这个物体属于各个类别的概率。 相比于传统的物体检测算法,YOLO具有更快的检测速度和更高的准确率。它的优势在于一次性处理整张图像,避免了传统方法中的多次前向传播。因此,YOLO可以在实时性要求较高的场景中得到广泛应用,如自动驾驶、视频监控等。 《深度学习物体检测YOLO电子书》是一本介绍YOLO算法原理、应用和优化技巧的电子书。它详细解释了YOLO算法的核心思想,包括网络结构、损失函数和训练方法等。此外,电子书还提供了大量实例和代码实现,方便读者快速入门和掌握YOLO算法。 通过学习这本电子书,读者可以深入了解YOLO算法在物体检测任务中的优势和挑战。他们将学会如何构建和训练一个YOLO模型,如何优化算法以提升检测准确率和速度,以及如何在不同应用场景中应用YOLO算法。 总的来说,《深度学习物体检测YOLO电子书》是一本很有价值的学习资料,对于对深度学习物体检测感兴趣的读者来说,它将成为他们掌握YOLO算法的重要参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值