DerrickXuNu / OpenCOOD

[ICRA 2022] An opensource framework for cooperative detection. Official implementation for OPV2V.
https://mobility-lab.seas.ucla.edu/opv2v/
Other
663 stars 99 forks source link

Questions when testing? #77

Closed lubin202209 closed 1 year ago

lubin202209 commented 1 year ago

Hello, when I try to run the inference.py to test my trained v2vnet model, I got a result that the ap30\ap50\ap70 are all 0 like this, 9f4183b4458debc82e28501d46b5bce The command I typed in the terminal is "CUDA_VISIBLE_DEVICES=0 --model_dir opencood/logs/2023_04_13_07_04_01 --fusion_method intermediate" I have already set the validate_dir in the config.yaml as opv2v/test like this 587e511bebc5ef0254d1578527d55b1 could you please help me to find out where is the problem and how to fix it?

DerrickXuNu commented 1 year ago

Are you able to get normal AP for the other models? V2VNet usually takes longer time to train, and sometimes it doesn't converge well.

lubin202209 commented 1 year ago

I have just test the trained where2comm model, it get the normal results like this, 9cc3961a6fca7801df0ad03433bd288

lubin202209 commented 1 year ago

Are you able to get normal AP for the other models? V2VNet usually takes longer time to train, and sometimes it doesn't converge well. So as the v2vnet sometimes can't converge well, how can I fix the problem?

lubin202209 commented 1 year ago

The config when I train the v2vnet model is like this, 8603604ce7a5bd8a8bfd1f849c20d17 03938718e6862f4b4ee2b9e5a3e3ef7

DerrickXuNu commented 1 year ago

This config looks good to me. There are two ways to solve this: 1) Train a late fusion model first to train the backbone, and then load the pretrained backbone and train your v2vnet 2) Train from my provided v2vnet checkpoint

lubin202209 commented 1 year ago

Thanks for your advice, I will have a try. What's more, I have another question, I found that the defined function "inference_intermediate_fusion" in opencood/tools/inference_utils.py returns "return inference_early_fusion(batch_data, model, dataset)" like this, baddfd5273cb407e543cb7ed9d9516e Does that mean the two methods "earlyfusion" and "intermediatefusion" are the same?

DerrickXuNu commented 1 year ago

No, it is just the high level call function is the same. Their pre processor and post processor are different

DerrickXuNu commented 1 year ago

Did you fix the issue? I will close the issue if everything works