Large Kernel Matters—— Improve Semantic Segmentation by Global Convolutional Network

提出了一种基于全局卷积网络(GCN)的方法,旨在同时解决语义分割中的分类和定位问题。该方法利用大内核进行密集连接,并通过残差边界细化增强目标边界。在PASCAL VOC 2012和Cityscapes数据集上进行了验证,分别达到了82.2%和76.9%的准确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The large kernel (and effective receptive field) plays an important role when we have to perform the classification and localization tasks simultaneously.(当我们必须同时执行分类和定位任务时,大内核(和有效的感知野)起着重要作用)
we propose a Global Convolutional Network to address both the classification and localization issues for the semantic segmentation.(提出GCN来解决语义分割的分类和定位问题)
We also suggest a residual-based boundary refinement to further refine the object boundaries.(基于残差的边界细化以进一步细化目标边界)
82.2% (vs 80.2%) on PASCAL VOC 2012 dataset and 76.9% (vs 71.8%) on Cityscapes dataset.

  1. 引言
    For the classification task, the models are required to be invariant to various transformations like translation and rotation. But for the localization task, models should be transformation-sensitive

  2. 方法
    First from the localization view, the structure must be fully-convolutional without any fully-connected layer or global pooling layer that used by many classification networks, since the latter will discard localization information. Second from the classification view, motivated by the densely-connected structure of classification models, the kernel size of the convolutional structure should be as large as possible.
    在这里插入图片描述GCN module employs a combination of 1 x k + k x 1 and k x 1 + 1 x k convolutions, which enables densely connections within a large k x k region in the feature map,we do not use any nonlinearity after convolution layers.

    we models the boundary alignment as a residual structure.S = S + R(S),where S is
    the coarse score map and R() is the residual branch.

3. 实验
We evaluate our approach on the standard benchmark PASCAL VOC 2012 [11, 10] and Cityscapes [8]. PASCAL VOC 2012 has 1464 images for training, 1449 images for validation and 1456 images for testing, which belongs to 20 object classes along with one background class. We also use the Semantic Boundaries Dataset [13] as auxiliary dataset, resulting in 10,582 images for training. We choose the state-of-the-art network ResNet 152 [14] (pretrained on ImageNet [28]) as our base model for fine tuning. During the training time, we use standard SGD [20] with batch size 1, momentum 0.99 and weight decay 0.0005 . Data augmentations like mean subtraction and horizontal flip are also applied in training.

we pad each input image into 512 x 512 so that the top-most feature map is 16 x 16.

在这里插入图片描述
Only odd size are used just to avoid alignment error.(k值)(k值的范围可根据最后一个特征图的大小来定)
虽然GCN的网络结构增加了参数量,但是通过与实验C进行对比证明了性能的提升并不是因为参数量的增加。
GCN模型主要提高了内部区域的准确性,而边界区域的影响较小(大型物体中心的像素+GCN≈“纯”分类问题)

### 图卷积网络(GCN)在点云语义分割中的方法和应用 #### 方法概述 点云语义分割是一种重要的计算机视觉任务,其目标是对三维点云数据中的每个点分配相应的类别标签。随着深度学习的发展,基于图卷积神经网络(GCN)的方法逐渐成为该领域的重要研究方向之一[^2]。 具体而言,图卷积网络能够有效地处理不规则的图结构数据,而点云本质上可以被建模为一种图结构,其中节点表示点云中的点,边则可以通过某种距离度量来定义相邻关系。因此,GCN 被广泛应用于点云语义分割中,用于提取局部特征并捕捉全局上下文信息[^1]。 #### 基于图卷积的具体实现方式 图卷积网络的核心在于如何设计有效的卷积操作以适应图结构的数据。目前主要存在两种类型的图卷积:基于谱的图卷积(Spectral-based GCN)和基于空间的图卷积(Spatial-based GCN)。这两种方法各有特点: - **基于谱的图卷积** 这种方法的主要思想是通过图信号处理理论将卷积操作从空间域映射到频谱域。例如,在文献 [74] 中提到的技术,利用拉普拉斯矩阵定义图的傅里叶变换,并在此基础上完成卷积运算后再返回空间域[^3]。然而,由于计算复杂性和对图拓扑依赖性的限制,这种方法通常较少直接应用于大规模点云场景。 - **基于空间的图卷积** 更加直观的方式是在空间域上直接定义邻域聚合策略。对于点云来说,这通常涉及构造 k-近邻图或者球形区域内的邻居集合,然后通过对这些邻居的信息进行聚合来更新当前节点的状态。这种形式更灵活且易于扩展至动态变化的几何形状之中。 另外值得注意的是某些先进模型还引入了注意力机制进一步增强表达能力,比如 GACNet 结合了自注意模块与传统 GCN 层共同作用从而更好地关注重要部分及其相互联系。 #### 应用实例分析 一篇来自 CVPR 的经典工作《Large Kernel Matters —— Improve Semantic Segmentation by Global Convolutional Network》探讨了大核卷积的重要性以及它怎样改进标准 CNN 架构下的性能表现[^4]。尽管此篇论文重点讨论二维图像上的全局卷积网络(GCN),但其所提出的理念同样适用于三维点云环境——即采用更大范围的感受野有助于捕获更加丰富的背景信息进而提升最终预测精度。 综上所述,无论是理论上还是实践层面来看,借助恰当配置后的 Graph Convolution Networks 来解决 Point Clouds Semantics Segmentation Problems 都展现出了巨大潜力与发展前景。 ```python import torch from torch_geometric.nn import GCNConv class SimpleGCN(torch.nn.Module): def __init__(self, input_dim, hidden_dim, output_dim): super(SimpleGCN, self).__init__() self.conv1 = GCNConv(input_dim, hidden_dim) self.conv2 = GCNConv(hidden_dim, output_dim) def forward(self, data): x, edge_index = data.x, data.edge_index # First convolution layer with ReLU activation function. x = torch.relu(self.conv1(x, edge_index)) # Second convolution layer without any non-linearity as this is the final classification step. x = self.conv2(x, edge_index) return x ``` 上述代码片段展示了一个简单的两层 GCN 实现例子,可用于初步理解如何搭建基础框架来进行实验验证等工作流程的一部分.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值