当前位置: 首页 > article >正文

论文阅读《LargeKernel3D: Scaling up Kernels in 3D Sparse CNNs》

论文地址:https://arxiv.org/pdf/2206.10555.pdf
源码地址:https://github.com/dvlab-research/LargeKernel3D


前言

3D 大核 CNN 设计难点主要分为两个方面:

  • 模型计算效率: 增大3维卷积核时,参数量和计算负担的增长速度比 2D CNN 快得多。如,卷积核从 3 × 3 × 3 3×3×3 3×3×3 增加为 7 × 7 × 7 7×7×7 7×7×7 时,模型参数量剧增;
  • 模型参数优化: 3D数据集合数据稀缺,且点云数据在空间上为稀疏形式,导致在训练过程中大卷积核模型的参数得不到足够寻优而造成过拟合。

概述

  本文针对 3D 卷积过程中深度分离卷积与大卷积核卷积难以有效应用的难题,提出了空间分区卷积与与适用于3D卷积过程的大卷积核卷积方式,通过在空间上相邻的位置之间共享权重来将大卷积核重新映射为小卷积核,与普通大卷积核相比,该方法的延迟更短,而且空间维度之间的权重共享可以克服过拟合问题,实验数据表明该方法在多个下游任务中有较好的性能表现,它在 ScanNetv2 语义分割任务上实现了 72.8% 的mIOU,在 NDS nuScenes 目标检测基准上达到了 73.9% 的 mIoU,在 nuScenes LIDAR 排行榜上排名第一。通过简单的多模式融合,性能进一步提升至 74.2% NDS。


模型架构

在这里插入图片描述
  给定通道为 c i n c_{in} cin 的输入特征 { x p ∈ P } \{\mathbf{x}_p\in P\} {xpP},使用一个卷积核为 w ∈ R ∣ K ∣ × c i n × c o u t w\in \mathbb{R}^{|K|\times c_{in} \times c_{out}} wRK×cin×cout 进行卷积操作, 不妨设卷积核大小为3, ∣ K ∣ = 27 |K|=27 K=27, 则有:
y p ˉ = ∑ k ∈ K w k ⋅ x p ˉ + k (1) \mathrm{y}_{\bar{p}}=\sum_{k \in K} \mathrm{w}_{k} \cdot \mathrm{x}_{\bar{p}+k}\tag{1} ypˉ=kKwkxpˉ+k(1)
其中 k k k 为 3D 空间中到 p ˉ \bar{p} pˉ 的偏置距离, p ˉ + k \bar{p}+k pˉ+k p ˉ \bar{p} pˉ 点邻域中离散的位置。

Spatial-wise Partition Convolution

  标准卷积核可以视为一个 3D 矩阵,它由输入通道 C i n C_{in} Cin、输出通道 C o u t C_{out} Cout 和空间卷积核维度 ∣ K ∣ |K| K 组成。取卷积核大小为 k k k,2D 卷积核维度的维度 ∣ K ∣ = k × k |K|=k×k K=k×k ,3D 卷积的卷积核为 k × k × k k×k×k k×k×k。深度分离卷积沿着通道维度共享权重,其中组数等于输入通道数、点卷积的卷积核大小为1。
  本文提出的3D 大卷积核空间卷积在空间维度 K K K 而非通道维度上进行权值共享。与 SGC 不同,后者根据输入特征来划分空间组,而本文的方法在邻近的空间上共享权值来将原始大卷积核从 7 × 7 7\times 7 7×7 分解为 3 × 3 3\times 3 3×3。在推理的过程中使用小卷积核层,并将其特征分配区域扩大到大卷积核范围,由于权值共享操作,可以大大节省了卷积过程中的乘法计算,从343次计算降低到27次。如图所示:
在这里插入图片描述

Kernel-wise Position Encoding

  针对卷积过程中卷积核权值共享引起的局部细节模糊问题,提出了 Kernel-wise 位置编码,该方法通过将相对位置的信息添加到输入特征中来解决共享权重引起的位置不敏感问题。首先初始化位置权重 e ∈ R K × c i n e\in \mathbb{R}^{K\times c_{in}} eRK×cin,在卷积过程中让输入特征根据位置信息权重进行加权求和:
y p ˉ = ∑ k ∈ K w k ⋅ ( x p ˉ + k + e k ) . (2) \mathrm{y}_{\bar{p}}=\sum_{k \in K} \mathrm{w}_{k} \cdot\left(\mathrm{x}_{\bar{p}+k}+\mathrm{e}_{k}\right) .\tag{2} ypˉ=kKwk(xpˉ+k+ek).(2)


实验结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


http://www.kler.cn/a/7065.html

相关文章:

  • 在 CentOS 7 上安装 MinIO 的步骤
  • Java多线程回顾总结
  • 在 Windows 11 中使用 MuMu 模拟器 12 国际版配置代理
  • Spark分布式计算中Shuffle Read 和 Shuffle Write的职责和区别
  • 【ASR技术】WhisperX安装使用
  • 第 14 章 -Go语言 错误处理
  • PHP防止站外表单跨站提交的几种办法详解
  • std::invoke()不支持重载函数
  • 【Linux】理解Linux中硬链接和软链接
  • 蓝桥杯真题2021c++省A题解
  • Vue3+vite2 博客前端开发
  • 【Verilog基础】二进制比较器
  • 一文讲清深力科工业与能源行业首选大电流 600V HVIC 高低边驱动产品SLM21814CJ-DG代替UCC27714DR 特性简述
  • 并发编程(十)-ScheduledThreadPoolExecutor源码分析
  • 代码随想录Day44
  • 蓝桥杯模板题目
  • 企业电子招投标采购系统——功能模块功能描述+数字化采购管理 采购招投标
  • 30 个常用 JavaScript 知识点总结
  • chatgpt大模型赋能人形机器人之我见
  • MySQL主从复制之多主多从部署流程—2023.04
  • ORACLE数据库 定时全量备份
  • 使用树状图可视化聚类
  • 48掌握私有云平台 OpenStack 的基本服务和使用方法,包括 Nova、Glance
  • 使用uniapp连接mqtt时,遇到了无限重连如何解决
  • Python创建虚拟环境(virtualenv和venv)
  • 【Linux:程序地址空间--原来操作系统也喜欢画大饼】