Add new VPR methods: selavpr and supervlad
Implemented the new SelaVPR and SuperVLD models. Refined Descriptor Extraction: The SelaVPR architecture outputs a tuple containing both local and global descriptors. To correctly integrate this into the VPR pipeline, the code now includes a conditional check:
if args.method.startswith("selavpr"):
descriptors = model(images.to(args.device))[1]
else:
descriptors = model(images.to(args.device))
Thank you for the PR!
This looks nice, except that I prefer to not modify the main.py unless really necessary. In the case of selavpr, you could create a wrapper that contains the model and returns only the global descriptors, so that the main.py is left unchanged.
Another little thing, the lines you added as parser.py (lines 231 to 243) can you ensure that the code doesn't break if the parameter backbone is None? Like in this line. In practice, all models should work even without passing --backbone and --descriptors_dimension
Great suggestions, let me find time to correct them.
Closing PR for lack of activity. Feel free to reopen or create a new one if/when you fix those issues