ディープラーニングを使用して、写真用の強力な画像検索エンジンを構築します

ディープラーニングを使用して、写真用の強力な画像検索エンジンを構築します

  [[412644]]

数日前、鮮明に覚えている昔の写真を見返したいと思ったのですが、どこにあるのか全く分かりませんでした...写真を撮ってから、携帯電話を2回、ノートパソコンを1回変えました。当時、メッセンジャーで誰かに送ったはずですが、誰に送ったのでしょうか?簡単な説明クエリですべての画像を検索して見つけることができたら、どんなに便利でしょう。 …

最近のコンピューター ビジョンの進歩により、画像の埋め込み (高密度ベクトル表現) の関連性が高まり、最近のクリップ モデルを使用すると、ローカル画像に対する Google のような画像検索を簡単に実装できるようになりました。

詳細には立ち入りませんが (詳細についてはブログ投稿と論文を参照してください)、Clip は自然言語の監視によって画像の特徴を学習するように設計されたニューラル ネットワークです。基本的に、インターネット上の公開画像と関連するキャプションを使用し、テキストを BERT のような言語モデルに埋め込み、画像をビジュアル トランスフォーマーに埋め込みます。使用される手法は、他の NLP および CV モデル アーキテクチャにも適用できることに注意してください。複数の画像/テキスト埋め込みペアを活用することで、情報検索の NLP 分野で実行できるものと同様に、バッチネガティブコントラストトレーニングを介して視覚およびテキスト埋め込みモデルを微調整できます。基本的に、目標は、画像の埋め込みをそれに関連付けられたテキストの埋め込みと対応させ(ドット積)、他の画像のすべてのキャプションと区別することです(1)。

Clips は「ゼロショット」分類によく使用されます。画像とキャプションのリストが与えられると、その画像に最適なキャプションを推測します。上記の例(2)では、「犬の写真」は、「飛行機の写真」、「鳥の写真」、「車の写真」と比較して最適な画像キャプションです。 …

画像検索エンジンに関する私のアイデアは(特に新しいものではありませんが)、これを逆転させて、画像に基づいてキャプションを分類するのではなく、テキスト クエリに基づいて画像を分類することです。プロセスは次のようになります。

  • 指定されたディレクトリ内のすべての画像を検索する
  • 各画像の埋め込みは、事前にトレーニングされた Clip Vision Transformer を使用して計算され、将来の参照用に画像パスとともに保存されます。 https://openai.com/blog/clip/
  • 実行時に、ユーザークエリは ClipText トランスフォーマーを使用してテキスト埋め込みに変換されます。
  • テキスト埋め込みと保存されているすべての画像埋め込みのドット積を計算し、取得したスコアに従ってすべての画像をランク付けし、上位 N 位にランク付けされた画像へのパスを返します。

このプロセスは、いくつかの追加機能とともに、私の Github リポジトリ (https://github.com/ManuelFay/ImageSearcher) に実装されています。

インデックス作成フェーズでは、コードは oslibrary を使用して、指定されたディレクトリとサブディレクトリ内のすべての画像を検索し、コンバーターと Pickle ライブラリを使用してベクトル化された表現を埋め込んで保存します。実行時に、ピクルされた埋め込みが読み込まれ、埋め込みのクエリと照合され、上位 n 位にランクされた画像が返されます。外部インターフェースを備えた検索エンジンを効率的に使用できるようにするため、Flask/Gunicorn API が提供されています。 Vue.js で構築された、Google 画像検索のようなシンプルな Web インターフェースも提供されます。

大量の画像コレクションを取得するために、Facebook から Messenger アーカイブをダウンロードし、過去数年間に送受信した約 10,000 枚の画像を入手しました。

検索エンジンでは、非常に詳細なクエリが可能です。上位ランクの画像が最初にリストされます。これらの画像はすべて、私のローカルコレクションにある約 10,000 枚の画像から提供されているため、選択肢が限られていることに注意してください。

メタクエリも可能です。ここではドローンで撮影した写真を募集します:

これは午後の短いプロジェクトでしたが、クリップ モデルの精度に感心しました。自分でテストするには、https://github.com/ManuelFay/ImageSearcher のコードを使用してください。改善や追加機能への貢献は大歓迎です。 https://github.com/ManuelFay/ImageSearcher

<<:  企業で AI ストレージを導入する際に留意すべき 7 つのポイント

>>:  ディープラーニングフレームワークFlashを使用して、わずか数行のコードで画像分類器を構築する方法

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

MetaMath: 逆思考で大規模モデルをトレーニングする新しい数学的推論言語モデル

複雑な数学的推論は、大規模言語モデルの推論能力を評価するための重要な指標です。現在、一般的に使用され...

アルゴリズムを拒否することができます

[[419044]] 「ブラックミラー」には、新婚の夫を亡くした女性が、その悲しみを和らげるために企...

企業における機械学習の導入を妨げる4つの障害

[51CTO.com クイック翻訳] 機械学習には多くの利点があるのに、なぜ誰もが導入しないのでしょ...

...

...

【ビッグネーム登場、第2話】快溝タクシーの知能進化への道

インテリジェントな注文発送システムをゼロから構築するように依頼され、1 日の注文数が 40 万件だと...

量子プロセッサのパフォーマンスはなぜ変動するのでしょうか? Googleが見つけた答えは、素材に欠陥があるということだ

量子プロセッサは最先端の研究テーマです。世界トップクラスの研究室や企業の研究機関が常に新たな進歩を遂...

...

...

2021 年の人工知能、データ サイエンス、機械学習のトレンドの概要

人工知能とデータサイエンス、機械学習のトレンドとデータ分析AIはますますあらゆるビジネス戦略の一部に...

次世代AIの成功は効果的なパイロット戦略から始まります

生成 AI は世界を席巻していますが、企業はどのようにしてこのテクノロジーの可能性を真に活用し、その...

...

マイクロソフトがCopilot for Financeをリリース、AIでスプレッドシートに革命を起こすことを目指す

Microsoft が新たにリリースした AI アシスタントは、増え続ける財務データの中から適切な情...