通俗易懂理解SegNet语义分割模型

重要说明:本文从网上资料整理而来,仅记录博主学习相关知识点的过程,侵删。

一、参考资料

深度学习之图像分割—— SegNet基本思想和网络结构以及论文补充

一文带你读懂 SegNet(语义分割)

二、相关介绍

1. 上采样(Upsampling)

关于上采样的详细介绍,请参考另一篇博客:Upsampling上采样相关技术

3. 转置卷积(Transposed Convolution)

关于转置卷积的详细介绍,请参考另一篇博客:深入浅出理解转置卷积Conv2DTranspose

三、SegNet网络模型

1. SegNet的创新点

SegNet与U-net网络相似,主要的区别是提出了最大池化索引,通过记录池化的位置,在上采样时恢复特征信息。具体来说,SegNet在进行池化操作时,记录池化所取值的位置,在上采样时直接用当时记录的位置进行反池化(UpPool),这样做的作用是更好的保留边界特征信息。

2. 池化索引(pooling indices)

2.1 最大池化(Max-Pooling)

Pooling 在CNN中是使得图片缩小一半的手段,通常有Max-PoolingAverage-Pooling两种 Pooling 方式,下图所示的是Max-PoolingMax-Pooling 是使用一个2x2的filter,取出这4个权重最大的一个,原图大小为4x4,Pooling 之后大小为2x2,原图左上角粉色的四个数,最后只剩最大的6,这就是max的意思。

在这里插入图片描述

2.2 池化索引的原理

SegNet是如何记录池化位置的呢?答案就是通过池化索引(pooling indices)。

在SegNet中的 Pooling 与传统 Pooling 多了一个index功能,也就是每次 Pooling,都会保存通过max选出的权值在2x2 filter中的相对位置,对上图的6来说,6在粉色2x2 filter中的位置为(1, 1)(index从0开始),黄色的3的index为(0, 0)。同时,从网络框架图可以看到绿色的 pooling 与红色的 upsampling 通过 pool indices 相连,实际上是 pooling 后的indices输出到对应的 upsampling(由于网络结构是对称的,因此第1次的 pooling 对应最后1次的 upsamping,如此类推)。

Upsamping 就是 Pooling 的逆过程,index在 Upsampling 过程中发挥作用,Upsamping使得图片尺寸变大2倍。我们清楚的知道 Pooling 之后,每个filter会丢失了3个权重,这些权重是无法复原的,但是在 Upsamping 层中可以得到在 Pooling 中相对 Pooling filter 的位置。所以Upsampling 中先对输入的特征图放大两倍,然后把输入特征图的数据根据 Pooling indices 放入,如下图所示,Unpooling 对应上述的 Upsamplingswitch variables 对应 Pooling indices

在这里插入图片描述

2.3 SegNet与FCN对比

对比FCN可以发现,SegNet在 Unpooling 时用index信息,直接将数据放回对应位置,后面再接Conv训练学习。这个上采样不需要训练学习(只是占用了一些存储空间)。而FCN利用转置卷积(Transposed Convolution)对 feature map 进行 upsampling,这一过程需要学习,同时将encoder阶段对应的 feature map 做通道降维,使得通道维度和 upsampling 相同,这样就能做像素相加(Add),得到最终的decoder输出。

在这里插入图片描述

3. SegNet网络结构

SegNet是基于Encoder-Decoder的网络结构,Encoder的backbone采用VGG-16(去除FC层)。SegNet网络结构,如下图所示:

在这里插入图片描述

在Encoder过程中,通过卷积提取特征,SegNet使用 padding=same 的卷积,即执行卷积操作后保持图像原始尺寸;在Decoder过程中,同样使用使用 padding=same 的卷积对缩小后的特征图进行上采样,不过卷积的作用是为了丰富上采样的图像信息,使得在Encoder的Pooling过程丢失的信息可以通过学习通过Decoder得到。然后对上采样后的图像进行卷积处理,来完善图像中物体的几何形状,将encoder中获得的特征还原到原来图像的具体的像素点上。最后利用 soft-max 多分类器对Decoder输出的特征图进行逐像素分类(pixel-wise classification)。

4. SegNet性能对比

在这里插入图片描述

从上面表格中可以看出:

  • SegNet比FCN和DeepLabv1慢,因为SegNet包含解码器架构。它比DeconvNet更快,因为它没有全连接层。
  • SegNet在训练和测试期间的内存要求都很低。并且模型尺寸比FCN和DeconvNet小得多。

四、相关经验

(TensorFlow)代码实现

github代码:Tensorflow-SegNet

五、参考文献

[1] Badrinarayanan V, Kendall A, Cipolla R. Segnet: A deep convolutional encoder-decoder architecture for image segmentation[J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 39(12): 2481-2495.

[2] Badrinarayanan V, Handa A, Cipolla R. Segnet: A deep convolutional encoder-decoder architecture for robust semantic pixel-wise labelling[J]. arxiv preprint arxiv:1505.07293, 2015.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3中使用markdown编辑器

首先安装 npm i md-editor-v3 Setup 模板 <template><MdEditor v-model"text" /> </template><script setup> import { ref } from vue; import { MdEditor } from md-editor-v3; import md-editor-v3/lib/style.css;const text ref(Hell…

R语言-检验正态性

1.为什么要检验正态性 首先需要明确正态性与正态分布是有区别的&#xff0c;正态分布&#xff08;标准分布&#xff09;是统计数据的分布方式&#xff0c;是个钟形曲线&#xff0c;已平均值为对称轴&#xff0c;数据在对称轴两侧对称分布。正态性是检验实际数据与标准正态分布…

消息中间件之八股面试回答篇:一、问题概览+MQ的应用场景+RabbitMQ如何保证消息不丢失(生产者确认机制、持久化、消费者确认机制)+回答模板

问题概览 目前主流的消息队列技术&#xff08;MQ技术&#xff09;分为RabbitMQ和Kafka&#xff0c;其中深蓝色为只要是MQ&#xff0c;一般都会问到的问题。浅蓝色是针对RabbitMQ的特性的问题。蓝紫色为针对Kafka的特性的问题。 MQ的应用场景 MQ主要提供的功能为&#xff1a;异…

Linux shell编程学习笔记42:hdparm命令

ChatGPT 和文心一言哪个更好用&#xff1f; 从智能回复、语言准确性、知识库丰富度等方面比较&#xff0c;两大AI助手哪个更胜一筹&#xff1f;快来和我们分享一下你的看法吧~ 0 前言 获取硬盘序列号是信息资产管理和信息安全检测中经常要收集的信息&#xff0c;对于Linux来说…

Unity - 将项目转为HDRP

Camera window -> Package Manager 之后会出现HDRP向导窗口&#xff0c;均点击修复。 在Edit中&#xff0c;更改项目中的材质

景联文科技大模型数据集更新!教育题库新增高质量数学题、逻辑推理题及英文题

苏格拉底曾以“点燃火焰”的理念来诠释教育。随着大语言模型在教育中的不断应用&#xff0c;教育与AI的深度融合&#xff0c;让我们看到了“点燃火焰”的理念的更多可能性。 大语言模型可以通过与学生的互动&#xff0c;为他们提供个性化的学习体验&#xff0c;更好地满足学习需…

目标检测数据集 - MS COCO

文章目录 1. 数据集介绍2. 使用pycocotools读取数据3. 验证mAP 论文&#xff1a;Microsoft COCO: Common Objects in Context 网址&#xff1a;https://arxiv.org/abs/1405.0312 官网&#xff1a;https://cocodataset.org/ 1. 数据集介绍 MS COCO是一个非常大型&#xff0c;且…

音频特效SDK,满足内容生产的音频处理需求

美摄科技&#xff0c;作为音频处理技术的佼佼者&#xff0c;推出的音频特效SDK&#xff0c;旨在满足企业内容生产中的音频处理需求。这款SDK内置多种常见音频处理功能&#xff0c;如音频变声、均衡器、淡入淡出、音频变调等&#xff0c;帮助企业轻松应对各种音频处理挑战。 一…

网安培训第二期——sql注入+中间件+工具

文章目录 宽字节注入插入注入二次注入PDO模式(动态靶机&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;)sql注入读取文件sql注入导出文件linux命令 10.12笔记sqlmapsqlmap参数 10.13笔记sqlmap 文件读写前后缀常用tamper及适用场景 10.…

【Java】SpringMVC路径写法

1、多级路径 ✅类路径和方法路径都可以写成多级 ✅其中&#xff0c;类路径写在方法路径前面 ✅与Servlet不同&#xff0c;SpringMVC中写不写“/”都可以 RequestMapping("/hello/t1") RestController public class HelloSpring {RequestMapping( value "world…

不学前沿技术与朽木浮草何异 ?Java11新特性

不学前沿技术与朽木浮草何异 &#xff1f;Java11新特性 于 2018 年 9 月 25 日正式发布&#xff0c;这是很重要的一个版本&#xff01;Java 11 和 2017 年 9 月份发布的 Java 9 以及 2018 年 3 月份发布的 Java 10 相比&#xff0c;其最大的区别就是&#xff1a;在长期支持(Lo…

013:获取K线图,增加周期可选

改进《001:如何获取A股个股的前复权K线数据》&#xff0c;增加周期可选。 代码&#xff1a; import tkinter as tk from tkinter import messagebox from tkcalendar import Calendar import pandas as pd import requests from urllib.parse import urlencodedef gen_secid(…

Docker:6种网络配置详解浅介

在Docker中&#xff0c;网络配置是一个重要的主题&#xff0c;因为容器需要与其他容器或外部网络进行通信。Docker提供了多种网络模式和配置选项&#xff0c;以便在不同的场景下满足用户的需求。 本文介绍这些网络模式的区别以及配置&#xff0c;相信看完以后你能够掌握Docker网…

16、Kafka ------ SpringBoot 整合 Kafka (配置 Kafka 属性 及对应的 属性处理类 解析)

目录 配置 Kafka 及对应的 属性处理类配置KafkaKafka配置属性的约定代码演示生产者相关的配置消费者相关的配置 代码&#xff08;配置文件&#xff09;application.properties 配置 Kafka 及对应的 属性处理类 配置Kafka spring.kafka.* 开头的配置属性&#xff0c;这些属性将由…

写作的金字塔原则

起源 芭芭拉明托 (Barbara Minto) 是 20 世纪 70 年代麦肯锡公司培训主管&#xff0c;她创立了金字塔原则。1963 年从哈佛商学院毕业后&#xff0c;明托加入了麦肯锡公司。在前往该公司位于巴黎和杜塞尔多夫的办公室出差时&#xff0c;她遇到了与她在美国和英国见过的同样的写作…

用的到的linux-Day1

前言&#xff1a; 从入门IT开始我们知道Linux操作系统与其他操作系统不同&#xff0c;Linux因为其独特的优势&#xff0c;被广泛应用在服务器领域&#xff0c;而且是一个近乎完美的操作系统&#xff0c;运行稳定、功能强大、安全性高、开源、可定制等等。 因此我打算从24年开始…

爬虫(一)

1. HTTP协议与WEB开发 1. 什么是请求头请求体&#xff0c;响应头响应体 2. URL地址包括什么 3. get请求和post请求到底是什么 4. Content-Type是什么1.1 简介 HTTP协议是Hyper Text Transfer Protocol&#xff08;超文本传输协议&#xff09;的缩写,是用于万维网&#xff08;…

力扣面试题 16.24. 数对和(双指针)

Problem: 面试题 16.24. 数对和 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 若本题目直接双循环暴力求解会超时&#xff0c;可以利用排序 双指针进行优化&#xff0c;具体&#xff1a; 1.对原数组进行升序排序&#xff1b; 2.双指针指向排好序的数组的头尾(…

【方法】如何打开7Z格式压缩文件?

7Z是一种常见的压缩文件格式&#xff0c;那遇到7Z压缩文件&#xff0c;要如何打开呢&#xff1f; 想要打开7Z压缩包&#xff0c;需要用到解压缩软件&#xff0c;比如WinRAR、7-Zip等软件。安装软件后&#xff0c;只需要用鼠标双击7Z压缩包&#xff0c;就可以打开压缩包&#x…

基于SSM的蛋糕甜品店管理系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的蛋糕甜品店管理系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spring…