卷积总结

卷积的作用

图像处理和提取特征

各种类型的卷积
带孔卷积

带孔卷积实现时并不是在卷积核的“孔”里填0,而是在feature map上跳着卷积。
参数rate表示每隔(rate-1)个像素采样
优点:扩大感受野。

分组卷积

顾名思义,则是对输入feature map进行分组,然后每组分别卷积。假设输入feature map的尺寸仍为C∗H∗W,输出feature map的数量为N个,如果设定要分成G个groups,则每组的输入feature map数量为C/G,每组的输出feature map数量为N/G,每个卷积核的尺寸为C/G∗K∗K,卷积核的总数仍为N个,每组的卷积核数量为N/G,卷积核只与其同组的输入map进行卷积,卷积核的总参数量为N∗C/G∗K∗K,可见,总参数量减少为原来的 1/G.

优点:减少参数量

深度可分离卷积

前面讲MobileNet文章已经介绍了。
优点:减少参数量

可变形卷积

可变形卷积的流程为:

  1. 原始图片batch(大小为b h w c),记为U,经过一个普通卷积,卷积填充为same,即输出输入大小不变,对应的输出结果为(b h w 2c),记为V,输出的结果是指原图片batch中每个像素的偏移量(x偏移与y偏移,因此为2c)。
  2. 将U中图片的像素索引值与V相加,得到偏移后的position(即在原始图片U中的坐标值),需要将position值限定为图片大小以内。
    position的大小为(b h w 2c),但position只是一个坐标值,而且还是float类型的,我们需要这些float类型的坐标值获取像素。
  3. 例,取一个坐标值(a,b),将其转换为四个整数,floor(a), ceil(a), floor(b), ceil(b),将这四个整数进行整合,
    得到四对坐标(floor(a),floor(b)), ((floor(a),ceil(b)), ((ceil(a),floor(b)), ((ceil(a),ceil(b))。这四对坐标每个坐标都对应U
    中的一个像素值,而我们需要得到(a,b)的像素值,这里采用双线性差值的方式计算
    (一方面得到的像素准确,另一方面可以进行反向传播)。
  4. 在得到position的所有像素后,即得到了一个新图片M,将这个新图片M作为输入数据输入到别的层中,如普通卷积。

优点:能更好地适应网络感兴趣的区域,提取更好的特征

3D卷积

用于视频的卷积。
输入:batchsize channels depth width height. depth表示帧数
卷积核size:width height depth.
举例:

  • 输入形状是(7,60,40),7表示输入的图像帧数,60和40分别是宽和高。
  • 卷积核size是(7,7,3),3表示每次过滤器处理的图像帧数,7和7分别是卷积核宽和高。
  • 输出形状是(5,54,34),5表示输出的图像帧数,54和34分别是宽和高。

pytorch实现
torch.nn.Conv3d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True)

### 卷积神经网络及卷积算法综述 #### 什么是卷积神经网络? 卷积神经网络(Convolutional Neural Network, CNN)是一种专门用于处理具有网格状拓扑结构的数据的深度学习模型,尤其擅长于图像数据的分析。其核心思想来源于生物学中的视觉皮层研究,通过模拟生物神经系统的工作机制实现对输入数据的有效特征提取[^1]。 CNN 的主要组成部分包括卷积层、池化层以及全连接层。其中,卷积层负责从原始数据中提取局部特征;池化层则通过对空间维度降采样减少计算复杂度并增强模型鲁棒性;最终,经过多层抽象后的特征被送入全连接层完成特定任务,如分类或回归[^3]。 #### 卷积操作的核心概念 卷积操作是 CNN 中最为重要的运算之一,它利用滑动窗口的方式依次扫描整个输入矩阵并与滤波器进行逐元素乘加得到输出特征图。这种设计使得网络能够自动捕捉到不同尺度下的模式信息而不依赖人工定义特征[^4]。 ```python import torch.nn as nn class SimpleCNN(nn.Module): def __init__(self): super(SimpleCNN, self).__init__() self.conv_layer = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3) def forward(self, x): return self.conv_layer(x) ``` 上述代码展示了一个简单的二维卷积层实例,`in_channels` 表示输入通道数(对于 RGB 图像通常为 3),`out_channels` 定义了该层产生的特征映射数量,而 `kernel_size` 则指定了过滤器大小。 #### 应用领域与发展现状 目前基于 CNN 技术已经发展出了众多成熟的解决方案,在目标检测方面有 Faster R-CNN 和 YOLO 系列等高效框架;针对语义分割任务 Mask R-CNN 成为了标杆级方法;另外还有 U-Net 架构广泛应用于医学影像分析等领域。除此之外,时间序列建模也可以借助一维卷积有效捕获长期依赖关系,这在自然语言处理场景下同样取得了不错的效果[^2]。 值得注意的是,尽管当前主流趋势倾向于更深层次架构的设计探索,但如何平衡参数规模与实际性能仍然是未来值得深入探讨的方向之一。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值