dbolya/tide

What does 'suppress' in the paper mean?

LiewFeng opened this issue · 1 comments

Hi, @dbolya . The oracle will suppress some detection when fixing an error. Does 'suppress' mean deleting the detection or treating the detection as a false positive? Thanks.

Deleting the detection.

This happens here:

class BestGTMatch:
"""
Some errors are fixed by changing false positives to true positives.
The issue with fixing these errors naively is that you might have
multiple errors attempting to fix the same GT. In that case, we need
to select which error actually gets fixed, and which others just get
suppressed (since we can only fix one error per GT).
To address this, this class finds the prediction with the hiighest
score and then uses that as the error to fix, while suppressing all
other errors caused by the same GT.
"""
def __init__(self, pred, gt):
self.pred = pred
self.gt = gt
if self.gt['used']:
self.suppress = True
else:
self.suppress = False
self.gt['usable'] = True
score = self.pred['score']
if not 'best_score' in self.gt:
self.gt['best_score'] = -1
if self.gt['best_score'] < score:
self.gt['best_score'] = score
self.gt['best_id'] = self.pred['_id']
def fix(self):
if self.suppress or self.gt['best_id'] != self.pred['_id']:
return None
else:
return (self.pred['score'], True, self.pred['info'])