0

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

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

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

你能给我指导类似的软件/库(最好是 C++ 或 MATLAB)。

4

2 回答 2

0

您可能会发现 ILNumerics 非常适合您的需求:

http://ilnumerics.net

于 2013-10-26T10:30:54.673 回答
0

如果我做对了!您正在寻找模拟来自环境不同位置的多个摄像头的摄像头馈送。
我不知道任何网站或现成可用的解决方案,但这是我将如何进行:
采购动态环境的 3d 点云(请参阅 Kinect 3d slam 基准数据集)或使用 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,那么您可能希望查看这篇文章,然后执行其余步骤。

于 2013-10-28T17:45:41.233 回答