bytedance / ColTrack

This repository is an official implementation of Collaborative Tracking Learning for Frame-Rate-Insensitive Multi-Object Tracking
Apache License 2.0
23 stars 2 forks source link

The error during DanceTrack pretraining. #5

Closed lzzppp closed 10 months ago

lzzppp commented 11 months ago

I run the command:

bash scripts/train_dancetrack_val_tbd.sh dancetrack_tbd

We get the errors:

Tracker file not found: /home/lzp/MOT/ColTrack/logs/dancetrack_tbd/IPTrack/track_results/dancetrack0004.txt
Traceback (most recent call last):
  File "mot.py", line 26, in <module>
    main(args)
  File "mot.py", line 13, in main
    trainer.train()
  File "/home/lzp/MOT/ColTrack/motlib/engine/task_engine/train_loop.py", line 41, in train
    self.after_epoch()
  File "/home/lzp/MOT/ColTrack/motlib/engine/task_engine/default_engine.py", line 204, in after_epoch
    super().after_epoch()
  File "/home/lzp/MOT/ColTrack/motlib/engine/task_engine/train_loop.py", line 63, in after_epoch
    h.after_epoch()
  File "/home/lzp/MOT/ColTrack/motlib/engine/task_engine/default_hooks.py", line 25, in after_epoch
    self.eval_func()
  File "/home/lzp/MOT/ColTrack/motlib/engine/task_engine/default_engine.py", line 229, in test_and_save_results
    res = run_evaluator(self.args.evaluator,
  File "/home/lzp/MOT/ColTrack/motlib/evaluation/evaluators/__init__.py", line 14, in run_evaluator
    return EVALUATOR_REGISTRY.get(name)(*args, **kwargs)
  File "/home/lzp/anaconda3/envs/streamline/lib/python3.8/site-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
    return func(*args, **kwargs)
  File "/home/lzp/MOT/ColTrack/motlib/evaluation/evaluators/my_coco.py", line 215, in my_evaluate_coco
    output_res, _ = mot_eval_metrics(args, dataset_name=dataset_name[0], eval_config=data_loader.dataset.coco.eval_config)
  File "/home/lzp/MOT/ColTrack/motlib/evaluation/evaluate_metrics/__init__.py", line 17, in mot_eval_metrics
    return _eval_func_bank[mot_metrics](arg, *args, **kwds)
  File "/home/lzp/MOT/ColTrack/motlib/evaluation/evaluate_metrics/trackeval_manager/manager.py", line 13, in evaluate_hota
    evaluator, dataset_list, metrics_list = config_process(args, dataset_name, eval_config, ts_path=ts_path)
  File "/home/lzp/MOT/ColTrack/motlib/evaluation/evaluate_metrics/trackeval_manager/config_process.py", line 17, in config_process
    return config_process_default(args, dataset_name, eval_config, ts_path)
  File "/home/lzp/MOT/ColTrack/motlib/evaluation/evaluate_metrics/trackeval_manager/config_process.py", line 54, in config_process_default
    dataset_list = [dataset_class_func(dataset_config)]
  File "/home/lzp/MOT/ColTrack/motlib/evaluation/evaluate_metrics/trackeval_manager/trackeval/datasets/mot_challenge_2d_box.py", line 124, in __init__
    raise TrackEvalException(
motlib.evaluation.evaluate_metrics.trackeval_manager.trackeval.utils.TrackEvalException: Tracker file not found: IPTrack/track_results/dancetrack0004.txt

So I located the code location (ColTrack/motlib/evaluation/evaluate_metrics/trackeval_manager/config_process.py The 38 line) where the error was reported. I found that the code in the eval_func part has an IPTrack tracking result, but I don't know what this tracker results are about.

dataset_config_new = {
        'BENCHMARK': dataset_name,
        'SKIP_SPLIT_FOL': True,
        "GT_FOLDER": str(gt_path),
        'GT_LOC_FORMAT': "{gt_folder}/gt/{seq}.txt",
        "SEQMAP_FILE": str(gt_path / 'seq_info.json'),
        'TRACKERS_FOLDER': ts_path,
        'TRACKERS_TO_EVAL': [args.tracker_name, 'IPTrack'],
        'TRACKER_SUB_FOLDER': "track_results",
        "OUTPUT_FOLDER": str(output_folder)
    }
easonbyte commented 10 months ago

IPTracker uses the algorithm in the file to interpolate the tracking results to obtain new tracking results. For some linear motion scenes, this approach usually produces better results, such as MOT17. But for complex motion scenes like dancetrack, the results after this processing are often worse. Your error usually occurs when the model has poor tracking capabilities. You can adjust the configuration and train for longer before evaluating and inferring.

easonbyte commented 10 months ago

IPTrack is a post-processing method and is not necessary. You can remove the relevant code.

lzzppp commented 10 months ago

Thank you very much for your answer, it solved my problem.