Skip to content
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

Anchor CA #4

Open
hogyun2 opened this issue Mar 15, 2023 · 8 comments
Open

Anchor CA #4

hogyun2 opened this issue Mar 15, 2023 · 8 comments

Comments

@hogyun2
Copy link

hogyun2 commented Mar 15, 2023

Hello. Thank you very much for your good research.
I understood that one anchor is created for each frame of pointcloud by reading the paper and looking at the code. Then, what is the criteria for selecting one anchor among the various CA?

@lewisjiang
Copy link
Owner

@hogyun2 In fact we slice a point cloud into multiple levels and top (by area) CAs at some levels are anchors. As described in the paper (Sec V.B.3, complexity analysis), we select 3x6=18 anchors for each scan.

@hogyun2
Copy link
Author

hogyun2 commented Mar 15, 2023

@lewisjiang Thank you for your answer.
Then, as I understand it, each scan will generate a graph (constellation) for one anchor, and 18 retrieval keys. Then, when I revisit, I wonder which key is used for loop detection out of 18 retrieval keys.
If I am mistaken, could you explain the process of loop detection?

@lewisjiang
Copy link
Owner

@hogyun2 Actually each anchor has an associated retrieval key and a local graph/constellation connection, as is shown in Fig.3 of the paper. When revisiting, all the keys in the query scan will be used.

@hogyun2
Copy link
Author

hogyun2 commented Mar 16, 2023

@lewisjiang Thank you for your answer.
In fact, is it comparing the 18 constellation with the 18 retrival keys of query scan and candidates scan?
Then, is recognized the revisited place determined by the average value of the comparison between query scan and candidates scan?

@lewisjiang
Copy link
Owner

@hogyun2 The number of comparison times is not definite, cuz at first the matching is a search with a maximum distance. The correlation value between query and candidate calculated from GMM optimization together with a given threshold jointly determines if a match is positive.

@euncheolChoi
Copy link

@lewisjiang
I have a question about something similar.
As I understand it, for one LiDAR SCAN data, there are 16 Anchor CAs and a structure of CACs connected to each Anchor CA. (16 CACs exist)
I understood this 'structure of 16 CACs' as a descriptor of the scene, and I'm wondering how to compare these descriptors.
For each of the 16 CACs, the GMM will give me a Correlation value, and then sum up all 16 Similarity values and compare them with the Threshold value to get the final pari?

thank you in advance.

@lewisjiang
Copy link
Owner

@euncheolChoi Yes, "18 anchor-centered descriptors per scan" is roughly the idea. When comparing, we first search the DB and do discrete check on an anchor-to-anchor basis, and this will propose several possible transforms with several poses.

We do not compare all possible combinations of descriptor pairs since one pair is enough to propose a good enough transform. It is possible that descriptors in two scans propose many transforms, and in that case we use some voting to select the most probable one. Note that the mission of CAC/key/descriptor is over when we obtain the intial guess of the transform.

Following that, the GMM is done with (almost) all CAs in a batch from two scans for a given transform when calculating correlation.

Hope this solves your question.

@hogyun2
Copy link
Author

hogyun2 commented Mar 16, 2023

@lewisjiang Thank you for your answer!
I'll read it again carefully based on the advices you referred to me. Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants