OE 19. Module Stereo - alalek/opencv GitHub Wiki

Introduce a separate stereo correspondence module with up-to-date algorithms

  • Author: Vadim Pisarevsky
  • Link: The feature request
  • Status: Draft
  • Platforms: All
  • Complexity: 1-2 man-weeks (or more, if OpenCL optimization is included)

Introduction and Rationale

The module calib3d from OpenCV 2.x and 3.x includes various functionality including stereo correspondence algorithms. At the same time, there is experimental stereo module in opencv_contrib that includes some new stereo correspondence algorithms or interesting modifications of existing algorithms. It makes sense to put this code into a dedicated module.

Proposed solution

Create a dedicated stereo module in the main repository with the best available (within the library) collection of stereo correspondence algorithms. Basically, these are StereoBM and StereoSGBM algorithms. StereoSGBM should at minimum include the 4-directional parallel version, may be 5-directional sequential versions, both pixel or feature-based. StereoBM should probably be just feature-based, because pixel-based is not very good.

The functionality may also include some API for stereo rectification, depth map to point cloud mapping etc. Potentially it may include multi-view depth estimation algorithms as well (something like DTAM).

Question: do we need to keep some (renamed) module in opencv_contrib for experimental stereo correspondence algorithms? Probably yes. Need some better than xstereo name.

Impact on existing code, compatibility

Overall, the external API will change slightly, if any (there will be StereoMatcher base class and the derivatives), but users will have to put some other include directives in their code (or keep using #include "opencv2/opencv.hpp")

Possible alternatives

nothing really; we need to consolidate stereo correspodence code.

References

TBD