Kinect 3D视频捕捉

程序源代码下载地址:http://idav.ucdavis.edu/~okreylos/ResDev/Kinect/Download.html

运行这个程序需要安装 Vrui toolkit,下载地址为http://idav.ucdavis.edu/~okreylos/ResDev/Vrui/Download.html

Kinect2.2 要求Vrui-2.4-001及以上。


安装Vruitoolkit

1. 首先安装一些必须的工具。

  sudo aptitude update

sudo aptitude install build-essential

  sudo aptitude install zlib1g-dev mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev

2. 安装一些可选的库

sudo aptitude install libusb-1.0-0-dev libpng12-dev libjpeg62-dev libtiff4-dev libasound2-dev
sudo aptitude install libdc1394-22-dev libspeex-dev libogg-dev libtheora-dev libbluetooth-dev libopenal-dev
这些库可以与Kinect进行USB连接,下载保存图片为多种格式,记录和回放立体声,抓取视频,向互联网发送视频或音频,
3. 下载和安装Vrui
将下载好的安装包解压到~/src路径下, make ,make install即可安装完成
4. 测试
进入到ExamplePrograms文件夹下,make
运行bin文件夹下的ShowEarthModel
如果安装成功了,就可以显示一个地球模型


安装Kinect2.2
~/src下解压安装包
make
make install



Kinect2.2的使用

针对单个Kinect

./bin/KinectUtil 可以列出连接到的Kinect设备

./bin/RawKinectViewer <camera index>

给出彩色图和深度图 可以进行标定,并生成一个二进制的IntrinsicParameters-<serial number>.dat文件

./bin/KinectViewer -c <camera index>给出重建后的结果

针对多个Kinect

为了合并多个Kinect摄像机的3D重建结果,首先要利用RawKinectViewer内标定各个摄像机。然后根据任意选取的世界坐标系外标定所有Kinect设备。

1 把标定目标放入所有待标定的Kinect设备的视野内

2 对每一个Kinect设备:

  a 运行RawKinectViewer并拟合出深度流中标定目标图像的网格

  b 保存但不投影网格,以接受一系列3D 结点.

  c 将结点复制到文件KinectPoints-<serial number>.csv

3 新建一个文件TargetPoints.csv ,包含标定目标的3D interior corner    positions

4 对每一个Kinect设备:

a 运行AlignPoints:

AlignPoints -OGKinectPoints-<serial number>.csv TargetPoints.csv

b 观察AlignPoints显示的误匹配点,如果误差太大则重复步骤2

c 将最终AlignPoints显示的最佳的拟合变换保存到ProjectorTransform-<serial number>.txt文件

5 在所有Kinect设备上运行KinectViewer。将显示所有3D视频,匹配上或多或少存在缝隙,这取决于之前标定的好坏。

此外,youtube上有视频演示,但是本人运行效果与视频上有一定差距,猜想也许是因为有个库不太兼容NVIDIA的显卡。

Kinect 3D视频捕捉_第1张图片


你可能感兴趣的:(Kinect 3D视频捕捉)