深度学习基础:什么是上采样和下采样?

在目标检测、语义分割以及卷积神经网络(CNN)中,经常会看到两个概念:上采样(Upsampling)和下采样(Downsampling)。

简单来说:

下采样:减小特征图的尺寸

上采样:增大特征图的尺寸

例如,一张大小为 640×640 的图像经过多次下采样后:

而上采样则相反:

1. 什么是下采样?

下采样(Downsampling)就是降低图像或者特征图的空间分辨率。

例如:

640×640 → 320×320

宽和高都变成原来的 1/2,像素数量则变成原来的 1/4。

在卷积神经网络中,下采样主要有几个作用:

1.减少特征图尺寸,降低计算量;

2.扩大感受野;

3.提取更加高级的语义特征;

4.降低模型后续网络层的计算和显存开销。

常见的下采样方法

(1)步长卷积

例如使用 stride=2 的卷积:

import torch.nn as nn

conv = nn.Conv2d(

in_channels=3,

out_channels=32,

kernel_size=3,

stride=2,

padding=1

)

输入:

640×640

经过卷积后,特征图大致变为:

320×320

(2)池化

例如最大池化:

pool = nn.MaxPool2d(

kernel_size=2,

stride=2

)

同样可以实现:

640×640 → 320×320

2. 什么是上采样?

上采样(Upsampling)与下采样相反,就是增大图像或者特征图的空间尺寸。

例如:

80×80 → 160×160

需要注意的是,上采样并不是凭空恢复已经丢失的原始信息,而是通过插值、可学习参数等方式,将低分辨率特征映射到更高的空间分辨率。

常见的上采样方法

(1)最近邻插值

upsample = nn.Upsample(

scale_factor=2,

mode="nearest"

)

例如:

80×80 → 160×160

(2)双线性插值

upsample = nn.Upsample(

scale_factor=2,

mode="bilinear",

align_corners=False

)

双线性插值会根据周围像素计算新的像素值,因此通常比最近邻插值更加平滑。

(3)转置卷积

deconv = nn.ConvTranspose2d(

in_channels=256,

out_channels=128,

kernel_size=2,

stride=2

)

转置卷积中的参数可以通过训练学习,因此也经常用于分割网络的解码器。

相关推荐
小蒋观天下16 分钟前
网络抖动、乱序、丢包:UDP/RTSP/TCP对AI抓拍、轨迹跟踪的不同影响
大数据·人工智能·深度学习
高洁0130 分钟前
大模型检索增强生成(RAG)的技术原理与架构设计
人工智能·深度学习·机器学习·django·迁移学习
数聚天成DeepSData33 分钟前
两份名录里的同名机构,主键该怎么合并
人工智能·深度学习·机器学习·数据集·deepsdata
陕西亿鑫鸿物联技术有限公司1 小时前
传统安防利旧升级实战:如何基于边缘计算接入海康大华IPC构建AI分析系统?
深度学习·计算机视觉·边缘计算·物联网架构·流媒体技术
拜小白2 小时前
【论文解读】Ray-casting MLC:用几何感知光线投射做自训练房间布局估计
深度学习·计算机视觉·全景图
hkNaruto2 小时前
【AI】深度学习、强化学习、深度强化学习基础概念笔记
人工智能·笔记·深度学习
tellmewhoisi3 小时前
深度学习26:PyTorch:参数更新方法(Momentum)
人工智能·pytorch·深度学习
Zack_Liu4 小时前
code样例
pytorch·python·深度学习
美狐美颜SDK开放平台13 小时前
视频美颜SDK试用DEMO阶段应该测试什么?直播APP接入实操指南
开发语言·人工智能·深度学习·音视频·美颜sdk·直播美颜sdk·第三方美颜sdk
hgy896916 小时前
深度学习(小白笔记)——迁徙
人工智能·笔记·深度学习