2012-01-18 4 views
2

ジェスチャーを認識するための小さなアプリケーションを作成します(今のところマウスの場合)。今ジェスチャー認識のためにnumpy配列を再サンプリングして正規化してください。

、マウスは、点オブジェクト(xとy属性を持つ単純なクラス)のnumpyのアレイの座標レコード。 私のシステム(HMMに基づいて)を訓練するために私は(私は思う...)同じ長さのいくつかのサンプルが同じ範囲内で正規化されている必要があります。

言って、例えば、私は私の訓練のために、私のクラシファイアのための8要素の長さの配列が必要であること。 そして、私はちょうどa1(5-len要素)とa2(9-len要素)をレコーディングしました。 len(a1)== len(a2)== 8を得る方法?

EDIT

SOLUTION ...彼は8クラスタ内の要素を減らすために、K-手段を使用しています http://www.creativedistraction.com/demos/gesture-recognition-kinect-with-hidden-markov-models-hmms/ ::私はいくつかの散乱点を(私はドン」は私は私の問題を説明するウェブサイトを見つけましたどのくらい知っているのか分かりません)、私はそれを8つの意味の点に減らしたいと思います。私が使用できる技術の1つは、いくつかのクラスタアルゴリズムでそれらをクラスタ化することです。 KMeansは1つの可能性があります。このコードのscipyのダウンロード中: scipy.cluster.vqインポートkmeans2から

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

注:私は、ソリューションが良いものではありませんが、私の本当の場合、私が観察いくつかの試行後に気づいn_cluster numpy_arrayサイズは、小さい場合私には(numpy_array size> = 60、n_cluster = 8)以上のものがあります。これはかなり論理的です:k-meansは決定論的な方向性ではありませんが、この種の問題に対する分析的な良い解決策がないので(私がよく理解していれば)、ランダムな初期化を伴う反復的なプロセスです。確かに

は私が掘り下げたくないいくつかの数学的な洞察力があります。これは仕事をする。

答えて

0

私は、これは何が必要ですわからないんだけど、これは直線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) 
+0

感謝!私はkmeansで解決しました! – nkint

関連する問題