1

AlexNetによる画像ラベル付けの精度に超解像度アルゴリズムの影響を与えて私の修士論文をしています。私はMatlabをあらかじめ訓練されたAlexNetのバージョンで使用しています。AlexNetから複数の画像ラベルを取得する方法

問題は、私はAlexNetすることにより、複数の、例えば、ラベル、、5、およびそれらに対応するスコアを取得したいと思いに対し

[label, scores] = classify(net, 'image') 

を使用して私は、1つのラベルを取得、ということです。

誰かが私に少なくともヒントを与えることができれば、それを行う方法はわかりません。本当にとても感謝しています。

答えて

2

scoresマトリックスは、データを分類する際に各クラスがどのようにスコア付けしたかを示します。具体的には、各列iは、クラスiで入力を分類しようとしたときにiクラスのスコアがどのように計算されたかを示しています。各行はAlexNetへの入力です。

各入力に対して上位kのスコアを取得する場合は、sortとすることができます。具体的には、2番目の出力変数を見て、各行を個別に並べ替えます。その後、最初にkの結果の列を抽出して、入力に関連付けられている上位5つのクラスまたはラベルを表示することができます。実際のクラスについて心配している場合は、最初の出力を見てください。

% First classify the image(s) you would like 
[label, scores] = classify(net, ...); 

k = 5; % We want 5 classes 
[scores_sorted, classes] = sort(scores, 2); % Sort each row individually 
scores_sorted = scores_sorted(:, 1 : k); 
classes = classes(:, 1 : k); 

scores_sortedclassesは今あなたk列各行がわかります行列(classesに格納されている)は、各入力に割り当てられたトップkクラスならびにAlexNet(scores_sorted)によって提供されるスコアを与えます。

最終的に実際のクラスが何であるかを判断するには、AlexNetを作成するときに最終層に分類のカテゴリがあります。デフォルトのネットを作成すると仮定すると:これは、クラスのセル配列で、そこにあるべき

c = net.Layers(end).ClassNames; 

net = alexnet; 

を...あなたはによってクラスが各ラベルのIDのためのものであるかを判断することができます合計で1000要素。

out = net.Layers(end).ClassNames(classes); 

classesは、このように、セル配列のインデックスに使用されると、それはこのようにあなたの各行N x kセル配列を与えるだろう。したがって、私はあなたがこれを行うことができ、上記の書いたコードから、変数のクラスを与えられましたこのセル配列には、入力画像ごとに上位kクラスのAlexNetによって割り当てられたラベルが表示されます。

+0

すばらしかった、ありがとう):)スコアマトリックスはさまざまなクラスに関連付けられていることを理解していますが、どのようにしたらよいか分かりません。彼らは事前に訓練されたAlexNetの1000のクラス(またはsynsets)のリストに何らかの形で関係していますか?クラスをスコアにマッピングする方法はありますか? –

+0

'class'は、AlexNetが提供する実際のカテゴリデータにインデックスを付けるために使用できる整数インデックスを与えます。たとえば、AlexNetが出力をクラス400として割り当てた場合、これはILSVRC2010データを使用したと仮定すると、カテゴリ400に属するものであることを意味します。スコアにクラスをマッピングすることは既にあなたのために行われています。 'scores'はAlexNetに割り当てられたスコアを返しますが、' classes'は各クラスがどのように入力を割り当てたかを示します。 – rayryeng

+0

問題は、matlabの 'classify'関数を使用すると1つのラベル(つまり、1つのクラスまたはsynset)しか得られませんが、もっと多くのものを得る方法はわかりません。あなたは私が 'class'という変数を得ることができないと思います。すべてのクラスはILSVRC2010に従って定義されますが、どうやってそれを行うのか分かりません。私はあなたが私にmatlabでそれを行う方法を教えることができたら、私は本当に感謝します。ありがとう、本当に、私を助けたいと思って非常に多くの: –

関連する問題