繁体   English   中英

训练集训练人工神经网络

[英]Training set to train artificial neural network

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

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

然而,你根本没有提到的真正问题是你将如何提取这些特征:如果这是你第一次尝试这个并认为你只是将整个画面逐个像素地输入到一个神经网络并得到答案,你运气不好。

最重要的过程是如何创建描述图像的向量。 也就是说,如何从图像创建矢量,使得包含苹果的图像的矢量与不包含苹果的图像的矢量非常不同。

然而,这根本不是微不足道的。 事实上,根据图像的性质,这可能是一项非常困难的任务。 如果第一类由显示苹果占据大部分图片的图像组成,而第二类仅显示卧室,则仅使用颜色直方图将起作用。

但是,如果图像显示可能包含苹果的随机场景,则非常困难。 要开始,请查看opencv 2d功能+单应性以查找已知对象

一些评论:关于标准化,它很有用,因为它使图片对照明不太敏感(没有标准化,更好的照明中的相同苹果看起来更白,网络将采用不同的值作为输入。你不希望这样) 。 但是,您使用的公式会限制区间[a,b]中变量的值。 在图片中,数字的值通常已经在[0,255]中,因此需要另外一种。 您需要的确切归一化类型取决于您从图片中提取的特征(最常见的一种是直方图均衡

但是,您的主要问题是无法将图像直接送入网络。 网络必须将一些描述图片的矢量作为输入,而不是图片本身(想想这个:如果你将图片输入网络,它会逐个像素地进行比较。如果相同的苹果向右移动一个像素,所有像素值都不同,尽管图片基本相同)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM