2012-04-21 9 views
6

私はアプリケーションのスクリーンショットを撮り、正確な画像が以前に見られたかどうかを検出しようとしています。私は些細な変化を違うものとして検出しようとしています。イメージにテキストがあり、スペルが変化した場合、それは不一致としてカウントされます。非常に類似した画像のための画像ハッシュ

私は、スクリーンショットイメージの内容のMD5ハッシュを使用して、既知のイメージのデータベースを検索し、それが以前に見られたかどうかを検出することに成功しました。

私は別のマシンに移植しましたが、構成に正確にマッチさせようとしたにもかかわらず、古いマシンとは若干異なるイメージが表示されています。私が違うと言うと、変化はわずかです - 私が古い画像と新しい画像を吹き飛ばしてその間に飛ばすと、一つの違いは見えません!それにもかかわらず、ImageMagickのcompareコマンドでは、ピクセルがばらばらに見えることがあります。

私のMD5ハッシュはもはや一致しません。単純なMD5ハッシュではなく、image hashが必要です。私の研究を行う

は、私がイメージハッシュのほとんどはかなり寛大になろうとしていることを見つける - 彼らは、対応する偽陽性の試合で、リサイズ転換し、透かし入り画像を受け入れます。私ははるかに厳密な画像ハッシュが欲しいです - 唯一の変更は色の微妙な変更です。

誰でも画像ハッシュライブラリまたはアルゴリズムをお勧めできますか? (dupdetectorのようなアプリケーションではありません)。

覚えている:私の要件は、私がshrinkingまたはpHashのようなリベラルなアルゴリズムを必要としないという点で、多くの類似の質問は異なっている、と私はstructural similarityまたはImageMagick's compareなどの比較ツールを望んでいません。

非常に似たイメージに同じハッシュ値を与えるハッシュが必要です。それも可能ですか?

+2

いいえ、それはできません。捨てるべきものを知る方法はありません。可能なことは、類似した2つの画像の類似性に関する調整可能な閾値を有する画像比較ツールを開発することである。 (それは不可能である理由のために同じようなことをやろうと想像し、表示するには、たとえば、果たしている。検出するためには、例えば、誰かがちょうど遊びにいくつかの単語を変更した場合。番号は各単語に依存したりしてはならないのいずれか。だから、平等のためにハッシュを比較するだけでは、距離を測定する必要はありません。) –

+0

興味深い。数百または数千の可能性のある一致のすべてを比較することは実行不可能です。これはやや心配です。ありがとうございました。 – Oddthinking

+0

あなたは、可能な一致の数百または数千の全てを比較する必要はありません。あなたは、一般的に似ているものを比較するだけです。全く異なるものは、おそらく一致することはありません。 –

答えて

1

"スペクトルハッシング"と呼ばれる次の論文をご覧ください。これは、類似した画像をまとめてグループ化するために、画像からハッシュコードを生成するように設計されたアルゴリズムです(この記事の末尾にある検索の例を参照)。それは良い出発点です。

リンク:http://www.cs.huji.ac.il/~yweiss/SpectralHashing/

関連する問題