ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

Kinect v2のHD Faceを利用した簡易3Dフェイススキャン

Kinect v2のHD Faceでは1347個の顔の特徴点を取得できます。これを使ってCTスキャンした顔モデルを動かしたりしていました。

HD Faceの特徴点では、この特徴点のメッシュ情報も持っており、3Dモデルとして生成できるようになっているので、そこからPLY形式の3Dモデルファイルに出力してみました。簡単に3Dデータを扱うのに、Unityはいいですねw

f:id:kaorun55:20150622100334p:plain

色情報は持っていませんが、HD Faceの特徴点がカメラ座標系なので、座標変換でカラーカメラの色情報を持ってくることができます。

アプリ体験

こちらに実行ファイルの直リンクを置いておきます。

起動するとカラーカメラの映像と真っ白な画面がでます。左上あたりにステータスが表示されます。HD Faceは検出したBodyのIDを元に行うので、Bodyの追跡の要領でKinectに認識させてください。

f:id:kaorun55:20150622100646p:plain

顔の検出が始まると、ステータスが変わります。「[左|右|正面]を向いてください」が表示されます。これはHD Faceの情報収集です。

f:id:kaorun55:20150622100644p:plain

ステータスが「完了」で高精度の追跡ができるようになります。「ファイルに出力」を押すと実行ファイルの場所にPLYファイルが出力されます。

f:id:kaorun55:20150622100649p:plain

これをMeshLabなどの3Dモデルが表示できるツールに読み込ませると、顔が3Dモデル化されたことがわかります。光源はOFFにしてください(たぶん法線の設定がうまくできてない)。

f:id:kaorun55:20150622101008p:plain

3DスキャンといえばFusionですが、Fusionのスキャンデータには意味が付加されていないため、HD Faceでのスキャンのほうが使いやすい場面も多々あると思います。