Dwango Media Village(ドワンゴメディアヴィレッジ,dmv)

1枚のキャラクタ正面画像からのアニメーション生成

デモの使い方

4つの手順で、好きなキャラクタ画像のアニメーション動画を生成することができます!

  1. キャラクタを選択します。
  2. 背景を選択します。
  3. キャラクタの顔の位置をみほんにならって調整します。
  4. 『TalkingHead!』ボタンを押します。

3番目の位置合わせは、クリックでロードした画像の移動、ホイールか上部のスライダーで拡大縮小を行います。 モバイル端末上では、それぞれの操作がスワイプおよび、ピンチイン/ピンチアウトで対応しています。 デフォルトで選択できるキャラクタはあらかじめ適切な位置に調整されているため、位置調整は不要です。

10~60秒ほどで、入力したキャラクタ画像のアニメーション動画が生成されます。

技術デモ

キャラクタ

キャラクタは任意の画像も設定できます。希望の場合は、下のボタンを押してダイアログから読み込んでください。

背景

キャラクタ位置

キャラクタを下辺に合わせる

中央(そのまま)

入力画像の位置調整

みほん

位置調整結果(変換入力画像)

変換結果

動画のダウンロード

結果の動画は保存できます。 是非『#TalkingHead』で試された結果と感想などTwitterで共有ください! ※ソーシャルメディアなどで共有する場合は、利用した画像の規約に抵触していないかご注意下さい。

Tips

任意で読み込む画像については、以下のことに注意を払うと、品質の高い結果を得られる可能性が上がります。

背景について

任意で読み込む画像は、背景がない(透過済み)画像を入力することを推奨します。 入力された画像に背景が含まれていると判断した場合、OpenCVのGraphocutを用いた背景除去を行ったものをアニメーション生成の入力とします。 実際のアニメーション生成の入力は、Talking Headボタンを押して生成された動画が表示される際に同時に位置調整結果の部分で更新される画像です。 背景が複雑(色や模様等)であればあるほど、Graphcutの精度は落ちます。 背景がある画像を入力する場合は、OpenCVのGraphcutの性質上、画像中の広い面積を占める色を背景として認識し除去するため、キャラクタの面積を多く占める色でない単色の方が良いです。

線について

用いる画像のサイズが大きすぎる場合、位置合わせで縮小を行った末に線がつぶれてしまう可能性があります。 線がつぶれると、キャラクタの各顔パーツがわかりにくくなるので、生成される動画の品質も下がります。 顔の大きさが約128pxにしても線がつぶれてしまわないような線の太さ及び画像の大きさであることを推奨します。

位置合わせについて

ネットワークが画面上での目や口の位置に鋭敏なので、少しずらしてうまくいく位置を探していただけたらと思います。 手描きのキャラクタ画像ですと、顔を傾けていたり、左右非対称で中央の定義などが難しい場合など、様々な表現がありますので、少し変えるだけで品質が一気に変わることもあります。

素材について

キャラクタや背景の画像は以下のサイト様のものを利用させていただきました。ありがとうございました。

解説

このデモは、[1]をもとに実装されました。 この技術では、1枚のキャラクタ正面画像をもとに、両目および口の開閉・首の三次元の回転を変化させた結果を得ることができます。 デモで生成されるキャラクタのモーションは固定ですが、パラメータを調整することである程度の広さを持つ顔向き範囲内では任意の顔向きかつ表情に変化させた画像を生成します。 この技術の詳細は、こちらの解説記事にて詳細を紹介しております。 是非合わせてご覧ください。

参考文献

[1] Pramook Khungurn, "Talking Head Anime from a Single Image", https://pkhungurn.github.io/talking-head-anime/