【顔向き推定】フェイスリグの仕組み「顔や頭の向き判定をする頭部姿勢推定」技術とは?

画像や動画から人の顔や頭の向きを推測、判定する「頭部姿勢推定(Head Pose Estimation)」について解説します。

おすすめ記事

ヤフーニュースと窓の杜で無料VTuberアプリ『メイアライブ』が紹介されました。


【ヤフーニュースや窓の杜で紹介された】無料VTuberアプリ『メイアライブ 雛乃木まやエディション』のダウンロード

 

 

頭部姿勢推定(Head Pose Estimation)とは?

頭部姿勢推定とは画像認識アルゴリズムの一種で、入力された画像や動画から人の顔や頭部を抽出し、アルゴリズムによって顔や頭部の向きを推測するものです。英語では、Head Pose Estimationと言います。

表情の動きや顔の向き判別をする実装方法

画像認識なので、オープンソースライブラリのOpenCVやDlibを使って実装するのが一般的です。OpenCVだけでは顔や頭部の傾き検知に難がありますが、OpenCV(画像処理)とDLib(機械学習)を組み合わせることで認識精度を高めることができます。最近では、機械学習アルゴリズムである Deep Learning(Deep neural network)を利用して頭部姿勢推定を行う手法も出てきています。

OpenCV(画像処理ライブラリ)

OpenCV(Open Source Computer Vision Library)とは、インテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリ。C++, C, Python, Javaなどで利用でき、画像認識や画像処理の分野では言語を問わず幅広く使われています。画像処理と言えば、OpenCVと言われるほど大御所のライブラリです。

Dlib(機械学習ライブラリ)

Dlibは、C++の機械学習(人工知能)ライブラリです。 ロボットや組み込み機器、携帯電話、スマートフォン、大規模コンピューティング環境など幅広い分野の業界および学術界で使われています。オープンソースライセンスのため、誰でも無料で使えます。

実装はC++以外のプログラミング言語でもOpenCVやDlibを扱うラッパーがあるので、これらのライブラリに各プログラミング言語のラッパー経由でアクセスして開発をしていって下さい。

 

頭部姿勢推定のデモ動画

顔向き推定・頭部向き推定のアルゴリズム

詳細は、ここに詳しく書かれています。おすすめ。

他言語での実装例

Python + OpenCV + Dlib + Tensorflow で実装

 

簡単に頭部姿勢推定ができるアプリ「FaceRig(フェイスリグ)

このようにカメラやモーションキャプチャー機器を使って、頭部姿勢推定ができるようになります。この技術を応用しているのが、最近バーチャルYoutuber(バーチャルユーチューバー)の間で人気のFaceRig(フェイスリグ)です。

フェイスリグを使うと簡単に、カメラから撮った画像を元に被写体の顔の向きを推定しキャラクターを動かすことができます。OpenCVやDlibを使って自分で実装するのはちょっと難しいかも、というときは、フェイスリグを使うとお手軽に試せます。