Cohere Embed 4で画像とテキストの類似度を測る Image-Text Similarity Calculatorをプロトタイプ実装してみた
「画像で保存された設計書の内容をテキスト検索したい」「スクリーンショットと関連するドキュメントを紐付けたい」——そんなことを考えたことはありませんか?
最近、Cohereから発表されたEmbed 4は、テキストだけでなく画像も扱える最先端のマルチモーダル埋め込みモデルです。これを使えば、画像とテキストの意味的な類似度を計算し、上記のような課題を解決できる可能性があります。
そこで今回は、このCohere Embed 4を使って画像とテキストの類似度を計算するツール Image-Text Similarity CalculatorのプロトタイプをNode.jsで実装してみました。本記事では、その概要と使い方、そして実装のポイントをサンプルコードと共に紹介します。
Cohere Embed 4は、テキストと画像を共通のベクトル空間に埋め込むことができる、強力なマルチモーダルモデルです。これにより、従来は難しかった「画像の内容」と「テキストクエリ」を直接比較することが可能になります。
ビジネスドキュメントの検索、ECサイトの商品画像検索、設計図の管理など、様々な応用が期待されています。
今回作成したのは、画像ファイルとその内容に関連するテキストクエリを入力すると、両者の類似度を計算してくれるシンプルなNode.jsツールです。
例えば、以下のような計算ができます。
このように、画像内のコンテンツをAIが理解し、テキストとの関連性を数値化してくれます。
ツールはGitHubで公開しています。以下の手順で簡単にセットアップできます。
本プロジェクトはv24.8.0
を想定しています。バージョンが異なる場合は、公式サイトからインストールしてください。
node --version
npm install
CohereのAPIキーを設定する必要があります。
cp .env.example .env
次に、CohereのダッシュボードでAPIキーを取得し、作成した.env
ファイルに設定してください。
# .env
COHERE_API_KEY="your_cohere_api_key_here"
これで準備は完了です!
使い方はとてもシンプルです。
画像ファイルへのパスと、比較したいテキストクエリを引数に指定して実行します。
# 1つのクエリで計算
npm run similarity ./images/samples/ec-requirements.png "EC requirements"
実行すると、コンソールに以下のような結果が表示されます。
🚀 Starting image-text similarity calculation...
Image: ./images/samples/ec-requirements.png
Query: "EC requirements"
Calculating...
✅ Calculation complete!
==================================================
Similarity Score: 0.823456
Cosine Similarity (Range 0-1, closer to 1 means more similar)
==================================================
Interpretation: 🔥 Very high relevance
スコアだけでなく、🔥 Very high relevance
のように直感的な解釈も表示するようにしました。
1つの画像に対して、複数のテキストクエリとの類似度をまとめて計算することもできます。
npm run similarity ./images/samples/ec-requirements.png "EC site" "requirements" "cooking recipe"
この場合、類似度が高い順にランキング形式で表示されます。
Similarity Ranking:
1. 🥇 "EC requirements": 0.823456
2. 🥈 "E-commerce system specifications": 0.687234
3. 🥉 "Requirements document": 0.654321
4. 📝 "Cooking recipe": 0.123456
Statistics:
Average Similarity: 0.572117
Max Similarity: 0.823456
Min Similarity: 0.123456
「料理のレシピ」という無関係なクエリのスコアが低く出ており、正しく意味を捉えられていることがわかります。
より詳細な分析を行いたい場合は、以下のコマンドを実行します。
npm run validate
このコマンドは、あらかじめ定義されたテストケース(複数の画像とクエリの組み合わせ)に基づいて類似度を計算し、結果をreports/
ディレクトリにJSONとテキスト形式で出力します。
このツールの心臓部は、いくつかのクラスに分かれています。
ImageProcessor
: 画像をCohere APIが受け付けるBase64形式に変換したり、サイズチェックを行ったりします。CohereEmbedding
: Cohere Embed v4 APIと通信し、画像とテキストの埋め込みベクトルを取得します。SimilarityCalculator
: 取得したベクトルを元にコサイン類似度を計算します。ReportGenerator
: 計算結果を整形してレポートファイルを出力します。特に中心的な役割を果たすSimilarityCalculator
の基本的な使い方は以下のようになります。
// src/similarity-calculator.js を利用する例
import { SimilarityCalculator } from './src/similarity-calculator.js';
async function main() {
const calculator = new SimilarityCalculator();
const result = await calculator.calculateSimilarity(
'./images/samples/ec-requirements.png',
'EC requirements'
);
// Similarity: 0.823456
console.log(`Similarity: ${result.similarity.toFixed(6)}`);
}
非常にシンプルに画像とテキストの類似度を取得できることがわかるかと思います。
今回は、Cohereの新しいマルチモーダルモデルEmbed 4を使って、画像とテキストの類似度を計算するプロトタイピングツールを実装しました。
この技術を使えば、
など、さまざまな可能性が広がります。
今回紹介したコードは、GitHubリポジトリで公開しています。ぜひクローンして、お手元の画像で試してみてください。マルチモーダルAIの面白さをきっと体感できるはずです!
以上、Cohere Embed 4を使った画像とテキストの類似度計算ツールをプロトタイピング実装した、現場からお送りしました。