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

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

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

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

推薦する

...

私の国は自動運転とスマート輸送のパイロットプロジェクトを実施します

運輸省によると、運輸省はこのほど「自動運転とインテリジェント船舶の試験運用を組織することに関する通知...

UiPath: RPA の台頭が企業のデジタル化の青写真を描く

【51CTO.comオリジナル記事】 [[344118]]近年、ロボティック・プロセス・オートメーシ...

Reddit で高く評価:機械学習分野における「8つの大罪」!査読は変化し、偶像崇拝が蔓延している

最近、Reddit コミュニティで機械学習の分野を批判する記事が白熱した議論を巻き起こし、3.1k ...

人工知能の真の可能性

サイエンス フィクションや大衆文化では、人工知能 (AI) 技術に関する大胆な予測や説明がよく取り上...

...

スニーカーロボット大戦

[[430002]] 2019年、ボストンのバックベイにあるストリートウェアショップ「Bodega」...

TensorFlow が素晴らしい機械学習データセット 30 選

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

NLP における新たなマイルストーン!清華大学ヤオクラスの卒業生がKEARをリリース:人間を超える初の常識質問応答システム

[[443046]]人間はAIよりも常識があるとは言えなくなりました!最近、マイクロソフトの黄雪東と...

...

Redis のソースコードを読んで、キャッシュ除去アルゴリズム W-TinyLFU を学びましょう

[[433812]]この記事は董澤潤氏が執筆したWeChat公開アカウント「董澤潤の技術ノート」から...

交換されますか? GPT4コードインタープリター完全自動

こんにちは、みんな。今日は、GPT-4 コード インタープリターがデータ分析、科学研究の描画、機械学...

...

アリババ、AI研究所、清華大学が共同でAIに認知能力を与える新しいAIモデルを発表

1月12日、アリババ、AI研究所、清華大学などの共同研究チームが、新たな超大規模認知事前トレーニング...