KinFu - Kinect 3D Scan Software Bundle

KinFu - Kinect 3D Scan Software Bundle

http://codewelt.com/kinect3dscan

This software package enables you to utilize a Microsoft XBOX Kinect for scanning 3D geometry in real-time and saving it in various formats. The KinFu application depends on Fermi instructions of an NVIDIA CUDA-enabled GPU. Therefore, an NVIDIA GeForce GTX 300 graphic card or above is required.

Running the main application will show the depth map of the device and a real-time view of the output. As you then move around or point at an object from different angles the new depth data is continuously added for a complete capture of the scenario you're in.
Once you are satisfied with the result, the data can be stored in order to construct a mesh and the corresponding texture. Please keep in mind that this project is currently being developed and may be unstable. Since Microsoft XBOX Kinect devices are sold separately for about 100$, this is the cheapest option in scanning a scene anyone can use.

Download


Windows Download KinFu Kinect 3D Scan Toolkit Win32 MSVC2008
57.0 MB (59.866.150 Bytes)
  md5 54642e630effc502f42b2f0db5c8922a

KinFu Kinect 3D Scan Toolkit Win64 MSVC2008
65.0 MB (68.211.306 Bytes)
  md5 6bbaf5792088f3b010d1950c370c3b1e

Basic Usage


• Download the package and run the OpenNI and SensorKinect setup files from the install directory.

• Connect your XBOX Kinect device to a USB port and make sure the KinFuSnapshots directory is empty if you've run the application before.

• Now put the Kinect in a starting position and run
kinfu_largeScale_et_r.bat
Please move slowly while scanning. Select the empty view and press 'H' for the following list of hotkeys:

Esc : exit
T : take cloud
A : take mesh
M : toggle cloud exctraction mode
N : toggle normals exctraction
I : toggle independent camera mode
B : toggle volume bounds
* : toggle scene view painting (requires registration mode)
C : clear clouds
1,2,3 : save cloud to PCD(binary), PCD(ASCII), PLY(ASCII)
7,8 : save mesh to PLY, VTK
X, V : TSDF volume utility
L, l : On the next shift, KinFu will extract the whole current cube, extract the world and stop
S, s : On the next shift, KinFu will extract the world and stop

• Save the scene by pressing 'L' and slowly moving away from the captured scene.

• To construct the mesh run
kinfu_largeScale_mesh_output.exe world.pcd


• For a textured mesh, make sure the saved VGA images and corresponding camera coordinates in the KinFuSnapshots directory are placed in the same folder and run
kinfu_largeScale_texture_output.exe world.pcd


• Press 'q' at the visualizer showing all camera positions so the final output is saved to
textured_mesh.obj
and
textured_mesh.mtl

// Please note that there are numerous ways to construct a mesh from a point-cloud, so for example, once the pcd-file is saved, it can easily be loaded to an application like MeshLab.

// In case texture-mapping fails, try limiting the number of captured frames to about 10 or 20 shots.



Screenshots


Kinect 3D Scan Screenshot
3D Scan Screenshot
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCL (Point Cloud Library) 是一个广泛使用的开源库,用于处理三维点云数据。KinectFusion是一种基于RGB-D相机的三维重建技术,能够实时地构建环境的三维模型。PCL中提供了GPU加速的ICP(迭代最近点)算法,可以用于KinectFusion中的点云配准。 要使用GPU加速的ICP算法,需要使用PCL的gpu模块。首先需要安装CUDA和PCL的gpu模块。安装完成后,可以使用以下代码示例来使用GPU加速的ICP算法: ```c++ #include <pcl/gpu/kinfu_large_scale/kinfu.h> #include <pcl/gpu/kinfu_large_scale/kinfuLS.h> #include <pcl/gpu/containers/device_array.h> #include <pcl/gpu/kinfu_large_scale/impl/kinfuLS.hpp> #include <pcl/point_types.h> // 创建一个kinfu对象 pcl::gpu::kinfuLS::KinfuTracker::Ptr kinfu(new pcl::gpu::kinfuLS::KinfuTracker()); // 设置kinfu的参数,比如图像分辨率、体素大小等 kinfu->volume().setSize(256, 256, 256); kinfu->volume().setTsdfTruncDist(0.03f); kinfu->setDepthTruncationForICP(4.f); kinfu->setCameraMovementThreshold(0.001f); kinfu->setIcpCoresCount(256); // 读取RGB-D数据 pcl::gpu::kinfuLS::KinfuTracker::DepthMap depth_device; pcl::gpu::kinfuLS::KinfuTracker::ColorMap color_device; // 读取深度图和彩色图像 // ... // 运行kinfu kinfu->operator()(depth_device, color_device); // 获取点云数据 pcl::PointCloud<pcl::PointXYZI>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZI>()); kinfu->volume().fetchCloud(*cloud); // 运行GPU加速的ICP算法 pcl::gpu::DeviceArray<pcl::PointXYZI> cloud_device(cloud->size()); cloud_device.upload(cloud->points); kinfu->performLastICP(cloud_device); // 获取配准后的点云 kinfu->volume().fetchCloud(*cloud); ``` 在这个例子中,首先创建了一个kinfu对象,并设置了一些参数。然后读取RGB-D数据,并运行kinfu。接着将点云数据上传到GPU,并运行GPU加速的ICP算法。最后获取配准后的点云数据。 需要注意的是,GPU加速的ICP算法需要非常强的计算能力,建议使用高性能的GPU进行计算。同时,需要根据实际情况调整一些参数,比如体素大小、ICP迭代次数等,以获得更好的配准效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值