Amazon Rekognitionとは?できること・API・料金と自前モデルとの使い分け【2026年版】
Amazon Rekognitionは、画像と動画の中身をAPIひとつで解析するAWSのマネージドサービスです。物体やシーンのラベル付け、顔の検出と本人照合、不適切コンテンツの判定、保護具の着用確認などを、学習済みモデルへのリクエストだけで実行できます。データセットを集めて訓練する工程が要らない代わりに、扱えるクラスや対応言語には決まった範囲があり、超えた瞬間に自前モデルへ切り替える判断が必要です。この記事では、API単位の役割分担、boto3での組み方、料金が伸びる構造、自前モデルやマルチモーダルLLMとの使い分けを実装の順序で並べました。
まとめ:標準APIの守備範囲を先に確かめてから設計する
検討でつまずく箇所は、機能一覧ではなく守備範囲の見誤りです。着手前に確認すべきは3点、検出対象が標準ラベルで表現できるか、扱うテキストが対応言語に含まれるか、処理量が月あたり何枚・何分になるかです。
標準ラベルで表現できる対象なら、S3に画像を置いてdetect_labelsを呼ぶだけで、その日のうちに動くものができます。自社製品の型番判別やキズの等級判定は標準ラベルの外にあり、Custom Labelsか自前モデルの検討へ進みます。
日本の実装で最初に効く制約はテキスト検出です。detect_textの対応言語に日本語は含まれず、看板や帳票を読ませる用途では成立しません。日本語文書はAmazon TextractやAI-OCRへ回し、Rekognitionは物体・顔・不適切表現の判定に絞ってください。
費用の勘所は動画です。画像1枚が0.001 USD前後なのに対し、保存済み動画のラベル検出は1分0.10 USD、1時間で6 USD相当になります。丸ごと投げる前に、フレームを間引いて画像APIで済ませられないかを検討してください。
Amazon Rekognitionの定義|学習不要で呼べる画像解析API
学習済みモデルを呼ぶだけで動くマネージド推論APIの位置づけ
Rekognitionは、AWS側が大量の画像で訓練済みのモデルをHTTPS APIとして提供する形態のサービスです。利用者はモデル構造もGPUインスタンスも意識せず、画像のバイト列またはS3上のオブジェクトを指定して呼ぶだけで結果を受け取ります。推論基盤の運用、モデル更新、スケーリングはすべてAWS側の責任範囲です。
提供されないものも明確です。モデルの重みは取り出せず、オンプレミスやエッジ端末での実行もできないため、画像が外部へ出ることを許容できない環境では選択肢から外れます。技術としての仕組みは画像認識AIの仕組みと開発の進め方で整理しました。
Group 1とGroup 2という料金上の2分類が示す機能の境界
AWSの料金ページでは画像APIがGroup 1とGroup 2に分けられており、この区分は課金単位に見えて機能の性格を表しています。Group 1はindex_facesやcompare_faces、search_users_by_imageといった顔の索引付けと照合の系統、Group 2はdetect_labels、detect_faces、detect_text、detect_moderation_labels、recognize_celebritiesという検出の系統です。
設計上の意味は状態の有無になります。Group 2は1枚投げて結果が返るだけの処理、Group 1は顔コレクションという永続データを前提にした処理で、後者は「誰の顔をいつまで保管するか」という運用設計が先に要ります。
Rekognition ImageとVideoで異なる同期・非同期の処理モデル
画像側のAPIは同期呼び出しで、その場でJSONが返ります。動画側は非同期で、start_label_detectionのような開始APIがジョブIDを返し、完了通知をAmazon SNS経由で受け取ってからget_label_detectionで結果を取りに行く二段構えです。この違いを知らずに動画APIを同期前提のLambdaへ組み込むとタイムアウトで詰まります。さらにKinesis Video Streamsと連携するストリーミング系の経路もあり、非同期ジョブとは料金も設計も別物です。
できることの全体像|画像API・動画API・顔コレクションの機能
検出系APIが扱うラベル・テキスト・不適切表現・保護具の4系統
detect_labelsは写っている物体、シーン、概念をラベルの配列として返します。「Car」「Person」といった汎用語彙が信頼度スコア付きで並び、物体には位置を示すバウンディングボックスも付く形です。親子関係を持つ階層構造が特徴で、「Sedan」が「Car」の下位として返るため集計の粒度を後から変えられます。
detect_moderation_labelsは露骨な描写や暴力表現をカテゴリ階層で返し、UGCサイトの投稿審査で使われます。detect_protective_equipmentはヘルメット・手袋・フェイスカバーの着用有無を人物単位で返すため、工事現場の安全確認にそのまま当たる機能です。
| API(boto3名) | 返すもの | 料金グループ | 代表的な用途 |
|---|---|---|---|
| detect_labels | 物体・シーンのラベル | Group 2 | 画像の自動タグ付け |
| detect_faces | 顔の属性と位置 | Group 2 | 人数計測・年齢層推定 |
| detect_text | 語と行のテキスト | Group 2 | ナンバープレート読取 |
| detect_moderation_labels | 不適切表現の分類 | Group 2 | 投稿画像の審査 |
| protective_equipment系 | 保護具の着用有無 | Group 2 | 現場の安全確認 |
| index_faces | 顔ベクトルの登録結果 | Group 1 | 本人照合の下準備 |
| search_users_by_image | 一致したユーザー | Group 1 | 入退室の本人確認 |
| compare_faces | 2枚の顔の類似度 | Group 1 | 身分証と自撮りの照合 |
顔コレクションでの本人照合はユーザー単位の索引付けが前提になる
顔照合の経路は2つです。1枚対1枚で類似度を出すcompare_facesと、登録済みの集合から探す顔コレクション方式で、免許証と自撮りの突き合わせなら前者、社員100人の入退室なら後者になります。
顔コレクションで保存されるのは、画像そのものではなく顔の特徴量ベクトルです。同一人物の複数枚を1つのユーザーへ紐づける索引付けに対応しており、正面・横顔・眼鏡ありをまとめると照合が安定します。この点は社内説明で誤解されやすい部分でしょう。
動画分析は非同期ジョブとストリーミングの2方式に分かれている
保存済み動画には、ラベル検出、顔の照合、人物追跡、セグメント検出、テキスト検出、コンテンツモデレーションの各ジョブがあります。結果はタイムスタンプ付きで返るため「何分何秒に何が映っていたか」という形で扱えます。ストリーミング側はKinesis Video Streamsへ流れる映像に人物検知やイベント検出を行う経路で、常時稼働のカメラはこちらです。分課金が連続するため、動体検知で映像が動いた区間だけを流す前段フィルタを併せて設計してください。
boto3での実装手順|最小構成から顔コレクションの運用まで
IAM権限とS3への配置という2つの前提条件を先に固めておく
準備は2つです。実行主体へRekognitionの呼び出し権限を与えることと、解析対象の画像を同一リージョンのS3バケットへ置くことになります。検証段階は管理ポリシーで通し、本番で必要なAPIだけに絞る流れが扱いやすいでしょう。
リージョンの不一致は初回に踏みやすい落とし穴です。S3オブジェクトを指定する形式では、バケットとRekognitionのエンドポイントが同一リージョンにある必要があり、東京で動かすならバケットもap-northeast-1へ置きます。バイト列で直接渡す形式ならこの制約は外れますが、サイズ上限があります。
detect_labelsのレスポンスは信頼度と親子ラベルで読む
最小構成は、boto3でrekognitionクライアントを生成し、Imageパラメータにバケット名とオブジェクトキーを渡してdetect_labelsを呼ぶだけです。MaxLabelsで返却数の上限を、MinConfidenceで足切りの信頼度を指定します。既定のまま呼ぶと信頼度の低いラベルまで大量に返るため、実務では55〜80程度を明示するのが扱いやすいでしょう。
レスポンスのLabels配列には、ラベル名、信頼度、Parentsという親ラベルの配列、Instancesという位置情報が入ります。集計側で「Vehicleとして数えたい」のかを決めてParentsで正規化しておくと、後からラベル体系が増えても壊れません。
顔コレクションはcreate_collectionからの3ステップで組む
顔照合は3段階です。コレクションを作成し、登録したい人物の画像をindex_facesへ渡して顔ベクトルを追加します。ExternalImageIdへ社員番号などの外部キーを入れておくと、後で自社DBと突き合わせやすくなるでしょう。第3段階が照合で、カメラ画像をsearch_users_by_imageへ渡し、返ってきた類似度としきい値を比較して判定します。
登録時の注意は2つ。1枚に複数の顔が写っていると全員分が登録されるため、QualityFilterで低品質な顔を弾き、登録用画像は顔1つに切り出しておくこと。もうひとつは削除経路で、退職や退会時に顔ベクトルを消す処理を最初から作っておくことです。
動画の非同期ジョブはSNS通知とページング処理で結果を受け取る
動画は開始APIを呼んだ時点でジョブIDが返り、処理はバックグラウンドで進みます。完了はSNSトピックへ通知されるので、LambdaやSQSを起動して取得APIを呼ぶ構成が定石です。取得側ではページングを忘れないでください。結果はNextTokenで分割して返るため、一度きりの取得で実装すると短い検証動画では通り、本番の長尺動画で結果が欠けます。
料金の考え方|従量課金の単価と無料枠、費用が伸びる典型的な箇所
単価そのものは安く見えますが、伸び方には型があります。以下は2026年7月時点の米国東部(バージニア北部)の公開単価です。リージョンで単価が異なるため、見積もる際は自分のリージョンの数値へ置き換えてください。
| 対象 | 課金単位 | 単価の目安 | 12か月無料枠 |
|---|---|---|---|
| 画像API(Group 1) | 1枚 | 0.0010 USD(100万枚まで) | 月1,000枚 |
| 画像API(Group 2) | 1枚 | 0.0010 USD(100万枚まで) | 月1,000枚 |
| Image Properties | 1枚 | 0.00075 USD(100万枚まで) | なし |
| 顔メタデータ保存 | 1件・月 | 0.00001 USD | 各1,000件 |
| 保存済み動画(ラベル等) | 1分 | 0.10 USD | 月60分 |
| 保存済み動画(ショット) | 1分 | 0.05 USD | 月60分に含む |
| ストリーミング | 1分 | 0.00817 USD | なし |
| Face Liveness | 1回 | 0.015 USD(50万回まで) | なし |
| Custom Labels | 1時間 | 訓練1 USD・推論4 USD | 訓練2時間・推論1時間 |
画像APIは1枚あたりの単価と階段状の逓減を前提にして見積もる
画像APIは、最初の100万枚が1枚0.0010 USD、次の400万枚が0.0008 USD、次の3,000万枚が0.0006 USD、3,500万枚超で0.0004 USDという階段構造です。Group 1とGroup 2は別々に集計されるため、顔照合と物体検出を併用するなら両方の枚数を分けて数えてください。月10万枚を検出系だけで処理するなら100 USD程度、100万枚なら1,000 USD程度が目安で、この規模を常時流すなら自前モデルとの損益分岐を一度計算しておく価値があります。
動画とFace Livenessは分単位・回数単位で費用が積み上がる
保存済み動画のラベル検出とコンテンツモデレーションは1分0.10 USD、ショット検出は1分0.05 USDです。1時間の動画1本にラベル検出をかけると6 USD、月1,000本なら6,000 USDに達します。ストリーミングビデオイベントは1分0.00817 USDと桁が違いますが、24時間稼働のカメラ1台で月約350 USD、10台なら3,500 USD規模です。
Face Livenessは1回0.015 USDから始まる回数課金で、50万回を超えると0.0125 USD、300万回超で0.010 USDへ下がります。本人確認フローでは再試行の発生率まで含めて回数を見積もってください。
費用が伸びる典型は動画の全フレーム送信と顔ベクトルの放置にある
費用が想定を超える経路は2つに集約されます。ひとつは動画をそのまま動画APIへ投げる設計です。定点カメラで1秒に1枚の静止画を切り出して画像APIへ回せば1時間分は3,600枚=約3.6 USDとなり、動画APIの6 USDより安く必要な粒度も満たせる場合があります。
もうひとつが顔ベクトルの放置です。1件あたり月0.00001 USDは無視できる額に見えますが、退会ユーザー分を数百万件まで積み上げると、金額よりも個人情報を保持し続けている状態が問題になります。他サービスとの横並びは画像解析APIの料金と無料枠の比較にまとめました。
Custom LabelsとFace Livenessという2つの拡張機能
Custom Labelsは独自クラスを少量データで学習させる仕組み
Custom Labelsは、自社のロゴや製品といった標準ラベルに存在しない対象を、数十枚から数百枚の教師データで学習させる機能です。AutoMLの形を取り、ハイパーパラメータ調整やアーキテクチャ選定は不要になります。
料金構造が独特なので注意してください。推論は画像枚数ではなく、モデルを起動している時間に対して1時間4 USDが課金されます。24時間起動すると月約2,900 USDとなり、1日数百枚しか処理しない用途では割に合いません。日次バッチで実行して終わり次第モデルを停止する運用にできるかが採否の分かれ目でしょう。
Face Livenessはなりすまし対策として本人の実在を判定する
Face Livenessは、カメラの前にいるのが実在の人物か、印刷写真・3Dマスク・ディープフェイク映像かを判定する機能です。顔照合だけでは他人の顔写真をかざされたときに通過するため、口座開設や本人確認フローでは照合とライブネス判定を組で入れる設計が前提になります。
実装ではフロントエンド側のAmplify UIコンポーネントを使い、短い自撮り動画をセッション単位で送って結果を受け取ります。制度面の位置づけは生体認証の仕組みと導入判断で扱いました。なお標準のコンテンツモデレーションを自社基準へ寄せるCustom Moderationという拡張もあり、トレーニングは1時間5 USDです。
自前モデル・マルチモーダルLLMとの使い分けと採用判断の条件
ここが判断の中心です。向かない領域では、自前モデルやマルチモーダルLLMへ切り替えたほうが安く速く済みます。
Rekognitionを採用してよい条件は汎用クラスと運用体制
採用が正解になるのは、検出対象が人・車・動物・家具といった汎用クラスに収まり、処理がクラウド上で完結してよく、機械学習の専任者が1名以下で、月間の処理量が数十万枚以下という条件が揃うときです。モデルの訓練・デプロイ・監視という運用を丸ごと省ける効果が単価差を上回ります。本人確認や不適切コンテンツ審査のように、AWS側がモデルを継続更新している領域も相性が良い部類でしょう。
YOLOなど自前モデルへ寄せるべき場面はエッジ実行と細かい粒度
見送るべき場面は明確です。第1に、カメラ側やライン上の端末で推論する必要があり通信を挟めないとき。第2に、検出対象が「自社製品の型番」「キズの等級」のように標準ラベルへ写像できないとき。第3に、月間数百万枚を常時処理して単価が支配的になるときです。
この領域では、YOLOv9による物体検出の実行手順のような自前モデルが現実解になります。ただしアノテーション、学習環境、推論基盤、精度監視という4つの仕事が発生するため、まず標準APIで試作して精度の不足量を数字にしてから移行を決める順序が安全でしょう。画像認識AIモデル構築の支援では、この見極めから実データで検証しています。
マルチモーダルLLMとは検出と説明という役割で分けて併用する
ClaudeやGPT系のマルチモーダルモデルは、画像の内容を文章で説明したり、条件を自然言語で指定して判定させたりできます。「安全上の問題があれば指摘して」といった曖昧な指示を通せる点は、固定ラベルを返すRekognitionには無い性質です。
一方で、座標精度、1枚あたりの単価、レスポンスの安定性ではRekognitionに分があります。一次スクリーニングをRekognitionで行い、引っかかった少数だけをLLMへ回して理由付けを任せる二段構成が、費用と精度の折り合いを付けやすい形でしょう。言語側のAWSサービスはAmazon Comprehendでできることも確認してください。
設計と運用の注意点|しきい値と日本語対応、顔データの取り扱い
信頼度しきい値は業務側の誤りコストから逆算する形で決めていく
APIが返す信頼度は確率ではなくモデル内部のスコアです。「80以上なら正しい」と一律に決めず、業務でどちらの誤りが痛いかから逆算します。不適切投稿の審査は見逃しが致命的なのでしきい値を下げて人手確認を厚くし、自動タグ付けは誤タグが目立つので上げる、という具合に方向が変わります。顔照合では、誤って通すことが事故になる用途ならしきい値を高く取ったうえで二要素目を併用してください。
日本語テキストは検出対象外なのでTextractやOCRへ回す
AWSの公式ドキュメントでは、detect_textが検出対象とする言語として英語・アラビア語・ロシア語・ドイツ語・フランス語・イタリア語・ポルトガル語・スペイン語が挙げられており、日本語は含まれていません。加えて1画像あたり最大100語、水平から±90度以内の向きという制限もあります。ナンバープレートや英字ラベルには使えても、日本語の看板や帳票には向かない機能です。
日本語の文書はAmazon Textractの機能と他OCRとの違いで扱う領域へ回します。1つの画像に対し、物体検出はRekognition、日本語テキストはTextractと役割で分けて並列に呼ぶ構成が素直でしょう。
顔データは個人識別符号として保管期間と削除手順を先に決めておく
顔の特徴量は、日本の個人情報保護法において個人識別符号として扱われます。取得時の利用目的の明示、保管期間、削除要求への対応手順を実装より前に決めておく必要があります。ベクトル削除APIは用意されているので、退会処理と連動させる実装を初期段階で組み込んでください。海外展開では生体データを州法で厳しく定める地域もあります。
よくある質問
検討でよく挙がる質問を、実装判断に関わるものに絞ってまとめました。
Amazon Rekognitionは無料で試せますか?
AWSアカウント作成から12か月間の無料利用枠があり、Group 1とGroup 2の画像APIがそれぞれ月1,000枚、動画分析が月60分、顔メタデータ保存が1,000件まで無料です。Custom Labelsもトレーニング2時間と推論1時間が含まれます。
Rekognitionで日本語の文字を読み取れますか?
読み取れません。公式ドキュメントが挙げるテキスト検出の対応言語は英語・アラビア語・ロシア語・ドイツ語・フランス語・イタリア語・ポルトガル語・スペイン語で、日本語は対象外です。日本語の帳票や看板はAmazon TextractやAI-OCRへ回してください。
Custom Labelsと自前モデルはどちらを選ぶべきですか?
推論の稼働時間で決まります。Custom Labelsは1時間4 USDの時間課金なので、日次バッチのように短時間だけ起動する使い方なら割安です。24時間の常時稼働なら月2,900 USD規模となり、自前モデルと比較する段階に入ります。
顔認証システムをRekognitionだけで作れますか?
照合そのものはindex_facesとsearch_users_by_imageで組めますが、それだけでは写真をかざされたときに通過します。Face Livenessによる実在判定を組み合わせ、解錠や決済では二要素目を併用してください。
処理が遅い場合はどこを見直せばよいですか?
まず画像サイズです。高解像度のまま送っても精度が比例して上がるわけではなく、長辺1,000〜1,500px程度へ縮小すると転送時間が縮みます。次にS3経由かバイト列直渡しかの選択で、S3にある画像は参照渡しのほうが往復が減るでしょう。
関連記事
- 画像解析APIとは?主要4サービスの料金・無料枠を比較して選ぶ:GoogleやAzureを含む横並び比較です。
- 画像認識AIとは?仕組み・できること・開発の進め方をわかりやすく解説:技術としての仕組みと開発の進め方です。
- Amazon Textractとは?機能・料金・使い方と他OCRとの違いを解説:日本語文書の読み取りを担うAWSサービスです。
- Amazon Comprehendとは?読み方・できること・料金と日本語で使える機能:テキスト側の分析を担う並びのサービスです。
- RT-DETRとは?Baidu製リアルタイム物体検出モデルの仕組みとYOLOとの違い:自前モデル側の候補になります。