标签: pattern-recognition

简单的物体识别

===解决===

感谢您的建议和意见.通过使用Beginning Python Visualization一书(第9章 - 图像处理)中给出的flood_fill算法,我实现了我想要的.我可以计算对象,为每个对象获得封闭的矩形(因此高度和宽度),最后可以为每个对象构造NumPy数组或矩阵.

虽然它不是一种优化的方法,但却能满足我的需求.我使用的源代码(lab2.py)和png文件(lab2-particles.png)已放在http://code.google.com/p/ccnworks/source/browse/#svn/trunk/AtSc450下.

您需要安装NumPy和PIL,并使用matplotlib查看直方图.代码的核心位于objfind函数中,其中发生主递归对象搜索操作.

进一步更新:

SciPy的ndimage.label()也完全符合我的要求.

来自NumPy和SciPy邮件列表的David-Warde FarleyZachary Pincus的欢呼声将这一点直接指向我的眼睛:)

=============

你好,

我有一个图像,其中包含由粒子光谱仪测量的冰粒的阴影.我希望能够识别每个对象,以便我以后可以在计算中进一步分类和使用它们.

从本质上讲,我愿意做的是简单地实现一个模糊选择工具,我可以简单地选择每个实体.

我怎么能轻松解决这个问题?(最好使用Python)

谢谢.

注意:在我的问题中,我将每个特定的连接像素称为对象或实体.我打算提取它们并创建NumPy数组表示,如下所示.(这里我使用左上角的物体;如果存在一个像素,则使用1,如果不使用0的话.这个物体的形状是3乘3,相应地是3个像素高度乘以3个像素宽度.这些是真实冰粒在2D域上的投影,假设它们是球形和等效半径是(高度+宽度)/ 2,后来一些缩放 - 从像素到实际尺寸和体积计算将遵循)

import numpy as np

np.array([[1,1,1], [1,1,1], [0,0,1]])

array([[1, 1, 1],
       [1, 1, 1],
       [0, 0, 1]])
Run Code Online (Sandbox Code Playgroud)

这是我要使用的图像的一部分.

截图http://img43.imageshack.us/img43/2327/particles.png

python pattern-recognition image-processing computer-vision

6
推荐指数
2
解决办法
1万
查看次数

有关实验人工神经网络的有趣想法是什么?

我正在寻找可以进行实验的可能的神经网络实现列表.可能需要一个小时到一周的时间才能写出来.

还有哪些其他可能性?

到目前为止这是列表:

一些链接到更多:

pattern-recognition neural-network

6
推荐指数
1
解决办法
1114
查看次数

为分类问题生成假数据的最佳方法是什么?

我正在研究一个项目,我有一个用户的击键时间数据的子集.这意味着用户进行了n次尝试,我将在各种分类算法中使用这些记录的尝试时间数据,以供将来用户尝试验证登录过程由用户或其他人完成.(我可以说这是生物识别技术)

我有3次不同的用户登录尝试过程,当然这是无限数据的子集.

直到现在这是一个简单的分类问题,我决定使用WEKA,但据我所知,我必须创建一些假数据来提供分类算法.用户的测量尝试将为1,假数据将为0.

我可以使用一些优化算法吗?或者有没有办法创建这些假数据以获得最小误报?

谢谢

pattern-recognition classification machine-learning biometrics weka

6
推荐指数
1
解决办法
2090
查看次数

加速度计信号分割

替代文本

我有一个一维加速度计信号(仅一个轴)。我想创建一个强大的算法,它能够识别信号中的某些形状。

首先,我对原始信号应用移动平均滤波器。在附图中,原始信号为红色,平均信号为黑色。从图中可以看出,从平均(黑色)信号中可以看到一些趋势 - 该信号包含 10 次类似峰值模式的重复,其中加速度攀升至最大值,然后又下降。我用十字标记了这些模式的开始和结束。

所以我的目标是自动找到标记的位置。导致模式提取困难的问题是:

  • 模式开头的 y 值可能与模式结尾的不同
  • 该模式可能有多个峰值
  • 我没有任何具体的时间信息(从模式的开始到结束需要一个时间单位)

我尝试过不同的方法,这些方法几乎都是自制的,所以我不会提及它们 - 我不想让你因为我的思维方式而产生偏见。是否有一些标准或书本方法来进行这种模式提取?或者也许有人知道如何以稳健的方式解决这个问题?

任何想法将不胜感激。

signals pattern-recognition accelerometer

5
推荐指数
1
解决办法
1616
查看次数

贝叶斯类的数字识别

我只需要为数字写一个OCR程序.我将使用MNIST数据集.问题是我不知道从哪里开始.有很多论文没有真正解释算法.我对模式识别并不是很了解.所以我有几个问题.

Q1:我在哪里可以找到算法(或教程)Q2:如何对数字进行分类?我不需要非常先进的东西.我首先想到的是找到上半部/下半部和左侧/右侧的比例.是否有更有用和简单的分类方法.问题3:什么是反向传播以及大多数论文中显示的层.我的简单OCR是否需要它们?

注意:我知道我的OCR程序不准确.现在这不是很重要.

ocr pattern-recognition

5
推荐指数
1
解决办法
2192
查看次数

国际象棋棋盘推荐模式识别技术

我正在尝试做一个应用程序,除其他外,它能够从屏幕截图中识别计算机屏幕上的国际象棋位置。我对图像处理技术的经验非常有限,不希望投入大量时间来研究这个,因为这只是我的一个宠物项目。

任何人都可以向我推荐一种或多种可以给我带来好的结果的图像处理技术吗?

条件是:

  • 图像总是清晰干净,没有噪音,光线条件差等(因为它是截图)
  • 我预计在每秒处理 1 张图像时对计算机性能的影响非常小
  • 我想到了两种模式来启动这个过程:
    • 将棋子的形状输入程序(以便它知道皇后、国王等的样子)
    • 只需向程序提供包含启动位置的初始图像,程序可以(在识别棋盘位置后)从中挑选每个棋子
  • 这个过程应该比较容易理解,因为我还没有很好地掌握图像处理技术(还)
  • 我对使用任何特定技术不感兴趣,因此与技术无关的文档将是理想的(C/C++、C#、Java 示例也可以)。

感谢您花时间阅读本文,我希望得到一些好的答案。

pattern-recognition chess image-processing image-recognition

5
推荐指数
1
解决办法
3111
查看次数

使用神经网络提取模式

我试图提取每当特定事件发生时总是出现的常见模式。

例如,患者 A、B 和 C 都患有心脏病。我想利用那里的脉搏读数找到心脏病发作之前的常见模式。

在下一阶段,我想使用多个维度来做到这一点。例如,使用患者脉搏、体温和血压的读数,考虑到每个维度之间的时间和顺序,三个维度中发生的常见模式是什么。

使用神经网络解决此问题的最佳方法是什么?哪种类型的网络最好?(只需要一些指向正确方向的指示)

感谢大家的阅读

pattern-recognition neural-network deep-learning

5
推荐指数
1
解决办法
3724
查看次数

在keras中绘制学习曲线会给出KeyError:'val_acc'

我试图在keras中绘制训练和测试学习曲线,但是,下面的代码产生了KeyError: 'val_acc error

正式文档<https://keras.io/callbacks/>指出,要使用该代码,'val_acc'我需要启用验证和准确性监视,这些我不了解并且也不知道如何在我的代码中使用。

任何帮助将非常感激。谢谢。

seed = 7
np.random.seed(seed)

dataframe = pandas.read_csv("iris.csv", header=None)
dataset = dataframe.values
X = dataset[:,0:4].astype(float)
Y = dataset[:,4]

encoder = LabelEncoder()
encoder.fit(Y)
encoded_Y = encoder.transform(Y)
dummy_y = np_utils.to_categorical(encoded_Y)

kfold = StratifiedKFold(y=Y, n_folds=10, shuffle=True, random_state=seed)
cvscores = []

for i, (train, test) in enumerate(kfold):

    model = Sequential()
    model.add(Dense(12, input_dim=4, init='uniform', activation='relu'))
    model.add(Dense(3, init='uniform', activation='sigmoid'))
    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    history=model.fit(X[train], dummy_y[train], nb_epoch=200, batch_size=5, verbose=0)
    scores = model.evaluate(X[test], dummy_y[test], verbose=0)
    print("%s: %.2f%%" % (model.metrics_names[1], …
Run Code Online (Sandbox Code Playgroud)

python pattern-recognition classification machine-learning

5
推荐指数
6
解决办法
1万
查看次数

时间序列中的模式识别(Python)

我的问题与类似,但噪音更大。基本上,我想从时间序列中提取重复的“锯”模式。它们看起来像这样: 示例 1 示例 2 示例 3

我没有任何标记数据,但这些模式都有一个共同点。急剧上升,然后缓慢下降,并在一段时间内重复。(也可在图案下方紫色的阶梯函数中识别)。

我怎样才能从一大批不同的时间序列中提取这些模式?最好在 Python 中。我宁愿不花几天时间构建模型,所以越简单越好:)

python pattern-recognition time-series

5
推荐指数
0
解决办法
3336
查看次数

MATLAB fitcSVM权重向量

我正在使用MATLAB中的fitcsvm函数训练线性SVM分类器:

     cvFolds = crossvalind('Kfold', labels, nrFolds);

          for i = 1:nrFolds                       % iterate through each fold

              testIdx = (cvFolds == i);            % indices of test instances
              trainIdx = ~testIdx;                 % indices training instances

              cl = fitcsvm(features(trainIdx,:), 
              labels(trainIdx),'KernelFunction',kernel,'Standardize',true,...
             'BoxConstraint',C,'ClassNames',[0,1], 'Solver', solver);

              [labelPred,scores] =  predict(cl, features(testIdx,:));
              eq = sum(labelPred==labels(testIdx));
              accuracy(i) = eq/numel(labels(testIdx));

          end
Run Code Online (Sandbox Code Playgroud)

从这部分代码中可以看出,训练好的SVM模型存储在cl中.检查cl中的模型参数我没有看到哪些参数对应于分类器重量 - 即.线性分类器的参数反映了每个特征的重要性. 哪个参数代表分类权重?我在MATLAB文档中看到"向量β包含定义超平面正交向量的系数" - 因此cl.beta代表分类权重?

matlab pattern-recognition classification machine-learning svm

5
推荐指数
1
解决办法
782
查看次数