見出し画像

【AI自由研究】画像中の人に対して性別・年齢を推定してみた。

8月が終わっちゃいましたね。
今年も暑い日々が続き、私の家のエアコンはずっと働き続けました。
涼しい気候になれば、掃除をして労わってあげたいです。

今回の投稿は「夏」ということで、私の夏休みの自由研究について紹介します!ぜひ、最後までお付き合いください。
(noteのハートマークをクリックしてもらえると嬉しいです!)

はじめに

2度目の登場!
データビジネス推進部の柴田です。(部署名が変わりました)
前回の記事はこちらです。

筆者は16歳のようです(あくまで推定年齢であり、実年齢は非公表です)

今回の投稿内容はタイトルにある通り「性別・年齢推定」です。

みなさんも、スマートフォンアプリなどで性別・年齢推定をしてみたことがあるのではないでしょうか。今回はそのような性別・年齢推定は、どういった処理が内部で行われているのか知りたいと思い、実際に動かしてみました。

※実装については、以下のウェブページを参考にしました。

Age and Gender Estimation
https://github.com/yu4u/age-gender-estimation
顔検出 + 年齢・性別予測
https://qiita.com/oHjm/items/677b57d4714de3cf83ca

性別・年齢推定の概要

今回の性別・年齢推定では、画像中に映っている人物の顔に対して性別と年齢を推定していきます。大まかには、2つのステップが存在します。

  1.  顔を検出する

  2.  検出した顔に対して、性別・年齢推定を行う

1. 顔を検出する

画像に映っている顔から年齢推定を行うために、まずは顔検出を行う必要があります。
今回、顔検出を実現するにあたって、MTCNN[1]という手法を用いました。

MTCNNは3段階のネットワーク(P-Net、R-Net、O-Net)から構成されており、段階的に顔を捉えていきます。
イメージとしては、以下の通りです。

MTCNNの概略図

※詳細については後述の 参考文献[1] をご参照ください。


2. 検出した顔に対して、性別・年齢推定を行う

性別および年齢の推定には、こちらのページで公開されているモデルを使用しました。

本モデルは、IMDB-WIKIデータセット を用いて構築されています。
そして、このデータセットは50万枚もの顔画像が含まれているとのことです。

年齢推定の部分は、0歳~100歳の101クラスの確率値が出力され、各年齢クラスと確率値の積を算出し、それらの和を年齢推定結果とします。

具体的には、以下のイメージです。
各年齢クラスとその確率の積を求め、その和から20歳と予測している様子を表しています。

年齢推定の具体例

※詳細については後述の 参考文献[2] をご参照ください。

それでは、実際に性別・年齢を推定してみます!!


性別・年齢を推定してみた!

年齢推定実験は「ぱくたそ」に登録されている画像を使用しました。

各条件の画像例


まずは、正しく推定できたと思われる例です。

正しく推定できたと思われる例

顔検出、性別推定が正しく推定できていることがわかります。
年齢推定については、撮影時のモデルの方の年齢にもよると思いますが、いかがでしょうか。

次に、正しく推定できなかった例を紹介します。

正しく顔検出ができなかった例

モデルの目や持っているスマートフォンを顔として誤検出した場合がありました。また、顔を横から撮影した画像では顔検出ができなかった場合が多く見受けられました。

近年では、マスクをしている状態でも推定したい場合があります。

マスクあり画像に対して正しく推定できたと思われる例とできなかった例

左側2枚はマスクをしている状態でも正しく推定できている様子ですが、右側の画像のように、マスクをした状態では顔検出が難しい様子が見受けられます。

性別を正しく推定できなかった例

性別推定については、男性を女性と判定する例が見られました。左側の画像は帽子も性別推定を難しくする原因になったのでしょうか。

※本記事で使用している画像は、ぱくたそ様よりダウンロードしたものを使用しております。

まとめ

今回、実際に性別・年齢推定を行ってみた感想は以下の通りです。

 ・ 正面から撮影し、顔全体がはっきり映った画像に対しては高い精度で推定できているように見える。
横から撮影した場合やマスクをした場合は、顔検出が難しい
・  帽子やマスクを装着した場合は、性別推定が難しいことが考えられる。

顔検出の精度をさらに上げるためには、横から撮影した画像やマスクをした状態の画像を学習させることが必要と思われます。また、性別・年齢推定では、顔だけでなく服装やアクセサリーも考慮させることができれば良いかもしれません。

また秋にお会いしましょう

甲子園で行われている高校野球全国大会も終わり、夏休みも終わり、もうすぐ秋ですね。
私は2022年春、夏と1シーズンに1回ペースで発信していますが、また秋にも発信できるようにネタ探しをしなくては…

参考文献

[1] Zhang, K., Zhang, Z., Li, Z., & Qiao, Y. Joint face detection and alignment using multitask
cascaded convolutional networks. IEEE Signal Processing Letters, Vol. 23, No. 10, pp. 1499-1503 (2016).
[2] Rothe, R., Timofte, R. & Van Gool, L. Deep Expectation of Real and Apparent Age from a Single Image Without Facial Landmarks. International Journal of Computer Vision, Vol. 126, No. 2-4, pp. 144-157 (2018).

この記事が参加している募集