40

「逆画像検索エンジン」であるTinEyeを使用すると、画像をアップロード/リンクできます。クロールした数十億の画像を検索でき、同じ画像であることが判明した画像へのリンクを返します。

ただし、単純なチェックサムやそれに関連するものではありません。多くの場合、指定した元の画像よりも解像度が高い画像と低い画像、およびサイズが大きい画像と小さい画像の両方を見つけることができます。私はしばしば画像を見つけて、可能な限り最高の解像度のバージョンが欲しいので、これはこのサービスの良い使い方です。

それだけでなく、同じ画像セットの画像を見つけてもらいました。画像内の人々の位置は異なりますが、背景はほとんど同じままです。

画像をさまざまなサイズと圧縮率の他の画像と比較し、それらが「同じ」画像またはセットであることを正確に把握できるようにするために、TinEyeはどのようなアルゴリズムを使用できますか?

4

8 に答える 8

40

これらのアルゴリズムは通常、指紋ベースです。フィンガープリントは、かなり小さなデータ構造であり、長いハッシュ コードのようなものです。ただし、フィンガープリント関数の目的は、ハッシュ関数の目的とは逆です。優れたハッシュ関数は、非常に類似した (しかし等しくない) オブジェクトに対して非常に異なるコードを生成する必要があります。逆に、フィンガープリント関数は、類似した画像に対して同じフィンガープリントを生成する必要があります。

例を挙げると、これは (あまり良くない) 指紋機能です。画像のサイズを 32x32 の正方形に変更し、色を正規化および量子化して、色数を 256 程度に減らします。次に、1024 バイトの指紋があります。画像のために。指紋のテーブルを保持するだけです => [画像 URL のリスト]。特定の画像に似た画像を見る必要がある場合は、そのフィンガープリント値を計算して、対応する画像リストを見つけるだけです。簡単。

簡単なことではありませんが、実際に有用であるためには、フィンガープリント関数はクロップ、アフィン変換、コントラストの変化などに対して堅牢である必要があります。優れたフィンガープリント関数の構築は、別の研究トピックです。多くの場合、それらは手動で調整され、多くのヒューリスティックを使用します (つまり、典型的な写真の内容、画像形式/EXIF の追加データなどに関する知識を使用します)。

もう 1 つのバリエーションは、複数の指紋関数を使用し、それぞれを適用して結果を結合することです。実は、似たような文章を探すのと似ています。画像類似性検索では、「bag of words」の代わりに「bag of Fingerprints」を使用し、あるバッグの要素が別のバッグの要素と同じである要素の数を見つけます。この検索を効率的にする方法は、別のトピックです。

さて、記事・論文について。さまざまな方法の概要を説明する適切な記事が見つかりませんでした。私が知っている公開記事のほとんどは、特定の方法に対する特定の改善について議論しています。これらを確認することをお勧めします。

「ウェーブレットを使用したコンテンツ フィンガープリンティング」 . この記事では、ウェーブレットを使用したオーディオ フィンガープリントについて説明しますが、同じ方法をイメージ フィンガープリントにも適用できます。

順列グループ化: オーディオおよび画像検索のためのインテリジェントなハッシュ関数設計。ローカリティ センシティブ ハッシュに関する情報。

大規模な部分重複 Web 画像検索のバンドル機能。非常に優れた記事で、SIFT と効率化のためのバンドル機能について説明しています。最後に素敵な参考文献もあります

于 2009-06-17T05:01:19.547 に答える
13

FotoForensics サイトの作成者は、このトピックに関するこのブログ投稿を投稿しました。これは私にとって非常に役に立ち、ウェーブレットや特徴抽出よりもはるかに少ない作業で十分であり、必要なアルゴリズムを示しました。

http://www.hackerfactor.com/blog/index.php?/archives/529-Kind-of-Like-That.html

aHash (平均ハッシュまたは平均ハッシュとも呼ばれます)。このアプローチでは、画像をグレースケールの 8x8 画像に分割し、ピクセルの値が画像の平均色より大きいかどうかに基づいてハッシュに 64 ビットを設定します。

pHash (「知覚ハッシュ」とも呼ばれます)。このアルゴリズムは aHash に似ていますが、離散コサイン変換 (DCT) を使用し、色の値ではなく頻度に基づいて比較します。

dHash aHash や pHash と同様に、dHash は実装が非常に簡単で、本来あるべきよりもはるかに正確です。実装としては、dHash は aHash とほぼ同じですが、パフォーマンスははるかに優れています。aHash は平均値に焦点を当て、pHash は頻度パターンを評価しますが、dHash は勾配を追跡します。

于 2013-02-06T08:11:01.610 に答える
7

これはおそらく、スケール不変の特徴を利用した特徴抽出アルゴリズムの改善に基づいています。

を見てみましょう

または、本当に興味がある場合は、約 70 ドルを払うことができます (または、少なくとも Google のプレビューを見てください)。

于 2009-06-17T04:40:20.887 に答える
3

ハフ変換は非常に古い特徴抽出アルゴリズムであり、興味深いと思います。tinyeye が使用しているものとは思えませんが、特徴抽出について学ぶための良い、単純な出発点です。

astrometry.netでの仕事について、トロント大学の何人かの関係者によるきちんとした講演のスライドもあります。彼らは、画像内の特徴を識別するために、夜空の望遠鏡画像を星カタログの位置に一致させるアルゴリズムを開発しました。これは tinyeye が解決しようとしている問題よりも具体的な問題ですが、彼らが話している基本的なアイデアの多くは、より一般的な問題に適用できると思います。

于 2009-06-17T06:17:10.493 に答える
0

非常にわかりやすいアルゴリズムの非常にわかりやすい説明については、このブログ投稿(私のものではありません) を確認してください。基本的に、それぞれの画像を非常に粗いグリッドに分割し、グリッドを赤:青と緑:青の比率で並べ替え、並べ替えが同じかどうかをチェックします。これは当然、カラー画像でのみ機能します。

プロは、はるかに高度なアルゴリズムを使用して、より良い結果を得る可能性が最も高い. そのブログのコメントで述べたように、主要なアプローチはウェーブレットのようです。

于 2009-06-17T05:10:41.483 に答える
-1

フーリエ変換を行って画像の複雑さを特徴付けたり、色分布を特徴付けたりするヒストグラムを領域分類アルゴリズムと組み合わせて、同様に複雑で色付きの画像が誤ってペアリングされないようにすることができます。それが彼らが使用しているものかどうかはわかりませんが、それでうまくいくようです.

于 2009-06-17T04:32:15.540 に答える
-1

写真のサイズを標準の小さいサイズに変更し、SSIM または輝度のみの PSNR 値をチェックするのはどうでしょうか? それが私がすることです。

于 2009-06-17T06:31:40.097 に答える