2016-12-13 9 views
0

私はk-NNアルゴリズムを使って人の認識のための簡単なプログラムを書こうとしています。この問題は古典的なものだと思いますが、助けが必要です。 k-NNクラシファイアはいくつかの距離を計算する必要があるので、私の質問は、どのように比較するのか、または2つの画像間の距離を計算する方法ですか?(私はL2ノルムを距離として使用しなければならないと言います) ありがとう!OPEN CV C++ person Recognition K-nn

答えて

0

k-NNのように機能するには、まずいくつかの値で機能が必要です。たとえば、イメージにn個のフィーチャがあるとすると、それらのフィーチャからn次元ベクトルを作成します。何かのように: F(x1、x2、x3、x4、.... xn)、x1、x2、x3 ... xnはフィーチャの値です。 ここで、フィーチャを計算してベクトル形式に変換すると、アイコン距離式を使用して、それらのベクトル間の距離を簡単に計算できます。そして、リスト/配列内のすべての距離を計算/格納したら、それをソートし、最短距離のk個の頂点値を取り出すと、それらは計算されたk個の最も近い近隣になります。 もう一度、特徴抽出があなたが探しているものです。

+0

私の場合、グレースケール形式の画像のピクセル値の強度は私の特徴を表していると思います。画像X、Yがあるとしましょう:XとYの間の距離は、これらの2組のピクセル値、XとYについて? – Elneny

+0

@Elneny、あなたの事件について本当に言うことはできません。前回、2枚のグレースケール画像を比較しなければならなかった時、私は各ピクセルをユニークな特徴として扱いました。つまり、28x28イメージの場合、784個のフィーチャーがあり、それぞれのフィーチャーは0〜255の値を持ちます。そして、距離のL2ノルムを使いたいかどうか、それはあなたにあります。それで、ユークリッド距離式をお勧めします。 –

+0

ありがとう、このようなもの私はそれも必要です – Elneny

関連する問題