沿って, smartwatches
21/02/2023
初学者向け「Amazon Rekognition」(AI画像/動画分析サービス)をPythonで利用するには:AWSチートシート
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「Amazon Rekognition」とは
Amazon Rekognition
AWSの「AIサービス」はコンソール画面から利用できますが、開発を念頭に置かなくても、慣れてくれば今回のようにAPIを利用する方がより便利で効率的に感じてくるでしょう。本稿がそのように利用するきっかけになれば幸いです。
利用料金について
本稿では割愛するRekognition VideoとRekognition カスタムラベルも従量課金制で、無料利用枠も設定されています。詳しくは公式サイトでご確認ください。
必要条件
メソッド一覧
メソッド名 | 機能 | 引数 | 戻り値 |
---|---|---|---|
detect_labels | 画像から物体やイベント、テーマなどのラベルを検出する | 画像データ、レスポンスに含めるラベル数の最大値、信頼度の下限 | 辞書 |
detect_faces | 画像から顔を検出する | 画像データ、顔属性要件 | 辞書 |
compare_faces | ソース画像内の最も大きい顔とターゲット画像内の顔を比較する | ソース画像データ、ターゲット画像データ、類似度しきい値、品質フィルター値 | 辞書 |
detect_protective_equipment | 画像から検出された人が着用している個人用防護具(PPE)を検出する | 画像データ、概要属性要件 | 辞書 |
recognize_celebrities | 画像から有名人を検出する | 画像データ | 辞書 |
get_celebrity_info | 有名人情報を取得する | 有名人ID | 辞書 |
detect_moderation_labels | 画像から不適切なコンテンツを検出する | 画像データ、信頼度の下限、HumanLoop構成 | 辞書 |
detect_text | 画像から文字を検出する | 画像データ、フィルター要件 | 辞書 |
create_collection | 特定のリージョンにコレクションを作成する | コレクションに付けるIDとタグ | 辞書 |
list_collections | アカウント内のコレクションID情報を返す | NextToken、レスポンスの最大値 | 辞書 |
describe_collection | 特定のコレクションの情報を返す | コレクションID | 辞書 |
index_faces | 画像から顔を検出して特定のコレクションに追加する | コレクションID、画像データ、外部画像ID、検出属性要件、最大検出数、品質フィルター値 | 辞書 |
list_faces | 特定のコレクションにある顔のメタデータを返す | コレクションID、NextToken、レスポンスの最大値 | 辞書 |
search_faces_by_image | 入力画像内の最も大きい顔と類似する顔をコレクションから検索する | コレクションID、画像データ、検索する顔の数の最大値、信頼度のしきい値、品質フィルター値 | 辞書 |
search_faces | 指定した顔IDと類似する顔をコレクションから検索する | コレクションID、顔ID、検索する顔の数の最大値、信頼度のしきい値 | 辞書 |
delete_faces | 特定のコレクションから顔情報を削除する | コレクションID、フェースID | 辞書 |
delete_collection | 特定のコレクションを削除する | コレクションID | 辞書 |
tag_resource | 特定のリソースにタグを追加する | リソースARN、タグ | 辞書 |
list_tags_for_resource | コレクションとカスタムモデルラベル内のタグリストを返す | リソースARN | 辞書 |
untag_resource | 特定のリソースからタグを削除する | リソースARN、タグのキー | 辞書 |
can_paginate | 各メソッドのページネーション有無を調べる | メソッド名 | 真偽値 |
get_paginator | メソッドに関するページネータを生成する | メソッド名 | ページネータオブジェクト |
generate_presigned_url | 署名済みURLを返す | メソッドとその引数 | 署名済みURL |
# 画像にバウンディングボックスとキャプションを重ねる際に使用する関数def draw_bbox(img_width, img_height, draw, bbox, caption, color):# バウンディングボックスの値を重ねる画像の大きさにスケーリング left = img_width * bbox['Left'] top = img_height * bbox['Top'] width = img_width * bbox['Width'] height = img_height * bbox['Height']# 頂点を設定 points = ((left, top),(left + width, top),(left + width, top + height),(left, top + height),(left, top))# バウンディングボックスを描画 draw.line(points, fill=color, width=3) # キャプションのサイズを取得 text_w, text_h = draw.textsize(caption) # キャプション領域を描画 draw.rectangle((left, top - text_h, left + text_w, top), fill=color) # キャプションを印字 draw.text((left, top - text_h), caption, fill='black')