金宝app支持的文件格式为体积图像数据包括MAT文件,数字成像和通信医学(DICOM)文件,以及神经影像学信息学技术倡议(NIfTI)文件。
将容量图像数据读入ImageDatastore
。阅读体积像素标签数据成PixelLabelDatastore
(计算机视觉工具箱)。欲了解更多信息,请参阅数据存储深学习。
该表显示的典型用法。imageDatastore
和pixelLabelDatastore
为每个支持的文件格式。金宝app当您创建数据存储,指定“FileExtensions”
参数作为数据的文件扩展名。指定ReadFcn
物业作为一个函数句柄读取文件格式的数据。该filepath
参数指定包含图像数据的文件或文件夹的路径。对于像素标签图像,附加一会
和pixelLabelID
参数指定的类名体素标记值的映射。
图像文件格式 |
创建图像数据存储或像素标签数据存储 |
---|---|
垫 |
volds = imageDatastore (filepath,...“FileExtensions”,“.mat”,'ReadFcn',@(X)FCN(X));pxds = pixelLabelDatastore(文件路径,类名,pixelLabelID,...“FileExtensions”,“.mat”,'ReadFcn',@(X)FCN(X)); fcn 是从MAT文件中读取数据的自定义功能。例如,该代码定义了一个函数调用matRead 从MAT文件的第一个变量加载卷数据。将函数保存到一个名为matRead.m 。
函数data = matRead(filename) inp = load(filename);f =字段(输入);=输入的数据。(f {1});结束 |
DICOM卷鱼贯 |
volds = imageDatastore (filepath,...“FileExtensions”,'.DCM','ReadFcn',@(X)dicomread(X));pxds = pixelLabelDatastore(文件路径,类名,pixelLabelID,...“FileExtensions”,'.DCM','ReadFcn',@(X)dicomread(X)); 有关读取DICOM文件的详细信息,请参见 |
DICOM卷中的多个文件 |
按着这些次序。对于一个示例,请参见创建包含单个和多文件DICOM卷的映像数据存储(图像处理工具箱)。
|
NIfTI |
volds = imageDatastore (filepath,...“FileExtensions”,'.nii','ReadFcn'@ (x) niftiread (x));pxds = pixelLabelDatastore(文件路径,类名,pixelLabelID,...“FileExtensions”,'.nii','ReadFcn'@ (x) niftiread (x)); 有关读取NIfTI文件的详细信息,请参阅 |
若要将容量图像和标签数据关联用于语义分割,或将两个容量图像数据存储用于回归,请使用arandomPatchExtractionDatastore
(图像处理工具箱)。随机patch提取数据存储从两个数据存储中抽取相应的随机位置的patch。打补丁是在训练任意大容量时防止内存耗尽的常见技术。指定与网络的输入大小匹配的补丁大小,并且为了提高内存效率,要小于卷的完整大小,比如64×64×64的体素。
您也可以使用结合
函数关联两个数据存储。但是,将两个数据存储关联使用randomPatchExtractionDatastore
有几个好处结合
。
randomPatchExtractionDatastore
金宝app支持并行训练,多gpu训练,预取读取。属性指定并行或多gpu训练“
的名称-值对参数ExecutionEnvironment
“trainingOptions
。属性指定预取读取“
的名称-值对参数DispatchInBackground
“trainingOptions
。预取读取需要并行计算工具箱™。
randomPatchExtractionDatastore
固有地支持补丁萃取。金宝app相比之下,提取从补丁CombinedDatastore
,你必须定义自己的函数图像裁剪成补丁,然后用变换
功能应用裁剪操作。
randomPatchExtractionDatastore
可以从一个测试图像生成多个图像补丁。一对多的patch提取有效地增加了可用的训练数据量。
深度学习通常需要对数据进行预处理和扩充。例如,您可能希望对图像强度进行规格化、增强图像对比度或添加随机仿射变换以防止过拟合。
预处理容积数据,使用变换
功能。变换
创建数据存储的变形形式,称为底层数据存储,通过根据自定义函数中定义的操作集转换底层数据存储读取的数据。Image Processing Toolbox™提供了几个接受容量输入的函数。有关函数的完整列表,请参见3-d体积图像处理(图像处理工具箱)。您也可以预处理容积图像使用功能的MATLAB®在多维数组的工作。
对象返回的数据格式必须为自定义转换函数接受读
底层数据存储的函数。
底层数据存储 |
输入的格式为自定义转换功能 |
---|---|
ImageDatastore |
输入到自定义转换功能取决于
欲了解更多信息,请参阅 |
PixelLabelDatastore |
输入到自定义转换功能取决于
欲了解更多信息,请参阅 |
randomPatchExtractionDatastore |
输入到自定义转换功能必须与两列的表。 欲了解更多信息,请参阅 |
RandomPatchExtractionDatastore
不支持金宝appDataAugmentation
属性体数据。要应用随机仿射变换,以容积数据,你必须使用变换
。
该变换
函数必须返回与网络输入大小匹配的数据。该变换
函数不支持一对多的观察映射。金宝app
此示例代码示出了如何在图像数据存储区变换体积数据volds
使用在函数定义的任意的预处理管线preprocessVolumetricIMDS
。该示例假定READSIZE
的volds
大于1。
dsTrain = transform(volds,@(x) preprocessVolumetricIMDS(x,inputSize));
定义preprocessVolumetricIMDS
函数,对从底层数据存储读取的数据执行所需的转换。该函数必须接受图像数据的单元格数组。该函数对每个读取的图像进行循环,并根据这个预处理管道对数据进行转换:
随意绕图像ž设在。
将卷的大小调整为网络期望的大小。
创建高斯噪声图像的噪声版本。
以单元格数组的形式返回图像。
函数numRows = size(data,1);dataOut =细胞(numRows, 1);对于idx = 1: numRows%可执行许多随机绕z轴旋转90度的旋转data = imrotate3(数据{idx 1}, 90 *(兰迪(4)1),[0 0 1);%将卷的大小调整为网络期望的大小dataClean = imresize(数据、inputSize);%添加零均值高斯噪声,0.01归一化方差dataNoisy = imnoise (dataClean,“高斯”, 0.01);%返回经过预处理的数据DATAOUT(IDX)= dataNoisy;结束结束
此示例代码展示了如何在随机patch提取数据存储中转换容量数据volds
使用在函数定义的任意的预处理管线preprocessVolumetricPatchDS
。该示例假定READSIZE
的volds
是1。
dsTrain =变换(volds @preprocessVolumetricPatchDS);
定义preprocessVolumetricPatchDS
函数,对从底层数据存储读取的数据执行所需的转换。该函数必须接受一个表。该函数根据该预处理管线转换数据:
随机选取五个扩充之一。
对表的两列中的数据应用相同的扩展。
返回所述增强图像对在表中。
函数DATAOUT = preprocessVolumetricPatchDS(数据)IMG =数据(1);RESP =数据(2);% 5增大:nil,rot90,fliplr,flipud,rot90(fliplr)augType = {@(X)X,@ rot90,@ fliplr,@ flipud,@(X)rot90(fliplr(X))};rndIdx =兰迪(5,1);IMGOUT = augType {rndIdx}(IMG);respOut = augType {rndIdx}(RESP);%返回经过预处理的数据DATAOUT =表(IMGOUT,respOut};结束
imageDatastore
|trainNetwork
|变换
|pixelLabelDatastore
(计算机视觉工具箱)|randomPatchExtractionDatastore
(图像处理工具箱)