芸能人の写真をAPIを使って自動でとってみた。
映画予告サイトをつくる過程で、スタッフの画像を使いたいと思い、
名前をキーに画像を取得するプログラムを書いてみようと思う。
作ったサイト(Youtubeの閲覧数を元にしたサイト)
使用したAPI
定番すぎるだけど芸能人の顔が最も取得できそうなのでここから取得。
- SkyBiometry(画像認識)
google画像だけだと、似顔絵じゃないモノを紛れ込むので画像認識ソフトを使うことにした。
少し前までface.comが使えたみたいだけど、facebookに買収されたみたいなので、他のサービスを使うことにした。
和製のモノもあるみたいだけど、一番精度が高そうなのでここを使うことにした。
無料版だと制限があるのでcronで定期的にデータを取りに行くような仕組みにした。
やり方
1) 画像api から数枚データを取得
芸能人の名前をキーに画像を数枚取得。JSでも取れるみたいだけど、今回はデータベースに格納したいので
json形式で取得して画像パスのみ選抜。
この手はサンプルがゴロゴロ転がっていたので、10分くらいで取得ができた。
2) その中から画像精度がいいモノをピックアップ
取得した画像を画像認識のAPIにかませて、データを取得する。
返ってくる値は、
・顔かどうか(%)
・性別
・笑っているかどうか
・メガネをかけているかどうか
・目が開いているか
etc...
他のサービスでも流用できそう。
無料版だけどあらかじめ精度とか気になる人はこちらから
https://www.skybiometry.com/Demo
3) 指定の画像を選別
json形式でかえってくるので、数枚の中から精度の高い画像を格納するだけ。
これだけ。
4) 保存とチェック
画像認識APIは1日の制限が1000リクエストと決まっているので、
取得したデータのボリュームと相談する必要あり。
あらかじめCronとかをしかけておくとかいいかも。
これでも完全に粗がとれていない可能性があるので、念のため視覚で確認しておく。
--追記(2014.11.11)
無料版だと1時間に100リクエストしかできないのでcron仕掛けるときは要注意
どのくらいリクエストしているかは管理画面から確認できます。
おわり。