分享

一篇搞定目标检测YOLO v1到YOLO X算法(附代码 数据集)

 InfoRich 2022-08-03 发布于重庆

yolo广泛应用在各种目标检测落地领域中,不仅是人脸,自动驾驶,也可以进行动物界目标检测。其应用之广泛,不会让你学了没处用。从yolo上手掌握同类目标检测算法是比较快速的。

学算法先读paper,下面是YOLO v1到YOLO X的论文解读(就是划侧重点,同时附带代码➕数据集➕论文原文➕精读直播【附带资料在文末】)。

YOLO v1

2015年Redmon等提出了基于回归的目标检测算法YOLO(You Only Look Once),其直接使用一个卷积神经网络来实现整个检测过程,创造性的将候选区和对象识别两个阶段合二为一,采用了预定义的候选区(并不是Faster R-CNN所采用的Anchor),将图片划分为S×S个网格,每个网格允许预测出2个边框。

对于每个网格,YOLO都会预测出B个边界框,而每个边界框YOLO都会预测出5个值,其中4个代表边界框的位置,还有一个代表框的置信值。

YOLO的网络结构示意图如图10所示,其中,卷积层用来提取特征,全连接层用来进行分类和预测.网络结构是受GoogLeNet的启发,把GoogLeNetinception层替换成1×1和3×3的卷积。

最终,整个网络包括24个卷积层和2个全连接层,其中卷积层的前20层是修改后的GoogLeNet。网络经过最后一个FC层得到一个1470×1的输出,7×7×30的一个张量,即最终每个网格都有一个30维的输出,代表预测结果。

YOLO优点:

  • (1)将目标检测问题转化为一个回归问题求解。结构非常简单,直接使用一个卷积神经网络实现同时预测边界框的位置和类别;

  • (2)速度非常快,可以实现视频的实时检测;

  • (3)泛化能力强,能学习到高度泛化的特征,可以迁移到其他领域。

Image

YOLOv2

Redmon等对YOLO网络结构做修改提出了YOLOv2方法,YOLOv2用DarkNet-19用做基础网络,包含19个卷积层、5个最大值池化层。

YOLOv2网络通过在每一个卷积层后添加批量归一化层(batch normalization),同时不再使用dropout。

YOLOv2引入了锚框(anchor boxes)概念,提高了网络召回率,YOLOv1只有98个边界框,YOLOv2可以达到1000多个。

网络中去除了全连接层,网络仅由卷积层和池化层构成,保留一定空间结构信息。结果mAP由69.5%下降到69.2%,下降了0.3%,召回率由81%提升到88%,提升7%。尽管mAP略微下降,但召回率的上升意味着模型有更大的提升空间。同时利用K-means聚类,解决了anchor boxes的尺寸选择问题。

YOLO9000

YOLO9000是基于YOLO的改进版本,YOLO的不足是:

a)利用全连接层的数据对边框进行预测会丢空间信息,导致定位不准,并且设定一个网格只检测两个边界框,合理性不足;

b)相对于two-stage检测,召回率较低。YOLO9000解决了这两个主要问题,去掉全连接层,目的是引入anchor框的思想,在每一个网格中设定九个anchor框,并对anchor框使用了K-means聚类,使其自动地找到更合适的anchor框,提高了召回率,从81%提高到88%。

网格分辨率也从YOLO的7×7改为了13×13,增加特征图的细粒度,可以更好地检测小目标。YOLO9000中尝试加入了批量规范化层(batch-normalization,BN),对数据进行规范化处理。

对于神经网络,每层的分布都有变化,通过对上一层的输出进行均衡规范数据分布,就可以起到加速训练的效果。并且通过规范化输入,降低激活函数在输入区间上达到饱和的概率,来规避梯度消失现象。

YOLO9000采用的网络是DarkNet-19,卷积操作比YOLO的inception更少,减少计算量。该算法mAP达到76.8%,并且速度达到40fps。

Image

YOLOv3

YOLOv3借鉴了ResNet的残差结构,使主干网络变得更深 (从v2的DarkNet-19上升到v3的DarkNet-53) 。整个YOLOv3结构里面,没有池化层和全连接层,在前向传播过程中,张量的尺寸变换是通过改变卷积核的步长来实现。

相应改进使YOLOv3与SSD相当的精确度下达到50fps的检测速度,并在COCO测试数据上mAP的最佳效果达到33.0%,与RetinaNet的结果相近,速度快了3倍,但整体模型变得更加复杂,速度和精度相互制衡。

YOLOv3改进之处:

  • (1)多尺度预测,借鉴FPN,采用多尺度来对不同大小的目标进行检测.

  • (2)更好的分类网络,从DarkNet-19到DarkNet-53.

  • (3)采用Logistic对目标进行分类,替换之前用Softmax的分类方法,且Softmax可被独立的多个Logistic分类器替代,准确率不会下降.

  • Image

YOLO v3也是yolo经典的一代,有为一位朋友就魔改YOLO v3发了篇小论文。

8月4号5号晚我们请来了深度之眼张老师来给大家做为期两天的直播,带大家深入了解YOLOX技术——从yolo V3的基本概念讲到YOLOX的核心技术知识点分解!

Image

扫描二维码0.1元购买直播课

添加小进入学习群

👆购课后进群领👇

YOLO V1YOLO X 

👇论文➕代码➕数据集👇

Image

YOLOv4

YOLO v4的创新主要有四点:

  • 1)输入端:这里指的创新主要是训练时对输入端的改进,主要包括Mosaic数据增强、cmBN、SAT自对抗训练

  • 2)BackBone主干网络:将各种新的方式结合起来,包括:CSPDarknet53、Mish激活函数、Dropblock

  • 3)Neck:目标检测网络在BackBone和最后的输出层之间往往会插入一些层,比如Yolov4中的SPP模块、FPN+PAN结构

  • 4)Prediction:输出层的锚框机制和Yolov3相同,主要改进的是训练时的损失函数CIOU_Loss,以及预测框筛选的nms变为DIOU_nms

仅对比Yolov3和Yolov4,在COCO数据集上,同样的FPS等于83左右时,Yolov4AP是43,而Yolov333,直接上涨了10个百分点。

YOLO v5

与YOLO v4相比,YOLO v5的主要改进如下:

(1)输入端:Mosaic数据增强、自适应锚框计算、自适应图片缩放

(2)Backbone:Focus结构,CSP结构

(3)Neck:FPN+PAN结构

(4)Prediction:GIOU_Loss

YOLO X

近两年来目标检测领域的各个角度的优秀进展与YOLO进行了巧妙地集成组合(比如解耦头、数据增广、标签分配、Anchor-free机制等)得到了YOLOX

YOLOXYOLOX就是目标检测领域高性能+高速度的新一代担当。

yoloX的优秀不仅仅在于最佳性能,其他的技术亮点一起来读原文看直播学习一下!

本文部分内容引用自江大白和极市平台公众号,侵删。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多