笔记——卷积

卷积

原理

卷积的目的:

  • 浅层:从输入图像提取不同方面的特征,比如水平、垂直、边缘或对角线等
  • 深层:通过浅层特征的组合,提取更加抽象的高层语义特征(全局特征)

卷积变化的目的:

  • 提高模型精度:对精度要求比较严格的场景
  • 提高推理速度:对实时性要求比较严格的场景

常规卷积

卷积核在输入特征图上面滑动并计算内积

超参数:

  • Kernel Size:卷积核大小
  • padding:输入填充的圈数
  • stride:卷积核滑动的步长

h e i g h t o u t = ( h e i g h t i n − h e i g h t k e r n e l + 2 ∗ p a d d i n g ) / s t r i d e + 1 w i d t h o u t = ( w i d t h i n − w i d t h k e r n e l + 2 ∗ p a d d i n g ) / stride + 1 {height_{out}}{{}=(height_{in}-height_{kernel}+2*padding)/stride+1} \\ width_{out}\quad=\left(width_{in}-width_{kernel}+2*padding\right)/\textit{stride}+1 heightout=(heightinheightkernel+2padding)/stride+1widthout=(widthinwidthkernel+2padding)/stride+1

在这里插入图片描述

空洞卷积/膨胀卷积

解决常规卷积感受野太小的问题

  • 感受野:特征图上的某个点能看到的输入图像的区域
  • 小感受野:浅层,捕获小尺寸目标
  • 大感受野:深层,捕获大尺寸目标

计算方式:在卷积核中的元素之间注入空洞,然后进行常规卷积运算

超参数:

  • 空洞率 r r r(dilation rate):卷积核元素之间插入 r − 1 r-1 r1个空洞

与常规卷积核的关系:
K = j + ( k − 1 ) ( r − 1 ) K=j+(k-1)(r-1) K=j+(k1)(r1)
k k k是常规卷积核的大小, K K K是空洞卷积核的大小, r r r是空洞率

在这里插入图片描述

上图中,空洞率 r = 1 r=1 r=1

多尺度卷积

解决的问题:输入图像中目标的尺寸是多变的

计算方式:用多分支卷积提取不同感受野的特征

缺点:手工痕迹太重

GoogleNet中的Inception模块,改进版本中加入 1 × 1 1\times1 1×1卷积降维:

在这里插入图片描述

SKNet中可以自适应选择哪个更重要

分组卷积

解决的问题:神经网络参数量多,计算量大

计算方式:将输入特征图的通道进行分组,然后每个组内部进行卷积,最终将得到的结果拼接在一起。

下图为例,输入特征图(蓝色)经过卷积核(黄色, D O U T D_{OUT} DOUT)得到输出(绿色),卷积核作用于整个特征图。分组卷积中,将输入特征图按照黑色虚线分为若干块(图中两块),两个卷积核(红色和黄色, D O U T 2 \frac{D_{OUT}}{2} 2DOUT)分别作用于一块特征图,将输入拼接得到完整的输出。

在这里插入图片描述

缺点:信息流通不顺畅

改进/解决方案:通道混洗

原始的分组卷积如左图所示,分组进行卷积最终拼接结果输出,但是每块的信息只来自于分割的部分,缺失其它块的信息。

改进后如右图所示,在一次分组卷积完成后,将每个块再次进行分组,各块的子块相互换位,进行通道混洗。

在这里插入图片描述

可分离卷积(深度)

解决的问题:神经网络参数多,计算量大

计算方式:逐层卷积(depth-wise conv) + 逐点卷积(point-wise conv)

  • 逐层卷积:对输入特征图的每一个通道只是用一个卷积核
  • 逐点卷积:常规的 1 × 1 1\times1 1×1卷积,目的是跨通道信息融合

以下图为例,参数量从 k × k × n k\times k \times n k×k×n变为 k × k + n k\times k+n k×k+n

在这里插入图片描述

可分离卷积(空间——H,W)

解决的问题:神经网络参数多,计算量大

计算方式:将原本 n × n n\times n n×n的卷积变为 n × 1 n\times1 n×1卷积和 1 × n 1\times n 1×n卷积

在这里插入图片描述

缺点:用在网络浅层精度损失过大

改进:ACNet。训练阶段使用常规卷积和空间可分离卷积,特征图合并进行激活。推理阶段直接将三个卷积核合并提取特征,加快速度,提高精度。

在这里插入图片描述

形变卷积(DCN)

解决的问题:在目标检测中,一个待检测的物体可能有各种形状

计算方式:

  • 学习采样点的偏移量
  • 根据偏移量进行计算,得到新的特征图

在这里插入图片描述

注意:形变卷积不是对卷积核的形变,而是对卷积核对应采样点的偏移

缺点:计算量大,很难进行TensorRT加速

总结

降低模型计算量:

  • 分组卷积
  • 可分离卷积(深度、空间)

提高模型精度:

  • 空洞卷积
  • 多尺度卷积
  • 形变卷积

经典用处:

  • 空洞卷积: 图像语义分割的DeepLab系列
  • 多尺度卷积: Inception系列、注意力模型SKNet
  • 分组卷积: ResNext、ShuffleNet系列
  • 可分离卷积: MobileNet系列
  • 形变卷积: DCN V1、DCN V2
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值