2022年8月12日金曜日

AWS Rekognition (1) : 簡単なラベル抽出

 AWSのRekognitionを使って画像からラベル抽出までをやってみます。今回は全てAWSの環境の中で完結するようにやっていきます。利用する環境は以下の通りです。

プログラミング言語:Python3

プログラミング実行環境:AWS Sagemaker

画像認識API : AWS Rekognition

画像保管用ストレージ:AWS S3

※今回は授業での利用を考えて、AWS AcademyのLearnerLabの環境で作っていきます

※ Javaで実施する場合は、https://smizunolab.blogspot.com/2019/11/aws-educate-3-rekognition.html

(1) AWS Sagemakerの立ち上げ

Amazon Sagemakerを開き、ノートブックインスタンスを一つ立ち上げます。名前を入力して、デフォルトのままで起動します。IAMロールで新規作成する必要があれば、新規作成して下さい。

作成をしたら、PendingからStartになるまで待ち、Jupyterを立ち上げてます。

(2) credentialファイルの作成 (~/.aws/credentials)
次にRekognitionを使えるように、credentialファイルを作成します。Jupyter右側のNewからTerminalを開きます。
Terminalを開いたら、
$ ls -la
を実施して、「.aws」があるか確認します。Sagemakerでは自動的に作られるようですが、自分で立てた環境などでは自分で「.aws」を作る必要があります。
$ cd .aws
$ vi credentials
credentialsファイルには以下の内容を書き込みます。

[default]
aws_access_key_id=XXXXXXXXXXXXXXXXX
aws_secret_access_key=YYYYYYYYYYYYYYYY
aws_session_token=ZZZZZZZZZZZZZZZZZZZZZZZ

AWS AcademyのLearnerLabの場合は、モジュールから「AWS Details」を押して、「AWS CLI : 」のshowを押すと出てきます。ただしAWS Academyの場合は4時間の期限があります。

この内容をcredentialsファイルに書き込み、保存をします。
(3) S3に対象となる画像を用意する
次に、S3を開き、bucketを作成します。バケット名を決めて、あとはデフォルトの内容で作成します。

作成したバケットに画像を入れておきます。猫の画像を一つ入れておきました。
(4) Rekognition APIを利用
Sagemakerに戻って、Rekognition APIを使って、S3にアップした画像のラベル抽出をしてみます。Jupyterでファイルを作成して名前を付けておきます。今回は「conda_python3」の環境で作りました。
boto3のインストール
Terminalか作成したjupyterファイルで、以下のコマンドを発行します。
pip install boto3
jupyterで実施する場合は、!pip install boto3. 「!」が先頭に必要
Rekognition APIで指定したラベル抽出を行います。
BUCKET : 作成したバケット名
KEY:ラベル抽出したいファイル名(S3にアップしたもの)
REGION : リージョン名「us-east-1」など
は自分の環境に合わせて入力します
これでラベル抽出ができました。猫以外にも画面に入っている物体抽出ができています。

何らかの理由でcredentialsファイルが作成できない場合は、ソースコードに直接書き込む方法もあります。推奨はされないようです。

0 件のコメント:

コメントを投稿