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

Question about o2m matcher? #3

Open
chenzyhust opened this issue Mar 26, 2024 · 4 comments
Open

Question about o2m matcher? #3

chenzyhust opened this issue Mar 26, 2024 · 4 comments

Comments

@chenzyhust
Copy link

chenzyhust commented Mar 26, 2024

o2m matcher can guarante that each GT will have at least 1 prediction matching?

@ZhaoChuyang
Copy link
Collaborator

Hi, it cannot, but this case is rare. The o2m matcher initially computes the matching score between all GTs and all predictions, then assigns each prediction to the GT with the highest score (if the score is above the threshold). When a GT has no predictions with a matching score above the threshold, the matcher assigns the prediction with the highest score to it. This is controlled by the allow_low_quality_matches parameter in Matcher (in matcher_o2m.py), which is set to True by default.

However, there are cases where a GT A has no matched predictions, and the prediction p with the highest score to it is assigned to a different GT B. In this scenario, prediction p remains assigned to B, leaving GT A without any matched predictions.

@yuanqianguang
Copy link

Hi, it cannot, but this case is rare. The o2m matcher initially computes the matching score between all GTs and all predictions, then assigns each prediction to the GT with the highest score (if the score is above the threshold). When a GT has no predictions with a matching score above the threshold, the matcher assigns the prediction with the highest score to it. This is controlled by the allow_low_quality_matches parameter in Matcher (in matcher_o2m.py), which is set to True by default.

However, there are cases where a GT A has no matched predictions, and the prediction p with the highest score to it is assigned to a different GT B. In this scenario, prediction p remains assigned to B, leaving GT A without any matched predictions.

How to compute the loss of GT A in this condition? ignoring or any other operation?

@ZhaoChuyang
Copy link
Collaborator

Hi, it cannot, but this case is rare. The o2m matcher initially computes the matching score between all GTs and all predictions, then assigns each prediction to the GT with the highest score (if the score is above the threshold). When a GT has no predictions with a matching score above the threshold, the matcher assigns the prediction with the highest score to it. This is controlled by the allow_low_quality_matches parameter in Matcher (in matcher_o2m.py), which is set to True by default.
However, there are cases where a GT A has no matched predictions, and the prediction p with the highest score to it is assigned to a different GT B. In this scenario, prediction p remains assigned to B, leaving GT A without any matched predictions.

How to compute the loss of GT A in this condition? ignoring or any other operation?

Hi, in this case, the loss of GT A is ignoring, treating as the case where no predictions are matched for GT A.

@yuanqianguang
Copy link

Thks so much ^_^

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