深入理解SqueezeSegV3点云分割

文章:Squeezesegv3: Spatially-adaptive convolution for efficient point-cloud segmentation

代码:https://github.com/chenfengxu714/SqueezeSegV3

一、摘要

激光雷达点云分割是许多应用中的一个重要问题。对于大规模点云分割,一般是投射三维点云以获得二维激光雷达图像,然后使用卷积法对其进行处理。尽管普通 RGB 图像和激光雷达图像具有相似性,但我们发现,在不同的图像位置,激光雷达图像的特征分布会发生巨大变化。使用标准卷积来处理这类激光雷达图像会出现问题,因为卷积滤波器会捕捉到只在图像中特定区域活跃的局部特征。因此,网络的能力未得到充分利用,分割性能下降。为了解决这个问题,我们提出了空间自适应卷积(SAC),根据输入图像的不同位置采用不同的滤波器。由于 SAC 可以通过一系列元素乘法、im2col 和标准卷积来实现,因此可以高效计算。它是一个通用框架,以前的几种方法都可以看作是 SAC 的特例。利用SAC,我们构建了用于LiDAR点云分割的SqueezeSegV3,并在SemanticKITTI基准测试中以相当的推理速度超越了之前发布的所有方法,至少高出3.7% mIoU。

二、SqueezeSegV3网络架构概览

SqueezeSegV3是一个为点云数据设计的卷积神经网络。它通过球面投影技术将3D点云转换为2D图像,然后利用一系列卷积层和自适应卷积层对其进行处理。

三、球面投影的转换

通过球面投影,我们能够将点云数据投影到一个二维平面上,这使得标准的2D卷积网络能够进行处理。这种投影保留了重要的几何和距离信息,同时简化了数据的结构,为后续的特征提取和分类工作奠定了基础。

在这个过程中,3D点的 x 和 y 坐标通过 arctan⁡ 函数转换为水平角度,并且归一化到图像的宽度 w 范围内。z 坐标通过 arcsin⁡ 函数转换为垂直角度,并且归一化到图像的高度 h 范围内。这样,每个3D点都被映射到了2D图像上的一个特定位置,可以利用常规的卷积神经网络进行进一步处理。每个点被投影到 (p,q) 后,使用其测量的位置 (x,y,z) 和范围 r 以及强度作为特征,并沿通道维度堆叠。

四、空间自适应卷积(SAC)

SAC是SqueezeSegV3的核心,它使网络能够根据点云数据的空间分布自适应地调整卷积核。这种方法比传统的卷积操作更有效,因为它可以专注于点云中更重要的区域。四种SAC变种如下:

SAC-S

1. 使用Conv_attention7x7函数在坐标映射上生成注意力图(attention_map)。
2. 将注意力图与输入特征逐元素相乘(element-wise multiplication)。
3. 通过Conv_feature3x3在加权的输入特征上应用3x3卷积。
4. 将卷积的结果与输入特征逐元素相加,得到输出特征。

SAC-IS

与SAC-S类似,但在生成注意力图之后,会对其进行一次inflation操作,这意味着将注意力图在空间维度上复制多次,以匹配输入特征的通道数。

SAC-SK

1. 使用unfold函数,这通常意味着将输入特征展开为更大的维度,这个步骤通常用于提取局部区域。
2. 使用Conv_attention7x7在坐标映射上生成注意力图。
3. 将生成的注意力图在最后一个维度上复制,使其与展开的特征维度匹配。
4. 应用3x3卷积。
5. 将结果与输入特征逐元素相加

SAC-ISK

结合了SAC-IS和SAC-SK的特点,进行了unfold和inflation操作。

在所有这些函数中,输入特征(input_feature)和坐标映射(coordi_map)都是神经网络中的中间特征表示,分别表示前一层输出的特征和空间位置信息。注意力图(attention_map)是通过应用特定的卷积操作于坐标映射上生成的,它用来加权输入特征,这样网络就可以更加关注输入特征中重要的部分。这种类型的操作有助于网络更好地理解输入数据的空间结构,这对于点云数据来说是很关键的。最终,输出特征(output_feature)是经过空间自适应卷积处理后的新特征表示,将被传递到网络的下一层。

五、im2col/unfold介绍

im2col和unfold是相似的操作,实际上是相同的概念在不同上下文和框架中的实现。im2col/unfold操作将每个局部区域转换成一列,这允许使用高效的矩阵乘法来替代更多的逐点卷积运算。尽管这增加了内存的使用,但它显著提高了卷积的计算效率。

im2col的步骤通常包括:

1. 确定卷积核大小:假设卷积核的大小为K x K。

2. 滑动窗口:在输入图像上滑动一个K x K的窗口,通常情况下滑动的步长(stride)为1,这样可以覆盖图像的所有局部区域。

3. 提取和展平:在每个滑动窗口的位置,提取对应的图像区域并将其展平成一维列。

4. 创建矩阵:将所有的列向量堆叠起来形成一个矩阵,其中每一列代表一个局部区域。

六、SqueezeSegV3

SqueezeSegV3使用多个SAC层来逐步提取和细化特征。每个SAC层都专注于从数据中捕获不同的信息,并逐渐构建出足够的上下文来识别和分割点云中的各种对象。

SqueezeSegV3架构

SqueezeSegV3的骨干架构基于RangeNet,它包含五个卷积阶段,每个阶段都包含两个堆叠的卷积层,并在每个阶段的开始进行下采样。为了恢复分辨率,输出然后上采样。SqueezeSegV3用空间自适应卷积的一个变体(SAC-ISK)替换了RangeNet的第一个卷积。为了保持相同的浮点运算数(FLOPs),作者移除了最后两个阶段的下采样,并调整了输出通道的数量。具体来说,五个阶段的输出通道数分别为64、128、256、256和256,而移除了最后两个下采样操作后的输出通道数为64、128、256、512和1024。在最后两个下采样操作中,只使用了三个上采样块。

训练细节和损失函数

SqueezeSegV3通过使用多任务学习和深度监督来优化训练过程。通过在不同的网络层上计算损失,模型能够更好地学习复杂的特征表示。

SqueezeSegV3使用多层交叉熵损失来训练网络。在训练过程中,从stage1到stage5,每个阶段的输出都增加了一个预测层。对于每个输出,分别用1x、2x、4x、8x和8x的因子对真实标签地图进行下采样,并用这些采样过的标签来训练从stage1到stage5的输出。损失函数可以表示为:

相较于单层的交叉熵损失,这种多层损失能够提供更多的监督信号,从而改善网络的学习过程。这也有助于缓解梯度消失问题,因为它允许梯度直接从网络的较低层流向较高层。

七、实验结果和性能评估

在标准数据集上,SqueezeSegV3的表现优于先前的模型,这证明了其架构和SAC技术的有效性。特别是在识别小物体和边缘物体方面,SqueezeSegV3显示出显著的改进。

八、点云分割的未来方向

随着自动驾驶技术的发展,点云分割的需求日益增长。未来的研究可能会集中在进一步提升处理速度和准确性,以及将SqueezeSegV3的方法应用于更广泛的3D视觉任务上。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法每日一练]-图论(保姆级教程 篇2(topo排序,并查集,逆元))#topo排序 #最大食物链 #游走 #村村通

今天讲topo排序 目录 题目:topo排序 思路: 题目:最大食物链 解法一: 解法二: 记忆化 题目:村村通 思路: 前言:topo排序专门处理DAG(有向无环图) 题目…

15个顶级元宇宙游戏

元宇宙游戏是可让数百万玩家在一个虚拟世界中相互互动,允许你按照自己的节奏玩游戏,并根据自己的条件推广自己的品牌。 而且,这些游戏中的大多数都涉及虚拟 NFT,它们是完全独特的和虚拟的。在 Facebook 将品牌重新命名为“Meta”…

Spring 国际化:i18n 如何使用

1、i18n概述 国际化也称作i18n,其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数。由于软件发行可能面向多个国家,对于不同国家的用户,软件显示不同语言的过程就是国际化。通常来讲,软件中的国…

11月第2周榜单丨飞瓜数据B站UP主排行榜榜单(B站平台)发布!

飞瓜轻数发布2023年11月6日-11月12日飞瓜数据UP主排行榜(B站平台),通过充电数、涨粉数、成长指数、带货数据等维度来体现UP主账号成长的情况,为用户提供B站号综合价值的数据参考,根据UP主成长情况用户能够快速找到运营…

【JUC】六、辅助类

文章目录 1、CountDownLatch减少计数2、CyclicBarrier循环栅栏3、Semaphore信号灯 本篇整理JUC的几个同步辅助类: 减少计数:CountDownLatch循环栅栏:CyclicBarrier信号灯:Semaphore 1、CountDownLatch减少计数 案例:6…

基于opencv+tensorflow+神经网络的智能银行卡卡号识别系统——深度学习算法应用(含python、模型源码)+数据集(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 训练集图片处理1)数据加载2)图像处理 2. 测试图片处理1)图像读取2)图像处理 相关其它博客工程源代码下载其它资料下载 前言 本项目基于从网络获取的多种银行卡数据…

政府指导89元保330万 “聊惠保”2024年度正式上线!

11月15日,“聊惠保”2024年度启动仪式在聊城市融媒体中心举行。市政府领导,省直、市直相关部门单位和共保体成员单位负责同志参加仪式。“聊惠保”2024年度正式上线!“聊惠保”项目组为聊城市医疗救助困难群体捐赠“聊惠保”2024年度团体保险…

python基础练习题库实验八

文章目录 前言题目1代码 题目2代码 题目3代码 总结 前言 🎈关于python小题库的这模块我已经两年半左右没有更新了,主要是在实习跟考研,目前已经上岸武汉某211计算机,目前重新学习这门课程,也做了一些新的题目 &#x…

LeetCode34-34. 在排序数组中查找元素的第一个和最后一个位置

&#x1f517;:代码随想录:二分查找的算法讲解:有关left<right和left<right的区别 class Solution {public int[] searchRange(int[] nums, int target) {int nnums.length;int l0,hn-1;if(numsnull){return null; }if(n0){return new int[]{-1,-1}; }if(target&l…

阿里云99元ECS云服务器老用户也能买,续费同价!

阿里云近日宣布了2023年的服务器优惠活动&#xff0c;令用户们振奋不已。最引人瞩目的消息是&#xff0c;阿里云放开了老用户的购买资格&#xff0c;99元服务器也可以供老用户购买&#xff0c;并且享受续费的99元优惠。此外&#xff0c;阿里云还推出了ECS经济型e实例&#xff0…

8年经验的软件工程师建议

我希望在职业生涯早期就开始做的事情和我希望以不同的方式做的事情。 大家好&#xff0c;我已经做了八年半的软件工程师。这篇文章来源于我最近对自己在职业生涯中希望早点开始做的事情以及希望以不同方式做的事情的自我反思。 我在这里分享的对任何希望提高和进步到高级甚至…

Java远程操作Linux服务器命令

Java可以通过SSH协议远程连接Linux服务器&#xff0c;然后使用JSch库或者Apache Commons Net库来执行远程Linux命令。以下是一个使用JSch库的示例代码&#xff1a; import com.jcraft.jsch.*;public class RemoteCommandExecutor {private String host;private String user;pr…

2023年亚太杯数学建模思路 - 复盘:人力资源安排的最优化模型

文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 描述 …

ubuntu 20通过docker安装onlyoffice,并配置https访问

目录 一、安装docker &#xff08;一&#xff09;更新包列表和安装依赖项 &#xff08;二&#xff09;添加Docker的官方GPG密钥 &#xff08;三&#xff09;添加Docker存储库 &#xff08;四&#xff09;安装Docker &#xff08;五&#xff09;启动Docker服务并设置它随系…

2024年上半年:加密领域迎来无限机遇与重大突破!

2024年上半年将成为加密行业发展的关键时期&#xff0c;一系列重大事件和计划将为这一领域带来深远的影响。这些举措不仅有望吸引更多机构投资者和资金流入加密市场&#xff0c;还将进一步提升比特币的认可度和流动性&#xff0c;推动整个行业迈向新的阶段。 SEC批准比特币现货…

消息通讯——MQTT WebHookSpringBoot案例

目录 EMQX WebHook介绍EMQX WebHook是什么EMQX WebHook配置项如何使用EMQX WebHook配置WebHook配置事件推送参数详解 SpringBoot集成Webhook实现客户端断连监控1. 实现前提2. 代码实现接口3. 监听结果 总结 EMQX WebHook介绍 EMQX WebHook是什么 EMQX WebHook 是由 emqx_web_…

大语言模型概述|亚马逊这些互联网公司为什么花巨资训练自己的模型?

2023年可谓是大语言模型元年&#xff0c;OpenAI、亚马逊、谷歌等互联网公司争先恐后推出了自己的大语言模型&#xff1a;GPT-4、Titan、PaLM 2&#xff0c;还有亚马逊即将推出的第二个大语言模型Olympus等等。这一革命性技术如今已经在全球范围内引发了广泛的讨论和关注&#x…

保姆级fastDFS安装教程

一、软件准备 环境需要准备四个包&#xff0c;分别是&#xff1a; 1. libfastcommon_1.0.36 2. FastdfsFastdfs_v5.11 3. fastdfs-nginx-module5.11 4. nginxnginx-1.12.2 二、环境准备 安装perl环境&#xff0c;后续编译fastdfs会用到 yum -y install perl* yum -y ins…

Python武器库开发-flask篇之URL重定向(二十三)

flask篇之URL重定向(二十三) 通过url_for()函数构造动态的URL&#xff1a; 我们在flask之中不仅仅是可以匹配静态的URL&#xff0c;还可以通过url_for()这个函数构造动态的URL from flask import Flask from flask import url_forapp Flask(__name__)app.route(/) def inde…

为忙碌的软件工程师精心准备的编码面试准备材料,超过 100,000 人受益!

这是一个针对技术面试准备的手册。它收集了大量的面试问题和答案&#xff0c;涵盖了算法、系统设计、前端等主题&#xff0c;并且还在不断更新和完善中。 这个项目是“Tech Interview Handbook”&#xff0c;解决了求职者在技术面试中遇到的各种难题&#xff0c;帮助他们更好地…