GPU-Speicher >= 16G (Training, Batchgröße 4 auf einer einzelnen GPU)
GPU-Speicher >= 7G (Tests, Stapelgröße 1, Bild in voller Auflösung auf einer einzelnen GPU)
CUDA >= 10,0
Python >= 3.6
pytorch >= 1.0
opencv-python
Laden Sie den Sceneflow-Datensatz von https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html herunter. Bitte laden Sie die RGB-Bilder (Cleanpass) und die Disparität von drei Teilmengen herunter. Anschließend entpacken Sie die Dateien in den entsprechenden Unterordner. Extrahieren Sie beispielsweise für Flyingthings3d RGB-Bilder und Disparity und Sie erhalten zwei Ordner mit den Namen Disparity und Frames_Cleanpass. Fügen Sie sie in <data_root>/flyingthings3d/
.
Laden Sie KITTI 2012 von http://www.cvlibs.net/datasets/kitti/eval_stereo_flow.php?benchmark=stereo und KITTI 2015 von http://www.cvlibs.net/datasets/kitti/eval_scene_flow.php?benchmark=stereo herunter . Extrahieren Sie jeden Datensatz und Sie erhalten zwei Ordner mit den Namen „Training“ und „Testing“. Legen Sie sie in <data_root>/kitti/201x/unzip/
.
Trainieren Sie das Modell zunächst auf Sceneflow vor.
$ 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>
Das Modell wird in <save_dir>/<sceneflow_job_name>/
gespeichert.
Dann optimieren Sie das Modell auf 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>
Das Modell wird in <save_dir>/<kitti_job_name>/
gespeichert.
So bewerten Sie das Modell auf Flyingthings3d:
$ python val.py --data_root <data_root> --dataset f --base unet --load_path <save_dir>/<sceneflow_job_name>
Und um die Ungleichheit des KITTI-Testsatzes zu ermitteln:
$ python val.py --data_root <data_root> --dataset k15 --base unet --load_path <save_dir>/<kitti_job_name> --write_result --result_dir <result_dir>
Die Ausgaben werden in <result_dir> gespeichert. Beachten Sie, dass das Programm Dummy-EPE und -Präzision meldet, da es keine Grundwahrheit gibt.
Wir stellen das vorab trainierte Modell der Architektur mit dem UNet-Basismodell bereit. Extrahieren Sie das Modell und verwenden Sie model/unet_sceneflow
als Ladepfad.