计算机视觉数据集的模拟

时间:2013-10-26 10:26:25

标签: c++ matlab computer-vision augmented-reality

我正在研究将多台摄像机用于计算机视觉应用。例如。房间的每个角落都有一个摄像头,任务是人工跟踪。我想模拟这种环境。我需要的是:

  • 能够定义动态3D环境,例如房间和移动的物体。
  • 将相机放置在不同位置并为每个相机获取模拟数据的选项。

有没有人有这方面的经验?我检查了搅拌机(http://www.blender.org),但目前我正在寻找更快/更容易使用的解决方案。

您能否为我提供类似软件/库(最好是C ++或MATLAB)的指导。

2 个答案:

答案 0 :(得分:0)

您可能会发现ILNumerics完全符合您的需求:

http://ilnumerics.net

答案 1 :(得分:0)

如果我做对了!您希望在环境的不同位置模拟来自多个摄像机的摄像机馈送 我不知道任何网站或工作现成的解决方案,但这是我将如何进行:
获取动态环境的3d点云(请参阅Kinect 3d slam benchmark datasets)或使用Kinect生成您自己的一个(希望您拥有Xbox kinect)。

一旦您获得了PCL点云格式的kinect点云,您就可以模拟各种摄像机的视频输入 像这样的伪代码就足够了:

#include <pcl_headers>

//this method just discards all 3d depth information and fills the pixels with rgb values
//this is like a snapshot in the pcd_viewer of pcl(point cloud library)
makeImage(cloud,image){};

pcd <- read the point clouds
camera_positions[] <- {new CameraPosition(affine transform)...}

for(camera_position in camera_positions)
    pcl::transformPointCloud(pcd,
                             cloud_out,
                             camera_position.getAffineTransform()
                            );
//Now cloud_out contains point cloud in different viewpoint
    image <- new Image();
    make_image(cloud_out,image);
    saveImage(image);   

pcl提供了在给定适当参数pcl::trasformPointCloud()的情况下转换点云的功能 如果您不想使用pcl,那么您可能希望检查 this post ,然后执行其余步骤。