ySalaun / LineSfM

131 stars 46 forks source link

How to compute camera pose without any feature points #4

Closed haopo2005 closed 6 years ago

haopo2005 commented 6 years ago

Hi, From the paper "Robust SfM with Little Image Overlap", you have said, "Our approach thus leverages on lines for pose estimation and reconstruction, although it also exploits points when available."

I'd like to know how to compute camera pose what if there are not any feature points at all. Currently, I have trouble at the CALIBRATION stage. I find that your code must read points descriptor and points match in the main_calibration.cpp. So I have to delete these two lines. After that, I get the wrong camera pose: 1 -0 -nan 0 1 -0 nan 0 1 7.7018e-311 7.7018e-311 -1

And also, I find some thread in another closed issue, you said ,"If you want to use line only, you should use trifocal methods", I'd like to know how to turn on the trifocal model?

Best regards, Jin

haopo2005 commented 6 years ago

PROCESSED IN 0.021644 images 0 and 1 Error in rotation : 120 Error in translation : nan images 1 and 2 Error in rotation : -nan Error in translation : nan images 2 and 3 Error in rotation : -nan Error in translation : nan images 3 and 4 Error in rotation : -nan Error in translation : nan images 4 and 5 Error in rotation : -nan Error in translation : nan images 5 and 6 Error in rotation : -nan Error in translation : nan images 6 and 7 Error in rotation : -nan Error in translation : nan images 7 and 8 Error in rotation : -nan Error in translation : nan images 8 and 9 Error in rotation : -nan Error in translation : nan images 9 and 10 Error in rotation : -nan Error in translation : nan images 10 and 11 Error in rotation : -nan Error in translation : nan images 11 and 12 Error in rotation : -nan Error in translation : nan images 12 and 13 Error in rotation : -nan Error in translation : nan images 13 and 14 Error in rotation : -nan Error in translation : nan images 14 and 15 Error in rotation : -nan Error in translation : nan images 15 and 16 Error in rotation : -nan Error in translation : nan images 16 and 17 Error in rotation : -nan Error in translation : nan images 17 and 18 Error in rotation : -nan Error in translation : nan images 18 and 19 Error in rotation : -nan Error in translation : nan images 19 and 20 Error in rotation : -nan Error in translation : nan images 20 and 21 Error in rotation : -nan Error in translation : nan images 21 and 22 Error in rotation : -nan Error in translation : nan images 22 and 23 Error in rotation : -nan Error in translation : nan images 23 and 24 Error in rotation : -nan Error in translation : nan images 24 and 25 Error in rotation : -nan Error in translation : nan AVERAGE RESULTS: Rotation: -nan Translation: nan

ySalaun commented 6 years ago

Hi,

In the paper "Robust SfM with Little Image Overlap", the subject is the global pose estimation from relative pose estimation. In fact, you will need feature points to compute the relative pose between each consecutive pairs of cameras (CALIBRATION part) but not for global pose estimation (RECONSTRUCTION part). If you don't have a lot of feature points it is not necessarily an issue because lines will help RANSAC find the good ones. If you really don't have any feature points, you can try to use line intersections to generate feature points.

About the trifocal method, it is not available in this code. However, you could either find somebody that already implemented this part or implement it yourself.

Best,

Yohann

haopo2005 commented 6 years ago

Thanks for your detailed explanation. Besides, which version or branches of openMVG do you suggest? I got a problem: The memory is out of range during reading openmvg match files.

ySalaun commented 6 years ago

Hi,

About openMVG, I think that the official version should work (just to be sure: https://github.com/openMVG/openMVG). However if you have any issue (regarding openMVG code) you can ask it on Github, Pierre is pretty responsive and I don't think I'll be able to help you.

Also, if you're not familiar with openMVG and you already have a working code for point detection & matching, you can also plug it into this code. However I had noticed that opencv code was less performant than openMVG regarding point detection & matching.

Best,

Yohann