文章目录

  • 1 语义分割
    • 1.1 介绍
    • 1.2 语义分割应用
    • 1.3 实例分割
  • 2 转置卷积
    • 2.1 工作原理
    • 2.2 为什么叫“转置”卷积
    • 2.3 转置卷积也是一种卷积
  • 3 FCN
    • 3.1 核心思想
    • 3.2 网络架构
  • 4 样式迁移
    • 4.1 基于 CNN 的样式迁移
    • 4.2 工作流程

1 语义分割

1.1 介绍

语义分割(Semantic Segmentation) 是一种像素级别的分类任务。它的目标是为图像中的每一个像素分配一个类别标签。

  • 与普通图像分割的区别
    • 普通分割(如聚类)只将相似的像素区域划分为同一组,但可能不知道这些区域代表什么物体。
    • 语义分割不仅进行区域划分,还会为每个像素分配一个有意义的语义标签(如“狗”、“猫”、“路面”或“背景”)。
  • 与图片分类和目标检测的区别
特性图片分类目标检测语义分割
任务级别图像级别物体级别像素级别
输出一个类别标签多个边界框 + 类别标签每个像素的类别标签
精度粗略相对精细(边界框)非常精细(像素级)
示例图像中有只狗 → “狗”图像中有两只狗 → 两个边界框,均标记为“狗”图像中有两只狗 → 标记出所有属于狗的像素,并将其标记为“狗”
image-20250816215155802

1.2 语义分割应用

由于其像素级的精细度,语义分割在现实中有许多重要应用:

  • 图像背景处理
    • 视频会议:通过识别出“人”和“背景”,可以轻松实现背景虚化或背景替换,而不需要绿幕。
    • 手机人像模式:通过识别出“人”并将其与背景分离,实现更自然的背景虚化效果。
image-20250816215235936
  • 自动驾驶
    • 路面分割:这是自动驾驶最关键的应用之一。系统需要实时识别出哪些像素是“路面”,哪些是“人行道”、“树木”或“建筑物”,以便安全行驶。
image-20250816215252727
  • 医学影像分析
    • 识别和分割出病灶区域。

1.3 实例分割

实例分割(Instance Segmentation) 是一个比语义分割更进一步的任务。它不仅要识别每个像素的类别,还要区分同一类别下的不同实例

  • 与语义分割的区别
    • 语义分割:如果图像中有两只狗,它会把所有属于狗的像素都标记为同一个“狗”类别。它不区分这是“狗一”还是“狗二”。
    • 实例分割:它会把第一只狗的所有像素标记为“狗1”,把第二只狗的所有像素标记为“狗2”。它能区分出每一个独立的“实例”。
  • 关系:实例分割可以看作是目标检测的精细化版本,它不仅通过边界框框出物体,还提供了每个物体的精确像素级轮廓。
image-20250816215429765

2 转置卷积

传统的卷积操作通常会减小特征图(feature map)的高和宽。虽然可以通过填充(padding)来保持高宽不变,但很难有效增大特征图的尺寸。

然而,语义分割的任务要求我们对图像中的每一个像素进行分类。如果我们的模型不断通过卷积来减小图像尺寸,最终的特征图(例如 7x7)将无法对应到原始图像中的每一个像素。

因此,我们需要一种能够增大特征图高和宽的卷积操作,这就是转置卷积

2.1 工作原理

转置卷积(也称为反卷积或部分反向卷积)与常规卷积的工作方式非常相似,但它是“反向”的。

  • 常规卷积:一个输入区域(例如 2x2)与一个卷积核做点积,生成一个输出像素。
  • 转置卷积:一个输入像素与卷积核做元素级乘法,生成一个的输出区域(与卷积核大小相同)。然后,将所有输入像素生成的输出区域叠加(相加),得到最终的输出特征图。

步骤:

  1. 输入和卷积核:假设有一个 2x2 的输入和一个 2x2 的卷积核。
  2. 逐像素处理:遍历输入的每一个像素,并与卷积核进行元素级乘法。
  3. 写入输出矩阵:将相乘后的结果,按照与输入像素对应的位置,写入到输出矩阵中。
  4. 叠加:将所有输入像素生成的结果矩阵叠加(相加),得到最终的输出。

通过这种操作,一个较小的输入特征图(例如 2x2)可以生成一个较大的输出特征图(例如 3x3 或 4x4),从而实现了高和宽的增大

image-20250816215920830
  • 填充(Padding):转置卷积的填充是在输出上进行的,这与常规卷积的输入填充不同。
  • 步幅(Stride):转置卷积的步幅决定了输入像素在输出上移动的距离,从而成倍地增大输出特征图的尺寸。例如,步幅为 2 会使输出高宽加倍。

2.2 为什么叫“转置”卷积

从数学角度看,常规卷积可以被表示为一个矩阵乘法

  • 常规卷积
    • 可以将卷积核 W 构造为一个矩阵 V。
    • 将输入 X 和输出 Y 展开成向量 X′ 和 Y′。
    • 卷积操作等价于矩阵乘法:Y′=V×X′。
  • 转置卷积
    • 转置卷积则等价于使用矩阵 V 的转置进行乘法:Y′=VT×X′。

因此,一个常规卷积如果能将输入从 (H, W) 变为 (H’, W’),那么使用相同超参数的转置卷积,就可以将输入从 (H’, W’) 变回 (H, W)。这就是“转置卷积”名称的由来,因为它在矩阵乘法层面是常规卷积的转置。

image-20250816220131953

2.3 转置卷积也是一种卷积

转置卷积本质上是一种特殊的卷积操作。它的特殊之处在于,它通过对输入卷积核进行巧妙的变换,来实现上采样(增大高宽)的目的。

  • 常规卷积:通常用于下采样,即减小高和宽。
  • 转置卷积:通常用于上采样,即增大高和宽。

相同超参数(如卷积核大小、步幅和填充)的情况下,转置卷积在形状上是常规卷积的逆变换。如果一个常规卷积将输入从 (H, W) 变为 (H’, W’),那么使用相同超参数的转置卷积,就可以将输入从 (H’, W’) 变回 (H, W)。

image-20250816220530029

我们可以将转置卷积的计算过程,等价地转换为一个常规卷积的计算。为了将转置卷积等价于一个常规卷积,需要对输入卷积核进行特定的预处理:

  1. 处理输入:在输入的行和列之间插入 S−1 行或列的零,其中 S 为转置卷积的步幅
  2. 处理输入(填充):在输入的上下左右填充 K−P−1 行或列的零,其中 K 为卷积核大小,P 为转置卷积的填充
  3. 处理卷积核:将卷积核矩阵进行上下左右翻转

完成上述转换后,再对预处理后的输入和卷积核进行常规卷积计算(填充为 0,步幅为 1),得到的输出将与原始转置卷积的输出完全一致。

image-20250816220747938

形状的数学关系

假设:

  • 常规卷积:输入高或宽为 N,卷积核大小 K,填充 P,步幅 S,输出高或宽为 N′。
  • 转置卷积:输入高或宽为 N′,卷积核大小 K,填充 P,步幅 S,输出高或宽为 N。

它们之间的数学关系如下:

  • 常规卷积:N′=⌊SN−K+2P⌋+1
  • 转置卷积:N=S×(N′−1)+K−2P

如果常规卷积的计算结果能够被整除,即 SN−K+2P 为整数,那么这两个公式互为逆运算,再次证明了它们在形状上的逆变换关系。

image-20250816220852544

3 FCN

FCN (Fully Convolutional Network) 是用深度学习解决语义分割问题的奠基性工作。虽然现在有更复杂的模型,但 FCN 的核心思想仍然是理解现代语义分割模型的基础。

3.1 核心思想

FCN 的核心思想非常简单,但极具开创性:用转置卷积层替换传统 CNN 末尾的全连接层,从而实现对每个像素的预测。

传统 CNN 的局限性

  • 传统的 CNN(如用于图像分类的 AlexNet 或 ResNet)通常以全连接层结束。
  • 在进入全连接层之前,会使用全局平均池化层将特征图压缩成一个 1x1 的向量。
  • 这种设计虽然适合图像分类(因为只需一个标签),但会丢失重要的空间信息,无法进行像素级别的预测。

FCN 的解决方案

  • FCN 去掉了传统 CNN 架构中最后的全连接层和全局池化层。
  • 它的整个网络都由卷积层组成,因此得名“全卷积”。
  • 它通过在网络末尾添加转置卷积层,将经过多层下采样(减小尺寸)的特征图还原到与原始输入图像相同的尺寸。

3.2 网络架构

一个典型的 FCN 模型包含以下几个关键部分:

  1. 基础 CNN 网络
    • 使用一个预训练的 CNN 模型作为基础(例如,在 ImageNet 上训练好的 ResNet)。
    • 这个部分用于提取图像的深层特征。
    • FCN 会去掉这个基础网络最后的全连接层和全局池化层。
  2. 1x1 卷积层
    • 紧接着 CNN 输出的特征图,添加一个 1x1 的卷积层。
    • 作用:主要用于降低通道数,从而减少后续转置卷积层的计算量。它不会改变特征图的高和宽。
  3. 转置卷积层
    • 这是 FCN 最关键的部分。
    • 作用:通过转置卷积,将小尺寸的特征图放大到与原始输入图像相同的尺寸。
    • 通道数:转置卷积层的输出通道数等于我们想要预测的类别数(K)。
    • 输出:最终输出一个 H x W x K 的张量,其中 H 和 W 是原始图像的高和宽,K 是类别数。对于每一个像素点,通道上的值代表了它属于各个类别的预测分数。
image-20250816221330834

4 样式迁移

样式迁移是一种将一张图像的内容与另一张图像的样式相结合的技术,从而生成一张新的合成图像。

  • 内容图像(Content Image):提供图像中的主体内容、物体和布局。
  • 样式图像(Style Image):提供图像的风格、纹理、色彩和笔触。
  • 合成图像(Synthesized Image):结合了两者的图像,既保留了内容图像的结构,又呈现出样式图像的风格。

简而言之,样式迁移可以看作是一种高级的、可自定义的“滤镜”,它比传统的固定滤镜更具灵活性。

image-20250816221654275

4.1 基于 CNN 的样式迁移

这是样式迁移领域的奠基性工作。该方法的核心思想是利用卷积神经网络(CNN) 的不同层级来分别提取图像的内容特征样式特征

该模型的目标是训练一张合成图像(而不是训练网络权重)。训练的目标是让这张合成图像在两个方面与原始图像相似:

  1. 内容相似:合成图像在内容上要与内容图像非常接近。
  2. 样式相似:合成图像在样式上要与样式图像非常接近。

为了实现这两个目标,模型需要定义两个关键的损失函数内容损失样式损失

4.2 工作流程

image-20250816221821416
  1. 输入
    • 内容图像:你想要保留内容的图像。
    • 样式图像:你想要应用的风格图像。
    • 合成图像:一张待优化的图像,通常从随机噪声或内容图像初始化。
  2. CNN 特征提取
    • 将三张图像(内容图像、样式图像、合成图像)分别输入同一个预训练好的 CNN 模型中(例如 VGG 或 ResNet)。
    • CNN 的每一层都会输出一个特征图,这些特征图代表了图像在不同抽象层次上的特征。
  3. 损失函数
    • 内容损失:在 CNN 的高层(更具语义信息)上,计算合成图像的特征图与内容图像的特征图之间的差异。目标是让这个差异最小化,以确保合成图像保留原始内容。
    • 样式损失:在 CNN 的低层和中层(更具纹理和色彩信息)上,计算合成图像的特征图与样式图像的特征图之间的差异。这个差异通常通过计算特征图的协方差矩阵(也称为 Gram 矩阵)来衡量,因为它能捕捉不同通道之间的相关性,从而代表样式信息。
  4. 训练
    • 模型通过反向传播来优化合成图像的像素值,而不是优化网络权重。
    • 训练过程不断调整合成图像,以同时最小化内容损失样式损失

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919302.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919302.shtml
英文地址,请注明出处:http://en.pswp.cn/news/919302.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《若依》权限控制

若依内置了强大的权限控制系统,为企业级项目提供了通用的解决方案 以CRM系统为例,演示权限功能(URL:https://huike-crm.itheima.net) demo账号(超级管理员)查看所有功能菜单 zhangsan账号(市…

云原生俱乐部-RH134知识点总结(3)

这个系列的第二篇写了将近5000字,而且还是删节内容后的,如RAID就没写,因为头已经很大了。第二篇从早上写到下午,因为偷懒了,写着写着就停笔了。不过好在总算磨完了,现在开始写RH134系列的最后一篇内容。我这…

股票常见K线

1.底部反弹摸线特点长下影线之后必须有实体阴线踩实之后才考虑。macd绿缓慢收窄过程中的不买,刚转红也不买。macd转红之后等股价跌回之前macd绿首次收窄的最低点附近,而且跌破了所有均线,可以买入此股票。之后股票一波突破之前平台震荡平台&a…

计算机网络 THU 考研专栏简介

本专栏专为清华大学计算机网络考研复习设计,内容系统全面,涵盖从基础概念到重点考点的完整知识体系。具体包括:基础理论:计算机网络概念、分类、性能指标及网络分层模型(OSI 七层、TCP/IP 四层)。协议与技术…

VSCode打开新的文件夹之后当前打开的文件夹被覆盖

文件--首选项--设置:搜索showtabs设置为如下:

mac 电脑安装类似 nvm 的工具,node 版本管理工具

前言 苹果电脑开发时,有时候需要切换node 版本,window版有nvm可以管理node 版本,mac版本可以用另外一种 //全局安装n 模块 sudo npm install n -g//输入后回车,提示输入电脑密码,输入完密码回车等待下载完成即可//安装…

spdlog框架的安装与使用

spdlog框架的安装与使用spdlog的安装spdlog的使用spdlog二次封装总结&#xff1a;spdlog的安装 sudo apt-get install libspdlog-devspdlog的使用 同步日志器sync.cc (输出到显示器/输出到指定文件) #include<spdlog/spdlog.h> #include<spdlog/sinks/stdout_color…

使用websockets中的一些问题和解决方法

&#xff08;1&#xff09;TypeError: echo() missing 1 required positional argument: path报错自己写的代码如下&#xff1a;async def echo(websocket, path):...async def main():server await websockets.serve(echo, "0.0.0.0", 666)await server.wait_close…

机器人相关基础知识

机器人简介下面给出一份机器人方向“从入门到进阶”的极简知识地图&#xff0c;按「数学 → 硬件 → 软件 → 算法 → 应用」五层展开&#xff0c;配合常用开源资源。你可以把它当作“字典”随时查阅。&#x1f539; 1. 数学层&#xff08;所有算法的地基&#xff09;概念一句话…

Windows Server 打开vGPU RDP HEVC编码

查看已安装的驱动[rootlocalhost:~] esxcli software vib list Name Version Vendor Acceptance Level Install Date Platforms ----------------------------- ------------------------------------ ------ -…

OpenAL技术详解:跨平台3D音频API的设计与实践

引言&#xff1a;OpenAL的定位与价值 OpenAL&#xff08;Open Audio Library&#xff09; 是一套跨平台的3D音频应用程序接口&#xff08;API&#xff09;&#xff0c;专为高效渲染多通道三维定位音频而设计。其API风格与编程范式刻意模仿OpenGL&#xff0c;旨在为游戏开发、虚…

重温 K8s 基础概念知识系列五(存储、配置、安全和策略)

文章目录一、存储&#xff08;Storage&#xff09;1.1、Volume1.2、PersistentVolume (PV)1.3、PersistentVolumeClaim (PVC)1.4、StorageClass1.5、PVC 和 PV 的绑定过程&#xff1f;二、配置管理&#xff08;Configuration&#xff09;2.1、ConfigMap2.2、Secret2.3、存活、就…

通过PhotoShop将多张图片整合为gif动画

一、准备图片集合二、导入PS导入PS后点击确定&#xff1a;导入成功&#xff1a;三、添加时间轴勾选创建帧动画&#xff1a;此时时间轴进化为帧动画轴&#xff1a;四、图片集部署在帧动画轴点击帧动画轴右上角的三道横杠&#xff0c;从图层建立帧&#xff1a;此时图片集已经部署…

Easy Rules 规则引擎详解

Easy Rules 规则引擎详解 Easy Rules 是一个轻量级的 Java 规则引擎&#xff0c;它提供了一种简单而强大的方式来定义和执行业务规则。以下是 Easy Rules 的详细介绍&#xff1a; 1. 核心概念 1.1 规则 (Rule) 条件 (Condition): 当条件为 true 时执行动作动作 (Action): 条件满…

优雅设计:打造AI时代的高效后端API接口——领码课堂深度解析

&#x1f4cc; 摘要 后端API接口已经成为软件架构的神经系统。微服务演化、AI渗透、自动化治理……这些趋势迫使我们重新定义接口设计的标准。本文从统一规范、参数校验、异常处理、性能优化四大维度出发&#xff0c;结合领码Spark的接口治理平台与AI赋能实践&#xff0c;构建一…

【VUE】用EmailJS自动发送邮件到网易邮箱

1.注册 EmailJS 账号​​&#xff1a;访问 EmailJS 官网并注册2.添加电子邮件服务​​&#xff1a;在 Dashboard 中点击 "Add New Service"选择 SMTP server填写 SMTP 服务器信息SMTP Host: smtphz.qiye.163.com (网易企业邮箱)SMTP Port: 994 (SSL)User: 你的邮箱Ap…

Ubuntu下载、安装、编译指定版本python

下载 Index of /ftp/python/ https://www.python.org/downloads/ 删除旧的python sudo apt autoremove python sudo apt autoremove python3 安装依赖 sudo apt-get install -y zlib1g-dev libbz2-dev libssl-dev libncurses5-dev \ libsqlite3-dev libreadline-dev tk-d…

如何新建一个自己的虚拟环境

在今天我换了个电脑跑模型的时候&#xff0c;出现了一个问题&#xff1a;C:\ProgramData\Anaconda3\python.exe H:/ywp/project/model/msi_caijian.py Traceback (most recent call last):File "H:/ywp/project/model/msi_caijian.py", line 2, in <module>imp…

(第十八期)图像标签的三个常用属性:width、height、border

&#xff08;第十八期&#xff09;图像标签的三个常用属性&#xff1a;width、height、border 在网页开发中&#xff0c;控制图片尺寸与样式是基础又高频的操作。本文围绕 img 图像标签的三个属性展开&#xff1a;width&#xff08;宽度&#xff09;、height&#xff08;高度&a…

Windows桌面自动化的革命性突破:深度解析Windows-MCP.Net Desktop模块的技术奥秘

"在数字化浪潮中&#xff0c;桌面自动化不再是程序员的专利&#xff0c;而是每个人都能掌握的超能力。" —— 当我第一次接触到Windows-MCP.Net的Desktop模块时&#xff0c;这样的感慨油然而生。 &#x1f3af; 引言&#xff1a;为什么桌面自动化如此重要&#xff1f…