Upgrade to Pro — share decks privately, control downloads, hide ads and more …

_JAWS-UG_AI_ML__N41_N__自分の顔が誰に似ているかそっくり判定AIエーシ...

Avatar for Taka Taka
August 25, 2026
150

 _JAWS-UG_AI_ML__N41_N__自分の顔が誰に似ているかそっくり判定AIエージェント.pdf

Avatar for Taka

Taka

August 25, 2026

Transcript

  1. 自己紹介 野崎 高弘(のざき たかひろ) ・仕事:前職まではインフラ構築・保守やSOCセキュリティアナリスト 現在は技術検証が主のクラウドインフラエンジニア ・趣味:資格取得、犬の散歩、ドラマ鑑賞、巨人ファン ・資格:現在AWS・GCP全冠、その他100種以上保持の資格オタク ・2024年3月『AWS認定 高度なネットワーキング-専門知識(ANS-C01)完

    全対応テキスト』(リックテレコム)部分執筆(2章、巻末模擬問題担当) ・主な受賞歴 2023 Japan AWS All Certifications Engineers 2024 Japan AWS All Certifications Engineers 2024 Japan AWS Top Engineers(Networking) Google Cloud Partner All Certification Holders 2025 JAWS-UG AI/ML #41② 2
  2. 条件(導入にあたっての前提事項) 1. ソフトウェア • Python 3.9 以上(3.14でも動作確認済み) 2. AWSアカウント •

    AWS CLIで認証設定済み(aws login 完了済み) • 以下のサービスへのアクセス権限: ・Amazon Bedrock(Claude Sonnet 4.5 モデルが有効化されていること)us-east-1 ・Amazon Rekognition 3. Hive AI アカウント • https://portal.thehive.ai でアカウント作成 • Celebrity Recognition モデルを有効化 • APIキーを取得 JAWS-UG AI/ML #41② 4
  3. 注意事項 1. セキュリティ • APIキーは環境変数で管理していますが、誤ってコードにハードコードしないよう注意。 2. 精度・判定結果 • Hive AIの芸能人DBは欧米中心です。日本の芸能人はカバー率が低い可能性があります。

    • Rekognitionも同様に日本のタレントへの対応は限定的。 • Claude Vision のフォールバック判定はLLMの推測であり、顔の特徴量比較に基づいてい ません。信頼性は保証されません。 • そっくり率はマッチングスコアであり、実際の類似度を正確に反映するとは限りません。 3. プライバシー・倫理 • アップロードされた顔画像はHive AI、AWS(Rekognition/Bedrock)の外部サーバーに 送信されます。 • プログラムから画像をアップロードしてインターネット上の類似画像を検索することはし ていません。 JAWS-UG AI/ML #41② 5
  4. 各コンポーネントの役割 コンポーネント 用途 補足 Gradio WebUI・画像前処理 入出力がシンプルなアプリ Hive AI 芸能人顔照合(メイン)

    外部API。5万人以上のDB Rekognition 芸能人顔照合(バックアップ) AWSサービス Claude Sonnet 4.5 結果解説の生成/画像直接判定 Bedrock経由 Wikipedia API 芸能人参考画像の取得 無料 JAWS-UG AI/ML #41② 7
  5. 作業の流れ 1. ユーザーがGradio Web UIに顔写真をアップロードすると、画像を800px以下にリサイ ズしJPEG変換 2. Hive AI(5万人の有名人DB)に画像を送信し、顔の特徴量マッチングで最も似ている 芸能人を検索

    3. Hive AIで見つからなければRekognition、それでも見つからなければClaude Sonnet 4.5が画像を直接見て推定 4. マッチした芸能人名をClaudeに渡し、似ているポイントやコメントを日本語で生成 5. Wikipedia等から芸能人の参考画像を取得し、判定結果テキストとあわせて画面に表示 JAWS-UG AI/ML #41② 8
  6. 工夫したポイント ①3段フォールバック構成 単一サービスに依存せ ず、Hive AI → Rekognition → Claude Vision

    と段階的にフォー ルバックすることで、ど んな顔写真でも何らかの 結果を必ず返せるように した AWS-UG AI/ML #41② ②LLMに画像データを直接 渡さない設計 ③画像の前処理 画像の照合は専用APIに 任せ、Claudeにはテキス ト(芸能人名とスコア) だけを渡すことで、トー クン消費を抑えレスポン スを高速化 アップロード画像を800px 以下にリサイズ+JPEG品 質85%に変換し、APIへの 転送サイズを削減してタイ ムアウトを防止 9
  7. 工夫したポイント ④役割の分離 ⑤参考画像の自動取得 「誰に似ているか」の判 定は顔認識API(数値 ベースの照合)、「なぜ 似ているか」の解説は LLM(言語生成)と、各 サービスの得意分野に合 わせて役割を分割

    判定結果だけでなく芸能 人の写真もWikipediaか ら取得して表示し、見つ からない場合はGoogle 画像検索リンクで代替す ることで、ユーザーが視 覚的に比較できるように した。 AWS-UG AI/ML #41② ⑥Claudeで結果を日本語 解説 ⑦Claude Visionで判定 (全サービス失敗時の フォールバック) 10
  8. Claude で結果を日本語解説 def generate_comment(result: dict) -> str: """認識結果をもとに Claude で日本語コメントを生成する"""

    prompt = f"""あなたは「芸能人そっくり判定AI」です。 以下の認識結果をもとに、日本語で楽しく解説してください。 認識結果: {json.dumps(result, ensure_ascii=False, indent=2)} 以下のフォーマットで回答してください: --最も似ている芸能人:【名前】 そっくり率:【confidence】% 似ているポイント:【推測される特徴の解説】 一言コメント:【ユーモアを交えたコメント】 --複数の芸能人が検出された場合は、それぞれについて簡潔にコメントしてください。""" AWS-UG AI/ML #41② 11
  9. Claude Visionで判定(全サービス失敗時のフォールバック) def analyze_with_claude_vision(image_bytes: bytes) -> tuple[str, str]: """Claude に画像を直接送って似ている芸能人を判定させる。名前も返す"""

    image_b64 = base64.b64encode(image_bytes).decode("utf-8") prompt = """あなたは「芸能人そっくり判定AI」です。 この顔写真を見て、最も似ている有名人・芸能人を判定してください。 日本の芸能人だけでなく、海外のセレブリティも含めて幅広く考えてください。 回答は以下のJSON形式で最初に出力し、その後に解説を書いてください: CELEBRITY_NAME: 【最も似ている芸能人の名前(英語表記)】 以下のフォーマットで解説してください: --最も似ている芸能人:【名前】 そっくり率:【あなたの推定(0〜100%)】 似ているポイント:【目・鼻・輪郭・雰囲気など具体的に】 一言コメント:【ユーモアを交えたコメント】 --複数候補がある場合は、上位3名まで挙げてください。 ※ AI判定による推定です。""" AWS-UG AI/ML #41② 12
  10. コードの解説(Rekognition) Rekognition で芸能人を認識する response = rekognition_client.recognize_celebrities( Image={"Bytes": image_bytes} ) Rekognition

    の recognize_celebrities API を呼び出しています。 • rekognition_client — 事前に作成した Rekognition の接続クライアント • recognize_celebrities() — 画像内の顔をAWSの有名人データベースと照合するAPI • Image={"Bytes": image_bytes} — JPEG画像のバイトデータを直接渡す レスポンスには、マッチした芸能人の名前・信頼度スコア・顔の位置(バウンディング ボックス)などが含まれます。 AWS-UG AI/ML #41② 13
  11. コードの解説(Rekognition) celebrities = [] for celeb in response.get("CelebrityFaces", []): celebrities.append({

    "name": celeb["Name"], "confidence": round(celeb["MatchConfidence"], 1), "category": "celebrity", }) RekognitionのAPIレスポンスから、認識された芸能人の情報を抽出して整形しています。 具体的には: • response.get("CelebrityFaces", []) — Rekognition のレスポンスから、認識された芸 能人リストを取得(なければ空リスト) • 各芸能人について以下を辞書にまとめて celebrities リストに追加: ・name — 芸能人の名前(例: "Tom Cruise") ・confidence — マッチング信頼度を小数点1桁に丸める(例: 98.7) ・category — 固定値 "celebrity"(Hive AI の結果と形式を揃えるため) AWS-UG AI/ML #41② 14
  12. まとめ • 使用技術: Python / Gradio / Hive AI /

    Amazon Rekognition / Amazon Bedrock (Claude Sonnet 4.5) / Wikipedia API • 目的: 顔写真をアップロードするだけで、似ている芸能人・そっくり率・似ているポイン トを判定するWebアプリ • 構成: 顔照合(Hive AI/Rekognition)と言語生成(Claude)を分離し、それぞれの得 意分野を活かした設計 • 信頼性: 3段フォールバック(Hive → Rekognition → Claude Vision)で必ず結果を 返す • パフォーマンス: 画像リサイズ+LLMにはテキストのみ送信し、タイムアウトやトークン 過剰消費を防止 • UX: 判定結果に加え、芸能人の参考画像またはGoogle画像検索リンクを表示し視覚的に 比較可能 AWS-UG AI/ML #41② 16