基于SegFormer的改进语义分割该网络

摘要

        场景解析是无人驾驶领域的一个关键任务,但是传统的语义分割网络往往只关注于提取更深层次的图像语义信息而忽略了全局信息对图像分割任务的重要性。另外随着图像在深层次卷积网络中的传递,卷积核天然的滤波作用会使得图像的边缘趋于平滑而丢失细节特征。本文基于以上两点考虑设计了融合全局特征的自注意力模块和图像纹理增强模块,使得语义分割网络在在更好的关注全局信息的同时保留了大量的细节信息,使得分割网络的精度得到了明显的提升。

第一章 绪论

1.1 研究背景与意义

        随着无人驾驶领域的迅猛发展,以及无人机和卫星的普及,图像的获取变得更加便捷。图像分割技术开始在各个领域大显身手。在无人驾驶领率,车辆需要对摄像头或激光传感器获取的街景图象进行分割处理,将分割结果传递给车辆作为车辆自主决策的重要依据。无人机和高空卫星获取的大量高分辨率图片经过语义分割后能够为自然资源信息的统计以及灾害的检测提供重要的依据。在日常生活中,一键换衣功能为我们网购衣物提供了重要的参考价值。

(1)自动驾驶领域

(2)精准农业

(3)自然灾害监控

(4)医疗领域

(5)网购衣物

1.2 语义分割的发展与现状

        从FCN网络开始,语义分割开始向深层神经网络发展。人们希望通过搭建更深的神经网络以提取更加有效的语义信息。但是随着神经网络深度的增加,又出现了梯度消失和梯度爆炸等问题,这使得深层网络的分割结果还不及较浅层的神经网络,为了解决这一问题,不少学者尝试探索正则化的方法优化与激活函数的改进,这一时期出现了层归一化、批次归一化,ReLU、LeakyReLU、ELU等激活函数,但直到Resnet的出现引入了残差结构,这一问题才得以根本性的改善,深度网络也因此开始进入了大模型时代。这一时期学者们的主要研究是探索具有强特征提取能力的主干网络结构,因此涌现了大批优秀的骨干网络架构,例如:Xception、Vgg、GoogleNet等强有力的主干网络。当人们意识到语义分割中上下文信息的重要性后,后期的工作主要集中于如何更加有效的提取网络的上下文信息,在这期间涌现了许都奇思妙想。例如大家熟知的Unet和U2Net的跳跃连结结构,PSPnet的空间金字塔池化模块,DeepLabV3_plus的改进的带有空洞卷积的空间金字塔池化模块。人们尝试通过引入图像目标的多尺度信息来改善语义分割网络的分割结果,在这一段时间,语义分割结构取得了明显的提升。同时该时期也出现了许多种类的注意力模块来更好的提取图像的上下文信息。例如:EcnNet的Context Encoding Module、Danet中引入的Position Attention Module和Channel Attetion Module、APCNet的自适应上下文模块ACM和CCNet的交叉注意力模块,实验证明这也注意力模块的引入确实给语义分割网络带来了明显的性能提升。

       随着Transformer在NLP领域的大放异彩,有学者尝试将Transformer引入图像处理领域,首先诞生的VisionTransformer就出现了一鸣惊人的效果,在这之后既有对纯Transfomer结构的探索如SegFormer、SwinTransformer也有将Transformer与传统CNN网络的结合诞生了如SETR、TransUNet等优秀的语义分割网络。但是Transformer结构虽然有很好的模型表达能力,但其对于输入N的平方复杂度却对实验的硬件设备提出了更大的挑战,而且Transformer优秀的特征表达能力需要依赖于庞大的数据集和更多的迭代次数,对于普通学者来说这些训练成本无疑是昂贵的。因此,许多学者的研究工作致力于对Transformer的注意力模块进行改进,提出了线性注意力结构。此外,SegNexT通过引入可变性卷积结构构建的超大语义分割网络架构,在较少的参数数量情况下也取得了不输于Transformer结构的语义分割效果,证明了多尺度信息对于语义分割网络的重要性。

1.3 注意力机制的发展与现状

(1) PSANet

(2)DANet

(3)OCNet

(4)CCNet

(5)SANet

(6)Vision Transformer

(7)Swin Transformer

(8)SegFomer

1.4 课题研究内容

(1)自注意力模块

(2)纹理增强模块

(3)Hambergure解码器模块

1.5 文章组织架构

第二章 语义分割基本知识

2.1 语义分割目标

        语义分割为给定的图像的每个像素分别进行类别预测,从而提供了包括对象类别、位置和形状信息的全场景描述。

2.2 语义分割评价标准

         评价一个语义分割模型的性能大致可以从准确度、帧率和模型复杂度三个方面。准确度的衡量有平均像素准确率(Mean Pixel Accuracy,MPA)和平均交并比(Mean Intersection Union,MIOU)两个方面。MPA是所有目标中判断正确的数量占总数据量百分比的均值,MIOU是将所有图像的标签和网络预测区域的交集与并集之比求均值。相比于MPA,MIOU更具有捕获数据集细节的能力,是主流的准确度评价指标。

(1)准确度

        MPA和MIOU的计算都是建立在混淆矩阵的基础上,因此了解混淆矩阵的相关知识是非常有必要的。混淆矩阵是统计分类模型的分类结果,即统计归对类,归错类的样本个数,然后将结果放在一个表里展示出来,这个表就是混淆矩阵。这里以二分类混淆矩阵为例进行介绍,多分类混淆矩阵是以二分类混淆矩阵为基础作为延伸的。

        对于二分类问题,将类别1称为正例(Positive),类别2称为反例(Negative),分类器预测正确记作真(True),预测错误记作假(False),由这4个基础元素相互组合,构成混淆矩阵的4个基础元素分别为TP、FP、FN、TN,下面分别解释这4个元素的具体含义:

TP(True Positive):真正例,模型预测为正例,实际为正例。

FP(False Positive):假正例,模型预测为正例,实际是反例。

TN(True Negative):真反例,模型预测为反例,实际为反例。

FN(False Negative):假反例,模型预测为反例,实际为正例。

二分类混淆矩阵示意图如下:

真实情况预测结果
正例反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)

        混淆矩阵对角元素全是预测正确的,数字值表示各类别预测正确的个数;行的数字求和表示某类别真实值的个数,列的数字求和表示模型预测为该类别的数目。

语义分割的像素准确率PA=(TP+TN)/(TP+TN+FP+FN)

CPA:类别像素准确率,对应精确率。在类别i的预测中,真实属于i类的像素准确率,换言之:模型对类别i的预测值有很多,其中有对有错,预测对的值占预测总值的比例。混淆矩阵计算。

P1 = TP / (TP+FP)

P32 = TN / (TN + FN)

MPA分别计算每个类别被正确分类像素的比例,即CPA,然后累加求平均。

每个类别像素的准确率为Pi,MPA=sum(Pi)/类别数。IOU = TP / (TP + FP + FN)

以二分类的的MIOU为例,MIOU = (IOU正例P+IOU反例n) / 2 = [TP / (TP + FP + FN) + TN / (TN + FN + FP)] / 2

交并比IOU是模型对某一类别预测结果和真实值的交集与并集的比值

 在分割任务中,假设类别总数为k,加上背景就是k+1,Pmm是将原数据中目标m的像素判断成目标m的数量,Pmn是将原数据中目标m的像素判断成目标n的数量。

IOU=\frac{Pmm}{\sum_{n=0}^{k}Pmn+\sum_{n=0}^{k}nm-Pmm}

MIOU就是对所有类的IOU求平均值,计算公式如下所示

MIOU=\tfrac{1}{k+1}\sum_{i=0}^{k}IOUi

(2)帧率

        帧率(Frame Per Second,FPS)指的是语义分割模型在以秒为单位的时间内完成的预测图片的数量,用来衡量分割算法处理数据的耗时程度。其值越大表示算法处理一张图片的时间越短,速度越快。

(3)模型复杂度

语义分割网络模型复杂度的衡量指标主要有以下几个:

        1. 参数数量(number of parameters):指模型中需要学习的参数数量。通常情况下,参数数量越多,模型复杂度越高。

        2. 浮点操作数(number of floating-point operations):指模型计算中的乘法和加法运算数量。通常情况下,浮点操作数越多,模型复杂度越高。

        3. FLOPs(floating-point operations per second):指模型在单位时间内可以进行的浮点运算次数。它综合考虑了模型的参数数量和浮点操作数。

        4. 模型输出图像的分辨率(resolution of output image):指模型输出的分割图像的像素数量。通常情况下,输出图像的分辨率越高,模型复杂度越高。

        这些指标不是孤立的,通常需要综合考虑。比如在计算 FLOPs 时,需要同时考虑模型的参数数量和浮点操作数。

FPS

2.3 激活函数简介

2.4 损失函数

(1)交叉熵损失函数(CE_Loss : Cross Entropy Loss Function)

交叉熵损失(Cross-Entropy Loss,CE Loss)能够衡量同一个随机变量中的两个不同概率分布的差异程度,当两个概率分布越接近时,交叉熵损失越小,表示模型预测结果越准确

(2)Focal Loss

        虽然CE Loss能够衡量同一个随机变量中的两个不同概率分布的差异程度,但无法解决一下两个问题:

  1. 正负样本分布不平衡的问题(如centernet的分类分支,它只将目标的中心点作为正样本,而把特征图上的其它像素作为负样本,可想而知正负样本的数量差距之大);
  2. 无法区分难易样本的问题(易分类的样本的分类错误率的损失占了整体损失的绝大部分,并主导梯度)

        为了解决以上问题,Focal Loss在CE Loss的基础上改进,引入了:

  1. 正负样本数量调节因子以解决正负样本数量不平衡的问题;
  2. 难易样本分类调节因子以聚焦难分类的样本。

(3)GHMC Loss

        Focal Loss在CE Loss的基础上改进后,解决了正负样本不平衡以及无法区分难易样本的问题,但也会过分关注难分类的样本(离群点),导致模型学歪。

        为了解决这个问题,GHMC(Gradient Harmonizing mechanism-C)定义了梯度模长,该梯度模长正比于分类的难易程度,目的是让模型不要关注那些容易学的样本,也不要关注那些特别难分的样本。

(4)Dice Loss

        Dice Loss来自于dice coefficient,是一种用于评估两个样本的相似度的度量函数,取值范围在0到1之间,取值越大表示越相似。Dice Loss是一种区域相关的的Loss。意味着某像素的loss以及梯度值不仅和该点的label以及预测值相关,和其它的label以及预测值也相关。Dice Loss对正负样本严重不平衡的场景有着不错的性能,训练过程中更侧重于对前景区域的挖掘。但训练Loss容易不稳定,尤其是小目标的情况下。另外极端情况会导致梯度饱和的现象,因此有一些改进操作主要是结合CE_Loss等的改进,比如Dice + CE Loss , Dice + Focal loss等。

2.5 优化算法介绍

(1)优化器

        梯度下降的基本思想是先设定一个参数η,参数沿着梯度的反方向进行更新。假设需要更新的参数为ω,梯度为ɡ,那么权重的更新策略可以表示为:

                                          w\leftarrow w-\eta \ast g          

梯度下降有三种不同的形式:

  1. BGD(Batch Gradient Descent):批量梯度下降,每次参数更新使用所有样本
  2. SGD(Stochastic Gradient Descent):随机梯度下降,每次参数更新仅使用一个样本。
  3. MBGD(Mini-Batch Gradient Descent):小批量梯度下降,每次参数更新仅使用小部分梯度样本(mini_batch)

这三个优化算法的训练方法是相同的,区别是训练时使用的训练数据量。

Step1:

                                        g = \frac{\partial loss}{\partial w}=f\left ( loss \right )

Step2:求梯度的平均值

Step3:更新权重: w\leftarrow w-\eta \ast g

梯度下降算法虽然算法简洁,但对超参数学习率比较敏感,学历率过小会导致模型收敛缓慢,学习率过大这可能导致模型越过极值点。在较为平坦的区域,优化算法会误判,在还未到达极值点时就提前结束迭代,陷入局部极小值。

(2)动量(Momentum)

        思想:让参数的更新具有惯性,每一步更新都是由前面梯度的累积υ和当前梯度ɡ组合而成。

公式:

        累计梯度更新:

                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        v\leftarrow \alpha v+\left ( 1-\alpha \right )g

        其中α为动量参数,υ为当前梯度,η为学习率。

        梯度更新:

                                                    \chi \leftarrow \chi -\eta \ast v                                  

        通过添加动量参数能够帮助参数在正确的方向上加速前进,也可以帮助模型跳出局部最优解。

3.Adagrad

Adagrad优化算法被称为自适应学习率优化算法。之前我们讲的梯度下降方法是对所有的参数使用相同的,固定的学习率进行优化的,但是不同参数的梯度差异可能很大,使用相同的学习率效果可能不会很好。

Adagrad思想时对于不同的参数设置不同的学习率。具体做法是对于每个参数初始化一个累计平方梯度r=0,然后每次将该参数的梯度平方和累加到这个变量r上:然后,再更新这个参数的时候学习率就变成了:

                                                       \gamma \leftarrow \gamma +g^{2}

然后,在更新这个参数的时候,学习率就变成了                                        

                                                   w\leftarrow w-\frac{\eta }{\sqrt{\gamma +\delta }}\ast g

权重更新为:

        其中,ɡ为梯度,γ为累计平方梯度(初始值为0);η为学习率,σ为小参数,避免分母为0,一般取值为10-10

        这样不同的参数由于梯度不同对应的学习率大小也会不同,这也就实现了自适应的学习率。

        Adagrad的核心思想就是对于根据参数的梯度自适应的调整学习率大小以使学习率大的参数的学习率减小达到防止震荡的目的,同时对于学习率小的参数也能通过增大学习率使参数更新的数度加快,能够加快收敛速度。

Adam

在Grandient Descent的基础上,做了如下几个方面的改进:

  1. 梯度方面增加了momentum,使用累计梯度:v\leftarrow \alpha v+\left ( 1-\alpha \right )g
  2. 同RMSProp优化算法一样,对学习率进行优化,使用累计平方梯度:\gamma \leftarrow \lambda \gamma +\left ( 1-\lambda \right )g^{2}
  3. 偏差纠正: 
  4. 权重更新为:

2.6 数据集介绍

(1)PASCAL VOC2012 + SBD

(2)CityScapes

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

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

相关文章

Visual Studio 2022下载安装的详细步骤-----C语言编辑器

目录 一、介绍 (一)和其他软件的区别 (二)介绍编写C语言的编辑器类型 二、下载安装 三、创建与运行第一个C语言程序 (一)创建项目 (二)新建文件 (三&#xff09…

深度学习---神经网络基础

深度学习概述 机器学习是实现人工智能的一种途径,深度学习是机器学习的一个子集,深度学习是实现机器学习的一种方法。与机器学习算法的主要区别如下图所示: 传统机器学习算术依赖人工设计特征,并进行特征提取,而深度学…

数据结构----算法--五大基本算法(这里没有写分支限界法)和银行家算法

数据结构----算法–五大基本算法(这里没有写分支限界法)和银行家算法 一.贪心算法 1.什么是贪心算法 在有多个选择的时候不考虑长远的情况,只考虑眼前的这一步,在眼前这一步选择当前的最好的方案 二.分治法 1.分治的概念 分…

公有云厂商---服务对照表

各厂商特点: Compute: Network: Storage: Database: Migration Tool: Identify: WAF: 来源:https://comparecloud.in/

【网络安全 --- xss-labs靶场通关(1-10关)】详细的xss-labs靶场通关思路及技巧讲解,让你对xss漏洞的理解更深刻

靶场安装: 靶场安装请参考以下博客,既详细有提供工具: 【网络安全 --- xss-labs靶场】xss-labs靶场安装详细教程,让你巩固对xss漏洞的理解及绕过技巧和方法(提供资源)-CSDN博客【网络安全 --- xss-labs通…

嵌入式硬件中常见的100种硬件选型方式

1请列举您知道的电阻、电容、电感品牌(最好包括国内、国外品牌)。 电阻: 美国:AVX、VISHAY 威世 日本:KOA 兴亚、Kyocera 京瓷、muRata 村田、Panasonic 松下、ROHM 罗姆、susumu、TDK 台湾:LIZ 丽智、PHY…

服务器数据恢复-RAID5中磁盘被踢导致阵列崩溃的服务器数据恢复案例

服务器数据恢复环境: 一台3U的某品牌机架式服务器,Windows server操作系统,100块SAS硬盘组建RAID5阵列。 服务器故障: 服务器有一块硬盘盘的指示灯亮黄灯,这块盘被raid卡踢出后,raid阵列崩溃。 服务器数据…

JavaEE初阶学习:Servlet

1.Servlet 是什么 Servlet 是一种 Java 程序,用于在 Web 服务器上处理客户端请求和响应。Servlet 可以接收来自客户端(浏览器、移动应用等)的 HTTP 请求,并生成 HTML 页面或其他格式的数据,然后将响应发送回客户端。S…

解决CondaHTTPError HTTP 000 CONNECTION FAILED for url解决方法

解决CondaHTTPError: HTTP 000 CONNECTION FAILED for url解决方法 问题:使用conda install命令安装包提示CondaHTTPError: HTTP 000 CONNECTION FAILED for url 分析:网络连接问题,大概率是网速不行或者源没有换 解决方案:修改国…

C++多态、虚函数、纯虚函数、抽象类

多态的概念 通俗来说,就是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。 举个简单的例子:抢红包,我们每个人都只需要点击一下红包,就会抢到金额。有些人能…

5G学习笔记之5G频谱

参考:《5G NR通信标准》1. 5G频谱 1G和2G移动业务的频段主要在800MHz~900MHz,存在少数在更高或者更低频段;3G和4G的频段主要在450MHz ~ 6GHz;5G主要是410MHz ~ 6GHz,以及24GHz ~ 52GHz。 5G频谱跨度较大,可…

开源贡献难吗?

本文整理自字节跳动 Flink SQL 技术负责人李本超在 CommunityOverCode Asia 2023 上的 Keynote 演讲,李本超根据自己在开源社区的贡献经历,基于他在贡献开源社区过程中的一些小故事和思考,如何克服困难,在开源社区取得突破&#x…

Spark--经典SQL50题

目录 连接数据库准备工作 1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数 2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数 3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩 4、查询平均成绩…

在Kubernetes(k8s)上部署整个SpringCloud微服务应用

视频教程地址:https://www.bilibili.com/video/BV1Xh4y1q7aW/ 文章目录 项目准备打成使用Docker打成镜像准备Docker仓库打包项目为Docker镜像 部署应用到k8s创建nfs挂载目录创建一些基本资源创建命名空间创建拉取镜像的secret创建java运行环境的profile 部署mysql创…

Unity中Shader的XRay透视效果

文章目录 前言一、模拟菲涅尔效果1、获取 V 向量2、获取 N 向量3、点积输出效果4、模拟出菲涅尔效果(中间暗,周围亮) 二、实现 XRay 效果1、使用半透明排序、修改混合模式、加点颜色2、增加分层效果(使用 frac 函数,只取小数部分&…

【深入探究Java集合框架】从List到Map的完整指南

文章目录 🌟 Java集合框架🍊 Collection🎉 List🎉 Set🎉 Map 🍊 集合的选择🎉 1. 有序并允许重复元素的集合 List🎉 2. 无序并且不允许重复元素的集合 Set🎉 3. 维护映射…

【计网 EMail】计算机网络 EMail协议详解:中科大郑烇老师笔记 (五)

目录 0 引言1 电子邮件EMail1.1 组成1.2 SMTP协议1.3 案例:Alice给Bob发送报文1.4 SMTP总结1.5 邮件报文格式1.6 POP3协议和IMAP协议 🙋‍♂️ 作者:海码007📜 专栏:计算机四大基础专栏📜 其他章节&#xf…

辅助驾驶功能开发-功能规范篇(16)-2-领航辅助系统NAP-安全接管策略

书接上回 2.3.6安全接管策略 为保障辅助驾驶车辆的安全性,在辅助驾驶系统运行过程中,对出现的影响系统稳定性的异常情况,制定对应的安全接管策略。 异常情况可能包括:系统传感器、控制器、执行器、电源、通讯、备份系统等的故障或失效,驾驶员异常行为(如不响应车辆的接管…

毅速丨3D打印结合拓扑优化 让轻量化制造更容易

制造轻量化对于提高能源利用效率、提高产品性能和减少环境影响,推动制造业的绿色化、高质量发展具有重要的促进作用。 轻量化设计对许多领域都有着重要影响,尤其是那些需要降低能源消耗、提高运输效率或减少对环境影响的领域。如航空航天,轻量…

【论文阅读笔记】 Curated Pacific Northwest AI-ready Seismic Dataset

Curated Pacific Northwest AI-ready Seismic Dataset 太平洋西北部人工智能地震数据集 摘要 描述了一个AI就绪地震数据集包括各种地震事件参数 仪器元数据 地震波行描述地震目录和事件属性(事件震级类型,信道类型,波形极性,信…