「深層学習を使用した脳腫瘍の 3 次元セグメンテーショ​ン」の例を使用すると​エラーが出る

1 vue (au cours des 30 derniers jours)
円佳 岡田
円佳 岡田 le 29 Sep 2023
Modifié(e) : Atsushi Ueno le 30 Sep 2023
上のリンクにある、「深層学習を使用した脳腫瘍の3次元セグメンテーション」の例を使用したいのですが、以下の部分で「位置3のインデックスが配列範囲を超えています。インデックスは1を超えてはなりません」というエラーが出ます。
predictedLabelsの部分に問題があると考えていますが、対処法が分からないので、教えていただければ幸いです。
よろしくお願いいたします。
zID = size(volTest,3)/2;
zSliceGT = labeloverlay(volTest(:,:,zID),volTestLabels(:,:,zID));
zSlicePred = labeloverlay(volTest(:,:,zID),predictedLabels(:,:,zID));
  3 commentaires
円佳 岡田
円佳 岡田 le 30 Sep 2023
コメントありがとうございます。 brainTumor3DUNetValid.matが上手く読み込めない問題はこちらも発生していました。ただ、「ファイルの読み取りの際に予期せぬファイルの終わり(EOF)に達しました」という警告とファイルが読み込めないというエラーが出ただけなので原因が違うかもしれません…… この時はプログラム内にあるリンクから brainTumor3DUNetValid.matを直でダウンロードし、入れ直したことで解決しました。ご参考になれば幸いです。
Atsushi Ueno
Atsushi Ueno le 30 Sep 2023
zID = size(volTest,3)/2; % 152/2=76 のはず
zSliceGT = labeloverlay(volTest(:,:,zID),volTestLabels(:,:,zID));
zSlicePred = labeloverlay(volTest(:,:,zID),predictedLabels(:,:,zID));
ここで「位置3のインデックスが配列範囲を超えています。インデックスは1を超えてはなりません」というエラーが出るとすれば、predictedLabelsへのアクセスが原因 ⇒ apply関数に何か原因があると断定できます。また apply 関数を含めた bigimage オブジェクトの使用が非推奨(削除予定)になっている点が気になります。実行出来ないので、ここで何が起きているのかは良く分かりません。
results = apply(bim, ...
predictedLabels = results.Source;
size(predictedLabels) % サイズが240x240x152ではなく、3次元目の数が76未満のはず
(余談) 「事前学習済みの 3 次元 U-Net」を読み込めなかった原因は、MATLAB Online (basic) に Computer Vision Toolbox が無く、dicePixelClassificationLayer が無い事が原因の様です。MATLABドキュメント上でToolboxほぼ全部入りのMATLAB Onlineを使う事で途中まで動かせましたが、今度はblockedImage関数の実行が終わりませんでした。十分なリソース(処理能力や処理時間)が与えられていないからではないかと思います。

Connectez-vous pour commenter.

Réponses (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!