Help us understand the problem. What is going on with this article?

AWSのRekognitionを利用してSNOWの盛り度を調べてみた

More than 1 year has passed since last update.

AWSのRekognitionを利用してみました。
ざっくりいうと、画像に対し、
1. 顔認識
2. 物体認識
3. 2つの画像の類似度
4. 顔認識で感情等の認識
などができるAPIです。

ただ、それを利用するのも面白みに欠けるので、
SNOWがどれだけ盛っているかを調べてみました。

準備

まずは、AWSのアカウントでテスト用のIAMを作成します。
検証はしていませんが、
- Rekognitionのフルアクセス
- S3のフルアクセス
があれば問題ないかと思います。

APIの利用

sample.rb
# rekognition用のkey, secret
rekognition = Aws::Rekognition::Client.new(
  region: 'us-east-1',
  access_key_id: KEY_ID,
  secret_access_key: SECRET
)

上記コードでアクセスできます。
リージョンは東京では出来ないので要注意。

sample.rb
KEY_ID = ""
SECRET = ""

実際のコードとは違いますが、どこかで上記を定義します。

使った画像

適当にSNOWで2つ撮影しました。

SNOWバージョン

IMG_0929.JPG

no SNOWバージョン

IMG_0930.JPG

この2つの類似度を検出して、SNOWはどれくらい盛っているか調べていきます。

類似度の検出方法

類似度を検出するには次のコードを追記します。

sample.rb
resp = rekognition.compare_faces({
  source_image: { # required
    s3_object: {
      bucket: BUCKET,
      name: "ファイル名",
      version: "適当なversionID",
    },  
  },  
  target_image: { # required
    s3_object: {
      bucket: BUCKET,
      name: "ファイル名",
      version: "適当なversionID",
    },  
  },  
  similarity_threshold: 1.0,
})

p "類似度 : #{resp.face_matches[0].similarity}%"

これは参考に、
AWS-SDK Rubyのドキュメント
を見てみました。
上記ドキュメントでは、

sample.rb
resp = client.compare_faces({
  source_image: { # required
    bytes: "data",
    s3_object: {
      bucket: "S3Bucket",
      name: "S3ObjectName",
      version: "S3ObjectVersion",
    },
  },

となっており、

sample.rb
    bytes: "data",

JSONの中にこんなコードがありますが、これを追加したままだと、

Cannot provide both S3 Location and Image Bytes.

というエラーが出てきたので消しました。

結果

気になる結果は、

"類似度 : 78.0%"

となりました。

まとめると
「『AWS Rekognition』で『SNOWの盛り度』を調べると、『128%増しになる』」
これはトリビアの種でいうと5分咲きくらいにはなりそうですかね。なりませんかね。

補足

今回勝手に
盛り度 = 100%/類似度
と定義しましたが、
Rekognitionで出せるのはあくまで類似度のみなのでその点ご注意を。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away