语义分割算法汇总(长期更新)

2023-11-11

语义分割算法汇总

  记录一下各类语义分割算法,便于自己学习。
  由DFANet: Deep Feature Aggregation for Real-Time Semantic Segmentation开始,在文章中,作者说明了在Cityscapes test set上各类模型的表现。如下图所示:
在这里插入图片描述
主流算法在PASCAL VOC2012数据集上的效果对比。
在这里插入图片描述

1.DFANet

  文章梳理了语义分割网络中常见的模型,如下图所示
在这里插入图片描述
(a)这种模型可以获取多尺度的特征,并且保留空间信息。但是,它在处理High level feature时的效果不够好,因为它没有应用卷积来融合特征;同时,在高分辨率的那个分支上限制了模型的速度。
(b)语义分割中,金字塔池化是处理High level feature的常用的方法,然而金字塔池化在速度上会极大消耗资源。
©feature maps通过对网络输出进行上采样并用另一个子网络优化特征映射来替换High level feature,在高分辨率与子像素细节上同时进行学习,可以获得更多细节信息。然而,由于特征流是单一的,随着整个结构深度的增加,高维特征和感受场通常会使得精确损失。
(d)基于以上方法,文章提出一种层级别的方法,将low-level features与空间信息传给语义理解。因为所有的网络结构相似,可以连接所有相同分辨率的层,获得不同层级的信息。

DFANet网络结构图

在这里插入图片描述

backbone

在这里插入图片描述
  通常语义分割模型都会选择预训练模型作为编码模块,通常有 ResNet, Xception, DenseNet等,DFANet选择了一种计算量更小的模型作为backbone(修改后的Xception),并且探究了怎么才能在限制计算量的情况下提升模型表现能力。
  由于网络越深,细节丢失越多,从网络结构图可以看到DFA网络综合了模型连接与层级连接方式来避免这个问题,模型中采用了三个backbone的连接。最后在xception的全连接层之后接一个1*1的卷积层递归通道数,去匹配Xception的backbone的feature map。

decoder

  文章直接将高级特征与之前的细节部分融合,然后高级特征进行4倍双线性上采样,每个backbone的层级的输出的与其他backbone有相同分辨率的部分进行融合,然后高级特征与细节都在最后的结果中展现,这时候再进行4倍上采样,得到最后的预测结果。

2.PSPNet

PSP网络结构

pspnet的网络结构图如下:
在这里插入图片描述
网络结构为:

  1. CNN(这里用的是resnet)提取出抽象特征
  2. (重点)经过金字塔池化层,获得四个不同尺度的信息,然后再用1*1卷积综合各个通道的信息,这里我个人理解就是远看一个物体与近看一个物体会获得不同的结果,全局池化即上图中红色的块产生的效果类似远看一个物体获得的信息,而后面的就是越来越近的看一个物体获得的信息。
  3. 上采样,这里对每个尺度池化结果做双线性上采样,到feature map的大小(缩小1/8)
  4. 将不同尺度的信息结合,对不同尺度的结果做concanate
  5. 上采样,并输出结果,这里上采样经过了三次,一次放大两倍,最终将feature map大小的结果还原为原图大小(图中没有展示出来,代码中是这样做的)。

PSP解决的问题

在这里插入图片描述
  在上图第一行图片中,模型没有考虑到物体之间的联系(空间信息丢失,车几乎不会在水上),FCN将船预测为了车。第二行,FCN产生了分类混淆的情况,建筑的镜面反射使得墙体被分类为天空。第三行图片中,FCN无法很好的识别小物体,没能将枕头识别出来。
  PSP网络结合不同尺度的信息可以解决以上FCN的不足。

3.BiSenet

网络结构

在这里插入图片描述
  BiSenet网络最突出的特点就是应用了双向网络(图中的Spatial path与Context path),在语义分割中,最难的两个点,一个是感受野(Receptive field)的大小,另一个是空间信息(Spatial information)。一般网络越深,感受野越大,空间信息丢失越多。
  通过三个卷积提取特征,保留了空间信息,同时Context path快速下采样,使得感受野变大,最后再融合两种特征后经过上采样就可以得到结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

语义分割算法汇总(长期更新) 的相关文章

  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • 如何使用Conda下载python包并随后离线安装?

    我知道通过 pip 我可以使用以下命令下载 Python 包 但 pip install 破坏了我的内部包依赖关系 当我做 pip download
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • 在f字符串中转义字符[重复]

    这个问题在这里已经有答案了 我遇到了以下问题f string gt gt gt a hello how to print hello gt gt gt f a a gt gt gt f a File
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P

随机推荐

  • Leetcode 448.找到所有数组中消失的数字

    448 找到所有数组中消失的数字 力扣 LeetCode 题目描述 给你一个含 n 个整数的数组 nums 其中 nums i 在区间 1 n 内 请你找出所有在 1 n 范围 但没有出现在 nums 中的数字 并以数组的形式返回结果 示例
  • openAI api 生产最佳实践

    生产最佳实践 本指南提供了一套全面的最佳实践 帮助您从原型过渡到生产 无论您是经验丰富的机器学习工程师还是最近的爱好者 本指南都应为您提供将平台成功投入生产环境所需的工具 从确保访问我们的API到设计能够处理高流量的健壮架构 使用本指南可帮
  • Python-matplotlib画图(莫烦笔记)

    https www zhihu com collection 260736383 lt 此处就不自己写了 看了遍 照着写了一边 作者写的不错 不过有些有些偷懒 我只做了常见的功能 gt 作者 触摸壹缕阳光 链接 https zhuanlan
  • 如何创建你的第一个西门子200PLC程序

    更多关于西门子S7 200PLC内容请查看 西门子200系列PLC学习课程大纲 创建西门子200PLC程序分五步 1 打开Micro WIN软件 2 新建工程 3 打开程序编辑器 4 输入程序指令 5 保存程序 我们以下图程序为例讲解西门子
  • 全栈之前端

    欢迎关注 全栈工程师修炼指南 作者 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 花开堪折直须折 莫待无花空折枝 文章目录 0x00 前言简述 0x01 超链接标签元素 a 标签 0x02 框架标签元素 iframe 标签
  • Android性能优化 _ 把构建布局用时缩短 20 倍(下),轻松拿下offer

    scaleType ImageView ScaleType FIT XY setImageResource R drawable user portrait gender female also addView it also addVie
  • Spring Boot、Dubbo项目Mock测试踩坑与总结

    本文是对Spring Boot Dubbo项目进行Mock测试的总结与踩坑实录 搜索了一圈 居然没发现类似的文章 莫非用Dubbo的朋友们都不Mock测试 或者有其他的办法测试吗 简单总结了一下 希望对大家能有一定参考意义 如果有更好的测试
  • 小影服务器维修,轩辕传奇2月27日所有服务器停服更新公告

    尊敬的轩辕勇士们 我们计划将于2月27日上午9 00 11 00期间对所有服务器进行停服更新 在更新期间 所有服务器的玩家将暂时无法进入游戏 停服更新结束后 所有服务器的玩家将更新到最新版本 版本号为 1 11 107 2 同时 官网会在更
  • 菜鸟的刷题之路之二叉树

    成功不是终点 失败不是终结 勇气才是启程的第一步 作者 不能再留遗憾了 专栏 菜鸟的刷题之路 本文章主要内容 将有序数组转换为二叉搜索树 二叉搜索树中第K小的元素和叶子相似的树的详细题解 文章目录 将有序数组转换为二叉搜索树 题目要求 做题
  • spring boot 整合dubbo2.7.8

    由于dubbo2 7 8之前的版本有漏洞 项目需要升级至2 7 8 之前用的是阿里的dubbo 在版本切换上遇到过一些问题 特记录一下心得 首先讲下dubbo的版本 dubbo在2 6版本是阿里在管理和维护 后面交给了apache管理 2
  • Linux(一):Linux入门

    概述 Linux 是一套免费使用和自由传播的类 Unix 操作系统 Linux 英文解释为 Linux is not Unix 同时基于多用户 多任务 支持多线程和多 CPU 的操作系统 目前很多企业采用CentOS 本文后续涉及到linu
  • Make sure ‘SystemCfg‘ is registered using qRegisterMetaType

    最近在编写Qt代码的时候遇到标题上的问题 现象是 在收到一个xml字符串需要解析时 我放在线程里面处理 然后线程执行完成后将xml对应的结构体返回给主线程 在主线程的槽函数中始终接收不到 但是在子线程中emit函数是执行过的 在调试窗口中看
  • github push时提示Username for ‘https://github.com‘ 解决办法

    今天进行push的时候一直提醒我输入Username还有PassWord 还出现提示 remote Support for password authentication was removed on August 13 2021 起初我以
  • 剑指 Offer 43. 1~n 整数中 1 出现的次数

    目录 编辑 一 问题描述 二 例子 三 题目接口 四 题目解答 1 暴力解法 2 规律解法 总结 代码 一 问题描述 输入一个整数 n 求1 n这n个整数的十进制表示中1出现的次数 例如 输入12 1 12这些整数中包含1 的数字有1 10
  • 在linux shell中使用ftp命令来实现自动上传与下载

    前段时间有个需求 需要利用crontab定时往某个FTP上传文件 原以为linux中带的ftp命令只支持交互式的操作 没法在命令行下使用 所以后来打算利用PHP中提供的ftp命令来做 但是很不幸的发现ftp模块不是PHP的标准模块 还需要自
  • JVM内存模型(通俗易懂)

    1 什么是jvm 1 jvm是一种用于计算设备的规范 它是一个虚构出来的机器 是通过在实际的计算机上仿真模拟各种功能实现的 2 jvm包含一套字节码指令集 一组寄存器 一个栈 一个垃圾回收堆和一个存储方法域 3 JVM屏蔽了与具体操作系统平
  • 第十二章 Vuex 状态管理

    12 1 Vuex 概述 官方文档 https vuex vuejs org zh Vuex 是一个专为 Vue js 应用程序开发的状态管理模式 它采用集中式存储管理应用的所有组件的状态 并以相应的规则保证状态以一种可预测的方式发生变化
  • 怎么在Eclipse上运行静态网页

    1 前言 习惯用Eclipse开发动态网站 现在有一个静态网页 只有Html Js CSS代码 无后台Java代码 想跑一下 自己通过网上查询然后自己也研究捣鼓了一下 发现有三种方式可以发布静态网页 2 通过Eclipse自带的三种方式 2
  • 运行软件报错msvcr100.dll丢失的解决方法,全面分析msvcr100.dll丢失问题

    随着科技的飞速发展 计算机已经成为人们生活和工作中不可或缺的重要工具 然而 在使用计算机的过程中 难免会遇到一些令人困扰的问题 如计算机丢失 msvcr100 dll 文件就是其中之一 本文将详细介绍计算机丢失 msvcr100 dll 的
  • 语义分割算法汇总(长期更新)

    语义分割算法汇总 记录一下各类语义分割算法 便于自己学习 由DFANet Deep Feature Aggregation for Real Time Semantic Segmentation开始 在文章中 作者说明了在Cityscape