隣にVTuber(学習データ作成編)で作成した表情認識モデルを用いて動画から表情認識を行い,表情データをUDPで送信します.
準備
- 前回作成した物体認識モデル(.svm)と表情認識モデル(.dat)
- 表情認識させたい動画(.mp4)
- 以下のリポジトリのSenderLandmarkプロジェクト
https://github.com/akihiro0105/VTuberLandmarkWithDlibAndHoloLens
SenderLandmarkのビルド
SenderLandmarkプロジェクトはdlibとopencvを利用したC++プログラムになります. そのためVisual Studioでプロジェクトを開いた後にプロパティから追加の設定を行います.
隣にVTuber(環境構築編)で準備したdlibにパスを設定します.
C/C++の追加のインクルードディレクトリから以下のパスを設定
- dlibフォルダ
- opencv/build/includeフォルダ
- opencv/build/include/opencvフォルダ
リンカーの入力の追加の依存ファイルから以下のパスを設定
- Debug時
- dlib/examples/build/dlib_build/Debug/dlib19.16.0_debug_64bit_msvc1916.lib
- opencv/build/x64/vc15/lib/opencv_world344d.lib
- Release時
- dlib/examples/build/dlib_build/Release/dlib19.16.0_release_64bit_msvc1916.lib
- opencv/build/x64/vc15/lib/opencv_world344.lib
SenderLandmarkの実行
- ビルド後に生成された実行ファイル(.exe)と同じ場所にOpenCV内の
opencv_world344d.dll
(Debug)またはopencv_world344.dll
(Release)をコピーします. 実行時のコマンドライン引数内容は
VTuberLandmarkWithDlibAndHoloLens\SenderLandmark\x64\Release
のSenderLandmark.bat
に記述しています.SenderLandmark.exe <動画パスまたはWebカメラの番号> <表情認識学習モデル(.dat)> <物体認識学習モデル(.svm)> <送信先IPアドレス>
送信データはjson形式で目の開き具合を0~1に,口の開き具合を0~1に正規化して送信しています.
目と口の開き具合の閾値はキーボードのEキー(目)とMキー(口)で設定できます.
まとめ
- 次回はHoloLens側で表情データを受信するプロジェクトを紹介します.