A few days ago, I just shared my concerns about the price of computer vision hardware on this same exact forum (see What main factors/features explain the high price of most industrial computer vision hardware?) and I think a new but related post is needed. So here we go.
Here are some details to consider regarding the overall scanner I want to build:
Restricted space: my overall scanner can't be larger than 3 feet cube.
Small objects: the objects I will be scanning shouldn't be larger than 1 foot cube.
Close range: the camera would be positioned approximately 1 foot from the object.
Indoor: I could have a dedicated light source attached to the camera (which might be fixed in a dark box)
Here are the stereo cameras/sensors I was looking at (ordered by price):
Two Logitech webcams (no model in particular)
Cheap
Harder to setup and calibrate
Need to create your own API
Built for: what you want to achieve
Intel RealSense: http://click.intel.com/intel-realsense-developer-kit.html
$100
High resolution: 1080p (maybe not for depth sensing)
Workable minimum range: 0.2 m
Unspecified FOV
Built for: hands and fingers tracking
Kinect 2.0: https://www.microsoft.com/en-us/kinectforwindows/
$150
Low resolution (for depth sensing): 512 x 424
Unworkable minimum range: 0.5 m
Excellent FOV: 70° horizontal, 60° vertical
Built for: body tracking
Structure Sensor http://structure.io/developers
$380
Normal resolution with high FPS capability: 640 x 480 @ 60 FPS
Unspecified minimum range
Good FOV: 58° horizontal, 45° vertical
Built for: 3D scanning (tablets and mobile devices)
ZED Camera: https://www.stereolabs.com/zed/specs/
$450
Extreme resolution with high FPS capability: 2.2K @ 15 FPS (even for depth sensing) and 720p @ 60 fps
Unviable minimum range: 1.5 m
Outstanding FOV: 110°
Built for: human vision simulation
DUO Mini LX: https://duo3d.com/product/duo-minilx-lv1
$595
Normal resolution with high FPS capability: 640 x 480 @ 60 FPS
Workable minimum range: 0.25 m (see https://stackoverflow.com/questions/27581142/duo-3d-mini-sensor-by-code-laboratories)
Phenomenal FOV: 170° (with low distortion)
Built for: general engineering
Bumblebee2: http://www.ptgrey.com/bumblebee2-firewire-stereo-vision-camera-systems
- Too much expensive (not even worth mentioning)
Note: All prices are in date of April 18th 2015 and might change overtime.
As you can see, some have really goods pros, but none seems to be perfect for the task. In fact, the ZED seems to have the best specifications overall, but lacks of minimum range (since it is a large baselined camera designed for long range applications). Also, the DUO Mini LX seems to be the best for my situation, but unlike the ZED which generates really accurate depth maps, this one seems to lack of precision (lower resolution). It might be good for proximity detection, but not for 3D scanning (in my opinion). I could also try to build my own experimental stereo camera with two simple webcams, but I don't know where to start and I don't think I will have enough time to deal with all the problems I would face doing so. I am now stuck in a great dilemma.
Here are my questions:
What good resources on the internet give you a good introduction on 3D scanning concepts (theoretically and programmatically)? I will be using C++ and OpenCV (I already worked with both a lot) and/or the API provided with the chosen camera (if applies).
Should you have a static camera capturing a moving object or a moving camera capturing a static object?
Should I use something in conjunction with stereo camera (like lasers)?
Is it profitable to use more than two cameras/sensors?
Are resolution, FPS and global shuttering really important in 3D scanning?
What camera should I get (it can also be something I didn't mention, in the range of $500 maximum if possible)? My main criteria is a camera that would be able to generate an accurate depth map from close range points.
Thanks for your help!