How to test SfM for multiple view?
Show older comments
Hello everyone, I try to test the SfM with my own data. I want to know
(1) in this command, load (fullfile(imageDir,'cameraParams.mat')) , Is it need to do camera calibration to load cameraParams.mat? If need, I already try the camera calibration toolbox in matlab, but it's not ok. So, I do the cameraParams.mat in SfM demo folder is moved to my current own image data folder. And then
(2) i use helperEstimateRelativePose , but they showed this error
Error using helperEstimateRelativePose (line 70)
Unable to compute the Essential matrix
Error in sfM_multi_own (line 39) [relativeOrient, relativeLoc, inlierIdx] = helperEstimateRelativePose(matchedPoints1, matchedPoints2, cameraParams);
I don't know how to do and I'm really confused. Please help me! I want to listen for your suggestion seriously.
6 Comments
Thida Aung
on 11 Sep 2017
now I face the same error as you.
Joe Joe
on 12 Sep 2017
Victor Medina
on 20 Oct 2017
Edited: Victor Medina
on 20 Oct 2017
I just managed to solve this same error. In my case, it seems I was using too many images, so the resulting equation system was overdetermined and, therefore, the matrix could not be computed. I just tested with a number of images similar to the example (6, in my case) and enough camera movement from frame to frame, and it works like it should.
Hope this helps.
UBAID ULLAH
on 7 May 2018
@Victor Medina ... how'd you solve this problem? i cannot solve it even after number of images reduced to 6. still it gives me the same error. can you please help me out sir?
Mostafa Hossam
on 28 Mar 2020
same error please help
Abdalmalek Abu-Raddaha
on 3 Mar 2022
Have you guys solved this?
I modified the helperEstimateRelativePose function decreased the confidence and increased the max distance but still getting the same error
Answers (1)
jhz
on 20 Sep 2018
Consider increasing the maximum distance or decreasing the desired confidence. You can do this by modifying the Matlab built-in function helperEstimateRelativePose.m: line 43. Then you can add as many images as you want. After modification, it should look like this:
[E, inlierIdx] = estimateEssentialMatrix(matchedPoints1, matchedPoints2,...
cameraParams, 'Confidence', 50, 'MaxDistance', 5);
But be careful editing the built-in functions. In my case, I modified the function and saved into another folder by another name and add that folder into path. I hope this will help someone.
Categories
Find more on Camera Calibration in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!