MCPcopy Create free account
hub / github.com/FoundationVision/ByteTrack / NearestNeighborDistanceMetric

Class NearestNeighborDistanceMetric

yolox/deepsort_tracker/deepsort.py:129–152  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

127
128
129class NearestNeighborDistanceMetric(object):
130 def __init__(self, metric, matching_threshold, budget=None):
131
132 if metric == "cosine":
133 self._metric = _nn_cosine_distance
134 else:
135 raise ValueError(
136 "Invalid metric; must be either 'euclidean' or 'cosine'")
137 self.matching_threshold = matching_threshold
138 self.budget = budget
139 self.samples = {}
140
141 def partial_fit(self, features, targets, active_targets):
142 for feature, target in zip(features, targets):
143 self.samples.setdefault(target, []).append(feature)
144 if self.budget is not None:
145 self.samples[target] = self.samples[target][-self.budget:]
146 self.samples = {k: self.samples[k] for k in active_targets}
147
148 def distance(self, features, targets):
149 cost_matrix = np.zeros((len(targets), len(features)))
150 for i, target in enumerate(targets):
151 cost_matrix[i, :] = self._metric(self.samples[target], features)
152 return cost_matrix
153
154
155class DeepSort(object):

Callers 1

__init__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected