当前位置: 首页 > news >正文

FCN网络介绍

目录

  • 前言
  • 一.FCN网络
  • 二.网络创新点

前言

  在图像分割领域,有很多经典的网络,如MASK R-CNNU-NetSegNetDeepLab等网络都是以FCN为基础进行设计的。我们这里简单介绍一下这个网络。

一.FCN网络

FCN网络介绍
  FCN 即全卷积网络,是收割端对端的针对像素级预测的端对端的全卷积网络。这里全卷积的意思就是将分类网络的全连接层给换成了卷积层。FCN 简单有效,目前很多网络的架构还是建立在FCN之上。
看下FCN网络的整体框架:
在这里插入图片描述
  通过上面这幅图可以看出,FCN也是非常的简单的,就是通过一些列的卷积下采样得到最后的特征层。最后输出channel是21,是因为当时主要是使用的数据集是pascal voc数据集,总共20个类别,加上背景总共21。对着21个值进行softmax处理就能得到该像素针对每个类类别的预测概率,取该像素最大的那个类别作为预测类别。
我们来看下论文中提到的convolutionalization,如下图所示:
在这里插入图片描述
  上面一部分是使用功能全连接层得到最终的维度为1000的向量,全连接层有个弊端,输入图像的大小必须是固定的,这样就很不友好,于是作者想能不能把全连接层全部替换成卷积层,于是就出现了下面的结构。输入图像的大小可以是任意的。 那么最后的输出就不是一个一维向量了,就变成了(m,n,c),对应每个channel就是一个2D的数据,可以可视化成一个heatmap图。
下面我们来看下convolutionalization的过程:
在这里插入图片描述
  上面是全连接层,下面是把去全连接层替换成了卷积层。其中,全连接层的计算量和卷积的计算量分别为:全连接是25088×4096=10276044825088\times4096=10276044825088×4096=102760448,卷积的计算量是7×7×512×4096=1027604487\times7\times512\times4096=1027604487×7×512×4096=102760448。可以看到他们的计算量是一模一样的。可以这样理解,把全连接的权重可以reshape一下就是下面的卷积核。

  FCN中总共给了三个模型,分别是FCN-32s,16s,8s,这个数字表示需要把最后的特征层上采样几倍能够恢复到原图尺寸大小,整个网络以VGG为骨干,后面全连接改成卷积层,看两个例子:
在这里插入图片描述
在这里插入图片描述

二.网络创新点

  FCNFully Convolutional Network)网络将传统的全连接层替换为全卷积层,从而使得网络可以输入任意大小的图像并输出对应大小的密集预测。这种创新使得FCN网络可以用于像分割、检测、定位等密集预测任务,而不需要事先对输入图像进行裁剪或调整大小。FCN网络还利用了反卷积层(deconvolutional layer)将特征图映射回原始输入图像上,从而生成像素级别的密集预测结果。

  此外,FCN网络还引入了跳跃式连接(skip connections)的思想,将底层和中间层的特征图与上采样后的特征图进行连接,从而提高网络对局部细节和全局语义的把握能力。这种连接方式类似于U-Net网络中的跨层连接,但FCN网络的跳跃式连接是在全卷积网络中引入的一种新思想。通过这种方式,FCN网络可以在保留高分辨率信息的同时,充分利用底层特征提取器的语义信息,从而提高了分割精度。
总结:
  FCN网络的创新点主要体现在两个方面:全卷积层的应用和跳跃式连接的设计。这些创新使得FCN网络成为了当今计算机视觉领域中最重要的分割网络之一,为其他密集预测任务的研究和应用提供了重要的启示。

http://www.lryc.cn/news/37222.html

相关文章:

  • Idea+maven+spring-cloud项目搭建系列--11 整合dubbo
  • 2023年上半年北京杭州/广州深圳软考中/高级报名入口
  • jupyter notebook配置和使用
  • 【C++】通过stack、queue、deque理解适配器模式
  • JavaScript 高级实例集合
  • Flutter(五)容器类组件
  • 实现满屏品字布局
  • 软件测试-性能测试-基础知识
  • java多线程与线程池-02线程池与锁
  • AB测试——流程介绍(设计实验)
  • C++中的智能指针有哪些?分别解决的问题以及区别?
  • 通达信捉妖改良CCI指标公式,简洁巧妙
  • 「Python 基础」面向对象编程
  • 【K3s】第23篇 一篇文章带你学习k3s私有镜像仓库配置
  • Redis学习【12】之Redis 缓存
  • Bootargs 参数
  • Mybatis框架源码笔记(七)之Mybatis中类型转换模块(TypeHandler)解析
  • 论文阅读《Block-NeRF: Scalable Large Scene Neural View Synthesis》
  • 【Matlab】如何设置多个y轴
  • 圆桌(满足客人空座需求,合理安排客人入座圆桌,准备最少的椅子)
  • 如何入门大数据?
  • 如何在Vite项目中使用Lint保证代码质量
  • Spark高手之路1—Spark简介
  • 社科院与杜兰大学金融管理硕士项目——人生没有太晚的开始,不要过早的放弃
  • Spatial-Temporal Graph ODE Networks for Traffic Flow Forecasting
  • IP协议+以太网协议
  • 可视化组件届的仙女‖蝴蝶结图、玫瑰环图、小提琴图
  • 人的高级认知:位置感
  • MATLAB——信号的采样与恢复
  • Docker Nginx 反向代理