top of page

画像のベクトル化API提供会社4選の特徴をわかりやすく解説!

執筆者の写真: 株式会社 Level10株式会社 Level10

画像のベクトル化についてご存知でしょうか?

画像のベクトル化は、画像をデータポイントの集合として数値的に表現する技術です。これにより、画像データを効率的に検索、分類、解析することが可能になります。画像のベクトル化は、類似画像検索、顔認識、オブジェクトの自動分類、レコメンデーションシステムなど、さまざまな分野で活用されています。最近では、手軽に高精度なベクトルデータを取得できるAPIが登場し、多くの企業がこの技術を取り入れたサービスを提供し始めています。本記事では、画像のベクトル化を実現するためのAPIについて紹介し、それぞれの特徴や用途を比較していきます。


Azure

Azureトップページ

MicrosoftのAzure AI Visionは、画像やビデオから情報を抽出するための高度なアルゴリズムを提供するクラウドベースのサービスです。このサービスを利用することで、開発者は以下のような機能をアプリケーションに組み込むことが可能です。

  • 画像分析: 画像内のオブジェクトや人物を検出し、タグ付けやキャプション生成を行います。

  • 光学式文字認識(OCR): 画像やPDFから印刷されたテキストや手書きの文字を抽出します。

  • 顔認識: 画像内の顔を検出し、識別や分析を行います。

  • 空間分析: ビデオフィード内の人々の存在や動きをリアルタイムで分析します。

これらの機能を活用することで、デジタル資産管理、セキュリティ、医療、リテールなど、さまざまな分野での応用が期待できます。さらに、Azure AI Visionは機械学習の専門知識がなくても利用でき、開発者は迅速にアプリケーションにビジョン機能を統合することが可能です。

Azure AI Visionのベクトル化機能は、画像やテキストを高次元の数値ベクトルに変換する技術です。これにより、データの特徴を数値的に表現し、類似性検索や分類などのタスクで活用できます。

具体的には、以下のAPIが提供されています:

  • Vectorize Image API: 画像を入力として、その特徴を表すベクトルを生成します。

  • Vectorize Text API: テキストを入力として、その意味を捉えたベクトルを生成します。

これらのベクトルは、同じベクトル空間内で表現されるため、画像とテキスト間のセマンティックな類似性を評価することが可能です。例えば、特定のキーワードに関連する画像を検索する際、テキストクエリをベクトル化し、画像のベクトルと比較することで、メタデータがなくても関連性の高い画像を取得できます。


Google Cloud

Google Cloudトップページ

Google CloudのVertex AIは、機械学習モデルの構築、トレーニング、デプロイ、管理を一元的に行える統合プラットフォームです。このプラットフォームは、開発者やデータサイエンティストが効率的に機械学習プロジェクトを進めるための多彩なツールとサービスを提供しています。

特に、画像のベクトル化に関連する機能として、Vertex AI Embeddings APIがあります。このAPIを使用すると、画像やテキストを高次元の数値ベクトル(エンベディング)に変換できます。これにより、類似画像検索やコンテンツの推薦システムなど、データの類似性を評価するタスクに活用できます。

具体的には、マルチモーダルエンベディングモデルを利用することで、画像やテキストを同一のベクトル空間にマッピングし、異なるデータ形式間の類似性評価が可能となります。例えば、テキストクエリを用いて関連する画像を検索する際、テキストと画像の両方をベクトル化し、その類似度を計算することで、精度の高い検索結果を得ることができます。


さらに、これらのエンベディングをVertex AI Vector Searchと組み合わせることで、大規模なデータセットに対しても高速かつ高精度な類似性検索を実現できます。このように、Vertex AIの画像ベクトル化機能は、さまざまなアプリケーションでのデータ解析や検索機能の強化に貢献しています。


Pythonを使って利用する場合は以下のようにインストールをしましょう。

pip install google-cloud-aiplatform

実際のPythonコードは以下のようになります

from vertexai.vision_models import (
    Image,
    MultiModalEmbeddingModel,
    MultiModalEmbeddingResponse,
)

model = MultiModalEmbeddingModel.from_pretrained("multimodalembedding")
image = Image.load_from_file(image_path)
embeddings = model.get_embeddings(
        image=image,
    )

Open AI

OpenAI トップページ

OpenAIは、画像とテキストの両方をベクトル化(エンベディング)するモデルとしてCLIP(Contrastive Language–Image Pretraining)を提供しています。CLIPは、画像とテキストのペアを大量に学習し、両者を同一のベクトル空間にマッピングすることで、画像と言語の間の関連性を高精度に捉えることが可能です。

CLIPの主な特徴は以下の通りです:

  • マルチモーダル学習:画像とテキストを同時に学習し、両者の関連性を理解します。

  • ゼロショット学習:特定のタスクに特化した学習を行わなくても、新しいタスクに対応できる柔軟性を持っています。

  • 高い汎用性:画像分類、画像検索、テキストによる画像生成など、さまざまな応用が可能です。

CLIPを活用することで、例えば、テキストによる画像検索や、画像から関連するテキストの生成など、画像と言語の統合的な処理が実現できます。また、CLIPのエンベディングを利用して、画像の特徴を数値ベクトルとして表現し、類似画像検索や画像分類などのタスクに応用することが可能です。


CLIPの特徴

AzureもGoogle PlatformもOpenaiも画像とテキストを同じ空間にベクトルとしてEmbeddingすることを述べていました。おそらくですが、AzureやGoogle PlatformもCLIPがベースとなったAIモデルを活用してベクトルのEmbeddingをしていそうですね。


CLIPは学習データに画像と画像を説明したテキストが必要でそれを、Contrastive Learningという手法で学習させます。いわゆるZero Shotモデルということもあり、汎用的に使えるベクトルが手に入るのが大きな利点になります。


一方で、汎化された特徴ベクトルになってしまうため、特定の分野に特化させることは苦手なベクトルになります。


Level10のベクトル化API

弊社では、CLIPをfine tuningと呼ばれる手法を用いることで、特定の分野に特化させたベクトルを作成できます。これにより、車の分類用のベクトルに特化させたり、風景や食べ物などに特化させることもできます。


更に、画像の中の注目したい部分を四角(bounding box)で指定してその部分に関してベクトル化するAPIも提供しています。実際に弊社で行なった検証で、ファッション分野に特化させ、注目したい部分にのみフォーカスしたベクトルを作ることに成功しました。こちらは、Googleの画像検索にも匹敵する性能を出すことに成功しております。


以下に弊社のAPIを使った画像間検索のデモの結果を紹介します。こちらは左側の画像を検索クエリとして、右側がベクトルデータベースにインデックスとして登録した画像から類似度が高いものを順に表示させた結果になります。白いフワフワしたシャツのイメージがきちんと認識されているのが分かると思います。また、パンツの色に影響されていなかったり、女性の髪型にも検索結果が影響されていないのも分かると思います。


Level10 画像検索結果

弊社のAPIは


よりご連絡をいただければ、提供することができます。


最後に

ここまで、読んでいただき大変ありがとうございます。Level10では、画像のベクトル化はもちろんですが、分野を問わずあらゆるAI技術をハイレベルで提供しております。お客様ごとのニーズやビジネスに適したAIでの提案をいたしますので、お気軽にお尋ねください。詳しくはお問い合わせより、メールをいただけると幸いです。

閲覧数:6回0件のコメント

最新記事

すべて表示

Comments


Commenting has been turned off.
おすすめ記事
bottom of page