zhen-he / tracking-by-animation

A PyTorch implementation of the "Tracking-by-Animation" algorithm published at CVPR 2019.
123 stars 24 forks source link

train without duke_MTMC #9

Open kevin20080525 opened 5 years ago

kevin20080525 commented 5 years ago

Hi, First, thanks for your great work. Since I do not have the duke_MTMC data set, I try to build the my data set (50 minutes * 2) with surveillance view as similar as duke_MTMC, and I generate the background by removing the objects detected by the object detection network. However, my validation curve do not drop, and the gradient of C_o_seq seems vanishing (1.2e-43) at 92890 iteration. Can you provide some training details? For example, how many GPU do you use? The change of grad_C_o_seq during different iteration? The train time you spend? I work hard without duke_MTMC, and try to solve the problem :) Thanks again!

zhen-he commented 5 years ago

Hi, thanks for your interest.

I didn't record the value of grad_C_o_seq during the whole training process, but can provide you some details. I've used 4 GPUs (gtx 1080Ti) with mini-batch size 24. Typically grad_C_o_seq is larger than 10^-8, and will get stable (about 10^-5 to 10^-4) after 15000 iterations. For DukeMTMC, I've trained the model for 2 weeks to get an IDF1 of 80.0%, and 4 weeks to get 80.4%.

Could you please firstly try your dataset by only reconstructing the foreground (i.e., take the original image as input, and output objects with zero valued background)? To generate the ground truth foregound images (for computing the loss), you can simply set the regions outside the bounding boxes (your detector output) to zero. This is an easier task and similar to the MNIST/Sprites-MOT. If this works, you could then add the backgound.

igygi commented 4 years ago

Hello @kevin20080525, @zhen-he, I am trying to run TBA on the MOT challenge benchmark dataset. First, I need to setup the dataset in a manner similar to how you setup DukeMTMC. I am trying to understand the DukeMTMC preprocessing steps you provided but I figured perhaps you could help me understand. What should the final directory structure for the train and test and their contents look like?

zhen-he commented 4 years ago

Hi, the directories in data/duke/pt/ are like:

bb
bg
input
org
camera1
camera2
...
camera8

where bb/, bg/, input/, and org/ contain .pt files for train and validation, e.g.:

input
-- train_0.pt
-- train_1.pt
-- ...
-- train_949.pt
-- test_0.pt
-- test_1.pt
-- ...
-- test_49.pt

and camera1/ to camera8/ contain .pt files for the evaluation of tracking performance, e.g.:

camera1
-- metric
   -- bb
      -- test_0.pt
      -- test_1.pt
      -- ...
   -- bg
      -- test_0.pt
      -- test_1.pt
      -- ...
   -- input
      -- test_0.pt
      -- test_1.pt
      -- ...
   -- org
      -- test_0.pt
      -- test_1.pt
      -- ...

It would be good if you could take some time to read the code.