Memoria GPU >= 16G (entrenamiento, tamaño de lote 4 en una sola GPU)
Memoria GPU >= 7G (prueba, tamaño de lote 1, imagen de resolución completa en una sola GPU)
CUDA >= 10.0
Pitón >= 3.6
pytorch >= 1.0
opencv-python
Descargue el conjunto de datos de Sceneflow desde https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html. Descargue las imágenes RGB (cleanpass) y la disparidad de tres subconjuntos. Luego extraiga los archivos a la subcarpeta correspondiente. Por ejemplo, para Flyingthings3d, extraiga las imágenes RGB y la disparidad y obtendrá dos carpetas llamadas disparidad y frames_cleanpass. Ponlos en <data_root>/flyingthings3d/
.
Descargue KITTI 2012 desde http://www.cvlibs.net/datasets/kitti/eval_stereo_flow.php?benchmark=stereo, KITTI 2015 desde http://www.cvlibs.net/datasets/kitti/eval_scene_flow.php?benchmark=stereo . Para cada conjunto de datos, extraiga y obtendrá dos carpetas denominadas capacitación y prueba. Colóquelos en <data_root>/kitti/201x/unzip/
.
Primero entrene previamente el modelo en 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>
El modelo se almacenará en <save_dir>/<sceneflow_job_name>/
.
Luego ajusta el modelo en 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>
El modelo se almacenará en <save_dir>/<kitti_job_name>/
.
Para evaluar el modelo en Flyingthings3d:
$ python val.py --data_root <data_root> --dataset f --base unet --load_path <save_dir>/<sceneflow_job_name>
Y para producir la disparidad del conjunto de pruebas 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>
Las salidas se almacenarán en <result_dir>. Tenga en cuenta que el programa informará EPE ficticio y precisión porque no existe una verdad sobre el terreno.
Proporcionamos el modelo previamente entrenado de la arquitectura con el modelo base UNet. Extraiga el modelo y utilice model/unet_sceneflow
como ruta de carga.