2013-10-26 46 views
0

我正在研究使用多臺攝像機進行計算機視覺應用。例如。在房間的每個角落都有一個攝像頭,任務是人的跟蹤。我想模擬這種環境。我需要的是:計算機視覺數據集的模擬

  • 定義動態3D環境的能力,例如,房間和移動的物體。
  • 將攝像機放置在不同位置併爲每個攝像機獲取模擬數據集的選項。

有沒有人有任何經驗呢?我檢查了攪拌機(http://www.blender.org),但目前我正在尋找更快/更易於使用的解決方案。

你能否給我指導類似的軟件/庫(最好是C++或MATLAB)。

回答

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再接着剩下的步驟。