无现成mask时基于U-Net的医学CT语义分割:RT结构DICOM可否直接用?
核心结论
不可以直接用原始RT结构格式的.dcm文件作为U-Net的训练标签,几乎所有场景下都需要把RT结构里的勾画轮廓转换为和CT影像逐像素对齐的mask。
为什么不能直接用原始RT结构文件
- 原始RT结构.dcm本质存储的是医师勾画的多边形轮廓坐标点集,不是栅格化的像素矩阵,既没有和CT影像完全一致的分辨率,也没法直接和CT像素做逐像素的对应。
- U-Net的训练逻辑要求输入CT张量和标签张量的空间维度、坐标映射完全匹配,才能计算Dice、交叉熵这类逐像素损失,靠零散的轮廓点根本没法完成这类计算。
- RT结构的文件逻辑是为临床勾画场景设计的:所有器官、肿瘤的轮廓都存在同一个文件里的独立条目下,没有预先按类别拆分好对应每个像素位置的标签值。
落地操作的注意事项
- 轮廓转mask的流程没有想象中复杂:先读取单病例所有薄层CT的空间元信息(像素间距、坐标原点、层厚、扫描方向),再读取RT结构内每个勾画的轮廓点,按照CT的空间坐标系把闭合轮廓填充为对应扫描层的二值mask,最后按器官/肿瘤类别堆叠成多通道的标签张量即可。
- 新手做转换时最容易踩的错位坑:
- 一定要核对每个轮廓对应的CT层位置,避免把轮廓错配到相邻扫描层上
- 必须做CT像素坐标和世界坐标的换算,不然容易出现mask和影像整体偏移的问题
- 不需要自己从零手写轮廓填充的逻辑,用成熟的医学影像处理工具可以直接完成栅格化步骤
- 不存在可以跳过转mask的“捷径”:哪怕你用专门适配医学影像的分割工具链,底层读入RT结构之后也会自动帮你完成栅格化,把轮廓转成逐像素的mask再喂给网络,这一步是训练流程里必须完成的环节,绕不开。
内容的提问来源于stack exchange,提问作者jonedabb
相关产品推荐
相关产品推荐

