【目标检测】YOLO v2

阅读: 评论:0

【目标检测】YOLO v2

【目标检测】YOLO v2

目录

  • 1、超级无敌通俗的YOLO系列讲解
  • 2、论文思想
    • 概述
    • 改进
    • 训练过程总结
  • 3、论文翻译
    • 摘要
    • 1、引言
    • 2、更好

1、超级无敌通俗的YOLO系列讲解

链接

2、论文思想

概述

论文主要是写了两点:1、对YOLO进行了大刀阔斧的改进,使得YOLO的性能更上一层楼,并且速度不减当年。2、提出了一种在分类和检测数据集上联合训练的方法,使得模型能够预测超过9000种物体类别。前者是后面YOLOv3的基础,后者的话还是算了。

改进

batch normalization:BN归一化操作,现在已经是习以为常的组件了。相关介绍:链接中的深度学习基础->训练的tip部分,lhy老师讲的很好。

High Resolution Classifier:高分辨率分类器,特征这种东西是存在部分通用性的,现在的模型一般都是在大型数据集上训练一个通用的,然后到下游任务中具体的学习。YOLO是以为224*244的输入在imageNet上预训练的,但是做目标检测的时候,输入变为448*448,这就导致了模型还得去适应这样的变化,不利于训练。而YOLOv2则是加了一步,也就是imageNet上预训练的后期,将输入调整为448*448,增加了这个过渡,使得训练目标检测的时候更加平滑。

Convolutional With Anchor Boxes:引入anchor机制。YOLO中使用两层全连接来预测边框,bbox会野蛮生长。而YOLOv2中有了基准,相对于anchor来进行预测,效果好了很多。每个grid cell会预测5个bbox的信息,这些信息包括 1 + 4 + n 1+4+n 1+4+n,1还是置信度,4是 x , y , w , h x,y,w,h x,y,w,h的四个偏移量,n是n个类别的条件类别概率(voc数据集中是20),但是,这个n与YOLO中不同了,YOLO是每个网格预测n个类别的条件类别概率,而YOLO v2中是每个bbox预测20个类别的条件类别概率。同时,输入由448*448调整为了416*416。使得feature-map的长宽都是奇数,那么就会产生一个center cell了。为什么需要它呢?因为很多时候图片中是大物体,他应该由一个grid cell去负责预测,而不是中心的四个。

Dimension Clusters:尺寸聚类。传统的anchor获得都是手工挑选的,而作者使用k-means这个聚类算法在数据集上进行长宽聚类获得,更加科学,更加符合数据集自身的特点。而经典的k-means算法使用的欧氏距离作为距离的度量,而这样的话就导致同样的距离对于小框的影响会更大。所以作者选用了 1 − I O U 1-IOU 1−IOU做了距离的度量,也就是重叠部分面积越大,框之间的距离越小,这符合直观的想法。

Direct location prediction:直接位置预测,传统的通过anchor预测bbox位置信息的方法会导致模型不稳定,所以我们继续使用YOLO的方法预测相对于网格的位置坐标,使用anchor预测长宽信息。对于输出的特征图中的每个网格,网络会预测5个bbox,而对于每个bbox网络预测5个参数包括 t x , t y , t w , t h 和 t o t_x,t_y,t_w,t_h和t_o tx​,ty​,tw​,th​和to​。网格相对于图片左上角的偏移是 ( c x , c y ) (c_x,c_y) (cx​,cy​),并且anchor的宽和高是 p w , p h p_w,p_h pw​,ph​,那么预测结果对应为 b x = σ ( t x ) + c x , b y = σ ( t y ) + c y , b w = p w ∗ e t w , b h = p h ∗ e t h , P r ( o b j e c t ) ∗ I O U ( b , o b j e c t ) = σ ( t o ) b_x=sigma(t_x)+c_x,b_y=sigma(t_y)+c_y,b_w=p_w*e^{t_w},b_h=p_h*e^{t_h},Pr(object)*IOU(b,object)=sigma(t_o) bx​=σ(tx​)+cx​,by​=σ(ty​)+cy​,bw​=pw​∗etw​,bh​=ph​∗eth​,Pr(object)∗IOU(b,object)=σ(to​)。总结:对于 ( x , y ) (x,y) (x,y)的预测其实和YOLO中一样,但是对于 ( w , h ) (w,h) (w,h)的预测是以anchor为基准了。

Fine-Grained Features:细粒度特征,YOLO v2输出的特征图是13*13的,相比于YOLO的7*7,对于小目标的识别,已经强了几乎一倍,但是作者仍然使用了一个特征融合的trick,就是一个passthrough层。感觉上像是残差,将上一层26*26的feature-map拆分成13*13,并于最后的13*13进行连接。

Multi-Scale Training :多尺度训练。就是在训练目标检测的时候,每训练10个epoch,图像的size就会变化一次,但是因为标准的模型是输入416*416输出13*13也就是下采样32倍,所以输入图像的size也应该是32的倍数。使得模型对于各个尺度的输入都有比较好的兼容性。为什么模型能够接受不同大小的输入呢?因为最后由一个全局平均池化,不管输入什么尺寸,输出都是同样尺寸的结果。

骨干网络:YOLOv2骨干网络使用darknet-19,包含19个卷积层和5个max pooling层,而在YOLO v1中采用的GooleNet,包含24个卷积层和2个全连接层,因此计算量大大减少。

训练过程总结

第一阶段就是先在ImageNet分类数据集上预训练Darknet-19,此时模型输入为224224,共训练160个epochs。
第二阶段将网络的输入调整为448
448,继续在ImageNet数据集上训练分类模型,训练10个epochs。
第三个阶段就是修改Darknet-19分类模型为检测模型,并在检测数据集上继续训练网络。网络修改包括:移除最后一个卷积层、global avgpooling层以及softmax层,并且新增了三个332014卷积层,同时增加了一个passthrough层,最后使用1*1卷积层输出预测结果。输入的尺寸每隔10个epoch变化一次,输出是13*13*5*(1+4+20)

3、论文翻译

     YOLO 9000更好、更快、更强

摘要

     我们引入了一个先进的、实时的、能够检测超过9000种类别的目标检测系统-YOLO 9000。首先我们提出了一些对于YOLO这个检测算法的改进,这些改进既有一些新的东西,也参考了一些前人的工作。改进之后的模型YOLO v2在Pascal voc和COCO这些标准的检测任务上表现都是最好的。使用一种新颖的多尺度训练方法使得同一个YOLO v2的模型可以运行在不同的尺度上,并且很好的权衡了速度和精度。以67fps的检测速度,YOLO v2在voc数据集上获得了76.8的mAP。以40fps的检测速度,YOLO v2获得了78.6的mAP,比一些先进的算法例如使用了resnet的RCNN和SSD性能都要好,并且速度明显更快。最后我们提出了一种联合训练目标检测和分类上的方法。使用这种方式,我们同时在COCO目标检测和ImageNet图像分类数据集上同时训练YOLO v2。这种联合训练方式使得YOLO v2可以检测那些没有被标注的检测数据的类别。我们在ImageNet检测任务中验证我们的方法。尽管200个类别中只有44个类别的检测数据,YOLO v2在ImageNet检测验证集上获得了19.7的mAP。在不属于COCO的156个类别中,YOLO v2获得了16的mAP。但是,YOLO 能够检测的类别不只是200种,它能够检测超过9000不同目标类别。并且,他仍然是实时的检测。

1、引言

     通用目的的目标检测系统应该快速、准确并且能够识别大量的物体。自从引入神经网络之后,检测系统变得越来越快速和准确。但是,大量的检测方法仍然只能够检测少量的物体。
     与分类或者的数据集相比,当前的目标检测数据集是有限的。最常见的检测数据集包含成千上万到数十万张具有数百个标签的图像。而分类数据集有上百万张数万或者数十万个类别的图片。
     我们希望检测能够到达分类的级别。但是,检测任务中的图片标注,远比分类或者帖标签要珍贵(标签通常是用户免费提供的)。因此在近期,我们不太可能看到检测数据集达到分类数据集的规模。
     我们提出了一种新的方法来利用我们已经拥有的大量分类数据,并且使用它去拓展我们当前目标检测系统的检测范围。我们的方法使用一个目标分类的分层视图,它允许我们将不同的数据集组合在一起。
     我们还提出了一种联合训练的算法,这个算法使得我们能够在检测和分类的数据上训练我们的目标检测器。这个算法利用已经标注好的检测图片学习精确的定位物体,同时使用分类图像去提高他的词汇表和鲁棒性。
     使用这个方法我们训练了YOLOv2这个实时的,能够检测超过9000种不同类别的物体的目标检测系统。首先我们在YOLO的基础上进行改进得到了YOLO v2这个先进的实时检测器。接着我们使用数据集合并方法和联合训练算法,在ImagNet的9000个类别和COCO的检测数据集上进行模型的训练。

图片1:YOLO v2能够实时检测大量的物体类别。

2、更好

     YOLO相对于先进的目标检测系统而言存在着大量的问题。YOLO与Fast RCNN的错误对比分析表明YOLO存在大量的定位错误。YOLO与基于region proposal的方法相比,recall相对较低。因此我们想要在维持分类准确率的情况下,重点关注提高recall和精确定位。
     计算机视觉通常倾向于更大,更深的网络。训练更大的网络或者将多个模型组装到一起,会带来更好的性能。但是,在YOLO v2中,我们希望得到一个保持快速并且更加准确的检测器。我们简化了网络而不是扩大它,使其更容易学习。我们将过去的工作与自己的新概念汇集起来,以提高YOLO的性能。表2列出了结果总结。

表2:从YOLO到YOLO v2的过程。大多数罗列的设计方法都会导致mAP的显著增长。两个例外是切换到使用anchor boxes的全卷积网络和新的网络结构。切换到anchor boxex的方法之后recall提高了但是没有改变mAP,但是减少了33%的计算量。
     Batch Normalization。BN会获得收敛性的显著提高,同时消除对其他形式正则化的需要。通过对YOLO中的所有卷积层添加BN,我们获得了2%的mAP提高。BN同时帮助我们实现对于模型的正则化。同时我们可以去掉dropout使用BN而不会导致过拟合。
     高分辨率分类器。所有的先进分类器都是在ImageNet上预训练的。从AlexNet开始所有的分类器对于小于256x256的输入图像进行处理。最初的时候,YOLO也是在224X224的图片上训练,然后将分辨率提高到448X448做检测的。这就意味着网络必须同时切换到学习目标检测和调整新的输入分辨率。
     对于YOLO v2我们首先在ImageNet上以448X448分辨率的图像对分类网络进行10个epoch的微调。这就给予了网络一些时间去调整卷积核的参数,使得它能够在高分辨率的输入情况下表现良好。我们之后再对网络进行微调并用于检测任务。这个高分辨率的分类器提高了4%的mAP。
     具有ancor框的卷积。YOLO直接使用卷积提取特征,然后两层全连接预测bbox的位置信息。Faster RCNN使用手动选择的先验框预测bbox,而不是直接预测坐标。Faster RCNN中的 region proposal network(RPN)只有卷积层来预测anchor框的偏移和置信度。因为预测层其实是卷积层,RPN在特征图的每个位置上预测偏移。预测偏移而不是坐标简化了问题,并使网络更容易学习。
     我们去掉了YOLO中的全连接层并使用anchor框预测bbox。首先我们去掉了池化层使得卷积层的输出具有更高的分辨率。我们同时收缩了网络,操作416X416的输入图片而不是448X448。这样做可以使得特征图中有奇数个位置,那么就有一个中心位置了。目标,尤其是大目标,往往会占据图像的中心,所以需要正好有一个位置在中心去预测这些物体,而不是用4个相邻的位置。YOLO的卷积层对图片进行了32倍的下采样,所以通过输入416X416的图片,我们得到了13X13的特征图。
     当我们使用Anchor框时,我们也将类别预测机制与空间位置分离,预测每个Anchor框的类别和置信度。YOLO类似,置信度预测还会预测真实框和bbox的IOU,而类别预测还会预测假设包含物体情况下的条件类别概率。
     使用chanor框,模型丧失了一点准确度。每张图片YOLO预测98个bbox,而使用anchor框之后模型预测超过1000个bbox。不使用anchor的时候,模型获得了69.5的mAP得分以及81%的recall。使用了anchor之后,模型得到了69.2mAP以及88%的recall。尽管mAP下降了,但是recall的提升意味着模型具有很大的提升空间。
     尺寸聚类。当我们在YOLO中使用anchor框的时候碰到了两个问题。首先anchor框的尺寸是手工挑选的。网络会学着去适当调整这些框,但是如果我们为网络提前挑选更好的框,可以使得网络更容易去预测好的坐标。
     我们在训练集上边界框上使用k-means聚类算法自动找到更好的先验框而不是手工挑选他们。如果我们使用欧氏距离计算标准的k-means算法,大框相对与小框会产生更多的误差。然而,我们真正想要的是更好的IOU分数,他们是与框的大小无关的。因此我们使用的距离度量是: d ( b o x , c e n t r o i d ) = 1 − I O U ( b o x , c e n t r o i d ) d(box,centroid)=1-IOU(box,centroid) d(box,centroid)=1−IOU(box,centroid)
     如图2所示,我们使用了不同的取值运行k-means算法并且绘制平均IOU与聚类中心的关系图。当 k = 5 k=5 k=5时,模型复杂度与高recall之间有较好的权衡。相比于手工挑选的anchor框,聚类中心显著不同。聚类中心有更矮更胖的框,也有更瘦更高的框。

     图二:VOC和COCO数据集上的聚类边界框尺寸。我们对bbox的尺寸进行k-means聚类以获得更好的先验框。左图显示了对K的不同选择得到的平均的IOU。。我们发现当 k = 5 k=5 k=5的时候在recall和模型的复杂度上得到了较好的权衡。右图展示了VOC和COCO数据集上相对中心。这两种先验集合都具有更瘦更高的边界框,而COCO相对于VOC在尺寸上有更大的变化。

     在表1中,我们将平均IOU与我们的聚类策略所得最接近的bbox和手工挑选的anchor框进行了比较。在只有5个聚类中心的时候平均IOU到达了61.1,其性能类似于9个anchor框的60.9的平均IOU。如果是9个聚类中心,我们可以获得更高的平均IOU。这就意味着使用k-means算法生成bbox,会以更好的表示开始模型的训练并使得任务更见容易学习。

     表格1:VOC2007数据集上最接近先验的边界框的平均IOU。VOC2007上的平均目标IOU与和他们最接近的、使用不同生成方法的未被修改过的先验框。聚类得到的结果相比于手工挑选的先验框好很多。
     直接定位预测。当我们在YOLO中使用anchor框的时候,我们碰到了第二个问题:模型不稳定性,尤其是在迭代的早期。大多数的不稳定来自于预测bbox的 ( x , y ) (x,y) (x,y)坐标。在reign proposal网络中,网络会预测 t x , t y t_x,t_y tx​,ty​并且中心坐标 ( x , y ) (x,y) (x,y)的计算按照已下公式: x = ( t x ∗ w a ) − x a , y = ( t y ∗ h a ) − y a x=(t_x*w_a)-x_a,y=(t_y*h_a)-y_a x=(tx​∗wa​)−xa​,y=(ty​∗ha​)−ya​。
     例如,预测 t x = 1 t_x=1 tx​=1bbox将会向右移动anchor框的宽度,预测 t x = − 1 t_x=-1 tx​=−1将会导致bbox向左移动同样的长度。
     这个公式是不受限制的,所以任何anchor框都有可能处于图片中的任何位置,不管在哪个位置预测bbox。随机初始化的话,模型需要花费大量的时间才能稳定地预测合理的偏移量。
     我们继续使用YOLO的方法,预测相对于网格的位置坐标,而不是预测偏移,这使得真实框的边界将会落在0-1之间。我们使用logistic激活函数去限制网络的预测值落在这个范围。
     对于输出的特征图中的每个网格,网络会预测5个bbox,而对于每个bbox网络预测5个参数包括 t x , t y , t w , t h 和 t o t_x,t_y,t_w,t_h和t_o tx​,ty​,tw​,th​和to​。网格相对于图片左上角的偏移是 ( c x , c y ) (c_x,c_y) (cx​,cy​),并且anchor的宽和高是 p w , p h p_w,p_h pw​,ph​,那么预测结果对应为
b x = σ ( t x ) + c x , b y = σ ( t y ) + c y , b w = p w ∗ e t w , b h = p h ∗ e t h , P r ( o b j e c t ) ∗ I O U ( b , o b j e c t ) = σ ( t o ) b_x=sigma(t_x)+c_x,b_y=sigma(t_y)+c_y,b_w=p_w*e^{t_w},b_h=p_h*e^{t_h},Pr(object)*IOU(b,object)=sigma(t_o) bx​=σ(tx​)+cx​,by​=σ(ty​)+cy​,bw​=pw​∗etw​,bh​=ph​∗eth​,Pr(object)∗IOU(b,object)=σ(to​)

     因为我们限制了位置参数的预测,所以参数的学习更加容易,并且网络更加稳定。使用尺寸聚类以及直接预测bbox的中心位置比使用anchor框版本的YOLO而言提高了5%的性能。

本文发布于:2024-01-31 04:03:49,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170664503125296.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:目标   YOLO
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23