医学图像分割:UNet++

医学图像分割 nnUNetV2 分割自定义2d数据集 nnUNetV2使用 阅读详情

作者:Jingles (Hong Jing)

编译:ronghuaiyang

导读

使用一系列的网格状的密集跳跃路径来提升分割的准确性。

在这篇文章中,我们将探索UNet++: A Nested U-Net Architecture for Medical Image Segmentation这篇文章,作者是亚利桑那州立大学的Zhou等人。本文是U-Net的延续,我们将把UNet++与Ronneberger等人的U-Net原始文章进行比较。

UNet++的目标是通过在编码器和解码器之间加入Dense block和卷积层来提高分割精度。

分割的准确性对于医学图像至关重要,因为边缘分割错误会导致不可靠的结果,从而被拒绝用于临床中。

为医学成像设计的算法必须在数据样本较少的情况下实现高性能和准确性。获取这些样本图像来训练模型可能是一个消耗资源的过程,因为需要由专业人员审查的高质量、未压缩和精确注释的图像。

UNet++里有什么新东西?

下面是UNet++和U-Net架构的示意图。

UNet++ 在原始的U-Net上加了3个东西:

  1. 重新设计的跳跃路径(显示为绿色)

  2. 密集跳跃连接(显示为蓝色)

  3. 深度监督(显示为红色)

重新设计的跳跃路径

在UNet++中,增加了重新设计的跳跃路径(绿色显示),以弥补编码器和解码器子路径之间的语义差别。

这些卷积层的目的是减少编码器和解码器子网络的特征映射之间的语义差距。因此,对于优化器来说,这可能是一个更直接的优化问题。

U-Net采用跳跃连接,直接连接编码器和解码器之间的特征映射,导致把语义上不相似的特征映射相融合。

然而,在UNet++中,相同dense block的前一个卷积层的输出与较低层dense block对应的上采样输出进行融合。这使得已编码特征的语义级别更接近于等待在解码器中的特征映射的语义级别,因此,当接收到语义上相似的特征映射时,优化更容易。

跳跃路径上的所有卷积层使用大小为3×3的核。

密集跳跃连接

在UNet++中,密集跳跃连接(用蓝色显示)实现了编码器和解码器之间的跳跃路径。这些Dense blocks是受到DenseNet的启发,目的是提高分割精度和改善梯度流。

密集跳跃连接确保所有先验特征图都被累积,并通过每个跳跃路径上的dense卷积块而到达当前节点。这将在多个语义级别生成完整分辨率的特征映射。

深度监督

UNet++中增加了深度监督(红色显示),通过修剪模型来调整模型的复杂性,在速度(推理时间)和性能之间实现平衡。

对于accurate模式,所有分割分支的输出进行平均。

对于fast模式,最终的分割图从分割分支之一选择。

Zhou等人进行了实验,以确定在不同剪枝水平下的最佳分割性能。使用的度量是IoU和推理时间。

他们试验了四种分割任务:a)细胞核,b)结肠息肉,c)肝脏,d)肺结节。结果如下:

L3与L4相比,平均减少了32.2%的推理时间,同时IoU略微降低了。

更激进的修剪方法,如L1和L2,可以进一步减少推理时间,但以显著的分割性能为代价。

在使用UNet++时,我们可以调整用例的层数。

在UNet++上的实验

我使用Drishti-GS数据集,这与Ronneberger等人在他们的论文中使用的不同。该数据集包含101幅视网膜图像,以及用于检测青光眼的光学disc和光学cup的mask标注。青光眼是世界上致盲的主要原因之一。50张图片用于训练,51张用于验证。

度量

我们需要一组指标来比较不同的模型,这里我们有二元交叉熵,Dice 系数和IoU。

二元交叉熵

二分类的常用度量和损失函数,用于度量误分类的概率。

我们将使用PyTorch的binary_cross_entropy_with_logits函数,与Dice系数一起作为损失函数对模型进行训练。

Dice 系数

对预测值和实际值之间重叠的通用的度量。计算方法为 2 × 预测值与ground truth的重叠面积除以预测值与ground truth之和的总面积。

这个度量指标的范围在0到1之间,其中1表示完全重叠。

我使用这个度量和二元交叉熵作为训练模型的损失函数。

IoU

一个简单(但有效!)的度量来计算预测的mask与ground truth mask的准确性。计算预测值与ground truth的重叠面积,并除以预测值与ground truth的并集面积。

类似于Dice系数,这个度量指标的范围是从0到1,其中0表示没有重叠,而1表示预测与地面真实之间完全重叠。

训练和结果

优化这个模型,训练50多个epoch,使用Adam优化器,学习率1e-4,学习率衰减率为没10个epochs乘以0.1, 损失函数是二元交叉熵和Dice 系数的组合。

模型在27分钟内完成了36.6M可训练参数的训练,每个epoch大约需要32秒。

表现最好的epoch是第45个epoch(在50个epochs中)。

  • 二元交叉熵:0.2650

  • Dice系数:0.8104

  • IoU:0.8580

几个U-Net模型之间的指标进行比较,如下所示。

测试首先通过模型处理一些没见过的样本,来预测光学disc(红色)和光学cup(黄色)。这里是UNet++和U-Net的测试结果对比。

![](Biomedical Image Segmentation UNet++.assets/1_jhyAYAhCHizWt2qkGJmkEg.jpeg)

从指标表来看,UNet++在IoU上超越U-Net,但在Dice系数上表现较差。从定性测试的结果来看,UNet++成功地对第一张图像进行了正确的分割,而U-Net做得并不好。也由于UNet++的复杂性,训练时间是U-Net的两倍。必须根据它们的数据集评估每种方法。

总结

UNet++的目标是提高分割精度,通过一系列嵌套的,密集的跳跃路径来实现。重新设计的跳跃路径使语义相似的特征映射更容易优化。密集的跳跃连接提高了分割精度,改善了梯度流。深度监督允许模型复杂性调优,以平衡速度和性能优化。

—END—

英文原文:https://towardsdatascience.com/biomedical-image-segmentation-unet-991d075a3a4b

UNet++:以嵌套与密集连接重塑医学图像分割的精度边界 本文深入解析UNet++如何通过嵌套密集连接和深度监督机制,显著提升医学图像分割的精度与效率。相比传统U-Net,UNet++在边缘细节保留和小目标识别上表现更优,特别适用于CT、MRI等医疗影像分析,为肺癌、乳腺癌等疾病的早期诊断提供可靠技术支持。 阅读详情

相关推荐

【语义分割系列:六】Unet++ 论文阅读翻译笔记 医学图像 pytorch实现

UNet++ 2018 CVPR 周纵苇,发表论文时是一个在读二年级的博士,在亚利桑那州立大学念生物信息学。 UNet++: A Nested U-Net Architecture for Medical Image Segmentation 研习U-Net++ 1、Introduce UNet++与U-Net的区别: Re-designed skip pathways Deep supervi...

鹿鹿的博客 7511

医学分割数据集

医学数据集分割

long119513的博客 1405

【深度学习模型的训练与评估】Drishti-GS1数据集解释

Drishti-GS1 dataset consists of a total of 101 images.These have been divided into 50 training and 51 testing images.All the images have been marked by 4 eye experts with varying clinical experience. All images were collected at Aravind eye hospital, Madu.

NJU phd 在读。 1721

常用的医学组织切片细胞图像数据集

乳腺癌细胞图像数据集、血细胞图像数据集、HE染色切片、疟疾细胞图像 图像识别、分类、分割

new_0428的博客 2万+

Drishti-GS1_files 青光眼数据集

如果需要分割杯盘比来判断是否为青光眼,此数据集可以

眼科标准数据集Drishti-GS1

关于视盘与杯盘分割的标准数据集

FCN、Unet、Unet++:医学图像分割网络一览

作者丨Error@知乎来源丨https://zhuanlan.zhihu.com/p/159173338转自 | 极市平台导读本文先厘清了语义分割、实例分割和全景分割等定义的区别。在此...

机器学习算法那些事 1万+

医学图像分割数据集:胰腺病变图像分割数据集(包含训练集和测试集、标签)

医学图像分割数据集:胰腺病变图像分割数据集(包含训练集和测试集、标签) 【2类别的分割,背景、病变区域】 数据集介绍:分为训练集、测试集 训练集:images图片目录+masks模板目录,210张左右图片和对应的mask图片 测试集:images图片目录+masks模板目录,50张左右图片和对应的mask图片 除此之外,包含一个图像分割的可视化脚本,随机提取一张图片,将其原始图片、GT图像、GT在原图蒙板的图像展示,并保存在当前目录下 医学图像分割网络介绍:https://blog.youkuaiyun.com/qq_44886601/category_12102735.html

从FCN到UNET++:解码医学图像分割的演进之路

本文深入探讨了医学图像分割技术的演进历程,从FCN到UNet再到UNet++,详细解析了各阶段的技术突破与应用实践。重点分析了UNet++在医学图像分割中的创新设计,如密集嵌套跳跃连接和深度监督机制,以及在实际落地中的优化策略,为医学AI领域的研究与开发提供了宝贵参考。

weixin_33742618的博客 391

OpenRA引擎实战:如何从零开始搭建一个经典RTS游戏模组(附资源包)

本文详细介绍了如何利用开源游戏引擎OpenRA从零开始搭建经典RTS游戏模组。内容涵盖开发环境配置、资源管线处理、YAML规则定义、地图编辑与Lua脚本编写等全流程实战指南,并提供了资源包,帮助开发者和爱好者快速创建属于自己的即时战略游戏世界。

silver的专栏 907

RK3588嵌入式AI部署实战:从环境搭建到模型推理全链路

嵌入式AI部署涉及交叉编译、NPU驱动、模型量化与运行时环境等多个技术环节,其核心挑战在于软硬件版本矩阵的严格匹配。在边缘计算场景中,RK3588凭借6TOPS NPU算力成为热门平台,但环境搭建与模型转换的复杂性常导致部署效率低下。通过容器化工具链管理、量化参数对齐及多线程推理优化,可显著提升部署稳定性与推理性能。典型应用包括智能安防、工业质检与视频结构化分析。本文围绕RK3588的AI部署与环境搭建,系统梳理从系统烧录到板端推理的完整实践路径。

weixin_42520573的博客 284

收藏 | 医学图像分割:UNet++

来源:AI公园深度学习爱好者作者:Jingles(Hong Jing)本文约1900字,建议阅读8分钟本文为你介绍使用一系列的网格状的密集跳跃路径来提升分割的准确性。在这篇文章中,我们将探索UNet++: A Nested U-Net Architecture for Medical Image Segmentation这篇文章,作者是亚利桑那州立大学的Zhou等人。本文是U-Net的延续,我们...

数据派THU 610

从仿真曲线到电路状态:用Cadence Virtuoso深度剖析CS放大器各个工作区(以电流源负载为例)

本文通过Cadence Virtuoso平台,深入剖析电流源负载CS放大器在不同工作区的表现,从仿真曲线解读电路状态。详细介绍了如何通过Vout-Vin直流扫描曲线判断MOS管工作区域(截止区、饱和区、线性区),并验证理论与仿真的一致性,提升模拟IC设计调试效率。

weixin_30940783的博客 442

【深度学习】FCN、Unet、Unet++:医学图像分割网络一览

作者丨Error@知乎 来源丨https://zhuanlan.zhihu.com/p/159173338 转自 | 极市平台导读本文先厘清了语义分割、实例分割和全景分割等定义的区别。在此基础上,进一步分析了FCN、Unet、Unet++等算法在医学图像上的适用情况。先上目录:相关知识点解释FCN 网络算法的理解Unet 网络算法的理解Unet++ 网络算法的理解Unet+++ 网络算法的理...

fengdu78的博客 2187

深入解析FOC电流环PI参数整定:从理论到实践

本文深入解析了FOC(磁场定向控制)中电流环PI参数整定的核心原理与实践方法。文章从永磁同步电机模型出发,详细阐述了基于带宽与零极点对消的工程法及考虑逆变器延迟的二阶系统整定法两种经典策略,并提供了从理论计算到安全上电调试的完整步骤与常见问题解决方案,帮助工程师精准调校电机控制性能。

weixin_29164497的博客 452

STM32驱动2.8寸TFTLCD屏幕实战:从看懂原理图到点亮第一个像素(基于ILI9341)

本文详细介绍了如何使用STM32驱动2.8寸TFTLCD屏幕(基于ILI9341驱动芯片),从硬件连接到软件配置,包括FSMC接口设置、ILI9341初始化序列、坐标设置及基础绘图函数实现。文章还提供了常见问题排查指南和性能优化技巧,帮助开发者快速解决屏幕不亮等问题,并提升显示性能。

weixin_42665255的博客 268

医学图像语义分割最佳方法的全面比较:UNet和UNet++

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”作者:Sergey Kolchenko编译:ronghuaiyang导读在不同的任务上对比了UNet和UNet++以及使用不同的...

AI公园 3132

Yolov5自定义图片训练测试及模型调优(详细过程)

Yolov5自定义数据训练及测试1. 图像数据获取、标注2. 数据集划分及准备3. 配置训练参数,准备训练:3.1 修改data/训练配置xxx.yaml文件:3.2 修改models模型配置xxx.yaml文件4. 开始训练5. 测试训练后的模型: 1. 图像数据获取、标注 如果自定义训练自己的数据集,首先需要数据标注,至于数据来源可以是下载现有的开发数据集、拍照、爬虫等等。 如果是拍照、爬虫等获取的数据图片,需要进行数据标注,这个过程可以使用工具来做,但也需要一些手动操作 。。并且图片越多越好,如果

HowieXue 薛永浩的博客 10万+

UNet++深度解析:如何通过嵌套跳跃连接提升医学图像分割精度

本文深度解析UNet++如何通过嵌套跳跃连接提升医学图像分割精度。UNet++通过消除语义鸿沟、建立梯度高速公路和自适应计算机制,显著提升了边界识别精度,尤其在处理微小血管和弱边界问题时表现突出。在肝脏CT分割等任务中,其Dice系数高达0.94,成为医学图像分割领域的利器。

weixin_29038155的博客 228

详解【异质图卷积网络 RGCN】回顾:图神经网络问题的三大处理步骤 | 从起源说起,RGCN核心公式解释,两种降低模型参数量/优化的方式,附核心代码实现讲解

本篇,我们深入分析和学习RGCN的原理以及为何要这么做。首先让我们来回顾对于图神经网络问题的三大处理步骤,可以说,这是该深度学习模型的基本理解,后续都是在深化其中的细节处理。然后以容易理解的方式,引出异质图卷积网络RGCN的由来,主要讲解其核心公式和论文中作者所提出的两种降低模型参数量/优化的处理办法,并给出基础分解以及块对角分解的核心实现代码讲解。最后附上RGCN源代码及说明。

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 1281

基于高德地图的单车路径规划与绘制实战(Vue3 + TypeScript)【拓展:货车路径规划函数、限行检测、城市 Adcode】

✅ 支持单辆车路径规划✅ 自动绘制路线✅ 起点、终点、途经点标注✅ 自动缩放视野至全路径✅ 获取路线距离、时长、过路费✅ 提供清除功能✅ 路线信息保存至本文完整实现了一个基于高德地图 JS SDK + Vue3 + TypeScript的👉单车路径规划与绘制模块。核心亮点:清晰的结构;灵活的扩展性;实时路线信息记录(🚀 你可以很方便地将本模块集成到车联网、调度监控、地图展示类项目中。❤️ 如果这篇文章对你有帮助,别忘了:评论区交流 💬。

专注于前端开发与实战技巧,记录从零到一的学习与项目经验。分享 Vue3 / JavaScript / TypeScript / Flutter /Uniapp等前端技术,以及 性能优化、工程化、最佳实践。 1264
上一篇: Python之父,现在成为微软打工人!
下一篇: Self-Attention 加速方法一览:ISSA、CCNet、CGNL、Linformer
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值