卷积网络和transformer如何处理三通道图片

文章讨论了卷积在处理多通道图像时,卷积核数量决定输出的featuremap通道数,而非输入通道数的倍数。Transformer如VisionTransformer和SwinTransformer则通过Patch分割和线性投影处理图像,包括对单通道和多通道(如RGB三通道)图片的处理,利用自注意力机制进行全局特征提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、卷积对三通道的处理

        卷积过程中,最主要的是:输入层有多少个通道,卷积核就要有多少个通道,但是卷积核的数量是任意的,卷积核的数量决定了卷积后 featuremap 的通道数。

卷积过程的最后一步要包括生成 feature,很简单,将 Result 各个通道对应坐标的值相加就生成了 feature,相当于将多维的 Result 压缩成了 2 维的 feature。

这篇文章有个图画的很不错

多通道(比如RGB三通道)卷积过程_三通道的图像怎么卷积_haoji007的博客-CSDN博客今天一个同学问 卷积过程好像是对 一个通道的图像进行卷积, 比如10个卷积核,得到10个feature map, 那么输入图像为RGB三个通道呢,输出就为 30个feature map 吗, 答案肯定不是的, 输出的个数依然是 卷积核的个数。 可以查看常用模型,比如lenet 手写体,Alex imagenet 模型, 每一层输出feature map 个数 就是该层卷积核的个数。对于单通道图...https://blog.csdn.net/haoji007/article/details/81981846这篇文章写的很不错

【深度学习】多通道图像卷积过程及计算方式_多通道卷积过程_frank909的博客-CSDN博客之前,有写了一篇博文,【深度学习入门】——亲手实现图像卷积操作介绍卷积的相应知识,但那篇文章更多的是以滤波器的角度去讲解卷积。但实际上是神经网络中该博文内容并不适应。之前的文章为了便于演示,针对的是二维卷积,比如一张图片有 RGB 三个颜色通道,我的方式是每个通道单独卷积,然后将各个通道合成一张图片,再可视化出来。但真实工程不会是这样的,很多东西需要进一步说明白。熟悉 TensorFlow 的...https://blog.csdn.net/briblue/article/details/83063170?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168482549216800215056119%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168482549216800215056119&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~hot_rank-4-83063170-null-null.142^v87^control_2,239^v2^insert_chatgpt&utm_term=%E4%B8%89%E9%80%9A%E9%81%93%E7%9A%84%E5%9B%BE%E5%83%8F%E6%80%8E%E4%B9%88%E5%8D%B7%E7%A7%AF&spm=1018.2226.3001.4187二、transformer对三通道图片的处理和对单通道的图片处理有什么区别? 

ViT 是第一次成功将 Transformer 引入到视觉领域的尝试,开辟了视觉 Transformer 先河。

(7条消息) Vision Transformer详解_太阳花的小绿豆的博客-CSDN博客

在这里插入图片描述

其做法非常简单,简要概况为:

        将图片分成无重叠的固定大小 Patch (例如 16 x 16),然后将每个 Patch 拉成一维向量, n 个 Patch 相当于 NLP 中的输入序列长度(假设输入图片是 224 x 224,每个 patch 大小是 16 x 16,则 n 是 196),而一维向量长度等价于词向量编码长度(假设图片通道是 3 , 则每个序列的向量长度是 768 )。考虑到一维向量维度较大,需要将拉伸后的 Patch 序列经过线性投影 (nn.Linear) 压缩维度,同时也可以实现特征变换功能,这两个步骤可以称为图片 Token 化过程 (Patch Embedding)。为了方便后续分类,作者还额外引入一个可学习的 Class Token,该 Token 插入到图片 token 化后所得序列的开始位置。将上述序列加上可学习的位置编码输入到 N 个串行的 Transformer 编码器中进行全局注意力计算和特征提取,其中内部的多头自注意模块用于进行 Patch 间或者序列间特征提取,而后面的 Feed Forward (Linear+ GELU+Dropout+ Linear+ Dropout) 模块对每个 Patch 或者序列进行特征变换。将最后一个 Transformer 编码器输出序列的第 0 位置( Class Token 位置对应输出)提取出来,后面接 MLP 分类后,然后正常分类即可。

swin transformer(7条消息) Swin-Transformer网络结构详解_swin transformer_太阳花的小绿豆的博客-CSDN博客在这里插入图片描述

        首先将图片输入到Patch Partition模块中进行分块,即每4x4相邻的像素为一个Patch,然后在channel方向展平(flatten)。假设输入的是RGB三通道图片,那么每个patch就有4x4=16个像素,然后每个像素有R、G、B三个值所以展平后是16x3=48,所以通过Patch Partition后图像shape由 [H, W, 3]变成了 [H/4, W/4, 48]。然后在通过Linear Embeding层对每个像素的channel数据做线性变换,由48变成C,即图像shape再由 [H/4, W/4, 48]变成了 [H/4, W/4, C]。其实在源码中Patch Partition和Linear Embeding就是直接通过一个卷积层实现的,和之前Vision Transformer中讲的 Embedding层结构一模一样。

         对于灰度图像的特征提取,我们需要首先将其转换为有多个通道的特征图,再将其输入到 Swin Transformer 中进行特征提取。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值