【点云】Paper reading SPLATNet: Sparse Lattice Networks for Point Cloud Processing(CVPR2018)

发布时间:2026/10/22 6:37:47

【点云】Paper reading SPLATNet: Sparse Lattice Networks for Point Cloud Processing(CVPR2018) 对SPLATNet的理解简要介绍SPLATNet为什么要直接处理点云呢BCLs(bilateral convolutional layers)Step one: SplatStep two: convolveStep three: sliceBCL的一些性质SPLATNet网络结构总结参考文献简要介绍SPLATNet其实CVPR2019又出了很多关于点云的文章SPLATNet是导师发给LZ的那必然是要好好琢磨一下具体的优势在哪了。这篇文章作者是有oral的所以可以直接看到作者对这篇Paper的讲解但是由于时间限制所以存在很多细节没有介绍所以如果只想了解大概框架建议直接去看原作者的presentation。值得一提的是本文的作者也是MVCNN的作者所以他还是对点云处理这一套有着比较深厚的理解的。还有一点因为LZ汇报要求使用英文结果还是各种专业词汇会有点卡壳哈哈还是得多练练英文口语。脑子理解了反应的全是中文然后还得想成英文就会比较慢这也是LZ要修炼的一个技能。切入正题如下图所示可以看到SPLATNet主要分成两类网络一类是只处理点云的网络称为SPALTNet3D网络另一类是SPLATNet2D-3D网络可以同时处理图像特征和点云特征。所以说SPALTNet可以直接处理点云。为什么要直接处理点云呢这里直接放出一张LZ做的PPT吧比较简陋就凑合着看吧。这是LZ写的关于PointNet的motivation这里面也可以同样解释为什么要直接使用点云作为输入https://blog.csdn.net/Felaim/article/details/84403159但是PointNet/PointNet同样也会存在问题由于点的稀疏性和无序性所以原文中也只用了MLP来对特征进行升维然后使用最大池化来描述全局特征。所以没有办法使用正常的卷积操作来调整其感受野的大小同样使用最大池化也会丢失表面信息和纹理信息等。既然作者提出来PointNet/PointNet存在这样的问题必然SPLATNet就是可以解决这样的问题那么问题来了SPLATNet是怎么解决的呢BCLs(bilateral convolutional layers)一图胜万言O(∩_∩)O哈哈~深有感触。可以看SPLATNet的详细结构图可以看到以SPLATNet-3D为例可以看到主要就有两个模块一个模块是1x1的卷积用来做升降维通道特征融合的另一个部分就是BCL(bilateral convolutional layer)双边卷积层。所以在SPLATNet中最重要的就是双边卷积最初LZ还在考虑双边卷积是不是和双边滤波是不是有什么联系后来发现并没有太多的联系只是借了这个概念来说因为双边滤波既有空间的信息也有亮度/颜色的信息所以采用双边卷积可能也是套用了这个概念因为这个卷积既处理了位置间的信息也可以有颜色RGB的信息或者法线所以叫双边卷积可能吧。如下图所示是双边卷积的三个主要步骤其实如果阅读文章的LZ觉得应该算是四个步骤。。。分别是SplatConvolve和Slice不知道第一个用中文怎么翻译下面LZ来好好介绍下这个网络基础不牢固看paper熬了两夜Step one: Splat这个步骤中其实有LZ说的两步第一步是一个映射关系将点云的特征映射到permutohedral latticeLZ在汇报是一遇到这个英文一言难尽/(ㄒoㄒ)/~~第二个步骤是重心插值。可以这样认为假设存在一个d维的permutohedral lattice这就相当于是一个超平面H d H_dHd​那么会存在一个d1维的空间同样也会存在一个d1维的全一向量1 ⃗ [ 1 , 1 , . . . , 1 ] \vec{1}[1, 1, ..., 1]1[1,1,...,1]将d1维的空间沿着全一向量进行映射映射得到对应的的超平面就是之前所说的permutohedral lattice因此就生成一个投影的标准基可以看到B d B_dBd​中每一列的和都为0每列的元素除以d1得到的模相同。所以还会存在如下的性质如果投影点都是整数那么投得到的lattice point上也会保证这些性质。下面我们假设d 2 d2d2如下图所示存在三个点分别为( 0 , 0 , 0 ) T (0, 0, 0)^T(0,0,0)T( 1 , 0 , 0 ) T (1, 0, 0)^T(1,0,0)T( 1 , 1 , 0 ) T (1, 1, 0)^T(1,1,0)T那么会存在一个投影矩阵B 2 B_2B2​按照上面公式的规则将三个点分别投影到permutohedral lattice上可以得到对应三个lattice points分别为( 0 , 0 , 0 ) T (0, 0, 0)^T(0,0,0)T( 2 , − 1 , − 1 ) T (2, -1, -1)^T(2,−1,−1)T和( 1 , 1 , − 2 ) T (1, 1, -2)^T(1,1,−2)T我们可以看到中间这幅图上为三角形顶点上分别写着01和2那是因为如果对d1维这个例子中是3对3取余只可能出现余数为012着三种情况。后面还会存在两个问题如何找到余数为0这个点呢如何选择顶点数呢先解决第一个问题如何找到对应的最近的余数为0的顶点呢上面图例中以( 2 , − 1 , − 1 ) T (2, -1, -1)^T(2,−1,−1)T的lattice point为例2 / 3 ≈ 0.667 2/3\approx0.6672/3≈0.667用四舍五入近似为1所以在permutohedral lattice坐标系上x轴坐标为1同理− 1 / 3 ≈ − 0.33 -1/3\approx-0.33−1/3≈−0.33四舍五入近似为0所以在permutohedral lattice坐标系上y坐标为0z坐标也为0。所以可以唯一确定一个最近余数为0的点并且复杂度为O ( d 2 ) O(d^2)O(d2)同时看到上图中的第三幅图是对区域的整体划分将permutohedral lattice坐标系中原点处的单形正六边形叫做标准单形其余的单形可以通过平移得到标准单形。并且可以计算对应lattice point对应余数为0顶点的向量差记为x ⃗ − l 0 ⃗ \vec{x}-\vec{l_0}x−l0​​对应不同的点都可以计算出一个向量差按照这个可以对同一区域内的lattice point进行排序作为区分同一区域各个点的key也是后续使用hash表的键值和索引。第二个问题如何选择顶点呢还是以( 2 , − 1 , − 1 ) T (2, -1, -1)^T(2,−1,−1)T的lattice point为例2 / 3 0 ⋯ ⋯ 2 2/30 \cdots\cdots22/30⋯⋯2计算可以得到模为2这个顶点因为点为整数坐标得到的模相同所以lattice point如上图所示。在把所有的点映射到permutohedral lattice超平面上后要进行重心插值在d 2 d2d2的条件下是满足三角形的重心定理如下图所示将三角形区域内的点分裂到对应的lattice的顶点上去使得分裂后的点变成有规则的排列。第一步Splat步骤完成。Step two: convolve第二步就是卷积操作通过步骤一计算得到的键值和对应的顺序可以通过hash表索引到含有lattice point的位置然后通过标准的卷积进行操作提取特征这里类比Gauss Filter做示意图。Step three: slice第三步是slice通过中心插值将lattice顶点上的点进行恢复然后再重新投影到欧式空间中。BCL的一些性质点的特征和lattice的特征可以是不一致的如下图所示。正是由于这个性质可以讲二维的图片特征通过splat和slice操作后得到三维点云的特征因为BCL可以使用标准的卷积所以在使用时可以灵活的调整其对应的感受野也就是调整lattice对应的尺度SPLATNet网络结构其实这篇文章主要的贡献就在于使用BCL搭建了一个可以直接处理稀疏点云的网络并且可以将二维特征和三维特征进行对应映射具体的网络结构在论文里都有比较简单易懂这里感兴趣的小伙伴可以自行理解一下即可。总结SPLATNet是通过创建一个空间将稀疏的点云特征映射成有规律的排列通过使用标准卷积操作来获取点云局部特征和空间信息。其次SPLATNet可以看做是一个联合网络可以将图片和点云进行联合处理需要做二维分割预测时三维点云特征可以对二维分割进行特征和信息补充作为三维分割预测时也可以使用二维特征信息进行补充。总的来说这篇CVPR18还是值得一读的。最后放几张实验结果图可以看到二维信息和三维信息是相互补充的愚人节快乐O(∩_∩)O哈哈~参考文献
延伸阅读

更多相关文章

2026/10/22 6:37:47

STM32G491与PJ85718DM远程测温:HVAC多点温度采集软硬件设计实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 6:32:47

Java线程池高频面试全解析:源码原理到实战排查

1. 面试官问线程池时,到底在问什么线程池这道题,在Java后端面试里的地位不用我多说了。我自己的感受是,只要面试Java岗位,不管是一面二面还是三面,线程池几乎是必考题。尤其是像美团这种体量的公司,日常业务…

2026/10/22 6:32:47

自建私有化远程控制方案:从WebRTC到DXGI驱动级捕获的全栈实战

远程控制这件事,我前后折腾了很多年。最早图省事直接用商业远控,后来发现一个很扎心的现实:商业远控限速是常态——免费通道给个几百Kbps,压缩算法再好也救不了画质,分辨率一拉高就开始糊;付费档虽然放开了…

2026/10/22 7:47:50

哈夫曼树实验报告全解析:C语言实现、WPL计算与避坑指南

简介:这份PDF实验报告面向计算机专业学生与数据结构初学者,围绕哈夫曼树与哈夫曼编码的C语言实现展开,帮助读者理解变长前缀编码如何提升信道利用率、降低传输成本。报告完整覆盖初始化、编码、译码、打印代码文件与打印哈夫曼树五大功能模块…

2026/10/22 7:47:50

多模态大模型实战:模态对齐、数据清洗与训练优化全解析

1. 先想清楚:多模态大模型到底难在哪 这几年,只要聊到大模型,多模态就绕不开。图像分类、目标检测、图文生成、视觉问答、跨模态搜索,几乎所有场景都希望一个模型能同时看懂文字和图像。我最初以为多模态大模型就是把视觉编码器和…

2026/10/22 7:47:50

哈夫曼树实验报告避坑指南:从建树到编码表与WPL验证

简介:这份PDF实验报告面向计算机专业学生及数据结构初学者,围绕哈夫曼树与哈夫曼编码的C语言实现展开,帮助读者理解变长前缀编码在数据压缩与通信中的核心作用。报告完整覆盖初始化、编码、译码、打印代码文件与打印哈夫曼树五大功能模块&…

2026/10/22 7:47:50

深度学习驱动热带气旋预测:技术架构与实验模型解析

做气象预测的人这两年应该都感受到一个明显的变化:以前聊起热带气旋,大家张口闭口都是数值模式、物理参数化、超级计算机,可最近再聚,越来越多人在讨论“能不能把深度学习直接塞进预报流程里”。我接触过好几个做这方面尝试的团队…

2026/10/22 7:47:50

太赫兹成像与光谱医疗应用综述:技术路线、参数边界与避坑指南

简介:这份PDF综述面向生物医学工程、医学影像及中医药研究方向的科研人员与研究生,系统梳理了太赫兹成像与光谱技术在医疗领域的应用现状。内容围绕太赫兹波0.1至10 THz频段的宽带光谱分析、高分辨率与低能耗特性展开,重点阐述其在人体皮肤组…

2026/10/22 7:42:49

智慧车站建设落地指南:从边缘计算到联动规则实践

简介:《智慧城市轨道交通智慧车站系统建设方案》面向轨道交通行业信息化规划与智慧城市项目方案编写人员,提供完整的智慧车站建设参考。方案围绕5G云网一体化的大数据智慧地铁应用平台,系统阐述智慧运营、智慧服务、智慧维保三大建设内容&…

2026/10/21 4:53:08

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/22 0:01:49

电商智能运营体系从0到1:架构设计、落地步骤与避坑指南

前两年我们团队接了一个电商平台的运营中台项目,目标很直白:把过去靠运营拍脑袋做的选品、定价、发券、推活动这些事,逐步用数据算法和自动化流程代替。项目名字内部就叫“电商智能运营体系”。最近有不少朋友问我当时是怎么设计的、踩过哪些…

2026/10/22 0:01:49

若依框架AI代码生成不稳定?用Agent Skill三层结构+五步法搞定

最近一段时间,我一直想把后台管理系统里那些机械重复的增删改查代码交给AI去写。框架用的是若依,按理说这类业务代码模式非常固定,应该是AI最擅长的事情。可真试下来却不是那么回事——你让AI生成一个用户管理模块,它给出的Contro…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑