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

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

  [[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を使用して、わずか数行のコードで画像分類器を構築する方法

ブログ    

推薦する

大規模モデルの推論速度が 3.6 倍に向上しました。「Medusa」の論文はこちらです。Jia Yangqing: 最もエレガントな加速推論ソリューションの 1 つ

ご存知のとおり、大規模言語モデル (LLM) の動作ロジックでは、サイズが大きくなるにつれて言語生成...

ワクチン開発におけるIoTとAIの役割

明らかな理由から、ワクチンの開発が現在最優先事項となっています。安全で効果的なコロナウイルスワクチン...

...

データコレクターでリアルタイム機械学習に TensorFlow を使用する方法

【51CTO.com クイック翻訳】ビジネス ユーザーとアプリケーションがさまざまなソースからの生デ...

...

2万本の論文が過去5年間の機械学習の変遷を物語る

[[188225]] arXiv.org は、物理学、数学、コンピューターサイエンス、生物学の論文の...

AIがフィンテックを変える4つの方法

[[432805]]金融業界の企業は、人工知能 (AI) を使用して複数のソースからのデータを分析お...

5年後、農業ロボットの市場価値は引き続き増加し、約880億ドルに達するだろう。

農業用ロボットは、一般的に、農産物を操作対象とし、ある程度の人間の知覚と行動能力を持ち、さまざまな高...

パーセントポイントの劉一静氏:おそらくこれは人工知能をこのように見るべきだ

[51CTO.comより] 生活各界におけるデータの急速な増加、ビッグデータ技術の発展、高性能コンピ...

インターネットの未来のために: AI が生み出すものと破壊するもの

編集者注: この記事はNetEase Intelligenceからのものです。翻訳|: NetEas...

GPT-3.5 を選択すべきでしょうか、それとも Llama 2 などのオープンソース モデルを微調整すべきでしょうか?総合的に比較した結果、答えは

GPT-3.5 の微調整には非常にコストがかかることはよく知られています。この論文では、手動で微調整...

すべての最大共通部分列を見つけるためのアルゴリズムの実装

1. LCS分析まず、サブシーケンスとは何でしょうか?定義は書きませんが、一目でわかるように例を挙げ...

確かにGANによって生成されました!中国のチームは瞳孔の形状で「本物」と「偽物」の肖像画を判定する

写真をじっくり見るだけで本物か偽物かがわかりますか?最近、ニューヨーク州立大学の中国人研究者が、目の...

何が足りないのでしょうか?現在の機械学習教育の欠点

[[347910]]ビッグデータダイジェスト制作出典: thegradient編集者: フィッシャー...

word2vecの作者はイリヤらとの10年間の恨みを明かした。seq2seqも私のアイデアだった

画期的な論文word2vec は、当然の NeurIPS Test of Time Award を受...