2012-02-21 7 views
3

私は数千枚の画像を索引付けするデータベースを持っています。それらはアプリケーションによって制御されるので、私はテクスチャを変更します。今私は与えられた画像のように見える画像を見つける検索を実装したい。私は、タイムスタンプを使用することができますが、画像や画像のメタデータにわずかな違いがあると、正しい画像を見つけることができません。アップロードした画像のように見える画像を検索するには

私は、同じ画像のように見える画像を見つけることができるコマンドラインツールが必要です。これは、同じ内容の別の画像を持つ画像と一致する場合に最適です。

finalyこれはruby on railアプリケーションでsystemを使用して実装しますが、一致するツールがあればそれは問題ではないと思います。

+1

正解は、「見た目に似ている」という意味によります。これらのランダムなフルカラーのJPGですか?線画?同様の色とほぼ同じ色の画像を数えますか?または、異なる顔を含む2つの画像?または、顔が似ている必要がありますか?これは難しい問題です。妥当な解決策を得るには、質問の複雑さを減らす必要があります。 – seb

+0

これはJPEGであり、解像度が異なるだけでアップロードされたオリジナル画像のように見えるはずです。 – davidb

答えて

0

解決策が見つかりました。 Webベースのendinesを使用しないようにすることは、これらの画像には信頼できるデータが含まれているため、外部サービスとの接続なしにローカルで動作するサービスが必要です。

isk-Daemon小さなWebサーバーとそれに対応するSOAPとXML-RPCエンジンが付属するサービスをインストールしました。そこで、IskClientというクラスを書いて、イメージをデータベースに追加し、MySQLデータベースのイメージに接続し、同様のイメージを取得するためのクエリも実行します。私はこのクラスから宝石を作るかもしれない。

0

おそらくrecommendifyを確認できます。 githubのページから:

Recommendifyはルビー/ Redisのベースの推奨エンジンである - 勧告は増分的に処理し、複数の ホスト上/更新することができます。労働者がプレーンルビーとネイティブC.

で実装されている写真の例もあり、私はいくつかのフォームのTin Eye使用locality sensitive hashingようなほとんどの画像の類似性エンジンを考えるhere

+0

私の検索はユーザーデータに基づいてはならないので、これはうまくいかない。それは写真の類似性に基づいているべきです – davidb

0

と一致します。私はそこにルビライブラリがあるかどうかはわかりませんが、単純なアルゴリズムの1つは16x16といったように画像を圧縮することです。これを行うには、ピクセルのブロックを平均して1つのピクセルにします。次に、2つの画像間の差分を得るために差の合計(または平方差の合計...)を使用することができます。

関連する問題