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
BUCKET : 作成したバケット名
KEY:ラベル抽出したいファイル名(S3にアップしたもの)
REGION : リージョン名「us-east-1」など
は自分の環境に合わせて入力します
これでラベル抽出ができました。猫以外にも画面に入っている物体抽出ができています。何らかの理由でcredentialsファイルが作成できない場合は、ソースコードに直接書き込む方法もあります。推奨はされないようです。
0 件のコメント:
コメントを投稿