9.1.3 简单介绍单阶段模型YOLO、YOLOv2、YOLO9000、YOLOv3的发展过程
9.1.3 简单介绍单阶段模型YOLO、YOLOv2、YOLO9000、YOLOv3的发展过程
前情回顾:9.1.2 简单介绍两阶段模型R-CNN、SPPNet、Fast R-CNN、Faster R-CNN的发展过程
摘要
YOLO | YOLOv2 | YOLO9000 | YOLOv3 | |
---|---|---|---|---|
基本思想 | 使用一个端到端的卷积神经网络直接预测目标的类别和位置 | 针对YOLOv1的两个缺点进行改进 | 可以实时地检测超过9000种物体,其主要贡献是使用检测数据集和分类数据集进行联合训练。 | 在YOLOv2基础上进行改进,优化模型效果 |
优点 | 相对于两阶段模型,YOLO实时性高,但检测精度稍低 | 使用检测数据集和分类数据集进行联合训练 | 采用在YOLOv2基础上进行改进,优化模型效果进行联合训练,使其在小物体上也能获得很好的检测效果 | |
输入图像 | 448×448 | 416×416 | ||
具体做法 | 将输入图片划分成SxS的方格,每个方格需要检测出中心点位于该方格内的物体。在具体实施时,每个方格会预测B个边界框(包括位置、尺寸和置信度) | 1.批归一化(BN)层 2.在高精度的图片上调优(fine-tune)10个批次(batch) 3.k-means算法 4.直接在预先设定的锚框上提取特征 5.输入图像的尺寸:416×416 6.将不同大小的特征图结合起来进行物体检测 7.训练每隔10个批次就改变输入图片大小 8.DarkNet-19 | 字典树 | 损失函数:二元交叉熵损失函数 |
主体网络 | 参考 GoogLeNet,由24个卷积层和2个全连接层组成 | DarkNet-19 采用3x3的卷积核**,共有**19个卷积层和5个池化层 | DarkNet-53(53个卷积层) 借鉴了残差网络的快捷连接(shortcut)结构 | |
缺点 | 低召回率、低定位准确率 |
1.YOLO
-
基本思想:是使用一个端到端的卷积神经网络直接预测目标的类别和位置。
-
优点:相对于两阶段模型,YOLO实时性高,但检测精度稍低。
-
做法:YOLO将输入图片划分成SxS的方格,每个方格需要检测出中心点位于该方格内的物体。在具体实施时,每个方格会预测B个边界框(包括位置、尺寸和置信度)。
-
主体:YOLO的主体网络结构参考 GoogLeNet,由24个卷积层和2个全连接层组成。
-
缺点:低召回率、低定位准确率
2.YOLOv2
YOLOv2针对YOLO的两个缺点,即低召回率和低定位准确率,进行了一系列的改进,下面简单介绍其中的几点。
(1)YOLOv2在卷积层后面添加了批归一化(BN)层,以加快收敛速度,防止过拟合。
(2)YOLOv2的卷积特征提取器在进行检测任务前,先在高精度的图片上调优(fine-tune)10个批次(batch),这样能使检测模型提前适应高分辨率图像。
(3)YOLOv2采用k-means算法进行聚类获取先验锚框,并且聚类没有采用欧氏距离,而是有针对性地改进了距离的定义,即
d ( b o x , c e n t r o i d ) = 1 − I O U ( b o x , c e n t o r i d ) d(box,centroid)=1-IOU(box,centorid) d(box,centroid)=1−IOU(box,centorid)
使其更适合于检测任务。
(4)YOLOv2直接在预先设定的锚框上提取特征。YOLO使用卷积神经网络作为特征提取器,在卷积神经网络之后加上全连接层来预测边界框的中心位置、大小和置信度;而YOLOv2借鉴了Faster R-CNN的思路,用卷积神经网络直接在锚点框上预测偏移量和置信度,该方法要比 YOLO更简单、更容易学习。
(5)YOLOv2将输入图像的尺寸从448x448变成416x416,这是因为在真实场景中,图片通常是以某个物体为中心,修改输入图像的尺寸后,将整幅图像经过卷积层后变成13x13(416/32=13)的特征图,长宽都是奇数,可以有效地识别出中心。
(6)YOLOv2在13x13的特征图上检测物体,对于小物体检测这个精度还远远不够。因此,YOLOv2还将不同大小的特征图结合起来进行物体检测。具体来说,YOLOv2将最后一个池化层的输入26×26×512经过直通层变成13×13×2048的特征图,再与池化后的13×13×1024特征图结合在一起进行物体检测。
(7)YOLOv2 使用不同尺寸的图片同时训练网络。为了增强模型的鲁棒性,模型在训练过程中,每隔10个批次就改变输入图片的大小。
(8)YOLOv2使用新的卷积特征提取网络DarkNet-19。当时大多数检测模型的特征提取部分都采用VGGNet-16作为网络主体,VGGNet-16 虽然效果良好,但是参数过多,运行缓慢。DarkNet-19采用3x3的卷积核,共有19个卷积层和5个池化层。
3.YOLO9000
YOLO9000可以实时地检测超过9000种物体,其主要贡献是使用检测数据集和分类数据集进行联合训练。
-
检测数据集特点:相对于分类数据集来说,数据量小、类别少、类别粒度粗且获取困难,因此研究人员考虑使用分类和检测数据集进行联合训练,提高模型的泛化能力。
-
问题及解决:然而,一般分类数据集的标签粒度要远小于检测数据集的标签粒度,为了能够联合训练,YOLO9000 模型构建了字典树,合并 ImageNet的分类数据集标签与COCO的检测数据集标签。
4.YOLOv3
YOLOv3在YOLOv2的基础上进行了一些小的改动来优化模型的效果。
- 首先,检测数据可能存在一些语义上重叠的标签(如女人和人),但Softmax 函数基于一个假设,即每个检测框内的物体只存在一个类别。因此,YOLOv3使用二元交叉熵损失函数,而不是Softmax函数,这样可以更好地支持多标签的检测。
- 其次,YOLOv3采用了更深的网络作为特征提取器,即DarkNet-53,它包含了53个卷积层。
- 为了避免深层网络带来的梯度消失问题,DarkNet-53 借鉴了残差网络的快捷连接(shortcut)结构。
- 同时,YOLOv3还采用了3个不同大小的特征图进行联合训练,使其在小物体上也能获得很好的检测效果。
下集预告:9.1.4 有哪些措施可以增强模型对于小物体的检测效果?
参考文献:
《百面深度学习》 诸葛越 江云胜主编
出版社:人民邮电出版社(北京)
ISBN:978-7-115-53097-4
2020年7月第1版(2020年7月北京第二次印刷)
推荐阅读:
//好用小工具↓
分享一个免费的chat工具
分享一个好用的读论文的网站
// 深度学习经典网络↓
LeNet网络(1989年提出,1998年改进)
AlexNet网络(2012年提出)
VGGNet网络(2014年提出)
LeNet、AlexNet、VGGNet总结
GoogLeNet网络(2014年提出)
ResNet网络(2015年提出)
相关文章:

9.1.3 简单介绍单阶段模型YOLO、YOLOv2、YOLO9000、YOLOv3的发展过程
9.1.3 简单介绍单阶段模型YOLO、YOLOv2、YOLO9000、YOLOv3的发展过程 前情回顾:9.1.2 简单介绍两阶段模型R-CNN、SPPNet、Fast R-CNN、Faster R-CNN的发展过程 摘要 YOLOYOLOv2YOLO9000YOLOv3基本思想使用一个端到端的卷积神经网络直接预测目标的类别和位置针对YOL…...

英智教育智能体,AI Agent赋能教育培训行业数字化升级
教育是当前需求巨大且没有足够人力来满足的领域,每个学生个体差异较大,有限的教师资源无法针对性实行差异教学,学生学不会,教师教学压力大等问题普遍存在。 面对这些难题,英智在通用大模型能力的基础上,整合…...

什么是电脑监控软件?六款知名又实用的电脑监控软件
电脑监控软件是一种专为监控和记录计算机活动而设计的应用程序,它能够帮助用户(如家长、雇主或系统管理员)了解并管理目标计算机的使用情况。这些软件通常具有多样化的功能,包括但不限于屏幕捕捉、网络行为监控、应用程序使用记录…...

小程序名片怎么生成?AI名片生成器源码系统 为企业店铺创建自己的数字名片
在数字化时代,小程序名片已经成为企业店铺展示自身形象、推广产品和服务的重要工具。分享一个AI名片生成器源码系统春哥AI雷达智能名片小程序系统企业商业运营版,含完整代码包和详细的图文安装部署搭建教程,新手也能轻松使用,源码…...

浅谈PMP:项目管理的专业化认证
引言: 项目管理作为现代企业运营的核心环节,其重要性不言而喻。随着全球化的加速和市场竞争的加剧,企业对项目管理的需求日益增长,项目管理专业人员的需求也水涨船高。在这样的背景下,PMP(Project Managem…...

获取闲鱼商品详情api
要使用闲鱼商品详情API,你需要先申请一个开发者账号,并且在开发者中心创建一个应用,目前很难申请到,还有一个方式是获取第三方应用的AppKey和AppSecret直接使用。 API的请求地址为: https://api.m.taobao.com/h5/mto…...

java1.8运行arthas-boot.jar运行报错解决
报错内容 输入java -jar arthas-boot.jar,后报错。 [INFO] JAVA_HOME: D:\developing\jdk\jre1.8 [INFO] arthas-boot version: 3.7.2 [INFO] Can not find java process. Try to run jps command lists the instrumented Java HotSpot VMs on the target system.…...

每日一练 - IGMP协议与查询器选举机制
01 真题题目 在共享网络中存在多台路由器的情况下,是否是IGMP协议本身负责选举出查询器的角色? A. 正确 B. 错误 02 真题答案 B 03 答案解析 IGMP(Internet Group Management Protocol)互联网组管理协议,主要用于IP多…...

深入浅出:面向对象软件设计原则(OOD)
目录 前言 1.单一责任原则(SRP) 2.开发封闭原则(OCP) 3.里氏替换原则(LSP) 4.依赖倒置原则(DIP) 5.接口分离原则(ISP) 6.共同封闭原则(CCP)…...

缓存与数据一致性问题
1、更新了数据库,再更新缓存 假设数据库更新成功,缓存更新失败,在缓存失效和过期的时候,读取到的都是老数据缓存。 2、更新缓存,更新数据库 缓存更新成功了,数据库更新失败,是不是读取的缓存的都…...

2024年上海高考作文题目(ChatGPT版)
一、2024年6月7日上海高考作文题目 生活中,人们常用认可度判别事物,区分高下。请写一篇文章,谈谈你对“认可度”的认识和思考。 要求:(1)自拟题目;(2)不少于800字。 二、…...

.net 调用海康SDK以及常见的坑解释
📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !序言 在工控领域,很多时候需要…...

KVM+GFS高可用
资源列表 操作系统 IP 主机名 Centos7 192.168.10.51 gfs1 Centos7 192.168.10.52 gfs2 Centos7 192.168.10.53 kvm 在gfs节点部署GlusterFS #添加hosts解析 cat >> /etc/hosts << EOF 192.168.10.51 gfs1 192.168.10.52 gfs2 192.168.10.53 kvm EOF …...

C++迈向精通:当我尝试修改虚函数表
尝试修改虚函数表 本期纯整活儿好吧!!!! 初衷 有一天我突然开始好奇虚函数表是否真的存在,于是我开始想是否能够从C中查看或者调用虚函数表中的内容。,于是有了下面的操作。 操作过程 起初我并没有思路…...

IDEA 高效插件工具
文章目录 LombokMaven Helper 依赖冲突any-rule(正则表达式插件)快速生成javadocGsonFormat (Aits) 将json解析成类Diagrams使用 类图SequenceDiagram时序图GenerateAllSetter(AltEnter)大小写转写String ManipulationGitToolBox 代码提交人activate-pow…...

SQL入门大全
SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的标准编程语言。它具有数据操纵和数据定义等多种功能,为数据库管理系统提供了强大的交互性特点,能够极大地提高计算机应用系统的工作质量与…...

【深度优先搜索 广度优先搜索】297. 二叉树的序列化与反序列化
本文涉及知识点 深度优先搜索 广度优先搜索 深度优先搜索汇总 图论知识汇总 LeetCode297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传…...

App UI 风格,引领设计风向
App UI 风格,引领设计风向...

TIM—通用定时器高级定时器
通用/高级定时器的功能 在基本定时器功能的基础上新增功能: 通用定时器有4个独立通道,且每个通道都可以用于下面功能。 (1)输入捕获:测量输入信号的周期和占空比等。 (2)输出比较:产…...

【数据结构与算法(C语言)】循环队列图解
目录 1. 前言1.1 普通循环队列假溢出1.1.1 初始化队列1.1.2 插满队列1.1.3 删除元素后,再插入元素 1.2 循环队列1.2.1 插入元素,队列已满1.2.2 将元素J1、J2出列,循环队列又空出两个空间1.2.3 元素J6可以继续入列 2. 存储结构和函数说明2.1 队…...

私域流量转化不济的原因
你是不是也曾感到私域流量的转化一直不如意?让我来告诉你,这六大问题是为什么,以及如何轻松解决它们,提升你的私域流量转化率! 1. 问题:目标不明确 你是否常常感到茫然,不知道私域流量应该有何目…...

百万上下文RAG,Agent还能这么玩
❝ 在AI技术飞速发展的今天,我们见证了许多令人惊叹的突破。最近,Qwen2模型的开源引起了广泛的关注,它不仅展示了超越闭源模型的能力,还带来了一个全新的框架——Qwen-Agent。 Qwen-Agent的设计思路虽然与LangChain相似࿰…...

【后端开发】服务开发场景之高可用(冗余设计,服务限流,降级熔断,超时重试,性能测试)
【后端开发】服务开发场景之高可用(冗余设计,服务限流,降级熔断,超时重试,性能测试) 文章目录 序:如何设计一个高可用的系统?可用性的判断指标是什么?哪些情况会导致系统…...

在 Selenium 中更改 User-Agent | 步骤与最佳实践
在 Selenium 中更改 User Agent 是许多网页抓取任务中的关键步骤。它有助于将自动化脚本伪装成常规浏览器,从而避免被网站检测到。本指南将带您了解如何在 Selenium 中更改 Google Chrome 的 User Agent,并提供最佳实践以确保您的网页抓取任务顺利进行。…...

2024酒店IPTV云桌面系统建设方案
Hello大家好,我是点量小芹,这一年多的时间一直在分享实时云渲染像素流相关的内容,今天和大家聊聊酒店IPTV云桌面电视系统解决方案,或者有的朋友也会称之为IPTV服务器。熟悉小芹的朋友知道,IPTV软件系统是我们一直在推的…...

java Thrift TThreadPoolServer 多个processor 的实现
当我们使用Thrift 通信的时候,服务端有时候需要注册多个类,去实现通信,这时候我们就不能再使用单一Processor的方式,就要使用多个Processor,那么如何去实现呢? 多个Process 服务端 public static void m…...

失眠焦虑的解脱之道:找回内心的平静
🍃 在这个快节奏的时代,失眠与焦虑似乎成了许多人的隐形敌人。每当夜幕降临,它们便悄悄潜入心底,扰乱我们的思绪,让宁静的夜晚变得无比漫长。然而,生活总有办法让我们找回内心的平静,只需稍作调…...

OLED柔性屏的显示效果如何
OLED柔性屏的显示效果非常出色,具有多方面的优势。以下是关于OLED柔性屏显示效果的详细分析: 色彩表现:OLED柔性屏的每个像素都可以独立发光,因此色彩准确性极高。黑色呈现得非常深邃,而亮部则展现出鲜明而生动的细节。…...

百货商城优选 伊利牛奶推出全国首款减甲烷环保学生奶
近日,伊利集团受邀参加在全国首个“国际首脑峰会零碳场馆”召开的“降碳增产科技助力奶业绿色高质量发展”首款低碳饲料创新大会。会上,伊利宣布将推出全国首款减甲烷环保学生牛奶——伊利QQ星学生纯牛奶,进一步将可持续发展落到实处…...

Fluid 1.0 版发布,打通云原生高效数据使用的“最后一公里”
作者:顾荣 前言 得益于云原生技术在资源成本集约、部署运维便捷、算力弹性灵活方面的优势,越来越多企业和开发者将数据密集型应用,特别是 AI 和大数据领域应用,运行于云原生环境中。然而,云原生计算与存储分离架构虽…...