SIFT機能とSVMを使用した画像分類


12

SIFT / SURF / ORB機能とサポートベクターマシンを使用してバッグオブワードモデルを使用して画像分類を実行する方法を誰かが説明できることを望んでいますか?

現時点では、画像のSIFT特徴ベクトルを計算し、SVMを実装していますが、ワードバッグモデルを使用してSIFT特徴を「ベクトル量子化」し、ヒストグラムを作成する方法に関する文献を理解することは困難ですSVMのトレーニングとテストに使用できる固定サイズのベクトル。

トピックに関するチュートリアルや文献へのリンクは大歓迎です、ありがとう

回答:


16

SVMを実装できる場合は、機能を量子化できます。:)

通常、特徴はk-meansクラスタリングを使用して量子化されます。最初に、「語彙サイズ」(たとえば200の「視覚単語」)を決定し、その数のクラスター(200)に対してk-meansクラスタリングを実行します。SIFT記述子は、128要素のベクトル、つまり128次元空間の点です。したがって、他のポイントと同様に、それらをクラスター化することができます。多数の画像からSIFT記述子を抽出します。これは、機能のバッグを使用して分類したいものに似ています。(理想的には、これは個別の画像セットである必要がありますが、実際には多くの場合、トレーニング画像セットから機能を取得するだけです。)次に、この大規模なSIFT記述子セットでk-meansクラスタリングを実行して200(または任意の)クラスターに分割します、つまり、各記述子をクラスターに割り当てる。k-meansは200のクラスターセンターを提供し、

次に、イメージ内の各SIFT記述子を取得し、それに最も近いクラスターの中心を見つけることにより、200個のクラスターのどれに属するかを決定します。次に、各クラスターの機能の数を単純に数えます。したがって、任意の数のSIFTフィーチャを含む画像の場合、ヒストグラムは200ビンになります。これが、SVMに与える特徴ベクトルです。(注意、フィーチャーという用語はひどく過負荷です)。

私が思い出すように、これらのヒストグラムをどのように正規化するかに関して多くの作業が行われました。私は間違っているかもしれませんが、バイナリ特徴ベクトル(つまり、このクラスターから少なくとも1つの特徴が存在する場合は1、そうでない場合は0)がヒストグラムよりも優れていると主張した論文を思い出すようです。詳細については文献を確認する必要があり、詳細は重要です。

編集: Computer Vision System Toolbox for MATLABは、機能性のバッグを提供します


こんにちは、Dima、あなたの答えに感謝します。「その数のクラスターに対してk-meansクラスタリングを実行する」と言ったとき、私は1つの質問がありました。ps用語機能がひどく過負荷であるというコメントに対するこの回答を受け入れたいと思います。私は画像処理が初めてであり、これ以上同意することはできませんでした
Jono Brogan

@JonoBrogan:私の答えは正しいので、受け入れてください。:) k-meansを明確にするために、回答を編集しました。
ディマ

今では意味がありますか?
ディマ

うん、ありがとう。私は答えを受け入れましたが、使用する「視覚的な単語」の数をどのように決定するのかを知っていますか?
ジョノブローガン

3
しかし、最大の問題は、Kmeansアルゴリズムが常に同じ結果をもたらさないことです。大幅にランダム化されています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.