diff --git a/requirements.txt b/requirements.txt index 64842ad..39d57e7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,13 @@ numpy h5py Cython -scipy -torch>=0.3.1 +scipy==1.2.1 +torch==0.4.1 opencv-python cffi sklearn numba -torchvision +torchvision==0.2.1 fire -motmetrics \ No newline at end of file +motmetrics +pillow==6.2.2 diff --git a/tracker/mot_tracker.py b/tracker/mot_tracker.py index a424bd4..ff6b619 100644 --- a/tracker/mot_tracker.py +++ b/tracker/mot_tracker.py @@ -188,9 +188,9 @@ def __init__(self, min_cls_score=0.4, min_ap_dist=0.64, max_time_lost=30, use_tr self.kalman_filter = KalmanFilter() - self.tracked_stracks = [] # type: list[STrack] - self.lost_stracks = [] # type: list[STrack] - self.removed_stracks = [] # type: list[STrack] + self.tracked_stracks = [] # type: list[STrack] + self.lost_stracks = [] # type: list[STrack] + self.removed_stracks = [] # type: list[STrack] self.use_refind = use_refind self.use_tracking = use_tracking @@ -216,6 +216,14 @@ def update(self, image, tlwhs, det_scores=None): det_scores = np.ones(len(tlwhs), dtype=float) detections = [STrack(tlwh, score, from_det=True) for tlwh, score in zip(tlwhs, det_scores)] + # set features + tlbrs = [det.tlbr for det in detections] + features = extract_reid_features(self.reid_model, image, tlbrs) + features = features.cpu().numpy() + for i, det in enumerate(detections): + det.set_feature(features[i]) + + """step 2.1: scoring by reid model""" if self.classifier is None: pred_dets = [] else: @@ -228,7 +236,8 @@ def update(self, image, tlwhs, det_scores=None): detections.extend(tracks) rois = np.asarray([d.tlbr for d in detections], dtype=np.float32) - cls_scores = self.classifier.predict(rois) + cls_scores = 1.0 - matching.mean_reid_distance(self.tracked_stracks, detections, metric='euclidean') + scores = np.asarray([d.score for d in detections], dtype=np.float) scores[0:n_dets] = 1. scores = scores * cls_scores @@ -245,13 +254,6 @@ def update(self, image, tlwhs, det_scores=None): pred_dets = [d for d in detections if not d.from_det] detections = [d for d in detections if d.from_det] - # set features - tlbrs = [det.tlbr for det in detections] - features = extract_reid_features(self.reid_model, image, tlbrs) - features = features.cpu().numpy() - for i, det in enumerate(detections): - det.set_feature(features[i]) - """step 3: association for tracked""" # matching for tracked targets unconfirmed = []