NextremerのAdventカレンダー19日目の記事です。
結論を言うと、年齢判定もFace APIが最も良かったです。
※あくまで今回取得した画像に対してです。ご承知おきください。
お詫び
Nextremer Advent Calendar 2016で書いた年齢・性別判定APIを比較しました(その1)の続きです。
1年越しの記事であり、現時点で各APIがバージョンアップされ使用可能なパラメータや精度が異なる恐れがあります。Instagramの画像やご本人の年齢も異なっており、本記事の内容は真に受けないでください。また、PUX Developers Siteは2017/12/28をもってサービス終了とのことです。残念です。
前回のおさらい
前回はInstagramの816枚の画像を用いて、下記4つのAPIによる性別判定を行い精度を比較しました。
- Microsoft社: Face API
- IBM社: Visual Recognition
- PUX社: 顔検出(評価版)
- その他:フリーの年齢・性別モデル
Instagram画像は下記サイトを参考に性別と生年月日が分かる有名人の画像を用いました。
結果、性別判定はFace APIが使い易いとお伝えしました。
今回は、これらAPIについて年齢判定の精度を比較した記事となります。
スクリプトの準備
各APIを使うPythonスクリプトを準備しました。
詳しくは前回をご覧ください。
データの準備
Instagramから検証用の画像を準備しました。
性別等の内訳は前回をご覧ください。
データ内訳
実年齢
今回は21歳以上の画像を集めたため、20歳以下は存在しません。
検証方法
検証した年齢判定APIは、実数か区間を返す2種類のAPIに分かれます。
1)実数の推定
-
被写体が何歳なのか、値を1つ返すAPIです。
-
FaceAPI:小数第1位まで
- 内訳:19.3、25.2、40.4、45.5、、、、
-
PUX顔検出(評価版):整数(5つ刻み)
- 内訳:8、13、18、23、、、、
-
推定値と真値の差から精度を検証しました。
2)区間の推定
-
被写体が何歳なのか、属する区間(最小値と最大値)を1つ返すAPIです。
-
Visual Recognition:7区間から1つ
- 内訳:〜17、18〜24、25〜34、35〜44、45〜54、55〜64、65〜
-
フリーの年齢・性別モデル:8区間から1つ
- 内訳:0〜2、4〜6、8〜12、15〜20、25〜32、38〜43、48〜53、60〜100
-
推定区間(最小値と最大値)と真値の差から精度を検証しました。
実験結果(年齢判定)
1)実数の推定
推定結果
実年齢との差分
- FaceAPI: 推定年齢±5歳に実年齢が存在する割合は約35%。全体的に実年齢より低く推定された。
- PUX: 推定年齢±5歳に実年齢が存在する割合は約23%。全体的に実年齢より低く推定され、実年齢との差分が大きい傾向がある。
2)区間の推定
推定結果(Visual Recognition)
V0:〜17、V18:18-24、V25:25-34、V35:35-44、V45:45-54、V55:55-64、V65:65〜
推定結果(フリーモデル)
F0:0-2、F4:4-6、F8:8-12、F15:15-20、F25:25-32、F38:38-43、F48:48-53、F60:60-100
(推定区間が網羅的でないことに注意してください)
推定結果(区間の適合率)
実年齢との差分
(推定区間の最大値、もしくは最小値からの実年齢との差分を出しています)
- Visual Recognition: 推定区間±5歳に実年齢が存在する割合は約32%。全体的に実年齢より低く推定された。
- フリーモデル: 推定区間±5歳に実年齢が存在する割合は約28%。全体的に実年齢より低く推定されたが、実年齢との差分が大きい傾向がある。
考察
- Face API:推定年齢±5歳に実年齢が存在する割合が**35%**と最も高く、差分のグラフも−5歳ほどを中心に狭い正規分布を描いている。
- Visual Recognition:推定区間±5歳に実年齢が含まれる割合が**32%**と高く、差分のグラフも-5歳ほどを中心に正規分布を描いている。
- PUXの顔検出(評価版):推定年齢±5歳に実年齢が存在する割合が**23%**で、差分のグラフは0歳ほどを中心にやや広い分布を描いている。
- その他のフリーの年齢・性別モデル:推定区間±5歳に実年齢が含まれる割合が**28%**で、差分のグラフは0歳ほどを中心にやや広い正規分布を描いている。
まとめ
- Face APIが最も実年齢と推定年齢の差が少ない
どのAPIも実年齢に比べて推定値が低い結果となりました。これは日本の芸能人のInstagram画像を使ったためだと思われ、普通の写真で試したら結果が異なるかもしれません。
また、フリーのモデルで黒○徹子さんが推定年齢0〜2歳になり驚きました。5枚中3枚。お若い。