Closed Jasper0420 closed 3 months ago
In some time, OSTrack github version can get more accuracy then their paper, unfortunately i also didn't know why, i'm not add any code or augmentation in OStrack, just use their initial settings to get the result.
you can try this code below.
python tracking/test.py ostrack vitb_384_mae_ce_32x4_ep300 --dataset uav --threads 16 --num_gpus 8
python tracking/test.py ostrack vitb_384_mae_ce_32x4_ep300_neighbor --dataset uav --threads 16 --num_gpus 8 --neighbor 1
the same issue you can see in OStrack github: https://github.com/botaoye/OSTrack/issues/44
Thank you for the answer! Good luck!
I am experiencing the following problem while testing the UAV123 dataset.I chose ntracker.rev_frames = 27, but when I comment him out it works again!
Traceback (most recent call last):
File "/gemini/code/NeighborTrack/trackers/ostrack/tracking/../lib/test/evaluation/running.py", line 137, in run_sequence
output = tracker.run_sequence(seq, debug=debug)
File "/gemini/code/NeighborTrack/trackers/ostrack/tracking/../lib/test/evaluation/tracker.py", line 423, in run_sequence
output = self._track_sequence(tracker,invtracker, seq, init_info)
File "/gemini/code/NeighborTrack/trackers/ostrack/tracking/../lib/test/evaluation/tracker.py", line 388, in _track_sequence
state = ntracker._neighbor_track(image)
File "/gemini/code/NeighborTrack/neighbortrack.py", line 464, in _neighbor_track
b_overlap = poly_iou_list(state['old_target_pos'][::1+self.time_dilate][ignore_frames:],state['old_target_sz'][::1+self.time_dilate][ignore_frames:],rev_target_pos[::1+self.time_dilate][ignore_frames:],rev_target_sz[::1+self.time_dilate][ignore_frames:])
File "/gemini/code/NeighborTrack/./NTutils/utils.py", line 927, in poly_iou_list
location2 = copy.deepcopy([float(polys2pos[ind][0]), float(polys2pos[ind][1]), float(polys2sz[ind][0]), float(polys2sz[ind][1])])
IndexError: list index out of range
error in: None error code: list index out of range
How should I change this? It seems that only the last 9 elements in this list have values that cause this. Good luck!
hi, did you can try to change "ntracker.rev_frames" and "ntracker.check_probe_rev_frames" both from tracker.py like below? ntracker.rev_frames=27 #9 = reverse step tau ntracker.check_probe_rev_frames=27 # check main tracker's cycle consistency with x frame step
if still dosn't work please let me know.
Yes, you're right! This way I have tried. But there might be some problems in your source code, because it wrotentracker.test_probe_rev_frames=27 https://github.com/franktpmvu/NeighborTrack/blob/d2bc294ca6b89b7cce8a26ff4e059f49b12ef140/trackers/ostrack/lib/test/evaluation/tracker.py#L365 Unfortunately, a new problem has now arisen
Traceback (most recent call last):
File "/gemini/code/NeighborTrack/trackers/ostrack/tracking/../lib/test/evaluation/running.py", line 137, in run_sequence
output = tracker.run_sequence(seq, debug=debug)
File "/gemini/code/NeighborTrack/trackers/ostrack/tracking/../lib/test/evaluation/tracker.py", line 423, in run_sequence
output = self._track_sequence(tracker,invtracker, seq, init_info)
File "/gemini/code/NeighborTrack/trackers/ostrack/tracking/../lib/test/evaluation/tracker.py", line 388, in _track_sequence
state = ntracker._neighbor_track(image)
File "/gemini/code/NeighborTrack/neighbortrack.py", line 596, in _neighbor_track
costmatrix[0,]=all_rev_iou
ValueError: setting an array element with a sequence. The requested array would exceed the maximum number of dimension of 1.
error in: None error code: setting an array element with a sequence. The requested array would exceed the maximum number of dimension of 1.
This error occurs because the array elements set will exceed the maximum dimension limit of the array, which is 1.The costmatrix array cannot hold such a sequence. It may be defined as a one-dimensional array, and you are trying to assign a multi-dimensional sequence to it. Good luck!
ok, let me check your tracker.py and neighbortrack.py is like these images?
my output of cost matrix, each element is not an array, just a value
maybe you can add code let each element become only a value? e.g.
all_rev_iou = np.array(all_rev_iou)
Oh! That's so embarrassing! It actually worked perfectly on the other machine~ That's weird, hahaha! Thanks again for your careful answers and outstanding contributions~ I may trouble you again if I have questions later and look forward to your reply! Have a great life and good luck with your studies!
I would like to ask you the following questions : Q1 : Is your environment for testing ostrack384 exactly the same as the install.sh posted by OStrack. My UAV result in pytorch 1.9 environment is only 70.9. if not, what environment are you using? Q2: NeighborTrack seems to affect the speed of the model? I tested the UAV dataset on 3090 at only 10FPS
Hi. About Q1 i think it's have some different, i update my pip requirements and nvidia driver, cuda version, please see This file.
My driver version: NVIDIA-SMI 465.19.01 Driver Version: 465.19.01 Python 3.7.7 (default, Mar 23 2020, 22:36:06) torch.version.cuda=10.1
Regarding Q2, yes, NeighborTrack will affect the speed. My new paper on CVPRW has a table about inference time and tau as shown below.
Thank you for your answer! Your answer has helped me a lot! Good luck!
Firstly thank you for your excellent work! In reading your paper I noticed that your OSTrack384 results on the dataset all are higher than the results in the original OSTrack paper, did you perform any processing? For example, on the dataset UAV123, OSTrack384 has an accuracy of 70.7 in the original paper, and I see that the accuracy in this paper is 72.17, so what has caused the increase in accuracy? Good luck!