「深層学習を使用した脳腫瘍の 3 次元セグメンテーション」の例を使用するとエラーが出る
Show older comments
上のリンクにある、「深層学習を使用した脳腫瘍の3次元セグメンテーション」の例を使用したいのですが、以下の部分で「位置3のインデックスが配列範囲を超えています。インデックスは1を超えてはなりません」というエラーが出ます。
predictedLabelsの部分に問題があると考えていますが、対処法が分からないので、教えていただければ幸いです。
よろしくお願いいたします。
zID = size(volTest,3)/2;
zSliceGT = labeloverlay(volTest(:,:,zID),volTestLabels(:,:,zID));
zSlicePred = labeloverlay(volTest(:,:,zID),predictedLabels(:,:,zID));
3 Comments
Atsushi Ueno
on 30 Sep 2023
Edited: Atsushi Ueno
on 30 Sep 2023
その前に、brainTumor3DUNetValid.mat の読み込み時に警告が出て、空のオブジェクト”net”が現れます🤔???
肝心の「事前学習済みの 3 次元 U-Net」を読み込めないので、問題の再現まで辿り着けません。私だけでしょうか?
load("brainTumor3DUNetValid.mat");
警告: クラス nnet.cnn.layer.DicePixelClassificationLayer のインスタンスを異種混合配列に読み込めません。
nnet.cnn.layer.DicePixelClassificationLayer の定義が見つからないか、エラーが含まれています。既定のオブジェクトが代用されます。
警告: クラス 'DAGNetwork' のオブジェクトの読み込み中:
配列インデックスは正の整数または logical 値でなければなりません。
円佳 岡田
on 30 Sep 2023
Atsushi Ueno
on 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関数の実行が終わりませんでした。十分なリソース(処理能力や処理時間)が与えられていないからではないかと思います。
Answers (0)
Categories
Find more on セマンティック セグメンテーション in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!