卷积操作尺寸计算公式

在深度学习和图像处理中,卷积操作会改变输入图像的尺寸。计算卷积后图像尺寸的通用公式取决于以下几个参数:

  • 输入图像尺寸:通常表示为高度 H in H_{\text{in}} Hin 和宽度 W in W_{\text{in}} Win(单位:像素)。
  • 卷积核大小:通常表示为高度 K h K_h Kh 和宽度 K w K_w Kw(单位:像素)。如果卷积核是正方形的(常见情况),则 K h = K w = K K_h = K_w = K Kh=Kw=K
  • 步幅(stride):卷积核在图像上移动的步长,通常表示为高度方向步幅 S h S_h Sh 和宽度方向步幅 S w S_w Sw。如果步幅相同,则 S h = S w = S S_h = S_w = S Sh=Sw=S
  • 填充(padding):在图像边缘添加的像素数,通常表示为高度方向填充 P h P_h Ph 和宽度方向填充 P w P_w Pw。如果填充对称,则 P h = P w = P P_h = P_w = P Ph=Pw=P。填充可以是零填充(常见)或其他方式。

通用公式

卷积后输出图像的高度 H out H_{\text{out}} Hout 和宽度 W out W_{\text{out}} Wout 的计算公式如下:

H out = ⌊ H in + 2 P h − K h S h ⌋ + 1 H_{\text{out}} = \left\lfloor \frac{H_{\text{in}} + 2P_h - K_h}{S_h} \right\rfloor + 1 Hout=ShHin+2PhKh+1

W out = ⌊ W in + 2 P w − K w S w ⌋ + 1 W_{\text{out}} = \left\lfloor \frac{W_{\text{in}} + 2P_w - K_w}{S_w} \right\rfloor + 1 Wout=SwWin+2PwKw+1

其中:

  • ⌊ ⋅ ⌋ \left\lfloor \cdot \right\rfloor 表示向下取整(floor 函数),确保结果为整数。
  • 公式假设卷积操作是标准的(无膨胀或其他修改)。

通用公式(含Dilation)

当卷积操作包含膨胀率(dilation rate)时,卷积核的感受野会扩大,导致输出尺寸进一步变化。

设:

  • 输入图像尺寸:高度 H in H_{\text{in}} Hin,宽度 W in W_{\text{in}} Win
  • 卷积核尺寸:高度 K h K_h Kh,宽度 K w K_w Kw
  • 膨胀率:高度方向 D h D_h Dh,宽度方向 D w D_w Dw(通常 D h = D w = D D_h = D_w = D Dh=Dw=D
  • 步幅:高度方向 S h S_h Sh,宽度方向 S w S_w Sw
  • 填充:高度方向 P h P_h Ph,宽度方向 P w P_w Pw

输出尺寸计算公式为:
H out = ⌊ H in + 2 P h − [   ( K h − 1 ) × D h + 1   ] S h ⌋ + 1 W out = ⌊ W in + 2 P w − [   ( K w − 1 ) × D w + 1   ] S w ⌋ + 1 \boxed{ \begin{aligned} H_{\text{out}} &= \left\lfloor \frac{H_{\text{in}} + 2P_h - [\ (K_h - 1) \times D_h + 1\ ]}{S_h} \right\rfloor + 1 \\ W_{\text{out}} &= \left\lfloor \frac{W_{\text{in}} + 2P_w - [\ (K_w - 1) \times D_w + 1\ ]}{S_w} \right\rfloor + 1 \end{aligned} } HoutWout=ShHin+2Ph[ (Kh1)×Dh+1 ]+1=SwWin+2Pw[ (Kw1)×Dw+1 ]+1

关键说明

  1. 膨胀后的卷积核有效尺寸

    • 膨胀操作通过在卷积核元素间插入 D − 1 D-1 D1 个空格来扩大感受野。
    • 膨胀后的有效高度 K h ′ = ( K h − 1 ) × D h + 1 K_h' = (K_h - 1) \times D_h + 1 Kh=(Kh1)×Dh+1
    • 膨胀后的有效宽度 K w ′ = ( K w − 1 ) × D w + 1 K_w' = (K_w - 1) \times D_w + 1 Kw=(Kw1)×Dw+1
    • 公式中的 [   ( K h − 1 ) × D h + 1   ] [\ (K_h - 1) \times D_h + 1\ ] [ (Kh1)×Dh+1 ] [   ( K w − 1 ) × D w + 1   ] [\ (K_w - 1) \times D_w + 1\ ] [ (Kw1)×Dw+1 ] 即膨胀后的有效核尺寸。
  2. 公式逻辑

    • 分子部分:
      H in + 2 P h − K h ′ H_{\text{in}} + 2P_h - K_h' Hin+2PhKh(宽度同理)
      表示输入尺寸加填充后,减去膨胀后的有效核尺寸。
    • 分母部分:除以步幅 S h S_h Sh(或 S w S_w Sw)。
    • 取整操作 ⌊ ⋅ ⌋ \left\lfloor \cdot \right\rfloor :确保输出为整数像素位置。
    • +1:包含卷积核起始位置对应的输出。
  3. 当膨胀率 D = 1 D=1 D=1
    公式退化为标准卷积(无膨胀),因为:
    K h ′ = ( K h − 1 ) × 1 + 1 = K h K_h' = (K_h - 1) \times 1 + 1 = K_h Kh=(Kh1)×1+1=Kh

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐