ASPP(Atrous Spatial Pyramid Pooling)

这篇具有很好参考价值的文章主要介绍了ASPP(Atrous Spatial Pyramid Pooling)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

受到SPP的启发,语义分割模型DeepLabv2中提出了ASPP模块,该模块使用具有不同采样率的多个并行空洞卷积层。为每个采样率提取的特征在单独的分支中进一步处理,并融合以生成最终结果。该模块通过不同的空洞rate构建不同感受野的卷积核,用来获取多尺度物体信息,具体结构如下图所示:
ASPP(Atrous Spatial Pyramid Pooling)
ASPP是由空洞卷积(Atrous/Dilated Convolution)组成。如果想要对图片提取的特征具有较大的感受野,并且又想让特征图的分辨率不下降太多(分辨率损失太多会丢失许多关于图像边界的细节信息),这两个是矛盾的,想要获取较大感受野需要用较大的卷积核或池化时采用较大的strid,对于前者计算量太大,后者会损失分辨率。而空洞卷积就是用来解决这个矛盾的。即可让其获得较大感受野,又可让分辨率不损失太多。空洞卷积如下图:
ASPP(Atrous Spatial Pyramid Pooling)
(a)是rate=1的空洞卷积,卷积核的感受野为3×3,其实就是普通的卷积。
(b)是rate=2的空洞卷积,卷积核的感受野为7x7
(c)是rate=4的空洞卷积,卷积核的感受野为15x15空洞卷积感受野的计算
空洞卷积感受野的大小分两种情况:
(1)正常的空洞卷积:
若空洞卷积率为dilate rate
则感受野尺寸= ( d i l a t e r a t e − 1 ) ∗ ( k − 1 ) + k (dilate rate-1)(k-1)+k(dilaterate−1)∗(k−1)+k ( 其中 k为卷积核大小)
(2)padding的空洞卷积:
若空洞卷积率为dilate rate
则感受野尺寸=2 ( d i l a t e r a t e − 1 ) ∗ ( k − 1 ) + k 2(dilate rate-1)
(k-1)+k2(dilaterate−1)∗(k−1)+k ( 其中 k为卷积核大小)
ASPP 代码:文章来源地址https://www.toymoban.com/news/detail-467651.html

class ASPP(nn.Module):
    def __init__(self, in_channel=512, depth=256):
        super(ASPP,self).__init__()
        # global average pooling : init nn.AdaptiveAvgPool2d ;also forward torch.mean(,,keep_dim=True)
        self.mean = nn.AdaptiveAvgPool2d((1, 1))
        self.conv = nn.Conv2d(in_channel, depth, 1, 1)
        # k=1 s=1 no pad
        self.atrous_block1 = nn.Conv2d(in_channel, depth, 1, 1)
        self.atrous_block6 = nn.Conv2d(in_channel, depth, 3, 1, padding=6, dilation=6)
        self.atrous_block12 = nn.Conv2d(in_channel, depth, 3, 1, padding=12, dilation=12)
        self.atrous_block18 = nn.Conv2d(in_channel, depth, 3, 1, padding=18, dilation=18)
 
        self.conv_1x1_output = nn.Conv2d(depth * 5, depth, 1, 1)
 
    def forward(self, x):
        size = x.shape[2:]
 
        image_features = self.mean(x)
        image_features = self.conv(image_features)
        image_features = F.upsample(image_features, size=size, mode='bilinear')
 
        atrous_block1 = self.atrous_block1(x)
 
        atrous_block6 = self.atrous_block6(x)
 
        atrous_block12 = self.atrous_block12(x)
 
        atrous_block18 = self.atrous_block18(x)
 
        net = self.conv_1x1_output(torch.cat([image_features, atrous_block1, atrous_block6,
                                              atrous_block12, atrous_block18], dim=1))
        return net


到了这里,关于ASPP(Atrous Spatial Pyramid Pooling)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第一章 SegFormer(语义分割篇)——SegFormer: 简单高效的基于Transformer的语义分割设计

    原文:《SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers》 引用:Xie E, Wang W, Yu Z, et al. SegFormer: Simple and efficient design for semantic segmentation with transformers[J]. Advances in Neural Information Processing Systems, 2021, 34: 12077-12090. 原文链接: https://proceedings.neurips.cc/paper/2021/file/6

    2024年02月16日
    浏览(52)
  • 复现PointNet++(语义分割网络):Windows + PyTorch + S3DIS语义分割 + 代码

    Windows 10 GPU RTX 3090 + CUDA 11.1 + cudnn 8.9.6 Python 3.9 Torch 1.9.1 + cu111 所用的原始代码:https://github.com/yanx27/Pointnet_Pointnet2_pytorch Stanford3dDataset_v1.2_Aligned_Version 分享给有需要的人,代码质量勿喷。 对源代码进行了简化和注释。 分割结果保存成txt,或者利用 laspy 生成点云。 别问为啥在

    2024年01月21日
    浏览(44)
  • 语义分割系列26-VIT+SETR——Transformer结构如何在语义分割中大放异彩

    SETR:《Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspectivewith Transformers》 重新思考语义分割范式,使用Transformer实现语义分割。 论文链接:SETR VIT:《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》 首次提出使用Transformer进行图像分类。 至于为什么要在介绍

    2024年02月07日
    浏览(38)
  • 憨批的语义分割重制版11——Keras 搭建自己的HRNetV2语义分割平台

    最近学了一下HRnet,代码真的好难看懂,还只有Pytorch版本的,Keras复现很有难度,作者写的逻辑很厉害,只能慢慢攻破啦! 传统的卷积神经网络模型是自上而下不断进行特征提取的,如VGG、Mobilenet、Resnet系列等,VGG网络中存在5个步长为(2, 2)最大池化,Mobilenet网络中存在5个步

    2023年04月21日
    浏览(52)
  • 计算机视觉基础(11)——语义分割和实例分割

    在这节课,我们将学习 语义分割和实例分割 。在语义分割中,我们需要重点掌握语义分割的 概念、常用数据集、评价指标(IoU)以及经典的语义分割方法(Deeplab系列) ;在实例分割中,需要知道实力分割可以近似看为“ 目标检测+语义分割 ”,需要知道 Mask R-CNN方法的计算

    2024年01月23日
    浏览(69)
  • 语义分割准确率计算

    目录 pytorch版 pytorch准确率,miou: sklearn版

    2024年02月06日
    浏览(57)
  • 【SeAFusion:语义感知:分割+融合】

    (高级视觉任务循环中的图像融合:一种语义感知的实时红外与可见光图像融合网络) 红外与可见光图像融合的目的是合成一幅融合图像,该图像不仅包含显著的目标和丰富的纹理细节,而且有利于高级视觉任务。然而,现有的融合算法片面地关注融合图像的视觉质量和统计

    2024年02月13日
    浏览(51)
  • 语义分割基础讲解

    语义分割 (semantic segmentation):可以理解为一个分类任务, 对图片上每个像素进行分类 。经典网络: FCN 实例分割 (Instance segmentation): 相比于语义分割对每个像素进行分类,比如所有飞机位置都用同一个颜色表示。但在 实例分割 任务中,分割的 结果 会 更加精细 些。针对同 一个

    2024年02月06日
    浏览(28)
  • 语义分割简单介绍

    语义分割是计算机视觉领域的一种图像分割技术,其目标是将一张图像中的每个像素分配给预定义的类别。与传统的图像分割技术不同,语义分割不仅仅将图像分成若干个区域,而是对每个像素进行分类,从而能够获得更加精细的图像分割结果。它在许多领域中都有广泛的应

    2024年02月07日
    浏览(34)
  • 语义分割学习篇

    part1 什么是语义分割? 语义分割使图像分类任务的一种,实际上是对图片中每个像素进行分类,将相同类别的像素聚在一起从而呈现出分割的效果。 主要应用于 无人驾驶 (以像素粒度感知周围环境)与 医疗影像 领域(以像素粒度定位病灶区域) 当物体存在遮挡时,语义分

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包