2009-04-09 5 views
0

データセットのキーが文字列の場合、効率的にデータにアクセスするためのTrie構造が用意されています。データセットのキーが画像の場合、最良のインデックスは何でしょうか?データベースのデータにアクセスするための画像のインデックス

キーでは、データを一意に区別するいくつかのことを意味します。これはあまり使用されないシナリオですか?つまり、画像によるデータへのアクセスですか?私は指紋データベースのように使用されるアプリケーションがあると感じています。

この場合ハッシュヘルプですか?私はピクセル値に応じて画像を一意の数値にハッシュすることを意味します。

これに関するあらゆる情報をお伝えください。

歓声

+0

イメージをキーとして使用することはどういう意味ですか?イメージ識別子またはファイル名を意味しますか? – Uri

+0

より良い提案をするには、何をしたいのかをさらに詳しく説明する必要があります。 –

答えて

1

は、私はあなたが何をしようとして100%わからないんだけど、ハッシュはあなたで画像を識別するための一意の文字列を与える必要があります。あなたの言語は指定していませんが、ほとんどの場合、ファイルのデータ全体をハッシュする機能があります。そのため、イメージファイルを実行するだけです。 (たとえば、PHPはmd5_file()です)

2

イメージに基づいてアイテムを検索するには、ハッシュ関数を使用できます。しかし、私はこのシナリオではほとんど実用的ではありません。

指紋認識、顔認識、またはオブジェクト識別などのアプリケーションは、特徴抽出プロセスを実行します。これは、複雑な画像構造を、記憶されたパターンと比較可能なより単純な特徴ベクトルに変換することを意味する。

実際の困難な作業は、画像内の「ノイズ」から重要な情報を分離する必要がある機能抽出プロセスです。

イメージをハッシュしても使用可能な機能はありません。いくつかの情報を見つけるためにイメージをハッシュすることについて私が考えている唯一の状況は、イメージデータベースを構築することです。しかし、この場合でも、SHA1やMD5のような共通のハッシュ関数はほとんど使われません。なぜなら、作成者のような単一のピクセルやメタデータを変更すると、ハッシュが変更され、共通のハッシュ関数に基づいて2つの画像を識別することができなくなるからです。

1

あなたが解決しようとしている問題は不明です。この場合、Trie構造は通常のハッシュテーブルに比べてパフォーマンス上の利点がほとんどないと考えていますが、イメージ全体のハッシュを取得してTrie構造のキーとして使用することはできます。 )ハッシュを検索します。

2つの画像を比較したい場合や、ツリー内で類似した画像をすばやく見つけたい場合は、画像のGIFまたはJPEGヘッダーをキーの先頭に使用することを検討してください。これにより、類似のタイプ、サイズ、インデックスカラーなどの画像が、Trie構造内で互いに近くにグループ化されることになる。衝突があった場合(つまり、完全に同じヘッダーのTrieに複数の画像がある場合)にのみ、画像のハッシュを計算することができます。

関連する問題