機械学習×生成AIでラベリング! 膨大な写真の検索がスムーズに
──今回開発した写真選定システムは、具体的にどのような流れで処理を行うのですか。
數藤:画像をアップロードすると、まずはサムネイルやプレビュー、推論用の画像を自動生成し、撮影日時などのEXIF情報を抽出すると同時に、ピンボケ判定を行います。
その後、機械学習サービスの「Amazon Rekognition」(以下、Rekognition)による顔認識を経て、事前に登録された選手データベースと照合して人物を自動特定します。ただし、標準の機能では1枚の画像に対して1人しか認識できないため、複数人が写っている写真に対応できません。そこで、システム側で一旦人物の顔のみを認識して切り取り、人数分の画像に分割してから一気に識別することで、複数人が写っていても選手名でしっかりと検索できるようにしています。画像分割などの処理には「Sharp.js」を使用しています。
次に、選手を特定した画像を生成AIに解析させ、自然言語で指定したルールに応じてラベルやタグをつけてデータベースに格納します。スポーツ広報特有の文脈をプロンプトだけで定義しており、試合やセレモニー、練習などのシーン分類をはじめ、どのような表情をしているか、加えてユニフォームのスポンサーロゴははっきりと写っているか、といった観点でも評価しています。技術としては「Amazon Bedrock」(以下、Bedrock)と「Claude Sonnet 4.6」の組み合わせを採用しています。
実際に広報担当者が触れる画面ではラベルやタグを指定することで、ほしい写真をピンポイントで検索することができます。
なお、本システムは大量の写真をいかに早く処理するかが重要となるため、「AWS Lambda」のサーバレスアーキテクチャを採用し、写真がアップロードされるとイベントを発生させて1枚ごとに処理を並列で走らせています。
──処理の中ではRekognitionとBedrockの両方を使い分けていますが、生成AIによるタグ付けを採用したことで、どのようなメリットがありましたか。
數藤:Rekognitionにもラベル検出機能自体はありますが、「胸のスポンサーロゴが見える構図」などスポーツ広報特有の判断基準は表現できないため、生成AIによる推論を採用しています。また、学習データを用意することなく「真剣な表情」や「喜んで笑っている姿」といった汎用的な分類を、自然言語で指示するだけで柔軟に行うことができます。ファインチューニングを行わなくてもプロンプトでの指示のみで充分な分類が実現できており、正直ここまで精度が出るとは思っていませんでした。AIモデルの性能が上がれば精度も自然と向上していくため、モデルのバージョンアップによる進化は今後も期待できると考えています。
──本システムはAWSとの協業によって開発されたと伺っています。その背景を教えてください。
數藤:AIや機械学習領域でAWSのサービスを本格的に組み合わせてシステムを構築するのは、ライブエクスペリエンス事業本部として初の試みだったため、技術選定や設計の最適解が見えづらいという課題がありました。そこで、AWSさまの「Prototyping Program」を活用して実現することにしたのです。このプログラムは、AWSの機能を使ってシステムを作りたいものの、調査や実現方法の検討などに課題を抱えている場合に、AWSのエンジニアの方がプロトタイプ開発を通じて課題解決を支援してくれるというものです。
今回は1か月半という期間でプロトタイプを開発していただき、本番にデプロイできる一式のコードを引き継いでもらいました。その後の機能追加やバグ修正は私たちが担当したのですが、自分たちだけでゼロから開発するよりもかなり早く、スムーズに導入ができたと感じています。また、プロンプトキャッシュによるコスト最適化など、運用視点での実践的なノウハウを直接学べたことも、今後社内で同様のAI活用を進めていく上での大きな資産になっています。
