There is too many 2d position estimation with one camera. Is there any 3d position estimation application or technique with one camera? If there is no application or technique why?
4 Answers
take an image than take with little zoom out. crop two specific points from first and match (tepmlate)from second. than calculate difference this gives relation between two images than you can compute depth with camera angle.
One camera gives you no depth information, so you have to have some information about the scene before you start (a priori).
The most common way to handle this is with structured light, where you project a known pattern and evaluate deviations from the pattern.
-
1$\begingroup$ zoom in or out than correlate two images works or not? $\endgroup$– acsMay 25, 2015 at 15:47
-
3$\begingroup$ Zooming in or out doesn't get you anything, assuming the camera stays fixed in the same position, because it doesn't add any depth information. Depth information is implied by exploiting parallax. If you are on a train or car looking out of the window, parallax is what causes the nearby scenery to move by you very quickly while far away scenery doesn't appear to move at all. Stereo cameras have two cameras, with a known distance between them, to see what "moves" a lot between the two images and what doesn't. Lots of movement = really close. $\endgroup$– Chuck ♦May 25, 2015 at 17:18
-
3$\begingroup$ You can get by with one camera if you take an image, move the camera a known amount, then take another image, but this requires (1) for you to know exactly how far the camera moved and (2) it requires the scene to remain stationary between the two shots. The first requirement is not terribly difficult unless you're trying to do it with only accelerometers or other sensors that have noise and/or drift, but the second requirement needs essentially lab conditions or "still life". You probably couldn't do it in a "live" scenario because you wouldn't be able to reposition the camera fast enough. $\endgroup$– Chuck ♦May 25, 2015 at 17:22
It is possible to use one camera for 3d position estimation but it is significantly more difficult.
Depth/distance data must be obtained to generate the 3d representation and several techniques have been developed to this end such as rapidly moving the camera to a known, fixed secondary position to capture a second image for processing or mounting a fixed mirror in the camera view to provide the offset image.
However the reliability and complexity of these methods haven't led to their widespread uptake. Arguably the IR CMOS sensor in the Kinect is not a 'camera' and this system uses a 'point cloud' projection and interpretation method to obtain it's depth data.
Overall the simplified two camera approach has historically been the most cost effective and the maths behind the processing algorithms came from sound processing and radar signal interpretation, distance and range finding.
There is one really simple solution: take a snapshot of the scene, move to the side a few centimetres and take another snapshot. Alternatively, move forward with the camera pointed to one side. Now you have two images and can process them as though you have two cameras or one stereoscopic pair. The only problem I can see with this method is that any parts of the scene that have moved will cause some issues, but it probably wouldn't be too hard to filter those parts of the scene out.