Amazon Rekognition
画像と動画から物体検出、顔分析、テキスト検出、コンテンツモデレーション、カスタムラベル検出を行う機械学習ベースの視覚分析サービス
概要
Amazon Rekognition は、画像と動画に対する視覚分析を API 経由で提供する機械学習サービスです。事前トレーニング済みのモデルにより、物体・シーンの検出、顔の検出・比較・検索、テキスト検出 (画像内の文字認識)、不適切コンテンツの検出、有名人の認識、PPE (個人防護具) の検出が可能です。Custom Labels 機能を使えば、独自の画像分類・物体検出モデルを少量の教師データ (数十枚) からトレーニングでき、製造業の外観検査や小売業の商品認識に応用できます。
画像分析 API の使い分けと精度特性
Rekognition の画像分析 API は用途別に分かれており、適切な API を選択することが精度とコストの両面で重要です。DetectLabels は画像内の物体、シーン、アクティビティを検出し、「犬」「ビーチ」「サーフィン」のようなラベルと信頼度スコアを返します。数千種類のラベルに対応しており、画像の自動タグ付けや検索インデックスの構築に使えます。DetectFaces は顔の位置、ランドマーク (目、鼻、口の座標)、属性 (年齢範囲、性別、感情、メガネの有無、目の開閉) を返します。感情分析は HAPPY、SAD、ANGRY、CONFUSED、DISGUSTED、SURPRISED、CALM、FEAR の 8 種類を検出し、それぞれの信頼度スコアが付与されます。DetectModerationLabels は不適切なコンテンツ (暴力、ヌード、薬物など) を検出し、UGC (ユーザー生成コンテンツ) プラットフォームのコンテンツモデレーションに使われます。DetectText は画像内のテキストを検出・認識し、看板、ナンバープレート、スクリーンショット内の文字を読み取ります。最大 100 単語まで検出可能で、傾いたテキストや曲がったテキストにも対応しています。
顔コレクションと顔検索の設計
Rekognition の顔コレクション機能は、顔の特徴ベクトルをインデックス化して高速な顔検索を実現します。IndexFaces API で顔画像をコレクションに登録すると、顔の特徴量が抽出されてベクトルとして格納されます。SearchFacesByImage API で新しい顔画像を入力すると、コレクション内の類似顔をミリ秒単位で検索できます。1 つのコレクションに最大 2,000 万の顔を格納でき、検索の精度は 99.9% 以上です。入退室管理、イベントの来場者認証、写真アプリの人物グルーピングなどに応用されています。設計上の注意点として、顔コレクションに格納されるのは特徴ベクトルのみで、元の画像は保持されません。元画像は S3 に別途保管し、ExternalImageId で紐付ける設計が標準です。顔認識の精度は照明条件、顔の角度、画像解像度に大きく依存します。正面を向いた、十分な照明下の、最低 80x80 ピクセル以上の顔画像が推奨されます。プライバシーの観点では、顔認識技術の利用に関する法規制が各国で異なるため、利用目的の明示と同意取得のプロセスを事前に設計しておく必要があります。
動画分析とストリーミング処理
Rekognition Video は S3 に格納された動画ファイルの非同期分析と、Kinesis Video Streams からのリアルタイムストリーミング分析の 2 つのモードを提供します。非同期分析では、StartLabelDetection、StartFaceDetection、StartPersonTracking などの API で分析ジョブを開始し、SNS 通知で完了を検知して結果を取得します。動画内の各フレームでラベル検出や顔検出が実行され、タイムスタンプ付きの結果が返されます。ストリーミング分析では、Kinesis Video Streams に送信されるライブ映像に対してリアルタイムで顔検索を実行できます。監視カメラの映像から特定人物を検出するユースケースが典型的です。Custom Labels は画像だけでなく動画にも適用でき、製造ラインの映像から不良品をリアルタイムで検出するといった産業用途に使われています。コスト面では、画像分析は 1,000 画像あたり 1 USD (DetectLabels)、動画分析は処理時間 1 分あたり 0.10 USD が基本料金です。大量の画像を処理する場合は、バッチ処理で S3 から一括分析するよりも、必要な画像のみを選択的に分析する設計がコスト効率に優れます。