AttractiveとUnattractiveな顔画像をOpenCVからの特徴量をSVMに入れてみた

2016年秋ごろにSVM(サポートベクターマシン:教師あり学習)を用いて、processingで行う課題があり、興味本位で実装してみました。

実験方法

  • bing APIを用いて「AttractiveとUnattractiveな女性の顔写真」を1000枚ちょいずつの写真を収集

Attractive
gyazo.com
Unattractive
gyazo.com

  • Opencvを用いて写真の特徴量を計算する

今回使った特徴量は
- 両目それぞれの大きさ
- 口の大きさ
- 鼻の大きさ
- 両目の距離
- 鼻に対する両目それぞれの距離
- 鼻に対する口の距離
- 口と両目それぞれの距離
の全10個の値を顔の大きさに対する割合で算出しました。
参考にしたサイト:Processing for openCVで顔検出をしてみた - Horio.com

元画像は画像検索なので関係ない写真も含まれているため、OpenCVが認識した500枚の画像をそれぞれ用いました。
認識したが余った画像は学習がどれぐらい精密にできたかをテストするためのテストデータとしました。

結果

70.3%ほどの精度になりました。
結果の一例
Attractive
gyazo.com
Unattractive
gyazo.com

考察

意外とデータがしっかりすれば使えるかもしれない。ただし、「盛ってる」ときの写真に写る角度がやたら上だったりするせいで違いがでてるかも。撮影角度が安定した写真じゃないとわからない。

今後の展望

ただ、これ以上解析をすると周りからの視線が恐ろしく、怖いのでやめます。素材を集めるのも大変なので。興味のある方、ぜひどうぞ。そして、教えてください。