1. 程式人生 > 其它 >醫學影像組學特徵值(Radiomics Features)提取之Pyradiomics(一)理論篇——轉載

醫學影像組學特徵值(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

原文出處及轉載資訊見文內詳細說明,如有侵權,請聯絡[email protected]刪除。

原始發表時間:2020-07-10

本文參與騰訊雲自媒體分享計劃,歡迎正在閱讀的你也加入,一起分享。

本文來自部落格園,作者:程式設計coding小白,轉載請註明原文連結:https://www.cnblogs.com/zhenhua1203/p/15679132.html