专栏首页Python编程和深度学习医学影像组学特征值(Radiomics Features)提取之Pyradiomics(一)理论篇

医学影像组学特征值(Radiomics Features)提取之Pyradiomics(一)理论篇

医学影像组学特征值(Radiomics Features)提取之pyradiomics(一)理论篇

pyradiomics是一个开源的python软件包,可以从医学影像中提取出Radiomics影像组学特征,其支持2D和3D中的特征提取,在2.0版开始,pyradiomics还实现了基于voxel-based体素的提取,但提取需要时间较长,输出为由参数映射的SimpleITK图像,而不是针对每个特征的float值。 SimpleITK支持的所有图像类型可以用作PyRadiomics的输入。

一、安装方法 1.Install via pip通过pip安装 确保Python已经安装的环境下,安装PyRadiomics: python -m pip install pyradiomics 2.Install via conda通过conda安装 要在Conda环境下上安装PyRadiomics: conda install -c radiomics pyradiomics 3.Install from source源代码安装 Pyradiomics支持从源代码安装,但由于附带了计算纹理矩阵和某些形状特征的C扩展,因此需要额外设置编译器,比较复杂,感兴趣可以去官网(https://pyradiomics.readthedocs.io/en/latest/installation.html#install-from-source)。 4.Use 3D Slicer Radiomics extension使用3D Slicer Radiomics扩展 3D Slicer是用于医学影像计算的免费开源平台(http : //slicer.org),可以使用3D Slicer ExtensionManager来安装Radiomics扩展程序,该扩展程序提供了一个针对pyradiomics库的图形用户界面。使用3D Slicer中的pydiadomics的优势在于,您可以查看图像和分割,参考链接https://github.com/Radiomics/SlicerRadiomics。

5.Use pyradiomics Docker使用pyadiomics Docker pyadiomics Docker支持从命令行使用pyradiomics,感兴趣可以去官网(https://pyradiomics.readthedocs.io/en/latest/installation.html#use-pyradiomics-docker)。

二、Pyradiomics影像组学特征提取 在PyRadiomics中可以通过4种方式自定义特征提取: 1)指定用于提取特征的图像类型(原始图像或者基于变换的派生图像) 2)指定要提取的特征类 3)指定一个设置文件来控制预处理、图像变换的滤波器和特征类 4)指定voxel-based基于体素的特定设置,只有在使用PyRadiomics 进行体素提取生成特征图时才需要 1、图像类型 进行影像组学特征提取的图像既可以是原始图像,也可以是经过滤波器处理的派生图像。默认情况下只使用原始图像,允许的图像类型存储在特征提取类实例_enabledImageTypes字典中,并且可以通过enableAllImageTypes(), disableAllImageTypes(), enableImageTypeByName()和 enableImageTypes()函数进行修改。 目前可用的图像类型如下: 原始图像: 1)Original:原始图像 派生图像: 2)Wavelet:小波滤波 3)LoG:高斯滤波器的拉普拉斯算子,是一种边缘增强滤波器,强调的是灰度变化的区域,sigma参数定义要强调的纹理粗糙度,该值较低则强调较细的纹理,该值较高则强调较粗糙的纹理。 4)Square:平方,即获取图像强度值的平方 5)SquareRoot:平方根,即获取图像强度值的平方根 6)Logarithm:对数,获取图像绝对强度+1的对数 7)Exponential:指数,获取图像强度值的指数 8)Gradient:梯度,获取图像局部梯度的大小 9)LocalBinaryPattern2D:本地二进制模型(2D) 10)LocalBinaryPattern3D:本地二进制模型(3D) 2、允许的特征类 从每个图像类型中进行特征提取的特征类型,允许的特征类被存储在特征提取类实例_enabledFeatures字典中,并且可以通过enableAllFeatures(), disableAllFeatures(), enableFeatureClassByName()和 enableFeaturesByName()函数进行修改。字典中的每个键值对代表一个启用的特征类,其中特征类名称为键,而启用的特征名称列表为值。如果值为None或空列表,则启用该特征类中的所有特征。否则,仅指定某些特征则启用该特征,默认情况下所有的特征类和特征都被启动。 目前可用的特征类如下: 1)First Order Statistics(19features)一阶统计量 通过常用的和基本的度量来描述由mask定义的图像区域内的体素强度分布。 GetEnergyFeatureValue():能量,是图像中体素值大小的度量,值越大意味着这些值的平方和越大。

GetTotalEnergyFeatureValue():总能量,是以体素的体积(以立方毫米为单位)为尺度的能量特征值。

GetEntropyFeatureValue():熵,定义图像值的不确定性或者随机性,是对图像值进行编码所需平均信息量对度量。

GetMinimunFeatureValue():最小特征值 Get10PercentileFeatureValue():第10%的特征值。 Get90PercentileFeatureValue():第90%的特征值 GetMaximunFeatureValue():最大特征值 GetMeanFeatureValue():平均特征值 GetMedianFeatureValue():中位数特征值 GetInterquartileRangeFeatureValue():四分位范围 GetRangeFeatureValue():强度值范围(最大值-最小值) getMeanAbsoluteDeviationFeatureValue():平均绝对偏差

getRobustMeanAbsoluteDeviationFeatureValue():鲁棒平均绝对偏差

getRootMeanSquaredFeatureValue():均方根

getStandardDeviationFeatureValue():标准偏差,衡量与平均值之间的差异或离散程度

getSkewnessFeatureValue():偏度,偏度测量关于平均值的值分布的不对称性。根据尾巴在哪里加长和分布的质量集中在什么地方,该值可以为正或负。

GetKurtosisFeatureValue():峰度,峰度是图像ROI中值分布的“峰值”度量。峰度越高,意味着分布的质量集中于尾部而不是均值。较低的峰度意味着相反的情况:分布的质量集中在接近均值的峰值处。

GetVarianceFeatureValue():方差,是每个强度值与平均值之间的平方距离的平均值。这是对均值分布分布的度量

getUniformityFeatureValue():均匀度,是每个强度值的平方和的量度。这是图像阵列均匀性的一种度量,其中更大的均匀性意味着更大的均匀性或较小的离散强度值范围。

2)Shape-based(3D)(16fetures)基于3D形状 getMeshSurfaceFeatureValue():网格表面,由三角形网格定义,计算ROI的表面。 getPixelSurfaceFeatureValue():像素表面,由像素数量乘以每个像素的面积得到。 getPerimeterFeatureValue():周长。 getPerimeterSurfaceRatioFeatureValue():周长比,较低的值表示更紧凑的圆形。 getSphericityFeatureValue():球形度,表示与肿瘤区域具有相同面积的圆形的周长与肿瘤的周长之比。 getSphericalDisproportionFeatureValue():球形不均匀度,是球形度的倒数。 getMaximumDiameterFeatureValue():最大2D直径。 getMajorAxisLengthFeatureValue():主轴长度。 getMinorAxisLengthFeatureValue():短轴长度。 getElongationFeatureValue():伸长率。

3)Shape-based(2D)(10features)基于2D形状 getMeshVolumeFeatureValue():网格体积,由影像RIO的三角形网格计算得到。 getVoxelVolumeFeatureValue():体素体积,由体素的个数乘以一个体素的体积得到。 GetSurfaceAreaFeatureValue():表面积。 getSurfaceVolumeRatioFeatureValue():表面积与体积之比,较低的值表示更紧凑的球形形状。 getSphericityFeatureValue():球形度,是肿瘤区域相对于球形度圆度度度量。 getCompactness1FeatureValue():紧凑度1,是衡量肿瘤形状相对于球形的紧密程度的度量。 getCompactness2FeatureValue():紧凑度2,也是衡量肿瘤形状相对于球体的紧密程度的度量,公式不同。 getSphericalDisproportionFeatureValue():球形不对称,是肿瘤区域的表面积与具有相同体积的球体表面积的比值,是球形度的倒数。 getMaximum3DDiameterFeatureValue():最大3D直径,表示肿瘤表面网格顶点之间的最大欧几里得距离。 getMaximum2DDiameterSliceFeatureValue():最大2D直径(切片),表示轴向平面中肿瘤表面网格顶点之间最大的欧几里得距离。 getMaximum2DDiameterColumnFeatureValue():最大2D直径(列),表示冠状平面中肿瘤表面网格顶点之间最大的欧几里得距离。 getMaximum2DDiameterRowFeatureValue():最大2D直径(行),表示失状平面中肿瘤表面网格顶点之间最大的欧几里得距离。 getMajorAxisLengthFeatureValue():主轴长,表示包围ROI的椭球的最大轴长。 getMinorAxisLengthFeatureValue():短轴长,表示包围ROI的椭球的第二轴长。 getLeastAxisLengthFeatureValue():最小轴长,表示包围ROI的椭球的最小轴长。 getElongationFeatureValue():伸长率,表示ROI形状中两个最大的主成分之间的关系。 getFlatnessFeatureValue():平面度,是表示ROI形状中最大和最小主成分之间的关系。

4)Glcm:Gray Level Cooccurence Matrix(24features)灰度共生矩阵 定义了一些关于相关性、能量、对比、逆差、方差、概率、熵、平方和等信息,具体不展开介绍了(主要是实在难以翻译),感兴趣可以去官网看公式(https://pyradiomics.readthedocs.io/en/latest/features.html#radiomics.glcm.RadiomicsGLCM)。 GetAutocorrelationFeatureValue():自相关,是纹理精细度和粗糙度的量度 getJointAverageFeatureValue(): getClusterProminenceFeatureValue getClusterShadeFeatureValue getClusterTendencyFeatureValue getContrastFeatureValue getCorrelationFeatureValue getDifferenceAverageFeatureValue getDifferenceEntropyFeatureValue getDifferenceVarianceFeatureValue getDissimilarityFeatureValue getJointEnergyFeatureValue getJointEntropyFeatureValue getHomogeneity1FeatureValue getHomogeneity2FeatureValue getImc1FeatureValue getImc2FeatureValue getIdmFeatureValue getMCCFeatureValue getIdmnFeatureValue getIdFeatureValue getIdnFeatureValue getInverseVarianceFeatureValue getMaximumProbabilityFeatureValue getSumAverageFeatureValue getSumVarianceFeatureValue getSumEntropyFeatureValue getSumSquaresFeatureValue

5)Glrlm:Gray Level Run Length Matrix(16features),灰度级运行长度矩阵 getShortRunEmphasisFeatureValue getLongRunEmphasisFeatureValue getGrayLevelNonUniformityFeatureValue getGrayLevelNonUniformityNormalizedFeatureValue getRunLengthNonUniformityFeatureValue getRunLengthNonUniformityNormalizedFeatureValue getRunPercentageFeatureValue getGrayLevelVarianceFeatureValue getRunVarianceFeatureValue getRunEntropyFeatureValue getLowGrayLevelRunEmphasisFeatureValue getHighGrayLevelRunEmphasisFeatureValue getShortRunLowGrayLevelEmphasisFeatureValue getShortRunHighGrayLevelEmphasisFeatureValue getLongRunLowGrayLevelEmphasisFeatureValue getLongRunHighGrayLevelEmphasisFeatureValue

6)Glszm:Gray Level Size Zone Matrix(16features) getSmallAreaEmphasisFeatureValue getLargeAreaEmphasisFeatureValue getGrayLevelNonUniformityFeatureValue getGrayLevelNonUniformityNormalizedFeatureValue getSizeZoneNonUniformityFeatureValue getSizeZoneNonUniformityNormalizedFeatureValue getZonePercentageFeatureValue getGrayLevelVarianceFeatureValue getZoneVarianceFeatureValue getZoneEntropyFeatureValue getLowGrayLevelZoneEmphasisFeatureValue getHighGrayLevelZoneEmphasisFeatureValue getSmallAreaLowGrayLevelEmphasisFeatureValue getSmallAreaHighGrayLevelEmphasisFeatureValue getLargeAreaLowGrayLevelEmphasisFeatureValue getLargeAreaHighGrayLevelEmphasisFeatureValue

7)Gldm:Gray Level Dependence Matrix(14features)灰度依赖性矩阵 getSmallDependenceEmphasisFeatureValue getLargeDependenceEmphasisFeatureValue getGrayLevelNonUniformityFeatureValue getGrayLevelNonUniformityNormalizedFeatureValue getDependenceNonUniformityFeatureValue getDependenceNonUniformityNormalizedFeatureValue getGrayLevelVarianceFeatureValue getDependenceVarianceFeatureValue getDependenceEntropyFeatureValue getDependencePercentageFeatureValue getLowGrayLevelEmphasisFeatureValue getHighGrayLevelEmphasisFeatureValue getSmallDependenceLowGrayLevelEmphasisFeatureValue getSmallDependenceHighGrayLevelEmphasisFeatureValue getLargeDependenceLowGrayLevelEmphasisFeatureValue getLargeDependenceHighGrayLevelEmphasisFeatureValue

8)Ngtdm:Neighbouring Gray Tone Difference Matrix(5features) getCoarsenessFeatureValue getContrastFeatureValue getBusynessFeatureValue getComplexityFeatureValue getStrengthFeatureValue

除了形状特征类外,其他特征都可以在原始图像和派生图像上进行计算,注意上面的特征不是都需要的,有一些特征具有相关性。 3、特征提取设置 1)Image Normalization图像归一化 Normalize:当设置为True时,对图像进行归一化处理 normalizeScale:对图像进行归一化处理的比例 RemoveOutliers:从图像中删除的离群值 2)Resampling the image图像重采样 ResamplePixelSpacing:设置重采样时的体素大小。 Interpolator:设置重采样的差值方法,可选的值如下: sitkNearestNeighbor(= 1) sitkLinear(= 2) sitkBSpline(= 3) sitkGaussian(= 4) sitkLabelGaussian(= 5) sitkHammingWindowedSinc(= 6) sitkCosineWindowedSinc(= 7) sitkWelchWindowedSinc(= 8) sitkLanczosWindowedSinc(= 9) sitkBlackmanWindowedSinc(= 10) padDistance:设置在裁剪肿瘤体时的体素补充数量。

本文分享自微信公众号 - Python编程和深度学习(Python_Deeplearning),作者:JieZhao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • DAPNet:提高模型在不同数据域上的泛化能力(MICCAI 2019)

    今天分享一篇发表在MICCAI 2019上的论文:Dual Adaptive Pyramid Network for Cross-Stain Histopath...

    Minerva
  • 数字图像处理之图像分割算法

    图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基...

    Minerva
  • 目标检测系列之一(候选框、IOU、NMS)

    目前计算机视觉(CV,Computer Vision)与自然语言处理(NLP,Natural Language Process)是深度学习的主要研究领域。而计算...

    Minerva
  • 沈定刚教授:深度学习在医学影像分析中的应用丨2018医学影像AI经典演讲回顾(二)

    作为国内最早一批密集报道医学影像AI产学融合与医工交叉的媒体。2018年,雷锋网AI掘金志全程报道了从海外MICCAI、RSNA、CVPR到国内ISICDM、M...

    AI掘金志
  • AI新海诚就是在下,不信来玩

    现在,不需要人类画师一帧帧描画,把你拍下的视频喂给AI,就能让现实世界分分钟掉进二次元世界。

    量子位
  • 【CVPR Oral】TensorFlow实现StarGAN代码全部开源,1天训练完

    新智元
  • 美物理学家颠覆现有全息技术,使走进3D电影的世界成为可能 | 黑科技

    镁客网
  • Sherloq:一款开源的数字图片取证工具

    数字图像取证分析是应用图像科学领域里的一种专业知识,这项技术可以在法律事务中解释图像的内容或图像本身所代表的含义。数字图像取证分析与执法应用的主要分支学科包括:...

    FB客服
  • CCF-腾讯犀牛鸟基金中期技术沙龙系列分享(一) 图像增强与质量评价

    从本周开始我们将举办CCF-腾讯犀牛鸟基金(以下简称犀牛鸟基金)技术沙龙系列分享活动,邀请犀牛鸟基金青年老师和腾讯技术团队分享机器学习、计算机视觉、知识图谱、...

    腾讯高校合作
  • ISP基础(02):宽动态范围WDR

    WDR是wide dynamic range 的缩写,意思是宽动态范围。 根据百度百科,当在强光源(日光、灯具或反光等)照射下的高亮度区域及阴影、逆光等相对亮度...

    233333

扫码关注云+社区

领取腾讯云代金券