训练灰度无关神经网络的随机平滑灰度变换(rsgt)实现
rsgt的Python项目详细描述
随机平滑灰度变换
卷积神经网络训练用于特定类型的医学灰度图像(如CT或MR图像)中的检测或分割任务 在其他医学灰度图像中失败,即使目标结构在这两种图像中看起来都很相似。随机平滑灰度值变换是 数据增强技术的目的是迫使网络成为灰度不变的。在训练过程中,训练图像或面片的灰度值为 随机变化,但使用平滑和连续的传递函数,使形状和纹理信息基本保留。在
API文档:http://rsgt.readthedocs.io/
安装
要在您自己的项目中使用随机平滑灰度值转换的数据扩充,只需安装rsgt
包:
pip install rsgt
- 需要Python 2.7+或3.5+
- Numpy是唯一的依赖
数据扩充
医学图像的输入值通常是灰度值。在
^{pr2}$返回的numpy数组将有一个浮点数据类型,值在[0,1]范围内。在
小批量
虽然函数支持具有任意数量维的输入数据,但它当前不支持小批量。小批量的3D图像可以被视为 4D输入数组,但小批量中的所有图像都将进行相同的转换。这意味着将计算单个随机查找表 并应用于小批量中的所有图像。当前没有转换函数的矢量化实现,因此for循环此时是 在具有不同转换功能的小批量中转换图像的唯一方法:
foriinrange(minibatch.shape[0]):minibatch[i]=random_smooth_grayvalue_transform(minibatch[i],dtype='float32')
示例
最左边的图像是原始的CT切片。其他图像显示了应用随机平滑灰度变换的相同切片。转变 函数显示在转换后的图像下方。在
此CT扫描来自kits19 challenge(CC BY-NC-SA 4.0许可证)。在
规范化函数
也可以在[1]的时间范围内将值应用到[0]上,因为它也是灰色函数的必要值
在推理时将输入图像规格化为[0,1]。rsgt
软件包附带CT和MR扫描的辅助函数:
CT扫描
原始图像的期望值是Hounsfield单位,范围从-1000(图像区域外的背景)到3000左右 像金属植入物一样的致密结构。在
fromrsgt.normalizationimportnormalize_ct_scannormalized_image=normalize_ct_scan(image,dtype='float32')
MR扫描
由于MR扫描的值不像CT扫描那样标准化,所以标准化是基于输入值的5%和95%。价值观 下面和上面都被剪掉了。在
fromrsgt.normalizationimportnormalize_mr_scannormalized_image=normalize_mr_scan(image,dtype='float32')
这种标准化也可以与增强技术结合使用:
fromrsgt.augmentationimportrandom_smooth_grayvalue_transformfromrsgt.normalizationimportnormalize_mr_scanN=4096# number of binsnormalized_integer_image=(normalize_mr_scan(image,dtype='float32')*N).round().astype(int)new_image=random_smooth_grayvalue_transform(normalized_integer_image,min_max_val=(0,N),dtype='float32')
引文
请引用我们的短文,描述在您的工作中使用此技术时用于数据扩充的随机平滑灰度变换:
N. Lessmann and B. van Ginneken, "Random smooth gray value transformations for cross modality learning with gray value invariant networks", arXiv:2003.06158
许可证
此软件包在MIT license下发布,如许可证文件中所示,/examples
目录中的图像除外,它
在Creative Commons许可证(CC BY-NC-SA 4.0)下发布。在
- 项目
标签: