使用人工神经网络识别物体

时间:2014-02-27 23:09:13

标签: c# visual-studio-2010 emgucv

我对神经网络的输入有疑问!

我想要认出一种叶子。

我有3000张不同大小和角度的图像。我正在使用emgucv和visual studio 2010 c#。

首先,我将所有训练数据转换为灰度,然后将灰度图像转换为二值图像。但为了识别叶子,我决定使用一些基于形状的方法。

这是个好主意吗?

2 个答案:

答案 0 :(得分:1)

理想情况是以矩阵形式(RGB,灰度或B& W矩阵)输入数据,3000个图像中的每一个都应转换为该数据格式。只是不要担心形状,即:离开外围只是颜色A和颜色B之间的一系列连续局部差异(隐藏层处理这个)。

您能更具体地说明您选择方法的原因吗?试着看看这个thread关于准备培训NN的图像。您还可以查看Neuroph以获取java作为示例,以了解如何在RGB基础和形状基础上准备图像。

答案 1 :(得分:1)

我使用神经网络和EMGU手写数字识别,也许它可以帮助你。

这是一个有监督的分类问题,所以你需要定义3件事(它们会影响识别的质量):1。类,2。例子,3。特征。

  1. 你必须定义类(在我的例子中我有10个类:“1”,“2”,“3”,......,“9”,“0”)。在你的情况下,你可以有2个类(“你要认识的那种叶子”VS“其他人离开”)或N个类(“你要认识的那种叶子”VS“另一种”VS“另一种” ...)

  2. 然后你需要每个班级的例子来学习。就我而言,我每班使用10000张图像。

  3. 最后,您需要提取功能。通常我使用形状(Zernike或Hu时刻),颜色(颜色时刻)和纹理(Tamura,Gabor ......)。您还可以直接使用图像的像素值作为输入。如果您的特征对旋转和缩放不稳健,则标准化图像的大小和方向(或图像的内容)可能是一个好主意。