VisDrone Multi-Drone Multi-Object Detection and Tracking
repository·main·Indexed 41 days ago
https://github.com/visdrone/multi-drone-multi-object-detection-and-trackingA research repository providing a benchmark and the MIA-Net neural network architecture for robust multi-drone multi-target tracking. It includes implementations and configurations for various Multi-Object Tracking (MOT) methods, including ByteTrack, OC-SORT, QDTrack, Tracktor, SORT, and DeepSORT, with support for datasets such as MOT17, MOT20, LVIS, and TAO.
What's inside VisDrone Multi-Drone Tracking
- OC-SORT is a Multi-Object Tracking (MOT) method designed to improve robustness against occlusions and non-linear motion. Unlike traditional motion models that assume linear motion and require continuous observations, OC-SORT emphasizes the role of 'observations' to recover tracks after they have been lost and to reduce error accumulation during lost periods. It is an online, real-time method that achieves state-of-the-art performance on datasets like MOT17, MOT20, KITTI Pedestrian Tracking, and DanceTrack without requiring appearance cues.
Overview of Multi-Drone Multi-Target Tracking
mainThis project focuses on robust multi-drone multi-target tracking, specifically addressing the challenges of identity association and target occlusion. The goal is to collaboratively detect and track targets across multiple drones and associate object identities across different drone views to overcome the limitations of single-drone tracking.
Key components include:
- MDMT Dataset: An occlusion-aware dataset designed for multi-drone multi-target tracking.
- MDA (Multi-device Target Association score): An evaluation metric for cross-view target association capability.
- MIA-Net (Multi-matching Identity Authentication network): A proposed network that uses a local-global matching algorithm to discover topological relationships of targets across drones, solving cross-drone association and complementing occluded targets.
Overview of Tracktor tracking method
mainTracktor is a tracking-by-detection paradigm that avoids specific training or optimization on tracking data. Instead, it exploits the bounding box regression of an object detector to predict an object's position in the subsequent frame, effectively converting a detector into a tracker. It can be extended with re-identification (ReID) and camera motion compensation to improve performance in complex scenarios like occlusions or small objects.Overview of ByteTrack Multi-Object Tracking
mainByteTrack is a multi-object tracking (MOT) method designed to estimate bounding boxes and identities of objects in videos. Unlike traditional methods that only associate high-score detection boxes, ByteTrack associates every detection box. It utilizes low-score detection boxes by checking their similarity with existing tracklets to recover occluded objects and filter out background noise. This approach reduces true object missing and fragmented trajectories.
Key performance metrics achieved on the MOT17 test set include:
- MOTA: 80.3
- IDF1: 77.3
- HOTA: 63.1
- Speed: ~30 FPS on a single V100 GPU.
Overview of QDTrack (Quasi-Dense Tracking)
mainQDTrack is a Multiple Object Tracking (MOT) method based on Quasi-Dense Similarity Learning. Unlike traditional methods that rely on sparse ground truth matching, QDTrack uses contrastive learning by densely sampling hundreds of region proposals on image pairs. This approach allows it to be combined directly with existing detection methods (like Faster R-CNN) without requiring displacement regression or motion priors. At inference time, it utilizes a simple nearest neighbor search in a distinctive feature space.Customize components using fastreid.modeling registries
mainThe
fastreid.modelingmodule provides several registries that allow you to replace core components with your own customized implementations without modifying the originalfastreidsource code.To customize a component, you must identify the smallest registry that contains the logic you wish to override and register your component to that specific registry. This pattern ensures that the framework can instantiate your custom classes via configuration files rather than hardcoded imports.
Organize the MDMT dataset structure
mainThe MDMT dataset must follow this specific directory hierarchy for the project to process it correctly:
Multi-Drone-Multi-Object-Detection-and-Tracking-main/ └── data/ └── MDMT/ ├── train/ ├── val/ └── test/ └── sequences/ └── img1/ └── [~.jpg files]Multi-Drone-Multi-Object-Detection-and-Tracking-main >> data >>> MDMT >>>> train/ >>>> val/ >>>> test/ >>>>>> sequences >>>>>>> img1 >>>>>>> ~.jpgTrain MOT models using MOT configs
mainTo train Multi-Object Tracking (MOT) models, refer to the training examples provided in the quick run guide. The specific command structures and configuration requirements for training are located in theexamples-of-training-mot-modelsection of the documentation.Evaluate tracking performance and MDA score
mainEvaluation is performed in two stages: tracking performance and the MDA score.
1. Tracking Performance
First, convert JSON results to text format, then run the test script:
python ./demo/eval/json_2_txt.py [--sequences_result] [--output_dir]python ./demo/eval/txttxt_test.py [--test_file_dir]
2. MDA Score
To calculate the MDA score, use:
python ./demo/eval/mango_eval.py [--sequences_result]# Tracking performance python ./demo/eval/json_2_txt.py [--sequences_result] [--output_dir] python ./demo/eval/txttxt_test.py [--test_file_dir] # MDA score python ./demo/eval/mango_eval.py [--sequences_result]Train models using configs
mainTo train models, refer to the training tutorials in the quick run guide. The configuration files are used to manage training parameters.Install fast_reid using Conda
mainYou can set up a dedicated environment for
fast_reidusing Conda. This method creates a Python 3.7 environment and installs the necessary PyTorch and Tensorboard packages from the official PyTorch channel before installing remaining dependencies fromrequirements.txt.conda create -n fastreid python=3.7 conda activate fastreid conda install pytorch==1.6.0 torchvision tensorboard -c pytorch pip install -r docs/requirements.txtUse a more complete development environment container
mainThe default container is minimal. For a more comprehensive development environment containing many useful tools, you can use the alternative Dockerfile provided by the developer at https://github.com/L1aoXingyu/fastreid_docker.