今天将分享CT胸部器官分割完整实现版本,为了方便大家学习理解整个流程,将整个流程步骤进行了整理,并给出详细的步骤结果。感兴趣的朋友赶紧动手试一试吧。
一、SegTHOR2019介绍
该挑战赛为了解决计算机断层扫描 (CT) 图像中处于危险中的器官分割问题。在肺癌和食管癌中,放射治疗是一种治疗选择,放射治疗计划从描绘目标肿瘤和位于目标肿瘤附近的健康器官开始,在 CT 图像上称为风险器官 (OAR)。通常,勾勒主要是手动的,这是很乏味且可能是再现性错误的来源。对于某些器官(例如食道),分割尤其具有挑战性:患者之间的形状和位置差异很大,CT 图像中的轮廓对比度低,可能还不存在。
二、SegTHOR2019任务
自动分割4个器官:心脏、主动脉、气管、食道。
三、SegTHOR2019数据集
挑战赛提供了40例CT训练集包含标注结果。20例CT测试集,不包含标注结果。
CT数据具有 512 x 512 像素大小,平面分辨率在每个像素 0.90 毫米到 1.37 毫米之间变化,具体取决于患者。切片的数量从 150 到 284 不等,z 分辨率在 2mm 到 3.7mm 之间。最常见的分辨率是 0.98x0.98x2.5 mm3。
在标注每例CT数据时,均由经验丰富的放射肿瘤学家 Pr Bernard Dubray 使用美国帕洛阿尔托 Varian Medical Systems, Inc的SomaVision平台标注。使用平台上可用的自动工具对身体和肺部轮廓进行分割。食管是从第 4 颈椎到食管-胃交界处手动划定的。按照放射治疗肿瘤学组2的建议描绘心脏。气管的轮廓从喉部下限到角膜下方2厘米,不包括叶支气管。主动脉从心脏上方的起点向下延伸到横膈膜柱下方。
评估指标
使用以下方法根据真实情况评估预测轮廓:overlap Dice metric (DM),基于作为分割算法结果的像素标记,定义为 2*自动和手动区域的交集/(自动和手动区域的总和);Hausdorff 距离 (HD),定义为 max(ha,hb),其中 ha 是所有自动轮廓点到最近的手动轮廓点的最大距离,hb 是所有手动轮廓点到最接近的手动轮廓点的最大距离最近的自动轮廓点。由于空间分辨率,Hausdorff 距离以毫米为单位计算。DM 和 HD 是互补的指标,可以很好地了解分割方法的全局准确性。它们将针对4个风险器官中的每一个独立计算。
四、技术路线
1、采用固定阈值(-300,图像最大像素值)进行分割,再采用形态学开操作(核大小是3)和最大连通域得到人体ROI区域,去除多余的背景。
2、统计ROI中值大小是490x277x178,Spacing平均大小是0.976x0.976x2.5。ROI图像窗宽窗位截断设置(-500,200),然后采用z-score归一化方式进行归一化处理,将图像缩放到固定大小为320x256x192,将数据划分成训练集(36例)和验证集(4例),其中训练集进行10倍数据增强。
3、搭建VNet3d网络,使用AdamW优化器,学习率是0.001,batchsize是1,epoch是300,损失函数采用多类dice和ce。
4、训练结果和验证结果
5、验证集分割结果
左图是金标准结果,右图是网络预测结果。
6、测试集部分分割结果
7、测试集排行榜结果
为了方便大家更高效地学习,我将代码进行了整理并更新到github上,点击原文链接即可访问。由于之前都是使用tensorflow1.14的进行代码实验开发的,为了方便pytorch的朋友们也可以复现实验结果,我将tensorflow版本的代码翻译转换成pytorch版本的。