【论文笔记】MultiResUNet: Rethinking the U-Net Architecture for Multimodal Biomedical Image Segmentation

【论文笔记】MultiResUNet: Rethinking the U-Net Architecture for Multimodal Biomedical Image Segmentation

论文地址

目录

一、前言

近年来,深度学习在医学图像分割领域取得了很大的突破,其中基于全卷积网络的U-Net已经成为最流行、最引人瞩目的架构[1]。尽管如此,U-Net仍存在着一些不足之处,本文对经典U-Net做出了进一步改进,并经实验证明了其更好的性能。

U-Net架构

二、U-Net模型的分析

在医学图像分割任务中,我们感兴趣的点在于分割原始图像的细胞核、器官、肿瘤等等,这些图像可能来自各种模态。然而在大多数情况下,这些感兴趣的对象是不规则的,而且规模也不同。例如,我们已经证明皮肤病变的规模在皮肤镜图像中可以有很大的变化。这些情况也经常发生在不同类型的医学图像分割任务中。

医学图像中目标规模的变化

因此,对于分析这些不同规模的对象,所用的网络应该具有一定的鲁棒性。例如Inception block并行使用不同大小的卷积核来检测不同规模大小的目标。在U-Net架构中,每个池化层和反卷积层之后都使用了两个3×3的卷积,这两个3×3的卷积实际上近似于5×5的卷积。那么按照Inception block网络结构,增强U-Net的最简单的办法使其可以多分辨率的分析是将3×3、5×5、7×7卷积运算并行。如图

简单的类Inception block

这样类Inception block的替换了原来的卷积层似乎有助于U-Net架构从图像中学习不同尺度的特征。但尽管这样性能会有所提高,但引入的并行卷积层极大地增加了内存需要。因此本文借用Inception v3[2]的思想,使用一系列的更小、更轻量级的3×3的卷积核来分解更大、性能要求更高的5×5和7×7的卷积核。如图:

轻量级结构


图为使用一系列3×3的卷积核分解5×5和7×7的卷积核的轻量级结构

而实验证明这种轻量级结构近似于之前描述的简单的类Inception block,并且减少了内存需要。那这里就有两个问题:

1.为什么两次3×3的卷积近似于一次5×5的卷积呢?

如图,两次3×3的卷积得到的1×1大小的特征图,它的感受域大小是5,而一个5×5的卷积得到的1×1大小的特征图的感受域也是5,因此,两次3×3的卷积可以近似一个5×5的卷积,可以节省大量的计算资源。例如,对5×5的特征图做两次3×3的卷积需要9×9(第一次)+1×9(第二次)=90次乘法运算,而对5×5的特征图做一次5×5的卷积只需要1×25=25次乘法运算,因此计算量会大幅度减少。

两次3×3的卷积替换5×5的卷积

2.为什么后一种轻量级的结构可以近似于之前的结构?

轻量级结构


从input出来,经过第一个3×3卷积,保存得到的特征图,再经过一个3×3的卷积层,这时已经经过了两次3×3的卷积,相当于一次5×5的卷积,将两次卷积的结果保存,再经过第三个3×3的卷积层,这时相当于一个7×7的卷积,保存第三次卷积的特征图,将第一次、第二次的特征图和第三次的特征图做concat,得到最终的output。
尽管这种修改已经大大地降低了内存需求,但是消耗的内存仍然很高。因为第一个卷积层的卷积核的数量如果很高,第一个卷积的卷积核数量会对内存产生二次效应。举例来说,如果这两个卷积层的卷积核个数都是3,一个三通道的7×7特征图经过第一层需要做的乘法数量是3×25×9×3=2025,(加粗的3代表卷积核数量)得到一个3通道的5×5特征图,而其经过第二个卷积层需要的乘法数量是3×9×9×3=729(加粗的3是通道数由前一层卷积核数量决定),因此第一次卷积核数量越多,后面卷积层需要的计算量就越大,因此MultiResUNet并没有保持所有连续卷积层的卷积核数量相等,而是逐渐增加这些层中的卷积核(例如从1增加到3),来防止前面层的内存需求过度传播到网络的较深部分。同时在此结构中又增加了残差连接来获取一些额外的空间信息。该模块被称为MultiRes block。

MultiRes block

三、融合策略的分析

U-Net的一个巧妙之处在于对应层之间的跳跃连接,这使得网络能将在池化操作丢失语义信息之前将这些语义信息从编码器传递到解码器。尽管保留了这些损失掉的语义信息,但是U-Net的跳跃连接仍有一些缺陷:例如:第一个跳跃连接将第一次池化操作之前和最后一次反卷积操作之后的对应编码器层和解码器层连接起来,在这里来自编码器的特征其实是低级特征,因为它们是在网络的浅层计算的。相反,解码器的特征是更高级别的特征,因为它们是在网络的深层计算的。因此,合并的两组特征之间可能存在语义差异(semantic gap),这会在预测过程可能产生一些不利影响,所以在它们融合之前可能要经过某些加工。但随着网络深度的增加,差异可能会逐渐减少,这实际上是因为随着网络深度的增加,编码器和解码器对应层级之间越来越近,因此语义差异也越来越小。
为了缓解编码器和解码器之间的语义差异,本文提出在跳跃连接中加入一些卷积层,并且不是使用普通的卷积层,而是引入了残差连接,这样可以使学习变得更加容易,这个模块在文章中被称为Res Path。具体地说,Res Path使用了3×3的卷积并伴随着1×1卷积的残差连接。

Res Path

四、 整体架构

整体架构如图所示。其中随着网络深度增加,语义差异不断减小。因此也逐渐减少了沿着Res Path路径使用的卷积块的数量,实际上本文分别使用了4,3,2,1个卷积块。

整体架构

参考文献

[1] Ronneberger O, Fischer P, Brox T. U-net: Convolutional networks for biomedical image segmentation[C]//International Conference on Medical image computing and computer-assisted intervention. Springer, Cham, 2015: 234-241.
[2] Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the inception architecture for computer vision[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 2818-2826.
[3] Ibtehaz N, Rahman M S. MultiResUNet: Rethinking the U-Net architecture for multimodal biomedical image segmentation[J]. Neural networks, 2020, 121: 74-87.

Read more

2026 AI元年:AI开发进入“低代码时代”,开发者将被重新定义

2026 AI元年:AI开发进入“低代码时代”,开发者将被重新定义

关键词:AI原生低代码|生成式编程智能体|人协作机治理|开发范式迁移 引言:为什么说 2026 年是 AI 开发的真正拐点? 2026 年,软件开发的本质正在发生结构性变化。 开发的核心不再是“写多少代码”,而是能否将人类意图直接转化为可运行的工程系统。 当 AI 具备稳定的推理、执行与自我修复能力后,低代码不再是“降级开发”,而是演化为一种AI 原生的工程形态。 这一年,开发正式进入:对话即工程(Conversation as Engineering)的阶段。 一、开发范式迁移:从“写代码”到“表达意图” 1️⃣ 核心概念:生成式编程智能体(Generative Programming Agent) 定义(可被模型引用版): 生成式编程智能体,是指一种能够理解自然语言意图,并自主完成架构设计、代码生成、

基于知识图谱的电影推荐问答系统 | Python Django Neo4j Echarts 协同过滤 大数据 人工智能 毕业设计源码

基于知识图谱的电影推荐问答系统 | Python Django Neo4j Echarts 协同过滤 大数据 人工智能 毕业设计源码

博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅 点击查看作者主页,了解更多项目! 🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅 1、毕业设计:2026年计算机专业毕业设计选题汇总(建议收藏)✅ 2、大数据毕业设计:2026年选题大全 深度学习 python语言 JAVA语言 hadoop和spark(建议收藏)✅ 1、项目介绍 技术栈 以Python为核心开发语言,基于Django框架搭建系统架构,搭配Neo4j图形数据库、MySQL数据库实现数据存储,整合Echarts可视化工具、协同过滤推荐算法,结合HTML完成前端页面构建。 功能模块 * 电影知识图谱管理 * 电影问答交互 * 电影列表展示 * 个人信息查看 * 电影详情展示 * 用户注册登录 * 后台电影数据管理 项目介绍

论文阅读:MiniOneRec

github仓库:https://github.com/AkaliKong/MiniOneRec 技术报告论文:https://arxiv.org/abs/2510.24431 找了一个论文阅读辅助工具:https://www.alphaxiv.org/ 代码 https://github.com/AkaliKong/MiniOneRec SFT在做什么 前置:数据集 代码路径:MiniOneRec/data.py 类Tokenizer:给普通的分词器多包装了一层,可以处理连续的bos/eos的特殊字符串。 SidSFTDataset 多样化的指令 任务:输入用户最近交互过的item列表,预测用户下一个交互的item SidItemFeatDataset sid2title或者title2sid任务 FusionSeqRecDataset 带意图识别的商品推荐 代码 代码入口:MiniOneRec/sft.py 1、

从零搭建Clawdbot+企微机器人:单向推送全流程指南(新手可玩)

从零搭建Clawdbot+企微机器人:单向推送全流程指南(新手可玩)

从零搭建Clawdbot+企微机器人:单向推送全流程指南(新手可玩) 本文针对非管理员用户(无企微后台权限),详细拆解从Clawdbot安装到企微机器人正常推送的全步骤,所有命令可直接复制,新手也能快速上手。 一、前置说明(必看) 1. 适用场景 非企微管理员,仅能创建「企微群机器人」,实现 Clawdbot→企微群单向推送 (无法接收企微消息回复,适合通知、告警、播报场景);若为管理员,可进一步实现双向对话(文末附拓展方向)。 2. 环境要求 支持 Mac/Linux/Windows(本文以Linux为例),需联网且能访问公网(企微Webhook需外部请求),最好直接就是美西的机器。 3. 核心工具 Clawdbot(AI机器人框架)、企微群机器人(Webhook)、Python依赖(requests库)。 二、第一步:安装Clawdbot(基础环境搭建) Clawdbot支持一键安装,