Main Content

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

ボリュームの深層学習向け前処理

ボリュームデータの読み取り

ボリューム イメージ データでサポートされるファイル形式には、MAT ファイル、Digital Imaging and Communications in Medicine (DICOM) ファイル、および Neuroimaging Informatics Technology Initiative (NIfTI) ファイルがあります。

ボリュームイメージデータを成像に読み取ります。ボリューム ピクセル ラベル データをPixelLabelDatastore(计算机视觉工具箱)に読み取り。详细について,,深層学習用のデータストアを参照しください。

この表サポートさている各形式のののimageDatastorepixelLabelDatastoreの一般使用法示してい。ストアを作成する场合,引数'FileExtensions'をデータのファイル拡張子として指定します。readfcnプロパティを形式のを読み取る关数としてしします。引数filepathは,含まれるファイルフォルダーパスを指定ます。ピクセルピクセルラベルイメージイメージの场合场合,引数classNamesおよびPixellabelidは,ラベルクラス名へのを指定します。

イメージ ファイル形式

イメージデータまたはピクセルデータストアの作成

伏尔德= imageDatastore(filepath,...'FileExtensions',,,,'。mat',,,,'readfcn',@(x)fcn(x));pxds = pixellabeldatastore(filepath,classNames,pixellabelid,...'FileExtensions',,,,'。mat',,,,'readfcn',@(x)fcn(x));
FCNMatファイル,データをカスタム关数。,次の,,,,,,ファイルファイルのののからmatreadと呼ば关数定义します。ををmatread.mという名前ファイルに保存。。

functiondata = matread(filename)inp = load(filename);f = fields(inp);data = inp。(f {1});结尾

単一のファイルのの

伏尔德= imageDatastore(filepath,...'FileExtensions',,,,'.dcm',,,,'readfcn',@(x)dicomread(x));pxds = pixellabeldatastore(filepath,classNames,pixellabelid,...'FileExtensions',,,,'.dcm',,,,'readfcn',@(x)dicomread(x));

dicomファイルのの详细,,,dicomread(图像处理工具箱)を参照しください。

复数のファイルのの

次のにます。例について,,単一ファイル复数ののボリュームボリュームボリュームイメージデータストア作成作成(图像处理工具箱)を参照しください。

  • 关数Dicomcollection(图像处理工具箱)を使用,ファイル集计してのににますます。

  • 关数Dicomreadvolume(图像处理工具箱)を使用てスタディののデータデータデータ読み取り。。

  • 各をををファイル书き込みます。。

  • 垫ファイルの手順に従って、MAT ファイルのコレクションから成像またはPixelLabelDatastoreを作成します。

NIfTI

伏尔德= imageDatastore(filepath,...'FileExtensions',,,,'.nii',,,,'readfcn',@(x)niftiread(x));pxds = pixellabeldatastore(filepath,classNames,pixellabelid,...'FileExtensions',,,,'.nii',,,,'readfcn',@(x)niftiread(x));

NIfTI ファイルの読み取りの詳細については、niftiread(图像处理工具箱)を参照しください。

イメージとデータの关连付け

セマンティックセグメンテーションボリュームとラベルデータ,回帰用のののつのつのつのイメージデータストアをを关连付ける关连付けるRandompatchExtractionDatastore(图像处理工具箱)を使用します。ランダム パッチ抽出データストアは、2 つのデータストアから対応するランダムに配置されたパッチを抽出します。パッチは、任意の大きさのボリュームでの学習時にメモリ不足を防ぐための一般的な手法です。ネットワークの入力サイズに一致し、メモリの効率性を考慮して、64 × 64 × 64 ボクセルなどのボリュームのフル サイズより小さいパッチ サイズを指定します。

关数combine2つのてつのつのストア关连付けることもます。ただし,,RandompatchExtractionDatastore2つのてつのつのストア关连付ける方法に,,,combineを使用方法比べいくつかのがあります。

  • RandompatchExtractionDatastoreは,学习マルチマルチマルチ学习,事前読み取りをサポートし。。trainingOptionsの名前と値のペアの引数'ExecutionEnvironment'を使用して、並列学習またはマルチ GPU 学習を指定します。trainingOptionsの名前と値のペアの引数'dispatchinbackground'を使用て事前読み取りを指定します事前事前取得読み取りにはは,,,,,,,,,,,,,,,,,,,,,

  • RandompatchExtractionDatastoreは,にパッチをサポートし。,,,组合的datastoreからパッチするに,をトリミングてパッチする独自の关数关数を定义定义关数关数关数transformを使用て操作适用しなけれなりません。

  • RandompatchExtractionDatastore1つつテストから复数のイメージをでき。一対多一対多のパッチパッチ抽出抽出ででは,使用使用可能ななな学习学习学习データデータ

ボリュームデータの处理

深層学習では、データの前処理と拡張が必要になることがよくあります。たとえば、イメージの強度の正規化、イメージのコントラストの強調、またはランダムなアフィン変換の追加による過適合の防止が必要な場合があります。

ボリュームデータ前处理には,关数transformを使用します。transformは,关数定义た一连のに従って,“基にデータ”Image Processing工具箱™に。をた変更ストアデータ,,れれれた変换ししデータささささささされれたた形式形式ををを。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。ますににににににに,ボリュームボリュームの完全リストについては,3 次元ボリューム イメージの処理(图像处理工具箱)Matlab®の关数し,ボリュームイメージをすることもでき。。

カスタム変换は基にデータストアの关数readによって返される形式のデータを受け入れなければなりません。

基になるデータストア

カスタム変換関数への入力形式

成像

カスタム変換関数への入力は、读取尺寸プロパティによって异ます。

  • 读取尺寸が 1 の場合、変換関数は整数配列を受け入れなければなりません。配列のサイズは、成像イメージタイプ整合性がますます。たとえば,,グレースケールグレースケールイメージはサイズ行行行行行行行行行行行行行行行行行行行行行行行行行列列列列列列,,トゥルーカラーカラーカラーイメージイメージのサイズサイズサイズサイズははははははははははははははははははははははは

  • 读取尺寸が 1 より大きい場合、変換関数はバッチの各イメージに対応するイメージ データの cell 配列を受け入れなければなりません。

详细は、成像の关数readを参照しください。

PixelLabelDatastore

カスタム変換関数への入力は、读取尺寸プロパティによって异ます。

  • 读取尺寸1のの変换关数はははは行列行列なければませ。。。

  • 读取尺寸1よりより,変换关数はははは行列行列行列配列配列配列なけれなければなりん。。

详细は、PixelLabelDatastoreの关数read(计算机视觉工具箱)を参照しください。

RandompatchExtractionDatastore

カスタム変换へ入力は,,,列列のでなけれでなけれでなけれなりません。。

详细は、RandompatchExtractionDatastoreの关数read(图像处理工具箱)を参照しください。

RandompatchExtractionDatastoreはボリュームデータのDataAugmentationプロパティをサポートしていません。ボリューム データにランダムなアフィン変換を適用するには、transformを使用なければなり。。

关数transformは,入力に一致するデータなければなりません关数transformは一多値マッピングをサポートていません。

例:イメージデータ内のボリュームの変换

次のコードでは关数关数预处理volumetricimdsに定義されている任意の前処理パイプラインを使用して、イメージ データストア伏尔德内のを変换方法を说明ますこのこのででは伏尔德读取尺寸が 1 より大きいと仮定しています。

dstrain = transform(volds,@(x)preprocessvolumetricimds(x,inputsize));

基になるデータストアから読み取られたデータに対して目的の変換を実行する関数预处理volumetricimdsを定義します。この関数はイメージ データの cell 配列を受け入れなければなりません。この関数は読み取られた各イメージをループ処理し、次の前処理パイプラインに従ってデータを変換します。

  • z 軸を中心としてイメージをランダムに回転させる。

  • ボリュームのサイズをネットワークで期待されるサイズに変更する。

  • ガウスノイズ加えノイズ含むバージョンのを作成する。

  • イメージ细胞配列配列で。。

functiondataout = prepocessvolumetricimds(data,inputsize)numrows = size(data,1);dataout =单元格(numrows,1);为了idx = 1:numrows%在z轴上进行随机旋转的随机旋转data = imrotate3(data{idx,1},90*(randi(4)-1),[0 0 1]);% Resize the volume to the size expected by the networkdataClean = imresize(data,inputSize);%添加零均值的高斯噪声,标准方差为0.01dataNoisy = imnoise(dataClean,“高斯”,0.01);%返回预处理数据dataout(idx)= datanoisy;结尾结尾

例:ランダムパッチデータ内のボリュームデータ変换変换

次のコードでは关数关数preprocessVolumetricPatchDSに定義されている任意の前処理パイプラインを使用して、ランダム パッチ抽出データストア伏尔德内のを変换方法を说明ますこのこのででは伏尔德读取尺寸1であるである仮定てい。。。

dstrain = transform(volds,@preprocessvolumetricpatchds);

基になるデータストアから読み取られたデータに対して目的の変換を実行する関数preprocessVolumetricPatchDSを定義します。この関数は表を受け入れなければなりません。この関数は次の前処理パイプラインに従ってデータを変換します。

  • 5 つの拡張のいずれかをランダムに選択する。

  • table の両方の列のデータに同じ拡張を適用する。

  • 拡张さたペアををででで。。

functiondataout = prepocessvolumetricpatchds(data)img = data(1);RESS =数据(2);% 5 augmentations: nil,rot90,fliplr,flipud,rot90(fliplr)Augtype = {@(x)x,@rot90,@fliplr,@flipud,@(x)rot90(fliplr(x))};rndidx = randi(5,1);imgout = augtype {rndidx}(img);respOut = augType {rndidx}(resp);%返回预处理数据dataOut = table(imgout,repsout};结尾

参考

||(计算机视觉工具箱)|(图像处理工具箱)|

关连する例

详细