ImageCHD2021——先天性心脏病全心脏分割
今天将分享先天性心脏病全心脏结构分割完整实现版本,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。
一、ImageCHD2021介绍
先天性心脏病 (CHD) 是出生时出现的心脏结构问题,是最常见的出生缺陷类型。近年来,计算机断层扫描 (CT) 等非侵入性成像技术已在综合冠心病的诊断、干预决策和定期随访。然而,这些医学图像的分析(例如,分割或分类)通常由经验丰富的心血管放射科医生手动执行,这非常耗时并且需要高度专业化的领域知识。另一方面,先心病医学图像的自动分割和分类是相当具有挑战性的。CHD患者的心脏结构和不同解剖部位之间的连接通常存在严重差异。此外,先心病不一定会引起局部组织变化,如病变。因此,患有先心病的心脏与正常心脏具有相似的局部统计数据,但整体结构是有变化的。检测疾病的自动算法需要能够捕获此类变化。由于患者的CT图像可能表现出不止一种类型的CHD,并且类型的数量超过20种,CHD分类进一步复杂化。正常解剖心脏的分割和分类存在各种工作,其中大部分是基于深度神经网络 (DNN)。最近,研究人员开始探索 CHD 中的心脏分割。文献中唯一的冠心病自动全心和大动脉分割方法采用了基于深度学习和形状相似性分析的方法。除了分割,还有一些关于成人心脏病分类的文献,但没有CHD。由于先心病的复杂性和数据集的缺乏,先心病的自动分类在文献中仍然是一个缺失的部分。
ImageCHD是第一个用于 CHD 分类的医学图像数据集。ImageCHD包含110张3D计算机断层扫描 (CT) 图像,涵盖 16 种类型的 CHD。CT 图像由四名经验丰富的心血管放射科医师组成的团队进行7个子结构分割和CHD类型分类进行标记。
二、ImageCHD2021任务
CHD全心结构分割,包括七个全心脏子结构的(1)左心室血腔;(2)右心室血腔;(3)左心房血腔;(4)右心房血腔;(5)心肌;(6)主动脉;(7) 肺动脉。
三、ImageCHD2021数据集
ImageCHD 数据集由 Siemens biograph 64 机器从 110 名患者中捕获的 3D CT 图像组成,年龄在 1 个月到 40 岁之间(大部分在1个月到2岁之间)。图像大小为512×512×(129-357),典型体素大小为0.25×0.25×0.5mm3。数据集涵盖CHD 16种类型,其中包括8种常见类型(房间隔缺损(ASD)、 房室间隔缺损 (AVSD)、动脉导管未闭 (PDA)、肺动脉闭锁 (PuA)、室间隔缺损 (VSD)、共缩窄 (CA)、法洛四联症 (TOF) 和大动脉转位 (TGA))加上8种不常见类型(肺动脉吊带(PAS),双出口右心室(DORV),总动脉干(CAT),双主动脉弓(DAA),异常肺静脉引流(APVC),主动脉弓发育不全(AAH), 中断的主动脉弓 (IAA), 双上腔静脉 (DSVC))。由于结构复杂,包括分割和分类在内的标记由四名心血管放射科医生组成的团队执行,他们具有丰富的冠心病经验。每张图像的分割标签仅由一名放射科医生完成,其诊断由四名医生完成。标记每个图像的时间平均约为 1-1.5 小时。分割包括七个子结构:LV、RV、LA、RA、Myo、AO和PA。
数据下载链接:https://github.com/XiaoweiXu/ImageCHD-A-3D-Computed-Tomography-Image-Dataset-for-Classification-of-Congenital-Heart-Disease
四、技术路线
1、采用固定阈值(800,图像最大像素值)进行分割,再采用形态学开操作(核大小是3)和最大连通域得到心脏ROI区域,去除多余的背景。
2、统计ROI中值大小是512x397x275,Spacing中值大小是0.316x0.316x0.75。ROI图像像素值截断设置(1,99),然后采用z-score归一化方式进行归一化处理,将图像缩放到固定大小为256x256x240,将数据划分成训练集(100例)和验证集(10例),其中训练集进行5倍数据增强。
3、搭建VNet3d网络,使用AdamW优化器,学习率是0.001,batchsize是1,epoch是300,损失函数采用多类dice和ce。
4、训练结果和验证结果
5、验证集分割结果
左图是金标准分割结果,右图是网络预测结果。
6、测试集分割结果
为了方便大家更高效地学习,我将代码进行了整理并更新到github上,点击https://github.com/junqiangchen/PytorchDeepLearing即可访问。由于之前都是使用tensorflow1.14的进行代码实验开发的,为了方便pytorch的朋友们也可以复现实验结果,我将tensorflow版本的代码翻译转换成pytorch版本的。
如果大家觉得这个项目还不错,希望大家给个Star并Fork,可以让更多的人学习。如果有任何问题,随时给我留言我会及时回复的。
相关文章
- java中的NIO和IO到底是什么区别?20个问题告诉你答案
- 数据结构001:最大子数组和
- 数据结构002:买卖股票的最佳时机
- 怎样优化Vue项目
- 数据结构003:有效的数独
- 家电行业的数字化升级:电子采购平台系统如何助力企业降本增效,提升采购协同效率?
- 六西格玛工具:柏拉图
- 友元类和嵌套类
- RTTI和类型转换运算符
- YAML快速入门
- 提升汽配供应链效率,S2B2C电商系统实现企业库存管理智能化
- 虚拟现实 VR 碰撞 3D 可视化,图扑打造一体化管控平台
- 一篇文章教你实战Docker容器数据卷
- 一起从零到一手写迷你版Vue
- 一起实现React-Hooks核心原理
- 内部群炸锅了,同事又删库了
- 一女程序员因薪酬问题离职,rm -f * 删库,瘫痪6个小时,被判9个月
- 广域铭岛参编《数智化供应链参考架构》标准正式发布
- 每周 Postgres 世界动态 2022w49
- 公司架构师常常提起的DNS负载均衡是个什么鬼?