Ribbit.work

【顔によって最適が異なる】フェイスタイプ(Face type)の正しい選び方

機械学習python

last modified date2021-8-31

publish date2021-8-16

DeepFaceLab のバージョン 2 がリリースされ、顔だけでなく、頭部全てをスワップできるようになりました。

それに伴って、学習時にプログラムに与える顔データのオプションとして、フェイスタイプ(Face type)が追加されています。

では、今後はどのフェイスタイプを選択するべきでしょうか?

新しく追加されたものを利用した方が学習効率が良さそうに感じてしまいますが、公式のマニュアルによると、一概に新しいものが良いというわけではなく、場合によるみたいです。

今回は各フェイスタイプについて、適している顔の種類を説明していきます。

説明は基本的に、オプション: f を基準としています。

ちなみにそもそも PC のスペックが低く、高度な学習設定を利用できない場合は、Google が提供している Google Colaboratory を利用することで、業務用 GPU を無料で利用することができます。こちらの記事を参考にしてみてください。

フェイスタイプ別、最適なモデルデータ

まず、フェイスタイプを学習させる範囲の小さい順に並べると、

  • h(眉毛から口まで)
  • mh(h の範囲 × 30%)
  • f(眉から顎まで)
  • wf(顔全体)
  • head(頭全体)

となります。最適はケースバイケースと言いましたが、より大きい範囲を覆うフェイスタイプの方が完成度が高くなるケースが多いです。

ただ、大きい範囲を覆うフェイスタイプには向かないモデルもあるため、条件に合うか確認しながら、徐々に範囲を絞っていくのが良いかと思います。

h (Half face)

オプション: h は Half face の略です。眉毛から口までのトレーニングを行うことができます。

場合によって、眉毛、口、顎を除いてマージすることができるため、f を使った際に不自然に途切れてしまう現象を避けることができます。

mh (Mid half face)

オプション: mh は、h を基準として、その 30%大きい領域をトレーニングします。
基本的な趣旨は h と同じですが、こちらは f を使った際に、眉毛・口は問題ないが、顎が不自然に途切れるような場合に向いています。

f (Full face)

オプション: f は、バージョン 1 で標準設定だったフェイスタイプです。

wf が f より大きい領域を覆うため、wf が上位互換のように感じますが、必ずしもそうではありません。

公式のマニュアルによると、額に髪の毛がかかっている場合には f が最も推奨されています。

これ以外のフェイスタイプが特別必要でない場合は、こちらをそのまま使用しても問題ないでしょう。

wf (Whole face)

オプション: wf は、f の領域をさらに拡大し、f でトレーニングできなかった額や顎先までカバーできます。

これにより、髪の毛を除く顔全体をマージさせたい場合に有効です

ただし、現在の Deepfacelab の仕様上、今までの額を除く顔領域の学習と、顔全体の学習は別々に行われます。

学習には今まで以上に時間がかかってしまう点に注意してください

f でマージした際に眉毛が不自然に途切れたり、上下に 2 つできてしまう場合や、顎が中途半端に途切れてしまっていた場合は、wf が適切かもしれません。

head

オプション: head は文字通り、頭部全体を入れ替えることが可能です。

ただし、現在これが可能なのは髪が短いモデルに限られており、髪の長いモデルの場合には髪の毛が途切れてしまいます(入れ替え自体は可能です)。

入れ替え先、入れ替え元が共に短い髪である場合は、このオプションが最適と言えます。

※このオプションについては、切り出した後の各顔画像の解像度が 224px 以上であることが推奨されています。

モデルデータの出来を決めるのはフェイスタイプだけではない

ここでは、フェイスタイプ毎に最適なモデルデータを紹介しましたが、品質の高い学習をさせるためには、他にも注意すべきポイントがいくつもあります。

うまく注意すべきポイントをまとめていますので、こちらと合わせてご一読いただけますと幸いです。

deepfacelabでうまく学習させるために注意すべきポイント、コツを紹介

この記事をシェア

この記事を読んだ方におすすめの記事

PySimpleGUIで自作テーマを使用する
2021-9-2

PySimpleGUIで自作テーマを使用する

python
deepfacelabでうまく学習させるために注意すべきポイント、コツを紹介
2021-8-16

deepfacelabでうまく学習させるために注意すべきポイント、コツを紹介

機械学習python
Eelを含むPythonプログラムを終了する
2021-8-16

Eelを含むPythonプログラムを終了する

python
【deepfacelab】顔を部分的、一部のみ変更する方法【XSeg】
2021-8-11

【deepfacelab】顔を部分的、一部のみ変更する方法【XSeg】

機械学習python

最新の記事

kuromoji.jsで形態素解析
2021-12-4

kuromoji.jsで形態素解析

TypeScriptJavaScript
レコードのサブテーブルを並び替えて登録する【Kintone JavaScriptカスタマイズ】
2021-12-4

レコードのサブテーブルを並び替えて登録する【Kintone JavaScriptカスタマイズ】

JavaScriptKintone
レコード一覧表示時(app.record.index.show)のサンプルコード集【Kintone】
2021-11-29

レコード一覧表示時(app.record.index.show)のサンプルコード集【Kintone】

JavaScriptKintone
スライダーを使って数値を設定できるKintoneプラグイン【無料公開】
2021-11-26

スライダーを使って数値を設定できるKintoneプラグイン【無料公開】

KintoneJavaScriptTypeScript