MISS3D / s2p

This repository is not maintained, please use https://github.com/centreborelli/s2p instead.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cartosat data produces incorrect output

kbalakrish opened this issue · comments

I have used S2P previously from the older repository (installed in January 2016), and it worked fine with Cartosat data. Carlo had very kindly added support for Cartosat in that version. But yesterday I reinstalled S2P from this new github repository and the output is not quite right.

Attaching two dsm files (in zipped folder named dsm_error.zip).

  1. The file named dsm_original.tif is the output I got with the old installation
  2. The file named 5m_carto_dsm22feb.tif is what I get with the new installation
    Also attaching the .json file (stereo.json) so you can see the settings used to run S2P (also in zipped folder).
    dsm_error.zip

The cartosat image pair is available here: https://www.dropbox.com/s/4sj8akfoui2les0/152904411.zip?dl=0

Thank you

Hi Krishna,
If you can provide the commit hash of the version that worked fine it could help us track down the cause of the difference.

Best

Hi Carlo,
This should be the one that worked: aa989b2
Let me know if you need any other information,

Thanks,
Krishna

Hi Krishna,

Thank you very much for raising this issue. After a bit of analysis, it turns out that the problem is caused by an optimisation that was introduced in s2p to speed-up the search for SIFT matches. This optimisation assumes that the stereo-rectification computed blindly from the RPC camera models is correct up to 10 pixels and restricts the search area to a narrow stripe of 10 pixels around epipolar lines.

On this pair of Cartosat images the pointing error is larger than 10 pixels, hence all SIFT matches are wrongly rejected.

I've added a parameter called max_pointing_error for tuning this value. It defaults to 10 pixels (to keep the previous behaviour). On this pair of Cartosat images you can safely set it to 100 pixels to get the pipeline work correctly. Just add "max_pointing_error": 100 in the json input configuration file.

As a side note, I'd recommend also adding the parameter "register_with_shear": true to reduce the disparity range and speed-up the whole processing.

Best,
Carlo