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

状态为TrackState.Lost的Tracker不参与第二次低置信度bbox的匹配? #395

Open
thgpddl opened this issue Apr 5, 2024 · 0 comments

Comments

@thgpddl
Copy link

thgpddl commented Apr 5, 2024

yolox/tracker/byte_tracker.py中有如下代码,这是和低置信度bbox进行匹配的代码。

第一行中似乎表明从上次未匹配到的tracker中,找出状态为TrackState.Tracked的tracker,放入列表r_tracked_stracks中。意味着r_tracked_stracks中都是处于TrackState.Tracked状态(上一帧匹配到的tracker),只是在本帧和高置信度的bbo没有成功匹配。于是参加第二次匹配。

这是否意味着,上帧中处于TrackState.Lost状态的Tracker只参加第一次高置信度bbox的匹配,不参加第二次低置信度bbox的匹配。只有TrackState.Tracked状态的Tracker在第一次未匹配,可以参加第二次匹配?

r_tracked_stracks = [strack_pool[i] for i in u_track if strack_pool[i].state == TrackState.Tracked]  # 未匹配的tracker中有Tracked和Lost两种状态的Tracker,这里只保留出上刻是Tracked状态的
dists = matching.iou_distance(r_tracked_stracks, detections_second)
matches, u_track, u_detection_second = matching.linear_assignment(dists, thresh=0.5)
for itracked, idet in matches:
    track = r_tracked_stracks[itracked]
    det = detections_second[idet]
    print("track.state: ",track.state)
    if track.state == TrackState.Tracked:
        track.update(det, self.frame_id)
        activated_starcks.append(track)
    else:   # 未匹配到的tracker,上刻为Lost或者Removed状态,此刻又匹配上了,所以state重置为Tracked
        track.re_activate(det, self.frame_id, new_id=False)
        refind_stracks.append(track)
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

1 participant