Cohere Embed 4で画像とテキストの類似度を測る Image-Text Similarity Calculatorをプロトタイプ実装してみた
「画像で保存された設計書の内容をテキスト検索したい」「スクリーンショットと関連するドキュメントを紐付けたい」——そんなことを考えたことはありませんか?
最近、Cohereから発表されたEmbed 4は、テキストだけでなく画像も扱える最先端のマルチモーダル埋め込みモデルです。これを使えば、画像とテキストの意味的な類似度を計算し、上記のような課題を解決できる可能性があります。
そこで今回は、このCohere Embed 4を使って画像とテキストの類似度を計算するツール Image-Text Similarity CalculatorのプロトタイプをNode.jsで実装してみました。本記事では、その概要と使い方、そして実装のポイントをサンプルコードと共に紹介します。
🚀 Cohere Embed 4 とは?
Cohere Embed 4は、テキストと画像を共通のベクトル空間に埋め込むことができる、強力なマルチモーダルモデルです。これにより、従来は難しかった「画像の内容」と「テキストクエリ」を直接比較することが可能になります。
ビジネスドキュメントの検索、ECサイトの商品画像検索、設計図の管理など、様々な応用が期待されています。
🎯 作成したツール: Image-Text Similarity Calculator
今回作成したのは、画像ファイルとその内容に関連するテキストクエリを入力すると、両者の類似度を計算してくれるシンプルなNode.jsツールです。
例えば、以下のような計算ができます。
- ECサイトの要件定義書が写った画像と「EC requirements」というテキストの類似度 → 0.82
- システム構成図の画像と「system architecture」というテキストの類似度 → 0.76
- 日本語のドキュメント画像と日本語のクエリとの類似度 → 0.68
このように、画像内のコンテンツをAIが理解し、テキストとの関連性を数値化してくれます。
📁 プロジェクトのセットアップ
ツールはGitHubで公開しています。以下の手順で簡単にセットアップできます。
1. Node.jsのバージョン確認
本プロジェクトはv24.8.0を想定しています。バージョンが異なる場合は、公式サイトからインストールしてください。
node --version2. 依存関係のインストール
npm install3. 環境変数の設定
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を使って、画像とテキストの類似度を計算するプロトタイピングツールを実装しました。
この技術を使えば、
- 社内ドキュメントの高度な検索システム(スクリーンショットから関連仕様書を探す)
- RAG (Retrieval-Augmented Generation) への応用(画像情報をコンテキストとしてLLMに与える)
- コンテンツの自動分類(画像の内容に基づいてタグを付与する)
など、さまざまな可能性が広がります。
今回紹介したコードは、GitHubリポジトリで公開しています。ぜひクローンして、お手元の画像で試してみてください。マルチモーダルAIの面白さをきっと体感できるはずです!
以上、Cohere Embed 4を使った画像とテキストの類似度計算ツールをプロトタイピング実装した、現場からお送りしました。