AWS rekognitionを使ってみる
最近はTensorflowでサービスを作ってみましたが、今回はAWSのrekognitionを試してみました。
Tensorflowの記事はこちら。
【まとめ】機械学習初心者がTensorflowでネコの画像認識をつくってみたらどうなったか
はじめに
前提事項です。
こんな状態から使ってみました。
- AWSはEC2を少しさわったことがある程度
- S3は使ったことない
- rekognitionもない
試すこと
普通に画像判定してもおもしろくないので、今回はこの牛に擬態した人間が見破られるかどうかを試してみます!
フリー画像よりもってきました。
顔は完全に牛ですが体は人間です。
見破られる可能性は50%くらいでしょうか。
まずはIAMの設定
まずはIAMの設定です。
「アクセス権限の追加」で「AmazonRekognitionReadOnlyAccess」を追加します。
こんな感じで追加されればOK。
S3に画像をアップロードする
次に画像をS3にアップロードします。
S3でBucketを作成して、ファイルをドラッグ&ドロップでアップしました。
S3の作成方法はGUIからなんとなくできたので割愛します。
ここでフリー画像の牛人間ちゃんをアップします。
アップした後、オブジェクトの読み取り権限がついていない場合は付与する必要があります。
これがないと後のCLI実行でエラーになってしまいます。
S3へのアクセス確認
次にコマンドラインからBucketへのアクセス確認をしておきます。
$ aws s3 ls s3://{bucketname}/
2018-10-06 16:05:17 11458119 cow.jpg
Bucket名を指定するとアップした画像ファイル名が表示されます。
OKですね。
AWS CLIの設定
いよいよrekognitionの実行!の前に、AWS ALIの設定をしていない場合はまず設定しておきましょう。
aws configure と入力することで対話形式で設定できます。
$ aws configure
AWS Access Key ID: {アクセスキーID}
AWS Secret Access Key: {シークレットキー}
Default region name: ap-northeast-1
Default output format [None]: json
アクセスキー、シークレットキーを入力します。
Default region, formatも設定しておきます。
rekognition実行!
いよいよrekognitionで確認です。
以下のコマンドで牛人間ちゃんを指定して実行すると・・・
$ aws rekognition detect-labels --image "S3Object={Bucket=rekognitions3ap,Name=cow.jpg}" --region ap-northeast-1
{
"Labels": [
{
"Confidence": 99.1922378540039,
"Name": "Human"
},
{
"Confidence": 99.19222259521484,
"Name": "People"
},
{
"Confidence": 99.1922378540039,
"Name": "Person"
},
{
"Confidence": 77.85262298583984,
"Name": "Kiss"
},
{
"Confidence": 77.85262298583984,
"Name": "Kissing"
},
{
"Confidence": 50.69141387939453,
"Name": "Face"
},
{
"Confidence": 50.69141387939453,
"Name": "Portrait"
}
],
"OrientationCorrection": "ROTATE_0"
}
結果が出力されました!
Human,People,Person
それぞれConfidenceが99を超えていますね!
残念ながら牛に擬態した人間も、人間であることは見破られてしまったようです。
おそるべしrekognition!
まとめ
AWS rekognitionは牛に偽装した人間でも容易に見破ることができる。