I am working on an open source project s2p which creates digital height model from satellite stereo imagery. The procedure of how s2p works can be roughly summarized with the following steps.
- Split a large stereo image pair into smaller tiles (aka windows).
- Use SIFT and RANSAC to find feature points and rectify each pair of small tiles.
- Run stereo matching algorithm (eg, sgbm) on rectified small tiles and create disparity map.
- Triangulate disparity map and create height map.
My questions are:
In step 2. and 3., the aim is to find matching pixels in a pair of images, why does it choose two different methods (SIFT and sgbm) to do it.
I feel like SIFT and sgbm are two different methods trying to solve the same problem. Can sgbm be used in step 2. as well?
Is there any material can give more detail explanation of what the difference is between this two methods and why we need both in a pipeline?
I feel like I am missing something here. Any help is appreciated. Thank you.