2011-04-14 1 views
1

J'ai formé des images de pièces anciennes en utilisant un réseau de neurones feed forward. Maintenant, je veux utiliser ce réseau qualifié à utiliser pour tester les images. J'ai fait comme suit;Matlab - Utiliser un réseau formé pour tester d'autres images

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; 

Le problème est, même quand je entrée une autre image, par exemple un visage d'une personne, il est dit de type 1 ou de type 2. Il ne présente pas non classifié. Toujours, donne soit le type 1 ou le type 2 pour n'importe quelle image, pas seulement pour les images de pièces de monnaie.

Quelqu'un peut-il m'aider s'il vous plaît?

Répondre

1

Vous avez formé votre réseau de neurones uniquement sur des pièces de monnaie, je suppose.

C'est le problème. Si vous voulez que votre réseau neuronal classifie les choses qui ne sont pas des pièces de monnaie. Vous devez l'entraîner avec des images qui ne sont pas des pièces de monnaie. C'est un gros problème, car il y a une infinité d'images qui ne sont pas des pièces de monnaie. Les réseaux de neurones, malgré leur nom trompeur, sont aussi intelligents que vos données d'entraînement. Le moyen le plus simple de le faire serait de proposer des algorithmes pour classer les choses qui ne sont pas des pièces de monnaie avant d'utiliser votre réseau de neurones. (Par exemple, vous pouvez détecter s'il y a des cercles dans l'image)

Questions connexes