traing for DHN
Closed this issue · 5 comments
it seems that there is not any training code for DHN model in this project. you just optimize the sot instead of DHN.
optimizer = optim.Adam(filter(lambda p: p.requires_grad, sot_tracker.parameters()), lr=args.old_lr)
Yes. We don't release yet the code for training DHN.
Please stay tuned.
Ok, thanks for your kind reply. Another question, when training the DHN model, why we don't use the ground truth of assignment, but the output of original Hungarian algorithm instead.
when construct a binary hard assignment mask to calculate the TPt, we used the ground truth of assignment, isn't it?
Many thanks.
Hi, actually it is a question about eggs and chickens. We don't know the ground-truth detection/outputs of SOT -to- object assignments. If we know, MOT is not a problem any more. Moreover, the best assignment is always w.r.t a certain criterion. You should define the criterion (appearance similarity, geometry distance, etc.) to calculate the match among them.
However this is only my own understanding.
Another problem, you say as below in the paper
As described in [6], the input distance values larger than a threshold τd should not lead to an assignment, and are therefore multiplied by a large scaling factor inf before input to the DHN.
but actually you didn't do that in code. And I think it will be set 1.0 instead of inf since the distance has been normalized.
Thanksssss
Actually we tried both. But it led to similar results. It may due to the fact that the distance tends to 1 and DHN doesn't assign a high probability to it, even without threshold operation.
According to MOT evaluation, you should somehow add the threshold. But it is not a crucial factor for the performance, according to our experiments.