Amazon Rekognitionで画像認識 Python(Boto3)編

Pocket

渡邊です。

前回記事(https://recipe.kc-cloud.jp/archives/10963)ではマネジメントコンソールからRekognitionの画像認識を試してみました。Rekognitionはマネジメントコンソールだけでなく、AWS CLIコマンドから使ったり、AWS SDKでPythonなどのプログラミング言語から呼び出すこともできます。
今回はAWS SDK for Python (Boto3)を使ってEC2インスタンスからRekognitionを試してみます。

IAMロール作成

まず最初に必要なIAM権限を付与します。
Rekognitionを実行するための実行権限と、S3上の画像認識も試すのでS3へのアクセス権限を付与します。
今回はIAMロールを作成してEC2インスタンスに付与するやり方でいきます。

サービスで『IAM』を選択します。

『ロール』を選択します。

『ロールの作成』ボタンを押下します。

ロールを使用するサービスとして『EC2』を選択します。


ユースケースとして『EC2』を選択します。


『AmazonRekognition』で検索し、『AmazonRekognitionFullAccess』のチェックボックスをチェックします。

『AmazonS3』で検索し、『AmazonS3FullAccess』のチェックボックスをチェックして、『次のステップ:確認』ボタンを押下します。


ロール名を入力します。
『信頼されたエンティティ』に『EC2』、
『ポリシー』に『AmazonRekognitionFullAccess』『AmazonS3FullAccess』があることを確認して、
『ロールの作成』ボタンを押下します。

EC2インスタンス作成

EC2インスタンスを作成して、『IAMロール』として、作成したIAMロールを指定します。

Boto3インストール

Boto3をインストールします。

Boto3のインストールを確認します。

Boto3でRekognition

Boto3でRekognitionのラベル検出を試します。
対象は前回も使用した、2016年の伊勢志摩サミットの写真(出典:G7伊勢志摩サミット公式ホームページ)です。

『伊勢志摩サミットの写真』はサーバとS3に事前に格納しておきます。

まずはS3上の画像をRekognitionで認識させてみます。

rekognition_s3.py

『rekognition_s3.py』の第1引数に『S3バケット名』、第2引数に『画像ファイル名』を指定して実行すると、認識結果が返ってきます。JSON形式で返ってきたものを今回は見やすく整形しています。

次にサーバ上にある画像をアップロードしてRekognitionで認識させてみます。

rekognition_ebs.py

『rekognition_ebs.py』の第1引数に『画像ファイル名』を指定して実行すると、認識結果が返ってきます。JSON形式で返ってきたものを今回は見やすく整形しています。

関連リンク

Amazon Rekognition の開始方法 ステップ 4: API の使用開始
https://docs.aws.amazon.com/ja_jp/rekognition/latest/dg/get-started-exercise.html
AWS SDK for Python (Boto3)
https://aws.amazon.com/jp/sdk-for-python/
Amazon Rekognitionで画像ファイルのラベル検出(Python boto3で)
https://qiita.com/oyngtmhr/items/40addedffc9b32f377fa

おわりに

以上、EC2インスタンスからAWS SDK for Python (Boto3)でRekognitionを試してみました。
SDKを使うことで画像認識を簡単なコードで実現でき、アプリケーションへの画像認識機能の組み込みが容易に可能です。是非お試し下さい。

最後までお読み頂きありがとうございました。