mtmc-vt
mtmc-vt copied to clipboard
MTMC Vehicle Tracking For AI City challenge 2019
AI City Challenge 2019 Track1 MTMC Task
The code is for AI City Challenge 2019 Track1, MTMC Vehicle Tracking.
And we got the second place.
Maintainers
Peilun Li, Guozhen Li, Meiqi Lu, Zhangxi Yan, Youzeng Li
Preparation
Dateset download: Track1-download,Size: 16.2GB
For running code correctly, the data should be put as follows:
├─ aic19-track1-mtmc
│ ├─ train
│ │ ├─ S01
│ │ │ ├─ c001
│ │ │ │ ├─ det
│ │ │ │ ├─ gt
│ │ │ │ ├─ mtsc
│ │ │ │ ├─ segm
│ │ │ │ ├─ calibration.txt
│ │ │ │ ├─ roi.jpg
│ │ │ │ ├─ det_reid_features.txt
│ │ │ │ ├─ vdo.avi
│ │ │ ├─ c002
│ │ │ ├─ c003
│ │ │ ├─ c004
│ │ │ ├─ c005
│ │ ├─ S03
│ │ ├─ S04
│ ├─ test
│ │ ├─ S02
│ │ ├─ S05
│ └─ cam_timestamp
Note that the det_reid_features.txt is the middle result of 1b_merge_visual_feature_with_ other_feature.py, and the other files are provided by organisers.
Step by Step for MTMC Vehicle Tracking
running code orderly
1_crop_vehicle_img_from_vdo.py
For each bounding box, crop the vehicle image and calculate the gps, according to the results of detection.
input:
- input_dir:
./aic19-track1-mtmc/trainor./aic19-track1-mtmc/test
output:
- for each video, produce
det_gps_feature.txtto save gps information - for each video, save all cropped image.
1a_extract_visual_feature_for_each_img.py
- extract reid feature for each corpped image, the train and inference pipeline follows reid-baseline
1b_merge_visual_feature_with_other_feature.py
Merge reid feature and gps information into one file.
input:
- input_dir:
./aic19-track1-mtmc/trainor./aic19-track1-mtmc/test - gps information file
/det_gps_feature.txt, from1 - ReID feature file
/deep_features.txt, from1a
output:
- for each video, produce
det_reid_features.txtfile
2_tracking.py
multi targets tracking for each video.
input:
- input_dir:
./aic19-track1-mtmc/trainor./aic19-track1-mtmc/test - ID file
already_used_number.txt, avoid reusing number /det_reid_features.txtfrom1b
output:
- for each video, produce tracking result file
det_reid_track.txt
2a_post_process_for_tracking.py
Optimize tracking result to solve target lost.
input:
- input_dir:
./aic19-track1-mtmc/trainor./aic19-track1-mtmc/test - fps file
train_fps.txt - for each video, need
det_reid_track.txtfrom2
output:
- for each video, produce tracking result
optimized_track.txt
2b_remove_overlap_boxes.py
Remove overlapped bounding box.
input:
- input_dir:
./aic19-track1-mtmc/trainor./aic19-track1-mtmc/test - for each video, need
optimized_track.txtfrom2a
output:
- for each video, produce tracking result
optimized_track_no_overlapped.txt
3a_track_based_reid.py
Calculate reid similarity between tracks.
input:
- input_dir:
./aic19-track1-mtmc/trainor./aic19-track1-mtmc/test - for each video, need
optimized_track_no_overlapped.txtfrom2b
output:
- ReID similarity file
ranked
3b_trajectory_processing.py
Calculate the gps-trajectory cohesion between tracks, should run the code trajectory_processing/main.py
input:
- input_dir:
./aic19-track1-mtmc/trainor./aic19-track1-mtmc/test - for each video, need
optimized_track_no_overlapped.txtfrom2b
output:
- gps-trajectroy file
gps_and_time_new
4a_match_tracks_for_crossroad.py
MTMC tracking for crossroad scene
input:
- input_dir:
./aic19-track1-mtmc/trainor./aic19-track1-mtmc/test - for each video, need
optimized_track_no_overlapped.txtfrom2b rankedfrom3agps_and_time_newfrom3b
output:
- match result
submission_crossroad_train
4b_match_tracks_for_arterialroad.py
MTMC tracking for arterial road scene
input:
- input_dir:
./aic19-track1-mtmc/trainor./aic19-track1-mtmc/test - for each video, need
optimized_track_no_overlapped.txtfrom2b rankedfrom3agps_and_time_newfrom3b
output:
- match result
submission_normal_train
5a_merge_results.py
merge the results from different scenes
input:
submission_crossroad_trainfrom4asubmission_normal_trainfrom4b
output:
- merged result file
submission
5b_adapt_boxes.py
post process for each bounding box
input:
- input_dir:
./aic19-track1-mtmc/trainor./aic19-track1-mtmc/test submissionfrom5a
output:
- result file
submission_adpt
5c_convert_to_submission.py
convert the result to submission format
input:
submission_adptfrom5b
output:
- submission file
track1.txt
Guide for use
Run the code from 1_\*.py to 5c_\*.py orderly.
The train and inference for ReID follows reid-baseline
We propose starting with 2_tracking.py, if you are the first time to this project. And we provide the results of 1b.
You could download it, put them in the right place as metioned above and rename them as det_reid_features.txt.
Extras
result of 1b