2019年11月29日金曜日

AWS Educate (3) : Rekognitionを利用する

AWSのRekognitionの機能を利用してみます。
(1) JavaとEclipseの環境を整える
Javaのインストール
https://www.oracle.com/technetwork/jp/java/javase/downloads/index.html
ライセンスが変わったので注意
Javaを選択してインストール

必要に応じて、JavaのPathを環境変数に設定しておきます。

Eclipseをインストール
https://www.eclipse.org/downloads/
Eclipseで簡単なJavaプログラムが実行できればOKです。

(2) EclipseにAWS Toolkit for Eclipseの設定
AWS Toolkit for Eclipseを入れます。
ツールには [Eclipse 4.4 (Luna)] 以上が必要です


1.[ヘルプ] > [新しいソフトウェアをインストール] を開きます(Install New Software


)。


2.ダイアログの上の [機能するソフトウェア] というラベルの付いたテキストボックスに https://aws.amazon.com/eclipse と入力します。

3.以下のリストから必要な「AWS コア管理ツール」およびその他のオプション項目を選択します。
インストールが終わると再起動がかかり、Access Key IDSecret Access Keyの入力が必要です。



Access Key IDSecret Key IDはクラスに入った時の画面、
Account Detailsをクリックすると

AWS CLIを開きます。
設定ができると、次の画面がみられます(見られない時もあります)。

AWSの設定を確認する場合

AWS Toolkit for Eclipse -> Preferences

[重要かも]
AWSの設定画面に書いてもエラーが出てしまったので、直接書き込んだら大丈夫でした。
C:¥Users¥ユーザ名¥.aws¥credentials

notepadで開いて直接書き込みます。


(3) AWS SDK for Javaの設定

からJavarekognitionSDKをダウンロードします。

Sdkを展開します。(時間がかかるかもしれません)
展開したSDKから
Lib -> aws-java-sdk-1.11.671.jar

Third-party -> lib の中のjarファイルをビルドパスに登録するために使用します。


(4) Rekognition用の画像をS3に用意

解析用画像をS3に用意します。RekognitionではS3にある画像、動画を分析するようです。
AWS Consoleをクリックします。

S3を選択します。
バケットを作成します。

バケット名を決めて、場所はバージニアのままとします。
バケット名:rekog001


今回は練習ですので、パブリックアクセスを可能にするために、チェックを外しておきます。

作成したS3バケットにアクセスします。
ここに、写真をアップロードします。
今回は

を利用しました。

アップロードしたファイルのファイル名をrekog001.jpgとしました。

(5) プログラムの作成
プログラムは
を参考にします。
P126DetectFacesを利用します。

Rekognition用プロジェクトを作成します。New -> Java Project
Moduleは作成しません。
プロジェクト名:Rekog01
パッケージ名:recog01
クラス名:Rekog01
プロジェクト名を右クリックしてBuild path -> Add external achieves から
Lib -> aws-java-sdk-1.11.671.jar
Third-party -> lib の中のjarファイル

を追加します。

[ソースコードの変更点(重要)]
今回の環境(AWS Educate)ではregionを指定しないとできない?かもしれません。ソースコードを変更します。
(変更前)
AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.defaultClient();
(変更後)
AmazonRekognition rekognitionClient = AmazonRekognitionClientBuilder.standard()
  .withRegion("us-east-1")
    .build();


変更後のソースコードが下記です。
[ソースコード]
https://gist.github.com/smzn/929f496cb62f0ddcb1ffb9c1bf9ba9d2

実行してみると、次のように分析できます。