Alex Rivera | Logout

How do I construct a 3D model of a room from 2 stereo cameras? What is the determining factor to an accurate construction?

Asked 2010-06-18T09:01:09.473
14

Currently, I have extracted depth points to construct a 3D model from 2 stereo cameras. The methods I have used are openCV graphCut method and a software from http://sourceforge.net/projects/reconststereo/. However, the generated 3D models are not very accurate, which leads me to question: 1) What is the problem with pixel-based method? 2) Should I change my pixel-based method to feature-based or object-recognition-based method? Is there a best method? 3) Are there any other ways to do such reconstruction?

Additionally, the depth extracted comes only from 2 images. What if I am turning the camera 360 degrees to obtain a video? Looking forward to suggestion on how to combine this depth information.

Thank you very much :)

Edit
Report

3 Answers

6

The key problem that defines the accuracy of stereo reconstruction is disparity estimation. This area has been investigated extensively, but state-of-the-art results are collected on the page: http://vision.middlebury.edu/stereo/eval/ I recommend you to pick up one of the top methods. Probably you will need to implement it by yourself (references to the papers are in the bottom of the page), or try to find an implementation on the homepages of the authors. Also look at http://vision.middlebury.edu/MRF/code/ .

You should also try to figure out the reason of low accuracy. It may be inability of the algorithm to capture the structure of a scene, or just low resolution of an output. In the latter case you need to go to the sub-pixel accuracy. The number of methods address this problem. Use the Error Threshold combo-box to rank the algorithms according to the desired precision.

Multiple cameras could help as well. Keywords are "multi-view stereo".

answered 2010-06-22T17:13:26.400
0

What if I am turning the camera 360 degrees to obtain a video?

I think you meant 180 degrees. If you turn both cameras (i.e. the stereo rig) through 180 degrees, then it's fine.

     V        V
    [.]      [.] 

Turn the rig 180 degrees

    [.]      [.] 
     ^        ^

But if both cameras are 180 degrees to each other, and since there's no overlap, there's nothing you can do.

     V 
    [.]

    [.]
     ^     

Also, for your question regarding pixel-based vs. feature-based vs. object recognition-based --- what's your final objective?

answered 2010-06-18T13:39:39.570
0

Is there a best method?

The best method is to make the model yourself. Requires few weeks of training with blender. With several high-resolution cameras you can make a fairly decent result very quickly. You'll do better job than a computer.

Are there any other ways to do such reconstruction?

Laser scanning. Google for "homemade laser scanner" or "homemade 3d scanner" . Several people tried to develop such systems with various success. You'll need a line laser (can make one from laser pointer). But you won't get color information this way - only relief.

What if I am turning the camera 360 degrees to obtain a video?

You cannot obtain depth information from only one camera even if you rotate it. You need 2 or more overlapping shots taken from different points. Or you could try putting object on turntable (although because you're making a room, it isn't possible).

answered 2010-06-18T13:55:03.387

Your Answer