ByteTrack icon indicating copy to clipboard operation
ByteTrack copied to clipboard

No ground truth for MOT20-04, skipping.

Open lbq779660843 opened this issue 4 years ago • 10 comments

I want to get MOTA and IDF1 scores on MOT20 by using python tools/track.py -f exps/example/mot/yolox_x_mix_mot20_ch.py -b 1 -d 1 --fp16 --fuse --match_thresh 0.7 --mot20 but failed.

Whole message:

(open-mmlab) D:\lbq\code\2_tracking\ByteTrack>python tools/track.py -f exps/example/mot/yolox_x_mix_mot20_ch.py -b 1 -d 1 --fp16 --fuse --match_thre
sh 0.7 --mot20
2021-10-20 17:59:29 | INFO     | __main__:155 - Args: Namespace(batch_size=1, ckpt='pretrained/bytetrack_x_mot20.tar', conf=0.01, devices=1, dist_ba
ckend='gloo', dist_url=None, exp_file='exps/example/mot/yolox_x_mix_mot20_ch.py', experiment_name='yolox_x_mix_mot20_ch', fp16=True, fuse=True, loca
l_rank=0, machine_rank=0, match_thresh=0.7, min_box_area=100, mot20=True, name=None, nms=0.7, num_machines=1, opts=[], seed=None, speed=False, test=
False, track_buffer=30, track_thresh=0.6, trt=False, tsize=None)
2021-10-20 17:59:30 | INFO     | __main__:165 - Model Summary: Params: 99.00M, Gflops: 985.27
2021-10-20 17:59:30 | INFO     | yolox.data.datasets.mot:39 - loading annotations into memory...
2021-10-20 17:59:30 | INFO     | yolox.data.datasets.mot:39 - Done (t=0.04s)
2021-10-20 17:59:30 | INFO     | pycocotools.coco:92 - creating index...
2021-10-20 17:59:30 | INFO     | pycocotools.coco:92 - index created!
2021-10-20 17:59:31 | INFO     | __main__:188 - loading checkpoint
2021-10-20 17:59:32 | INFO     | __main__:193 - loaded checkpoint done.
2021-10-20 17:59:32 | INFO     | __main__:199 -         Fusing model...
C:\Users\RTX3090\.conda\envs\open-mmlab\lib\site-packages\torch\nn\modules\module.py:390: UserWarning: The .grad attribute of a Tensor that is not a
 leaf Tensor is being accessed. Its .grad attribute won't be populated during autograd.backward(). If you indeed want the gradient for a non-leaf Te
nsor, use .retain_grad() on the non-leaf Tensor. If you access the non-leaf Tensor by mistake, make sure you access the leaf Tensor instead. See git
hub.com/pytorch/pytorch/pull/30531 for more informations.
  if param.grad is not None:
 46%|#################################################2                                                        | 2079/4479 [02:31<03:16, 12.22it/s]2
021-10-20 18:02:13 | INFO     | yolox.evaluators.mot_evaluator:39 - save results to ./YOLOX_outputs\yolox_x_mix_mot20_ch\track_results\MOT20-04.txt
 69%|#########################################################################                                 | 3087/4479 [03:47<01:28, 15.75it/s]2
021-10-20 18:03:24 | INFO     | yolox.evaluators.mot_evaluator:39 - save results to ./YOLOX_outputs\yolox_x_mix_mot20_ch\track_results\MOT20-06.txt
 82%|######################################################################################9                   | 3673/4479 [04:23<00:43, 18.73it/s]2
021-10-20 18:03:58 | INFO     | yolox.evaluators.mot_evaluator:39 - save results to ./YOLOX_outputs\yolox_x_mix_mot20_ch\track_results\MOT20-07.txt
100%|##########################################################################################################| 4479/4479 [05:18<00:00,  2.57it/s]2
021-10-20 18:04:51 | INFO     | yolox.evaluators.mot_evaluator:39 - save results to ./YOLOX_outputs\yolox_x_mix_mot20_ch\track_results\MOT20-08.txt
100%|##########################################################################################################| 4479/4479 [05:18<00:00, 14.07it/s]
2021-10-20 18:04:51 | INFO     | yolox.evaluators.mot_evaluator:630 - Evaluate in main process...
2021-10-20 18:05:05 | INFO     | yolox.evaluators.mot_evaluator:659 - Loading and preparing results...
2021-10-20 18:05:09 | INFO     | yolox.evaluators.mot_evaluator:659 - DONE (t=4.00s)
2021-10-20 18:05:09 | INFO     | pycocotools.coco:433 - Running per image evaluation...
creating index...Evaluate annotation type *bbox*

2021-10-20 18:05:09 | INFO     | pycocotools.coco:433 - index created!
COCOeval_opt.evaluate() finished in 2.42 seconds.
Accumulating evaluation results...
COCOeval_opt.accumulate() finished in 0.18 seconds.
gt_type 
2021-10-20 18:05:12 | gt_files ['datasets/MOT20/train\\MOT20-01\\gt\\gt.txt', 'datasets/MOT20/train\\MOT20-02\\gt\\gt.txt', 'datasets/MOT20/train\\M
OT20-03\\gt\\gt.txt', 'datasets/MOT20/train\\MOT20-05\\gt\\gt.txt']
INFO     | __main__:220 -
Average forward time: 41.49 ms, Average track time: 18.28 ms, Average inference time: 59.77 ms
Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000
Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=  1 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 10 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.000
Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = -1.000

2021-10-20 18:05:12 | INFO     | __main__:237 - Found 4 groundtruths and 4 test files.
2021-10-20 18:05:12 | INFO     | __main__:238 - Available LAP solvers ['lap', 'scipy']
2021-10-20 18:05:12 | INFO     | __main__:239 - Default LAP solver 'lap'
2021-10-20 18:05:12 | INFO     | __main__:240 - Loading files.
2021-10-20 18:05:29        Rcll Prcn GT  MT  PT  ML  FP  FN IDs  FM MOTA MOTP num_objects
OVERALL  NaN  NaN  0 NaN NaN NaN NaN NaN NaN NaN  NaN  NaN           0
 |         IDF1 IDP IDR Rcll Prcn GT MT PT ML FP FN IDs  FM MOTA MOTP IDt IDa IDm num_objects
OVERALL  NaN NaN NaN  NaN  NaN  0  0  0  0  0  0   0   0  NaN  NaN   0   0   0           0WARNING
 | __main__:123 - No ground truth for MOT20-04, skipping.
2021-10-20 18:05:29 | WARNING  | __main__:123 - No ground truth for MOT20-06, skipping.
2021-10-20 18:05:29 | WARNING  | __main__:123 - No ground truth for MOT20-07, skipping.
2021-10-20 18:05:29 | WARNING  | __main__:123 - No ground truth for MOT20-08, skipping.
2021-10-20 18:05:29 | INFO     | __main__:248 - Running metrics
2021-10-20 18:05:29 | INFO     | __main__:273 - Completed

lbq779660843 avatar Oct 20 '21 10:10 lbq779660843

It seems that you are running the results of the test set of MOT20 (MOT20-04, MOT20-06, MOT20-07, MOT20-08) and there are no GT files for test set. You can change line 19 and 102 in https://github.com/ifzhang/ByteTrack/blob/main/exps/example/mot/yolox_x_mix_mot20_ch.py to get the results of the training set of MOT20 (MOT20-01, MOT20-02, MOT20-03, MOT20-05)

ifzhang avatar Oct 20 '21 11:10 ifzhang

It seems that you are running the results of the test set of MOT20 (MOT20-04, MOT20-06, MOT20-07, MOT20-08) and there are no GT files for test set. You can change line 19 and 102 in https://github.com/ifzhang/ByteTrack/blob/main/exps/example/mot/yolox_x_mix_mot20_ch.py to get the results of the training set of MOT20 (MOT20-01, MOT20-02, MOT20-03, MOT20-05)

I change the code as you said above and it returned normal messages, but I still want to know to use test dataset just like 'We use the input size 1600 x 896 for MOT20-04, MOT20-07 and 1920 x 736 for MOT20-06, MOT20-08', which is written in README.md.

lbq779660843 avatar Oct 21 '21 02:10 lbq779660843

Hi @lbq779660843, If you want to get the result on the test set, you have to submit the tracking result (which is stored in a .txt files) to the MOTChallenge website. I just submitted the ByteTrack tracking results on the MOTChallenge website and finally get the result on the test set.

Malikanhar avatar Nov 10 '21 06:11 Malikanhar

Hi @lbq779660843, If you want to get the result on the test set, you have to submit the tracking result (which is stored in a .txt files) to the MOTChallenge website. I just submitted the ByteTrack tracking results on the MOTChallenge website and finally get the result on the test set.

Hello, I have a question want to ask, I now take model trained MOT17 training set, then the test set is forecasted and predicted results want to commit to MOT Challenge the official web site, but met them at the time of submission requirements must be submitted with the training set and testing set all the TXT (21 training set and 21 testing set). However, I only got the predicted results of the test set (21). How did the MOT Challenge result submission work? If I had to predict the training set again, would that result in too good a result? (BECAUSE I did my training with MOT17)

Four1996 avatar Nov 10 '21 07:11 Four1996

I'm sorry but I don't really know about how the MOT Challenge submission work, but yes you have to submit the .txt result of the training set and you will only get the performance result on the test data only.

Malikanhar avatar Nov 16 '21 04:11 Malikanhar

I'm sorry but I don't really know about how the MOT Challenge submission work, but yes you have to submit the .txt result of the training set and you will only get the performance result on the test data only.

Thank you for your reply! I have a rough idea of the author's code flow: When I train, I need to make sure that lines 19 and 102 in yolo_x_mix_det are "train". For test, I need to make sure that lines 19 and 102 in yolo_x_mix_det are "train" in addition to running "track.py". So you get 21 of the.txt of the training set; When I need to train the test set, I need to modify line 19 and line 102 are "test" to get 21.txt belonging to the testing set. It can then be submitted to the MOT Challenge website. (I guess so)

Four1996 avatar Nov 16 '21 06:11 Four1996

When we need to train the test set, I need to modify line 19 and line 101 are "test" to get 21.txt belonging to the testing set. It can then be submitted to the MOT Challenge website. Line#19 - self.val_ann = "test.json" # change to train.json when running on training set Line#101 - name='test', # change to train when running on training set

sheebarazzaq avatar Mar 23 '24 18:03 sheebarazzaq

Hello everyone, i have a question. When i got the 21 text files for test set but when i run for train set i got only 7 files text files? Why? Does anyone know how to get 21 files for train set?

sheebarazzaq avatar Mar 25 '24 17:03 sheebarazzaq

Hello everyone, i have a question. When i got the 21 text files for test set but when i run for train set i got only 7 files text files? Why? Does anyone know how to get 21 files for train set?

I also encountered this problem, have you solved it?

shirtism avatar Sep 02 '24 08:09 shirtism

看来你跑的是 MOT20 测试集(MOT20-04、MOT20-06、MOT20-07、MOT20-08)的结果,测试集没有对应的 GT 文件。你可以修改https://github.com/ifzhang/ByteTrack/blob/main/exps/example/mot/yolox_x_mix_mot20_ch.py​​ 中的第 19 行和第 102 行,获取 MOT20 训练集(MOT20-01、MOT20-02、MOT20-03、MOT20-05)的结果。

我按照上面说的更改了代码,它返回了正常的消息,但我仍然想知道使用测试数据集,就像“我们对 MOT20-04、MOT20-07 使用输入大小 1600 x 896,对 MOT20-06、MOT20-08 使用输入大小 1920 x 736”,这写在 README.md 中。

你好 有解决方法了吗

webasdasdafsasf avatar Jun 19 '25 07:06 webasdasdafsasf