トップ > 【Unity】OpenCVで顔認識をする方法を紹介します!
更新日 2022/9/12

【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にリネームして上書きして下さい。

OpenCV_Unity_shape_predictor_68_face_landmarks

FaceDetectorSceneコンポーネントの形状(Shape)に設定されているか確認して下さい。

OpenCV_Unity_FaceDetectorScene

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っぽいことができそうですね。
他にも面白いサンプルが含まれていますので確認してみて下さい。


関連ページ

こちらのページも合わせてご覧下さい。

unixo3davator
ウニの3Dアバター制作日記です!2023/3/7
Copyright ©2022 - 2024 うにぉらぼ