この記事は、ハンズラボ Advent Calendar 2019 の20日目の記事です
自己紹介
今年の10月に中途で入社いたしました@jxxpsameです。
日々ユニケージという謎テクノロジーに触れております。
こうやってブログのような形式で何かをアウトプットするのは中学生の頃のyahoo!ブログ以来なのでガチガチに緊張してます。
概要
Face++のDetect APIを使って某球団の女装コンテストを採点してみました。
動機
- 所属するチームでpythonを学んでいこうという風潮があり勉強していたから
- 某球団のファンだから
- API使って何かやってみたかった
身内だけでもいいからウケたらいいなという下心
環境
- OS
- MacOS Catalina
- 言語
- Python 3.8
- 使用したAPI
- Face++のDetect API
Face++って何
北京のMegviiが開発している顔認証プラットフォームの名称です。
Face++のDetect APIは顔を認証して様々な属性を取得できます。
今回はその属性の中からBeauty Scoreという属性を利用して採点します。
また、Face++の利用方法は以下の記事を参考にさせていただきました。
Pairsをpythonで分析してみた〜顔写真編〜
写真を送ると顔を検出して、顔面偏差値まで教えてくれるFace++APIのご紹介
採点対象
某球団の女装コンテスト参加者7名
(今村 石川 高橋 山下 戸郷 直江 横川)
画像は以下にアップされているものを利用しました。
Instagram
ソース
import requests
import json
import pprint
# API
# key:人物名 value:画像のURLを辞書型で宣言
url_dict = {'人物名:画像のURL'}
# 対象の人の数ループ
for img_data in url_dict.items():
response = requests.post(
'https://api-us.faceplusplus.com/facepp/v3/detect',
{
'api_key': "[Face++から取得したAPIKey]",
'api_secret': "[Face++から取得したAPISeacret]",
'image_url': img_data[1], # 画像のURL
'return_attributes': 'beauty' # 取得したい属性
}
)
# json整形
json_dict = json.loads(response.text)
print(img_data[0]) # 人物名出力
pprint.pprint(json_dict['faces'][0]['attributes']['beauty'])
結果
各選手の名前にinstagramの投稿ページのリンクを貼りましたので合わせてご覧ください。
今村
{'female_score': 77.524, 'male_score': 78.338}
石川
{'female_score': 88.169, 'male_score': 84.546}
高橋
{'female_score': 79.26, 'male_score': 76.487}
山下
{'female_score': 76.926, 'male_score': 78.077}
戸郷
{'female_score': 82.532, 'male_score': 81.738}
直江
{'female_score': 78.401, 'male_score': 79.444}
横川
{'female_score': 71.818, 'male_score': 69.508}
今回は女装コンテストということでfemele_score
の方を採用いたします。
優勝は石川選手でした!
ちなみに
実際の順位と比べてみると以下のようになりました。
実際の順位 | Face++で出した順位 | |
---|---|---|
石川 | 1位 | 1位 |
今村 | 2位 | 5位 |
高橋 | 3位 | 3位 |
直江 | 4位 | 4位 |
山下 | 5位 | 6位 |
戸郷 | 6位 | 2位 |
横川 | 7位 | 7位 |
戸郷と今村以外はほぼ実際の順位と同じ結果になりました。
Face++恐るべし。
おまけ
他人の顔だけをサンプルデータに使うのは気が引けたので自分(25歳・男性)の顔でもbeauty scoreを測定してみました。
'beauty': {'female_score': 67.239, 'male_score': 62.417},
クッソ低い...
femele_scoreの方が高かったのでもしかしてと思って取得する属性にgender(性別)とついでにage(年齢)を追加してもう一度測定しました。
{'age': {'value': 34}, 'beauty': {'female_score': 67.253, 'male_score': 62.442}, 'gender': {'value': 'Female'}}
ハンズラボの皆様。
34歳・女性となった私をこれからよろしくお願いいたします。
ハンズラボ Advent Calendar 2019 21日目は @jnuank さんです