baegwangbin / surface_normal_uncertainty Goto Github PK
View Code? Open in Web Editor NEW[ICCV 2021 Oral] Estimating and Exploiting the Aleatoric Uncertainty in Surface Normal Estimation
License: MIT License
[ICCV 2021 Oral] Estimating and Exploiting the Aleatoric Uncertainty in Surface Normal Estimation
License: MIT License
I attempted to test the NYU dataset using the provided weight file and obtained a result that was consistent with 85.17 in the paper.
But when I tried to train the NYU dataset, it was difficult to achieve the same accuracy and the gap was significant.
I have not made any changes to the training configuration of train, using a 3090TI.
(test) jiehu@jiehu-Z490-AORUS-MASTER:/media/jiehu/hard_disk/work_data_hd/code/open_source/surface_normal_uncertainty$ python test.py --pretrained scannet --architecture BN
loading checkpoint... /media/jiehu/hard_disk/work_data_hd/code/open_source/surface_normal_uncertainty/checkpoints/scannet.pt
Using cache found in /home/jiehu/.cache/torch/hub/rwightman_gen-efficientnet-pytorch_master
Downloading: "https://github.com/rwightman/pytorch-image-models/releases/download/v0.1-weights/tf_efficientnet_b5_ap-9e82fae8.pth" to /home/jiehu/.cache/torch/hub/checkpoints/tf_efficientnet_b5_ap-9e82fae8.pth
Loading base model ()...ffff: <_io.BufferedReader name='/home/jiehu/.cache/torch/hub/checkpoints/tf_efficientnet_b5_ap-9e82fae8.pth'>
Done.
Removing last two layers (global_pool & classifier).
fpath: /media/jiehu/hard_disk/work_data_hd/code/open_source/surface_normal_uncertainty/checkpoints/scannet.pt
ffff: <_io.BufferedReader name='/media/jiehu/hard_disk/work_data_hd/code/open_source/surface_normal_uncertainty/checkpoints/scannet.pt'>
Traceback (most recent call last):
File "test.py", line 97, in
model = utils.load_checkpoint(checkpoint, model)
File "/media/jiehu/hard_disk/work_data_hd/code/open_source/surface_normal_uncertainty/utils/utils.py", line 49, in load_checkpoint
ckpt = torch.load(fpath, map_location='cpu')['model']
File "/home/jiehu/anaconda3/envs/test/lib/python3.8/site-packages/torch/serialization.py", line 713, in load
return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
File "/home/jiehu/anaconda3/envs/test/lib/python3.8/site-packages/torch/serialization.py", line 920, in _legacy_load
magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: invalid load key, '<'.
maybe the checkpoint file is not correct, please help check it, thanks.
Hi Bae:
Thank you for your great work here! I am trying to compare with your work on ScanNet v2 but do not know the exact details. I wonder if it is available to provide: Image size and validation split here?
I am now using a size of 480(h)*640(w) and a validation split up to 60000 samples (from framenet)! It takes a long time to validate once. I am not sure whether this is correct.
Hi, thanks so much for your excellent work on the surface normal estimation. When I was training on the taskonomy dataset with the paper-proposed loss function 'UG_NLL_ours' (i.e., simply replace the img and norm paths of the Nyuloader), the loss tended to decrease and even be negative. Is it okay for training? Or there may exist some mistakes.
Hi,
This is a great work! Would you consider adding your model to kornia? https://github.com/kornia/kornia
I believe, that it could boost the usage and citations for you and make life a bit simpler for your users.
--
Best, Dmytro
Hi Gwangbin,
Thanks for sharing your great work!
I am curious about the training process, is the network trained by end-to-end training?
Best wishes,
Runsong
Hello,
When I run python test.py --pretrained scannet --architecture BN on Win10, it shows this:
loading checkpoint... ./checkpoints/scannet.pt
Loading base model ()...Using cache found in C:\Users\LZS/.cache\torch\hub\rwightman_gen-efficientnet-pytorch_master
Done.
Removing last two layers (global_pool & classifier).
Traceback (most recent call last):
File "test.py", line 97, in
model = utils.load_checkpoint(checkpoint, model)
File "F:\surface_normal_uncertainty\utils\utils.py", line 57, in load_checkpoint
ckpt = torch.load(fpath, map_location=lambda storage, loc: storage)['model']
File "F:\Anaconda3\lib\site-packages\torch\serialization.py", line 608, in load
return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
File "F:\Anaconda3\lib\site-packages\torch\serialization.py", line 777, in _legacy_load
magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: invalid load key, '<'.
I have tried directly downloading the model file, tf_efficientnet_b5_ap-9e82fae8.pth, from https://zzun.app/repo/rwightman-pytorch-image-models-python-deep-learning#releases, and use it to replace the original one.
I checked their file size and they are all over 100M.
Could you please give me some idea?
Hello, I didn't find the data loader for Scannet, could I modify the file dataloader_nyu.py to load scannet data? Are there any specific modifications required for scannet? Thanks so much.
I wanted to try to train a new model using my own dataset, and when using NLL_ours as the Loss function, the loss value would gradually become negative during training. While training is normal when using L2 or AL, I don't know how to solve it. Looking forward to your reply.
Hi,
It is really an awesome job. I am looking forward to the training part.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.