boxmot icon indicating copy to clipboard operation
boxmot copied to clipboard

Adding Bot sort Tracker

Open Mohit-robo opened this issue 2 years ago • 23 comments

As discussed in the previous PR, BoT-SORT tracker is implemented using the ReID architectures used in the repo. Also have made some changes in the README.md file for the installation of cython_bbox.

Demo video:

https://user-images.githubusercontent.com/82194525/209459332-e1c74fca-25b6-4b1f-8cdb-be8338b40777.mp4

Mohit-robo avatar Dec 25 '22 06:12 Mohit-robo

Nice :rocket:! I am evaluating botsort now on MOT17. Dropping the results in a few minutes. Btw, I got rid of pximport so that no special installation is needed for botsort.

mikel-brostrom avatar Dec 25 '22 13:12 mikel-brostrom

Nice 🚀! I am evaluating botsort now on MOT17. Dropping the results in a few minutes. Btw, I got rid of pximport so that no special installation is needed for botsort.

That's great, please keep me updated.

Mohit-robo avatar Dec 25 '22 13:12 Mohit-robo

But the processing is quite slow, I have checked out with original BoT-SORT repo as well.

Mohit-robo avatar Dec 25 '22 13:12 Mohit-robo

HOTA: exp349-pedestrian            HOTA      DetA      AssA      DetRe     DetPr     AssRe     AssPr     LocA      OWTA      HOTA(0)   LocA(0)   HOTALocA(0)
MOT17-04-FRCNN                     59.966    59.194    61.305    63.979    76.757    65.175    81.042    81.192    62.57     79.29     75.634    59.971    
MOT17-05-FRCNN                     41.459    40.198    42.893    42.643    76.733    49.454    70.329    82.231    42.755    52.564    77.796    40.892    
MOT17-09-FRCNN                     56.251    62.262    50.854    67.254    81.578    60.388    73.005    85.758    58.47     69.636    82.087    57.162    
MOT17-10-FRCNN                     50.496    50.887    50.386    54.443    75.73     55.301    74.632    80.615    52.355    66.507    75.906    50.483    
MOT17-11-FRCNN                     62.056    60.486    63.862    71.29     74.669    71.946    80.615    86.878    67.463    74.138    83.724    62.071    
MOT17-13-FRCNN                     48.22     43.401    53.945    46.486    74.637    60.091    74.942    80.696    50.031    62.769    75.813    47.587    
COMBINED                           56.389    54.99     58.369    59.847    76.449    63.768    79.252    82.086    59.019    72.889    77.075    56.18     

CLEAR: exp349-pedestrian           MOTA      MOTP      MODA      CLR_Re    CLR_Pr    MTR       PTR       MLR       sMOTA     CLR_TP    CLR_FN    CLR_FP    IDSW      MT        PT        ML        Frag      
MOT17-04-FRCNN                     70.511    78.727    70.656    77.004    92.384    49.398    36.145    14.458    54.13     36621     10936     3019      69        41        30        12        416       
MOT17-05-FRCNN                     47.723    79.704    48.518    52.046    93.652    21.805    58.647    19.549    37.16     3600      3317      244       55        29        78        26        185       
MOT17-09-FRCNN                     71.023    84.514    71.437    76.939    93.326    53.846    46.154    0         59.108    4097      1228      293       22        14        12        0         79        
MOT17-10-FRCNN                     64.351    77.64     64.756    68.323    95.038    33.333    56.14     10.526    49.074    8772      4067      458       52        19        32        6         607       
MOT17-11-FRCNN                     65.526    85.418    65.759    80.617    84.438    48        38.667    13.333    53.77     7607      1829      1402      22        36        29        10        108       
MOT17-13-FRCNN                     54.278    77.33     54.604    58.444    93.835    31.818    39.091    29.091    41.028    6804      4838      447       38        35        43        32        256       
COMBINED                           65.496    79.602    65.771    72.027    92.008    35.95     46.281    17.769    50.804    67501     26215     5863      258       174       224       86        1651      

Identity: exp349-pedestrian        IDF1      IDR       IDP       IDTP      IDFN      IDFP      
MOT17-04-FRCNN                     74.865    68.633    82.341    32640     14917     7000      
MOT17-05-FRCNN                     56.129    43.661    78.564    3020      3897      824       
MOT17-09-FRCNN                     68.183    62.197    75.444    3312      2013      1078      
MOT17-10-FRCNN                     65.295    56.118    78.061    7205      5634      2025      
MOT17-11-FRCNN                     73.201    71.545    74.936    6751      2685      2258      
MOT17-13-FRCNN                     64.362    52.225    83.851    6080      5562      1171      
COMBINED                           70.634    62.965    80.432    59008     34708     14356     

Count: exp349-pedestrian           Dets      GT_Dets   IDs       GT_IDs    
MOT17-04-FRCNN                     39640     47557     135       83        
MOT17-05-FRCNN                     3844      6917      127       133       
MOT17-09-FRCNN                     4390      5325      44        26        
MOT17-10-FRCNN                     9230      12839     96        57        
MOT17-11-FRCNN                     9009      9436      154       75        
MOT17-13-FRCNN                     7251      11642     106       110       
COMBINED                           73364     93716     662       484

MOTA is a bit higher, but IDF1 goes down quite a lot. Not sure why this is the case as the ReID model used for both BoTSORT and StrongSORT is the same. Should a matter of tuning but don't have too much time for this now

mikel-brostrom avatar Dec 25 '22 15:12 mikel-brostrom

You've already tried BoT-SORT 😂. And as mentioned here BoT-SORT requires a lot of computation as well. So are we dropping the plan??

Mohit-robo avatar Dec 25 '22 16:12 Mohit-robo

You've already tried BoT-SORT :joy:

I tried it just when it came out, at that point in time it was not real-time with the provided code. Recently they added a new camera motion compensation method based on opticalflow which partially fixes the slow execution time. Another weak point was the provided ReID ResNet50 model (~100MB) which was too computationally heavy, so the fact that you added the multibackend for ReID is great. With all this fixes it is running almost as fast as StrongSORT. What is left is to find a configuration for it that leads to better results than StrongSORT :smile:

mikel-brostrom avatar Dec 25 '22 16:12 mikel-brostrom

So are we dropping the plan??

Not at all. Given that MOTA already gets quite a big boost (+1.563) it should be feasible to fix the boost for IDF1 as well :smile:

mikel-brostrom avatar Dec 25 '22 16:12 mikel-brostrom

So are we dropping the plan??

Not at all. Given that MOTA already gets quite a big boost (+1.563) it should be feasible to fix the boost for IDF1 as well 😄

Okay then, can you suggest some techniques to improve IDF1 so I can look into it. I mean you have worked a lot with trackers compared to me, so yaa.

Mohit-robo avatar Dec 25 '22 18:12 Mohit-robo

I am checking if feature normalization can be the issue here. I would recommend that you check the ReID feature handling in StrongSORT to try to find inconsistencies between both.

mikel-brostrom avatar Dec 25 '22 18:12 mikel-brostrom

I am checking if feature normalization can be the issue here. I would recommend that you check the ReID feature handling in StrongSORT to try to find inconsistencies between both.

Okay, will do that and get back to you.

Mohit-robo avatar Dec 25 '22 18:12 Mohit-robo

Nope, normalization is not the issue here. It is handled in the track itself

https://github.com/NirAharon/BoT-SORT/blob/98173060469b656ae8653acab97b0e37887d6b1a/tracker/bot_sort.py#L35

mikel-brostrom avatar Dec 25 '22 18:12 mikel-brostrom

Nope, normalization is not the issue here. It is handled in the track itself

https://github.com/NirAharon/BoT-SORT/blob/98173060469b656ae8653acab97b0e37887d6b1a/tracker/bot_sort.py#L35

Okay I'll check on my side as well and get back to you.

Mohit-robo avatar Dec 25 '22 18:12 Mohit-robo

I found something interesting:

https://github.com/NirAharon/BoT-SORT/blob/98173060469b656ae8653acab97b0e37887d6b1a/tracker/matching.py#L160

The activated fuse is a simpler one than the one in the link above, which is closer to the one used in StrongSORT

mikel-brostrom avatar Dec 25 '22 19:12 mikel-brostrom

I am quite confident that this is one of the reason for the lower IDF1 as the motion is ignored when building the cost matrix

mikel-brostrom avatar Dec 25 '22 19:12 mikel-brostrom

I am quite confident that this is one of the reason for the lower IDF1 as the motion is ignored when building the cost matrix

Okay will look into it.

Mohit-robo avatar Dec 26 '22 05:12 Mohit-robo

We are considering combined IDF1 on MOT17, right? If you checkout with this FairMOT tracker the fuse_motion function, the functionality is the same. Could we work on the Kalman filter side?

Mohit-robo avatar Dec 26 '22 14:12 Mohit-robo

If you checkout with this FairMOT tracker the fuse_motion function, the functionality is the same.

Sure, but it is not activated. However I already tried it here:

https://github.com/NirAharon/BoT-SORT

I get much worse results with fuse_motion

mikel-brostrom avatar Dec 26 '22 17:12 mikel-brostrom

Could we work on the Kalman filter side?

Given that the MOTA metric (emphasis on detections) is already good but that IDF1 (emphasis on classification) is low I don't think that the Kalman Filter is to blame here. I think it is the way the information is used to build the cost function.

mikel-brostrom avatar Dec 26 '22 23:12 mikel-brostrom

This may lead to a good set of hparams:

git pull

git checkout hps

pip install -r requirements.txt

python3 val.py --tracking-method botsort --benchmark MOT17 --evolve --n-trials 1000

mikel-brostrom avatar Dec 29 '22 15:12 mikel-brostrom

Okay, will try this surely, wait until the weekend.

Mohit-robo avatar Dec 29 '22 16:12 Mohit-robo

I will run a parameter evolution for this after the one i am running for StrongSORT

mikel-brostrom avatar Jan 10 '23 15:01 mikel-brostrom

I will run a parameter evolution for this after the one i am running for StrongSORT

Sorry for the delay, bit busy with some other tasks.

Mohit-robo avatar Jan 10 '23 15:01 Mohit-robo

Added botsort to the evolve script. Running the search! :smile:

mikel-brostrom avatar Jan 13 '23 09:01 mikel-brostrom

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

github-actions[bot] avatar Feb 13 '23 01:02 github-actions[bot]