Matlab - используйте обученную сеть для тестирования других изображений - PullRequest
1 голос
/ 14 апреля 2011

Я натренировал изображения древних монет, используя прямую нейронную сеть. Теперь я хочу использовать эту обученную сеть для тестирования изображений. Я сделал следующее:

load net.mat;
load Features.mat; %this is the test image's features file
testInputs = features_set';
out = sim(net,testInputs);

[dummy, I]=max(out);
if (I == 1)
    h = msgbox('type 1','Description','none');
elseif (I == 2)
    h = msgbox('type 2','Description','none');
else
    h = msgbox('unclassified','Description','none');
end;

Проблема в том, что даже когда я вводю другое изображение, скажем, лицо человека, оно говорит либо тип 1, либо тип 2. Оно не отображается неклассифицированным. Всегда указывает тип 1 или 2 для любого изображения, а не только для изображений монет.

Может кто-нибудь, пожалуйста, помогите мне?

1 Ответ

1 голос
/ 14 апреля 2011

Полагаю, вы обучили свою нейронную сеть только монетам.

В этом проблема. Если вы хотите, чтобы ваша нейронная сеть классифицировала вещи, которые не являются монетами. Вы должны тренировать это с изображениями, которые не являются монетами. Это большая проблема, потому что существует бесконечно много изображений, которые не являются монетами. Нейронные сети, несмотря на свое вводящее в заблуждение название, настолько же умны, как и ваши тренировочные данные.

Самый простой способ сделать это - придумать некоторые алгоритмы, чтобы классифицировать вещи, которые не являются монетами, прежде чем использовать свою нейронную сеть. (Например, вы можете определить наличие кругов на изображении)

...