2

私は現在、私の研究のためのプロジェクトまたはガイド/チュートリアルを研究しています。私は 3 つの葉の異なる種を特定する必要があり、それぞれに 100 個のサンプル (具体的には 300 個) を使用しています。データベースを参考に。

サンプルのアップロードとシステムの画像処理は完了しましたが、それらを分類する際に KNN アルゴリズムを適用する必要があります。提案やステップバイステップのチュートリアルはありますか?

アルゴリズムをコーディングする上で勉強する必要がありますか、またはC# 言語での画像分類で KNNを簡単に適用するための既存のライブラリはありますか? 葉の種ごとに 100 個の画像サンプルがあれば十分ですか?

詳細: martijin_himself の回答からの返信

はい、私は木の葉について話している。問題は、考慮すべき唯一の特徴が木の葉の形だということです。色、サイズなどの他の機能を無視する。そして、これらの「特徴ベクトル」をいつどのように抽出するか、それらをどこに配置するか、画像サンプルを葉を分類するための参照としてどのように使用するかは正確にはわかりません

システムの画像処理部分については、画像は 2 値化とブロビングのプロセスを経て、画像はその形状のみを考慮します。したがって、データベースにアップロードしたすべてのサンプルについても同様です。回答に必要な情報が不足していたら大変申し訳ありません。我慢してください。

前もって感謝します!:)

4

2 に答える 2

6

私の理解が正しければ、クラス (またはラベル) ごとに 100 枚の 300 枚の画像のトレーニング セットがあります。

まず、特徴ベクトルを定義する必要があります。これは、画像を分類する上で重要と思われる一連の画像特性または属性です。(木) の葉について話している場合、1 つの特徴は画像の色の値でしょうか?

2 番目のステップは、特徴ベクトル間の距離を計算する距離関数を定義することです。たとえば、赤が多い画像は、緑が多い画像との距離が大きくなります。フィーチャを重み付けして、距離への寄与における重要性を反映することもできます。

次に、k の値を選択し、特徴ベクトルと距離関数の組み合わせがトレーニング セットの既知のラベルを使用して画像を分類するパフォーマンスをテストできます。これは交差検証と呼ばれます。特徴ベクトルと距離関数がうまく機能しない場合は、クラスを代表しない属性 (画像のサイズなど) を選択した可能性があります。

これを c# で実装する場合、画像ごとに FeatureVector クラスなどを作成し、IComparable (または同様の) インターフェイスを実装して、既知のサンプルまでの距離関数を計算することができます。その後、単純にリストを作成して並べ替えることができます。これは単なる提案です。

于 2011-02-09T17:51:31.337 に答える
0

その結果、画像を 2 つのセグメント (上下) に分割しました。しかし、3 つの特徴ベクトル (葉の面積、上部の面積、下部の面積) がありました。データベース内のすべてのサンプルと同じです。

私が持っている 3 つの特徴ベクトルを考慮して、それらの距離/秒 (オークリッド、w/c は K-NN アルゴリズムに含まれています) を計算し、ユーザーに基づいてそれらを分類することにより、K-NN アルゴリズムを研究に適用することができました。 -定義された K の値。したがって、結果はパーセンテージで表示されます。

助けてくれてありがとう^_^

于 2011-03-03T14:40:35.443 に答える