-
Notifications
You must be signed in to change notification settings - Fork 599
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added support for GV from known poses. #178
Conversation
I would rather not update the Aachen pipeline and keep |
Addressed the comments and reverted back the notebook. |
]) | ||
|
||
|
||
def compute_epipolar_errors(qvec_r2t, tvec_r2t, p2d_r, p2d_t): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What's was the abbrevs of r
and t
?
r
for relative, t
for target? @mihaidusmanu
When GT poses are available, we can use them to compute the two-view geometries and filter the matches thus skipping the estimation of E/F/H.
This PR implements this functionality. The filtering is done based on distances to epipolar lines in normalized image coordinates (to avoid distortion). The parameter
max_error
ofgeometric_verification
is a multiplier of the detection noise. COLMAP uses by default 4px for SIFT (so if we assume a detection noise of 0.6-0.7px, we should have amax_error
of ~6).The current implementation takes 12 minutes to filter matches for the entire database model of Aachen (but it could potentially be multi-threaded if needed).
Below are some results with NetVLAD Top 20 + SuperPoint + SG on Aachen (obtain using the updated
pipeline_Aachen.ipynb
).Triangulation statistics
COLMAP GV (re-estimation)
GV from GT poses (max_error = 6.0)
GV from GT poses (max_error = 4.0)
Localization results