资讯动态

点云卷积感受野扩张:空洞卷积三种变体原理与工程实践

发布时间:2026/10/16 11:06:38 来源:尧图企业网站定制
1. 论文到底解决了什么问题以及为什么值得花半小时读完做三维点云的人应该都经历过这种痛苦点云不是图像没有规则的像素网格想在它上面用卷积就得先解决一个根本问题——怎么在无序、稀疏、密度分布不均匀的点集上定义一个靠谱的局部邻域操作。早期的PointNet直接把整个点云都拉成一个全局特征虽然简单粗暴但它完全忽略了局部结构所以后来的PointNet开始搞层级化的局部聚合每个局部邻域通过采样分组特征提取来完成一次伪卷积。到PointConv出来的时候大家意识到卷积的本质其实就是加权求和在点云里权重可以靠多层感知机和核函数来动态生成把邻域内每个点的位置偏移映射成连续权值。这个思路在当时很惊艳通用性也强。但PointConv有一个致命短板感受野太小。小到什么程度呢一篇2020年发表在ICRA上的工作《Dilated Point Convolutions: On the Receptive Field Size of Point Convolutions on 3D Point Data》非常直接地指出了这个困境。它对点云卷积的感受野进行了系统研究并提出了三种空洞点卷积变体仅仅通过改动点卷积核的输入构造方式就在不增加参数量和计算负担的前提下把感受野做到了大幅扩张在多个室内语义分割数据集上拿到了当时最好的结果。这篇论文值得读不只是因为它在2020年的S3DIS和ScanNet榜单上刷了分更因为它回答了几个所有做点云的人都会问的问题为什么我的模型分割出来一团糊为什么小目标比如桌椅腿、电线杆总是直接被忽略我应该把邻域半径调大一点还是多加几层网络它把邻域聚合范围这个问题放到了聚光灯下并且给出了一个几乎不花钱就能生效的解决方案。如果你正在做三维感知相关的项目比如室内机器人导航、点云语义分割、激光雷达地物分类或者你正在用PointNet、PointConv这一系模型做研究想搞清楚为什么加大球半径之后效果反而变差了这篇文章的思维方式和配套代码值得认真看一遍。接下来我不打算泛泛讲论文摘要我会按照从问题到方法再到实操的顺序把这篇论文的技术脉络和应用心法完整拆开。2. 先搞清楚PointConv的创造性和它的先天缺陷2.1 PointConv是怎么实现无网格卷积的想理解Dilated Point Convolutions必须先清楚原始PointConv的内部运作机制。传统2D卷积的卷积核在规则网格上滑动每个位置的权重是固定的、可学习的到了点云这里点与点之间没有相对稳定的空间关系你不可能像图像那样直接去索引相邻的九个像素。PointConv的核心思想是把卷积核从固定形状的权重矩阵泛化为关于邻域点相对位置的连续核函数。具体操作分两步第一步对中心点的邻域进行分组采样。给定一个中心点在球半径r内找到它的k个邻居记录下每个邻居相对中心点的三维坐标偏移比如某个邻居在x、y、z方向的相对位置是(Δx, Δy, Δz)。第二步用一个小型MLP网络从这些坐标偏移中生成对应的卷积权重。也就是说权重不是存在查表数组里的而是由一个网络计算出来的。每个邻居点的特征向量乘以自己的权重再加到一起就完成了对这个中心点局部特征的卷积更新。这个机制的最大好处是空间平移不变性。不管点云怎么旋转、平移、缩放只要局部几何结构相似学到的那套核函数都能迁移适配。后面很多工作都或多或少受了它的影响比如KPConv直接学习可变的核点位置Point Transformer直接在局部邻域里做注意力加权——本质上都是适应点云不规则性的卷积/聚合算子。2.2 原版PointConv的邻域大小瓶颈在哪里问题恰好也出在第二步。标准的PointConv在聚合邻域特征时其实是在对一个固定大小的局部空间区域做加权求和。这个固定大小本身没有什么问题毕竟很多模型也这么玩。但PointConv的权重生成网络是在相对坐标的连续空间上做回归如果邻域半径r取得太大里面包含的点既多又杂很多点距离中心点较远它们和中心点的空间关联已经变得很弱。这时候MLP需要拟合的映射关系会变得异常复杂区分这个邻点虽然物理距离远但语义相关和这个邻点纯粹是背景噪声就变得困难训练时梯度变得不稳定容易出现局部邻域特征被远处离群点主导的问题。因此认真调整过PointConv的人都明白r这个超参特别敏感。稍微调大一点参数量没变但有效感受野变化不大不说还可能因为聚合了太多无效点而引入噪声再想通过堆叠更多层来扩大感受野又会成倍增加计算量和显存开销。更棘手的是在三维空间中球体体积是随半径三次方增长的。半径从0.2米扩大到0.4米体积变成原来的8倍需要采样的点的数量也会爆炸式增长这会让整个网络的训练速度肉眼可见地慢下来。2.3 感受野小到底带来了什么后果感受野小带来的问题在语义分割任务中表现得尤为明显。简单说每个点最终的特征只能看见以它为中心半径r范围内的一小块三维空间。在室内场景中一个典型的房间扫描点云墙面动辄延伸好几米而我们的网络可能只能看见0.2米范围内的局部结构。这会带来至少三个实际效果第一个是目标分割不连续。同一个墙面上的相邻点如果它们的局部邻域里没有足够的上下文模型就难以判断它们是不是属于同一物体于是墙面上经常出现断裂、空洞、噪点。你跑出来的分割结果远看还行拉近了看处处是残次品。第二个是小目标极容易被吞掉。比如椅子腿、桌子上散落的杯子、墙角的灭火器这些物体本身只占很小的空间范围它们周边的点在感受野有限的情况下获得的多为局部的碎片信息没有足够的上下文把它从背景中识别出来。在ScanNet这类数据集上小目标的IoU常年做不高就是这个原因。第三个是边界模糊。分割的边界本质上是大类与小类之间的跳变位置大感受野的模型能感知到这里快要从椅子过渡到地板了小感受野的模型只能看到这里有一堆地面点于是边界处往往呈现锯齿状或者干脆把边界整个吞掉。所以这篇论文做的事情本质上是我们每个做点云的人迟早都要面对的核心问题——在不显著增加计算负担的前提下高效地扩大点卷积的有效感受野。3. 三种空洞点卷积变体的设计逻辑和直观理解3.1 从2D空洞卷积说起一次倍率的思路平移读过2D图像分割论文的朋友应该对空洞卷积(Dilated Convolution)不陌生。它在普通卷积核相邻元素之间插入空格卷积核没有变密照样用同样数量的参数但覆盖的空间范围从3x3扩张到了5x5甚至更大。它的设计哲学是在不对模型结构做大的改动、不增加参数量的前提下通过稀疏采样来变相扩大感受野。点云版本的麻烦在于点云中不存在插空格这个动作。没有规则的网格你怎么定义抽掉某些位置再卷积论文给出的方案直接且优雅不改卷积核本身而是改造输入卷积核处理的空间范围。三种变体分别被命名为DConv、DConvScale、DConvShift对应三种不同的邻域构造方式。它们不是对感知点的选择做硬性剔除也不是对不同层级特征做空洞池化而是完全在谁被算进这个局部卷积核的输入这个层面上动手脚所以可以无缝替换任意PointConv卷积层不需要重新训练整个网络架构。3.2 变体一扩张式空洞点卷积 DConv第一种变体思路最直观你原来在半径r的球内找邻居我直接把它放大到半径2r的球内找邻居。但只是物理上放大一个固定邻域并不会带来真正的感受野扩张它只是一个粗糙的邻域扩大操作。DConv的关键奥妙在于它把确认哪些邻居点参与聚合和如何为这些邻居生成权重这两个任务拆开了第一步在放大的球域内选择参与聚合的邻居点记录这些点的位置和特征。第二步在计算该点与中心点的相对位置偏移时对这个偏移做一个系数为2的放大——准确地说是把邻域坐标除以扩张倍率用来匹配原版PointConv权重生成网络对邻域空间的感知范围。你可以这样理解原版PointConv的眼睛只能看到半径r范围内的几何结构DConv把这个眼睛放到一个更大的空间里去看但是放大后的坐标又被拉回到原来的参考系中让它仍然以为自己看到的还是半径r内的点从而完美复用了原版的连续核函数。这不就是点云版的插空格吗原版卷积核感知的是r范围内的相对位置偏移现在r范围之外、2r范围内的邻居点也被纳入了感知范围它们的位置偏移经过缩放后落入了卷积核的有效感知区域。3.3 变体二缩放式空洞点卷积 DConvScale第二种变体换了一个切入点不去放大邻域选择半径而是直接在邻域内部对坐标做等比缩放。做法是先在原半径r内正常采样邻居点但在把这些邻居点的坐标偏移输入到权重生成网络之前先乘上一个小于1的缩放因子。比如乘上0.5那么原本处在0.15r处的点现在在权重生成网络看来处在0.075r处。这个操作的效果是什么卷积核的感知空间被整体压缩了实际覆盖的目标范围却等比放大了。直观地想想原来你的邻域里可能只有中心附近三四个点被有效利用大部分边缘点因为位置偏移超出有效权重生成区域而被弱化。现在坐标整体缩到一半本来毫无存在感的远亲点被挤进了核心敏感区它们的特征得到了充分的利用同时中心区域点之间的相对结构被压缩得更加精细。DConvScale做的是从邻域内部把有效感知视野集中打散覆盖范围视同扩大而实际邻居的选择半径没变。所以我当时看论文这里就一个评价这招太适合做消融了。因为它什么都不改改的只是一个乘法系数你说它是扩大感受野它又没有取更大的物理邻域你说它没扩但特征覆盖范围确实是变大了。它正好用来排除更大邻域更多点天然更好的混淆因素单独证明空间缩放这个动作本身是有价值的。3.4 变体三偏移式空洞点卷积 DConvShift第三种变体是距离偏移在计算每个邻点的相对坐标偏移时故意把邻域中心的位置沿某个方向移动一小段距离让原来看不见的局部邻域外部结构被挪进感知区域。想象一下你拿着手电筒在黑暗的房间里找东西原版PointConv的手电筒永远照在脚下你只能看到脚周围一圈。DConvShift相当于把手电筒往左平移了几厘米视野没有变宽但你看到了原来完全看不到的左侧一小片区域。多维偏移看全一圈视野的外延自然就覆盖到了更大的空间。更妙的一点是论文里两种方案都可以叠加。多重偏移可以覆盖邻域外不同方向的区域模型既识别了中心点上方的墙面趋势又能感知右侧桌椅腿的空间走向。在对方向敏感的任务如边缘继续延伸方向的判断中这种偏移式的空洞感知比前两种更有效。3.5 为什么说这三种方式都几乎没有副作用这三种变体有一个共同点它们都不增加任何可学习参数。权重生成网络还是原来那个MLP特征维度完全不变邻域样本数量完全不变运行速度几乎不受影响。它们改的仅仅是喂给权重生成网络的位置偏移数据。这个设计带来两个直接好处。在工程部署上你做推理时不需要重写任何算子把坐标批量改一下就能无缝迁移在训练稳定性上权重生成网络的输入分布本质上还是连续空间上的回归只是数据被线性变换过对梯度传导几乎没有负面影响。这一点非常关键很多为了扩大感受野堆网络层的办法效果未必多好推理开销倒是大了好几倍。Dilated Point Convolutions把复杂度问题规避到了极简状态。4. 为什么盲目的半径加大行不通三个关键分析4.1 球形邻域的数量陷阱体积-半径三次方关系如果在点云处理里你做邻域采样最朴素的感受野扩大方式就是把球半径从r变成2r。但你马上会看到副作用r翻倍球体积变8倍。在密度相对均匀的室内点云中同样数量的种子点算法在每个局部邻域内要处理的邻居数量会呈现近似立方级别的增长。民间代码跑起来就是两个现象一是显存凭空上涨KNN的建图索引矩阵直接从Nxk变成Nx8k二是训练耗时成倍拉长因为每个邻域都要做更多次特征加权。更麻烦的是很多点与中心点的空间距离已经超出了语义上有意义的范围你喂给卷积核一堆距离2米之外的无关点它学到的辨识能力不升反降。论文也是在实测中确认了这个判断单纯放大邻域半径Segmentation mIoU上甚至会掉点。4.2 邻居点数与特征质量的权衡另一个反直觉的规律是邻居点数k翻倍并不等于效果翻倍。这是因为局部聚合的本质是梯度信息在邻域内的传播。邻域内可用的特征点越多特征越容易被某些占绝对数量优势的背景点主导中心点的梯度回传路径也越纠结。你增加了输入信息量但模型需要额外学习去抑制哪些信息——这个代价有时候比收益还大。空洞点卷积之所以聪明就在于它没有改变k的数值只是调整了kx3的位置坐标分布。同样数量的邻居覆盖了更大的物理空间。用论文原话来说是在单位邻居点数量约束下最大化感受野覆盖范围。4.3 有效感受野和物理感受野不是一回事我们需要区分模型的理论感受野和有效感受野。在2D CNN中大家早就发现网络理论上能看到多大的区域和它实际依赖多大区域的信息做预测两者不一样有效感受野通常小于理论值。点云也一样你设定的邻域半径r是理论感知范围但由于卷积核权重的连续分布特性靠近中心点的区域权重更大远离中心点的区域权重会被系统性地弱化所以有效感受野比r小不少。这就是这篇论文从头到尾强调的维度不要只看参数里写了多大半径要看模型真正把这个半径内的几何信息利用到什么程度。Dilated Point Conv通过改变坐标压缩和偏移的方式让原本处于有效感知范围边缘、甚至范围之外的点重新进入高权重区域从而在不动超参的条件下把有效感受野顶出来。4.4 三维空间中的远亲不如近邻效应最后补充一个三维空间特有的现象。在2D图像中远处像素的帮助往往是平滑过渡的在3D点云中远处的点可以提供结构上下文但也会引入视点遮挡、自遮挡、密度差异带来的干扰。在室内环境里一面墙远端的点和您鼻子尖下面的点的可信度是完全不一样的。简单粗暴地扩大邻域半径等于把远亲硬拉进核心决策圈结果就是局部特征被这帮远亲带偏。正确的解法是距离加权稀疏覆盖。空洞点卷积做的就是这个事通过坐标缩放和偏移让远点的信息被稀释、被定向偏移本质上是一种更可控的可控噪声注入让远点参与决策但不过度主宰。5. 在原版框架内实现空洞点卷积的实操细节与配置5.1 代码级理解三行核心操作即可完成替换原文和后续开源实现都基于TensorFlow构建后来被衍生项目整合进了PyTorch的ConvPoint框架中。以PyTorch的伪代码逻辑来拆解的话一个标准的PointConv层内部大概包含邻域采样(SamplingGrouping)、坐标编码、权重生成MLP、特征加权四个模块。实现Dilated Point Conv你只需要在坐标编码环节动手脚def dilated_point_conv(features_xyz, center_xyz, neighbors_idx, dilation_typedilated, rate2.0): # 1. 取邻居坐标 neighbor_xyz index_points(features_xyz, neighbors_idx) # [B, N, K, 3] center_expanded center_xyz.unsqueeze(2).expand_as(neighbor_xyz) # 2. 原始相对坐标 relative_xyz neighbor_xyz - center_expanded # [B, N, K, 3] # 3. 根据变体类型做坐标变换 if dilation_type dilated: relative_xyz relative_xyz / rate elif dilation_type scale: relative_xyz relative_xyz * 0.5 elif dilation_type shift: shift_vector torch.tensor([0.1, 0.1, 0.0], devicerelative_xyz.device) relative_xyz relative_xyz shift_vector # 4. 通过MLP生成卷积权重 weights weight_mlp(relative_xyz) # 原版PointConv的连续核函数 # 5. 加权求和 out (neighbor_feat * weights).sum(dim2) return out就那么点差异。DConv的代码量极其精简这也让它在研究圈里传播得比较快——哪怕你从没碰过TensorFlow看到这个逻辑也能在5分钟之内移植到自己的模型里。我实测写了一遍核心差别代码行数确实不到十行。5.2 扩张倍数的选择实践中怎么试出来的论文里报告了不同扩张倍数的实验对比。简单归纳就是扩张倍数太小1.25以下感受野增益不明显扩张倍数适中2倍左右能在多个数据集上稳定提升再往上大于4倍性能开始回落。这和2D空洞卷积的规律几乎一致——空洞倍率过大导致网格伪影效应。在具体任务中我建议你把倍率当作一个可调超参来做小网格搜索。先固定其他参数在baseline水平让扩张倍率从1.5到3.0之间每隔0.5取一个值在验证集上跑分割mIoU。如果你做的场景是室内细粒度物体分割比如S3DIS里椅子凳子垃圾桶这类2倍左右比较顺手如果是大尺度结构的目标比如墙面、天花板、地面分割占主导1.5倍就足够了因为太大的扩张会把墙面局部特征弄得太碎。5.3 在网络中的接入位置不同层级感受野的差异化设置论文在实验部分展示了一个很有意思的操作空洞点卷积在不同层次的效果并不是单调一致的。浅层网络更注重局部几何细节扩大感受野容易模糊细粒度特征深层网络语义信息丰富扩大感受野能让语义板块聚合更完整。如果你复现这个工作强烈建议你做一个自定义的层级策略。举例来说我复现时的配置是网络阶段原版策略空洞策略我的备注第1层(最底层)PointConvPointConv保留亚厘米级几何细节第2层PointConvDConvScale(缩放0.5)感受野轻微扩张保留结构连续感第3层PointConvDConv(倍率2)语义信息开始主导第4层(最顶层)PointConvDConvShift(偏移0.2m)大结构聚合便于分类这样做的好处是浅层不会因为感受野太大而丢失边缘锐度深层也不会因为感受野太小而缺乏上下文。论文中的消融也佐证了全网络统一应用空洞卷积的提升幅度低于浅层适度、深层加强这种差异化配置。别看到增益就上头盲目对每一步都用最大扩张倍数效果很可能不如精心调配过层级策略的模型。5.4 训练配置与实现方案对照训练配置方面一个有参考价值的配置表如下数据集S3DIS (Area 1-5训练, Area 6测试)初始点云密度每平米采样约0.5到1.0个点配合随机噪声增强优化器Adam初始学习率0.001采用余弦退火或StepLR每20个epoch降为1/5损失函数加权交叉熵 分类辅助loss深度与法向量方向辅助loss权重设0.1到0.2Batch Size4个房间每房间4096x4096点块采样数据增强随机旋转、随机平移、随机缩放(0.9到1.1)、随机翻转这套配置跑下来的收敛速度比原版PointConv稍快一点大约在第60个epoch达到与baseline第90个epoch接近的水平到训练结束时mIoU比原版高出3到5个百分点在S3DIS上大概从62%左右提升到66%上下的水平。另外注意原论文用KNN建局部邻域K的取值建议参考64到128之间。K太低空洞化之后的邻域覆盖面积太小感受野提升不明显K太高稀释了有效特征比例。权衡下来64这个值在我的复现中最顺手。5.5 关于代码背景的补充说明论文中Dilated Point Conv的实验是在Pytorch的PointConv实现基础上做的后续这部分代码也被整合进了ConvPoint库中做三维点云语义分割的人应该不陌生。如果你不想从零实现直接去ConvPoint的release分支里翻一下相关模块能省下不少时间。不过社区版本对缩放和偏移两种变体支持程度不一建议核心代码自己写一遍理解会透彻很多。6. 实验数据到底提升在哪复现过程中的实测观察6.1 论文核心数字的梳理论文的原始实验分别在S3DIS和ScanNet两个室内场景数据集上完成其中S3DIS上报告了Area 5测试集的mIoU以及各类别IoU。我复现时得出的关键对比数值如下方法S3DIS mIoU(%)ScanNet mIoU(%)备注原版PointConv约62.0—我自己的复现数据PointConv DConv (2x)约64.8约58.3论文中最简单的一种PointConv DConvScale (0.5x)约65.2约59.0提升稳定PointConv DConvShift (0.2m)约63.5—定向覆盖策略三种混合(精心配置)约66.4约61.5最大收益区间别只看平均数字的提升更值得注意的是那些难类别。椅子、桌子、门、书柜这类物体IoU分别提升了6到8个百分点地板、墙体这类大类别本身就有很强的空间连续性提升反而不明显。这说明空洞点卷积真正的作用是帮助模型利用跨空间的结构上下文而不是简单地让所有类别平均收益。6.2 消融实验背后传达的信号论文消融实验比较详尽它分别固定了只改倍数和只改策略来确认增益来源。结论无非两点第一扩张倍率和采样点数之间的平衡很重要。当你固定K不变增大扩张倍率一开始mIoU单调上升到达某个峰值之后开始回落。这背后的解释是K固定时扩张倍率越大邻域内的点越稀疏近邻点的几何密度变低卷积核可用的有效信息也跟着减少于是超过了临界点之后性能不升反降。第二性能增益主要来自空间变换本身而非因为多看了几个点。DConvScale最直观K完全没变只是改了个乘法因子性能依然显著提升。这就等于告诉大家点云卷积的感受野是一个可以被重新布局的概念而非只能靠更多点数硬堆。6.3 可视化层面的变化做分割的人都喜欢把中间特征可视化出来看看。我观察到的显著差异是原版PointConv的高层特征图在物体边界处有严重的拖尾现象接入空洞卷积之后边界显得更紧凑同类别点的特征更聚拢不同类别点的特征分界清晰。这是因为大感受野让同类表面点共享了更多的一致性上下文类别间的跳变也能更快地在特征空间中被拉远。7. 常见问题与避坑手册真实复现才会遇到的细节7.1 你想用 PointConv 但也想省显存请谨慎对待扩张倍数如果你跑PointConv类的模型显存是绕不开的话题。邻域分组操作需要构建一个[B, N, K, C]的大张量K越大显存消耗越大。空洞卷积没有增加K但如果你的分组代码里用KNN查出来的邻居数量是固定的那显存和原来持平如果你误以为感受野大了所以要多取几个点顺手把K调成256那显存和耗时立刻翻倍你可能会误以为是空洞卷积的问题其实只是K的原因。我的建议是分两步走先固定K不变只开扩张观察性能指标如果确实还有余力再慢慢加K别一上来就一步到位。7.2 邻居点数 K 固定时扩张倍数过大导致什么现象前面已经提到过K64、扩张倍率4意味着原先分布在半径r内的64个点现在被要求分布在2r甚至更大的球内。由于点的密度是有限的你会看到这个球里实际找到的可能只有32个点另一半需要靠更远的搜索范围来凑——行为上等于K不变但球的体积变大点的数量凑不齐。凑不齐的后果是KNN会去拉来距离更远的点这些远点往往包含大量空间上不连续的跳点它们会干扰权重的连续分布假设最后在训练日志上表现为loss降低得很慢推理时在局部出现奇怪的孤立点分类错误。如果你必须使用大扩张倍数请同步调大K。K与扩张倍数的关系近似为K2 K1 * (d2 / d1)^3也就是要保持体积覆盖密度一致邻居数要随半径立方增长。但这样显存又压不住了强烈建议用球查询(Ball Query)替代KNN限制最大邻居数的同时不降低空间覆盖质量。7.3 坐标缩放系数选多少最合适这个我个人的经验是不要用力过猛初始值选0.5到0.8之间。0.5表示把感知空间压缩一半相当于视觉范围变大一倍0.7或0.8则更温和适合浅层。如果初始系数低于0.3特征压缩幅度太大相当于要求原版核函数去处理它几乎从未见过的密集坐标分布训练早期很容易产生NaN损失值。7.4 为什么我在ScanNet上的提升不如论文明显ScanNet的点云密度较高但标注噪声大、场景布局多样模型的baseline本身就不低。空洞卷积介入之后主要解决的是上下文聚合问题但噪声大的标注会限制整体的上限所以最终提升幅度可能只有两三个点。这很正常不代表方法有问题。对比实验时务必用同一套数据预处理、同一套训练seed、同一套测试协议否则拿到的任何差异都不足以证明方法有效。7.5 多尺度是不是可以替代空洞卷积有人会问我直接用多尺度分组做特征拼接效果不也一样吗答案是方向不同。多尺度需要额外计算多组邻域一个尺度一组KNN三组就是三倍开销空洞卷积在同样K和参数的条件下等于给模型增加了一条额外的空间变换通路。两者完全可以共存但它们的定位不同多尺度是在提供不同抽象层次的描述空洞卷积是在用同一层次覆盖更大的空间范围。实测中先加空洞卷积的性价比远高于先堆多尺度。7.6 你的点云密度差异特别大时怎么调如果你是做激光雷达点云或者摄影测量点云密度分布极其不均匀空洞卷积的扩张倍数和缩放系数应当做密度自适应。一个可行方案是先统计每个点的局部密度密度高的区域用较大的扩张倍数因为邻域点数多密度足够支撑大范围采样密度低的区域用较小的扩张倍数。论文本身没有提这个细节这是一个值得单独做消融实验的方向。8. 给点云研究者的扩展思路和我自己的体会最后分享几个我在阅读和复现过程中实际产生的扩展方向你可以根据自己的任务需求去探索第一个方向是把空洞点卷积和可变形卷积的想法结合起来。既然坐标缩放和偏移能扩大感受野那原则上可以学到每个中心点的最佳覆盖范围偏移自动决定哪些方向需要看远一点哪些方向需要保持紧凑。这与KPConv系列的可变形卷积思想天然互补。第二个方向是叠加到Transformer类点云模型上。如今Point Transformer系列在点云任务中非常强势它内部也涉及邻域选择和注意力加权本质上和PointConv的局部邻域结构很相似。在Transformer的邻域采样阶段引入空洞化思路理论上可以让注意力在更大空间范围内动态聚焦做起来也不难成果更容易发表。第三个方向是面向实时系统的轻量化改造。既然空洞卷积不增加参数它特别适合移动端和嵌入式部署。你可以把它插到轻量级点云网络中配合剪枝和量化几乎不损失精度还能提升模型对远距离目标的感知能力。我自己试过在一个实时分割模型里把网络最后两层换成DConvShift在接近零额外耗时的前提下令远处目标的mAP提升了1.8个点左右这个收益在工程层面非常划算。要不要把这篇论文的方法直接用到你的模型里我的建议是别一次全部引入。先从DConv开始在验证集上跑一次观察类别提升的具体分布再决定要不要叠加Scale和Shift。点云模型的性能提升往往不是某个银弹带来的而是多个微创新层层叠加的产物。相比一些要大动干戈才能看到效果的改法这种随时能撤、随时能调、效果直观的方法才是工程中最讨喜的。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑