Unet学习笔记1——全矩阵运算理解5种核心操作傻瓜版文章目录Unet学习笔记1——全矩阵运算理解5种核心操作傻瓜版一、unet模型干了什么二、宏观架构“U”型流水线的三个核心乐章三、看懂图纸上的 5 种核心操作全矩阵推演1.蓝色向右箭头➡️特征提取1.1 此时不对原始输入图像进行补0Padding0过程如下1.2 此时对原始输入图像进行补0Padding1相当于原始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 激活函数配合 Padding1 补零操作保持尺寸 6x6 不变。卷积核揭秘假设网络在训练中学到了一个专门寻找“垂直发光线”的 3x3 卷积核印章【3x3 卷积核】[ -1, 2, -1 ] [ -1, 2, -1 ] [ -1, 2, -1 ]1.1 此时不对原始输入图像进行补0Padding0过程如下第一步卷积核9个元素与输入矩阵中2行2列为中心的3x3矩阵进行计算两个3x3矩阵对应位置相乘求和得到-1x90-1x90-180此时ReLU 激活函数介入将负数置为0故输出矩阵4x4的第1行1列的数据为0第二步卷积核9个元素与输入矩阵中2行2列为中心的3x3矩阵进行计算两个3x3矩阵对应位置相乘求和得到2x902x90-1x90-1x90270故输出矩阵4x4的第1行2列的数据为2701.2 此时对原始输入图像进行补0Padding1相当于原始6x6矩阵变成8x8矩阵再进行卷积操作过程如下第一步卷积核9个元素与输入矩阵中2行3列为中心的3x3矩阵进行计算两个3x3矩阵对应位置相乘求和得到0故输出矩阵6x6的第1行2列的数据为0第二步卷积核9个元素与输入矩阵中2行4列为中心的3x3矩阵进行计算两个3x3矩阵对应位置相乘求和得到2x90-1x9090故输出矩阵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, 00] [ 0, 0270, 270, 00] [ 0, 0180, 180, 00] [ 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, 00] [ 0, 0270, 270, 00] [ 0, 0180, 180, 00] [ 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-1x270270100得分阈值则为前景判定为1。第二步如下图中蓝色为矩阵A元素红色为矩阵C元素将二者元素进行计算将计算结果与阈值进行对比进行判定得到目标或者背景。如此处计算方式是2x矩阵A对应位置元素-1x矩阵C对应位置的元素得分2x90-1x1800100得分阈值则为背景判定为0。第三步如下图中蓝色为矩阵A元素红色为矩阵C元素将二者元素进行计算将计算结果与阈值进行对比进行判定得到目标或者背景。如此处计算方式是2x矩阵A对应位置元素-1x矩阵C对应位置的元素得分2x0-1x00100得分阈值则为背景判定为0。第四步得到最终掩膜矩阵从而将特征从背景中分割出来结语U-Net 模型是一个精妙的“先破坏再重构”的像素级流水线它首先通过蓝箭3x3卷积提取出锐利的高清边缘特征并保存接着用红箭下采样牺牲空间分辨率来提炼出图像的“核心语义大纲”为了输出与原图同尺寸的结果网络用绿箭转置卷积将大纲强行放大但这会不可避免地带来边缘溢出与马赛克模糊此时U-Net 祭出其核心魔法——灰箭跳跃连接将左侧保留的原始高清特征直接“空投”过来与模糊大纲拼接对齐最后由青箭1x1卷积作为最终考官利用高清细节精准“减去”放大产生的误差从而输出一张极其纯净、亚像素级完美的二值化分割掩膜。