Gemini マルチモーダルAPIでバウンディングボックス(物体検出)を実現する方法
AI
Gemini
画像処理
Gemini 2.5-flash の通常のテキスト生成APIに画像を送り、プロンプトで座標のJSON形式を指示することで、専用の Object Detection API なしに物体検出を擬似的に実現できる。
プロンプト例:
座標形式:
[y_min, x_min, y_max, x_max]で 0〜1000 に正規化された値- ピクセル座標への変換:
left = (x_min / 1000) × 画像幅(px)
注意点:
structuredOutputsは使わない(JSONスキーマ定義なしのため)thinkingBudget: 0で推論を無効化すると速度が上がる(座標検出に推論は不要)- レスポンスが
[[y,x,y,x]]のようにネストされた配列で返ることがある → 展開処理が必要 - 9枚程度の物体なら安定して検出可能。18枚など多数になると検出漏れが発生する
temperature: 0.1で安定した出力を得る
活用パターン: 名刺一括取り込みでは「バウンディングボックス検出 → sharp で切り出し → 切り出し画像ごとに個別読み取り」の切り出し先行型パイプラインが、紐づけの信頼性と精度の面で優れている。