LoginSignup
14
9

More than 5 years have passed since last update.

3D Face ReconstructionとHoudiniで写真から顔モデルを作ろう

Posted at

HoloLens感謝祭で和製キップマンチャレンジが開催されたので、それに合わせて
写真から顔モデルを作ってくれるAIサービス”3D Face Reconstruction from a
Single Image”
とHoudiniでプロシージャルに顔を作る流れを作っていきます。

大本のデータはこの画像を利用します。

kip3.JPG

やり方は超簡単。”3D Face Reconstruction from a
Single Image”
にアクセスし、アップロードするファイルを選択して
キャプチャ1.JPG

私はロボットではありません にチェックを入れてUpload Imageを押すだけです。
キャプチャ2.JPG

すると、なんということでしょう。1枚の画像から顔モデルができてしまいました。
Download Wavefront OBJ Fileからobjファイルをダウンロードすることができます。

なんだHoudiniいらねーじゃんって思われるかもしれません。
しかし、objファイルを開いてみてください。

なんと、テクスチャが張り付いているわけではなく、Cd情報つきの擬似ボクセルになっているではありませんか。
キャプチャ3.JPG

このままでは色んな用途で利用できません。そこでHoudiniを利用します。
キャプチャ4.JPG

まずobjファイルをFileSOPからReadします。
ちょっと元データが大きすぎるのと、顔の向きが正面でないのでtransformで微調整します。

そして、VDBfromPolygonでVDBに変換してconvertVDBでポリゴンに戻します。
すると、先ほどまでガタガタだった表面がなめらかになりました。
顔の裏側は邪魔なのでclipで除外します。

VDBに変換すると、Cdのattributeが失われます。そこでattribtransferで
Cd情報を変換前の状態から変換後のモデルに戻します。

ただ、やはりCdではなく、テクスチャを利用したいところ。
UVを指定して、テクスチャベイクを行います。
キャプチャ6.JPG

テクスチャベイクは、BakeROPを利用してマテリアルを適用したモデルのbasecolorを出力します。
詳しくは日本語情報ブログのここを参照
baseにチェックを行ったらレンダリングします。

出力が完了したら、photoshopで微調整を行います。

調整が完了したら、テクスチャを読み込んで余分なCd情報を削除します。
そして最後の調整としてpolyreduceを行います。
キャプチャ5.JPG

Houdini16.5から、以前よりもUV情報が崩れずにポリゴン削減ができるようになっています。すばらしいですね。

最後にobjを出力して完了です。hipデータはこちら

色んな人の顔を作ってみて下さい。

14
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
9