我要寫一個小應用程序來識別手勢(現在用鼠標)。爲手勢識別重新採樣和規格化numpy陣列
現在,將鼠標座標記錄在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-手段降低8集羣元素..
SOLUTION:我有一些零散的點(我不噸知道多少),我想把它降低到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不是一個確定性的alorightm,但它是一個迭代過程,涉及一些隨機初始化,因爲對於這類問題(如果我理解的很好)沒有任何分析性的良好解決方案。
肯定有一些數學見解,我不想深入研究。這做的工作。
thanks!我用kmeans解決了! – nkint 2012-01-19 08:41:39