ECCV2020语义分割——Searching Efficient 3D Architectures with Sparse Point-Voxel Convolution
Efficiently Searching for 3D Structure Designs Utilizing Sparse Point-Voxel Convolution
-
- (一)动机 Motivation
- (二)创新 Innovation
- (三)SPVConv: Designing Effective 3D Modules
-
-
- 3.1 Point-Voxel Convolution: Coarse Voxelization
-
- 3.2 Sparse Convolution: Aggressive Downsampling
- 3.3 Solution: Sparse Point-Voxel Convolution
(四)网络架构:研究高效率三维配置
* * *
第四节 网络架构框架
*
第五节 训练范式
*
第六节 搜索过程策略
* (五)实验 Experiments
* (六)总结 Conclusion
(一)动机 Motivation
- 基于点的方法大部分时间会将90%以上的运行时用于构建不规则数据结构而非实际特征提取。
- 基于体素的方法通常会经历严重的信息损失:密集型体素由于内存限制难以达到足够的分辨率;稀疏型体素则需通过下采样来扩展其捕捉范围。在低分辨率场景(如图1所示)中,“许多点或小型物体可能被整合成单一网格单元”,这使得辨识难度增加。
在此类硬件条件下(即计算资源有限且图像分辨率较低),现有的3D模块的有效性受到影响。
(二)创新 Innovation
- 开发了一种轻量级的稀疏点体素卷积模块(SPVConv),该模块通过搭配高分辨率点分支为普通的稀疏卷积提供解决方案,在受限的硬件资源下显著提升了小物体检测性能。
- 本研究首次提出了一种适用于复杂3D场景理解的AutoML框架(3DNAS)。该框架在受限的计算资源下实现了最优级别的三维模型构建。
- 实验结果表明,在SemanticKITTI排行榜上所提出的SPVNAS模型首次实现 semantic segmentation 任务的最佳成绩,并且较MinkowskiNet算法实现了更高的计算效率提升:具体而言,在速度方面提升了约65%,准确率提升约45%。
- 将该方法应用于3D目标检测任务后,在KITTI数据集上实现了相较于现有单阶段检测基准的重要性能提升。
(三)SPVConv: Designing Effective 3D Modules
首先分析Point-Voxel卷积和稀疏卷积,并分析它们的瓶颈。

问题: 当内存受限时,这些方法都会导致信息丢失现象(由于粗心处理或过激的数据压缩所引起)。
因此,论文引入了稀疏点体素卷积(SPVConv),以有效处理大型3D场景(图2所示)。

3.1 Point-Voxel Convolution: Coarse Voxelization

- PVCNN(基于Point-Voxel卷积)在单个GPU(具有12 GB内存)支持的最大体素数量为1283个体素。
- 在这种较大的场景下(大小为100m×100m×10m),每个体素网格将对应一个较大的区域(大小为0.8m×0.8m×0.1m)。
- 在这种情况下小实例(例如人行道上的行人)仅限于几个体素网格的位置(如图所示)。
- 从这些方面来看PVCNN基本上无法从基于体素的分支中提取出有效的特征从而导致其性能相对较低。(如表所示)
- 或者我们可以将大型3D场景进行分块处理以保证每个滑动窗口的比例较小。为了保留细粒度的信息即要求每个体素大小小于等于0.05米则需要对其中的244个滑动窗口逐一应用PVCNN算法处理一个单独的场景需要花费约35秒这对于大多数实时应用而言尤其是自动驾驶系统而言显然是难以接受的。
3.2 Sparse Convolution: Aggressive Downsampling
体积卷积一直被公认为效率低劣,并难以扩展应用范围。近期研究者们开发出了一种新型稀疏卷积技术,在忽略未被激活的空间区域的同时显著降低了内存消耗。
第一步是识别输入层与输出层之间的全部连接路径(即内核映射)。接下来,在此内核图上执行卷积运算。为了维持激活的稀疏性特征,在计算过程中仅针对属于输入范围内的输出单元进行计算。这样做的结果是显著提升了稀疏卷积在体积数据上的性能。
然而,在受限于计算资源的情况下

3.3 Solution: Sparse Point-Voxel Convolution

针对这两个模块的局限性进行了改进,在图2中进行了展示
- 采用基于点的分支策略,始终维持着高分辨率的表现,
- 通过采用基于稀疏体素的分支结构,在不同尺寸的空间范围内应用稀疏卷积。
两个分支机构借助于稀疏体素化与devoxelization技术采用通信技术后产生的成本可视为零

论文使用GPU哈希表来加速稀疏体素化和devoxelization。
- 首先,在稀疏体素化张量S中建立一个哈希表来记录所有激活点。
- 然后,在遍历T中的每一个点时, 通过其体素化坐标作为查询键来访问稀疏体素化张量中的对应索引位置。
- 在哈希表上进行查找操作的时间复杂度为常数阶O(1), 因此整个查询过程的时间复杂度由原来的O(mn)优化至O(m + n)。
Feature Aggregation.
- 通过一系列残差网络的结合架构对稀疏体素化张量进行领域特征的整合。
- 采用与稀疏体素化的相同哈希表机制,在GPU上实现了卷积运算中内核映射过程的并行化。
Sparse Devoxelization.
- 通过融合特征(采用稀疏张量的方式),将其还原为点基表示形式以便实现来自两个分支信息的融合。
- 偏好采用三线性插值方法而非简单的最近邻插值方法,并对每个点的特征与其8个相邻体素网格进行插值计算。
Point Transformation and Feature Fusion.
- 在基于低分辨率的分支中, 对每个点分别应用MLP进行特征提取.
- 然后将两个分支输出相加融合, 从而整合补充信息.
- 相较于普通稀疏卷积, MLP层虽然计算开销较小, 却在信息传递中增添了关键细节(如图5所示).

(四)网络 3D-NAS: Searching Efficient 3D Architectures
即便采用了该模块,在构建高效的神经网络时仍面临诸多挑战。为了实现高效性与性能平衡,在架构优化方面仍需付出努力,在每一层的设计中需要综合考量通道数量、内核尺寸等因素,并结合实际应用中的各种限制条件如延迟、能耗及精度要求进行精准调优。因此提出了三维神经架构搜索框架(3D-NAS),该框架能够自动生成高效且适合不同场景的应用级三维模型(如图3所示)。

在搜索空间中融合了细粒度通道数量与弹性网络深度。然而该系统不具备处理不同尺寸内核的能力。
4.1 Design Space
Fine-grained Channel Numbers.
计算成本随通道数量的增长呈二次方关系上升。这表明,在优化网络性能时应特别关注信道号的选择
- 现有的神经体系结构框架[6]仅支持粗粒度的通道数选择:例如,在少数几个选项中搜索ResNet / MobileNet块的扩展率。
- 在这种情况下,只能更改块的中间通道数。而输入和输出通道数将保持不变。
- 注意到这种粗粒度的选择限制了搜索空间的可能性。因此, 建议允许从多个选项中选择所有可能的信道数目以扩大搜索范围。
- 这种细粒度的选择显著地提高了每个块的可能性数量: 例如, 在使用两个连续卷积的情况下,默认仅考虑2-3个选项已被提升至O(n^2)的数量级。
Elastic Network Depths.
在构建设计空间时支持不同深度的网络结构。对于3D卷积神经网络(3D CNN),单纯减少通道数量无法显著提升测量加速效果,在这种情况下表现与基于二维卷积神经网络(2D CNN)存在显著差异
例如,在MinkowskiNet中通过减少通道数量4倍和8倍的操作后发现, MAC的数量分别降至7.5 G和1.9 G。然而,尽管MAC的数量大幅缩减,但在GPU上测试所得的延迟结果却相差不大:分别为105 ms和96 ms(均在单个GTX1080Ti GPU上测得)。这表明,即便MAC的数量较少,仅通过缩减通道数量也无法显著提升模型性能:这是因为3D模块通常会面临更多的内存限制。
MAC的数量与通道数呈二次方程关系而内存则呈线性递减特性因此论文采用弹性网络深度整合到设计空间中以实现删除计算量小但存储开销大的层并将其合并至相邻层的方法
Small Kernel Matters.
该网络架构通常将内核尺寸嵌入至二维卷积(2D)的空间探索范围内。
具体而言,在GPU运算环境中,
由单一较大尺寸内核构成的操作往往能够较优于由较小尺寸内核组成的多层操作。
值得注意的是,
三维卷积(3D)架构并不遵循这一规律。
- 从计算效率的角度来看,在使用5×5尺寸的二维卷积操作时所需的MAC数量仅为使用两个独立的小型二维卷积(各1.4 MAC)时的一半左右。
- 相较之下,在密集体素网格下应用单个5×5×5尺寸的三维卷积操作所需计算资源将比使用两个独立的小型三维卷积(各3×3×3尺寸)多出约2.3倍。
- 进一步分析表明,在处理三维数据时维度扩展带来的额外计算开销会随着滤波器尺寸的增长呈显著增加。
- 其中k代表滤波器尺寸参数而n代表参与运算的空间点数量。
基于这些原因,《该论文》采用了固定大小为3的设计方案来处理卷积操作,并禁止在搜索空间中修改卷积核尺寸这一关键参数。即便卷积核尺寸较小,在《该网络架构》中仍可通过调节网络深度来实现较大的捕获范围,并可获得与直接修改卷积尺寸相当的效果
4.2 Training Paradigm
在细致的网络结构设计空间中面对如此复杂的搜索过程则充满困难由于无法逐个训练所有采样点的候选网络
- 论文整合所有候选网络到一个单一的超级网络中,并完成一次训练后即可直接提取这些超级网络被继承的所有权重。
- 这样一来,总训练成本就可以从O(n)降低为O(1),其中n表示候选网络的数量。
Uniform Sampling.
在每次训练迭代中,从超级网络中随机采样一个候选网络:
- 随机确定各层通道数量后
确定各阶段网络深度设置
即所使用的模块数量 - 在训练过程中可选备选模型数量相对有限
因此在不同GPU上取样不同模型并逐批次计算平均梯度
以便能取样更多模型以增强搜索效率 - 由于三维数据集通常仅包含较少数量用于训练的数据样本
在SemanticKITTI中是20,000个样本
在ImageNet上则是1,000,000个样本
Weight Sharing.
因为候选网络数量庞大,
因而每个候选人只会在一部分项目上进行优化。
然而仅依赖均匀采样无法充分训练所有候选人(即达到从零开始训练的水平)。
为了解决这个问题,
引入权重共享机制,
这样即使不进行采样,
每个候选人也能在每次迭代中得到更新。
- 具体而言,在给定每个卷积层的输入通道数量 Cin 和输出通道数量 Cout 的情况下,在权重张量中选取前 Cin 个和前 Cout 个通道即可完成卷积操作。
- 针对每个批次归一化层而言,在权重张量中截取前 c 个通道来实现归一化操作。
- 最终,在处理每个阶段时会保留前 d 层,并非对这些层进行随机采样选择。
- 这保证了每一阶段的所有层都会与该阶段内的相同深度索引相对应。


4.3 Search Algorithm
经过充分训练的超级网络可以通过进化架构搜索机制来进行优化,在特定受限条件下寻求最优架构。
Resource Constraints.
以MACs的数量作为资源限制。对于3DCNNs而言,难以仅凭输入规模和网络结构推断其MAC数量:
例如,在活动突触上完成计算的稀疏卷积;由此可知,其运算结果受输入的稀疏模式影响。
为了解决该问题,在此之前需先估算每个卷积层在整个数据集中的平均核映射规模;随后依据这些统计信息就可以计算MAC的数量。
Evolutionary Search.
该研究采用演化算法自动优化架构设计。通过随机抽样方法获取n个候选网络作为初始种群。
- 在每次迭代期间(generation),计算种群(population)内所有候选网络(candidate network)的表现指标(performance metric),并选出表现最优秀的k个个体(individuals)。
- 然后通过突变(mutation)和交叉(crossover)操作生成新的种群。
- 在突变操作中,在前k个优秀个体(top-k individuals)中随机选择一个样本,并以预先设定的概率对其实现结构参数(structural parameters)的修改(modify),例如信道数量、网络深度等。
- 在交叉操作中,在前k个优秀个体(top-k individuals)中随机选择两个样本作为父本体(parent individuals),并通过随机融合的方式生成一个新的子代体。
- 最终经过多次迭代后,在整个种群内找到最优解。
- 在整个进化过程(evolutionary process)进行下去时,请确保所有候选体都始终满足给定资源约束条件;当检测到某个体超出资源限制时,则对该体进行重新采样处理直到符合要求。
(五)实验 Experiments
- 3D语义分割
- 3D目标检测
- on a single GTX1080Ti GPU







(六)总结 Conclusion
- 本研究提出了稀疏点体素卷积这一轻量级3D模块,并专门用于小物体识别。
- 基于SPVConv构建的SPVCNN有效地平衡了稀疏卷积的高分辨率表现与点体素卷积的扩展性问题。
- 本研究引入了创新性的3D-NAS框架作为首个可应用于复杂3D场景的理解模型搜索平台,并显著提升了SPVCNN的工作效率与性能水平。
- 通过大量实验验证,在室外复杂三维场景基准测试中所开发出的SPVNAS模型不仅具有极高的重量轻度、快速响应能力以及强大的功能集成度。
