ENCOG(或任何框架)中的图像分类示例?

Image Classification example in ENCOG(or any Framework)?

我需要对来自摄像机的图像进行分类,需要考虑的主要特征是:

我已经在使用 opencv 进行形状识别,接下来 Real Time Tracking Tutorial and this:

我的目标是,如果我在镜头前显示一个小或大的正方形,那么它会将它识别为颜色为“....”的正方形,如果我显示一张 eared/deformed 纸(正方形或三角形)然后它会将此形状识别为颜色为“....”的三角形。

我正在搜索如何使用 Encog 进行图像分类,但我发现是使用定量属性进行分类,例如测量(长度、宽度)而不是形状形式。

encog 示例是 this(在 Pluralsight 中可用)。

在此 encog 示例中,训练数据如下:

Sepal Length    Sepal Width Petal Length    Petal Width Species
5.1             3.5         1.4             0.2         setosa
4.9             3.0         1.4             0.2         setosa
4.7             3.2         1.3             0.2         setosa
7.0             3.2         4.7             1.4         versicolor
6.4             3.2         4.5             1.5         versicolor
6.9             3.1         4.9             1.5         versicolor
6.3             3.3         6.0             2.5         virginica
5.8             2.7         5.1             1.9         virginica
7.1             3.0         5.9             2.1         virginica

在我的例子中,训练数据是像素(encog 的垫子类型)也是我的评估数据。

如何标准化 encog 训练数据的像素?

我需要一些线索,教程。 非常感谢。

简答: 从纯粹的技术角度来看,您需要将图像子采样到大约 100x100 像素,转换为灰度(用于形状识别),将所有像素变为单个向量并将最大整数像素值归一化为 1.0(例如,如果您的像素值在范围 [0 ..255] 你将所有东西除以 255)。对于彩色图像,通常会创建三个向量,每个通道 (RGB) 一个,以相同的方式对它们进行归一化,连接并输入至少有一个隐藏层的神经网络 (MLP) 分类器。这与您提供的简单示例非常相似,只是使用了更多数据。

长答案:以上可能是您可以使用 Encog 做的最好的事情,如果有足够的样本和足够的 CPU/GPU 资源,这应该可以完成您的任务。然而,图像识别目前是一个悬而未决的问题,不存在可以解决所有问题的单一通用方法。现在大部分工作都是用卷积神经网络完成的(Encog 不支持),并且有一些重要的事情需要考虑,所以你可能想阅读一些经典的图像识别论文来获得一些重要的想法。如果您需要理论方面的帮助,我认为最好问您的问题 here,因为据我所知,这样的理论和教程不在 SO

的范围内