常见的卷积神经网络结构——分类、检测和分割

  本文持续更新~~

  本文整理了近些年来常见的卷积神经网络结构,涵盖了计算机视觉领域的几大基本任务:分类任务、检测任务和分割任务。对于较复杂的网络,本文只会记录其中的核心模块以及重要的网络设计思想,并不会记录完整的网络结构。

  有一些网络结构是通用的,可以用于分类、检测和分割任务中的任意一个,本文就选取了其中一个有代表性的任务进行描述。

目录

  • 分类任务
          • 1.VGG
          • 2. Inception v1
          • 3. Inception V2
          • 4. ResNet
          • 5. DenseNet
  • 检测任务
          • 1. FPN
          • 2. PAN
  • 分割任务
          • 1. FCN
          • 2. U-Net
          • 3. SegNet
          • 4. PSPNet
  • 参考文章

分类任务

1.VGG

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

  论文提出了6种不同的VGG网络,最常用的是VGG16。VGG16采用了5组13层卷积5层最大池化,并且使用3层全连接1层Softmax完成分类任务。

  VGGNet使用的卷积核全部为 3 × 3 3×3 3×3,优点在于:两个 3 × 3 3×3 3×3的卷积核和一个 5 × 5 5×5 5×5的卷积核的感受野大小一致,但参数量更少;两个 3 × 3 3×3 3×3的卷积核比一个 5 × 5 5×5 5×5的卷积核的非线性表达能力更强,因为其拥有两个激活函数,可提高网络的学习能力。

在这里插入图片描述

2. Inception v1

  论文地址:https://arxiv.org/pdf/1409.4842

  通过设计一个稀疏网络结构,但是能够产生稠密的数据,既能增加神经网络表现,又能保证计算资源的使用效率。 共4个通道,其中3个卷积通道分别使用 1 × 1 1×1 1×1 3 × 3 3×3 3×3 5 × 5 5×5 5×5的卷积核,保证了每个通道的感受野大小不同,从而获得不同尺度的特征;1个池化通道采用最大池化操作,以减少空间大小,降低过度拟合。使用 1 × 1 1×1 1×1的卷积核进行降维,减小了特征图的维度。

在这里插入图片描述

3. Inception V2

  论文地址:https://arxiv.org/pdf/1502.03167

  在不增加过多计算量的同时提高网络的表达能力,因而修改 Inception 的内部计算逻辑,提出了比较特殊的卷积计算结构。使用 3 × 3 3×3 3×3的卷积核代替 5 × 5 5×5 5×5的卷积核(用小卷积核代替大卷积核);分解卷积,将 n × n n×n n×n的卷积分解为 1 × n 1×n 1×n + + + n × 1 n×1 n×1,进一步降低了参数量;在保持相同感受野的同时减少参数量

在这里插入图片描述
在这里插入图片描述

4. ResNet

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

  ResNet可以说是卷积神经网络的一个里程碑式的结构,自从ResNet被提出后,此后的分类、检测和分割等任务大都使用ResNet作为骨干网络进行特征提取。

  ResNet的思想比较简单,引入了一个残差结构来解决梯度消失的问题。普通网络需要直接拟合输出 H ( x ) H(x) H(x),而ResNet通过引入一个shortcut连接,将需要拟合的映射变为 F ( x ) = H ( x ) − x F(x)=H(x)-x F(x)=H(x)x。即相对于直接优化潜在映射 H ( x ) H(x) H(x),优化残差映射 F ( x ) F(x) F(x)更容易。

在这里插入图片描述

5. DenseNet

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

  DenseNet通过建立前面所有层与后面层的密集连接,即直接将前面所有层的特征Concat后传到下一层,实现了特征在通道维度上的复用。

  DenseNet采用了激活函数在前,卷积层在后的顺序,与一般的卷积网络不同;每个BottleNeck中, 1 × 1 1×1 1×1大小的卷积的作用是固定输出通道数,达到降维的作用。

在这里插入图片描述

检测任务

1. FPN

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

  FPN(Feature Pyramid Network,特征图金字塔网络),主要解决的是物体检测中的多尺度问题,通过简单的网络连接改变,在基本不增加原有模型计算量的情况下,大幅度提升了小物体检测的性能。FPN通过高层特征进行上采样(对高层特征进行放大,即卷积后的特征数最少的那一层)和低层特征进行自顶向下的连接(反向卷积),而且每一层都会进行预测。
  算法大致结构如下:一个自底向上的线路,一个自顶向下的线路,横向连接(lateral connection)。

在这里插入图片描述

2. PAN

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

  PAN(Path Aggregation Network,路径聚合网络)采用自底向上路径增强的方法,在较低的层次上使用精确的定位信号来增强整个特征层次结构,缩短了较低层次与最上层特征之间的信息路径。提出了自适应特征池,它将特征网格和所有特征层连接起来,使每个特征层中的有用信息直接传播到下面的建议子网络。

在这里插入图片描述

分割任务

1. FCN

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

  FCN是对图像进行像素级的分类(也就是每个像素点都进行分类),从而解决了语义级别的图像分割问题。FCN可以接受任意尺寸的输入图像,采用反卷积层对最后一个卷积层的特征图进行上采样,使它恢复到输入图像相同的尺寸,从而可以对每一个像素都产生一个预测,同时保留了原始输入图像中的空间信息,最后在上采样的特征图进行像素的分类。简单的说,FCN与CNN的区别在于FCN把CNN最后的全连接层换成卷积层,其输出的是一张已经标记好的图,而不是一个概率值。

在这里插入图片描述

2. U-Net

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

  网络的左侧是由卷积和Max Pooling构成的一系列降采样操作,由4个block组成,每个block使用了3个有效卷积和1个Max Pooling降采样,每次降采样之后Feature Map的个数乘2,因此有了图中所示的Feature Map尺寸变化。最终得到了尺寸为 32 × 32 32 × 32 32×32的Feature Map。网络的右侧部分同样由4个block组成,每个block开始之前通过反卷积将Feature Map的尺寸乘2,同时将其个数减半(最后一层略有不同),然后和左侧对称的Feature Map合并,由于左侧和右侧的Feature Map的尺寸不一样,U-Net是通过将左侧的Feature Map裁剪到和扩展路径相同尺寸的Feature Map进行归一化的(即图1中左侧虚线部分)。右侧的卷积操作依旧使用的是有效卷积操作,最终得到的Feature Map的尺寸是 338 × 338 338 × 338 338×338。由于该任务是一个二分类任务,所以网络有两个输出Feature Map。

在这里插入图片描述

3. SegNet

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

  SegNet的核心由一个编码器网络和一个对应的解码器网络以及一个像素级分类层组成。

在这里插入图片描述

4. PSPNet

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

  PSPNet的核心模块是Pyramid Pooling Modules,融合了四种不同金字塔尺度下的特征。通过CNN得到的特征图经过四种尺度的池化操作得到四种尺寸的特征图,然后经过卷积操作改变特征图的通道,在通过上采样操作恢复特征图的尺寸大小,最后与输入特征图进行Concat,得到最终的金字塔池化全局特征。

在这里插入图片描述

参考文章

四、全卷积网络FCN详细讲解(超级详细哦)

快速理解Unet的网络结构

SegNet算法详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/2813.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

POM依赖报错解决方案汇总

POM依赖报错解决方案汇总 POM依赖报错解决方案汇总 状况 1 创建完一个maven项目,在pom文件在引入依赖,等下方自动导入加载完毕,去查看IDEA工具的Maven Projects工具选项中Dependencies 依然后依赖红色报错 2 在pom文件中,引用依赖后,该依赖的版本号处直接出现红色 3 IDEA工具…

蓝桥杯Web前端练习题-----水果拼盘

一、水果拼盘 介绍 目前 CSS3 中新增的 Flex 弹性布局已经成为前端页面布局的首选方案,本题可以使用 Flex 属性快速完成布局。 准备 开始答题前,需要先打开本题的项目代码文件夹,目录结构如下: ├── css │ └── style.…

值得记忆的STL常用算法,分分钟摆脱容器调用的困境,以vector为例,其余容器写法类似

STL常用算法 概述&#xff1a; 算法主要是由头文件<algorithm> <functional> <numeric>组成 <algorithm>是所有STL头文件中最大的一个&#xff0c;范围涉及到比较、交换、查找、遍历操作、复制、修改等等 <nuneric>体积很小&#xff0c;只包括…

【AWS入门】通过AWS存储网关(Storage Gate Way)实现文件共享

目录1. 创建网关2. 创建文件共享3. Windows文件共享4. LINUX文件共享1. 创建网关 配置缓存存储需要加载一会儿&#xff0c;此处需要等候 根据上述配置&#xff0c;会自动生成一个EC2实例 2. 创建文件共享 网关&#xff1a;选择上述步骤中创建的网关&#xff0c;选择即可 文…

电路设计的一些概念

锁存器的产生 论述1 (转)时序电路&#xff0c;生成触发器&#xff0c;触发器是有使能端的&#xff0c;使能端无效时数据不变&#xff0c;这是触发器的特性。 组合逻辑&#xff0c;由于数据要保持不变&#xff0c;只能通过锁存器来保存。 第一个代码&#xff0c;由于是时序逻…

基于XML的自动装配~

基于XML的自动装配之场景模拟&#xff1a; 自动装配&#xff1a;根据指定的策略&#xff0c;在IOC容器中匹配某一个bean&#xff0c;自动为指定的bean中所依赖的类类型或者接口类型赋值 之前我们学过的依赖注入&#xff0c;我们在为不同属性赋值时&#xff0c;例如类类型的属性…

可别再用BeanUtils了(性能拉胯),试试这款转换神器

老铁们是不是经常为写一些实体转换的原始代码感到头疼&#xff0c;尤其是实体字段特别多的时候。有的人会说&#xff0c;我直接使用get/set方法。没错&#xff0c;get/set方法的确可以解决&#xff0c;而且也是性能较高的处理方法&#xff0c;但是大家有没有想过&#xff0c;要…

数据结构与算法——堆的基本存储

目录 一、概念及其介绍 二、适用说明 三、结构图示 四、Java 实例代码 五.堆和栈的区别 一、概念及其介绍 堆(Heap)是计算机科学中一类特殊的数据结构的统称。 堆通常是一个可以被看做一棵完全二叉树的数组对象。 堆满足下列性质&#xff1a; 堆中某个节点的值总是不大…

MySQL主从复制

主从复制概述 如何提升数据库并发能力 在实际工作中&#xff0c;我们常常将 Redis 作为缓存与 MySQL 配合来使用&#xff0c;当有请求的时候&#xff0c;首先会从缓存中进行查找&#xff0c;如果存在就直接取出。如果不存在再访问数据库&#xff0c;这样就 提升了读取的效率&…

I2C和SPI总线以及通信

通讯属性 概括 Serial/parallel 串行/并行Synchronous/asynchronous 同步/异步Point-to-point / bus 点对点 总线Half-duplex/full-duplex 半双工/全双工Master-slave/ equal partners 主从/对等single-ending / differential 单端/差分 点对点和总线 点对点通讯 只有两个通…

【简陋Web应用2】人脸检测——基于Flask和PaddleHub

文章目录&#x1f6a9; 前言&#x1f33a; 效果演示&#x1f966; 分析与设计&#x1f349; 实现&#x1f36c; 1. 部署人脸检测模型&#x1f36d; 2. 使用Flask构建app2.1 目录结构2.2 forms.py2.3 utils.py2.4 app.py2.5 index.html&#x1f95d; Bug(s)&#x1f6a9; 前言 本…

V2G模式下含分布式能源网优化运行研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;&#x1f381;&#x1f381;&#x1f381; 目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &am…

手写一个简单的RPC框架

学习RPC框架&#xff0c;由繁化简&#xff0c;了解其本质原理 文章目录项目简介什么是RPC&#xff1f;项目模块项目代码common模块client模块server模块framework模块测试项目简介 什么是RPC&#xff1f; RPC&#xff08;Remote Procedure Call&#xff09;即远程过程调用&am…

Cursor:GPT-4 驱动的强大代码编辑器

Cursor &#xff08;https://www.cursor.so/&#xff09;是 GPT-4 驱动的一款强大代码编辑器&#xff0c;可以辅助程序员进行日常的编码。下面通过一个实际的例子来展示 Cursor 如何帮助你编程。这个例子做的事情是网页抓取。抓取的目标是百度首页上的百度热搜&#xff0c;如下…

SWA Object Detection随机权重平均【论文+代码】

随机权重平均摘要IntroductionSWA实验部分消融实验摘要 您想在不增加推断成本和不改变检测器的情况下提高对象检测器的1.0 AP吗&#xff1f;让我们告诉您一个这样的秘方。这个秘方令人惊讶地简单&#xff1a;使用循环学习率训练您的检测器额外的12个epoches&#xff0c;然后将…

最强的Python可视化神器,你有用过么?

数据分析离不开数据可视化&#xff0c;我们最常用的就是Pandas&#xff0c;Matplotlib&#xff0c;Pyecharts当然还有Tableau&#xff0c;看到一篇文章介绍Plotly制图后我也跃跃欲试&#xff0c;查看了相关资料开始尝试用它制图。 1、Plotly Plotly是一款用来做数据分析和可视…

【数据结构】Java实现队列与循环队列

目录 1. 概念 2. 队列的使用 3. 自己动手实现队列 3.1 MyQueue接口 3.2 LinkedQueue类 3.3 入队列 3.4 出队列 3.5 获取队头元素 3.6 获取队列中有效元素个数与检测队列是否为空 3.7 toString方法 4. 整体实现 4.1 LinkedQueue类 4.2 Test类 4.3 测试结果 5. 循…

while实现1到100相加求和-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第2章-课后作业)

【案例2-7】while实现1到100相加求和 一、案例描述 考核知识点 while循环语句 练习目标 掌握while循环语句。 需求分析 1-100之间的数相加求和&#xff0c;本案例通过while循环语句来实现。 案例分析 效果如图2-10所示。1-100所有数的和 具体实现步骤如下&#xff1a; 在&l…

【进阶数据结构】——红黑树

&#x1f308;感谢阅读East-sunrise学习分享——[进阶数据结构]红黑树 博主水平有限&#xff0c;如有差错&#xff0c;欢迎斧正&#x1f64f;感谢有你 码字不易&#xff0c;若有收获&#xff0c;期待你的点赞关注&#x1f499;我们一起进步&#x1f680; &#x1f308;我们上一…

SpringCloud之 LoadBalancer和Feign负载均衡

文章目录LoadBalancer 负载均衡一、LoadBalanced 负载均衡&#x1f33d;①观察负载均衡现象&#x1f33d;②LoadBalanced 源码剖析二、自定义负载均衡三、OpenFeign 实现负载均衡&#x1f346;①添加依赖&#x1f346;②启动类添加 EnableFeignClients&#x1f346;③创建客户端…