ducha-aiki / ransac-tutorial-2020-data

Starter kit for the CVPR 2020 RANSAC tutorial benchmark
Apache License 2.0
73 stars 12 forks source link

The Methods Used #1

Open RoyiAvital opened 11 months ago

RoyiAvital commented 11 months ago

I read your great tutorial Benchmarking Robust Estimation Methods.

Looking at Homography, I couldn't decipher what were the exact methods used.

image

  1. SciKit Image
    Do you mean something like: model_robust, inliers = ransac((src, dst), ProjectiveTransform, min_samples=3, residual_threshold=2, max_trials=100)?
  2. LMeDS and OpenCV Rho means using methods LMEDS and RHO - PROSAC for OpenCV?
  3. What's OpenCV H? Is it just the Least Squares method with added robustness?
  4. What's GC on its own? Is that RANSAC GC? Namely Graph Cut RANSAC?
ducha-aiki commented 11 months ago

Hi,

I read your great tutorial Benchmarking Robust Estimation Methods.

Looking at Homography, I couldn't decipher what were the exact methods used.

image

  1. SciKit Image Do you mean something like: model_robust, inliers = ransac((src, dst), ProjectiveTransform, min_samples=3, residual_threshold=2, max_trials=100)? Yes, but your params are wrong. Minsamples 4, num trials as in slide, threshold tuned to be optimal
  2. LMeDS and OpenCV Rho means using methods LMEDS and RHO - PROSAC for OpenCV? Yes
  3. What's OpenCV H? Is it just the Least Squares method with added robustness? No. It is cv2.RANSAC flag
  4. What's GC on its own? Is that RANSAC GC? Namely Graph Cut RANSAC? Yes
RoyiAvital commented 11 months ago

I see.

It makes one wonder why would using RANSAC with SciKit Image will have different results from OpenCV. As the only difference, for vanilla RANSAC, should be the random samples index generation.

Your work is greatly appreciated as a review of the different methods.

ducha-aiki commented 11 months ago

I see.

It makes one wonder why would using RANSAC with SciKit Image will have different results from OpenCV. As the only difference, for vanilla RANSAC, should be the random samples index generation.

No. OpenCV also implements quick sample rejection based on the cross-check https://github.com/opencv/opencv/blob/617d7ff575200c0a647cc615b86003f10b64587b/modules/calib3d/src/fundam.cpp#L67

Your work is greatly appreciated as a review of the different methods.

Thank you