LoginSignup
84
84

More than 5 years have passed since last update.

画像認識のWebサービスAPI「ReKognition」を使ってみた

Posted at

個人的に画像認識に少し興味があったのと、GoogleGlassのSDKまで出していて注目を少し浴びていたのでReKognitionを使ってみた。

普段rubyで書いているので、実際にrailsのアプリに組み込んでいきます。

①まずはサービスに登録します。

②gemをインストールします。

gem 'rekognize'

③実際に使ってみます。

require 'rekognize'

client = Rekognize::Client::Base.new(api_key: '会員登録後に得たapi keyを入力', api_secret: '会員登録後に得たapi_secretを入力')
client.face_detect(urls: "画像のURL", jobs: '※1')

このように簡単に使う事が可能です。
上記では顔認識なのですが、このサービスは大きく分けて3つ。

・顔認識
→年齢/性別/表情/人種/....

・場所認識
→海/山/レストラン...

・場面認識
→セミナー/クリニック/研究... (※最近でたやつみたいです)

④顔認識を深く掘ってみます。

docsを見てもらえれば一発なのですが、一応使ってみたものだけ簡単にここにまとめておきます。
https://rekognition.com/developer/face

・jobs

名前 説明
gender 性別  0.84(1:男性⇔0:女性)
emotion 感情 {happy: 0.93, sad: 0.2}(1が最大値)
race 人種 {asian: 0.99, white: 0.12}
age 年齢 23.4(少数点第一位までで記載)
glass 眼鏡の有無 0.22(最大値1)
mouth_open_wide 口の開き具合 0.24(最大値1)
beauty 美しさ(?) 0.79(最大値1)

ちなみに鼻の位置や目の位置なんかも当たり前ですが、取る事は可能です。

⑤このサービスに画像を登録してみる

僕がこの「ReKognition」で面白いな〜と思ったのは、表情を認識する事もそうなんですが、顔検索ができるという所。

例えば自分のFBの友達のプロフィール画像をこのサービスに保存し、
(ちなみにFace Crawlというapiのメソッドを使えば、友達の画像とか全て取ってきてくれます。もちろんFBのid、access_tokenが必要です)何かの画像から、そのDBに登録した中でどれが一番近いか?というのを出してくれます。

GUIでも提供してくれているので、こちらをどうぞ。
https://rekognition.com/user/panel

ますが画像を追加していきます。

client.face_detect(urls: "画像URL", jobs: 'face_add')

これを実行すれば、ReKognitionに画像を保存してくれます。
※まだapiを通してtagを登録するやり方は分かっておりません...orz

いくつか登録したら、いよいよメインの検索をしてみましょう。

client.face_detect(urls: "画像URL", jobs: 'face_search') 
=> {"url"=>"画像URL",
 "face_detection"=>
  [{"boundingbox"=>
     {"tl"=>{"x"=>94.62, "y"=>56.15},
      "size"=>{"width"=>97.69, "height"=>97.69}},
    "confidence"=>1,
    "matches"=>
     [{"tag"=>"hogekawa", "img_index"=>"1010634", "score"=>"1.00"},
      {"tag"=>"hogekawa", "img_index"=>"1471688", "score"=>"0.91"},
      {"tag"=>"hogekawa", "img_index"=>"1065556", "score"=>"0.80"}],
    "pose"=>{"roll"=>5.73, "yaw"=>-3.64, "pitch"=>1.85}}],
 "ori_img_size"=>{"width"=>300, "height"=>300},
 "usage"=>{"quota"=>3262, "status"=>"Succeed.", "api_id"=>"CiQabQj3a9F1Sp0H"}}

若干伏せさせていただいてますが、このように何とmatchしたか?というデータを取り出す事ができます。
今回はtagに名前を入れてますが、少しidを変形させた文字列等にしておけば、どのuserと合致したか?なんてのも使えそう。

ざっくりでしたが、個人的には
・顔認証に使えそう
・好みの顔の人をレコメンドするような出会い系が作れそう

84
84
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
84
84