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

Data Association #15

Closed
yanghaibin-cool opened this issue Apr 15, 2022 · 6 comments
Closed

Data Association #15

yanghaibin-cool opened this issue Apr 15, 2022 · 6 comments

Comments

@yanghaibin-cool
Copy link

@HanGuangXin
Hello, sorry to bother you again!
When the data is associated, why should the high-scoring detection frame that does not match the trajectory for the first time (motion+reid) and the trajectory that does not match the high-scoring detection frame match again through IoU (motion)? What is the benefit of doing this?
Looking forward to your reply.

@HanGuangXin
Copy link
Owner

HanGuangXin commented Apr 15, 2022 via email

@yanghaibin-cool
Copy link
Author

yanghaibin-cool commented Apr 15, 2022

show me the code, please.

---Original--- From: "poplar @.> Date: Fri, Apr 15, 2022 11:45 AM To: @.>; Cc: "Han @.@.>; Subject: [HanGuangXin/ByteTrack_ReID] Data Association (Issue #15) @HanGuangXin Hello, sorry to bother you again! When the data is associated, why should the high-scoring detection frame that does not match the trajectory for the first time (motion+reid) and the trajectory that does not match the high-scoring detection frame match again through IoU (motion)? What is the benefit of doing this? Looking forward to your reply. — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

''' Step 2: First association, with high score detection boxes'''
detections = [detections[i] for i in u_detection]
r_tracked_stracks = [strack_pool[i] for i in u_track if strack_pool[i].state == TrackState.Tracked]
dists = matching.iou_distance(r_tracked_stracks, detections) # IoU distance. 1 - _ious
if not self.args.mot20:
dists = matching.fuse_score(dists, detections) # refine 'dists' with detection scores
matches, u_track, u_detection = matching.linear_assignment(dists, thresh=self.args.match_thresh) # Hungarain
for itracked, idet in matches: # do update w.r.t matching results
track = r_tracked_stracks[itracked]
det = detections[idet]
if track.state == TrackState.Tracked:
track.update(detections[idet],
self.frame_id) # update of class STrack, update Kalman Filter, track state and other settings
activated_starcks.append(track)
else:
track.re_activate(det, self.frame_id, new_id=False)
refind_stracks.append(track)

@HanGuangXin
Copy link
Owner

Step 1 in byte_tracker_FairMOT.py only uses appearance for association, so step 2 is necessary.
If you do not understand, please refer to FairMOT paper.

@HanGuangXin
Copy link
Owner

If you are not familiar with classic algorithms in MOT like SORT/DeepSORT/JDE/FairMOT, I think it is necessary for you to learn them first!

If there is not other questions, I will close this issue.

@yanghaibin-cool
Copy link
Author

If you are not familiar with classic algorithms in MOT like SORT/DeepSORT/JDE/FairMOT, I think it is necessary for you to learn them first!

If there is not other questions, I will close this issue.

OK, thanks for the reply. Next, I will study the code carefully.

@972821054
Copy link

@yanghaibin-cool 您好,请问您有没有对没有track_id的情况进行处理?麻烦您了!
image

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