【Unity】OpenCVで顔認識をする方法を紹介します!
OpenCVをUnityで利用して顔認識する方法を紹介します。
OpenCVの入手
アセットストアで入手できるOpenCVライブラリを2種類紹介します。
OpenCV plus Unity
今回利用する無料で使えるアセットです。
サポート対応はしてもらえませんがテスト利用するには十分です。
OpenCV for Unity
こちらは有料アセットで$104.50(日本円にすると15,000円弱)です。
長期的な利用やサポートを必要とする場合は購入を検討してみてはいかがでしょうか。
顔認識サンプル
OpenCV plus UnityにWebカメラで顔のパーツを認識するサンプルが以下にあります。
Assets/OpenCV+Unity/Demo/Face_Detector/フォルダのFaceDetectorScene.unity
shape_predictor_68_face_landmarksをダウンロード
サンプル起動時にshape_predictor_68_face_landmarksをダウンロードするように促されます。
shape_predictor_68_face_landmarks.dat.bz2
7-Zipなどでbz2ファイルを解凍して拡張子を.datから.bytesにリネームして上書きして下さい。
FaceDetectorSceneコンポーネントの形状(Shape)に設定されているか確認して下さい。
Webカメラの確認
使用するWebカメラにOBS Virtual Cameraが選択されてエラーが出る場合があります。
Assets/OpenCV+Unity/Demo/Scripts/WebCamera.cs 54行付近
// get device index
int cameraIndex = -1;
for (int i = 0; i < WebCamTexture.devices.Length && -1 == cameraIndex; i++)
{
if (WebCamTexture.devices[i].name == value)
cameraIndex = i;
}
0. USB Camera
1. OBS Virtual Camera
USB Cameraを利用したいので強制的にcameraIndexを0に設定してエラーを回避しました。
cameraIndex = 0;
表情を3Dモデルのフェイシャルに結び付ければVtuberっぽいことができそうですね。
他にも面白いサンプルが含まれていますので確認してみて下さい。
関連ページ
こちらのページも合わせてご覧下さい。