gpt4 book ai didi

python - 重新采样并规范化 numpy 数组以进行手势识别

转载 作者:太空宇宙 更新时间:2023-11-04 06:37:23 24 4
gpt4 key购买 nike

我打算写一个小应用程序来识别手势(现在用鼠标)。

现在,将鼠标坐标记录在 Point 对象(具有 x 和 y 属性的简单类)的 numpy 数组中。为了训练我的系统(基于 HMM),我需要(我认为......)一些相同长度的样本在相同的范围内归一化。

例如,我需要一个 8 元素长度的数组来进行训练和分类器。我刚刚记录了 a1(5-len 元素)和 a2(9-len 元素)。如何实现 len(a1)==len(a2)==8 ?

编辑:我找到了一个解释我的问题的网站: http://www.creativedistraction.com/demos/gesture-recognition-kinect-with-hidden-markov-models-hmms/他使用 k-means 减少 8 个簇中的元素..

解决方案:我有一些零散的点(我不知道有多少),我想将它减少到 8 个意义点。我可以使用的技术之一是使用一些聚类算法对它们进行聚类。 KMeans 可能是一种可能性。在 scipy 中使用此代码:从 scipy.cluster.vq 导入 kmeans2

def clusterize(numpy_array, n_cluster):
centroids, labels = kmeans2(numpy_array, n_cluster)
#print centroids, labels
return centroids

注意:如果 numpy_array 大小小于 n_cluster,我注意到解决方案并不好,但在我的真实案例中,经过一些试验后我观察到我有超过(numpy_array 大小>=60,n_cluster=8)。这是很合乎逻辑的:k-means 不是一个确定性的算法,而是一个涉及一些随机初始化的迭代过程,因为对于这类问题没有分析好的解决方案(如果我理解得很好的话)。

肯定有一些我不想深入研究的数学见解。这完成了工作。

最佳答案

我不确定这是否是您需要的,但这将从输入沿 n 均匀间隔的点进行线性插值。

input = np.array([0, 1, 2, 3, 4]) ** 2
n = 8
m = len(input)
out = np.interp(np.linspace(0, m-1, n), np.arange(m), input)

关于python - 重新采样并规范化 numpy 数组以进行手势识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8908312/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com