Closed leonidas-timefly closed 1 year ago
Hi @leonidas-timefly, thank you for your interest in our work.
May I know if this issue only occurs with the ETH dataset, or if it also exists in other benchmarks (e.g. KITTI and Middlebury)?
I would suggest checking if you have loaded your pre-trained weights correctly. Also, check the data preprocessing pipeline and make sure it is consistent across datasets.
waychin-weiqin
Hi @waychin-weiqin, thanks for your fast reply.
I've checked the performance with the KITTI 2015 benchmark. The performance obtained with your provided pre-trained weights on KITTI 2015 is consistent with the results in your paper: I reproduced: PSMNet: 5.793; GwcNet: 5.384; CFNet: 4.733 In your paper:PSMNet: 5.8; GwcNet: 5.4; CFNet: 4.7 While I still obtain strange results with the models trained by myself:
for PSMNet:
[INFO] Mean D1: 87.601 Mean EPE: 23.236
for GwcNet:
[INFO] Mean D1: 74.531 Mean EPE: 9.046
for CFNet:
[INFO] Mean D1: 87.859 Mean EPE: 17.956
So I guess there is no problem existing in the evaluation stage. I'll check the training process focusing on the data preprocessing pipeline. Another issue is that could you please check the MiddleBury2014 dataset on its official website? I find that there is no Full / Half / Quarter size subset. I also find that the size of MiddleBury2014 is 10 for the test set, 10 for the training set, and 13 for an additional set while not 15 claimed in your paper. Thanks for your help. That's very kind of you.
Hi again,
in regards to the Middlebury dataset, you can find the Full, Half and Quarter resolution datasets using this URL.
Hi again,
in regards to the Middlebury dataset, you can find the Full, Half and Quarter resolution datasets using this URL.
Hi @waychin-weiqin ,
Thanks for your information. The valid URL is https://vision.middlebury.edu/stereo/submit3/.
Hi again,
in regards to the Middlebury dataset, you can find the Full, Half and Quarter resolution datasets using this URL.
Hi @waychin-weiqin ,
Sorry to trouble you. I checked the training process and data processing, and found no problem. Still, I obtain strange results. I want to make sure if the training loss is normal? This is the training log of PSMNet on SceneFlow:
[INFO] BEST epoch: 1 Total Test Error = 56.606 Time/Epoch: 0.07 hrs [INFO] Epoch: 1/20 Total Training Loss: 0.046 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 1 Total Test Error = 56.644 Time/Epoch: 0.08 hrs [INFO] Epoch: 2/20 Total Training Loss: 0.035 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 2 Total Test Error = 46.876 Time/Epoch: 0.08 hrs [INFO] Epoch: 3/20 Total Training Loss: 0.023 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 3 Total Test Error = 33.355 Time/Epoch: 0.08 hrs [INFO] Epoch: 4/20 Total Training Loss: 0.021 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 4 Total Test Error = 30.693 Time/Epoch: 0.07 hrs [INFO] Epoch: 5/20 Total Training Loss: 0.018 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 4 Total Test Error = 30.693 Time/Epoch: 0.08 hrs [INFO] Epoch: 6/20 Total Training Loss: 0.015 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 6 Total Test Error = 29.578 Time/Epoch: 0.08 hrs [INFO] Epoch: 7/20 Total Training Loss: 0.025 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 6 Total Test Error = 29.578 Time/Epoch: 0.08 hrs [INFO] Epoch: 8/20 Total Training Loss: 0.016 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 8 Total Test Error = 28.171 Time/Epoch: 0.07 hrs [INFO] Epoch: 9/20 Total Training Loss: 0.013 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 9 Total Test Error = 25.306 Time/Epoch: 0.08 hrs [INFO] Epoch: 10/20 Total Training Loss: 0.012 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 10 Total Test Error = 25.045 Time/Epoch: 0.08 hrs [INFO] Epoch: 11/20 Total Training Loss: 0.014 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 11 Total Test Error = 22.326 Time/Epoch: 0.08 hrs [INFO] Epoch: 12/20 Total Training Loss: 0.016 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 12 Total Test Error = 20.686 Time/Epoch: 0.08 hrs [INFO] Epoch: 13/20 Total Training Loss: 0.018 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 13 Total Test Error = 18.278 Time/Epoch: 0.08 hrs [INFO] Epoch: 14/20 Total Training Loss: 0.013 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 14 Total Test Error = 16.742 Time/Epoch: 0.07 hrs [INFO] Epoch: 15/20 Total Training Loss: 0.012 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 15 Total Test Error = 15.593 Time/Epoch: 0.08 hrs [INFO] Epoch: 16/20 Total Training Loss: 0.016 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 16 Total Test Error = 14.866 Time/Epoch: 0.07 hrs [INFO] Epoch: 17/20 Total Training Loss: 0.012 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 17 Total Test Error = 14.420 Time/Epoch: 0.08 hrs [INFO] Epoch: 18/20 Total Training Loss: 0.011 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 17 Total Test Error = 14.420 Time/Epoch: 0.08 hrs [INFO] Epoch: 19/20 Total Training Loss: 0.011 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 17 Total Test Error = 14.420 Time/Epoch: 0.07 hrs [INFO] Epoch: 20/20 Total Training Loss: 0.014 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 17 Total Test Error = 14.420 Time/Epoch: 0.07 hrs
The training arguments are: python -u main.py --epochs 20 --batch 12 --model PSMNet --lambd 0.1 --eps 0.5 --lr 0.001 --maxdisp 192 --savemodel ./checkpoints/PSMNet/ --cuda_group 2 --verbose
Thank you for your help.
Hi @leonidas-timefly, thank you for your interest in our work.
May I know if this issue only occurs with the ETH dataset, or if it also exists in other benchmarks (e.g. KITTI and Middlebury)?
I would suggest checking if you have loaded your pre-trained weights correctly. Also, check the data preprocessing pipeline and make sure it is consistent across datasets.
Hi @waychin-weiqin ,
I would like to confirm what the pre-trained weights mean here. Does it mean that the training of ITSA on SceneFlow is based on a pre-trained model (trained on SceneFlow or other datasets?)?
Thanks for your clarification.
Hi again, in regards to the Middlebury dataset, you can find the Full, Half and Quarter resolution datasets using this URL.
Hi @waychin-weiqin ,
Sorry to trouble you. I checked the training process and data processing, and found no problem. Still, I obtain strange results. I want to make sure if the training loss is normal? This is the training log of PSMNet on SceneFlow:
[INFO] BEST epoch: 1 Total Test Error = 56.606 Time/Epoch: 0.07 hrs [INFO] Epoch: 1/20 Total Training Loss: 0.046 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 1 Total Test Error = 56.644 Time/Epoch: 0.08 hrs [INFO] Epoch: 2/20 Total Training Loss: 0.035 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 2 Total Test Error = 46.876 Time/Epoch: 0.08 hrs [INFO] Epoch: 3/20 Total Training Loss: 0.023 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 3 Total Test Error = 33.355 Time/Epoch: 0.08 hrs [INFO] Epoch: 4/20 Total Training Loss: 0.021 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 4 Total Test Error = 30.693 Time/Epoch: 0.07 hrs [INFO] Epoch: 5/20 Total Training Loss: 0.018 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 4 Total Test Error = 30.693 Time/Epoch: 0.08 hrs [INFO] Epoch: 6/20 Total Training Loss: 0.015 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 6 Total Test Error = 29.578 Time/Epoch: 0.08 hrs [INFO] Epoch: 7/20 Total Training Loss: 0.025 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 6 Total Test Error = 29.578 Time/Epoch: 0.08 hrs [INFO] Epoch: 8/20 Total Training Loss: 0.016 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 8 Total Test Error = 28.171 Time/Epoch: 0.07 hrs [INFO] Epoch: 9/20 Total Training Loss: 0.013 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 9 Total Test Error = 25.306 Time/Epoch: 0.08 hrs [INFO] Epoch: 10/20 Total Training Loss: 0.012 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 10 Total Test Error = 25.045 Time/Epoch: 0.08 hrs [INFO] Epoch: 11/20 Total Training Loss: 0.014 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 11 Total Test Error = 22.326 Time/Epoch: 0.08 hrs [INFO] Epoch: 12/20 Total Training Loss: 0.016 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 12 Total Test Error = 20.686 Time/Epoch: 0.08 hrs [INFO] Epoch: 13/20 Total Training Loss: 0.018 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 13 Total Test Error = 18.278 Time/Epoch: 0.08 hrs [INFO] Epoch: 14/20 Total Training Loss: 0.013 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 14 Total Test Error = 16.742 Time/Epoch: 0.07 hrs [INFO] Epoch: 15/20 Total Training Loss: 0.012 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 15 Total Test Error = 15.593 Time/Epoch: 0.08 hrs [INFO] Epoch: 16/20 Total Training Loss: 0.016 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 16 Total Test Error = 14.866 Time/Epoch: 0.07 hrs [INFO] Epoch: 17/20 Total Training Loss: 0.012 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 17 Total Test Error = 14.420 Time/Epoch: 0.08 hrs [INFO] Epoch: 18/20 Total Training Loss: 0.011 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 17 Total Test Error = 14.420 Time/Epoch: 0.08 hrs [INFO] Epoch: 19/20 Total Training Loss: 0.011 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 17 Total Test Error = 14.420 Time/Epoch: 0.07 hrs [INFO] Epoch: 20/20 Total Training Loss: 0.014 Time/Epoch: 0.00 hrs [INFO] BEST epoch: 17 Total Test Error = 14.420 Time/Epoch: 0.07 hrs
The training arguments are: python -u main.py --epochs 20 --batch 12 --model PSMNet --lambd 0.1 --eps 0.5 --lr 0.001 --maxdisp 192 --savemodel ./checkpoints/PSMNet/ --cuda_group 2 --verbose
Thank you for your help.
Hi, I have rerun the experiment on my machine but I am not facing the issue you are having. Could you check if your training dataset includes all SceneFlow data (from FlyingThings3D, Driving and Monkaa scenes)?
Sorry I wish I could be more helpful on this
Hi @leonidas-timefly, thank you for your interest in our work. May I know if this issue only occurs with the ETH dataset, or if it also exists in other benchmarks (e.g. KITTI and Middlebury)? I would suggest checking if you have loaded your pre-trained weights correctly. Also, check the data preprocessing pipeline and make sure it is consistent across datasets.
Hi @waychin-weiqin ,
I would like to confirm what the pre-trained weights mean here. Does it mean that the training of ITSA on SceneFlow is based on a pre-trained model (trained on SceneFlow or other datasets?)?
Thanks for your clarification.
Sorry, that was a typo. What I meant was your trained model (model trained on SceneFlow).
Hi @leonidas-timefly, thank you for your interest in our work. May I know if this issue only occurs with the ETH dataset, or if it also exists in other benchmarks (e.g. KITTI and Middlebury)? I would suggest checking if you have loaded your pre-trained weights correctly. Also, check the data preprocessing pipeline and make sure it is consistent across datasets.
Hi @waychin-weiqin , I would like to confirm what the pre-trained weights mean here. Does it mean that the training of ITSA on SceneFlow is based on a pre-trained model (trained on SceneFlow or other datasets?)? Thanks for your clarification.
Sorry, that was a typo. What I meant was your trained model (model trained on SceneFlow).
Hi @waychin-weiqin ,
Thanks for your clarification. I'm quite confused because I tested two pipelines while obtaining some conflicting results: The first pipeline is that I downloaded your code, organized the SceneFlow dataset, and then directly trained the model with ITSA; The second pipeline is that I downloaded your code, organized the SceneFlow dataset, downloaded the pre-training weights from https://github.com/JiaRenChang/PSMNet, https://github.com/xy-guo/GwcNet, and https://github.com/gallenszl/CFNet: Then I loaded these weights into the model and trained these models with ITSA.
In fact, the second pipeline ensured that the training data and data processing were correct. So I want to confirm which pipeline you adopted. Thanks for your information.
Hi @waychin-weiqin ,
I think I've found the core of this issue:
You remained a "break" in line 271 of main.py, which means that ITSA only trains one iteration for each epoch. In this way, ITSA is under-fitted. I believe that this is caused by carelessness. By the way, there are some other little bugs while I'm running ITSA. For example, there should be a "featEsts = None" in the "else" (line 200) condition. Hope you can examine the uploaded code twice. Thank you.
Thanks for your contribution and help again.
Thanks for your great work!
While I was reproducing your work, I encountered such a problem: I could reproduce the experimental results using the pre-trained weights you provided but could not train such a model from scratch on my own. These are the D1 results I obtained on the ETH3D dataset using your provided pre-trained model, which is in line with the result of Table 4 (9.8 / 7.1 / 5.1 ) in the paper:
| PSMNet | GwcNet | CFNet | | 9.768 | 7.122 | 5.152 |
While I trained the PSMNet from scratch with ITSA on the SceneFlow dataset, I obtained quite strange results. This is the training log: