セマンティックセグメンテーションのラベル設定

조회 수: 8 (최근 30일)
kota kobayashi
kota kobayashi 2018년 7월 30일
댓글: kota kobayashi 2018년 8월 2일
深層学習を使用したセマンティック セグメンテーション https://jp.mathworks.com/help/vision/examples/semantic-segmentation-using-deep-learning.html を参考に、自分で設定したクラスにラベルIDを設定しようとしていますが、うまくいきません。そこで classes=["sea","land","sky"] labelIDs = [1 2 3]; (カラーマップはcmap = [ 0 0 0 0 0 20 0 0 40 ]) とするとうまくいきますが、これでは、セマンティックセグメンテーションさせたときの色とカラーマップを対応させることができません。 例を参考に、
classes = [
"sea"
"land"
"sky"
];
labelIDs = {...
[
000 000 020; ...
]
[
000 000 040; ...
]
[
000 000 060; ...
]
};
などと設定して実行すると以下のエラーがでます。 位置 1 のインデックスが配列範囲を超えています。
エラー: images.internal.labeloverlayalgo (line 13) colormap = [colormap(1,:);colormap];
エラー: labeloverlay (line 95) B = images.internal.labeloverlayalgo(A,L,cmap,alpha,includeList);
エラー: DataCheck (line 28) B = labeloverlay(I,C); どのようにラベルを設定すべきか教えてください。

채택된 답변

Kei Otsuka
Kei Otsuka 2018년 7월 31일
例題に含まれているサポート関数の内容を一度確認されると良いと思います。
CamVidデータセットではラベル画像がRGBカラー3値で与えられているため、
ラベルIDを以下のように3値で指定しています。
function labelIDs = camvidPixelLabelIDs()
% "Sky"
[
128 128 128; ... % "Sky"
]
.
.
一方、imageLabeler等を利用して作成したラベル画像はグレースケールであるため、
3値を指定してしまうとエラーとなります。
従いまして、ラベルIDは利用するラベル画像にあわせて指定して頂き、
そのIDに該当する色情報はcmapに定義して利用します。
一例として、"sky"と"Building"の2クラスが存在したとして、
それぞれのピクセルラベルの値が"1","2"であり、セグメンテーション結果を
"赤"、"緑"としたい場合は以下のように指定します。
classes = [
"Sky"
"Building"
];
% 該当するラベル画像の値
labelIDs = cell(2,1);
labelIDs{1,1} = 1;
labelIDs{2,1} = 2;
% 対応する色
cmap = [
128 0 0 % Sky=赤
0 128 0 % Building=緑
];

추가 답변 (1개)

kota kobayashi
kota kobayashi 2018년 8월 1일
편집: kota kobayashi 2018년 8월 1일
何度もすいません。 テスト画像に、以下のコードでセグメンテーションさせるとき、
I = read(imdsTest);
C = _semanticseg(I, net);_
B = labeloverlay(I, C);
cmap = camvidColorMap;
figure
imshow(B)
pixelLabelColorbar(cmap,classes);
イメージラベラーでラベリングしたときの色とラベルが対応するように塗分けられるという認識で合っていますか?だとすると、cmapで設定する値は、イメージラベラーで使われている色のRGB値に合わせる必要があるということになりますが。
  댓글 수: 2
Kei Otsuka
Kei Otsuka 2018년 8월 1일
ご認識の通りで、イメージラベラーでラベリングした時の色と同じにしたければ、
cmapを合わせる必要があります。 イメージラベラーで利用されているカラーマップは
'lines'ですね。
c = colormap('lines');
imshow(reshape(c(1:10,:), [10 1 3]),[])
kota kobayashi
kota kobayashi 2018년 8월 2일
ありがとうございます!!

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!