GPU mem >= 16G (treinamento, tamanho de lote 4 em GPU única)
GPU mem >= 7G (teste, tamanho de lote 1, imagem de resolução total em uma única GPU)
CUDA >= 10,0
Pitão >= 3.6
pytorch >= 1,0
opencv-python
Baixe o conjunto de dados Sceneflow em https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html. Faça download das imagens RGB (cleanpass) e Disparidade de três subconjuntos. Em seguida, extraia os arquivos para a subpasta correspondente. por exemplo, para flyingthings3d, extraia imagens RGB e disparidade e você obterá duas pastas chamadas disparity e frames_cleanpass. Coloque-os em <data_root>/flyingthings3d/
.
Baixe KITTI 2012 em http://www.cvlibs.net/datasets/kitti/eval_stereo_flow.php?benchmark=stereo, KITTI 2015 em http://www.cvlibs.net/datasets/kitti/eval_scene_flow.php?benchmark=stereo . Para cada conjunto de dados, extraia e você obterá duas pastas chamadas treinamento e teste. Coloque-os em <data_root>/kitti/201x/unzip/
.
Primeiro pré-treine o modelo no Sceneflow.
$ python train.py --data_root <data_root> --dataset d,m,f --base unet --lr 1e-3,.5e-3,.25e-3,.125e-3 --boundaries .625,.75,.875 --epoch 16 --batch_size 16 --job_name <sceneflow_job_name> --save_dir <save_dir>
O modelo será armazenado em <save_dir>/<sceneflow_job_name>/
.
Em seguida, ajuste o modelo no KITTI
$ python train.py --data_root <data_root> --dataset k15 --base unet --lr 1e-3,1e-4,1e-5 --boundaries .33,.67 --epoch 600 --batch_size 16 --load_path <save_dir>/<sceneflow_job_name> --reset_step --job_name <kitti_job_name> --save_dir <save_dir>
O modelo será armazenado em <save_dir>/<kitti_job_name>/
.
Para avaliar o modelo no Flyingthings3d:
$ python val.py --data_root <data_root> --dataset f --base unet --load_path <save_dir>/<sceneflow_job_name>
E para produzir a disparidade do conjunto de testes KITTI:
$ python val.py --data_root <data_root> --dataset k15 --base unet --load_path <save_dir>/<kitti_job_name> --write_result --result_dir <result_dir>
As saídas serão armazenadas em <result_dir>. Observe que o programa reportará EPE fictício e precisão porque não há verdade básica.
Fornecemos o modelo pré-treinado da arquitetura com o modelo base UNet. Extraia o modelo e use model/unet_sceneflow
como caminho de carregamento.