なんかいろいろしてみます

Dec 18, 2018 - 1 minute read - Dlib

隣にVTuber(VTuber認識編)

隣にVTuber(学習データ作成編)で作成した表情認識モデルを用いて動画から表情認識を行い,表情データをUDPで送信します.

準備

  • 前回作成した物体認識モデル(.svm)と表情認識モデル(.dat)
  • 表情認識させたい動画(.mp4)
  • 以下のリポジトリのSenderLandmarkプロジェクト

https://github.com/akihiro0105/VTuberLandmarkWithDlibAndHoloLens

SenderLandmarkのビルド

SenderLandmarkプロジェクトはdlibとopencvを利用したC++プログラムになります. そのためVisual Studioでプロジェクトを開いた後にプロパティから追加の設定を行います.

隣にVTuber(環境構築編)で準備したdlibにパスを設定します.

  1. C/C++の追加のインクルードディレクトリから以下のパスを設定

    • dlibフォルダ
    • opencv/build/includeフォルダ
    • opencv/build/include/opencvフォルダ
  2. リンカーの入力の追加の依存ファイルから以下のパスを設定

    • 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\ReleaseSenderLandmark.batに記述しています.

    • SenderLandmark.exe <動画パスまたはWebカメラの番号> <表情認識学習モデル(.dat)> <物体認識学習モデル(.svm)> <送信先IPアドレス>
  • 送信データはjson形式で目の開き具合を0~1に,口の開き具合を0~1に正規化して送信しています.

  • 目と口の開き具合の閾値はキーボードのEキー(目)とMキー(口)で設定できます.

まとめ