こんにちは、高石です。
来月20日(5月20日)はエンたまもくもく会#5です。
毎度参加者も増えてきて、楽しみも増してきます!
まだ、枠がありますので、エントリーがまだの方はエントリーしてみてくださいね。初めての方も大歓迎!!!
エントリーはこちら
前回の様子はこちらでレポートしてくれているので雰囲気がわかると思います!
さて、今回の記事では、以前のもくもく会で、私がもくもくと試したAmazon Rekognitionの利用例についてご紹介します。
まず、Amazon Rekognitionを知らない方のために 公式サイトの言葉を借りて説明すると、
Amazon Rekognition は、画像の分析をアプリケーションに簡単に追加できるようにするサービスです。 Rekognition では、画像内の物体、シーン、顔の検出、顔の検索と比較、および不適切なコンテンツの識別ができます。 Rekognition の API を使えば、深層学習に基づく高度な視覚検索やイメージ分析をアプリケーションにすばやく組み込むことができます。
https://aws.amazon.com/jp/rekognition/から引用
簡単言うと人工知能で画像の内容は判別してくれるサービスです。
画像解析がこんなに簡単にできるなんて、いい時代に生まれたとつくづく思います。
そんな便利なAmazon Rekognitionを使った利用例を紹介します。
利用例といいつつ紹介するのはこちらのサイトの内容そのままなのでオリジナリティはほぼゼロです。
https://aws.amazon.com/jp/blogs/startups/using-amazon-rekognition-to-enhance-macos-finder-tags/
あるフォルダに画像が置かれると、Amazon Rekoginitionを使って画像の内容を解析し、Finderのtagを自動でつけてくれるという内容です。
これで画像の検索も簡単にできるようになります!便利です!自動化が好きな私としては最高です!
(tag付けまでは少し(5-6秒)時間がかかります。)
流れは
- フォルダにファイルが置かれるとフォルダアクションでシェル起動
- PythonにてAmazon Rekognition APIを呼び出し、結果をplistにformatしてxattrでtagにセット
という感じです。
手順
Pyhonの実行環境やAWS CLIは入っている前提です。
入ってない人は調べて入れてください。
次にローカルにプロファイルの設定。
Amazon Rekognitionは東京リージョンに無いので、米国東部(バージニア北部)(us-east-1)で専用のprofileを作っています。
$ aws configure --profile rekognition AWS Access Key ID [AKIA************hoge]:AKIA************hoge AWS Secret Access Key [****************hOgE]:****************hOgE Default region name [ap-northeast-1]:us-east-1 Default output format [None]:json
次はPythonやシェルのスクリプトファイルを落としてきます。
スクリプトはこちら。
https://github.com/mkosut/rekognition_osx_tagfile
さらに、Automatorでフォルダアクションを登録します。
cloneしたファイルの中にのrekognition_tagPhotos.workflow.zipを解凍しできた、rekognition_tagPhotos.workflowをAutomatorで開きます。
シェルはprofileさえ合っていればそのままでも動きますが、今回はこんな感じに書き換えました。
export AWS_DEFAULT_PROFILE=rekognition LOG_FILE="/var/log/aws/aws_rekognition.log" for f in "$@" do echo "/usr/local/bin/python3 (git cloneしたフォルダ)/rekognition_osx_tagfile/rek_osx_tag.py -f $f" >> ${LOG_FILE} /usr/local/bin/python3 (git cloneしたフォルダ)/rekognition_osx_tagfile/rek_osx_tag.py -f "$f" >> ${LOG_FILE} 2>&1 done
Automatorの「”フォルダアクション”は、次の場所に追加されたファイルやフォルダを受け取る:」では、今回タグ付け対象にするフォルダを指定し、保存します。
再度、rekognition_tagPhotos.workflowを開き、インストール。
インストール後は、
「/Users/(username)/Library/Workflows/Applications/Folder Actions」
に
「rekognition_tagPhotos.workflow」
が保存されます。
これで準備完了です。
実行
あとはタグ付け対象にしたフォルダに画像ファイルをドラッグ&ドロップするだけです。
ドラッグするとこん感じでタグ付けされます。
ネコちゃんに自動タグ付けされた内容はこんな感じ。Adorable(愛らしい),Animal(動物),Cat(ねこ),Mammal(哺乳類),Pet(ペット)。まあ大体あってますね。
複数のファイルを同時にドラッグ&ドロップしても大丈夫。
ちょっと時間はかかりますが、こんな感じで全部タグづけされます。
ああ、楽しい。自動化最高です。