PP-MobileSeg: 探索移动设备上又快又准的语义分割模型

news2024/11/16 0:15:51

论文:https://arxiv.org/abs/2304.05152

代码:https://github.com/open-mmlab/mmsegmentation/tree/main/projects/pp_mobileseg

0、摘要

        transformer在CV领域的成功之后,出现了很多在移动设备上使用它们的尝试性工作,但是这些工作在某些实际应用中的表现仍然不能令人满意。为了解决这个问题,本文提出PP-MobileSeg——一个在移动设备上达到SOTA的语义分割模型。PP-MobileSeg包含三个新颖的设计:StrideFormer backbone、聚合注意力模块(AAM)、有效差值模块(VIM):

  • 包含了4个stage的StrideFormer backbone 由MV3块和SEA注意力模块构建,能够以最小的参数量提取丰富的语义信息与细节特征;
  • AAM则首先通过语义特征集成投票过滤细节特征,然后将它们与语义特征相结合以增强语义信息;
  • VIM将下采样的特征上采样到输入图像的大小,它通过仅插值最终预测中存在的类来显着降低模型延迟,这是降低整体模型延迟的最主要因素。

        大量实验表明,与其他方法相比,PP-MobileSeg 在准确性、模型大小和延迟之间实现了更好的权衡。在ADE20K数据集上,PP-MobileSeg在mIoU上比SeaFormer-Base高1.57%,在高通骁龙855上减少了32.9%的参数和42.3%的加速。

1、引言

        相比图像分类、目标检测之类的图像任务,语义分割计算比较昂贵的,因为它需要预测每个像素的类别。由于GPU的存在,现在很少有针对移动设备的语义分割研究。而研究的缺乏,又阻碍了语义分割在移动APP上的应用。

        最近,视觉transformer的爆发式增长,证明了基于transformer的神经网络在语义分割方面的潜力。有部分工作提出利用transformer-CNN结合的混合架构来设计轻量网络,比如Mobile ViT、MobileFormer、EdgeNext。这种混合架构的网络以最低的计算成本结合了全局与局部信息,然而多头自注意力(MHSA)却使得这几个网络很难用于移动设备。尽管已经通过诸如滑窗注意力、高效注意力、外部注意力、轴向注意力、SEA注意力等技术来降低计算复杂度,但是这些技术中的许多需要复杂的索引操作,ARM CPU仍不能支持。除了延时与准确率,内存也是一个制约移动设备应用的关键因素,因为移动设备的内存通常比较有限。因此出现了一个基本问题:我们能否为移动设备设计一个混合网络,在参数、延迟和精度之间具有优越的权衡?

        在这项工作中,我们通过在模型大小和速度约束下探索移动分割架构来解决上述问题,以实现性能飞跃。在广泛搜索下,我们设法提出了三个新颖的设计模块:四级主干StrideFormer、特征融合块AAM和上采样模块VIM,如图2所示。通过结合这些模块,我们提出了一系列名为 PP-MobileSeg 的 SOTA 移动语义分割网络,该网络非常适合具有大量参数、延迟和精度平衡的移动设备。我们改进的网络设计允许 PPMobileSeg-Base 在保持具有竞争力的 1.37 更高的 mIoU(表1)的同时,将推理速度提高 40% 和并将模型大小降低34.9%。与 MobileSeg-MV3 相比,PP-MobileSeg-Tiny 实现了 3.13 更高的 mIoU,同时速度提高了 45% 和 49.5%(表 1)。我们还评估了 PP-MobileSeg 在 Cityscapes 数据集 (表 2)上的性能,这表明它在高分辨率输入上的模型性能方面具有优势。尽管 PP-MobileSeg-Base 的延迟稍长,但它在 mIoU 上比 SeaFormer在Cityscapes数据集 上的模型大小优势高 1.96。

图 1. 我们在 ADE20K 验证集上展示了我们提出的 PP-MobileSeg 模型的准确度延迟参数分析。trade-off分析表示为气泡图,其中 x 轴表示延迟,y 轴表示 mIoU。具有相同颜色的模型来自同一个模型系列。我们的模型实现了更好的准确性-延迟-参数权衡。请注意,延迟使用 Qualcomm Snapdragon 855 CPU 上的 PaddleLite 测试,单线程为 512x512 作为输入形状。
表 1. ADE20K 验证集的结果。使用PaddleLite测量延迟,在高通骁龙855 CPU上使用最终的ArgMax算子,以512x512为输入形状。所有结果都使用单个线程进行评估。mIoU 是通过单尺度推理报告的。

        本文贡献总结如下:

  • 提出了StrideFormer,一个具有MobileNetV3块的4-stage的backbone,可以有效地提取不同接收域的特征,同时最小化参数开销;
  • 提出了聚合注意模块(AAM),它通过增强语义特征的集成投票来融合来自主干的特征,并进一步增强融合特征具有最大感受野的语义特征;
  • 为了减少最终插值和 ArgMax 操作引起的显着延迟,我们设计了 Valid Interplate Module (VIM),该模块在推理时只对最终预测中存在的类进行上采样;用 VIM 替换最终的插值和 ArgMax 操作显着减少了模型延迟;
  • 我们将上述模块结合起来,创建了一系列名为 PPMobileSeg 的 SOTA 移动分割模型。我们的大量实验表明,PPMobileSeg 在 ADE20K 和 Cityscapes 数据集的延迟、模型大小和准确性之间取得了很好的平衡。

2、相关工作

        在速度和模型大小约束下,移动语义分割是一项旨在采用高效网络设计的语义分割网络的任务。

2.1. 语义分割

        为了在语义分割中实现高性能,几个关键元素是必不可少的,包括一个大的感受野来捕获上下文、高分辨率的特征进行精确分割、细节和语义特征的融合用于精确预测以及改进特征表示的注意机制。SOTA模型通常结合几个甚至所有这些元素来实现卓越的性能。语义分割任务的主要要求是,网络必须能够捕获场景的整体视图,同时保留图像的细节和语义。因此,必须设计能够高效有效地整合这些元素的网络架构。

2.2. 高效网络设计

        由于语义分割的计算复杂度大,移动设备上的分割研究有限,只有少数研究关注这一领域。其中,TopFormer 使用自注意力块增强令牌金字塔,并使用他们提出的注入模块将其与局部特征融合。此外,SeaFormer通过高效的SEA注意模块提高了模型的性能。它们都显着优于 MobileSeg 和 LRASPP,后者目前代表了移动语义分割的最新技术。

3、方法

        本节全面探索在速度和大小约束下设计的移动分割网络,旨在获得更好的分割精度。通过我们的研究,我们确定了三个关键模块,这些模块导致更快的推理速度或更小的模型大小,并略微提高了性能。PP-MobileSeg 的完整架构如图 2 所示,它包括四个主要部分:StrideFormer、Aggregate Attention Module (AAM)、segmentation head 和 Valid Interpolate Module (VIM)。StrideFormer利用输入图像生成一个特征金字塔,将跨步注意应用于最后两个阶段,以合并全局语义。AAM负责融合局部特征和语义特征,然后通过分割头生成分割掩码。最后,上采样模块 VIM 用于进一步增强分割掩码,仅通过对最终预测中存在的类对应的少数通道进行上采样来减少延迟。以下部分详细描述了这些模块中的每一个。

图 2. PP-MobileSeg 网络架构。AAM 的结构在图的顶部。法线插值模块和 VIM 之间的差异显示在图右下角。通过选择最终预测中存在的类,VIM 通过上采样几个通道显着降低了延迟。

3.1. StrideFormer

        在StrideFormer模块中,我们利用MobileNetV3[12]块的堆栈来提取不同接收域的特征。关于该架构变体的更详细信息可以在 3.4 小节中找到。给定一个I \in R^{3×H×W}的图像,其中 3, H, W 表示图像的通道、高度和宽度。StrideFormer 产生特征 {F×8, F×16, F×32},表示原分辨率下采样 8, 16 和 32 倍的特征。一个关键的设计选择是主干中的阶段数,其中每个阶段都是一个MobileNetv3块的堆叠,它产生一个特征集F_{Xdownsample-rate}。受 EfficientFormer 的启发,我们发现与 五阶段模型相比,四阶段模型具有最小的参数开销,同时仍然保持出色的性能。因此,我们设计了具有四个阶段范式的StrideFormer。使用从四个阶段主干生成的 {F×8, F×16, F×32},我们在最后两个阶段的特征上添加 M/N SEA 注意块。考虑到具有高分辨率输入的自注意力模块的时间复杂度,我们在 SEA 注意力模块之前添加了步幅卷积,然后对特征进行上采样。通过这种方式,当我们用全局信息赋予特征时,我们将计算复杂度降低了原始实现的 1/4。

3.2. Aggregated Attention Module,AAM

使用主干生成的 {F×8, F×16, F×32},我们设计了一个聚合注意模块 (AAM) 来融合特征。AAM的结构在图2的右上角。在生成的特征中,{F×16, F×32}具有更大的接受域,包含丰富的语义信息。因此,我们通过集成投票将它们用作信息过滤器,来从详细的特征 F×8 中找到重要信息。在过滤过程中,F×16 和 F×32 上采样到与 F×8 相同的分辨率。并将它们应用 sigmoid 算子来获得权重系数。之后,将F×16和F×32相乘,利用乘法结果过滤F×8。我们可以将上述过程表述为公式1:

        此外,我们观察到具有丰富语义的特征补充了先前过滤的细节特征,并且对于提高模型性能至关重要。因此,应该最大程度地保留它。因此,我们将具有最大感受野且使用全局视图增强的 F×32 也添加到过滤后的细节特征中。

        特征融合后,就能够捕获丰富的空间和语义信息,这是分割性能的基础。 在此基础上,我们按照TopFormer的方式添加了一个简单的分割头。分割头由一个 1×1 层组成,这有助于沿通道维度交换信息。然后应用 dropout 层和卷积层来生成下采样分割图。

3.3. Valid Interpolate Module,VIM

在延迟约束下,我们进行了延迟配置文件,发现最终的插值和 ArgMax 操作占总延迟的 50% 以上。因此,我们设计了有效的插值模块(VIM)来代替插值和 ArgMax 操作,并大大减少模型延迟。SeaFormer-Base和PP-MobileSeg-Base的延迟曲线如图3所示。

图3. SeaFormer和PPMobileSeg的延迟剖面比较。

添加 VIM 后的详细统计数据见表3。

        VIM 的提出是基于观察到出现在训练好的模型预测时出现的类别数通常远小于数据集中类别的总数,尤其是对于具有大量类别的数据集,这在具有大量类的数据集中比较常见。因此,在插值和 ArgMax 过程中没有必要考虑所有类。VIM的结构在图2的右下角。如图所示,VIM 由三个主要步骤组成。首先,在下采样后的分割map上应用ArgMax 和 Unique 操作来找到必要的通道;然后,使用索引选择操作来仅选中那些有效通道,并在缩小后的特征上应用插值操作;最后,将所选通道上采样到原始分辨率,生成最终的分割图。使用 VIM 代替插值和 ArgMax 操作,我们以更少的延迟成本检索最终的分割图。

        VIM 的使用大大减少了插值和 ArgMax 操作中涉及的通道,导致模型延迟显着下降。但是,VIM 仅适用于类数足够大以在模型中具有通道冗余的情况。因此,设置了 30 的类阈值,当类的数量低于此阈值时,VIM 不会生效。

3.4. 架构变体

我们提供了 PP-MobileSeg 的两种变体,以使我们的模型适应不同的复杂性要求,即 PPMobileSeg-Base 和 PP-MobileSeg-Tiny。这两个输入形状为 512x512 的变体的大小和延迟如表中所示1。base模型和tiny模型拥有相同数量的 MobileNetV3 层,但base模型比tiny模型宽。base模型生成具有更多通道的特征来丰富特征表示。此外,注意块也存在一些差异。PP-MobileSeg-Base 模型在 SEA 注意力模块中有 8 个头,M/N = 3/3 个注意块。PP-MobileSeg-Tiny 模型在 SEA 注意力模块中有 4 个头,块数为 M/N = 2×2。在最后两个阶段的特征通道个数上,PP-MobileSeg-Base是128、192,而PP-MobileSeg-Tiny是64、128。特征融合模块的设置对于base模型和tiny模型是相同的,AAM的嵌入通道dim设置为256。

4、实验结果

5、总结

        在本文中,我们研究了混合视觉主干的设计,并解决了移动设备语义分割网络的延迟瓶颈。经过彻底的探索,我们确定了对移动设备友好的设计选项,并提出了一种新的结合了transformer块和CNN的移动语义分割网络,称为PP-MobileSeg。通过精心设计的主干、融合模块和插值模块,PP-MobileSeg 在基于 ARM 的设备上实现了模型大小、速度和准确性之间的 SOTA 平衡。

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

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

相关文章

AI绘画 | stable-diffusion-web-ui的基本操作

前言 我们下载安装完成stable-diffusion-web-ui以后,下载对应风格的模型,就可以开始我们的绘画操作了。进行Ai绘画操作前,我们最好先弄清楚web ui界面上的参数按钮的含义。这样我们就能更轻松的绘画出我们想要stable-diffusion-web-ui创作出…

【蓝桥杯选拔赛真题08】C++最大值最小值平均值 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析

目录 C/C++最大值最小值平均值 一、题目要求 1、编程实现 2、输入输出 二、算法分析</

7个UI设计必备课程,小白必看!

无论你是想提高技能的资深UI设计师还是网站开发人员&#xff0c;又或者是刚转行不久的UI设计新手&#xff0c;学习UI设计课程都会让你做出更美观、更有影响力的UI界面设计作品。现在网上有很多网上的UI设计课程。通过这些课程&#xff0c;你可以自己学习、掌握一些UI设计的基础…

内网渗透-域防火墙+入站出站规则+组策略对象同步+不出网隧道上线

一.单机-防火墙-限制端口出入站-熟悉常见主机配置不出网的方式 配置防火墙属性 1.win10虚拟机本地搭建一个网站&#xff0c;配置防火墙属性的入站连接为默认值。 局域网中另一台主机能正常访问 2.入站连接设置为 阻止所有连接 。 因为是我们去访问他的网站&#xff0c;所以是入…

利用HTML和CSS3新特性实现太极图旋转

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>太极图</title><style>.box{box-sizing: border-box;width: 400px;height: 400px;margin: 50px auto;border: 1px solid black;position: …

EtherNET/IP转Mpdbus Tcp协议网关协议

JM-EIP-TCP 是一款 ETHERNET/IP 从站功能的通讯网关。该产品主要功能是将各种 MODBUS-TCP 设备接入到 ETHERNET/IP 网络中。 本网关连接到 ETHERNET/IP 总线中做为从站使用&#xff0c;连接到 MODBUS-TCP 总线中做为主站&#xff08;客户端&#xff09;或从站&#xff08;服务…

Poshmark 如何刺激流量?如何快速出单?

PoshMark可是美国市场上最大的二手交易平台&#xff0c;基本上啥都有&#xff0c;电商界的“菜市场”啊&#xff01;而且还有社交功能&#xff0c;好玩儿又实用&#xff0c;你可以和好友分享喜欢的商品&#xff0c;还能知道你的好友在买啥&#xff01;可是新手卖家会觉得怎么才…

概念解析 | 微波光子雷达:打通雷达性能增强的“光通道“

微波光子雷达:打通雷达性能增强的"光通道" 注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:微波光子雷达。 一、背景介绍 雷达是现代战争中极为重要的军事装备,被誉为各兵种的“眼睛”。它可以在全天候条件下发现和…

el-table表格设置——动态修改表头

(1) 首先是form表单写表单设置按钮&#xff1a; &#xff08;1.1&#xff09;使用el-popover&#xff0c;你需要修改的是this.colOptions&#xff0c;colSelect: <el-popover id"popover" popper-class"planProver" placement"bottom" width&…

部署WeBASE

1、检查环境 1.1、检查Java java -version 1.2、检查mysql mysql --version 1.3、检查Python python --version # python3时 python3 --version 2、修改配置 修改common.properties 修改webase-node-mgr 修改webase-node-mgr/conf/application.yml 修改webase-node-mgr…

还在用Excel处理进销存?不妨试试这款进销存管理!

现在还有人使用Excel表格做进销存管理吗&#xff1f; Excel表格过于复杂&#xff0c;要求比较高&#xff0c;想问问有没有更简单的方法搭建进销存系统&#xff0c;因此这篇就分享一个不需要Excel&#xff0c;也能做出一套完整的进销存管理系统的方法。 这是我在简道云用了十几…

AI时代新宠,向量数据库

随着生成式人工智能&#xff08;GAI&#xff09;应用以及大语言模型&#xff08;LLM&#xff09;的快速发展&#xff0c;一种新型数据库也获得了市场和资本的重点关注&#xff0c;它就是向量数据库&#xff08;Vector Database&#xff09;。 向量数据库简介 向量数据库是一种…

点击跳到详情页

父页面 <template><view class"order-list"><cu-custom bgColor"bg-gradual-blue" :isBack"true"><block slot"content">荒料管理</block></cu-custom><view class"" ><!-- 订…

【Python Numpy教程】切片和索引

文章目录 前言一、切片和索引是什么&#xff1f;二、数组索引操作示例代码12.3 示例代码22.4 示例代码3 三、数组切片3.1 最基础的数组切片1. 切片格式&#xff1a;2. 如何使用&#xff1a;3. 示例代码&#xff1a; 3.2 切片中包括省略号基本格式1. 单个省略号示例&#xff1a;…

Linux系统编程:IO系统总结

stdio标准IO 标准IO都是一些C语言的函数&#xff0c;注意与文件IO的系统调用函数区别开。 fopen 函数描述&#xff1a; 第一个参数填要打开的文件路径&#xff0c;第二个参数填以什么形式打开&#xff08;读or写or其它&#xff09;。 在我们学习fopen函数时&#xff0c;查看…

Vue基础之购物车案例

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大二在校生 &#x1f921; 个人主页&#xff1a;坠入暮云间x &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习目标: 坚持每一次的学习打卡 经过…

非关系型数据库Redis的安装【Linux】及常用命令

前言 Redis&#xff08;Remote Dictionary Server&#xff09;是一种开源的内存数据库管理系统&#xff0c;它以键值存储方式来存储数据&#xff0c;并且支持多种数据结构&#xff0c;如字符串、哈希、列表、集合、有序集合等。Redis最初由Salvatore Sanfilippo开发&#xff0c…

WiFi模块在智能家居中的应用与优化

智能家居技术的迅速发展已经改变了我们对家庭的定义。WiFi模块作为智能设备连接的核心&#xff0c;扮演着连接和控制智能家居生态系统的关键角色。本文将深入研究WiFi模块在智能家居中的应用&#xff0c;同时探讨如何通过优化来提升其性能和用户体验。 1. 智能家居中WiFi模块的…

QSqlTableModel结合使用数据库心得

文章目录 目的QSqlTableModel采用Model-View-Delegate(模型视图代理)框架的整体结构QT数据库组件用户界面层(UI Layer)SQL接口层(SQL API Layer)驱动程序层(Driver Layer)实现翻页功能实现数据库查询功能QSqlDatabaseQSqlQueryQSqlRecord目的 1: 了解QSqlTableMode 与 数据库…

基于wireguard与NAT实现windows10代理服务器

参考文章&#xff1a;https://blog.csdn.net/babytiger/article/details/127111474 一、 下载windows 安装包 下载wireguard安装包 二、 配置服务端&#xff1a; 新建空隧道并保存为server1&#xff0c;配置如下&#xff1a; 点击保存&#xff0c;并连接&#xff0c;多了个se…