2011-11-10 3 views
0

私は学生です。私の任命は、提供されたリストからコンピュータビジョンペーパーを選び、そのアルゴリズムを実装することです。私はGraumanとDarrellsを選びました。ピラミッドマッチカーネル: イメージのセットを使った識別分類(IEEE、2005)Grauman&Darrellsのピラミッドマッチカーネル

私は物事をコード化しましたが、画像によく一致しません。実際には、フィーチャ記述子を使用するとどのように動作するのかを概念的に見ることさえできません。

このテクニックは、2つのフィーチャセットのヒストグラムのピラミッドを作成し、それらのセットの(重み付けされた)交点を計算することです。第1レベルのビンサイズ== 1で、ビンサイズはピラミッドの各レベルで倍になります。 bin size> = max_element_in_feature_setsのとき、プロセスは停止します。ビンサイズが大きい場合は、descriptor_value/bin_sizeの整数除算が常にゼロを返し、すべてが1つのビンに格納されます。

ここで私のために分かれています。ビンサイズ= 1/2 * max_element、つまりすべてのフィーチャのすべての要素がビン1またはビン0に入るとします。ただし、フィーチャベクトルの長さが128の要素の場合、2つの128ビンがあります。 2つの機能が同じビンに入る可能性はありますか?

答えはもちろんのことです。特徴がランダムノイズであった場合、確率は非常に低くなる。この論文は、類似の画像が類似の特徴を生み出すことを暗黙のうちに仮定しなければならない。私は試練でそれを見ていないよ。たとえば、灰色の小さな画像を撮り、5x5のガウスカーネルでぼかしました。それから元のイメージと比較しました。 はここに出力されます。 (説明が出力を下回っているスクロールダウン。。)


番号のリスト

file named art487.jpg extracted features= 50 
file named art487_blur.jpg extracted features= 7 

Min value= 0, Max val= 164 (of any element) 
levels in the pyramid= 8 

SUMMARY OF PYRAMID art487.jpg 
    level= 0, # bins= 50, bins= 1, 1, 1,..., 1, count = 50 
    level= 1, # bins= 50, bins= 1, 1, 1,..., 1, count = 50 
    level= 2, # bins= 50, bins= 1, 1, 1,..., 1, count = 50 
    level= 3, # bins= 50, bins= 1, 1, 1,..., 1, count = 50 
    level= 4, # bins= 50, bins= 1, 1, 1,..., 1, count = 50 
    level= 5, # bins= 50, bins= 1, 1, 1,..., 1, count = 50 
    level= 6, # bins= 50, bins= 1, 1, 1,..., 1, count = 50 
    level= 7, # bins= 21, bins= 29, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, count = 50 


SUMMARY OF PYRAMID art487_blur.jpg 
    level= 0, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1, count = 7 
    level= 1, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1, count = 7 
    level= 2, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1, count = 7 
    level= 3, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1, count = 7 
    level= 4, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1, count = 7 
    level= 5, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1, count = 7 
    level= 6, # bins= 7, bins= 1, 1, 1, 1, 1, 1, 1, count = 7 
    level= 7, # bins= 4, bins= 4, 1, 1, 1, count = 7 

raw score= 0 
normalized score= 0 
多くの機能が一つの特定のビンに落ちたか、「ビン=」ショーの後。結果はちょうど私が128次元から期待しているものです。すべてのフィーチャは、いくつかのゼロベクトルがグループ化されている最も粗いレベルを除いて、独自のビンを取得します。 これは0の類似度スコアを生成します。ちょうど私が期待するでしょう。

このピラミッドマッチカーネルをどのように役立つかわかりません。 この論文では、SIFT機能を使用して良い結果が得られたと述べていますが、その方法について理解できるようにするためには何も書かれていません。

何が問題になりますか?私はビンピクセルの強度とフィーチャー記述子ではないと思いますか?

答えて

1

私はクラスメートと話しました。著者らはSIFT特徴検出器を使用したが、10次元PCA-SIFT記述子を使用したことが判明した。私はそれに渦を立てます。 更新:これで問題は解決しました。フィーチャベクタは、約10エレメント長でなければなりません。

0

ビンサイズが1/2 * max-sizeの場合は、ピラミッドに何かを追加する必要があります。私がquadtreeのnearest-neighborを検索して、quadtreeの1/2にクエリを制限するのと同じです。しかし、この方法は私には新しいものです。

関連する問題