【YOLO系列】--YOLOv2超详细解读/总结

article/2025/8/23 13:18:49

本章论文:

YOLOv2论文(YOLO9000: Better, Faster, Stronger)(原文+解读/总结+翻译)

 YOLO系列解读直通车🚀:

YOLO系列-【YOLOv1】🚀

YOLO系列-【YOLOv2】🚀

YOLO系列-【YOLOv3】🚀

YOLO系列-【YOLOv4】🚀

YOLO系列-【YOLOv5】🚀


前言

        在YOLOv1推出一年以后,YOLOv2诞生了,新的YOLO版本论文叫《YOLO9000: Better, Faster, Stronger》,作者 Joseph Redmon 和 Ali Farhadi 在 YOLOv1 的基础上,进行了改进,不仅提出了 YOLOv2 ,还提出了YOLO9000,一种实时的目标检测系统,可以检测9000多个目标类别,重点解决YOLOv1召回率和定位精度方面的不足。

论文原文:YOLO9000: Better, Faster, Stronger

论文翻译:YOLOv2论文翻译(已校正)_耿鬼喝椰汁的博客-CSDN博客


Yolov2 的主要工作

 这篇论文的主要工作有:

1. 使用一系列的方法对YOLOv1进行了改进,在保持原有检测速度的同时提升精度得到YOLOv2;
2. 提出了一种目标分类与检测的联合训练方法,同时在COCO和ImageNet数据集中进行训练得到YOLO9000,实现9000多种物体的实时检测。

     这篇文章包含两个模型:YOLOv2YOLO9000,不过后者是在前者基础上提出的,两者模型的主体结构是一致的。

     同yolov1论文题目一样,yolov2论文题目也体现了它改进后的三个优点:Better、Faster、Stronger。之前提出的YOLO v1虽然检测速度快,但在定位方面不够准确,并且召回率较低。为了解决这些问题,YOLO v2在YOLO v1的基础上提出了几种改进策略,如下图所示,一些改进方法能有效提高模型的mAP。


 Yolov2 改进策略

1. Batch Normalization(批次归一化)

      Batch Normalization有助于解决反向传播过程中的梯度消失和梯度爆炸问题,降低对一些超参数(比如学习率、网络参数的大小范围、激活函数的选择)的敏感性,可以提升模型收敛速度,而且可以起到一定正则化效果,降低模型的过拟合。 YOLO v2中在每个卷积层后加Batch Normalization(BN)层,去掉了dropout层。 Batch Normalization层可以起到一定的正则化效果,能提升模型收敛速度,防止模型过拟合。

YOLO v2通过使用BN层使得mAP提高了2%。

2. High Resolution Classifier(高分辨率分类器)

       图像分类的训练样本很多,而标注了边框的用于训练对象检测的样本相比而言就比较少了,因为标注边框的人工成本比较高。所以对象检测模型通常都先用图像分类样本训练卷积层,提取图像特征。但这引出的另一个问题是,图像分类样本的分辨率不是很高。所以YOLO v1使用ImageNet的图像分类样本采用 224*224 作为输入,来训练CNN卷积层。然后在训练对象检测时,检测用的图像样本采用更高分辨率的 448×448 的图像作为输入。但这样切换对模型性能有一定影响。
       所以YOLO2在采用 224×224 图像进行分类模型预训练后,再采用 448×448 的高分辨率样本对分类模型进行微调(10个epoch),使网络特征逐渐适应 448×448 的分辨率。然后再使用 448×448 的检测样本进行训练,缓解了分辨率突然切换造成的影响。

YOLO v2通过使用高分辨率分类器使得mAP提升了3.7。

3.Convolutional With Anchor Boxes(带有锚框的卷积)

      在yolov1中使用全连接层来预测box的坐标,并不像Faster R-CNN中RPN生成预选框,RPN只需预测偏移量,而不是整个坐标,这样简化了网络学习。yolov2模型有几点改进:
        1、移除最后一层的全连接层,并使用anchor boxes来预测
        2、移除一层pooling层,为了使得有不错分辨率
        3、将输入448 x 448改为416 x 416,论文中提到因为416除32等于奇数,就会有单个单元格对应。
     yolov1只有7 x 7 x 2个box,而yolov2有13 x 13 x 9个box,在结果对比起来,yolov2的准确率只降低0.4map,但recall上升了7%,可见有效。

4.Dimension Clusters(维度聚类)

      在Faster R-CNN和SSD中,先验框的维度(长和宽)都是手动设定的,带有一定的主观性。如果选取的先验框维度比较合适,那么模型更容易学习,从而做出更好的预测。因此,YOLOv2采用k-means聚类方法对训练集中的边界框做了聚类分析,以寻找尽可能匹配样本的边框尺寸。
       聚类算法最重要的是选择如何计算两个边框之间的“距离”,对于常用的欧式距离,大边框会产生更大的误差。而且设置先验框的主要目的是为了使得预测框与ground truth的IOU更好,所以聚类分析时选用box与聚类中心box之间的IOU值作为距离指标:

       centroid是聚类时被选作中心的边框,box就是其它边框,d就是两者间的“距离”。IOU越大,“距离”越近。YOLO2给出的聚类分析结果如下图所示:

      上图左边是选择不同的聚类k值情况下,得到的k个centroid边框,计算样本中标注的边框与各centroid的Avg IOU。显然,边框数k越多,Avg IOU越大。YOLO2选择k=5作为边框数量与IOU的折中。对比手工选择的先验框,使用5个聚类框即可达到61 Avg IOU,相当于9个手工设置的先验框60.9 Avg IOU。
       上图右边显示了5种聚类得到的先验框,VOC和COCO数据集略有差异,不过都有较多的瘦高形边框。

5.Direct location prediction(直接的位置预测)

      Faster R-CNN使用anchor boxes预测边界框相对先验框的偏移量,由于没有对偏移量进行约束,每个位置预测的边界框可以落在图片任何位置,会导致模型不稳定,加长训练时间。 YOLO v2沿用 YOLO v1的方法,根据所在网格单元的位置来预测坐标,则Ground Truth的值介于0到1之间。网络中将得到的网络预测结果再输入sigmoid函数中,让输出结果介于0到1之间。设一个网格相对于图片左上角的偏移量是 c x , c y cx,cy cx,cy。先验框的宽度和高度分别是 p w 和 p h pw和ph pw和ph,则预测的边界框相对于特征图的中心坐标 ( b x , b y ) (bx,by) (bx,by)和宽高 b w 、 b h bw、bh bw、bh的计算公式如下图所示。

      YOLO v2结合Dimention Clusters, 通过对边界框的位置预测进行约束,使模型更容易稳定训练,这种方式使得模型的mAP值提升了约5%。

6.Fine-Grained Features(细粒度的特征)

     YOLO v2借鉴SSD使用多尺度的特征图做检测,提出pass through层将高分辨率的特征图与低分辨率的特征图联系在一起,从而实现多尺度检测。 YOLO v2提取Darknet-19最后一个max pool层的输入,得到 26 × 26 × 512 26×26×512 26×26×512的特征图。经过 1 × 1 × 64 1×1×64 1×1×64的卷积以降低特征图的维度,得到 26 × 26 × 64 26×26×64 26×26×64的特征图,然后经过pass through层的处理变成13x13x256的特征图(抽取原特征图每个2x2的局部区域组成新的channel,即原特征图大小降低4倍,channel增加4倍),再与 13 × 13 × 1024 13×13×1024 13×13×1024大小的特征图连接,变成 13 × 13 × 1280 13×13×1280 13×13×1280的特征图,最后在这些特征图上做预测。使用Fine-Grained Features, YOLO v2的性能提升了1%.

7.Multi-Scale Training(多尺寸训练)

      YOLO v2中使用的Darknet-19网络结构中只有卷积层和池化层,所以其对输入图片的大小没有限制。 YOLO v2采用多尺度输入的方式训练,在训练过程中每隔10个batches,重新随机选择输入图片的尺寸,由于Darknet-19下采样总步长为32,输入图片的尺寸一般选择 32 32 32的倍数{320,352,…,608}。采用Multi-Scale Training, 可以适应不同大小的图片输入,当采用低分辨率的图片输入时,mAP值略有下降,但速度更快,当采用高分辨率的图片输入时,能得到较高mAP值,但速度有所下降。

       YOLO v2借鉴了很多其它目标检测方法的一些技巧,如Faster R-CNN的anchor boxes, SSD中的多尺度检测。除此之外, YOLO v2在网络设计上做了很多tricks,使它能在保证速度的同时提高检测准确率,Multi-Scale Training更使得同一个模型适应不同大小的输入,从而可以在速度和精度上进行自由权衡。

8.New Network:Darknet-19

       YOLO v2采用Darknet-19网络结构,YOLOv2使用了一个新的分类网络作为特征提取部分,参考了前人的先进经验,比如类似于VGG,作者使用了较多的3 * 3卷积核,在每一次池化操作后把通道数翻倍。借鉴了network in network的思想,网络使用了全局平均池化(global average pooling),把1 * 1的卷积核置于3 * 3的卷积核之间,用来压缩特征。也用了batch normalization(前面介绍过)稳定模型训练。

           最终得出的基础模型就是Darknet-19,如下图,其包含19个卷积层、5个最大值池化层(maxpooling layers ),下图展示网络具体结构。Darknet-19运算次数为55.8亿次,imagenet图片分类top-1准确率72.9%,top-5准确率91.2%。

采用 YOLO v2,模型的mAP值没有显著提升,但计算量减少了。以下是网络结构图:


YOLOv2训练

(1)在ImageNet训练Draknet-19,模型输入为224×224,共160个epochs

(2)将网络的输入调整为448×448,继续在ImageNet数据集上finetune分类模型,训练10 个epochs。参数除了epoch和learning rate改变外,其他都没变,这里learning rate改为0.001。

(3)修改Darknet-16分类模型为检测模型(看上面的网络微调部分),并在监测数据集上继续finetune模型


YOLO 9000

YOLO 9000 是什么?

          YOLO 9000 是一种实时的目标检测系统,可以检测9000多个目标类别。其主要检测网络是YOLO v2,同时使用WordTree来混合来自不同的资源的训练数据,并使用联合优化技术同时在ImageNet和COCO数据集上进行训练,目的是利用数量较大的分类数据集来帮助训练检测模型,因此,YOLO9000的网络结构允许实时地检测超过9000种物体分类,进一步缩小了检测数据集与分类数据集之间的大小代沟。


小结

YOLO-V2是一个先进的实时检测系统,提升速度与精度上提出了很多新奇有效的方法,可以运行在不同尺寸大小图片的上,也使得可以很好地权衡速度与精度。同时YOLO9000使用WordTree来结合来自不同来源的数据,并使用联合优化技术在ImageNet和COCO上同时进行训练。YOLO-v2的很多技巧都可以很好地运用在其他场合任务中。


系列文章:

【YOLO系列】--YOLOv1超详细解读/总结_yolov1论文_耿鬼喝椰汁的博客-CSDN博客

【YOLO系列】--YOLOv2超详细解读/总结_耿鬼喝椰汁的博客-CSDN博客

【YOLO系列】--YOLOv3超详细解读/总结_耿鬼喝椰汁的博客-CSDN博客

【YOLO系列】--YOLOv4超详细解读/总结_耿鬼喝椰汁的博客-CSDN博客


这篇论文的学习和总结到这里就结束啦,如果有什么问题可以在评论区留言呀~

如果帮助到大家,可以一键三连支持下~


http://chatgpt.dhexx.cn/article/i77aDIYp.shtml

相关文章

YOLOv1、YOLOv2和YOLOv3对比

YOLOv1、YOLOv2和YOLOv3对比 R-CNN系列YOLOv1结构目标输出网络训练YOLOv1的局限性和R-CNN系列的对比 YOLOv2结构目标输出网络训练关于YOLO9000 YOLOv3结构目标输出网络训练YOLOv3系统做过的不成功的尝试 未来 YOLO深度卷积神经网络已经经过原作者Joseph Redmon已经经过了3代4个…

YOLOv2 论文笔记

论文地址:YOLO9000: Better, Faster, Stronger 项目主页:YOLO: Real-Time Object Detection (最近博客下很多人请求Caffe 代码,受人所托,已经不再提供,且关闭本文评论,望请见谅) …

YOLO - v1

先理解预测阶段: 1)一个448*448*3的图像经过YOLO这个黑箱输出一个7*7*30矩阵; 2)7*7*30的矩阵中的30维是5520;5是预测的bbox的x,y,w,c;20是20个类别的条件概率; 解释c: 解释条件概率:它的意义是…

YOLOV2网络模型

目录 资料 网络模型原理 网络框架 相对于yoloV1的改进 Batch Norm High Resolution Classifier Convolutional With Anchor Boxes Dimension Clusters New Network:Darknet-19 Direct location prediction PassThrough Multi-Scale Training Loss YOLOV2的训…

YOLOv3

YOLOv3 论文信息论文标题:论文作者:收录期刊/会议及年份: 论文学习YOLOv3 网络架构:YOLO 输出特征图解码(前向过程):训练策略与损失函数(反向过程):精度与性能…

从YOLO到YOLO v2再到YOLO v3

配置相关博客链接: YOLO V3-GPU版本在Windows配置及注意事项 YOLO v3在Windows下的配置(无GPU)opencv3.2.0VS2015 前不久YOLO v3出来了,就迫不及待的想试一下。以前装过darknet所以我把整个darknet的文件夹全部删掉。 然后按照…

yolovx

1.输入端 (1)Strong augmentation Yolox主要采用了Mosaic、Mixup两种数据增强方法 有两点需要注意: (1)在训练的最后15个epoch,这两个数据增强会被关闭掉。 而在此之前,Mosaic和Mixup数据增…

史上最通俗易懂的YOLOv2讲解

博主本来想自己写一篇关于YOLOv2的论文笔记的,在找资料的过程中看到这篇天秀的博客,就“据为己用”了。不得不出,很多大佬写的都太深刻了,还是转载比较舒服点~~~~~~ 本文转自目标检测|YOLOv2原理与实现(附YOLOv3) 前 言 在前面的…

【目标检测】YOLOV2详解

前言 前面我们已经讲解过了YOLOV1,因此在这里我会接着前几天的讲解,进一步写一下YOLOV2的基本思想和改进。 YOLOv2的论文全名为YOLO9000: Better, Faster, Stronger,它斩获了CVPR 2017 Best Paper Honorable Mention。在这篇文章中&#xf…

YOLOv2目标检测算法——通俗易懂的解析

目录 YOLOv2目标检测算法前沿一.YOLOv2的改进1.1.BN1.2.High Resolution Classifier1.3.anchor1.4.Fine-Grained Features(细粒度特征)1.5.Multi-Scale Training 二.损失函数三.检测更多类别 YOLOv2目标检测算法 前沿 前面我们讲过了YOLOv1目标检测算法,不了解的小…

YOLOP v2

还是先道歉啊 就是自学求知 又一个自称更好的!! 网上找到的就发了 不知道 大伙用的怎么样啊 更好、更快、更强 ... YOLOv7结合YOLOP的多任务版本 论文链接:https://arxiv.org/pdf/2208.11434v1.pdf 代码链接:https://github.com/CAIC-AD/YOLOPv2 在…

YOLO系列(V1-V2-V3)

yolo系列整理 版本作者主页程序论文yoloV1点击打开点击打开点击打开yoloV2点击打开点击打开点击打开yoloV3点击打开点击打开点击打开 改进 V2 VS V1: 增加BN层: 解决问题:每层的输入分布一直在改变,训练难度增加;采取措施&am…

YOLO_v2讲解

文章目录 一:YOLO_v2的改进二:网络细节【BN层取代了Dropout】【高分辨率分类器】【Anchor思想】【K-means选定先验框】【预测坐标相对于Grid Cell的位置】【细粒度的特征】【多尺度训练】 三:损失函数四:YOLO_v2的不足 一&#xf…

YOLOV2原理理解

YOLOV2 一、YOLOV1的不足之处二、YOLOV2的改进论文精读AbstractIntroductionBetter(重点笔记)FasterStronger(非重点) 三、YOLOV2网络的输出输出结果解释输出图示 四、YOLOV2的LOSS函数五、Kmeans聚类——anchor box六、YOLOV2算法总结七、关于YOLOV2中a…

【目标检测】单阶段算法--YOLOv2详解

论文题目:《YOLO9000: Better, Faster, Stronger》 论文地址:https://arxiv.org/pdf/1612.08242.pdf 一文读懂YOLOv1:YOLOv1 一文读懂YOLOv3:YOLOv3 一文读懂YOLOv4:YOLOv4 1. 前言 在前面的一篇文章中,我…

yolov2详细讲解

yolov2详细讲解 概述 YOLO v1虽然检测速度快,但在定位方面不够准确,并且召回率较低。为了提升定位准确度,改善召回率,yolov2在yolov1的基础上提出了几种改进策略,如下图所示,一些改进方法能有效提高模型的…

YOLO V2解析

YOLO V2是YOLO系列的第二版,在YOLO V1的基础上加以改进,改善了YOLO V1定位不准的问题,又保证了检测的速度,可谓集准确性与速度于一身(YOLO V2获得了CVPR2017的最佳论文提名)。YOLO V2的原文提出了两个模型:YOLO V2和YOLO9000,本文主要着重YOLO V2,下面让我们一同走进Y…

YOLOV2详解

yolov2 YOLOv2论文中英文对照翻译_IT修炼家的博客-CSDN博客 YOLOv2 论文笔记Jesse_Mx的博客-CSDN博客yolov2论文 精读目标检测5——yolo2详解及其预测代码复现cv君的博客-CSDN博客yolo2 目标检测|YOLOv2原理与实现(附YOLOv3) - 知乎 (zhihu.com) YOLO v2 - ZhicongHou - 博客园…

YOLO 超详细入门02 v2 (含代码及原文)

文章目录 前言背景总结一、YOLOv2改进之框架1.1 网络架构1.2 Batch Normalization 二、YOLOv2改进方法之尺寸相关2.1 High Resolution Classifier(高分辨率的分类器)原因步骤 2.2 Fine-Grained Features(细粒度特征)原因步骤 2.3 …

深度学习目标检测_YOLOV2超详细解读

文章目录 YOLO v2概述Batch Normalization(批归一化)High Resolution Classifier(高分辨率预训练分类网络)New Network:Darknet-19神经网络中的filter (滤波器)与kernel(内核&#x…