ビジョン
Claude 3ファミリーのモデルには、Claudeが画像を理解・分析できる新しいビジョン機能が搭載されており、マルチモーダルな対話の可能性が広がります。
このガイドでは、Claudeでの画像の扱い方、ベストプラクティス、コード例、および注意すべき制限事項について説明します。
ビジョン機能の使用方法
Claudeのビジョン機能は以下の方法で利用できます:
- claude.ai。ファイルのようにして画像をアップロードするか、チャットウィンドウに画像を直接ドラッグ&ドロップします。
- Console Workbench。画像を受け付けるモデル(Claude 3モデルのみ)を選択すると、各ユーザーメッセージブロックの右上に画像追加ボタンが表示されます。
- APIリクエスト。このガイドの例を参照してください。
アップロード前の確認事項
画像サイズの評価
1回のリクエストで複数の画像を含めることができます(claude.aiでは最大5枚、APIリクエストでは最大100枚)。Claudeは提供されたすべての画像を分析して応答を作成します。これは画像の比較や対照に役立ちます。
最適なパフォーマンスを得るために、画像がサイズやトークン制限を超える場合は、アップロード前にリサイズすることをお勧めします。画像の長辺が1568ピクセルを超える場合、または画像が約1,600トークンを超える場合、アスペクト比を維持したままサイズ制限内に縮小されます。
入力画像が大きすぎてリサイズが必要な場合、モデルのパフォーマンスが向上することなく、time-to-first-tokenの遅延が増加します。いずれかの辺が200ピクセル未満の非常に小さい画像は、パフォーマンスが低下する可能性があります。
以下は、一般的なアスペクト比について、APIが受け付ける最大画像サイズ(リサイズされない)の表です。Claude 3.5 Sonnetモデルでは、これらの画像は約1,600トークンを使用し、1,000枚あたり約4.80ドルかかります。
アスペクト比 | 画像サイズ |
---|---|
1:1 | 1092x1092 px |
3:4 | 951x1268 px |
2:3 | 896x1344 px |
9:16 | 819x1456 px |
1:2 | 784x1568 px |
画像コストの計算
Claudeへのリクエストに含める各画像は、トークン使用量にカウントされます。おおよそのコストを計算するには、画像のおおよそのトークン数に使用するモデルのトークンあたりの価格を掛けます。
画像のリサイズが不要な場合、以下のアルゴリズムでトークン数を推定できます:トークン数 = (幅px * 高さpx)/750
以下は、APIのサイズ制限内の異なる画像サイズについて、Claude 3.5 Sonnetの100万入力トークンあたり3ドルの価格に基づく、おおよそのトークン化とコストの例です:
画像サイズ | トークン数 | 画像あたりのコスト | 1,000枚あたりのコスト |
---|---|---|---|
200x200 px(0.04メガピクセル) | ~54 | ~$0.00016 | ~$0.16 |
1000x1000 px(1メガピクセル) | ~1334 | ~$0.004 | ~$4.00 |
1092x1092 px(1.19メガピクセル) | ~1590 | ~$0.0048 | ~$4.80 |
画質の確保
Claudeに画像を提供する際は、最良の結果を得るために以下の点に注意してください:
- 画像フォーマット:サポートされている画像フォーマット(JPEG、PNG、GIF、WebP)を使用してください。
- 画像の鮮明さ:画像がぼやけていたりピクセル化していたりしないよう、鮮明であることを確認してください。
- テキスト:画像に重要なテキストが含まれている場合は、判読可能で小さすぎないことを確認してください。テキストを拡大するために重要な視覚的コンテキストを切り取ることは避けてください。
プロンプトの例
Claudeとのテキストベースの対話で効果的なプロンプト技法の多くは、画像ベースのプロンプトにも適用できます。
これらの例は、画像を含むプロンプトの構造のベストプラクティスを示しています。
プロンプト例について
これらのプロンプト例では、Anthropic Python SDKを使用し、httpx
ライブラリを使ってWikipediaから画像を取得しています。任意の画像ソースを使用できます。
例のプロンプトでは以下の変数を使用しています。
import base64
import httpx
image1_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image1_media_type = "image/jpeg"
image1_data = base64.standard_b64encode(httpx.get(image1_url).content).decode("utf-8")
image2_url = "https://upload.wikimedia.org/wikipedia/commons/b/b5/Iridescent.green.sweat.bee1.jpg"
image2_media_type = "image/jpeg"
image2_data = base64.standard_b64encode(httpx.get(image2_url).content).decode("utf-8")
APIリクエストで画像を使用する場合、image
コンテンツブロックでbase64エンコードされた画像としてClaudeに提供できます。以下はPythonでbase64エンコードされた画像をMessages APIリクエストに含める簡単な例です:
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": image1_media_type,
"data": image1_data,
},
},
{
"type": "text",
"text": "この画像を説明してください。"
}
],
}
],
)
print(message)
コード例とパラメータの詳細については、Messages APIの例を参照してください。
制限事項
Claudeの画像理解能力は最先端ですが、以下のような制限事項があることを認識しておく必要があります:
- 人物の特定:Claudeは使用できません画像内の人物を特定(つまり、名前を特定)することはできず、そのような要求は拒否されます。
- 精度:低品質、回転した、または200ピクセル未満の非常に小さい画像を解釈する際に、Claudeは誤った解釈をしたり間違いを起こしたりする可能性があります。
- 空間認識:Claudeの空間認識能力には限界があります。アナログ時計の文字盤を読むことやチェスの駒の正確な位置を説明するなど、正確な位置関係や配置を必要とするタスクは苦手です。
- カウント:Claudeは画像内のオブジェクトのおおよその数を数えることはできますが、特に小さなオブジェクトが多数ある場合は、必ずしも正確ではない場合があります。
- AI生成画像:Claudeは画像がAI生成かどうかを判断できず、質問された場合は誤った回答をする可能性があります。偽画像や合成画像の検出にClaudeを利用しないでください。
- 不適切なコンテンツ:Claudeは利用規約に違反する不適切または露骨な画像を処理しません。
- 医療応用:Claudeは一般的な医療画像を分析できますが、CTやMRIなどの複雑な診断スキャンを解釈するようには設計されていません。Claudeの出力を専門的な医療アドバイスや診断の代用とみなすべきではありません。
特にリスクの高いユースケースでは、Claudeの画像解釈を常に慎重に確認し検証してください。人間の監督なしに、完璧な精度や機密性の高い画像分析を必要とするタスクにClaudeを使用しないでください。
よくある質問
ビジョンについてさらに詳しく
Claudeを使って画像の構築を始める準備はできましたか?以下は役立つリソースです:
- マルチモーダルクックブック:このクックブックには、画像の使用開始と最高のパフォーマンスを確保するためのベストプラクティス技法に関するヒントが含まれています。チャートの解釈と分析やフォームからのコンテンツ抽出などのタスクを実行するために、画像を使ってClaudeに効果的にプロンプトを与える方法をご覧ください。
- APIリファレンス:画像を含むAPIコールの例を含む、Messages APIのドキュメントをご覧ください。
その他のご質問がありましたら、サポートチームまでお気軽にお問い合わせください。また、開発者コミュニティに参加して、他のクリエイターとつながり、Anthropicの専門家からサポートを受けることもできます。