はじめに画像検索は、特徴や視覚的なコンテンツをマッチングして類似の画像を見つけることができるようになり、人気で強力なアプリケーションとなっています。コンピュータビジョンとディープラーニングの急速な発展により、この機能は大幅に向上しました。このガイドは、最新の技術とツールを活用して画像検索を行うための手助けをすることを目的としています。このガイドでは、以下のことを学ぶことができます:パブリックデータセットとモデルを使用してベクトル埋め込みを持つデータセットを作成する方法MyScaleを使用して画像の類似性検索を行う方法。MyScaleは、検索プロセスを効率化し、高速かつ正確な結果を提供する強力なプラットフォームです。MyScaleの機能を探索することに興味がある場合は、データセットの作成セクションをスキップして、MyScaleへのデータの追加セクションに直接進むこともできます。このデータセットは、MyScaleコンソールでデータのインポートセクションで提供される手順に従ってインポートすることができます。インポートが完了したら、MyScaleのクエリセクションに直接進んで、このサンプルアプリケーションをお楽しみください。window)とHuggingFaceのdatasetsライブラリをインストールする必要があります。clickhouse-connectデータセットの作成セクションで説明されている手順に従うためには、transformersおよびその他の必要な依存関係をインストールする必要があります。window)からデータをダウンロードし、Liteデータセットを使用します。tmpダウンロードしたデータを読み込み、Pandasのデータフレームに変換します。window)モデルを使用するextract_image_features関数を定義します。生成される埋め込みは512次元のベクトルです。outputs.squeeze(0).tolist()その後、df_photosデータフレームから最初の1000個の写真IDを選択し、対応する画像をダウンロードし、extract_image_features関数を使用して画像の埋め込みを抽出します。データセットの作成これで、写真情報と埋め込みを持つデータフレームと、変換情報を持つ別のデータフレームの2つのデータフレームが得られました。Faceのリポジトリにアップロードします。window)に従うことで、データへの簡単なアクセスと共有が可能になります。window)からデータをロードします。以下のコードスニペットは、データをロードしてPandasのデータフレームに変換する方法を示しています。window)モデルを使用して画像から抽出された画像特徴を表す512次元の浮動小数点ベクトルです。次に、MyScaleでテーブルを作成します。始める前に、MyScaleコンソールからクラスタのホスト、ユーザー名、パスワード情報を取得する必要があります。以下のコードスニペットは、写真情報用のテーブルと変換情報用のテーブルの2つのテーブルを作成する方法を示しています。データのアップロードテーブルを作成した後、データセットからロードしたデータをテーブルに挿入し、後のベクトル検索クエリを高速化するためのベクトルインデックスを作成します。以下のコードスニペットは、データをテーブルに挿入し、コサイン距離メトリックを使用してベクトルインデックスを作成する方法を示しています。ベクトルインデックスのステータスを確認する。上位K個の類似画像の検索ベクトル検索を使用して、以下の手順に従って上位K個の類似画像を見つけることができます。ランダムに画像を選択し、show_image()関数を使用して表示します。image...")show_image(target_image_url)サンプル画像:次に、ベクトル検索を使用して選択した画像に最も類似した上位K個の候補を特定し、これらの候補を表示します。上位K個の類似画像を特定した後、構造化フィールドとベクトルフィールドを組み合わせたSQLクエリを使用して、各候補の変換情報を分析することができます。各候補画像の総変換数を計算するには、以下のSQLクエリを使用して画像検索の結果とconversionsテーブルを結合します。3各候補画像の総変換数を計算した後、最もダウンロード数の多い候補画像を特定し、その画像のダウンロードキーワードごとの詳細な変換情報を調べることができます。以下のSQLクエリを使用します。