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

标签 opencv machine-learning neural-network classification encog

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

  • 物体形状(基本形状,如三角形、正方形等)
  • 对象颜色
  • 几乎没有变形

我已经在使用 opencv 进行形状识别,遵循此 Real Time Tracking Tutorialthis :

我的目标是,如果我在相机前显示一个小或大的正方形,那么它会将其识别为颜色“....”的正方形,如果我显示有耳/变形的纸张(正方形或三角形) )然后它会将这个形状识别为颜色为“....”的三角形。

我正在搜索如何使用 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 的 mat 类型),也是我的评估数据。

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

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

最佳答案

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

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

关于opencv - ENCOG(或任何框架)中的图像分类示例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28582559/

相关文章:

python - 手写数字识别问题: Wrong number of dimensions

python - 如何适应文档?

c++ - OpenCV C++ : Sorting contours by their contourArea

opencv - 在opencv上检测非闭合轮廓

machine-learning - 批量训练准确率始终是 10% 的倍数

python - 计算时对网络权重进行自定义操作

python - 使用 OpenCV 检测小数点

python - 逻辑回归的批量梯度下降

r - R 中随机森林时间序列的变量重要性

python - 无法从 keras.utils 导入 multi_gpu_model