The recomputeM​odelFromIn​liers parameter in estimateWorldCameraPose does not work properly.

3 views (last 30 days)
When I turn the recomputeModelFromInliers true from the default false, and try to get better model estimation will all the inliers. The result is much worse than the original model. This is due to an error in the section of code for recomputeModelFromInliers. It does not computer a model with all the inliers, but just uses the first 3 inliers for model calculation.
Where can I find a correct function/code that can do recomputeModelFromInliers?
  3 Comments
Jack Wang
Jack Wang on 19 Nov 2021
Hi Sahil,
Thank you for the response.
In the Monocular Visual Odometry, VisualOdometryExample.mlx, it calls estimateWorldCameraPose function twice.
In estimateWorldCameraPose.m on line 125: params.recomputeModelFromInliers = false; The on line 141 it calls the function [isFound, pose, inlierIdx] = vision.internal.ransac.msac(points, params, funcs, cameraParams.IntrinsicMatrix, outputClass); If change params.recomputeModelFromInliers = true, the msac should recompute model from all the inliers, as indicated in the msac. However, it does not recompute a model with all the inliers, but just uses the first 3 inliers to get a model, which usually is much worse than the original model.
Sahil Jain
Sahil Jain on 23 Nov 2021
Hi Jack,
Could you please share the input data to the "estimateWorldCameraPose" function so that the issue can be investigated?

Sign in to comment.

Answers (3)

Jack Wang
Jack Wang on 23 Nov 2021
Hi Sahil,
When you run the VisualOdometryExample.mlx, it calls estimateWorldCameraPose function twice online 130 and 194.
The input data for estimateWorldCameraPose function include imagePoints, worldPoints and intrinsics

Sahil Jain
Sahil Jain on 10 Dec 2021
Hi Jack
From my understanding of the question, you want the model to be recomputed using all the inliers instead of only three. However, the algorithm has been implemented based on the following reference which uses only three inliers:
Xiao-Shan Gao, Xiao-Rong Hou, Jianliang Tang and Hang-Fei Cheng, "Complete solution classification for the perspective-three-point problem," in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 25, no. 8, pp. 930-943, Aug. 2003, doi: 10.1109/TPAMI.2003.1217599.
You can try to modify the code to use all inliers, but it is not recommended and may not produce the desired result.

Jack Wang
Jack Wang on 12 Dec 2021
Hi Sahil,
Thanks for your response.
This means that aprameter "recomputeModelFromInliers" does not function as it supposed to do.
I have already revised the code and get recomputeModelFromInliers work.

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!