facebookresearch / OrienterNet

Source Code for Paper "OrienterNet Visual Localization in 2D Public Maps with Neural Matching"
Other
447 stars 44 forks source link

Questions about the Good Semantics to localize experiment(Fig 10.) #40

Open 99angpaka opened 10 months ago

99angpaka commented 10 months ago

Hello, Sarlin. your research is very intersting! Thank you for your good research.

However, I asked a question about the experimental design of "Good Semantics to localize". loca

As described in the "which map elements are most important? section in the Appendix, how did you experiment by removing objects?

Exactly, I want to know how you removed each element from the map and I also want to ask if it is included in the code.

Thank you.

sarlinpe commented 10 months ago

This figure was generated by running the MGL evaluation and successively masking out each of the different classes with the mask_index argument:

https://github.com/facebookresearch/OrienterNet/blob/38e60a1160925b099ac2f521ef699f52f53e236b/maploc/evaluation/run.py#L59-L59

https://github.com/facebookresearch/OrienterNet/blob/38e60a1160925b099ac2f521ef699f52f53e236b/maploc/evaluation/run.py#L76-L78

It is a tuple (index_type, index_class) where index_type$\in\{0,1,2\}$ (areas, ways, or nodes), and index_class is the index of the class in the list of the corresponding type maploc.osm.parser.Groups.[areas|ways|nodes]:

https://github.com/facebookresearch/OrienterNet/blob/38e60a1160925b099ac2f521ef699f52f53e236b/maploc/osm/parser.py#L207-L210

Results for each class can thus be obtained with:

from maploc.evaluation.mapillary import run

results = {}
for index_type, classes in enumerate((Groups.areas, Groups.ways, Groups.types)):
    for index_class, class_name in enumerate(classes):
        results[class_name] = run(..., mask_index=(index_type, index_class))