我是这个网站的新成员。我正在做一个项目来识别一个苹果,使用ANN,C#和visual 2010。我有4000张图片,其中包含不同颜色和旋转的苹果。我有两个类,这意味着输出层中有一个神经元(它是一个苹果,而不是苹果)。头等舱我将使用4000张苹果图像,但我不知道我必须用什么图像来训练二等。我想用背景图像,比如房间,卧室。这是个好主意吗我的项目是关于分类是否是一个苹果,我不想识别葡萄或其他水果,.I给一个图像,我想重述,如果图像包含一个苹果或没有。
发布于 2014-03-27 08:37:27
一些评论:关于标准化,它是有用的,因为它使图片对照明不那么敏感(如果没有标准化,在更好的灯光下相同的苹果看起来会更白,网络将以不同的值作为输入。你不想这样)。但是,您使用的公式将变量的值限制在a,b之间。在图片中,数字的值通常已经在0,255,所以需要另一种类型。您需要的规格化的确切类型取决于您从图片中提取的特性(最常见的是直方图均衡)。
但是,您的主要问题是无法将图像直接输入网络。网络必须以描述图片的向量为输入,而不是图片本身(请考虑一下:如果您将图片输入网络,它将逐像素进行比较。如果同一个苹果向右移动一个像素,则所有像素值都不同,尽管图片基本上是相同的)。
创建这样的向量可能非常困难,这取决于您想要如何使用它。一种简单(但有限)的方法是对苹果进行裁剪,获取每幅图片的直方图,并将描述每幅图像直方图的矢量输入网络。这样,网络很可能会对图像进行正确的分类。如果这是一个学校的项目,或者你刚刚开始在图像处理,试试这个。然而,如果你想在图片中找到只包含苹果的图片,那就复杂多了,你应该看看opencv关于2d特征提取的教程。
发布于 2014-03-24 11:58:56
对于第二类,您需要使用不包含苹果的图像。理想情况下,它应该是不含苹果的图像的组合,这是宇宙飞船、足球比赛、笑脸、动物和其他你能想到的东西的集合。
然而,真正的问题,你根本不提,是如何提取特征:如果这是你第一次尝试,认为你只是把整个画面,像素一个像素,进入一个神经网络,并得到一个答案,你是运气不好。
最重要的过程是如何创建描述图像的向量。也就是说,如何从图像中生成一个向量,使得包含苹果的图像的向量与不含苹果的图像的向量非常不同。
然而,这绝不是微不足道的事情。事实上,是一项非常困难的任务,取决于图像的性质。如果头等舱的图像显示苹果占据了大部分图片,而第二类只显示卧室,则只需使用颜色直方图即可。
然而,如果图像显示的是随机场景,其中可能包含一个苹果,这是非常困难的。要开始,请查看opencv 2d特性+单形,以找到已知的对象。
https://stackoverflow.com/questions/22580807
复制相似问题