Skip to content

the evaluation results display COCO default class namesinstead of my custom Visdrone class names #2214

@EthanWare0115

Description

@EthanWare0115

Search before asking

  • I have searched the BoxMOT issues and found no similar bug report.

Question

I'm working on multi-class MOT evaluation using BoxMOT (v16.0.2) with the Visdrone2019-MOT dataset and a custom-trained YOLO11n model. I've encountered an issue where the evaluation results display COCO default class names (e.g., person, bicycle) instead of my custom Visdrone class names, leading to misaligned metrics. Here's a detailed breakdown:

1. My Setup
Dataset: Visdrone2019-MOT (train split), 12 custom classes with IDs 0-11:
ignored regions(0),pedestrian (1), people (2), bicycle (3), car (4), van (5), truck (6), tricycle (7), awning-tricycle (8), bus (9), motor (10),others(11).
Model:OLO11n trained on Visdrone2019-DET
Tracker: ByteTrack
Evaluation Tool: TrackEval (integrated with BoxMOT)

2. Modifications I Made (to boxmot/engine/trackeval/trackeval/datasets/mot_challenge_2d_box.py)
I followed the multi-class evaluation guidelines and modified the following to adapt to Visdrone:
①Updated get_default_dataset_config():
CLASSES_TO_EVAL: Set to my 12 custom class names (as listed above)
BENCHMARK: Visdrone2019-MOT
GT_FOLDER: Path to my Visdrone train split (/home/zhaoyuntao/LQR/link_data1_LQR/data/Visdrone2019-MOT/train)
②Updated self.class_name_to_class_id :
self.class_name_to_class_id = {'ignored regions':0,'pedestrian': 1, 'people': 2, 'bicycle': 3, 'car': 4, 'van': 5,'truck': 6, 'tricycle': 7, 'awning-tricycle': 8, 'bus': 9, 'motor': 10, 'others':11}
③Commented out the pedestrian-only validation (lines 257-260) to allow multi-class evaluation:

# if len(tracker_classes) > 0 and np.max(tracker_classes) > 1:
#     raise TrackEvalException(...)

④Cleared distractor classes:
distractor_class_names = []

3. The Issue:When running the evaluation command below:
python -m boxmot.engine.cli eval --yolo-model /path/to/yolo11n-best.pt --tracking-method bytetrack --classes 0 1 2 3 4 5 6 7 8 9 10 11 --source /path/to/Visdrone2019-MOT/train --project /path/to/BoxMot_Processing/runs

The results still display COCO default class names (e.g., person, bicycle, car) instead of my custom Visdrone classes. For example:

Image

This means the class mapping is not working

4. Questions
①Did I miss any modifications to ensure TrackEval uses my custom class names instead of COCO defaults?
②How can I correctly map my Visdrone class IDs (0-9) and names to the evaluation results?
③Is there a known issue with TrackEval's multi-class name display in BoxMOT v16.0.2?
Any guidance to resolve this class name misalignment would be greatly appreciated!

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions