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

1 回表示 (過去 30 日間)
Jack Wang
Jack Wang 2021 年 11 月 7 日
回答済み: Jack Wang 2021 年 12 月 12 日
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 件のコメント
Jack Wang
Jack Wang 2021 年 11 月 19 日
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 2021 年 11 月 23 日
Hi Jack,
Could you please share the input data to the "estimateWorldCameraPose" function so that the issue can be investigated?

サインインしてコメントする。

回答 (3 件)

Jack Wang
Jack Wang 2021 年 11 月 23 日
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 2021 年 12 月 10 日
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 2021 年 12 月 12 日
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.

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by