-
Notifications
You must be signed in to change notification settings - Fork 462
Bundle Adjustment on VGGT outputs #78
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
Comments
Hi @dsvilarkovic , thanks for your interest! In VGGSfM, we use Aliked/Sift/Superpoint to extract keypoints, and run tracking over those keypoints to get the tracks over other frames. In VGGT, you can conduct tracking as shown in Detailed Usage, e.g.,
(I noticed the released checkpoint has a lower tracking accuracy compared to our original version and working to solve it, but it should still give you some decent results) |
hi may i know how keypoint sampling works when you perform BA, did you uniformly samples key points from the first frame and use their tracking info to perform BA or any other specific policy? Further how did you decide the number of keypoints (N)? (obviously its some sort of trade off: more points brings more accuracy yet might be slower.) |
Hi @dsvilarkovic , We used Aliked to extract keypoints. Usually N=1024 is enough. If aiming for better accuracy, you could try N=2048. Higher number will not bring much more improvement, in our observations. |
@jytime what do you use for inlier_masks and valid_tracks? Do you put all ones or you use some values from VGGT's output to do this? I am building BA setup with the usage of globalBA from VGGSFM. I extract keypoints using Hloc's Superpoint (1024 of them on the first image) and then I track keypoints with VGGT's tracker on S-1 other images. For filtering tracking i do this:
Triangulated points are filtered sub 1024 keypoints that use predicted world pointcloud values from the VGGT's pointcloud predictor.
TLDR: How do you set values for inlier_mask and pred_tracks? |
Hi @dsvilarkovic , In this case, the inlier_mask can be computed by the something like |
Hi @dsvilarkovic any progress? |
@supertan0204 not yet, I am bit busy with private work. If you have some BA datasets that you want me to try it on, I would appreciate guidance. |
Hi @dsvilarkovic it would be super helpful if you could kindly share how you performed the first two parts (i.e. # 1 and # 2 based on your comments) of the codes you shared :) |
Hello,
I am trying to work with your model and was trying to figure out how I can create needed data for the global Bundle Adjustment as you do it in VGGSFM as suggested by this Issue comment. So far I understand I can create global pointcloud with predictions_to_glb function from vggs/visual_util.py, but I don't understand how to create tracks for init_BA or global_BA from VGGSFM's triangulation.py script?
I am ready to work towards building a Pull Request for bundle adjustment on VGGT repo if I get some help on this.
The text was updated successfully, but these errors were encountered: