OGLOG

おぐらのぶろぐです。VDRAWのマニュアルを兼ねています。

フェイストラッキングの使い方/設定方法

こんにちはおぐらです。

ついにVDRAWver1.8.0からフェイストラッキング機能が追加されました。
フェイストラッキングができる条件や、設定UIがやや複雑なので解説いたします。

フェイストラッキングのシステム要件

  1. Windows8.1以降のOS
  2. OpenGL 4.3以上に対応したCPUやGPU(よほど古くない限りはだいたい対応しているはず)
  3. Visual C++ 2015以降のランタイムがインストールされている

リリース直後は3をインストールしておらずフェイストラッキングができないという方がたくさん出てしまったので、ver1.8.1ではUI上に誘導を追加しました。

https://support.microsoft.com/ja-jp/help/2977003/the-latest-supported-visual-c-downloads

ランタイムは↑こちらから、64bit版をダウンロードしてインストールしてください。

認識精度を上げるには?

カメラの映像から顔がどこにあるか判断しますので、ポイントは

  • 顔が明るく、はっきりとカメラに映ること(顔の前にライトを置いて軽く照らすとGood)
  • 余計なものがカメラに映り込んでいないこと(壁にポスター等があると誤認識されるかも?)
  • 広角ではないカメラを使うこと(理由は詳しく後述します)
  • 眼鏡を外す(着けていても認識はされますが、精度は落ちます)

こんな感じです。

設定UI解説

それでは1つずつ解説していきましょう。

f:id:OGOG_Ogura:20200426121756p:plain

基本設定

カメラ選択

ドロップダウンから、フェイストラッキングに使うカメラを選択できます。
カメラ映像はVDRAW上には絶対に表示されないのでご安心ください。
(他のウインドウに表示していたらバーチャルモニターに乗ることはあるかも(自業自得))

カメラ画質

Webカメラから送る映像の解像度を設定します。
低解像度なほど顔認識処理が軽いです。ちなみにそれぞれの設定の解像度は

  • Low:320*240
  • Medium:640*480
  • High:1280*720

としています。
Webカメラがこれらの解像度に対応していない場合は、選択した値に最も近い解像度が選択されます。


顔のトランスフォーム

f:id:OGOG_Ogura:20200426105153p:plain

位置の影響度

カメラから認識した顔の位置(前後左右上下)を、どれくらいアバターの動きに反映するかの値です。
0にするとアバターの頭の位置は固定されます。1にすると大きく動きます。

キャリブレーション

ラッキング開始時の処理と同じです。アバターの頭のベースとなる位置や向きを決定します。
3カウント終了時のリアルの顔の位置や向きが、アバターがまっすぐ正面を向いている位置や向きとして設定されます。
リラックスした姿勢でもアバターの頭の位置が左右に少しズレたり、変な方向を向いてしまう時などは、
このベース位置がズレていますので再度キャリブレーションをしてください。


まぶた認識設定

f:id:OGOG_Ogura:20200426110042p:plain

認識方法

ドロップダウンで「カメラから(片目ずつ)」「カメラから(両目同時)」「カメラを使わない」の3つが選べます。

  • カメラから(片目ずつ)

右目と左目を別々に認識します。ウインクができるのはこの設定だけです。 ただし、左右の目の開き具合が異なって違和感を感じる場面も多くなりがちです。

  • カメラから(両目同時)

左右の目を同じ閉じ具合として検出します。まばたきや目を閉じるなどの動作は違和感なくできますが、
ウインクはできません。

  • カメラを使わない

カメラからの情報を使用せず、従来の自動まばたきのみで動作させます。

しきい値を使う

しきい値とは、「この値を境界としてON/OFFを切り替える」値です。
ここでは「リアルでの目の閉じ具合が〇〇を超えたらアバターが目を閉じる」という値のことです。
しきい値をONにすると、認識方法に応じてスライダーが表示されます。
このスライダーのツマミの位置が「しきい値」です。

f:id:OGOG_Ogura:20200426111758g:plain

顔認識中であればリアル側の目の閉じ具合がスライダーの裏側にゲージで出ます。
ゲージがしきい値を超えると赤くなり、アバターは目を閉じます。
どの程度目を閉じたらアバターの目を閉じると認識させるのか、スライダー調整してください。

しきい値を使わない場合は、リアルの目の開き具合をある程度そのままアバターに反映します。
なので、しきい値を使わない時は半目ができるようになります。

f:id:OGOG_Ogura:20200426112312g:plain

笑顔検出設定

f:id:OGOG_Ogura:20200426112520p:plain

認識するか否か

笑顔検出をするかしないかを選べます。
笑顔と認識された時に使われるVRMの表情は「JOY」です。

しきい値

笑顔検出では、必ずしきい値を使って検出します。
(これスライダーの「しきい値(R)」ってコピペしたのバレバレですね…そのうち直します)

笑顔認識では、「口角の上がり具合」を見ています。しきい値の設定は大げさに笑った時でなく、自然に笑ったときくらいの設定にしておくといいでしょう。


口の制御設定

f:id:OGOG_Ogura:20200426113339p:plain

制御方法

口の制御方法をドロップダウンから「カメラ+マイク音声」「マイク音声のみ」の2種類から選べます。

  • カメラ+マイク音声

カメラから認識した口の形と、マイクから認識した声を解析してアバターの口を動かします。
声を出していない時もカメラを使って口を制御するので、比較的リアルな口の形が反映されます。
その一方で、このあと解説する口の形の設定によってはモデルの口の形が壊れることもあります。

  • マイク音声のみ

従来の音声ベースのリップシンクのみ使います。リップシンクに使うマイクは「システム/その他」から選択できます。

カメラの影響度

カメラから認識した口をどの程度敏感に反映させるかの値です。
1.00以上の値に設定すると、あまり口を開けていなくてもアバターの口に大きく反映されやすくなります。

音声入力と併用

マイク音声ベースのリップシンクを反映する度合いを設定します。
1.00ならば大きく反映されます。0にすると音声ベースのリップシンクは反映されません。

口の形設定

カメラ映像から得た口の形は、主に口を
「縦にどれくらい開いているか」「横にどれくらい開いているか」「どれくらいすぼめているか」の3つの要素で構成されています。
ここではその3要素に割り当てるアバターの口の形を設定できます。

f:id:OGOG_Ogura:20200426114527p:plain

たとえば↑このように設定すると、リアルで口をめいっぱい縦に開いたとき、アバターは「あ(A)」の口の形を60%反映する ということです。
ここでは「あ」のみを0.6にしていますが、もちろん他の形も混ぜられます。
しかし、複数の形をブレンドしたり、大きな値を設定したりしてしまうと口の形が崩れやすくなります。
音声入力との併用もしている場合は、AIUEOの各パラメータの合計が0.3~0.6くらいに調整するのがよさそうです。
崩れる例↓
f:id:OGOG_Ogura:20200426115511p:plain

ちなみに初期値ではこうなっています↓ f:id:OGOG_Ogura:20200426115213p:plain

ちょっと難解かとは思いますが、下手に設定してアバターの見た目がおかしくなってしまうのが怖い場合はあまり触らない方がいいでしょう。

フェイストラッキングに向いていないWebカメラについて

基本的にカメラであればなんでもいいですが、フェイストラッキングには向かないものもあります。

広角すぎるものは微妙かも?

会議室用などのあまりにも広角すぎるカメラはおすすめできません。
視野角120度など、広角であれば広い範囲を映すことができますが、その分カメラ映像の中に含まれる顔の面積は小さくなります。

顔が小さく映るということは、顔認識がうまくできないことが多くなるということです。
画質を上げれば精度は上がりますが、その分負荷が大きくなります。

フォーカス形式に少し気を付けよう

顔認識は画像が鮮明であることが大切です。ピントが顔に合っていない映像は認識が難しくなります。
もちろん顔にピントが常に合っていればいいですが、マニュアルフォーカスでピンボケしてしまっていたり、オートフォーカスでも部屋の背景にばかりピントが合ってしまい、顔がうまくトラッキングできないことがあります。
どちらがいいとは言い切れませんが、ちょっと気にしておくといいでしょう。

フレームレートは高い方がいい!?

Webカメラのフレームレートは大体30fpsのものが多いですが、もし手に入るならば60fps出せるカメラを選択するのもアリです。
フレームレートが低いカメラは動きに弱く、少し顔を動かすだけで映像にブレが入ってしまいます。
ブレた映像から顔を認識するのは…難しそうですよね。

実際VDRAWでフェイストラッキングを使うと、左右に動いた時にアバターが目を閉じやすくなってしまっています。
特に目がブレると正確な形を認識できなくて「閉じている」判定になりやすいようです。

というわけで、フレームレートが高いカメラならばブレも少なくなるので動きにも強くなる…かも!
しかしこのご時世、Webカメラ自体が入手しづらくなっているので難しいかもしれません。

頭の片隅に留めておいて、気が向いた時にでも いいWebカメラを検討してみてくださいね!


ちなみに2種類のWebカメラを比べてみました。

Amazon | ロジクール ウェブカメラ C270n ブラック HD 720P ウェブカム ストリーミング 小型 シンプル設計 国内正規品 2年間メーカー保証 | Logicool(ロジクール) | ウェブカメラ 通販
こちらは低価格ですが、解像度は1280x720まで、フレームレートも30fpsの一般的なWebカメラです。
これでもトラッキングするには十分ですが、やはり少し認識が外れやすいです。


Amazon | ロジクール ウェブカメラ フルHD 1080P 60FPS ストリーミング ウェブカム AI オートフォーカス 自動露出補正 自動ブレ補正 ストリームカム StreamCam C980OW オフホワイト USB-C接続 国内正規品 2年間メーカー保証 | Logicool(ロジクール) | ウェブカメラ 通販
こちらはWebカメラの中でも高性能・高品質な製品です。
解像度は1920x1080、フレームレートは60fps、フォーカス機能も優秀、さらに明るさの自動調整までついています。
これでフェイストラッキングをすると、よほど激しい動きをしない限り認識が外れることはありませんでした。
フレームレートが高い分、映像もブレがなく認識しやすい鮮明な画像となっています。

お財布と相談してWebカメラを選んでみましょう。