模拟计算机视觉数据集



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

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

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

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

您可能会

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

http://ilnumerics.net

如果我

做对了! 您希望在环境的不同位置模拟来自多个摄像机的摄像机馈送。
我不知道任何站点或现成的解决方案,但这是我将如何进行:
購買動態環境的 3D 點雲(參閱 Kinect 3d slam benchmark 資料集)或使用 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,那么您可能希望检查这篇文章,然后按照剩余的步骤进行操作。

最新更新