0

画像検索でいくつかのことをテストしていますが、データセットの悪い写真を整理する方法を考えていました。たとえば、家の写真だけがあり、その間に人の写真と車の写真があります。だから最後に家だけを手に入れたい。現時点で私のアプローチは次のようになります。

  • すべての画像の記述子の計算 (Sift)
  • k-means によるすべての記述子のクラスタリング
  • クラスターの中心と画像の記述子との間のユークリッド距離を計算することにより、画像のヒストグラムを作成する
  • ヒストグラムを再度クラスタリングします。

この時点で、私は最初の並べ替えを取得しました (これはあまり良くありません)。今私の考えは、中心にクラスター化されているすべての写真を撮り、len(center) > 1それらを何度もクラスター化することです。その結果、中心にこだわった写真が選別されます。再度クラスタリングせずに、結果を同じ k-means に再度適合させるだけで十分でしょうか?!

結果は満足のいくものではないので、誰かが良いアイデアを思いついたのかもしれません。

クラスタリングなどには、scikit Learn の k-means を使用しています。

4

2 に答える 2

1

問題の解決策はありませんが、抽出した特徴の種類が問題に適していることを確認するために、最終的なクラスタリングの前に実行するサニティ チェックを次に示します。

  • データセット内のすべての画像のヒストグラム機能を抽出します
  • ヒストグラム機能を使用して、データセット内のすべての写真のペアワイズ距離を計算します (使用できますsklearn.metrics.pairwise_distance)

np.argsort解いた距離行列を使用して、特徴に応じて異なる画像の上位 20 の最も近いペアのインデックスを見つけ (距離行列のゼロ値の対角要素を除外する必要があります)、同じことを行って上位 20 の最も遠いペアを抽出します。ヒストグラムの特徴に基づいた写真の。

一番近いペアの写真を (たとえば でplt.imshow) 視覚化し、それらがすべて非常に似ていると予想されるペアであることを確認します。

最上位のペアの写真を視覚化し、それらがすべて非常に似ていないことを確認します。

これら 2 つのチェックのいずれかが失敗した場合、SIFT 単語のバッグのヒストグラムがタスクに適していないことを意味します。他の種類の機能 (HoG 機能など) を抽出するか、SIFT 記述子のクラスターを抽出する方法を再編成する必要があるかもしれません。さまざまなスケールでの画像のグローバル レイアウトに関する情報を抽出するために、ピラミッド型プーリング構造を使用する場合があります。

于 2013-09-11T08:08:16.647 に答える
1

K-means はノイズに対してあまり堅牢ではありません。あなたの「悪い写真」はおそらくそのように考えることができます。さらに、k-means はまばらなデータにはうまく機能しません。手段がまばらではないからです。

この状況をより適切に処理できる、他のより最新のクラスタリング アルゴリズムを試してみることをお勧めします。

于 2013-09-11T07:59:30.303 に答える