生活资讯
YOLO 算法最全综述:从 YOLOv1 到 YOLOv5
2024-12-12 21:36  浏览:87



 


 

  磐创AI分享  

转自 | 极市平台

作者 | 初识cv

文本来源 | https://zhuanlan.zhihu.com/p/136382095


【导读】YOLO系列是基于深度学习的回归方法,本文详细介绍了从YOLOv1至最新YOLOv5五种方法的主要思路、改进策略以及优缺点。

等式左边第一项就是每个网格预测的类别信息,第二三项就是每个bounding box预测的confidence。这个乘积即encode了预测的box属于某一类的概率,也有该box准确度的信息。

简单的概括就是:

(1) 给个一个输入图像,首先将图像划分成7*7的网格

(2) 对于每个网格,我们都预测2个边框(包括每个边框是目标的置信度以及每个边框区域在多个类别上的概率)

(3) 根据上一步可以预测出7*7*2个目标窗口,然后根据阈值去除可能性比较低的目标窗口,最后NMS去除冗余窗口即可

在实现中,最主要的就是怎么设计损失函数,让这个三个方面得到很好的平衡。作者简单粗暴的全部采用了sum-squared error loss来做这件事。

这种做法存在以下几个问题:

解决办法:

对不同大小的box预测中,相比于大box预测偏一点,小box预测偏一点肯定更不能被忍受的。而sum-square error loss中对同样的偏移loss是一样。

其他细节,例如使用激活函数使用leak RELU,模型用ImageNet预训练等等

论文地址:https://arxiv.org/abs/1612.08242

YOLOv2相对v1版本,在继续保持处理速度的基础上,从预测更准确(Better)速度更快(Faster)识别对象更多(Stronger)这三个方面进行了改进。其中识别更多对象也就是扩展到能够检测9000种不同对象,称之为YOLO9000

文章提出了一种新的训练方法–联合训练算法,这种算法可以把这两种的数据集混合到一起。使用一种分层的观点对物体进行分类,用巨量的分类数据集数据来扩充检测数据集,从而把两种不同的数据集混合起来。

联合训练算法的基本思路就是:同时在检测数据集和分类数据集上训练物体检测器(Object Detectors ),用检测数据集的数据学习物体的准确位置,用分类数据集的数据来增加分类的类别量、提升健壮性。

Batch Normalization(批量归一化)

mAP提升2.4%。

批归一化有助于解决反向传播过程中的梯度消失和梯度爆炸问题,降低对一些超参数(比如学习率、网络参数的大小范围、激活函数的选择)的敏感性,并且每个batch分别进行归一化的时候,起到了一定的正则化效果(YOLO2不再使用dropout),从而能够获得更好的收敛速度和收敛效果。

通常,一次训练会输入一批样本(batch)进入神经网络。批规一化在神经网络的每一层,在网络(线性变换)输出后和激活函数(非线性变换)之前增加一个批归一化层(BN),BN层进行如下变换:①对该批样本的各特征量(对于中间层来说,就是每一个神经元)分别进行归一化处理,分别使每个特征的数据分布变换为均值0,方差1。从而使得每一批训练样本在每一层都有类似的分布。这一变换不需要引入额外的参数。②对上一步的输出再做一次线性变换,假设上一步的输出为Z,则Z1=γZ + β。这里γ、β是可以训练的参数。增加这一变换是因为上一步骤中强制改变了特征数据的分布,可能影响了原有数据的信息表达能力。增加的线性变换使其有机会恢复其原本的信息。

关于批规一化的更多信息可以参考 Batch Normalization原理与实战。

High resolution classifier(高分辨率图像分类器)

mAP提升了3.7%。

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

所以YOLO2在采用 224*224 图像进行分类模型预训练后,再采用 448*448 的高分辨率样本对分类模型进行微调(10个epoch),使网络特征逐渐适应 448*448 的分辨率。然后再使用 448*448 的检测样本进行训练,缓解了分辨率突然切换造成的影响。

Convolution with anchor boxes(使用先验框)

召回率大幅提升到88%,同时mAP轻微下降了0.2。

YOLOV1包含有全连接层,从而能直接预测Bounding Boxes的坐标值。Faster R-CNN的方法只用卷积层与Region Proposal Network来预测Anchor Box的偏移值与置信度,而不是直接预测坐标值。作者发现通过预测偏移量而不是坐标值能够简化问题,让神经网络学习起来更容易。

借鉴Faster RCNN的做法,YOLO2也尝试采用先验框(anchor)。在每个grid预先设定一组不同大小和宽高比的边框,来覆盖整个图像的不同位置和多种尺度,这些先验框作为预定义的候选区在神经网络中将检测其中是否存在对象,以及微调边框的位置。

之前YOLO1并没有采用先验框,并且每个grid只预测两个bounding box,整个图像98个。YOLO2如果每个grid采用9个先验框,总共有13*13*9=1521个先验框。所以最终YOLO去掉了全连接层,使用Anchor Boxes来预测 Bounding Boxes。作者去掉了网络中一个Pooling层,这让卷积层的输出能有更高的分辨率。收缩网络让其运行在416*416而不是448*448。

由于图片中的物体都倾向于出现在图片的中心位置,特别是那种比较大的物体,所以有一个单独位于物体中心的位置用于预测这些物体。YOLO的卷积层采用32这个值来下采样图片,所以通过选择416*416用作输入尺寸最终能输出一个13*13的Feature Map。使用Anchor Box会让精确度稍微下降,但用了它能让YOLO能预测出大于一千个框,同时recall达到88%,mAP达到69.2%。

Dimension clusters(聚类提取先验框的尺度信息)

之前Anchor Box的尺寸是手动选择的,所以尺寸还有优化的余地。YOLO2尝试统计出更符合样本中对象尺寸的先验框,这样就可以减少网络微调先验框到实际位置的难度。YOLO2的做法是对训练集中标注的边框进行K-mean聚类分析,以寻找尽可能匹配样本的边框尺寸。

通过分析实验结果(Figure 2),左图:在model复杂性与high recall之间权衡之后,选择聚类分类数K=5。右图:是聚类的中心,大多数是高瘦的Box。

Fine-Grained Features(passthrough层检测细粒度特征)

passthrough层检测细粒度特征使mAP提升1。

对象检测面临的一个问题是图像中对象会有大有小,输入图像经过多层网络提取特征,最后输出的特征图中(比如YOLO2中输入416*416经过卷积网络下采样最后输出是13*13),较小的对象可能特征已经不明显甚至被忽略掉了。为了更好的检测出一些比较小的对象,最后输出的特征图需要保留一些更细节的信息。

另外,根据YOLO2的代码,特征图先用1*1卷积从 26*26*512 降维到 26*26*64,再做1拆4并passthrough。下面图6有更详细的网络输入输出结构。

Multi-ScaleTraining(多尺度图像训练)

作者希望YOLO v2能健壮的运行于不同尺寸的图片之上,所以把这一想法用于训练model中。

区别于之前的补全图片的尺寸的方法,YOLO v2每迭代几次都会改变网络参数。每10个Batch,网络会随机地选择一个新的图片尺寸,由于使用了下采样参数是32,所以不同的尺寸大小也选择为32的倍数{320,352…..608},最小320*320,最大608*608,网络会自动改变尺寸,并继续训练的过程。

这一政策让网络在不同的输入尺寸上都能达到一个很好的预测效果,同一网络能在不同分辨率上进行检测。当输入图片尺寸比较小的时候跑的比较快,输入图片尺寸比较大的时候精度高,所以你可以在YOLO v2的速度和精度上进行权衡。

论文地址:https://pjreddie.com/media/files/papers/YOLOv3.pdf

YOLO v3的模型比之前的模型复杂了不少,可以通过改变模型结构的大小来权衡速度与精度。

改进之处

YOLOv3不使用Softmax对每个框进行分类,主要考虑因素有两个:

分类损失采用binary cross-entropy loss。

每种尺度预测3个box, anchor的设计方式仍然使用聚类,得到9个聚类中心,将其按照大小均分给3个尺度.

参见网络结构定义文件 yolov3.cfg
https://github.com/pjreddie/darknet/blob/master/cfg/yolov3.cfg

仍采用之前的logis,其中cx,cy是网格的坐标偏移量,pw,ph是预设的anchor box的边长.最终得到的边框坐标值是b*,而网络学习目标是t*,用sigmod函数、指数转换。

YOLOv4: Optimal Speed and Accuracy of Object Detection

论文:https://arxiv.org/abs/2004.10934

代码:https://github.com/AlexeyAB/darknet

YOLOv4的特点是集大成者,俗称堆料。但最终达到这么高的性能,一定是不断尝试、不断堆料、不断调参的结果,给作者点赞。下面看看堆了哪些料:

本文的主要贡献如下:

1. 提出了一种高效而强大的目标检测模型。它使每个人都可以使用1080 Ti或2080 Ti GPU 训练超快速和准确的目标检测器(牛逼!)。

2. 在检测器训练期间,验证了SOTA的Bag-of Freebies 和Bag-of-Specials方法的影响。

3. 改进了SOTA的方法,使它们更有效,更适合单GPU训练,包括CBN [89],PAN [49],SAM [85]等。文章将目前主流的目标检测器框架进行拆分:input、backbone、neck 和 head.

YOLOv5源代码:

https://github.com/ultralytics/yolov5

因此总结起来,YOLOv5 宣称自己速度非常快,有非常轻量级的模型大小,同时在准确度方面又与 YOLOv4 基准相当。

大家对YOLOV5命名是争议很大,因为YOLOV5相对于YOLOV4来说创新性的地方很少。不过它的性能应该还是有的,现在kaggle上active检测的比赛小麦检测前面的选手大部分用的都是YOLOV5的框架。比赛链接:

https://www.kaggle.com/c/global-wheat-detection

1.V1,V2,V3参考地址:https://blog.csdn.net/App_12062011/article/details/77554288

 

 

扫码看好书,满100减50超值优惠活动等你哦

✄------------------------------------------------

看到这里,说明你喜欢这篇文章,请点击「在看」或顺手「转发」「点赞」。

欢迎微信搜索「panchuangxx」,添加小编磐小小仙微信,每日朋友圈更新一篇高质量推文(无广告),为您提供更多精彩内容。

 

▼  ▼   扫描二维码添加小编  ▼  ▼  

    以上就是本篇文章【YOLO 算法最全综述:从 YOLOv1 到 YOLOv5】的全部内容了,欢迎阅览 ! 文章地址:http://changmeillh.xhstdz.com/xwnews/8.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://changmeillh.xhstdz.com/mobile/ , 查看更多   
最新文章
6.如何利用SEO赚取美金
众所周知,SEO(Search Engine Optimization)搜索引擎优化,是一种获取流量的方式,利用搜索引擎规则提高网站在相关搜索内的自
欧陆国际:外贸SEO应该怎么做
外贸SEO应该怎么做?外贸行业有两种线上模式:自己搭建网站、借助于B2B平台开网店,自建网站不受平台限制,推广方式也比较自由,
各个网站及搜索引擎收录地址大全
搜索引擎网站收录地址大全 【点此提交您的搜索引擎】360搜索引擎登录入口:http://info.so.360.cn/site_submit.html即刻
国内自动驾驶汽车排名
国产自动驾驶汽车有哪几款?国内自动驾驶汽车排名随着大家对于自动驾驶需求的日益增加,随着自动驾驶技术的进步,慢慢的诞生了越
只会外链分享?那你可能错过了jBox“共享”这座宝库
jBox交大云盘交大人的专属“聚宝盘”自助扩容、高速传输和市面上所有网盘一样,jBox可通过外链实现文件分享,这或许也是SJTUer目
21个Python爬虫项目代码,微信、淘宝、豆瓣、知乎、微博等
今天为大家整理了23个Python爬虫项目。整理的原因是,爬虫入门简单快速,也非常适合新入门的小伙伴培养信心,所有链接指向GitHub
【flagship搜狗手机输入法下载】三星flagship搜狗手机输入法12.1.1免费下载
搜狗输入法,拥有超大中文词库,输入更加精准,智能。搜狗智能旺仔带你用表达,斗图,妙语,输入更加有趣。******特色功能******
免费行情网站app入口:免费行情神器!随时随地掌握市场动态的入口-你值得拥有!
投资市场瞬息万变,但你是否因为信息滞后错失过机会?又或者为了寻找靠谱的行情工具在茫茫软件海洋中迷失?今天要向你推荐一款绝对
2024年10大AI生成PPT工具推荐(12月)
在数字化时代,AI驱动的PPT生成工具正在彻底改变我们制作和展示PPT的方式。这些工具利用人工智能技术简化创建流程,提升视觉吸引
7995wx鲁大师视频:探究鲁大师如何帮助您全面提升计算机性能!
在如今高速发展的科技时代,计算机已成为我们日常生活中不可或缺的重要工具。无论是工作、学习,还是娱乐,电脑的性能直接影响着
相关文章