pytorch で顔の位置合わせ 回転

pytorch で顔の位置合わせ 回転

顔の位置を合わせたい

複数の顔画像の位置合わせをしたい。
face alignmentなどというやつ。
第一段階として顔の回転角度を平行に合わせる。

face-api.jsを使ってクライアントサイドだけで顔検出

face-api.jsを使ってクライアントサイドだけで顔検出

ブラウザで顔検出したい

ブラウザで顔検出したいのでface-api.jsを使う。

face-api.jsは画像から顔検出ができるJavaScriptのAPI。
顔検出以外にも顔特徴点抽出、年齢、性別、感情の判別などできる。
詳細はface-api.jsのgithubに書いてある。

顔検出ライブラリは他にも多数あるが、中でもface-api.jsはJavaScriptでありクライアントサイドで動いてくれるため以下の点で良い。

  • ユーザ側で計算するためサーバに負担がかからない
  • ユーザが画像をサーバに送る必要がない
  • 開発環境に左右されない

Windows10 + pytorch FaceBoxes による顔検出実験

Windows10 + pytorch FaceBoxes による顔検出実験

FaceBoxes

CPUでもリアルタイムかつ高精度に顔検出ができるらしい。
2017年に発表されてて新しめ。

Zhang, Shifeng, et al. “Faceboxes: A CPU real-time face detector with high accuracy.” 2017 IEEE International Joint Conference on Biometrics (IJCB). IEEE, 2017.

以前使用したMTCNNと比較する。

以前のやつ↓
(Windows10 + Anaconda で facenet-pytorchからMTCNNを使用する)

Windows10 Face Frontalization(正面顔推定)の実験

Windows10 Face Frontalization(正面顔推定)の実験

Face Frontalization(正面顔推定)

横顔を入力すると正面顔が出力される。
正面顔推定なのか正面顔変換なのか対応する日本語は分からない。
横顔や斜め顔を正面に向けたいという需要があるので実験する。

githubに良い感じのがあったのでそれを使うだけ。
https://github.com/scaleway/frontalization

pytorchで動く。

Windows10 Albumentationsの実験

Windows10 Albumentationsの実験

Albumentationsで画像処理

Albumentationsは機械学習において画像の水増しに使われるライブラリ。
画像内に雨や雪を降らせたりできるらしい。
前回使用したtorchvision.transformsと比較する。

Windows10 + pytorch torchvision.transformsの実験

Windows10 + pytorch torchvision.transformsの実験

torchvision.transformsで画像処理

pytorchの仲間であるtorchvisonは画像に関する便利なライブラリ。
その中のtorchvision.transformsは様々な画像処理が行える。
pytorchを使わずとも独立して使える。



Windows10 + Anaconda で facenet-pytorchからMTCNNを使用する

Windows10 + Anaconda で facenet-pytorchからMTCNNを使用する

MTCNNによる顔検出・特徴点抽出

MTCNNを使ってこんな感じのことをしたい。



これが、



こうなる。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×