Mémoire GPU >= 16 G (entraînement, taille de lot 4 sur un seul GPU)
Mémoire GPU >= 7G (tests, taille de lot 1, image pleine résolution sur un seul GPU)
CUDA >= 10,0
Python >= 3.6
pytorche >= 1.0
opencv-python
Téléchargez l'ensemble de données Sceneflow depuis https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html. Veuillez télécharger les images RVB (cleanpass) et la disparité de trois sous-ensembles. Extrayez ensuite les fichiers dans le sous-dossier correspondant. Par exemple, pour Flyingthings3d, extrayez les images RVB et la disparité et vous obtiendrez deux dossiers nommés disparité et frames_cleanpass. Mettez-les dans <data_root>/flyingthings3d/
.
Téléchargez KITTI 2012 depuis http://www.cvlibs.net/datasets/kitti/eval_stereo_flow.php?benchmark=stereo, KITTI 2015 depuis http://www.cvlibs.net/datasets/kitti/eval_scene_flow.php?benchmark=stereo . Pour chaque ensemble de données, extrayez et vous obtiendrez deux dossiers nommés training et testing. Mettez-les dans <data_root>/kitti/201x/unzip/
.
Pré-entraîner d’abord le modèle sur 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>
Le modèle sera stocké dans <save_dir>/<sceneflow_job_name>/
.
Puis peaufinez le modèle sur 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>
Le modèle sera stocké dans <save_dir>/<kitti_job_name>/
.
Pour évaluer le modèle sur Flyingthings3d :
$ python val.py --data_root <data_root> --dataset f --base unet --load_path <save_dir>/<sceneflow_job_name>
Et pour produire la disparité de l'ensemble de tests 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>
Les sorties seront stockées dans <result_dir>. Notez que le programme rapportera un EPE et une précision factices car il n'y a pas de vérité terrain.
Nous fournissons le modèle pré-entraîné de l'architecture avec le modèle de base UNet. Extrayez le modèle et utilisez model/unet_sceneflow
comme chemin de chargement.