卷积总结

卷积的作用

图像处理和提取特征

各种类型的卷积
带孔卷积

带孔卷积实现时并不是在卷积核的“孔”里填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)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值