【语义分割专题】语义分割相关工作--FCN网络介绍

图像分割与FCN 一. 图像语义分割        传统的图像分割方法主要包括以下几种: 1)基于边缘检测 2)基于阈值分割       比如直方图,颜色,灰度等 3)水平集方法         这里我们要说的是语义分割,什么是语义分割呢?先来看张图:                 将目标按照其分类进行像素级的区分,比如区分上图的 摩托车 和 骑手,这就是语义分割,语义分割赋予了场景理 阅读详情

Fully Convolutional Networks for Semantic Segmentation

将当前分类网络(AlexNet,VGGNet和GoogleNet)修改为全卷积网络,通过对分割任务进行微调,将它们学习的表征转移到网络中。然后,定义了一种新的架构,将深度、粗糙的网络层的语义信息和浅的、精细的网络层的表征信息结合起来,来生成精确和详细的分割。即在上采样的每一个阶段通过融合(简单的相加)下采样阶段网络中的底层的更加粗糙但是分辨率更高的特征图进一步细化特征。

https://arxiv.org/abs/1511.00561

在这里插入图片描述

总的来说,FCN可以看作图像分割的开山鼻祖,其创新点主要是:

  • 卷积化:用卷积来代替全连接,因此是拥有较少参数的轻量级网络。并将VGG16等分类器网络进行知识迁移来实现语义细分。
  • 上采样:对低分辨的图像采用通过学习实现插值操作进行上采样,而不是使用简单的双线性插值(即使用经双线性插值滤波器初始化后的反卷积操作完成)
  • 跳跃结构:将encoder不同"层面"的特征进行融合(这些不同"层面"的特征具有不同"粗糙程度"的语义信息)

首先是VGG16的主干结构,用来提取特征

def get_vgg_encoder(input_height=224,  input_width=224, pretrained='imagenet'):

    assert input_height % 32 == 0
    assert input_width % 32 == 0

    img_input = Input(shape=(input_height, input_width, 3))

    # block1
    x = Conv2D(64, (3, 3), activation='relu', padding='same',name='block1_conv1')(img_input)
    x = Conv2D(64, (3, 3), activation='relu', padding='same',name='block1_conv2')(x)
    x = MaxPooling2D((2, 2), strides=(2, 2), name='block1_pool')(x)
    f1 = x
    # Block 2
    x = Conv2D(128, (3, 3), activation='relu', padding='same',name='block2_conv1')(x)
    x = Conv2D(128, (3, 3), activation='relu', padding='same',name='block2_conv2')(x)
    x = MaxPooling2D((2, 2), strides=(2, 2), name='block2_pool')(x)
    f2 = x

    # Block 3
    x = Conv2D(256, (3, 3), activation='relu', padding='same',
               name='block3_conv1')(x)
    x = Conv2D(256, (3, 3), activation='relu', padding='same',name='block3_conv2')(x)
    x = Conv2D(256, (3, 3), activation='relu', padding='same',name='block3_conv3')(x)
    x = MaxPooling2D((2, 2), strides=(2, 2), name='block3_pool')(x)
    f3 = x

    # Block 4
    x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block4_conv1')(x)
    x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block4_conv2')(x)
    x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block4_conv3')(x)
    x = MaxPooling2D((2, 2), strides=(2, 2), name='block4_pool')(x)
    f4 = x

    # Block 5
    x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block5_conv1')(x)
    x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block5_conv2')(x)
    x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block5_conv3')(x)
    x = MaxPooling2D((2, 2), strides=(2, 2), name='block5_pool')(x)
    f5 = x


    return img_input, [f1, f2, f3, f4, f5]

从上图我们看到FCN算法采用了“融合层”的策略(简单的相加),将高层特征和低层特征进行融合来提高分割性能,分别采用了3种不通过的结构。即32x upsampled,16x upsampled,8x upsampled。

这里来看一下FCN-8的解码器,FC8解码器融合了不同粗糙程度conv3,conv4和fc7的特征,利用编码器不同阶段不同分辨率的空间信息来细化分割结果。具体操作步骤是将pool5的结果进行2倍上采样,与pool4相加,作为“融合”,然后将“融合”后的结果进行2倍的上采样。再与pool3的结果进行“融合”,之后进行8倍的上采样。(这里的融合是指对应位置像素值相加,后来的u-net则是通道上拼接。)

def f8_decoder(n_classes,levels):

    [f1,f2,f3,f4,f5] = levels

    x = f5

    x = (Conv2D(4096,(7,7),activation="relu",padding="same"))(x)
    x = Dropout(0.5)(x)
    x = (Conv2D(4096,(1,1),activation="relu",padding="same"))(x)
    x = Dropout(0.5)(x)
    x = (Conv2D(n_classes,(1,1),kernel_initializer='he_normal'))(x)
    x = Conv2DTranspose(n_classes,kernel_size=(4,4),strides=(2,2),padding='same', kernel_initializer='he_normal')(x)

    f4 = (Conv2D(n_classes,(1,1),kernel_initializer="he_normal"))(f4)

    x = Add()([f4,x])

    x = Conv2DTranspose(n_classes,kernel_size=(4,4),strides=(2,2),padding="same",kernel_initializer="he_normal")(x)

    f3 = (Conv2D(n_classes,(1,1),kernel_initializer="he_normal"))(f3)

    x = Add()([f3,x])

    x = Conv2DTranspose(n_classes,kernel_size=(16,16),strides=(8,8),padding="same",kernel_initializer="he_normal")(x)

    output_f8 = x
    return output_f8

最后的FCN结构

def fcn(n_classes,encoder,input_height=416,input_width=608):
    # encoder通过主干网络
    img_input, levels = encoder(input_height=input_height, input_width=input_width)

    # 将特征传入f32网络
    x = f8_decoder( n_classes, levels)
    x = Softmax()(x)
    model = Model(img_input,x)

    return model

在这里插入图片描述

【图像分割 之 开山之作】 2015-FCN CVPR FCN论文解读 首个端对端的针对像素级预测的全卷积网络 FCN是一个end-to-end的网络,实现像素级别(pixel-wise)的分类,即对每一个像素点都可以进行分类,在语义分割任务上取得了很不错的效果! FCN论文地址:FCN paper FCN原作代码:FCN github 论文共分为6个部分 介绍 相关工作 全卷积网络 分割网络 结果 结论 本次讲解具体讲介绍,全卷积网络,分割网络3个部分 1. 简介 首先介绍一下FCN的背景和工作成果 fakerlove/cv (gitee.com) 1 阅读详情

相关推荐

FCN语义分割训练自己的数据(依据VOC2012数据集格式)

chapter 4 应用FCN训练自己的数据(以voc2012为模板) step0.参考数据集需求 可用于FCN的完全VOC格式的数据组织结构模式: 训练集和验证集可以按照8-2的方式进行安排。 VOC2012数据集共包含21个类别,其中包括背景类,则共包含20类事物。 step1.制作自己的数据 应用一个简化的方法,并不把像素级的labels做成.mat的形式,反倒是借助于索...

而濡木染 1万+

干货 | 一文概览主要语义分割网络,FCN、UNet、SegNet、DeepLab 等等等等应有尽有

原文地址:https://meetshah1995.github.io/semantic-segmentation/deep-learning/pytorch/visdom/2017/06/01/semantic-segmentation-over-the-years.html 介绍 图像的语义分割是将输入图像中的每个像素分配一个语义类别,以得到像素化的密集分类。虽然自 2007 年以来,...

蓝三金的博客 9万+

深度卷积网络CNN与图像语义分割

转载请注明出处: http://xiahouzuoxin.github.io/notes/级别1:DL快速上手级别2:从Caffe着手实践级别3:读paper,网络Train起来级别3:Demo跑起来读一些源码玩玩熟悉Caffe接口,写Demo这是硬功夫分析各层Layer输出特征级别4:何不自己搭个CNN玩玩级别5:加速吧,GPU编程关于语义分割的一些其它工作说好的要笔耕不缀,这开始一边实习一边找

xiahouzuoxin 9万+

最全语义分割概览

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达来自| 知乎 作者丨Mr.Ma编辑 |深度学习算法与计算机视觉公众号来源丨https://zhuanlan.zhihu.com/p/51313586语义分割是指对图片中的像素进行类别上的分类,有别于实例分割,不能区分同一类别的不同个体。本文对从FCN开始的语义分割网络进行了一些总结,有没写到的网络还希望大家留言给我。...

小白学视觉 1482

FCN论文的学习及理解和相关知识整理

写在前面: 最近在读FCN的论文,整理一下自己看文献得到的想法,记录一下。主要是想敦促一下自己整理一下知识。知识来源的话基本都会附链接。内容比较乱,只是想从原文里提取出来一些个人认为比较关键的知识点。由于很多东西作为小白和数学渣渣的我也没有完全理解透,所以只是做一个思路的整理。 本文只是将原文的一些主要的、个人觉得有意义的工作整理了出来,只能通过本文了解到FCN的一些大概,若是想在细节上研究请...

斯丢匹德的博客 1079

FCN 网络是如何工作的?

作者:禅与计算机程序设计艺术 1.背景介绍 FCN(Fully Convolutional Networks)是由何凯明等人在2014年提出的一种新的卷积神经网络结构,能够实现精确、高效的目标检测。由于深层次特征学习的需要,FCN不再局限于固定的分类器核的数量和大小,而是可以学习到更有效的特征表示,

AI天才研究院 1036

语义分割学习笔记(三)FCN网络结构详解

FCN网络(Fully Convolutional Networks):首个端对端的针对像素级预测的全卷积网络。FCN网络思想:输入图像经过多次卷积,得到一个通道数为21的特征图,再经过上采样,得到一个与原图同样大小的特征图,再经过Softmax函数处理就能得到该像素针对Pascal Voc数据集每一个类别的预测概率,选择最大概率的类别作为该像素的预测类别。FCN网络在VGG网络上做出的修改:把VGG全连接层改为卷积层。一方面,可以不用固定输入图像的大小。

qq_45981086的博客 2040

语义分割网络经典:FCN与SegNet

作者:石文华           编辑:田  旭            前  言 语义分割网络经典:FCN与SegNet 全文目录 1、FCN 概述 编码和解码过程 2、SegNet 概述: 特征上采样与融合细节 代码地址 将图像中每个像素分配到某个对象类别,相关模型要具有像素级的密集预测能力。 01 FCN (一)概述 改编当前的分类网络:AlexNet、VGG、GoogLeNet到全卷积网络和通过微调传递它们学习的特征表达能力到分割任务中。然后定义了一个跳跃式的架构,结合来自深、粗层的语义信息和来自浅、细层的表征信息来产生准确和精细的分割。   由上图可以看出,将

【语义分割】一文概览主要语义分割网络,FCN、UNet、SegNet、DeepLab

语义分割:是将输入图像中的每个像素分配一个语义类别,以得到像素化的密集分类。 上图中将人和自行车从图片中分割出来了。 语义分割一般网络架构 一般的语义分割架构可以被认为是一个编码器-解码器网络。 1)编码器:通常是一个预训练的分类网络,像 VGG、ResNet,然后是一个解码器网络。这些架构不同的地方主要在于解码器网络。 2)解码器:解码器的任务是将编码器学习到的可判别特征(较低分辨率)从语义上投影到像素空间(较高分辨率),以获得密集分类。 语义分割不仅需要在像素级有判别能力,...

chen1234520nnn的博客 1万+

CELF(Cost-Effective Lazy Forward selection)具有成本效益的惰性前向选择算法

CELF(Cost-Effective Lazy Forward selection)算法解析      引言:在社交网络影响力最大化问题的求解过程中,我们往往需要去选择一些目标种子结点作为信息初始传播的源头。贪婪算法在传播效果上的解决可以达到影响的最大化,但是在时间复杂度上面显得确十分糟糕。为此CELF算法应势而生,CELF算法利用了函数次模性的特点,在第一轮选择种子结点时,计算网络中所有节点的边际收益,但将在之后的过程中,不再做网络节点边际收益的重复计算,这相对于传统的贪婪算法,将在时间上得到非常明显的

hahaxq的博客 2478

STM32测测速---编码电机读取速度的计算

速度计算:轮胎每转一圈的脉冲数取决于编码器的分辨率,可由下面公式进行计算:PPR是电机的线数最后可以计算轮胎每转一圈的脉冲数为:轮胎每转一圈的脉冲数 = 9.6 × 11 × 4 = 422.4最后的速度公式简化为:速度 = (0.01 秒内产生的脉冲数 ∗ 0.055 ∗ π )/(0.01 ∗422.4​。

weixin_69414084的博客 3813

【CV论文精读】【语义分割】【FCN】Fully Convolutional Networks for Semantic Segmentation

卷积网络是强大的可视化模型,可以产生特征层次。我们表明,卷积网络本身,经过端到端、像素到像素的训练,在语义分割方面超过了最先进的水平。我们的关键见解是构建“完全卷积”网络,该网络接受任意大小的输入,并通过高效的推理和学习产生相应大小的输出。我们定义并详述了全卷积网络的空间,解释了它们在空间密集预测任务中的应用,并绘制了与先前模型的联系。我们将当代分类网络(AlexNet[20]、VGG[31]和GoogLeNet[32])改造成完全卷积的网络,并通过微调[3]将它们学习到的表示转移到分割任务中。

weixin_44184852的博客 1444

富芮坤FR801xH蓝牙协议栈启动流程和notify实现温度数据主动上传

文章目录一、蓝牙协议栈启动流程1.1 初始化代码1.2 初始化流程1.3 回调函数里的初始化二、notify实现2.1 notify介绍2.2 notify实现2.3.1 定义数据2.3.2 获取连接号conidx2.3.3 gatt_notification函数的使用三、notify温度上传测试3.1 蓝牙调试工具3.2 蓝牙调试器设置3.3 测试结果四、参考链接   基于sdk开发的好处是方便项目的快速落地,现在用的是SDK里面的源文件,目前只是学习FR801xH芯片的特性,裁剪这个SDK需要点时间,

weixin_43810563的博客 4322

【深度学习】语义分割(FCN网络/DeepLabV3网络)学习记录

【语义分割前言】 https://www.bilibili.com/video/BV1ev411P7dR/?这个up主真的很厉害,宝藏up主呀!!!

weixin_62100318的博客 1080

S32K3xx系列DMA驱动实战:EB配置与Mcal接口应用全解析(含Adc硬件触发示例)

本文深入解析S32K3xx系列MCU的DMA驱动开发,涵盖EB工具配置与Mcal接口应用,特别包含ADC硬件触发示例。通过详细架构分析、实战配置步骤和工业级应用案例,帮助开发者掌握AUTOSAR环境下DMA高效数据传输技术,提升汽车电子和工业控制系统的性能。

weixin_29162439的博客 466

多尺度Transformer+特征融合新范式,算力减半精度猛增

在大模型时代,多尺度特征融合与Transformer架构的结合正成为研究热点。多尺度特征融合能够捕捉数据在不同尺度上的关键信息,而Transformer架构凭借其强大的并行处理能力和对长距离依赖的建模能力,为复杂数据处理提供了新的思路。这种结合在处理多模态数据时展现出巨大潜力。

Tulingxueshu的博客 1062

语义分割之FCN翻译

综述   卷积网络是强大的视觉模型产生特征的层次结构。我们表明卷积网络本身,端到端训练,像素 - 像素,超过了语义分割中的最新技术水平。我们的主要洞察力是建立“完全卷积”接受任意大小和产生的网络相应大小的输出,有效推理和学习。我们定义并详细说明完全卷积的空间网络,解释他们在空间密集的应用预测任务,并制与先前模型的连接。我们适应当代分类网络(AlexNet[22],VGG网[34]和GoogLeN...

qq_34671967的博客 1802

Qt Creator配置MSVC编译环境、调试环境

获取和安装:cdb.exe 在 Debugging tools for Windows 中,而现在已经不单独提供下载,只在Windows SDK 或者Windows Driver Kit里面包含 所以需要下载微软的调试工具,最少需要下载 Windows SDK。在windows上开发,一般使用Qt Creator自带mingw编译器,编译和调试都很方便,安装Qt时勾选后,自动配置完毕。但是有时候我们需要使用MSVC的编译器,这个时候我们没法直接使用,需要配置环境才能使用,以下是配置方案。

希望能帮助大家,希望大家多多支持,你们的支持是我前进的动力。 6991

语义分割模型之FCN

前言 最近从目标检测开始转做语义分割的工作了,为了熟悉相关工作,特此做了一个语义分割模型的综述。模型综述的总体结构以时间为纲,以语义分割的发展为脉络。选取在语义分割过程中比较有代表性的模型进行综述。在内容上参考了mmsegmentation实现的一些网络 FCN语义分割模型 背景 FCN 全称为Fully Convolution Network,全卷积神经网络,于2014年首次被提出(fcn论文链接)。FCN的引入首次实现了利用卷积神经网络对影像进行像素级的分割。在FCN之前的语义分割方法为

mayeight的博客 2591

APM32取代STM32的经验分享

我仔细检查了代码中与硬件相关的部分,例如外设寄存器的访问和中断处理程序的设置,并进行了相应的修改。在本文中,我将分享我将APM32引入项目中取代STM32的经验,并提供相应的源代码。我查看了APM32的官方网站、开发者论坛和相关社交媒体,了解了开发者社区的活跃度和可用的资源。总结起来,将APM32替换STM32的过程需要经过几个关键步骤:了解APM32的规格和功能、评估软件生态系统、迁移代码和调试,以及性能和功耗优化。在开始替换之前,我对APM32进行了详细的研究和评估,以确保它能够满足项目的需求。

UplKubernetes的博客 2006

基于FPGA设计的信号分析仪(项目资料ID:28)

基于现场可编程门阵列(FPGA)设计的信号分析仪。该信号分析仪旨在实现对各类信号的精确分析,具备频率、幅度、相位等参数测量功能。通过采用 FPGA 作为核心处理单元,充分利用其并行处理能力和可重构特性,提高了系统的处理速度和灵活性。论文介绍了信号分析仪的总体设计方案,包括硬件电路设计和软件算法实现。

以培养嵌入式工程师为己任 1万+

FCN:使用端到端CNN进行语义分割的开山之作

今天和大家分享一篇发表在CVPR2015上的文章: 代码地址:https://github.com/shelhamer/fcn.berkeleyvision.org FCN可以说是使用CNN进行语义分割的一篇里程碑式的文章,作者通过对当时几种比较流行的分类网络(AlexNet、VGG、GoogLeNet)做一些结构调整,将其应用到了语义分割任务中。 0.动机 语义分割任务是对输入图片中的每个像素进行分类,将组成同一类物体的像素分为同一类别,输入图像和语义分割结果如下图所示,下图第二列中相同颜色的像素属于同

CV计算机视觉 1739

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

从零开始的图像语义分割:FCN快速复现教程(Pytorch+CityScapes数据集)

图像语义分割开山之作FCN的快速复现教程,从零开始带你完成一个简易的图像分割项目。

weixin_43594279的博客 1万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[论文笔记]彻底讲透FCN语义分割开山之作Fully Convolutional Networks

FCN模型的三大优势 (1)全卷积Fully Convoluition (2)Upsamping via Deconvlution (3)Skip architecture

专注“目标检测”领域技术分享 2556

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

【语义分割】FCN论文阅读

摘要   卷积网络是一种功能强大的可视化模型,可以产生层次结构的特征。只经过端到端,像素到像素训练的卷积神经网络,就超过了语义分割的最新技术。   “完全卷积”网络,接受任意大小的输入,并通过有效的推理和学习产生相应大小的输出。   我们定义和详细描述了完全卷积网络的空间,解释了它们在空间密集预测任务中的应用,并与先前的模型建立了联系。我们将当代分类网络(AlexNet[19]、VGG-net[31]和GoogLeNet[32])改编成完全卷积网络,并通过微调[4]将它们的学习表示转移到分割任务中。然后,我

qq_36926037的博客 1784

DL之FCN:FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

DL之FCN:FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略 目录 FCN算法的简介(论文介绍) 0、FCN性能—实验结果 1、全卷积神经网络的特点、局限性、缺点 FCN算法的架构详解 FCN算法的案例应用 相关文章DL之FCN:FCN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略DL之FCN:FC...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 6975
上一篇: 【语义分割专题】语义分割前期预处理工作--数据处理
下一篇: 【语义分割专题】语义分割相关工作--SegNet
mind_programmonkey
mind_programmonkey 领域专家: 算法与数据结构技术领域 领域专家: 算法与数据结构技术领域
博客等级 码龄9年 4435粉丝 1111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mind_programmonkey

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值