Releases: mikel-brostrom/boxmot
v6.0 - Upgrade to StrongSORT
Important updates
StrongSORT implemented (https://arxiv.org/pdf/2202.13514.pdf)
- stronger appearance descriptor (OSNet)
- camera motion compensation (ECC)
- NSA Kalman filter (NSA)
- EMA feature updating mechanism (EMA)
- matching with motion cost (MC)
- abandone matching cascade in favor of a vanilla global linear matching (woC)
Distance metric changed to cosine
according to KaiyangZhou/deep-person-reid#502
Complete track.py
arguments refactor
MOT16 Train evaluation results
Relevant changed/used hparams: imgz 1280, crowdhuman_yolov5m, OSNet_x0_25_msmt17, StrongSORT. Notice that
none of the models used during the evaluation has ever seen any of the MOT16 data and that our object detection model is a modest Yolov5m.
HOTA: kf-pedestrian HOTA DetA AssA DetRe DetPr AssRe AssPr LocA RHOTA HOTA(0) LocA(0) HOTALocA(0)
MOT16-02 36.417 36.273 36.741 38.196 76.251 39.184 77.59 81.577 37.433 46.154 77.361 35.705
MOT16-04 59.324 58.508 60.726 63.282 76.509 64.924 79.5 81.075 61.927 78.835 75.37 59.418
MOT16-05 40.098 37.281 43.23 39.956 74.391 51.86 69.098 81.876 41.554 51.282 77.049 39.512
MOT16-09 53.181 57.122 49.57 65.872 74.664 54.868 78.804 85.721 57.137 65.772 82.193 54.06
MOT16-10 49.705 49.813 49.762 53.696 74.831 53.942 77.666 80.652 51.686 65.955 75.773 49.976
MOT16-11 62.896 59.81 66.362 71.318 73.696 72.965 82.899 86.879 68.784 74.954 83.531 62.61
MOT16-13 45.203 41.504 49.567 44.959 72.74 54.969 74.378 80.493 47.163 59.49 75.279 44.784
COMBINED 53.005 50.992 55.641 55.611 75.463 60.424 79.256 81.937 55.531 68.581 76.857 52.709
CLEAR: kf-pedestrian MOTA MOTP MODA CLR_Re CLR_Pr MTR PTR MLR sMOTA CLR_TP CLR_FN CLR_FP IDSW MT PT ML Frag
MOT16-02 43.56 78.641 44.451 47.272 94.369 16.667 53.704 29.63 33.463 8430 9403 503 159 9 29 16 377
MOT16-04 69.786 78.669 69.956 76.334 92.289 49.398 34.94 15.663 53.503 36302 11255 3033 81 41 29 13 582
MOT16-05 43.018 79.285 43.825 48.768 90.797 17.6 62.4 20 32.916 3325 3493 337 55 22 78 25 210
MOT16-09 61.29 84.193 62.165 75.195 85.231 52 48 0 49.404 3953 1304 685 46 13 12 0 108
MOT16-10 61.154 77.435 61.788 66.772 93.054 29.63 55.556 14.815 46.087 8225 4093 614 78 16 30 8 558
MOT16-11 63.56 85.508 63.942 80.358 83.037 53.623 36.232 10.145 51.915 7372 1802 1506 35 37 25 7 145
MOT16-13 50.629 77.098 51.397 56.603 91.578 26.168 44.86 28.972 37.666 6481 4969 596 88 28 48 31 291
COMBINED 60.025 79.394 60.516 67.104 91.06 32.108 48.549 19.342 46.198 74088 36319 7274 542 166 251 100 2271
Identity: kf-pedestrian IDF1 IDR IDP IDTP IDFN IDFP
MOT16-02 47.717 35.81 71.488 6386 11447 2547
MOT16-04 75.047 68.56 82.891 32605 14952 6730
MOT16-05 54.752 42.08 78.345 2869 3949 793
MOT16-09 65.124 61.29 69.47 3222 2035 1416
MOT16-10 66.758 57.331 79.896 7062 5256 1777
MOT16-11 74.053 72.858 75.287 6684 2490 2194
MOT16-13 60.474 48.926 79.158 5602 5848 1475
COMBINED 67.195 58.357 79.189 64430 45977 16932
Count: kf-pedestrian Dets GT_Dets IDs GT_IDs
MOT16-02 8933 17833 146 54
MOT16-04 39335 47557 139 83
MOT16-05 3662 6818 136 125
MOT16-09 4638 5257 57 25
MOT16-10 8839 12318 122 54
MOT16-11 8878 9174 164 69
MOT16-13 7077 11450 135 107
COMBINED 81362 110407 899 517
Performance boosts from updating DeepSORT to StrongSORT
Bug fixes
Confidences are now extracted correctly: #375
v5.0 - ReID model handling automation, multi-cam tracking
The goal with this release is to automatize the whole process of fetching and loading ReID models. Multi-cam tracking possibility was added by @hdnh2006 in #284
Important updates
Multiple object-tracking on multiple simultaneous streams
Tracking with the --save-vid
flag on folders containing images now generate an .mp4
Automatic download of ReID models trained on different datasets
Easier experimentation by setting the result folder name to the yolo and deep sort models used. The following can now be saved under this folder:
- Tracking with
--save-crop
flag saves crops associated to each class and ID for each stream - Tracking with the
--save-vid
generates an.mp4
for each stream - Tracking with the
--save-txt
saves a txt files for each stream
Bug fixes
Loading of custom ReID model by specifying the path to it
MOT16 Train evaluation results
Relevant changed/used hparams: imgz 1280, crowdhuman_yolov5m, OSNet_x0_25_msmt17, alpha=0. Notice that
none of the models used during the evaluation has ever seen any of the MOT16 data.
HOTA: rep_1280-pedestrian HOTA DetA AssA DetRe DetPr AssRe AssPr LocA RHOTA HOTA(0) LocA(0) HOTALocA(0)
MOT16-02 33.472 36.215 31.143 38.083 76.454 33.609 74.943 81.576 34.395 42.156 77.46 32.654
MOT16-04 58.508 58.422 59.167 63.228 76.489 63.097 79.334 81.143 61.096 77.915 75.329 58.693
MOT16-05 39.479 36.937 42.304 39.621 73.848 49.756 70.33 81.457 40.932 51.081 76.254 38.952
MOT16-09 51.897 56.914 47.372 65.839 74.434 51.6 79.236 85.818 55.841 64.133 82.232 52.737
MOT16-10 46.407 49.419 43.764 53.425 74.242 48.223 74.634 80.347 48.344 62.128 75.134 46.679
MOT16-11 58.33 59.366 57.502 70.96 73.111 65.957 77.009 86.464 63.869 69.923 82.949 58
MOT16-13 44.229 41.439 47.558 44.837 72.748 51.187 77.022 80.409 46.127 57.94 75.221 43.583
COMBINED 51.286 50.839 52.219 55.475 75.31 56.777 78.178 81.874 53.742 66.59 76.683 51.063
CLEAR: rep_1280-pedestrian MOTA MOTP MODA CLR_Re CLR_Pr MTR PTR MLR sMOTA CLR_TP CLR_FN CLR_FP IDSW MT PT ML Frag
MOT16-02 43.773 78.642 44.44 47.126 94.608 16.667 51.852 31.481 33.707 8404 9429 479 119 9 28 17 366
MOT16-04 69.634 78.654 69.803 76.233 92.221 48.193 36.145 15.663 53.362 36254 11303 3058 80 40 30 13 536
MOT16-05 42.754 78.816 43.532 48.592 90.569 17.6 58.4 24 32.461 3313 3505 345 53 22 73 30 229
MOT16-09 61.119 84.468 61.746 75.1 84.903 52 48 0 49.454 3948 1309 702 33 13 12 0 107
MOT16-10 60.643 77.175 61.244 66.602 92.554 31.481 55.556 12.963 45.441 8204 4114 660 74 17 30 7 580
MOT16-11 63.571 84.937 63.898 80.477 82.918 53.623 36.232 10.145 51.449 7383 1791 1521 30 37 25 7 148
MOT16-13 51.022 76.912 51.572 56.603 91.838 28.037 42.056 29.907 37.954 6481 4969 576 63 30 45 32 277
COMBINED 59.955 79.281 60.364 67.013 90.974 32.495 47.002 20.503 46.07 73987 36420 7341 452 168 243 106 2243
Identity: rep_1280-pedestrian IDF1 IDR IDP IDTP IDFN IDFP
MOT16-02 43.742 32.765 65.777 5843 11990 3040
MOT16-04 73.02 66.69 80.678 31716 15841 7596
MOT16-05 55.116 42.344 78.923 2887 3931 771
MOT16-09 62.764 59.14 66.86 3109 2148 1541
MOT16-10 61.175 52.598 73.093 6479 5839 2385
MOT16-11 66.777 65.795 67.79 6036 3138 2868
MOT16-13 60.323 48.751 79.099 5582 5868 1475
COMBINED 64.31 55.841 75.807 61652 48755 19676
Count: rep_1280-pedestrian Dets GT_Dets IDs GT_IDs
MOT16-02 8883 17833 142 54
MOT16-04 39312 47557 138 83
MOT16-05 3658 6818 134 125
MOT16-09 4650 5257 57 25
MOT16-10 8864 12318 118 54
MOT16-11 8904 9174 157 69
MOT16-13 7057 11450 131 107
COMBINED 81328 110407 877 517
Performance boost coming from evaluating on 1280 image size
v4.0 - Mutiple ReID model options
The goal with this release is to add different possibilities for ReID models. A lot has happened in the field since DeepSORT was first release, this is an attempt to keep up with the latest advancements in ReID methods.
Important updates
- Enable Yolov5 model ensembling
- Update track.py to comply with the new yolov5 standards
- Implementation of Lambda as per Eq(5) in the paper, based on https://github.com/michael-camilleri/deep_sort
- Added different ReID model options (https://kaiyangzhou.github.io/deep-person-reid/MODEL_ZOO)
Bug fixes
- Limit high performance libraries threads to 1 to avoid that the tracker uses all the CPUs (#48)
- Default half precision inference to false for visualization on windows (#206)
- Fix MOT index off by one in txt files (#217)
MOT16 Train evaluation results
Relevant changed/used hparams: imgz 640, standard DeepSORT ReIDmodel. Notice that
none of the models used during the evaluation has ever seen any of the MOT16 data.
CLEAR: osnet_ain_x1_0_yolov5_lambda02-pedestrianMOTA MOTP MODA CLR_Re CLR_Pr MTR PTR MLR sMOTA CLR_TP CLR_FN CLR_FP IDSW MT PT ML Frag
MOT16-02 33.472 78.434 33.943 36.191 94.15 16.667 37.037 46.296 25.666 6454 11379 401 84 9 20 25 265
MOT16-04 63.852 76.516 64.054 71.359 90.714 40.964 42.169 16.867 47.094 33936 13621 3474 96 34 35 14 534
MOT16-05 58.199 78.433 59.226 68.568 88.008 27.2 57.6 15.2 43.411 4675 2143 637 70 34 72 19 182
MOT16-09 62.203 83.786 63.002 74.986 86.22 48 48 4 50.045 3942 1315 630 42 12 12 1 115
MOT16-10 53.613 77.071 54.092 57.761 94.027 25.926 48.148 25.926 40.369 7115 5203 452 59 14 26 14 386
MOT16-11 66.045 85.201 66.318 77.556 87.343 50.725 36.232 13.043 54.568 7115 2059 1031 25 35 25 9 126
MOT16-13 40.367 75.18 40.795 44.734 91.907 16.822 45.794 37.383 29.264 5122 6328 451 49 18 49 40 282
COMBINED 55.122 78.109 55.506 61.915 90.62 30.174 46.228 23.598 41.567 68359 42048 7076 425 156 239 122 1890
Identity: osnet_ain_x1_0_yolov5_lambda02-pedestrianIDF1 IDR IDP IDTP IDFN IDFP
MOT16-02 39.015 27.006 70.255 4816 13017 2039
MOT16-04 65.92 58.887 74.86 28005 19552 9405
MOT16-05 68.887 61.279 78.652 4178 2640 1134
MOT16-09 57.422 53.681 61.724 2822 2435 1750
MOT16-10 58.597 47.297 76.992 5826 6492 1741
MOT16-11 62.009 58.535 65.922 5370 3804 2776
MOT16-13 52.611 39.109 80.352 4478 6972 1095
COMBINED 59.723 50.264 73.567 55495 54912 19940
Count: osnet_ain_x1_0_yolov5_lambda02-pedestrianDets GT_Dets IDs GT_IDs
MOT16-02 6855 17833 110 54
MOT16-04 37410 47557 155 83
MOT16-05 5312 6818 158 125
MOT16-09 4572 5257 50 25
MOT16-10 7567 12318 93 54
MOT16-11 8146 9174 125 69
MOT16-13 5573 11450 98 107
COMBINED 75435 110407 789 517
v3.0 - Evaluation automation, added colab notebook
The goal with this release is to automate the whole evaluation process using the official MOTXX evaluation data and tools.
Major changes
- Added colab notebook
- Added bash script for automatically handling all the MOT16 evaluation process (data download, wights download, video generation and placing in right folder...)
- Update track.py to comply with the new yolov5 standards
- Added id, class and confidence to plotted bboxes
- Added LICENSE
Bug fix
- Fix bad initial kf predictions for new objects in the field of view according to #166
- Fix img input sizes bug according to #174
- Class updated for each track after each detection instead of only in the initialization phase. This led to wrong class ID being displayed for each bbox
MOT16 train evaluation
CLEAR: ch_yolov5m_deep_sort-pedestrianMOTA MOTP MODA CLR_Re CLR_Pr MTR PTR MLR sMOTA CLR_TP CLR_FN CLR_FP IDSW MT PT ML Frag
MOT16-02 33.887 77.114 34.397 38.109 91.124 16.667 38.889 44.444 25.165 6796 11037 662 91 9 21 24 198
MOT16-04 63.831 76.326 63.997 72.149 89.848 40.964 39.759 19.277 46.75 34312 13245 3877 79 34 33 16 369
MOT16-05 56.307 76.523 57.334 71.414 83.531 40 49.6 10.4 39.541 4869 1949 960 70 50 62 13 150
MOT16-09 62.507 81.999 63.401 77.268 84.784 52 40 8 48.598 4062 1195 729 47 13 10 2 70
MOT16-10 52.703 75.324 53.239 59.685 90.253 27.778 46.296 25.926 37.975 7352 4966 794 66 15 25 14 272
MOT16-11 64.138 84.251 64.465 79.191 84.32 50.725 34.783 14.493 51.666 7265 1909 1351 30 35 24 10 83
MOT16-13 30.332 68.89 30.847 41.956 79.065 9.3458 52.336 38.318 17.279 4804 6646 1272 59 10 56 41 281
COMBINED 53.776 76.957 54.177 62.913 87.807 32.108 44.681 23.211 39.28 69460 40947 9645 442 166 231 120 1423
Identity: ch_yolov5m_deep_sort-pedestrianIDF1 IDR IDP IDTP IDFN IDFP
MOT16-02 36.361 25.784 61.652 4598 13235 2860
MOT16-04 67.341 60.708 75.6 28871 18686 9318
MOT16-05 39.583 36.712 42.94 2503 4315 3326
MOT16-09 50.378 48.145 52.828 2531 2726 2260
MOT16-10 54.251 45.064 68.144 5551 6767 2595
MOT16-11 47.768 46.316 49.315 4249 4925 4367
MOT16-13 39.393 30.148 56.814 3452 7998 2624
COMBINED 54.619 46.877 65.426 51755 58652 27350
Count: ch_yolov5m_deep_sort-pedestrianDets GT_Dets IDs GT_IDs
MOT16-02 7458 17833 50 54
MOT16-04 38189 47557 99 83
MOT16-05 5829 6818 42 125
MOT16-09 4791 5257 21 25
MOT16-10 8146 12318 46 54
MOT16-11 8616 9174 49 69
MOT16-13 6076 11450 54 107
COMBINED 79105 110407 361 517
v2.0 - CI pipeline, automatic DeepSORT weight download
The goal with this release is to create a CI pipeline for track.py
. Automatic weight download for DeepSORT.
Important updates
- MOT16 Evaluation based on #73
- Adapted track script to new yolov5 v5.0 standards
- README update explaining how to track different classes
- CI pipeline for testing CPU inference added
- Automatic weight downloading
Yolov5 DeepSORT creation
The goal with this release is to make a 2 stage tracker based on Yolov5 publicly available for the first time ever (according to my personal search done on github 😅)
Major updates
- Basic tracking working: Yolov5 passes detections to DeepSORT which handles the tracking .
- Updated tracker when no detections. Based on #21
- Adapted track script to new yolov5 v4.0 standards
Bug fixes
- PyTorch 1.7 compatibility update