深入理解SqueezeSegV3点云分割

news2024/11/15 11:36:54

文章: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视觉任务上。

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

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

相关文章

零代码数字孪生设计平台的功能特点

在当今数字化的时代,企业的转型已经成为必然的趋势。而在这个过程中,3D数字孪生无代码编辑工具正成为企业实现数字化转型的新价值点。客户可以无需任何专业知识和专业软件的支持,仅仅通过互联网和浏览器即可根据购买要求对自己的产品/设备/园…

vite => .env 文件配置和使用

.env.development .env.production VITE_API_BASE_URL /api # 开发环境代理地址 .env.development 是在开发环境中的代理地址 .env.production 是在线上的代理地址 ( 两个 .env 内部的变量都是一样的 vite 会在你开发环境和线上环境自动做切换 ) …

彩虹桥架构演进之路-性能篇

一、前言 一年前的《彩虹桥架构演进之路》侧重探讨了稳定性和功能性两个方向。在过去一年中,尽管业务需求不断增长且流量激增了数倍,彩虹桥仍保持着零故障的一个状态,算是不错的阶段性成果。而这次的架构演进,主要分享一下近期针对…

【华为内部资料】《高速数字电路设计教材》(可下载)

与数字技术或软件相比,模拟技术人才的培养和造就仍然需要一定的实践和时间,但无论数字技术发展到任何阶段将永远离不开模拟技术。 由于难度系数较大的原因,有时即便投入很多精力,如果缺乏耐心、毅力和必要的条件,投入…

猫罐头买什么牌子的?宠物店最受欢迎的5款猫罐头推荐!

有多少铲屎官为了让猫咪健康快乐的成长,在猫罐头上费尽心机。钱是砸进去了,但是自己猫胖的胖、瘦的瘦,甚至有的毛病多,出现身体各种问题。 作为一个经营宠物店7年的店长,某宝有大促的时候我总能捡漏,囤到一…

物联网AI MicroPython学习之语法 GPIO输入输出模块

学物联网,来万物简单IoT物联网!! GPIO 介绍 模块功能: GPIO通用输入输出。 接口说明 GPIO - 构建GPIO对象 函数原型:Pin(port, dir , pull)参数说明: 参数类型必选参数?说明portintY对应开发板的引脚号…

【论文精读】VOYAGER: An Open-Ended Embodied Agent with Large Language Models

Understanding LSTM Networks 前言Abstract1 Introduction2 Method2.1 Automatic Curriculum2.2 Skill Library2.3 Iterative Prompting Mechanism 3 Experiments3.1 Experimental Setup3.2 Baselines3.3 Evaluation Results3.4 Ablation Studies3.5 Multimodal Feedback from …

【MySQL】MVCC(多版本并发控制)详解

MVCC MVCC概述 MVCC,全称 Multi-Version Concurrency Control ,即多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 MVCC就是在ReadCommitte…

金蝶云星空表单插件获取控件值

文章目录 金蝶云星空表单插件获取控件值获取主键获取文本获取日期获取数值获取基础资料 金蝶云星空表单插件获取控件值 获取主键 正确: this.View.Model.GetPKValue();错误: 获取文本 this.View.Model.GetValue("FBILLNO")获取日期 thi…

一题带你写出图论算法模板!!!

这题是道基础的图论算法题目 注释很重要!!!!!!! 在做这道题之前,我们先了解一下基础的图论算法吧!!! 1.floyd: 这样可以求出所有点…

了解一下知识付费系统的开发流程和关键技术点

知识付费系统的开发既涉及到前端用户体验,又需要强大的后端支持和复杂的付费逻辑。在这篇文章中,我们将深入探讨知识付费系统的开发流程和关键技术点,并提供一些相关的技术代码示例。 1. 需求分析和规划: 在着手开发知识付费系…

day21_mysql

今日内容 零、 复习昨日 第一阶段: Java基础知识(会编程,懂编程) 第二阶段: Web开发(前端,后端,数据库) 一、MySQL 一、引言 二、数据库 2.1 概念 ​ 数据库是“按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合…

搭建成功simulink-stm32硬件在环开发环境

本次实验所使用的软件版本和硬件平台参数如下: Matlab版本: 2021b STM32硬件平台:YF_STM32_Alpha 1R4(参考自STM32 Nucleo F103RB官方开发板) YF_STM32_Alpha开发板 STM32 Nucleo F103RB 开发板 2.1 STM32硬件支持包下载 读者朋友平时使用的是和谐版M…

基于springboot实现体育场馆运营平台项目【项目源码】

基于springboot实现体育场馆运营管理系统演示 系统开发平台 在该数码论坛系统中,Eclipse能给用户提供更多的方便,其特点一是方便学习,方便快捷;二是有非常大的信息储存量,主要功能是用在对数据库中查询和编程。其功能…

基于SpringBoot+Vue的在线外卖管理系统

基于SpringBootVue的在线外卖管理系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 下单界面 登录界面 商家界面 摘要 本文介绍了一种基于Spring Boot和…

【vue实战项目】通用管理系统:api封装、404页

前言 本文为博主的vue实战小项目系列中的第三篇,很适合后端或者才入门的小伙伴看,一个前端项目从0到1的保姆级教学。前面的内容: 【vue实战项目】通用管理系统:登录页-CSDN博客 【vue实战项目】通用管理系统:封装to…

k8s之Helm

理论: 什么是 He lm 在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。 况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包…

球星马布里申请香港高才通计划落户香港拿身份!谈谈香港身份的好处!

球星马布里申请香港高才通计划落户香港拿身份!谈谈香港身份的好处! 据香港政府新闻网14日消息,前美国职业篮球联赛球员马布里,日前向香港人才服务办公室递交高端人才通行证计划的申请。香港劳工及福利局局长孙玉菡与他会面&#x…

并发编程之生产者消费者模型

什么是生产者消费者模型 生产者消费者模型是多线程中一个比较典型的模型。 打个比方:你是一个客户,你去超市里买火腿肠。 这段话中的 "你"就是消费者, 那么给超市提供火腿肠的供货商就是生产者。超市呢?超市是不是被…

可怕!.Net 8正式发布了,.Net野心确实不小!

随着三天.NET Conf 2023的会议结束了,.Net 8正式发布了。 .Net 8是官方号称有史以来性能最快的一个版本了。 .Net 8 增加了数以千计的性能、稳定性和安全性改进,以及平台和工具增强功能,有助于提高开发人员的工作效率和创新速度。 反正就是…