diff --git a/projects/mmdet3d_plugin/uniad/detectors/uniad_e2e.py b/projects/mmdet3d_plugin/uniad/detectors/uniad_e2e.py index 78a4a87..20ea32c 100644 --- a/projects/mmdet3d_plugin/uniad/detectors/uniad_e2e.py +++ b/projects/mmdet3d_plugin/uniad/detectors/uniad_e2e.py @@ -274,7 +274,7 @@ def forward_test(self, tmp_pos = copy.deepcopy(img_metas[0][0]['can_bus'][:3]) tmp_angle = copy.deepcopy(img_metas[0][0]['can_bus'][-1]) # first frame - if self.prev_frame_info['scene_token'] is None: + if self.prev_frame_info['prev_bev'] is None: img_metas[0][0]['can_bus'][:3] = 0 img_metas[0][0]['can_bus'][-1] = 0 # following frames diff --git a/projects/mmdet3d_plugin/uniad/detectors/uniad_track.py b/projects/mmdet3d_plugin/uniad/detectors/uniad_track.py index 577ae38..3a2c18b 100644 --- a/projects/mmdet3d_plugin/uniad/detectors/uniad_track.py +++ b/projects/mmdet3d_plugin/uniad/detectors/uniad_track.py @@ -371,6 +371,7 @@ def _forward_single_frame_train( all_matched_indices=None, all_instances_pred_logits=None, all_instances_pred_boxes=None, + is_last=False, ): """ Perform forward only on one frame. Called in forward_train @@ -470,8 +471,11 @@ def _forward_single_frame_train( tmp = {} tmp["init_track_instances"] = self._generate_empty_tracks() tmp["track_instances"] = track_instances - out_track_instances = self.query_interact(tmp) - out["track_instances"] = out_track_instances + if is_last: + out["track_instances"] = None + else: + out_track_instances = self.query_interact(tmp) + out["track_instances"] = out_track_instances return out def select_active_track_query(self, track_instances, active_index, img_metas, with_mask=True): @@ -567,6 +571,7 @@ def forward_track_train(self, all_matched_idxes, all_instances_pred_logits, all_instances_pred_boxes, + is_last=(i==num_frame-1), ) # all_query_embeddings: len=dec nums, N*256 # all_matched_idxes: len=dec nums, N*2