SkyFoxで気軽に機械学習

機械学習自動化ツール「SkyFox」の紹介ブログ

SkyFoxの画像変換機能「顔写真の特徴推定」

こんにちは、セカンドサイト株式会社の益永です。

今回はSkyFoxの画像変換機能の一つである「顔写真の特徴推定」をご紹介します。

こちらの機能はディープラーニング技術を活用し、顔写真から、年齢や性別、ひげの有無や推定される感情など、15個の項目を推定し、数値化するものです。

このような非構造化データを活用することで、今まで見えていなかった何かが見えるかもしれませんよ!

 

 

目次

 

顔画像変換の手順

まずは例としてこちらの特徴が出やすそうな2枚の写真を数値化してみましょう。

f:id:secondxight:20190731170717j:plain
f:id:secondxight:20190731170753j:plain
フリー素材ぱくたそ(www.pakutaso.com)photo by すしぱく model by ナリシゲ(左)yumiko(右)

画像ファイルの準備

画像のファイル形式はjpgとpngに対応しています。

変換処理したい写真をひとつのzipファイルに格納します。

 

SkyFoxでの操作手順

ツール→データ変換→ 変換方法の選択→顔写真の特徴推定と進みます。

f:id:secondxight:20190731172803p:plain
f:id:secondxight:20190731173235p:plain

 


次に変換するzipファイルを指定し、「データを変換」をクリックします。

※サーバー上にデータを保存しない/したくない場合は、変換データの削除のところで”削除する”を選択するとデータ変換後に元データがサーバー上から削除されます。

 

f:id:secondxight:20190731174210p:plain



変換処理が終わると変換結果が表示されます。

「結果をダウンロード」をクリックするとcsvファイルがダウンロードされます。

f:id:secondxight:20190731174414p:plain

 

 

画像の変換結果

idにはファイル名が格納され、id以外に15個の項目が推定されていることがわかると思います。 

f:id:secondxight:20190731172234j:plain

 

higeより下の項目については数値が高いと赤く、低いと青く色づけしています。

写真と見比べてみると、なんとなく正しく表現しているように見えませんか?

 

それではこれらの15個の項目についてもう少し細かく説明していきます。

 

特徴量化した15項目

image_brightness(画像の明るさ)

明るいほど高く、暗いほど低くなります。

こちらの写真はimage_brightnessが低い例です。(image_brightness=21.3493)

f:id:secondxight:20190731193011p:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by つるたま model by 段田隼人

 

こちらの写真はimage_brightnessが高い例です。(image_brightness=97.0563)

f:id:secondxight:20190731203052j:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by 河村友歌

image_sharpness(画像のシャープネス)

輪郭がクッキリしているほど高く、ボケているほど低くなります。

こちらの写真はimage_sharpnessが低い例です。(image_sharpness=46.0298)

f:id:secondxight:20190731181042j:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by 茜さや

 

こちらの写真はimage_sharpnessが高い例です。(image_sharpness=95.5162) 

f:id:secondxight:20190731202718j:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by つるたま model by ゆうせい



 

age_range(年齢)

推定年齢がレンジでアウトプットされます。

こちらの写真はage_rangeの例です。(左=1-5、中=15-25、右=60-90)

写真のモデルさんの実年齢はわかりませんが、なんとなく当たってそうですよね。

f:id:secondxight:20190731211447j:plain
f:id:secondxight:20190731211500j:plain
f:id:secondxight:20190731211520j:plain
フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by めぐな(左)|河村友歌(中)|まーちゃん(右)

実年齢がわかっているのであれば、レンジの中かもしくは下か上かといった変数を生成しても面白いかもしれませんね。

 

 

gender(性別)

Male(男性)かFemale(女性)かの2値でアウトプットされます。

何枚かいろんな写真で試しましたが人が見て男女どちらか迷わないような写真の場合の正解率は100%です。

某女性のみの劇団の男役の方もちゃんと女性と判断されますし、実際は男なのに女性にしか見えないような芸能人の方もちゃんと?女性と判断されます。

実際の性別と合致しているか否かといった変数を生成すると役に立つ場面もあるかもしれませんね。

 

 

hige(ヒゲの有無)

0から100の値で表現され、ヒゲがあると判断されるほど高くなります。

glasses(眼鏡の有無)

0から100の値で表現され、眼鏡をかけていると判断されるほど高くなります。

こちらの写真は上記2つが高い例です。(hige=97.7576、glasses=99.7305)

f:id:secondxight:20190731184909j:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by ナリシゲ

 

 

mouth_open(口を開けているか否か)

0から100の値で表現され、口が開いているほど高くなります。

smile(笑顔の度合い)

0から100の値で表現され、笑顔であるほど高くなります。

happy(幸福度合い)

0から100の値で表現され、幸せそうであるほど高くなります。

こちらの写真は上記の3つが高い例です。(month_open=99.9997、smile=99.9999、happy=99.7107)

f:id:secondxight:20190731185513j:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by yumiko


 

sad(悲しさ度合い)

0から100の値で表現され、悲しい表情であるほど高くなります。

こちらの写真はsadが高い例です。(sad=85.6197)

f:id:secondxight:20190731183942j:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by to-ko

 

 

angry(怒り度合い)

0から100の値で表現され、悲しい表情であるほど高くなります。

こちらの写真はangryが高い例です。(angry=50.1152)

f:id:secondxight:20190731195441p:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by サンライズ鈴木

 

confused(困惑度合い)

0から100の値で表現され、悲しい表情であるほど高くなります。

こちらの写真はconfusedが高い例です。(confused=84.179)

f:id:secondxight:20190731191513p:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by 大川竜弥

 

 

disgusted(うんざり度合い)

0から100の値で表現され、悲しい表情であるほど高くなります。

こちらの写真はsadが高い例です。(disgusted=65.9767)

f:id:secondxight:20190731190849p:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by 大川竜弥

 

 

surprised(驚き度合い)

0から100の値で表現され、驚いている表情であるほど高くなります。

こちらの写真はsurprisedが高い例です。(surprised=63.5543)

f:id:secondxight:20190731200137p:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by ヒロタ ケンジ model by 藤沢篤

 

 

calm(落ち着き度合い)

0から100の値で表現され、落ち着いている表情であるほど高くなります。

こちらの写真はcalmが高い例です。(calm=96.7495)

f:id:secondxight:20190731201747j:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by 河村友歌

 

 

特徴量を推定しにくい/できない事例

以下のような場合、上手く顔を検出できなかったり、検出できたとしても特徴量を推定できなかったりしますのでご注意ください。

 

横向き

横向きの画像であっても数値化はしてくれます。ただ所々精度が落ちるケースがあるようです。例えばこちらの写真では明らかに眼鏡をかけていますが、(glasses=20.5619)と低い値となっています。なのでできるだけ正面からの写真である方が望ましいです。

f:id:secondxight:20190731205306j:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by すしぱく model by サンライズ鈴木

 

 

二人以上写っている

この場合一人しか検出できません。向かって左側に写っている人物を優先する傾向がありますのでご注意ください。

f:id:secondxight:20190731204205j:plain

フリー素材ぱくたそ(www.pakutaso.com) photo by ぱくたそ運営事務局 model by 大川竜弥|ヒロ

 

 

もはや誰も写ってない

人間が写っていない場合は、「Can't detect face」としてエラーが返されます。

f:id:secondxight:20190731210648j:plain
f:id:secondxight:20190731210637j:plain
フリー素材ぱくたそ(www.pakutaso.com) photo by Redsugar(左)とむ(右)

 

 

まとめ

いかがだったでしょうか?

SkyFoxがあれば顔写真をサクッと数値化できてしまいますので、試してみてはいかがでしょうか?きっと何か面白い発見ができると思いますよ。

 

 

※トライアル版のSkyFoxはこちらのリンク( https://trial.skyfox.ai/signup )からご利用頂けます。どなた様もメールアドレスとパスワードを入力頂くだけで無期限・無料でご利用頂けますので是非試してみてください。宜しくお願い致します。