画像や動画から人の顔や頭の向きを推測、判定する「頭部姿勢推定(Head Pose Estimation)」について解説します。
頭部姿勢推定とは画像認識アルゴリズムの一種で、入力された画像や動画から人の顔や頭部を抽出し、アルゴリズムによって顔や頭部の向きを推測するものです。英語では、Head Pose Estimationと言います。
画像認識なので、オープンソースライブラリのOpenCVやDlibを使って実装するのが一般的です。OpenCVだけでは顔や頭部の傾き検知に難がありますが、OpenCV(画像処理)とDLib(機械学習)を組み合わせることで認識精度を高めることができます。最近では、機械学習アルゴリズムである Deep Learning(Deep neural network)を利用して頭部姿勢推定を行う手法も出てきています。
OpenCV(Open Source Computer Vision Library)とは、インテルが開発・公開したオープンソースのコンピュータビジョン向けライブラリ。C++, C, Python, Javaなどで利用でき、画像認識や画像処理の分野では言語を問わず幅広く使われています。画像処理と言えば、OpenCVと言われるほど大御所のライブラリです。
Dlibは、C++の機械学習(人工知能)ライブラリです。 ロボットや組み込み機器、携帯電話、スマートフォン、大規模コンピューティング環境など幅広い分野の業界および学術界で使われています。オープンソースライセンスのため、誰でも無料で使えます。
実装はC++以外のプログラミング言語でもOpenCVやDlibを扱うラッパーがあるので、これらのライブラリに各プログラミング言語のラッパー経由でアクセスして開発をしていって下さい。
詳細は、ここに詳しく書かれています。おすすめ。
このようにカメラやモーションキャプチャー機器を使って、頭部姿勢推定ができるようになります。この技術を応用しているのが、最近バーチャルYoutuber(バーチャルユーチューバー)の間で人気のFaceRig(フェイスリグ)です。
フェイスリグを使うと簡単に、カメラから撮った画像を元に被写体の顔の向きを推定しキャラクターを動かすことができます。OpenCVやDlibを使って自分で実装するのはちょっと難しいかも、というときは、フェイスリグを使うとお手軽に試せます。