news 2026/5/15 16:09:04

Unet学习笔记1——全矩阵运算理解5种核心操作(傻瓜版)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Unet学习笔记1——全矩阵运算理解5种核心操作(傻瓜版)

Unet学习笔记1——全矩阵运算理解5种核心操作(傻瓜版)


文章目录

  • Unet学习笔记1——全矩阵运算理解5种核心操作(傻瓜版)
  • 一、unet模型干了什么
  • 二、宏观架构:“U”型流水线的三个核心乐章
  • 三、看懂图纸上的 5 种核心操作(全矩阵推演)
    • 1.蓝色向右箭头➡️:特征提取
      • 1.1 此时不对原始输入图像进行补0(Padding=0),过程如下:
      • 1.2 此时对原始输入图像进行补0(Padding=1),相当于原始6x6矩阵变成8x8矩阵再进行卷积操作,过程如下:
    • 2.红色向下箭头⬇️:下采样(提炼全局大纲)
      • 2.1将 6x6 的【特征矩阵 A】,像切豆腐一样切成 9 个 2x2 的小方块,每个方块只保留最大的那个数字
    • 3. 绿色向上箭头⬆️:上采样
      • 3.1相当于将【大纲矩阵 B】里的每个数字x倍数,强行盖印章,把 3x3 重新拉扯回 6x6(此时的6x6矩阵仍然可以看成特殊的3x3,只不过每个元素包含了一个2x2的矩阵)。
    • 4. 灰色横向长箭头⏩:跳跃连接(核心魔法)
    • 5.青色向右短箭头➡️:最终输出判决
  • 结语:

一、unet模型干了什么


U-Net 是一种经典的全卷积神经网络(FCN),最初为医学影像分割而设计,但因其极其优异的像素级边缘还原能力,目前已成为工业视觉缺陷检测、线结构光(焊缝)提取等领域的绝对主力。

与 YOLO 等“先画框、再抠图”的目标检测网络不同,U-Net 是一个端到端(端到端输出与输入分辨率一致的特征图)的像素级分类网络。它不需要画框,而是直接回答:“这张图上的每一个像素,到底属于背景,还是属于目标?”

二、宏观架构:“U”型流水线的三个核心乐章

观察原图,整个网络呈现一个完美的字母“U”。我们可以将其划分为三个主要部分:

  • 左半部分(编码器 Encoder / 下采样): 负责“提炼大纲”。网络逐步缩小图像的尺寸,同时增加特征通道的深度。这一步是为了让网络看懂“图片里有什么(语义信息)”。
  • 右半部分(解码器 Decoder / 上采样): 负责“恢复细节”。网络逐步将缩小的特征图重新放大回原始尺寸。
  • 横向桥梁(跳跃连接 Skip Connection): 负责“抄写答案”。这是 U-Net 的灵魂,它将左侧的高清细节直接传输给右侧,完美解决了图像放大后边缘模糊的致命问题。
  • 同时简单直观的阅读图中数字:图下方的数字,如572x572、140²这样的,指的是图像的尺寸,而上方的1、64等,指得是”通道数“或 “特征图数量“,例如图下方:U 型的底部,数字变成了 1024,但长宽只有 28 x 28,这意味着在这个 28x28 的网格里,每一个单独的“格子(像素)”都包含了 1024 个高级特征数字。这些数字不再描述简单的边缘,而是描述极其抽象的语义信息,比如“这是一个细胞核的一部分吗?”或者“这是焊缝的反光区域吗?”。
    (详情直接看三中内容)

三、看懂图纸上的 5 种核心操作(全矩阵推演)

为了彻底看破这 5 种箭头的底层逻辑,我们直接代入相机的真实像素矩阵。
假设这是一张 6x6 的图像,纯黑背景数值为 0,中间捕捉到了一段未贯穿屏幕的极细激光条纹(数值为 90)
【初始输入图像】

[ 0, 0, 0, 0, 0, 0 ] [ 0, 0, 90, 90, 0, 0 ] [ 0, 0, 90, 90, 0, 0 ] [ 0, 0, 90, 90, 0, 0 ] [ 0, 0, 90, 90, 0, 0 ] [ 0, 0, 0, 0, 0, 0 ]

接下来,我们将这束光条扔进 U-Net 的流水线,进行严密的数学推演。

1.蓝色向右箭头➡️:特征提取

  • 代表操作:3x3 卷积 + ReLU 激活函数(配合 Padding=1 补零操作,保持尺寸 6x6 不变)。

  • 卷积核揭秘:假设网络在训练中,学到了一个专门寻找“垂直发光线”的 3x3 卷积核(印章)

【3x3 卷积核】

[ -1, 2, -1 ] [ -1, 2, -1 ] [ -1, 2, -1 ]

1.1 此时不对原始输入图像进行补0(Padding=0),过程如下:

第一步:卷积核9个元素与输入矩阵中2行2列为中心的3x3矩阵进行计算(两个3x3矩阵对应位置相乘求和,得到(-1)x90+(-1)x90=-180,此时ReLU 激活函数介入,将负数置为0,故输出矩阵4x4的第1行1列的数据为0)

第二步:卷积核9个元素与输入矩阵中2行2列为中心的3x3矩阵进行计算(两个3x3矩阵对应位置相乘求和,得到2x90+2x90+(-1)x90+(-1)x90=270,故输出矩阵4x4的第1行2列的数据为270)

1.2 此时对原始输入图像进行补0(Padding=1),相当于原始6x6矩阵变成8x8矩阵再进行卷积操作,过程如下:

第一步:卷积核9个元素与输入矩阵中2行3列为中心的3x3矩阵进行计算(两个3x3矩阵对应位置相乘求和,得到0,故输出矩阵6x6的第1行2列的数据为0)

第二步:卷积核9个元素与输入矩阵中2行4列为中心的3x3矩阵进行计算(两个3x3矩阵对应位置相乘求和,得到2x90+(-1)x90=90,故输出矩阵6x6的第1行3列的数据为0)

【计算结果:不进行补零操作的】

[ 0, 180, 180, 0] [ 0, 270, 270, 0] [ 0, 270, 270, 0] [ 0, 180, 180, 0]

【计算结果:进行补零操作的矩阵A】

[ 0, 0, 90, 90, 0, 0] [ 0, 0, 180, 180, 0, 0] [ 0,0, 270, 270, 0,0] [ 0, 0,270, 270, 0,0] [ 0, 0,180, 180, 0,0] [ 0, 0, 90, 90, 0, 0]

2.红色向下箭头⬇️:下采样(提炼全局大纲)

2.1将 6x6 的【特征矩阵 A】,像切豆腐一样切成 9 个 2x2 的小方块,每个方块只保留最大的那个数字

第一步:6x6的矩阵中,共有9个2x2的小矩阵,每个小矩阵中输出最大值得到大纲矩阵,此处为0。

第二步:6x6的矩阵中,共有9个2x2的小矩阵,每个小矩阵中输出最大值得到大纲矩阵,此处为180。

  • 代表操作:2x2 最大池化(Max Pool)。

  • 推演过程:将 6x6 的【特征矩阵 A】,像切豆腐一样切成 9 个 2x2 的小方块,每个方块只保留最大的那个数字(例如中间偏左的方块里有 0, 0, 270, 270,就取 270)。
    【大纲矩阵 B】(坠入底部的低分辨率语义图)

[ 0, 270, 0 ] [ 0, 270, 0 ] [ 0, 180, 0 ]

物理意义:6x6 瞬间压缩为 3x3。模型极大节省了算力,并牢牢记住了大纲:“中间那一列是高亮发光区!” 但是,它丢失了精确的像素级别边界。

3. 绿色向上箭头⬆️:上采样

3.1相当于将【大纲矩阵 B】里的每个数字x倍数,强行盖印章,把 3x3 重新拉扯回 6x6(此时的6x6矩阵仍然可以看成特殊的3x3,只不过每个元素包含了一个2x2的矩阵)。

第一步:由输入矩阵的1行1列数字x4放置到输出矩阵的左上方


第二步:由输入矩阵的1行2列数字x4放置到输出矩阵的上方

  • 代表操作:2x2 转置卷积(Up-conv),步长为 2。

  • 推演过程:拿着 2x2 的全 1 印章,以【大纲矩阵 B】里的数字为倍数,强行盖印章,把 3x3 重新拉扯回 6x6。

【大纲矩阵 B】

[ 0, 270, 0 ] [ 0, 270, 0 ] [ 0, 180, 0 ]

【放大矩阵 C】(强行拉伸后的模糊大纲)

[ 0, 0, 270, 270, 0, 0 ] [ 0, 0, 270, 270, 0, 0 ] [ 0, 0, 270, 270, 0, 0 ] [ 0, 0, 270, 270, 0, 0 ] [ 0, 0, 180, 180, 0, 0 ] [ 0, 0, 180, 180, 0, 0 ]

4. 灰色横向长箭头⏩:跳跃连接(核心魔法)

第一步:

第二步:

第三步:

  • 代表操作:矩阵拼接(Concatenate)。
  • 推演过程:为了解决“底部溢出”的灾难,U-Net 启动了魔法。它直接将第一步保存的【特征矩阵 A】拿过来,跟模糊的矩阵 C 像汉堡包一样上下叠在一起,根据真实矩阵的值,对模糊矩阵进行修改。

【真实矩阵】

[ 0, 0, 90, 90, 0, 0] [ 0, 0, 180, 180, 0, 0] [ 0,0, 270, 270, 0,0] [ 0, 0,270, 270, 0,0] [ 0, 0,180, 180, 0,0] [ 0, 0, 90, 90, 0, 0]

【放大矩阵 C】(强行拉伸后的模糊大纲)

[ 0, 0, 270, 270, 0, 0 ] [ 0, 0, 270, 270, 0, 0 ] [ 0, 0, 270, 270, 0, 0 ] [ 0, 0, 270, 270, 0, 0 ] [ 0, 0, 180, 180, 0, 0 ] [ 0, 0, 180, 180, 0, 0 ]

5.青色向右短箭头➡️:最终输出判决

  • 代表操作:1x1 卷积二值化。
  • 推演过程:网络再次进行卷积运算,作为最终考官,综合对比层矩阵A 和层矩阵C 的数字。它发现了层 C 底部的溢出错误,并采用了层 A 的高清校正。最后设定及格线(阈值),超过则为 1(光条),否则为 0(背景)。

第一步:如下图中,蓝色为矩阵A元素,红色为矩阵C元素,将二者元素进行计算,将计算结果与阈值进行对比进行判定,得到目标或者背景。如此处计算方式是:2x矩阵A对应位置元素-1x矩阵C对应位置的元素=得分(2x270-1x270=270>100),得分>阈值则为前景,判定为1。

第二步:如下图中,蓝色为矩阵A元素,红色为矩阵C元素,将二者元素进行计算,将计算结果与阈值进行对比进行判定,得到目标或者背景。如此处计算方式是:2x矩阵A对应位置元素-1x矩阵C对应位置的元素=得分(2x90-1x180=0<100),得分<阈值则为背景,判定为0。

第三步:如下图中,蓝色为矩阵A元素,红色为矩阵C元素,将二者元素进行计算,将计算结果与阈值进行对比进行判定,得到目标或者背景。如此处计算方式是:2x矩阵A对应位置元素-1x矩阵C对应位置的元素=得分(2x0-1x0=0<100),得分<阈值则为背景,判定为0。

第四步:得到最终掩膜矩阵,从而将特征从背景中分割出来

结语:

U-Net 模型是一个精妙的“先破坏再重构”的像素级流水线:它首先通过蓝箭(3x3卷积)提取出锐利的高清边缘特征并保存,接着用红箭(下采样)牺牲空间分辨率来提炼出图像的“核心语义大纲”;为了输出与原图同尺寸的结果,网络用绿箭(转置卷积)将大纲强行放大,但这会不可避免地带来边缘溢出与马赛克模糊;此时,U-Net 祭出其核心魔法——灰箭(跳跃连接),将左侧保留的原始高清特征直接“空投”过来与模糊大纲拼接对齐;最后,由青箭(1x1卷积)作为最终考官,利用高清细节精准“减去”放大产生的误差,从而输出一张极其纯净、亚像素级完美的二值化分割掩膜。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/15 16:04:17

项目情绪对话模型(1)

情绪对话模型数据制作一、大模型生成风格化对话数据制作流程步骤1&#xff1a;注册在线大模型API&#xff1a;步骤2&#xff1a;风格模板配置步骤3&#xff1a;初始化模型步骤4&#xff1a;生成及审核数据步骤5&#xff1a;数据生成效果展示二、不同风格的Prompt设计要点1. 温柔…

作者头像 李华
网站建设 2026/5/15 16:04:17

掌握5种高级搜索方法,精准定位开源项目安全漏洞

掌握5种高级搜索方法&#xff0c;精准定位开源项目安全漏洞 【免费下载链接】cve-search cve-search - a tool to perform local searches for known vulnerabilities 项目地址: https://gitcode.com/gh_mirrors/cv/cve-search 在当今快速发展的软件开发生态中&#xff…

作者头像 李华
网站建设 2026/5/15 16:01:45

对比直接使用官方API体验Taotoken在路由容灾方面的稳定性优势

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比直接使用官方API体验Taotoken在路由容灾方面的稳定性价值 在开发过程中直接调用单一模型供应商的官方API时&#xff0c;我们偶…

作者头像 李华
网站建设 2026/5/15 16:01:05

TestDisk PhotoRec:开源数据恢复工具的终极完整指南

TestDisk & PhotoRec&#xff1a;开源数据恢复工具的终极完整指南 【免费下载链接】testdisk TestDisk & PhotoRec 项目地址: https://gitcode.com/gh_mirrors/te/testdisk 在数字时代&#xff0c;数据丢失是每个技术用户都可能面临的噩梦。无论是误删除重要文件…

作者头像 李华