LucasYFL / surface-normal

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

EECS 442 Final Project

Surface Normal Estimation

Yifu Lu, Xinjin Li, Ruiying Yang

Our work mainly based on the paper: Estimating and Exploiting the Aleatoric Uncertainty in Surface Normal Estimation. Based on this, we changed the training pipeline to fit efficientNet V2. We rewrote parts of validation that is not efficient and would potentially cause out of memory error, and added the functionality of resuming training if failed. In addition, we chose NYU v2 large dataset as our training data, for which we wrote a dataloader for .mat input files, and added support for ScanNet.

442Final_Project 442Final_Project (1) 442Final_Project (2) 442Final_Project (3) 442Final_Project (4) 442Final_Project (5) 442Final_Project (6) 442Final_Project (7)

Training

Step 1. Download dataset

  • NYUv2 (official): The official train/test split contains 795/654 images. The dataset can be downloaded from this link. Unzip the file nyu_dataset.zip under ./datasets, so that ./datasets/nyu/train and ./datasets/nyu/test/ exist.

  • NYUv2 (big): Please visit GeoNet to download a larger training set consisting of 30907 images. This is the training set used to train our model.

  • ScanNet: Please visit FrameNet to download ScanNet with ground truth surface normals.

Step 2. Train

  • Check the args in train.py and simply run
python train.py

About

License:MIT License


Languages

Language:Python 100.0%