Matlab — используйте обученную сеть для тестирования других изображений

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

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 для любого изображения, а не только для изображений монет.

Кто-нибудь может мне помочь?


person Nadeeshani Jayathilake    schedule 14.04.2011    source источник


Ответы (1)


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

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

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

person umps    schedule 14.04.2011