LoginSignup
24
20

More than 5 years have passed since last update.

Kinect v2のKinectFusionから色付きの3次元点群と自己位置を得る方法(Visual Studio 2013, OpenCV, C++, Kinect v2)

Last updated at Posted at 2015-02-01

Kinect for Windows v2

Kinect v2は、2014年07月15日に発売されたTOF方式のRGB-Dセンサです。今回、Kinect v1と同様にKinectFusionを試してみました。

KinectFusion

KinectFusionとは、Kinectを用いてSLAM(Simultaneous Localization and Mapping):自己位置推定と地図作成を同時に行う技術である。
SDK Browser (Kinect for Windows) v2.0でも体験できるが、実際にソースコードをいじって、3D点群と自己位置を得てみた。

ソースコードのダウンロード

UnaNancyOwenさんがKinect v2のサンプルプログラムを公開していらっしゃいます。ありがとうございます。
(参照コード)https://github.com/UnaNancyOwen/Kinect2Sample
- KinectFusion.cpp ・・・メイン
- KinectFusionHelper.cpp ・・・関数
- KinectFusionHelper.h ・・・関数の定義

引用、一部改変しました。
(参照コード) https://github.com/SatoshiRobatoFujimoto/KinectFusionV2

  • Colorを追加
  • 点群ファイルの保存(.ply, .stl, .obj)
  • カメラ位置を保存するプログラムを追加(.ply)

実行の手順

  1. Releaseモードで実行して、's'キーで保存、'r'キーでリセット、'esc'キーで終了します。※Debugモードでウィンドウ名が文字化けするバグ有り
  2. 保存されたCameraPose.ply(カメラ位置の点群)ファイルとmesh.ply(再構築した点群)ファイルをMeshLab等で開いてください。

動作環境

  • PC (Windows8.1, RAM 8GB, 2 cores @ 2.1GHz)
  • Visual Studio 2013
  • OpenCV2.4.9
  • Kinect for WIndows SDK v2.0_1409

結果

障子を撮影しました。3D点群ファイルと自己位置(赤い点群)を示します。

  • PLYファイル(MeshLab) snapshot00.png

STLファイルやOBJファイルにも対応しています。(自己位置は保存してません。色もついてません。)

  • STLファイル(MeshLab)
    snapshot01.png

  • OBJファイル(3D Builder)
    キャプチャ.PNG

Kinect v1によるKinectFusionはこちら

24
20
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
24
20