stereo_pprc / matches / ransac

4 views
Skip to first unread message

James Hollingsworth

unread,
Mar 5, 2026, 9:41:43 AMMar 5
to Ames Stereo Pipeline Support
Hi Oleg,

I have a case where I'm trying to generate dense GCPs between a raw image and a reference ortho image. Because they look a little different, ipfind/ipmatch struggle... so I have to collect a few matches manually. I then want to run parallel_stereo to generate dense matches. (I don't use correlator-mode, because the images are not aligned, so I need the affine-epipolar mode... also, I know the two images do actually correlate well enough, as I tested this elsewhere).

The problem is that stereo_pprc failes because it tries to use RANSAC on the matches I give it (I only have 8)... also, if fails when I use the auto match point generation in stereo_pprc, and despite experimenting with the parameters, I couldn't get it to continue. However, I know the ones I collected are good enough to go directly to the affine epipolar reprojection step. But I don't seem to be able to force stereo_pprc to skip the RANSAC step and simply use the matches I give it? Maybe I'm missing something?!

I tried using all these options (in various combinations):
--skip-rough-homography
--min-num-ip 5 
--ip-num-ransac-iterations 0 
--alignment-num-ransac-iterations 0 

... but every time the RANSAC outlier removal is invoked in stereo_pprc, and the process fails.

As an alternative, I also collected some gcps to generate a basic camera for the raw image, which I then mapprojected and then successully correlated with the reference ortho using parallel_stereo correlator-mode to get dense matches. This works well!... but I end up with matches between the mapprojected raw image and the reference ortho... and I want them for the raw image. 

Is there a way to project mapprojected image coordinates backt to the raw geometry? Bundle adjust and stereo_tri has this logic under the hood somewhere... it would be super handy to be able to access it for his purpose. It would be GCP collection from refrence imagery much more viable.

Cheers,
J

Oleg Alexandrov

unread,
Mar 5, 2026, 12:58:12 PMMar 5
to James Hollingsworth, Ames Stereo Pipeline Support
James,

Normally you have to go through ransac indeed if not all of your preprocessing data exists (matches, L.tif, alignment transform, etc).  In that case, if don't want to do anything about filtering, the following looks relevant:

RANSAC in ip filtering uses --ip-inlier-factor. A large inliner factor should likely allow all your matches without removal.

Then affine epipolar RANSAC uses --global-alignment-threshold. I think a large threshold should allow things in too.

There is also --epipolar-threshold somewhre that can be set to something large too. 

I think 8 matches should be enough. If still no luck try say 10 but I doubt that is where the problem is.

If still getting errors, you can send me the exact printout and I can correlate with the code.

> Is there a way to project mapprojected image coordinates back to the raw geometry? Bundle adjust and stereo_tri has this logic under the hood somewhere

The option --mapprojected-data is for that. If you have already matches between mapprojected images and no matches between original images it will unproject them for you. https://stereopipeline.readthedocs.io/en/latest/tools/stereo_gui.html#creating-interest-point-matches-using-mapprojected-images


--
You received this message because you are subscribed to the Google Groups "Ames Stereo Pipeline Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ames-stereo-pipeline...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ames-stereo-pipeline-support/c2e809fd-68b5-4ade-9b62-fcee414ed1e1n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages