训练集用来训练人工神经网络

本文关键字:人工神经网络 | 更新日期: 2023-09-27 17:51:16

我是这个网站的新手。我正在做一个项目来识别一个苹果使用ANN emgucv, c#和visual studio 2010。我有4000张图片,包含不同的颜色和苹果的旋转。我有两个类,这意味着我有一个神经元在输出层(它是一个苹果,不是)。第一堂课我将使用4000个苹果的图像,但我不知道我必须使用什么图像来训练第二次课。我想用背景图片,比如房间,卧室。这是个好主意吗?我的项目是关于分类是不是苹果,我不想识别葡萄或其他水果,我给了一个图像,我想识别图像中是否有苹果

训练集用来训练人工神经网络

评论:关于归一化,它是有用的,因为它使图片对光线不那么敏感(没有归一化,同样的苹果在更好的光线下会看起来更白,网络会把不同的值作为输入。)你不会想要那样的)。但是,您使用的公式限制了区间[a, b]内变量的值。在图片中,数字的值通常已经在[0,255]中,因此需要另一种类型。你需要的归一化的确切类型取决于你从图片中提取的特征(最常见的一种是直方图均衡)

然而,你的主要问题是你不能直接将图像输入网络。网络必须把描述图片的向量作为输入,而不是图片本身(想象一下:如果你把图片输入网络,它会逐像素进行比较。如果同一个苹果向右移动一个像素,所有像素值都不同,尽管图片本质上是相同的)。

创建这样的向量可能非常困难,这取决于您想如何使用它。一种简单(但有限)的方法是将苹果摘下来,取每张图片的直方图,然后将描述每张图片直方图的向量输入网络。通过这种方式,网络将最有可能正确地对图像进行分类。如果这是一个学校的项目,或者你刚刚开始在图像处理,试试这个。然而,如果你想找到只包含一个苹果的图像,这就复杂得多了,你应该看看openv的2d特征提取教程。

对于第二个类别,您需要使用不包含苹果的图像。理想情况下,它应该是不包含苹果的图像的混合,即宇宙飞船,足球比赛,笑脸,动物和任何你能想到的图像的集合。

然而,真正的问题,你根本没有提到的,是你将如何提取特征:如果这是你第一次尝试,并认为你可以将整个图像逐像素地输入神经网络并得到答案,那么你就不走运了。

最重要的过程是如何创建描述图像的向量。也就是说,如何从一个图像中创建一个向量,使得包含苹果的图像的向量与不包含苹果的图像的向量有很大的不同。

然而,这不是微不足道的。事实上,这可能是一项非常困难的任务,这取决于图像的性质。如果第一类的图片中苹果占据了图片的大部分,而第二类只显示卧室,那么使用颜色直方图就可以了。

然而,如果图像显示随机场景,可能包含或不包含苹果,这是非常困难的。首先,查看opencv 2d特性+单应性查找已知对象