Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

ReverseGeo AIで画像から場所を特定する

ReverseGeo AIで画像から場所を特定する

Avatar for zawatti

zawatti

July 29, 2025
Tweet

Other Decks in Technology

Transcript

  1. 目次 1. 自己紹介 2. ReverseGeoとは? 3. デモ 4. 技術スタック 5.

    Gemini APIの活用方法 6. ユースケース 7. 今後の展望 8. AIをアプリ・サービスに組み込むときの考え方 9. まとめ 2
  2. 処理フロー 1. 画像入力 → カメラ撮影 or アップロード 2. Gemini APIを使用したAI分析

    → 画像内容の分析 3. 座標特定 → 緯度・経度の決定 4. 2D/3Dマップ表示 → マップ上のピンで確認 精度向上の工夫 複数の情報源を組み合わせ 信頼度スコアの算出 5
  3. 技術スタック フロントエンド Next.js + TypeScript Material-UI (MUI) + Tailwind CSS

    Google Maps JavaScript API (3D対応) バックエンド/AI Google Gemini 2.5 Flash API Google Cloud Vision API 8
  4. Google Web Groundingの流れ 🧠 判断 検索の必要性 → 🔍 生成 検索クエリ

    → 🌐 検索 Web情報収集 → 📝 合成 最終回答生成 9
  5. ①標準分析 const model = genAI.getGenerativeModel({ model: "gemini-2.5-flash" }) const result

    = await model.generateContent( [prompt, imagePart] // ← マルチモーダル推論 ) シンプルな推論で2-3秒、最小限のトークン使用 12
  6. ②高精度解析 const model = genAI.getGenerativeModel({ model: "gemini-2.5-flash", tools: [{ googleSearch:

    {} }] // ← function_callingで設定する }) const result = await model.generateContent([ prompt, imagePart ]) 複数情報源から検証し、曖昧な場所も特定可能。しかし、10秒ほどかかる GeminiがWeb検索もしない可能性もある 13
  7. ③類似画像検索 Google Cloud Vision API + Geminiで類似画像検索と詳細分析 const [result] =

    await visionClient.webDetection({ image: { content: Buffer.from(image, 'base64') } }) const model = genAI.getGenerativeModel({ model: "gemini-2.5-flash" }) const enhanced = await model.generateContent([ promptWithVisionData, imagePart ]) 14
  8. LLMの入出力データのポリシー Azureでは... Azure OpenAI Servicesに悪用していないかを監視する仕組みがある Azure OpenAI サービスのデータ、プライバシー、セキュリティ → Azure

    OpenAI Service 基盤モデルのトレーニング、再トレーニング、または 改善には使用されない きちんとドキュメント・利用規約を確認する必要がある 19