2つの画像の類似性を比較する簡単で高速な方法が必要です。つまり、まったく同じものが含まれていても、背景がわずかに異なり、数ピクセルずつ移動/サイズ変更されている可能性がある場合は、高い値を取得します。
(それが重要な場合、より具体的には:1つの画像がアイコンであり、他の画像がスクリーンショットのサブエリアであり、そのサブエリアが正確にアイコンであるかどうか知りたい。)
私はOpenCVを手元に持っていますが、まだ慣れていません。
これまでに考えた1つの可能性:両方の画像を10x10のセルに分割し、それらの100個のセルのそれぞれについて、カラーヒストグラムを比較します。次に、いくつかの構成されたしきい値を設定できます。取得した値がそのしきい値を超えている場合、それらは類似していると想定します。
まだ十分に機能していないので、まだ試していませんが、これで十分でしょう。画像はすでに(私の使用例では)かなり似ているので、かなり高いしきい値を使用できます。
これには他にも何十もの解決策があり、多かれ少なかれ機能すると思います(本当に非常に類似している場合にのみ類似性を検出したいので、タスク自体は非常に単純なので)。何を提案しますか?
画像から署名/指紋/ハッシュを取得することに関して、非常に関連する/類似した質問がいくつかあります。
- OpenCV / SURF記述子から画像ハッシュ/フィンガープリント/署名を生成する方法は?
- 多くの画像の類似性を比較するための画像指紋
- ほぼ重複する画像の検出
- OpenCV:指紋画像とデータベースとの比較。
- もっと、もっと、もっと、もっと、もっと、もっと、もっと
また、フィンガープリントを取得するための機能を備えたこれらの実装に遭遇しました。
- pHash
- imgSeek(GitHub repo)(GPL)は紙の高速マルチ解像度画像クエリに基づいています
- 画像一致。私が探していたものとよく似ています。あらゆる種類の画像の画像署名、ゴールドバーグらに基づくpHashに似ています。PythonとElasticsearchを使用します。
- iqdb
- ImageHash。pHashをサポートします。
- イメージ重複排除機能(imagededup)。CNN、PHash、DHash、WHash、AHashをサポートします。
知覚的画像ハッシュに関するいくつかの議論:ここ
少し問題:オーディオ指紋を作成する方法はたくさんあります。MusicBrainzは、曲の指紋ベースの検索を提供するWebサービスであり、wikiに概要があります。現在、AcoustIDを使用しています。これは、正確な(またはほぼ完全な)一致を見つけるためのものです。同様の一致を見つけるには(または一部のスニペットまたはノイズが多い場合)、Echoprintを参照してください。関連するSOの質問はこちらです。したがって、これはオーディオについては解決されているようです。これらのソリューションはすべて非常に優れています。
ファジー検索全般についてのもう少し一般的な質問はこちらです。たとえば、局所性に敏感なハッシュと最近傍探索があります。