如何用RGB通道完成卷积?

Ara*_*orn 14 rgb convolution matrix-multiplication dot-product

假设我们有一个单一频道图像(5x5)

A = [ 1 2 3 4 5
      6 7 8 9 2
      1 4 5 6 3
      4 5 6 7 4
      3 4 5 6 2 ]
Run Code Online (Sandbox Code Playgroud)

和过滤器K(2x2)

K = [ 1 1
      1 1 ]
Run Code Online (Sandbox Code Playgroud)

应用卷积的一个例子(让我们从A中取出第一个2x2)将是

1*1 + 2*1 + 6*1 + 7*1 = 16
Run Code Online (Sandbox Code Playgroud)

这非常简单.但是,让我们向矩阵A引入深度因子,即在深度网络中具有3个通道或甚至转换层的RGB图像(深度= 512).如何使用相同的滤波器完成卷积运算?类似的工作对于RGB情况非常有帮助.

Mut*_*nan 16

假设我们有一个由矩阵 A 给出的 3 通道 (RGB) 图像

    A = [[[[198 218 227]
          [196 216 225]
          [196 214 224]
          ...
          ...
          [185 201 217]
          [176 192 208]
          [162 178 194]]

和一个模糊的内核

    K = [[0.1111, 0.1111, 0.1111],
         [0.1111, 0.1111, 0.1111],
         [0.1111, 0.1111, 0.1111]]

    #实际上是 0.111 ~= 1/9

卷积可以表示如下图所示 RGB通道的卷积

正如您在图像中看到的,每个通道都被单独卷积,然后组合形成一个像素。

  • 这就是模糊操作的工作原理。在卷积中,每个通道的内核权重不同,我们将 3 个通道加在一起以生成单通道输出。为了产生 m 个通道,我们需要每个内核中具有不同权重的 m 个 3*3 滤波器。 (2认同)

Lif*_*ang 5

它们与您对单通道图像的处理方式相同,只是您将获得三个矩阵而不是一个. 是关于CNN基础知识的讲义,我认为这可能对你有所帮助.

  • **注意CNN卷积和图像预处理(如高斯模糊)的差异**!前者应用"深度"内核(每个通道具有*不同的*滤波器),然后有效地总结输出矩阵(以及偏置项)以产生单通道特征映射.而RGB图像的"模糊"通过将*相同*滤波器应用于每个通道而产生滤波后的RGB图像,而不是更多. (4认同)
  • 嗨,当你说3个矩阵时,你的意思是你用第一个矩阵取一个滤波器和点积,然后用第二个矩阵的滤波器点积和它与第三个矩阵的滤波器点积相加吗?然后,这将为您提供该位置的单个值.我对么? (2认同)

fla*_*hen 5

对于类似RGB的输入,滤镜实际上是2 * 2 * 3,每个滤镜对应一个颜色通道,从而产生三个滤镜响应。这三个因偏见和激活而加在一起。最后,这是输出映射中的一个像素。