在3D Slicer中使用 Monai Bundle 和 Model Zoo 标注医学影像数据-分割肾子结构:皮质髓质和集合系统

news2024/10/25 12:45:39

文章持续更新,可以关注微公【医学图像人工智能实战营】获取最新动态。人手有限,文中涉及的链接前往微公对应文章查看。关注Tina姐,一起学习进步~

在3D Slicer中使用 Monai Bundle 和 Model Zoo 标注医学影像数据-分割肾子结构:皮质髓质和集合系统

导读

本系列涵盖从 3D Slicer 医学图像查看器的基础使用到高级自动分割扩展程序的内容(从入门到高阶!),具体包括软件安装、基础使用教程,自动分割扩展(totalsegmentator, monai label)快速标注数据。

在本系列第三部分中,我们在工作站上安装了 MONAILabel 服务端和 MONAILabel 3D Slicer 客户端。在第四部分内容中,我们从一个简单的腹部CT脾脏分割案例开始,介绍了monai label使用的一些基础用法。在第五部分中,使用radiology app进行全脊柱的分割,并且详细介绍了radiology app所有用法。在第六部分中首次使用monai bundle 和model zoo里面的分割模型在MRI图像上分割全脑133个结构…

本节重点:在这一节中,我们展示了带有bundle应用程序的MONAI Label模型,用于CT肾子结构分割。

该系列之前的内容如下:
【添加链接】

Monai Bundle 和 Model Zoo简单介绍

MONAI Model Zoo 提供了一系列由社区开发的医学影像模型,采用 Monai Bundle 格式。Monai Bundle 允许您轻松获取任何来自 MONAI Model Zoo 的模型并将其导入 MONAILabel。

Model Zoo提供的模型包括MRI脑肿瘤分割,CT肺结节检测,病理细胞核分割分类,CT胰腺分割,MRI前列腺分割,CT肾脏分割,CT脾脏分割,MRI脑切片生成等20几个模型。后面会用单独的篇幅分别介绍这些预训练模型的使用。

MONAI Bundle 是一种基于规范和文件结构的方式,用于分发经过训练的 MONAI 模型以及相关元数据、代码、文档和其他资源。这些旨在让您更轻松地以某种格式分发模型,该格式说明了模型的用途、如何使用它、如何重现您用它完成的科学研究,并将其用于 Label 和 Deploy 等其他应用程序。详细的使用教程可以去monai bundle github

接下来我们将用更多案例来演示monai bunlde在3D slicer中的用法

增强 CT 肾子结构分割

在每一个教程开始前,会简单介绍这个预训练模型的基本信息,了解模型才能更好的适配模型,提高标注准确度。

模型描述

一个用于从增强CT图像(动脉期/门静脉期)进行体积(3D)肾脏子结构分割的预训练模型。提供了训练管道以支持使用 bundle 和 MONAI Label 主动学习进行模型微调。

模型概述

A pre-trained UNEST base model for volumetric (3D) renal structures segmentation using dynamic contrast enhanced arterial or venous phase CT images.

参考论文: https://arxiv.org/abs/2111.14791.

数据

训练数据来自范德堡大学和范德堡大学医学中心的[ImageVU RenalSeg 数据集]。(训练数据尚未公开)。

  • 目标:Renal Cortex | Medulla | Pelvis Collecting System(肾皮质 | 髓质 | 肾盂)
  • 任务:分割
  • 模态:CT(动脉期 | 静脉期)
  • 规模:96个3D体积数据

数据和分割示例如下:

输入和输出格式

输入:1通道CT图像,实际模型输入:96 x 96 x 96

输出:4类:0:背景,1:肾皮质,2:髓质,3:肾盂系统

在3D slicer中进行CT肾子结构分割

该系列的实战环节,步骤都是一样的,第一个案例写的会更详细一些。如有不清楚,请查看part4。

  • step1: 激活环境
conda activate monailabel
  • step2: 下载monaibundle app

如在之前的教程中下载过请忽略此步骤

monailabel apps --name monaibundle --download --output apps


可以前往图片上地址查看下载了什么

  • step3: 下载实验数据

这里没找到合适又好下载的增强期CT。Tina姐用的私有数据。如果没有增强CT可以用平扫CT替代演示。

  • step4:启动MONAI Label Server

在–conf models 参数中指定bundle名称。例如:renalStructures_UNEST_segmentation注意大小写

monailabel start_server --app apps/monaibundle --studies datasets/venous_abdomen/images --conf models renalStructures_UNEST_segmentation
  • step5: 自动分割

启动3D Slicer和MONAI Label插件,绿色刷新符号连接服务端,点击next sample加载数据,最后点击run等待自动勾画

  • step6: 运行自动推理并选择配置选项

预训练模型位于bundle的“models”文件夹中。例如,下载的预训练模型保存在“apps/monaibundle/model/wholeBody_ct_segmentation/models”文件夹中。

用户可以移动轴和切片来查看分割的正确位置。

用户可以在MONAI Label服务器终端中监控日志。

分割结果:

  • step7: 编辑注释并提交标签

用户可以使用MONAI Label分割编辑器手动编辑推理标签,点击Segment Editor面板。用户可以返回MONAI Label插件并点击Submit Label,将真实标签保存到文件系统。

注意:最终的注释将保存到研究数据集的labels/final文件夹中,例如,真实标签将保存到“datasets/Task09_Spleen/imagesTs/labels/final”文件夹中。

  • step8: 训练和微调模型

通过多次迭代进行训练和主动微调模型是常见的标注场景。当保存了新的标注标签时,用户可以随时训练他们的模型。点击Train按钮,MONAI Label服务器将获取保存的最终真实标签并微调先前的模型。

与Radiology应用程序类似,用户可以使用最新的微调模型进行自动分割。主动学习过程将选择未标记的批处理数据。

下一个图像将被选中,已经训练过的图像将被标记为已标记数据,因此不会在下一个标记批次中被选中。主动学习策略(如“first/random”)将用于选择要获取的未标记数据。

  • step9: 重复直到所有数据被标注和训练

重复数据获取和主动学习过程(参考step5-step8),直到所有未标记数据都被标注和训练。

对于每个训练循环,新最佳指标模型将保存在“model/model.pt”中。比如,保存在“apps/monaibundle/wholeBody_ct_segmentation/model/model.pt”。

总结

本教程演示了如何使用MONAI Label和monaibundle应用程序,介绍了使用CT 动脉期或门静脉期图像分割肾脏内结构(皮质,髓质,集合系统)。包括主动学习过程、自动推理、分割编辑器、提交标签和保存模型。monaibundle应用程序突出了MONAI Label的强大模型部署能力。

我是Tina, 我们下篇博客见~

白天工作晚上写文,呕心沥血

觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git安装-Tortoise git 安装汉化教程

1. 安装git 2. 安装git图形化工具Tortoise git 3. 汉化 Tortoise git 汉化安装包

架构师知识梳理(十):系统架构设计与评估

架构基本概念 软件架构:从需求分析到软件设计之间的过渡过程称为软件架构,软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成…

iOS 18.2 可让欧盟用户删除App Store、Safari、信息、相机和照片应用

升级到 iOS 18.2 之后,欧盟的 iPhone 用户可以完全删除一些核心应用程序,包括 App Store、Safari、信息、相机和 Photos 。苹果在 8 月份表示,计划对其在欧盟的数字市场法案合规性进行更多修改,其中一项更新包括欧盟用户删除系统应…

WebGL编程指南 - 高级变换与动画基础

学习使用一个矩阵变换库,该库封装了矩阵运算的数学细节。快速上手使用该矩阵库,对图形进行复合变换。在该矩阵库的帮助下,实现简单的动画效果。 矩阵变换库:cuon-matrix.js OpenGL中的函数: 书中 cuon-matrix.js 函数…

华为配置BFD状态与接口状态联动实验

组网图形 图1 配置BFD状态与接口状态联动组网图 BFD简介配置注意事项组网需求配置思路操作步骤配置文件 BFD简介 为了减小设备故障对业务的影响,提高网络的可靠性,网络设备需要能够尽快检测到与相邻设备间的通信故障,以便及时采取措施&…

机器学习中的图像处理与计算机视觉

引言 在现代计算机科学中,图像处理和计算机视觉已成为最活跃的研究领域之一,这得益于机器学习和深度学习的发展。本文将深入探讨图像处理与计算机视觉的基础概念、常见应用、关键技术、常用工具,以及在这些领域中的代码示例。通过本篇文章&a…

pytorch 交叉熵损失函数 BCELoss

BCE Loss 交叉熵损失函数计算公式: BCE Loss - 1/n*(y_actual * log(y_pred) (1 - y_actual) * log(1 - y_pred)) t[i]为标签值:0或者1 o[i]是经过sigmoid后的概率值 BCEWithLogitsLoss 这个损失将Sigmoid层和BCELoss合并在一个类中。 BCEWithLog…

OSPF特殊区域及其他特性

不用的链路这状态信息没必要一直保存,要不路由器承受不了。用OSPF 特殊区域解决 1. Stub区域和Totally Stub区域 R1作为ASBR引入多个外部网段,如果Area 2是普通区域,则R3将向该区域注入5类和4类LSA。 当把Area 2配置为Stub区域后&#xff1a…

Qt项目实战:汉中转拼音(大写字母,首字母)

目录 一.汉字转换 1.加载拼音数据 2.初始化简拼数组 3.汉字转换拼音 4.汉字转简拼 5.首字母 二.效果 1.汉字转拼音 2.汉字转简拼 3.首字母 三.代码 1.h 2.cpp 汉字转拼音的小程序不仅在教育和日常生活中发挥着重要作用,还促进了跨文化交流与信息传播。…

【ubuntu18.04】ubuntu18.04安装vmware-tools之后立即适应窗口为灰色,窗口不会自适应

问题描述 ubuntu18.04安装vmware-tools 点击查看,看到立即适应窗口为灰色 解决方案 关闭虚拟机 编辑此虚拟机 设置 注意 取消勾选拉伸模式 查看可以看到所有选项可选择 注意: 不要全屏的时候查看,全屏看到的立即适应窗口就会显示…

Web,RESTful API 在微服务中的作用是什么?

大家好,我是锋哥。今天分享关于【Web,RESTful API 在微服务中的作用是什么?】面试题?希望对大家有帮助; Web,RESTful API 在微服务中的作用是什么? 在微服务架构中,Web 和 RESTful …

秦时明月2搭建笔记

1.具体配置 数据库不修改,如果修改了,gm那边也要 2.数据库 3.上传配置文件出现问题 参考:对于测试时,错误信息 Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large-CSDN博客 4.启动tomcat&#x…

技术成神之路:设计模式(二十三)解释器模式

相关文章:技术成神之路:二十三种设计模式(导航页) 介绍 解释器模式(Interpreter Pattern)是一种行为设计模式,用于定义一种语言的文法表示,并提供一个解释器来处理这种文法。它用于处理具有特定语法或表达…

【资深码农】环境搭建篇

导航 MockingBird仿生环境搭建seleniumchrome爬虫环境搭建1.1 安装selenium1.2 安装chrome driver1.3 测试1.4 常见问题驱动不一致原因解决办法最新版本获取 自动下载驱动 NLTK环境搭建opencv环境搭建pytorch环境搭建pyspark环境搭建1 安装环境1.1 jdk下载安装1.2 Scala下载安装…

零售行业 Web EDI 解决方案——知行之云LIP系统操作详解

通过浏览器,用户可以轻松访问知行之云LIP系统,便捷管理订单、发货等操作。如何低成本、高效地实现与主流电商平台的EDI对接?用户对接不同的交易伙伴,可能会遇到不同的EDI需求,这时就需要做个性化定制。本文将以零售行业…

Redis+Lua限流的四种算法

1. 固定窗口(Fixed Window) 原理: 固定窗口算法将时间划分为固定的时间段(窗口),比如 1 秒、1 分钟等。在每个时间段内,允许最多一定数量的请求。如果请求超出配额,则拒绝。 优点…

解锁流量密码:TikTok常见引流方式分享

在这个TikTok这个竞争激烈但又遍布商机的平台上,如何有效地引流,尤其是对于新手来说,是一个重要的课题。本文将详细介绍TikTok的几种常见引流方式,并为新手提供切实可行的引流策略,以帮助他们在平台上获得更高的曝光率…

Java 字节流:高效处理二进制数据

前言 字节流是 Java I/O 系统的一部分,专门用于处理字节数据。由于所有数据在计算机中最终都以字节形式存在,这意味着字节流可以操作任何类型的数据,包括文本、图片、视频等。 Java 提供了多种字节流类,这些类继承自 InputStrea…

Python 爬虫项目实战:爬取某云热歌榜歌曲

一、网络爬虫的定义 网络爬虫(Web Crawler),也成为网页蜘蛛或者网页机器人,是一种按照既定规则自动浏览网络并提取信息的程序。爬虫的主要用途包括数据采集、网络索以及内容抓取等。 二、爬虫基本原理 1、种子URL:爬…

使用Python循环地画一个简单的爱心 - 烂漫教程

运行软件:pycharm 画一个爱心的代码: import turtle def print_love1():# 设置画笔颜色和粗细turtle.pencolor("red")turtle.pensize(6)# 绘制爱心turtle.fillcolor("pink")turtle.begin_fill()turtle.left(45)turtle.forward(100…