Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >yolo系列检测模型回顾

yolo系列检测模型回顾

原创
作者头像
用户7680342
修改于 2020-10-13 02:00:52
修改于 2020-10-13 02:00:52
7170
举报
文章被收录于专栏:人工智能基础人工智能基础

前言

前面一篇文章写了如何使用yolov3进行检测的上手文章https://cloud.tencent.com/developer/article/1703521,其中简单介绍了下yolo的历史,很不过瘾,这里开一篇,再详细介绍下,yolo系列(v1, v2 , v3)的主要技术特点。希望对大家能够有所帮助。

本文先对yolo系列的历史进行稍微的梳理,之后着重对yolov1,v2,v3进行技术细节解读。

历史

传统目标检测算法,是将整个目标检测分为两个阶段:1 候选区域选择;2 候选区域目标分类。即研究者首先根据经验或者特征提取的方法从图片中圈出待检测的目标框,之后使用分类算法对该区域进行分类得到检测结果。显然这种两阶段的方法步骤冗长,训练困难。经过科研先辈的努力,整个检测流程不断被简化,目标区域从select search 转为 rpn,两阶段的训练变成end2end模式。例如rcnn系列。然而这些两阶段算法的准确度虽然很高,fps却一直上不去。为了解决算法效率问题,yolo被提出了(you only look once),顾名思义,yolo表示的是单阶段的检测算法,它推理速度极快,可以达到几十甚至上百的fps(voc 精度 52.7, 155fps)。yolov1虽好,也存在这一些缺陷,例如小目标的检测效果不过,分辨率固定等。为了解决这些问题,进一步提高精度,yolov2被提出。在对yolov1和yolov2进行整理和总结后,yolov3被发明出来了,该网络整体和它的前辈类似,区别在于使用了逻辑回归代替了softmax,以及更深的darknet-53作为骨干网络。在这之后,另外一位作者使用很多的trick对yolov3进行了进一步的优化,诞生了yolov4(yolov5不是很了解,这里暂时不提). 百度的pp-yolo就是基于yolov3+trick实现的。

yolov1

正如之前提过的两阶段的检测方法,是首先通过选择出目标区域,之后对目标区域进行分类来解决目标检测的问题,例如rcnn通过滑窗遍历所有位置之后进行使用cnn进行分类解决问题。·这类方法的问题很明显,就是分类的区域越多,结果精度就越高,但是性能也就越低,推理时间越长。yolo的作者从这点开始考虑:是否可以直接对目标区域进行回归,直接预测出物体的边框呢?即是否可以直接预测边框(x,y,w,h)作为回归值呢?答案是可以的。这就是yolov1的基线算法。将回归head直接接到骨感网络的cnn结尾处,直接回归对象边框。

当然这里自然就出现一个问题,那图片中有多个对象,需要预测多个对象边框怎么办呢?我们不妨假设,对象不会重叠,那么在图片的多个不同区域预测不同的边框不就解决上面的问题了吗(将图片分为多个区域:s * s个网格,就是用对应网格的anchor进行预测)?如果对象会重叠?这种情况下,不同对象的边框长宽比一定是不同的,我们可以在不同区域使用不同长宽比的框来进行预测。如果不同预测框重叠到一起了呢?我们可以使用最大值抑制,只留下那些置信度高的框。

好了,现在我们已经可以回归对象的边框了,那么如果要通过想知道对象属于哪个分类呢?我们这里通过扩展上面预测的5元组,如果类别数目为c,那么上面5元组扩展成c+5 ,这里的c就是类别的one-hot表示。

最终我们完成了单阶段的目标检测。怎么样,感觉也没有那么难对吧~

yolov2

·yolov1很棒了,但也存在着问题:精度不够,很多物体检测不到。经过作者研究,发现v1的一个问题是,直接预测(x,y,w,h)的话,数据取值可能会很大,导致神经网络不稳定,鉴于此,作者转而使用基于网格/anchor框的偏移量来进行预测(location prediction,并通过归一化和log平滑),使网络进行更快的收敛,提高了精度。·同时这里的anchor使用kmeans对训练集的对象边框进行预先处理,是的anchor 与真实的边框更加接近。并且每个区域使用anchor比例不同的5类(coco数据集)anchor同时进行预测,来保证减少因为·对象大小不同导致的漏检。

在网络结构方面yolov2使用了全卷积网络+bn的结构,骨干网络也编程更深的darknet19,图片输入精度增加了4倍。

下面是yolov1和yolov2的对比,使用不同特性对应的精度提升:

另外值得一提的是,在yolov2的论文中,作者还提出可以使用分类数据集协助训练检测网络,即如果当前是数据有检测标签,则网络进行整体的反向传播。如果当前数据只有分类标签,则只反向传播分类损失。

yolov3

·yolov2又很棒,还剩下小对象召回率不高的问题,相互靠近的对象效果也不好,作者再接再厉,首先上了更深的骨干网络:darknet53.对于多尺度问题,直接把检测头分成三份,每份预测一个尺度的三个比例的anchor。并在检测时候,对跨尺度的特征进行融合。如下图:

到这里yolov3已经可以比ssd快3倍了。。

八卦:Joseph Redmo 觉得自己的研究被用到了军事和隐私上,所以退出cv界了。。。外国人真有性格。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
YOLO系列算法全家桶——YOLOv1-YOLOv9详细介绍 !!
YOLO系列的核心思想就是把目标检测转变为一个回归问题,利用整张图片作为网络的输入,通过神经网络,得到边界框的位置及其所属的类别。
JOYCE_Leo16
2024/04/09
31.6K1
YOLO系列算法全家桶——YOLOv1-YOLOv9详细介绍 !!
YOLO 目标检测实战项目『原理篇』
在目标检测中,IoU 为预测框 (Prediction) 和真实框 (Ground truth) 的交并比。如下图所示,在关于小猫的目标检测中,紫线边框为预测框 (Prediction),红线边框为真实框 (Ground truth)。
机器视觉CV
2019/11/14
4K1
YOLO 目标检测实战项目『原理篇』
【深度学习】目标检测
目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。
杨丝儿
2022/03/01
2.9K0
【深度学习】目标检测
杀疯了!YOLO再突破,提速20倍!!
YOLO再一次突破,新变体YOLO-World在目标检测领域的表现非常的出色。开集检测速度提升20倍!
Python编程爱好者
2024/04/12
1.1K0
杀疯了!YOLO再突破,提速20倍!!
【转】目标检测之YOLO系列详解
YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体。
marsggbo
2019/04/29
1.6K0
【转】目标检测之YOLO系列详解
YOLO将输入图像分成SxS个格子,若某个物体 Ground truth 的中心位置的坐标落入到某个格子,那么这个格子就负责检测出这个物体。
marsggbo
2019/05/26
1.8K0
基于深度学习的目标检测算法面试必备(RCNN~YOLOv5)
目标检测算法主要包括:【两阶段】目标检测算法、【多阶段】目标检测算法、【单阶段】目标检测算法
AI算法与图像处理
2021/05/07
3.8K0
目标检测(Object Detection)
目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具有挑战性的问题。
全栈程序员站长
2022/09/14
7.9K0
目标检测(Object Detection)
简单聊一聊 YOLO 系列的发展历程,对于每一次改进,改进的点在哪?
YOLO(You Only Look Once)是由 Joseph Redmon 等人在 2016 年首次提出的实时目标检测算法。自那时起,YOLO 经历了多次迭代和改进,每个版本都在性能、速度和精度方面有所提升。以下是 YOLO 系列的主要版本及其改进点:
代码小李
2025/01/23
4810
YOLO算法最全综述:从YOLOv1到YOLOv5
来源丨https://zhuanlan.zhihu.com/p/136382095
Datawhale
2020/10/23
2.8K0
YOLO算法最全综述:从YOLOv1到YOLOv5
目标检测算法之YOLO
先假设一个场景,幼儿园老师给小朋友们出了一个题目,看谁能最快的找出笑的最美的那张脸?各位SIGAIer也可以试验下,和小朋友们比比测试下自己的辨识能力。
SIGAI学习与实践平台
2018/08/07
6940
目标检测算法之YOLO
YOLO家族系列模型的演变:从v1到v8(上)
YOLO V8已经在本月发布了,我们这篇文章的目的是对整个YOLO家族进行比较分析。了解架构的演变可以更好地知道哪些改进提高了性能,并且明确哪些版本是基于那些版本的改进,因为YOLO的版本和变体的命名是目前来说最乱的,希望看完这篇文章之后你能对整个家族有所了解。
deephub
2023/02/01
8K0
简述Yolo系列网络的发展史
YOLOv1是单阶段目标检测方法,不需要像Faster RCNN这种两阶段目标检测方法一样,需要生成先验框。Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测。
AIWalker
2021/07/05
1.6K0
简述Yolo系列网络的发展史
1.8M超轻量目标检测模型NanoDet,比YOLO跑得快,上线两天Star量超200
目标检测一直是计算机视觉领域的一大难题,其目标是找出图像中的所有感兴趣区域,并确定这些区域的位置和类别。目标检测中的深度学习方法已经发展了很多年,并出现了不同类型的检测方法。
OpenCV学堂
2020/12/08
1.8K0
1.8M超轻量目标检测模型NanoDet,比YOLO跑得快,上线两天Star量超200
【目标检测】从YOLOv1到YOLOX(理论梳理)
YOLO系列应该是目标领域知名度最高的算法,其凭借出色的实时检测性能在不同的领域均有广泛应用。 目前,YOLO共有6个版本,YOLOv1-v5和YOLOX,除了YOLOv5外,其它都有相应的论文,5篇论文我已上传到资源中,可自行下载:https://www.aliyundrive.com/s/ofcnrxjzsFE 工程上使用最多的版本是YOLOv3和YOLOv5,Pytorch版本均由ultralytics公司开发,YOLOv5仍在进行维护,截至目前,已经更新到YOLOv5-6.1版本。 项目地址:https://github.com/ultralytics/yolov5 在上篇博文中,详细记录了如何用YOLOv5来跑通VOC2007数据集,本篇博文旨在对YOLO系列算法的演化进行简单梳理,更多详细的内容可以看文末的参考资料。
zstar
2022/09/08
2.3K0
YOLOv1/v2/v3简述 | 目标检测
  YOLO十分简单,一个网络同时对多个物体进行分类和定位,没有proposal的概念,是one-stage实时检测网络的里程碑,标准版在TitanX达到45 fps,快速版达到150fps,但精度不及当时的SOTA网络
VincentLee
2020/03/12
1K0
深度学习500问——Chapter08:目标检测(5)
YOLOv1虽然检测速度快,但在定位方面不够准确,并且召回率较低。为了提升定位准确度。改善召回率,YOLOv2在YOLOv1的基础上提出了几种改进策略,如下图所示。可以看到,一些改进方法能有效提高模型的mAP。
JOYCE_Leo16
2024/05/05
2770
深度学习500问——Chapter08:目标检测(5)
Yolo目标检测算法综述
YOLO9000 使用 YOLOv2 模型,采用联合训练算法训练,拥有9000类的分类信息。
杨丝儿
2022/03/17
9400
Yolo目标检测算法综述
YOLO系列介绍
YOLO(You Only Look Once: Unified, Real-Time Object Detection)是Joseph Redmon和Ali Farhadi等于2015年首次提出,在2017年CVPR上,Joseph Redmon和Ali Farhadi又提出的YOLOV2,后又再次提出YOLOV3,它是一个标准的One-stage目标检测算法。
算法之名
2022/03/24
1.9K0
YOLO系列介绍
YOLO v4:物体检测的最佳速度和精度
您只需看一次(YOLO)是快速、准确的单阶段目标检测器。最近发布的YOLO v4与其他目标检测器相比,显示出非常好的结果。
小白学视觉
2020/08/04
3.4K0
YOLO v4:物体检测的最佳速度和精度
相关推荐
YOLO系列算法全家桶——YOLOv1-YOLOv9详细介绍 !!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档