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\',\'none\');
else
    h = msgBox(\'unclassified\',\'none\');
end;
问题是,即使当我输入其他图像时,例如说一个人的脸,它也会说类型1或类型2。它不会显示分类。始终为任何图像指定类型1或类型2,不仅对于硬币图像。 有人可以帮帮我吗?     

解决方法

我想,您只用硬币训练了神经网络。 那就是问题所在。如果您希望神经网络对不是硬币的事物进行分类。您必须使用非硬币图像来训练它。这是一个大问题,因为有无数张不是硬币的图像。尽管名称令人误解,但神经网络仅与您的训练数据一样聪明。 更简单的方法是在使用神经网络之前提出一些算法,对不是硬币的事物进行分类。 (例如,您可以检测图像中是否有圆圈)     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...