3Dスキャン
それでは実際に、Kinectを使って3Dモデルを作ってみましょう。
まずは、Kinect Fusionのサンプルアプリケーションを利用した3Dスキャン方法を解説していきます。「Kinect for Windows Developer Toolkit v1.7.0」を起動します。
サンプルアプリケーションの中から、「Kinect Fusion Explorer-WPF」を探し、「Run」ボタンを押下しアプリケーションを開始します。
対象の物体をKinectで撮影します。プレビュー映像から対象の物体が外れないように注意しながら、Kinectを上下させつつ物体の周囲を巡り、対象物体を360度撮影することで、プレビュー上で対象物体が再構成されていきます。
撮影が完了した時点でAction欄の「Create Mesh」を押下すると、Kinectの赤外線深度センサが収集した「点」で構成された対象物体がVoxelの集合体に再構成されます。その後OBJやSTLといったファイル形式にエクスポートする際に、通常の3Dソフトウェアで扱うことができる「ポリゴン」で構成されたメッシュモデルが生成されます。完成した3Dモデルは以下のようなデータになりました。
上図は、完成した3DモデルをMeshLabで表示したものです。
今回は椅子の3Dモデルを作成してみました。また、ファイルの出力形式はOBJファイルにしてあります。
参考:サンプルアプリケーションの画面や設定値について
今回利用している「Kinect Fusion Explorer-WPF」は、以下のような設定パラメータがあります。
- 左の画面:再構成された3Dモデルが表示されます
- 右上の画面:Kinetの深度カメラのRAWデータが表示されます
- 右下の画面:再構成されたデータと入力データの整合結果が表示されます
Action
- Create Mesh:3Dモデルを作成します。STL形式とOBJ形式を選択可能です
- Reset Reconstruction:作成途中の3Dモデルをリセットし再作成を開始します
Image Options
- Display Surface Normals:法線を表示します
- Near Mode:近距離撮影に向いたモードに切り替えます
- Pause Integration:3Dモデルの生成を一時停止します
- Mirror Depth:Depth値を左右反転させます
Depth Threshold
- Min:撮影範囲(Kinectからの深度)の最小値を指定します
- Max:撮影範囲(Kinectからの深度)の最大値を指定します
Volume Max Integration Weight
再構成処理において新しいデータを足すときの重み付けを設定できます。
値を大きくすると精密な再構成データができるが、動くスキャン対象の再構成が遅くなります。
値を小さくすると荒い再構成データになるが、動くスキャン対象への再構成が早くなります。
Volume Voxels Per Meter
1メートル内にいくつVoxelを配置するかを指定します。この値を大きくすると、より精緻な3Dモデルを作成できます。なお、Voxelは3次元空間での正規格子単位の値を表します。
- 参考:ボクセル(Wikipedia)
Volume Voxels Resolution
- X Axis:再構成する3Dモデルの大きさをVoxel単位で指定します(幅)
- Y Axis:再構成する3Dモデルの大きさをVoxel単位で指定します(高さ)
- Z Axis:再構成する3Dモデルの大きさをVoxel単位で指定します(深度)
対象物体までの距離や対象物体の大きさ、「Kinect Fusion Explorer-WPF」を動作させているPCのスペックなど、状況に応じて値を変えてみてください。




