注意图片读取时的维度

import cv2

img_path = 'D:/JupyterWorkSpace/13.jpg' # 13.jpg的大小是178x218
img = cv2.imread(img_path)
print(img.shape)

13.jpg如下
178x218
但是程序输出的shape却是(218, 178, 3),也就是cv2.imread这个函数在读取图片时,长和宽是调换位置的

### 注意力机制下的图像维度处理 在注意力机制的应用中,尤其是针对图像数据,其核心在于如何有效地提取特征并分配权重。以下是关于图像维度处理的具体方法及其应用场景。 #### 图像维度的表示形式 通常情况下,一张二维图像可以用矩阵的形式来表示,其中每个像素点具有特定的颜色值(RGB 或灰度)。当应用于深度学习模型图像会被转换成三维张量 \(H \times W \times C\),分别代表高度、宽度和通道数[^1]。这种结构使得卷积神经网络 (CNN) 能够高效地捕捉空间信息。 #### Query-Key-Value 的作用 在注意力机制框架下,输入图像被分解为三个部分:Query (\(Q\))、Key (\(K\)) 和 Value (\(V\))[^3]。这些向量通过线性变换得到,并用于计算相似性和加权求和操作: \[ Attention(Q, K, V) = softmax(\frac{QK^T}{\sqrt{d_k}})V \] 这里需要注意的是,在实际实现过程中,为了减少内存消耗以及加速运算速度,常常会采用降维或其他优化策略[^2]。 #### 维度调整过程中的具体做法 1. **展平与重塑** 将原始形状为 \(B \times H \times W \times C\) (批量大小×高×宽×通道)的四维张量重新排列成适合后续计算的新格式。例如,可以先将其拉伸成长条状的一维数组再分组形成新的序列长度\(N=HW\) ,从而获得尺寸变为 \(B\times N\times D\) 的嵌入表示[D可能等于C也可能不同取决于设计需求][^1]。 2. **位置编码加入** 如果是基于纯Transformer架构而非传统CNN,则还需要额外考虑引入绝对/相对的位置信息以便让模型能够感知到各个token之间的几何关系因为原本仅靠self-attention无法天然获取这样的特性. 3. **多尺度融合** 不同层次上的feature map往往携带互补的信息因此可以通过金字塔池化等方式综合高低频细节进一步提升性能表现尤其适用于目标检测分割等领域任务当中. ```python import torch from einops import rearrange def patch_embedding(x, patch_size): """ Convert image to patches and flatten them. Args: x (Tensor): Input tensor of shape BxCxHxW. patch_size (int): Size of each square patch. Returns: Tensor: Flattened patches with shape Bx(N)x(D). """ b, c, h, w = x.shape assert h % patch_size == 0 and w % patch_size == 0 # Rearrange into patches num_patches_h = h // patch_size num_patches_w = w // patch_size n = num_patches_h * num_patches_w d = c * patch_size * patch_size out = rearrange(x, 'b c (h p1) (w p2) -> b (h w) (c p1 p2)', p1=patch_size, p2=patch_size) return out.reshape(b, n, d) # Example usage batch_size = 2 channels = 3 height = width = 32 patch_size = 4 input_tensor = torch.randn(batch_size, channels, height, width) flattened_patches = patch_embedding(input_tensor, patch_size) print(flattened_patches.shape) # Output should be [2, 64, 48] ``` 上述代码展示了如何将一幅给定分辨率的彩色照片切分成若干个小块(patch),然后再把这些小块展开成为一列连续数值的过程这一步骤常见于Vision Transformer(ViT)初始化阶段之中。 --- ### 应用场景举例 - **医学影像分析**: 利用注意力引导聚焦病变区域有助于更精准诊断; - **自动驾驶视觉感知系统**: 对复杂路况环境快速做出反应依赖高质量实语义理解能力; - **遥感卫星图片解译**: 大范围覆盖面积内的微弱变化探测需要强大的模式识别技术支持; ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值