RGB ヒストグラムだけを使用することから離れることを検討することをお勧めします。
画像の 2 次元 Haar ウェーブレットを取得し (思ったよりもずっと簡単で、係数の重み付けに多くの平均化と平方根を使用するだけです)、最大の k を保持すると、画像のより優れたダイジェストを取得できます。ウェーブレットの重み付き係数をスパース ベクトルとして正規化し、それを保存してサイズを縮小します。少なくとも事前に知覚重みを使用して RG と B を再スケーリングするか、YIQ (または量子化ノイズを回避するために YCoCg) に切り替えることをお勧めします。これにより、クロミナンス情報を重要度を下げてサンプリングできます。
これらのスパースな正規化されたベクトルの 2 つの内積を、類似性の尺度として使用できるようになりました。最大の内積を持つ画像ペアは、構造が非常に似ています。これには、サイズ変更、色相シフト、および透かしに対してわずかに耐性があり、実装が非常に簡単でコンパクトであるという利点があります。
k を増減することで、ストレージと精度をトレードオフできます。
単一の数値スコアによる並べ替えは、この種の分類問題では扱いにくくなります。考えてみると、画像が 1 つの軸に沿ってのみ「変更」できる必要がありますが、そうではありません。これが、特徴のベクトルが必要な理由です。Haar ウェーブレットの場合、画像内で最も鋭い不連続が発生するおおよその場所です。ペアごとに画像間の距離を計算できますが、距離メトリックしかないため、線形順序付けでは、すべて同じ距離にある 3 つの画像の「三角形」を表現する方法がありません。(つまり、すべて緑の画像、すべて赤の画像、すべて青の画像を考えてみてください。)
つまり、問題に対する実際の解決策には、所有している画像の数で O(n^2) 操作が必要です。一方、メジャーを線形化することが可能であれば、O(n log n)、またはメジャーが基数ソートに適している場合は O(n) だけを必要とする可能性があります。つまり、O(n^2) を費やす必要はありません。実際には、セット全体をふるいにかける必要はなく、あるしきい値よりも近いものを見つけるだけでよいからです。したがって、スパース ベクトル空間を分割するいくつかの手法の 1 つを適用することで、すべての画像をすべての画像と単純に比較するよりも、「特定のしきい値よりも類似している画像の k 個を見つける」問題の漸近線をはるかに高速に取得できます。あなたが必要とする可能性があります...正確にあなたが求めたものではないにしても。
いずれにせよ、私は数年前にこれを使用して、保存していたさまざまなテクスチャの数を最小限に抑えようとしたときに個人的に良い効果をもたらしましたが、この分野ではその有効性を示す多くの研究ノイズもありました (この場合、それをより洗練された形のヒストグラム分類に変換します):
http://www.cs.princeton.edu/cass/papers/spam_ceas07.pdf
より正確な検出が必要な場合は、minHash および tf-idf アルゴリズムを Haar ウェーブレット (またはヒストグラム) と共に使用して、編集をより確実に処理できます。
http://cmp.felk.cvut.cz/~chum/papers/chum_bmvc08.pdf
最後に、スタンフォードは、ウェーブレットからより多くの特徴抽出を行い、画像の回転またはスケーリングされたセクションなどを見つけることに基づいて、この種のアプローチのよりエキゾチックな変形に基づく画像検索を行っていますが、それはおそらくあなたの作業量をはるかに超えています.したいです。
http://wang14.ist.psu.edu/cgi-bin/zwang/regionsearch_show.cgi