📷

Face APIのRecognition04モデルを使ってマスクをつけた顔認識を試してみる

2022/03/07に公開

この記事はAzureのカレンダー | Advent Calendar 2021 - Qiitaの 25 日目の記事です。

はじめに

こんにちは。@mitsuoka0423です。
Face API の新機能として、今年の 2 月にRecognition04モデルが公開され、マスク付きの顔識別の性能が上がっているとのことだったので試してみました。

https://docs.microsoft.com/ja-jp/azure/cognitive-services/face/releasenotes#new-face-api-recognition-model

実験方法

学習方法

Azure Face API の Person Group を利用し、スマホで正面から撮影した画像を 5 枚ずつ学習させました。
学習させた人数は 2 人です。

利用した API と学習手順は以下のスクラップに記載しています。
https://zenn.dev/tmitsuoka0423/scraps/f5edb42f285c24

学習に用いた画像

# 画像 画像 画像 画像 画像
Aさん 2-miki-front.png.png 3-miki-front.png.png 4-miki-front.png.png 1-miki-front.png.png 5-miki-front.png.png
Bさん 2-mitsu-front.png.png 1-mitsu-front.png.png 3-mitsu-front.png.png 4-mitsu-front.png.png 5-mitsu-front.png.png

検証結果

学習させた画像とは別に、マスクを着用した状態の画像を撮影し推論しました。

結果に含まれる候補者と信頼度は、Face APIのレスポンスに含まれるcandidates.personIdcandidates.confidenceに対応しています。
信頼度は、1 に近いほど候補者である確率が高いです。

静止した状態で撮影した画像の推論結果

# パターン1 パターン2 パターン3 パターン4
画像 Snap_2021-10-16_18-39-51.png Snap_2021-10-16_18-40-56.png Snap_2021-10-16_18-51-23.png Snap_2021-10-16_18-52-31.png
結果:候補者 Aさん Aさん Aさん Aさん
結果:信頼度 0.82848 0.82989 0.84204 0.73857

歩いている状態を撮影した画像の推論結果

# パターン5 パターン6 パターン7 パターン8
画像 スクリーンショット 2021-10-17 23.50.06.png スクリーンショット 2021-10-17 23.50.30.png スクリーンショット 2021-10-17 23.50.44.png スクリーンショット 2021-10-17 23.50.59.png
結果:候補者 Aさん Aさん Aさん Aさん
結果:信頼度 0.77256 0.86084 0.65705 0.70921
# パターン9 パターン10 パターン11 パターン12
画像 スクリーンショット 2021-10-17 23.41.19.png スクリーンショット 2021-10-17 23.41.33.png スクリーンショット 2021-10-17 23.40.50.png スクリーンショット 2021-10-17 23.40.59.png
結果:候補者 Bさん 候補者なし Bさん Bさん
結果:信頼度 0.5043 -- 0.63694 0.57666

結果まとめ

  • 今回試した画像では、2 人の識別を間違えることはなかった。
    • 歩いている状態を撮影した多少ブレがある画像でも 2 人の識別は可能であった。
    • 静止している状態を撮影した画像と比べると、信頼度は下がる。
    • 候補者なしになるケースもあった
  • 信頼度は高くても 0.8 ほど。
    • 照明やブレが入ると、識別できなかったり、信頼度が 0.5 程度まで低くなる。
  • マスクの色や形は結果に大きく影響しない。

感想

1 人 5 枚の画像だけの学習で、マスクを付けた顔写真の識別ができた。すごい。
顔の半分以上が隠れているため、さすがに信頼度は低くなる。
しかし、2 人のうちのどちらかを誤って識別することはなく、実用的なレベルであると感じた。

GitHubで編集を提案

Discussion