次の方法で共有


クイックスタート: Azure portal の Search エクスプローラーを使用した画像検索

重要

画像ベクトルは安定した API バージョンでサポートされていますが、ウィザードとベクタライザーはパブリック プレビュー段階にあり、追加の使用条件に従います。 既定で、ウィザードは 2024-05-01-Preview REST API をターゲットとしています。

まず Azure portal の [データのインポートとベクトル化] ウィザードを使用して画像検索し、Search エクスプローラーを使用して画像ベースのクエリを実行しましょう。

このチュートリアルを完了するには、3 つの Azure リソースといくつかのサンプル画像ファイルが必要です。

  • 画像ファイルを BLOB として保存する Azure Storage
  • Azure AI サービスのマルチサービス アカウント。画像のベクトル化と光学式文字認識 (OCR) に使用されます。
  • インデックス作成とクエリのための Azure AI 検索

サンプル データは、azure-search-sample-data リポジトリ内の画像ファイルで構成されていますが、別の画像を使ってチュートリアルを実行することもできます。

前提条件

  • Azure サブスクリプション。 無料で作成できます。

  • Azure AI Vision マルチモーダル埋め込みを提供するリージョンの Azure AI サービス、マルチ サービス アカウント。

    現在、次のリージョンが該当します: SwedenCentral、EastUS、NorthEurope、WestEurope、WestUS、SoutheastAsia、KoreaCentral、FranceCentral、AustraliaEast、WestUS2、SwitzerlandNorth、JapanEast。 更新された一覧については、こちらのドキュメントを確認してください。

  • Azure AI 検索 (任意のレベル、ただし Azure AI サービスと同じリージョンにあります)。

    サービス レベルによって、インデックスを作成できる BLOB の数が決まります。 このチュートリアルの作成には Free レベルを使用し、コンテンツを 10 個の JPG ファイルに制限しました。

  • Azure Storage、Standard パフォーマンス (汎用 v2) アカウント。 アクセス層は、ホット、クール、コールドにすることができます。

ポータル ノードがアクセスできるようにするには、上記のすべてのリソースに対し、パブリック アクセスが有効になっている必要があります。 そうでないと、ウィザードは失敗します。 ウィザードの実行後、さまざまな統合コンポーネントでファイアウォールとプライベート エンドポイントを有効にしてセキュリティを確保することができます。

プライベート エンドポイントが既に存在し、無効にできない場合は、プライベート エンドポイントと同じ仮想ネットワーク内の仮想マシンから、スクリプトまたはプログラムのそれぞれのエンド ツー エンド フローを実行することもできます。 垂直統合の Python コード サンプルを次に示します。 同じ GitHub リポジトリには、他のプログラミング言語のサンプルがあります。

無料検索サービスでは、Azure AI 検索への接続に対するロールベースのアクセス制御がサポートされていますが、Azure Storage または Azure AI Vision への送信接続でのマネージド ID はサポートされていません。 つまり、他の Azure サービスへの無料の検索サービス接続では、キーベースの認証を使用する必要があります。 接続をより安全にするには、Basic レベル以上を使い、他の Azure サービスでの Azure AI 検索からの要求を許可するように、マネージド ID とロールの割り当てを構成します。

領域の確認

Free サービスで始める場合は、3 つのインデックス、3 つのデータ ソース、3 つのスキルセット、3 つのインデクサーに制限されます。 十分な空き領域があることを確認してから開始してください。 このクイックスタートでは、各オブジェクトを 1 つずつ作成します。

サンプル データの準備

  1. unsplash-signs 画像フォルダーをローカル フォルダーにダウンロードするか、自分の画像を見つけます。 Free の検索サービスでは、エンリッチメント処理の無料クォータを超えないように、画像ファイルを 20 個未満に抑えてください。

  2. Azure アカウントを使用して Azure portal にサインインし、Azure Storage アカウントに移動します。

  3. ナビゲーション ウィンドウの [データ ストレージ] で [コンテナー] を選択します。

  4. 新しいコンテナーを作成してから、画像をアップロードします。

ウィザードを起動する

検索サービスと Azure AI サービスが同じサポートされているリージョンとテナントに配置されており、Azure Storage Blob コンテナーが既定の構成を使用している場合は、ウィザードを開始できる状態です。

  1. Azure アカウントを使用して Azure portal にサインインし、Azure AI Search サービスに移動します。

  2. [概要] ページで、[データのインポートとベクトル化] を選択します。

    ウィザード コマンドのスクリーンショット。

データへの接続

次の手順は、画像を提供するデータ ソースに接続することです。

  1. [データへの接続] タブで、[Azure Blob Storage] を選びます。

  2. Azure サブスクリプションを指定します。

  3. Azure Storage の場合は、データを提供するアカウントとコンテナーを選択します。 残りのフィールドについては既定値を使用します。

    ウィザードの [データへの接続] ページのスクリーンショット。

  4. [次へ] を選択します。

テキストをベクター化する

生コンテンツにテキストが含まれている場合、またはスキルセットによってテキストが生成される場合、ウィザードからテキスト埋め込みモデルが呼び出され、そのコンテンツのベクトルが生成されます。 この演習では、次の手順で追加する光学式文字認識 (OCR) スキルからテキストが生成されます。

Azure AI Vision にはテキスト埋め込み機能があるため、そのリソースをテキストのベクトル化に使用します。

  1. [テキストのベクトル化] ページで、[AI Vision のベクトル化] を選びます。 選択できない場合は、Azure AI 検索と Azure AI マルチサービス アカウントが、AI Vision マルチモーダル API をサポートするリージョンに一緒に存在していることを確認します。

    ウィザードのテキスト ページのベクトル化のスクリーンショット。

  2. [次へ] を選択します。

画像のベクトル化とエンリッチ

Azure AI Vision を使用して、画像ファイルのベクトル表現を生成します。

この手順では、AI を適用して画像からテキストを抽出することもできます。 ウィザードは、Azure AI サービスの OCR を使用して、画像ファイル内のテキストを認識します。

OCR がワークフローに追加されると、さらに 2 つの出力がインデックスに表示されます。

  • まず、画像に含まれる任意のテキストの OCR で生成された文字列が、"chunk" フィールドに設定されます。
  • 次に、"chunk" の文字列を表す埋め込みが、"text_vector" フィールドに設定されます。

"chunk" フィールドにプレーン テキストを含めることは、セマンティック ランク付けスコアリング プロファイルなどの文字列を操作する関連性機能を使用する場合に便利です。

  1. [画像のベクトル化] ページで、[画像のベクトル化] チェックボックスをオンにして、[AI Vision ベクトル化] を選びます。

  2. [テキストのベクトル化に選んだものと同じ AI サービスを使用する] を選びます。

  3. エンリッチメント セクションで、[画像からテキストを抽出] を選びます。

  4. [画像のベクトル化に選んだものと同じ AI サービスを使用する] を選びます。

    ウィザードの画像ページのベクトル化のスクリーンショット。

  5. [次へ] を選択します。

詳細設定

  1. インデクサーの実行スケジュールを指定します。 この演習では [1 回] を推奨しますが、基となるデータが揮発性のデータ ソースの場合は、インデックス作成をスケジュールして変更を取得できます。

    ウィザードの [詳細設定] ページのスクリーンショット。

  2. [次へ] を選択します。

ウィザードの実行

  1. [確認と作成] で、ウィザードの実行時に作成されるオブジェクトのプレフィックスを指定します。 ウィザードによって複数のオブジェクトが作成されます。 共通のプレフィックスは、整理された状態を保つのに役立ちます。

    ウィザードの [確認および作成] ページのスクリーンショット。

  2. [作成] を選択してウィザードを実行します。 このステップでは、次のオブジェクトを作成します。

    • インデックス作成パイプラインを駆動するインデクサー。

    • BLOB ストレージへのデータ ソース接続。

    • ベクトル フィールド、テキスト フィールド、ベクタライザー、ベクトル プロファイル、ベクトル アルゴリズムを含むインデックス。 ウィザードのワークフロー中に既定のインデックスを変更することはできません。 インデックスは 2024-05-01-preview REST API に適合しています。

    • 次の 5 つのスキルを備えたスキルセット。

結果をチェックする

検索エクスプローラーでは、クエリ入力としてテキスト、ベクトル、画像を使用できます。 検索領域に画像をドラッグしたり、選択したりできます。 検索エクスプローラーによって画像がベクトル化され、ベクトルがクエリ入力として検索エンジンに送信されます。 画像のベクトル化では、インデックスにベクトル化定義 (埋め込みモデル入力に基づいて [データのインポートとベクトル化] が作成したもの) があることが想定されています。

  1. Azure portal の [検索管理][インデックス] で、作成したインデックスを選択します。 埋め込まれた Search エクスプローラーが 1 つ目のタブです。

  2. [表示][画像ビュー] を選びます。

    画像ビューを備えたクエリ オプション ボタンのスクリーンショット。

  3. サンプル画像ファイルを含むローカル フォルダーから画像をドラッグします。 または、ファイル ブラウザーを開いてローカル画像ファイルを選びます。

  4. [検索] を選んでクエリを実行します

    検索結果のスクリーンショット。

    一番上の一致は検索した画像になるはずです。 ベクトル検索では類似したベクトルが一致するため、検索エンジンはクエリ入力に十分類似したドキュメントを返します (結果は最大 k 個)。 JSON ビューに切り替えると、関連性の調整を含むより高度なクエリを実行できます。

  5. 他のクエリ オプションを試して検索結果を比較してみてください。

    • 結果を読みやすくするため、ベクトルを非表示にします (推奨)。
    • クエリを実行するベクトル フィールドを選びます。 既定値はテキスト ベクトルですが、画像ベクトルを指定して、クエリの実行からテキスト ベクトルを除外できます。

クリーンアップ

このデモでは、課金対象の Azure リソースを使用します。 リソースが不要になった場合は、料金が発生しないようにサブスクリプションからリソースを削除してください。

次のステップ

このクイックスタートでは、画像検索に必要なすべてのオブジェクトを作成する [データのインポートとベクトル化] ウィザードについて説明しました。 各手順について詳しく確認するには、垂直統合サンプルを試してください。