影像组学实战体系 · 第 2 卷 / 共 6 卷

从 DICOM 物理量到可比较的体素空间

本卷导读

系统讨论 DICOM/NIfTI 数据模型、图像格式选择、各向同性重采样、空间配准与强度标准化,并给出常见错位、插值与批处理问题的工程处理原则。

知识结构

  1. 数据模型与格式选择
  2. 重采样与空间归一化
  3. 配准与多模态对齐
  4. 强度标准化与灰度离散化

数据模型与格式选择

影像组学的第一道误差往往发生在读入数据时。像素值、几何信息、方向矩阵与掩膜坐标系必须作为一个整体理解;JPEG 等有损压缩图像不适合定量分析。

AFNI 是医学影像处理领域功能极为强大的 DICOM 转 NIfTI 工具套件之一。

其次MRIcroGL也很常用,轻量级,且支持Windows,linux,MacOS三平台。

临床 PACS 系统导出的原始数据通常为二维序列切片组成的 DICOM 文件夹,而在影像组学批处理流水线中,将其转换为包含三维空间仿射变换矩阵(Affine Matrix:Origin、Spacing、Direction)的单文件 NIfTI(.nii / .nii.gz)或 NRRD 格式可显著提升数据读取效率并实现患者隐私脱敏。除 AFNI 与 MRIcroGL 内置的 dcm2niix 引擎外,科研工程中常直接通过命令行调用 dcm2niix 或使用 Python 的 SimpleITK.ImageSeriesReader 进行自动化批量转换。

理论上可以做,但不同研究上的效果未可知。因为jpg等图片格式的灰度范围(或称为"窗宽")通常不如专业医学影像格式(如nifti,dicom等)大。在严肃的定量医学影像与影像组学研究中,应始终坚持使用原始 DICOM 或无损转换的 NIfTI/NRRD 等专业医学图像格式。

  1. DICOM文件的头文件里包含重要信息,是普通图片格式没有的。
  2. DICOM文件的“灰阶”范围比普通图片大得多。

在临床科研实践中,部分研究者因直接从 PACS 导出原始 DICOM 序列流程繁琐,倾向于直接截取或导出 PNG、JPG 等常规位图格式。然而,从定量图像分析与物理可重复性角度来看,PNG、JPG 等常规图片格式并不适用于标准影像组学研究,其根本原因在于 DICOM 医学影像标准所承载的物理元数据与高动态灰阶位深。

DICOM全称Digital Imaging and Communications in Medicine,中文一般翻译为“医疗数字影像传输协定”。严格来讲,DICOM不仅是一种影像格式,还包含网络传输协议。是由多家协会制定的,对医学影像进行处理、储存、打印、传输的标准协定。它涵盖几乎所有临床医学影像,包括X射线,CT,核磁共振,超声等。目前采用的是DICOM 3.0版本协议。

DICOM文件由Header头文件以及Image影像两部分构成。

DICOM的Header头文件是我们平时使用的png、jpg等图片文件所没有的。Header里面包含了什么呢?主要包括四类信息:Patients病人信息,Study检查信息,Series序列信息以及Image图像信息。

序列信息包括检查模态(MRI,CT,DR等),影像层厚等信息。

影像信息对医学影像相关的研究可能至关重要,因为里面包含了图像采样率、分辨率、像素物理间距等等。

从这里我们可看到,例如我们想计算ROI(感兴趣区)体积时,Header中的像素物理距离就成了必不可少的。而这是png、jpg文件无法提供的。

Png、jpg一类的图像通常是0 ~ 255,共256灰阶表示。例如CT影像的中“灰度”的单位是Hounsfield,简称Hu,范围是-1024 ~ 3071(通常转换到0 ~ 4096范围)。且定义水的吸收率为0 Hu。由此可见,DICOM比普通图片格式有着更加精细的“灰度分辨率”。

关于 DICOM 3.0 标准中各类 Tag(如 (0028,0030) Pixel Spacing、(0018,0050) Slice Thickness、(0028,1052) Rescale Intercept、(0028,1053) Rescale Slope)的完整规范定义,可进一步参阅 NEMA DICOM 标准技术文档。

通过某些软件(例如3d slicer)画roi后,其他软件打开影像文件和mask文件错位。

问题所在:有些软件勾画roi保存后,仅保存了roi部分数据而不是全部数据,因此可能存在其他软件打开出错问题。可通过代码重建roi文件。

使用 3D Slicer、ITK-SNAP 等工具勾画并导出 ROI 掩膜后,若在第三方软件或 Python 脚本中加载出现空间错位或裁剪尺寸不匹配,通常是因为保存时勾选了最小边界框裁剪(Crop to minimum bounding box)或不同软件对世界坐标系方向(RAS vs LPS)及仿射矩阵(Origin、Spacing、Direction)的处理不一致。在 SimpleITK 中,可通过resampler = sitk.ResampleImageFilter();resampler.SetReferenceImage(image);resampler.SetInterpolator(sitk.sitkNearestNeighbor);aligned_mask = resampler.Execute(mask) 将掩膜严格重采样映射回原始图像的物理网格。

重采样与空间归一化

不同设备的层厚、像素间距与扫描方向并不一致。重采样把体素映射到共同空间,但插值方式、目标间距与执行顺序都会改变特征分布。

重采样之后画感兴趣区一般会更准确,但大多重采样都会增加影像层数,增加勾画感兴趣区的工作量,且重采样之前勾画的感兴趣区也会相应地进行“重采样”,因此先勾画感兴趣区,再进行重采样是可以的。

在影像组学标准预处理流水线中,重采样(Resampling)与感兴趣区(ROI)勾画的先后顺序涉及体素插值精度与人工标注工作量的权衡:原始临床图像通常由医师直接在原始空间分辨率下完成 ROI 勾画(特别是厚层 CT/MRI,层数适中、解剖边界清晰),随后在特征提取前同步对原始图像(采用 B 样条或双线性插值sitkBSpline / sitkLinear)与二值掩膜(必须采用最近邻插值 sitkNearestNeighbor,防止产生非整数模糊标签值)执行各向同性重采样(如 1×1×1 mm³)。PyRadiomics 内置的 interpolator 与 resampledPixelSpacing 参数即默认遵循“先在原始图像勾画、后在提取阶段同步重采样图像与掩膜”的标准机制。

在影像组学研究过程中,图像重采样是一个重要的预处理步骤,原因如下:

  1. 不同来源的图像分辨率可能不同:医学图像可能来自于不同的设备、不同的扫描参数或者不同的患者。这些图像的空间分辨率(即每个像素或体素所代表的实际空间大小)可能存在差异。为了在分析过程中消除这种差异,需要将所有图像重采样到相同的空间分辨率。

  2. 方便特征提取和计算:在影像组学中,需要从图像中提取大量的特征,如形状、纹理、信号强度等。重采样后的图像具有相同的空间分辨率,有利于计算和比较这些特征。此外,一些特征提取算法可能对图像的分辨率有特定的要求,重采样可以确保所有图像满足这些要求。

  3. 加速计算和降低计算资源需求:在某些情况下,将图像重采样到较低的分辨率可以减小图像的尺寸,从而加速计算过程并降低计算资源的需求。然而,这种操作需要权衡,因为降低分辨率可能会丢失一些细节信息。

  4. 方便多模态图像融合:影像组学研究中,有时需要将多种类型的图像(如 CT、MRI、PET 等)进行融合分析。这些图像的空间分辨率可能存在差异。通过图像重采样,可以将它们对齐到相同的空间分辨率,从而方便进行融合分析。

在影像组学研究过程中,选择合适的图像重采样参数对于保证分析质量和准确性至关重要。以下是在选择图像重采样参数时需要考虑的一些建议:

  1. 目标分辨率:首先,要确定重采样后的目标分辨率。通常,目标分辨率应该基于研究中涉及的图像类型和设备的分辨率范围。可以选择一个具有代表性的中间值,或者参考相关领域的研究文献。选择目标分辨率时,需要权衡计算效率和图像质量。较高的分辨率可以保留更多的细节信息,但计算资源需求和计算时间也会增加。

  2. 插值方法:插值方法是在重采样过程中计算新像素或体素值的算法。常见的插值方法包括最近邻插值、双线性插值、双三次插值和三次样条插值等。不同插值方法具有不同的计算复杂度和重采样效果。在选择插值方法时,需要考虑计算效率、图像质量和应用场景。例如,对于需要保留尖锐边缘的场景,最近邻插值可能是一个较好的选择,而对于需要平滑插值的场景,双三次插值或三次样条插值可能更合适。

  3. 重采样策略:在进行图像重采样时,可能需要考虑图像的对齐和配准问题。例如,在多模态图像融合的场景中,需要确保不同模态图像在空间上正确对齐。这可能涉及到刚性或非刚性的图像配准方法。在处理时间序列数据时,需要考虑如何在时间维度上进行重采样。

  4. 验证和评估:在选择图像重采样参数后,需要对重采样效果进行验证和评估。可以通过定性和定量的方法评估图像质量、特征提取的稳定性以及重采样对分析结果的影响。如果可能,可以尝试多种参数组合,并在交叉验证或独立测试数据集上进行评估,以确定最佳的重采样参数。

在实际研究中,选择合适的参数需要根据具体的应用场景和需求进行权衡。

影像组学的预处理包括一系列步骤,以确保图像质量和特征的可靠性。预处理步骤可以减少噪声、消除偏差并改善后续特征提取的准确性。

  1. 图像重采样:将图像重采样为统一的像素间距,以消除不同扫描设备和参数带来的差异。

  2. 图像标准化:对图像进行标准化,使得不同来源的图像具有相似的灰度分布,以便于后续的特征提取和比较。

  3. 图像滤波:应用不同的滤波器(如高斯滤波器、中值滤波器等)以减少图像噪声和伪影。这有助于提高特征提取的准确性和稳定性。

  4. 图像分割:将感兴趣区域(ROI)从背景中分离出来。这可以通过手动、半自动或全自动的分割方法来实现。

  5. 图像去假影:在某些情况下,需要对图像进行去假影处理,以消除由于设备或扫描过程中的伪影对特征提取的影响。

  6. 灰度量化:将图像的灰度级别离散化为有限数量的级别。这可以减少计算复杂性,并有助于减少噪声对特征提取的影响。

  7. 数据增强:在某些情况下,可以使用数据增强技术(如旋转、平移、翻转等)增加训练样本的数量,以改善模型的泛化能力。

请注意,预处理步骤可能因研究目的和影像类型的不同而有所不同。在进行预处理时,务必确保对数据进行充分理解,以选择合适的预处理步骤。

影像组学中的重采样是将图像调整为统一的像素间距,从而消除由于不同设备和扫描参数引起的差异。

  1. 目标像素间距:选择一个目标像素间距,使得所有图像在重采样后具有相同的空间分辨率。这个值应该根据研究需求和图像数据集的实际情况来确定。目标像素间距应该足够小以保持原始图像中的细节,同时足够大以避免过大的计算负担。

  2. 插值方法:选择一种插值方法来估算新像素间距下的像素值。常用的插值方法包括最近邻插值、双线性插值、双三次插值和高斯插值等。插值方法的选择取决于图像类型、研究目的和计算资源。双线性插值和双三次插值在保持图像细节和平滑度方面的表现较好,但计算复杂度也相对较高。

  3. 重采样方向:对于3D图像,需要考虑在哪些方向上进行重采样。例如,对于CT和MRI图像,通常需要在x、y和z轴上进行重采样。对于某些2D图像,可能只需要在x和y轴上进行重采样。

  4. 边界处理:在重采样过程中,需要处理边界像素的情况。一种常用的方法是使用边界扩展(如零填充、镜像扩展等)来处理边界区域。

  5. 保持物理坐标一致性:在重采样过程中,需要确保新图像的物理坐标与原始图像保持一致。

在实际操作中,可以尝试不同的参数和方法,观察其对特征提取和分析结果的影响,以确定最佳方案。

配准与多模态对齐

配准解决不同时间、不同模态或不同体位之间的空间对应关系。刚性、仿射与形变配准适用于不同场景,不能互相替代。

此外3D Slicer组间也可进行配准。SimpleITK包可支持多种编程语言进行图像配准。

在多序列 MRI(如 T1WI、T2WI、FLAIR、DWI、DCE-MRI)或纵向随访影像组学研究中,不同序列或时间点间常存在空间位移与层厚差异,需通过刚性(Rigid)、仿射(Affine)或可变形(Deformable B-spline)配准将多模态图像对齐至统一解剖参考空间。ANTs(Advanced Normalization Tools,及其 Python 封装 ANTsPy)基于对称微分同胚映射(SyN)算法,配准精度在神经影像与肿瘤多模态研究中处于国际公认领先地位;FSL(FLIRT/FNIRT)与 Elastix/SimpleITK 则提供高吞吐、易脚本化的批处理配准能力。

在影像组学研究过程中,进行图像配准的情况主要包括以下几种:

  1. 多模态图像融合:当研究涉及不同类型的图像(如 CT、MRI、PET 等),这些图像可能具有不同的空间分辨率和形状,需要通过图像配准将它们对齐到相同的空间坐标系,以便进行融合分析。例如,结合 PET 和 CT 图像来提取肿瘤的代谢和形态特征。

  2. 长期随访和动态观察:在患者随访或动态观察过程中,可能需要多次获取同一患者的图像。由于时间间隔、患者体位和扫描设备的变化等因素,这些图像可能存在空间差异。通过图像配准,可以将不同时间点的图像对齐,以便进行比较和分析,例如评估治疗效果或疾病进展。

  3. 基于图谱的特征提取:在某些影像组学研究中,需要将图像映射到一个预定义的图谱(如脑图谱)上,以便提取基于图谱的特征。这需要将原始图像与图谱进行配准,以确保空间对齐。

  4. 多中心研究:在多中心研究中,数据可能来自于不同的扫描设备和参数设置,导致图像存在空间差异。为了确保影像组学特征的可比性和稳定性,需要进行图像配准来消除这些差异。

  5. 人群研究:在人群研究中,可能需要将来自不同个体的图像进行对比和分析。由于个体差异和扫描条件的变化,这些图像可能存在空间差异。通过图像配准,可以将不同个体的图像对齐到一个共同的空间坐标系,以便进行比较和分析。

图像配准有助于确保空间对齐,提高影像组学特征的可比性和稳定性。

强度标准化与灰度离散化

设备与扫描参数造成的强度漂移会直接改变纹理特征。强度归一化、ComBat 与直方图离散化需要在特征提取前统一设计。

  1. 归一化(Normalization):通过缩放像素值将图像统一到同一尺度,可以减小因设备和扫描参数引起的差异。常见的归一化方法有 Z-score 标准化、最大最小值归一化等。

  2. 重采样(Resampling):为了消除空间分辨率的差异,可以对图像进行重采样,将所有图像的分辨率统一到相同的尺度。常用的重采样方法有最近邻插值、双线性插值、三次样条插值等。

  3. 信号强度矫正(Bias Field Correction):通过消除图像的非均匀照明效应来改善图像的信号强度。常用的方法有 N4ITK、N3 等。

  4. 直方图匹配(Histogram Matching):通过调整图像的直方图以匹配参考图像的直方图,可以减小因设备和扫描参数引起的差异。

  5. 批次效应校正(Batch Effect Correction):利用统计方法消除不同批次数据之间的系统性差异。常用的方法有 ComBat、Harmonization 等。

  6. 机器学习和深度学习方法:可以使用无监督或有监督的机器学习方法,如主成分分析(PCA)、自动编码器(AE)等,以减小不同影像间的差异。

  7. 影像组学特征筛选和稳定性评估:在特征提取阶段,可以筛选出稳定性较高的特征,以减少因设备和扫描参数引起的差异对分析结果的影响。

  8. 标准化操作流程:在实际操作过程中,建立统一的操作规范和流程,以降低设备和扫描参数差异对影像质量的影响。

在实际应用中,可能需要结合多种方法来消除不同影像间因设备和扫描参数引起的差异,以提高影像组学研究的准确性和可靠性。

在影像组学特征提取过程中,直方图的箱宽(bin width)或箱数(bin number)的选择是一个重要的参数调整问题。正确的箱宽或箱数选择可以保证特征的有效性和稳定性。

  1. Scott's Rule:根据数据的样本数量和标准差来估计最佳箱宽。Scott's Rule 的公式为:bin width = 3.5 * σ / (n⅓),其中 σ 是数据的标准差,n 是样本数量。根据数据范围和所得到的箱宽计算箱数。

  2. Freedman-Diaconis Rule:根据数据的四分位距(Interquartile Range, IQR)和样本数量来估计最佳箱宽。Freedman-Diaconis Rule 的公式为:bin width = 2 * IQR / (n⅓),其中 IQR 是数据的四分位距,n 是样本数量。同样,根据数据范围和所得到的箱宽计算箱数。

  3. Sturges' Rule:根据数据的样本数量估计箱数。Sturges' Rule 的公式为:bin number = 1 + 3.322 * log10(n),其中 n 是样本数量。这个方法适用于正态分布数据,但在其他分布类型的数据中可能不太准确。

  4. 平方根法:箱数等于数据样本数量的平方根,即 bin number = sqrt(n),其中 n 是样本数量。这种方法适用于简单的数据分析,但可能不是最优的选择。

  5. 经验选择:对于具体的问题和应用,可以根据经验或领域知识来确定合适的箱宽或箱数。通过尝试不同的参数,并评估结果的稳定性和有效性,可以找到适用于特定问题的最佳参数。

在实际应用中,可能需要尝试多种方法并比较结果,以确定最合适的参数。

目前,尽管许多研究倾向于固定的bin数而非固定的bin宽度,但并没有硬性证据表明在所有情况下固定的bin宽度或固定的bin数更优。PyRadiomics实现了设置固定的bin数(binCount)和固定的bin宽度(binWidth,默认值)两种选项。

之所以选择固定的bin宽度作为默认参数,部分原因在于PET研究表明,采用固定的bin宽度能更好地保证特征的可重复性。以下示例最能说明我们的理由:假设有两幅图像和两个ROI,第一幅图像的灰度值范围为{0-100},第二幅图像的灰度值范围为{0-10}。如果您使用固定的bin数,则1(离散化)灰度值差异的"意义"是不同的(在第一个ROI中,它表示10个灰度值的差异,在第二个ROI中只是1)。这意味着您所看到的基于纹理的对比度有很大不同。

这个例子假设两个图像的原始灰度值意义相同,在灰度值明确/绝对的图像(如CT的HU值、PET成像中的SUV值)中,这是成立的。在任意/相对灰度值的图像中(例如MR中的信号强度),这不一定成立。在后一种情况下,我们仍然建议采用固定的bin宽度,但要进行额外的预处理(例如归一化),以确保更好的灰度值可比性。在这种情况下,使用固定的bin数也是可能的,但计算出的特征仍可能受到图像中灰度值范围的影响,以及由于原始灰度值不太可比而产生的噪声。无论采用什么类型的灰度值离散化方法,都必须采取措施确保良好的可比性,因为一阶特征主要使用原始灰度值(无离散化)。

有一个关于每个bin宽度该选择多少的问题。目前文献中并没有具体的指导建议,而我们尝试选择一个bin宽度,以便最终的bin数量在30到130之间,这在文献中针对固定的bin数显示了很好的可重复性和性能[2]。这允许ROI中强度的不同范围,同时仍然保持纹理特征的信息性(和病变之间的可比性)。


— 感谢阅读 —

一起交流

分享你的思考,让讨论更进一步。