GPU mem >= 16G(训练,单个 GPU 上的批量大小 4)
GPU mem >= 7G(测试,批量大小 1,单个 GPU 上的全分辨率图像)
CUDA >= 10.0
Python >= 3.6
火炬 >= 1.0
OpenCV-Python
从 https://lmb.informatik.uni-freiburg.de/resources/datasets/SceneFlowDatasets.en.html 下载 Sceneflow 数据集。请下载三个子集的 RGB 图像(cleanpass)和视差。然后将文件解压到相应的子文件夹中。例如,对于flyingthings3d,提取RGB图像和视差,您将得到两个名为disparity和frames_cleanpass的文件夹。将它们放在<data_root>/flyingthings3d/
中。
从 http://www.cvlibs.net/datasets/kitti/eval_stereo_flow.php?benchmark=stereo 下载 KITTI 2012,从 http://www.cvlibs.net/datasets/kitti/eval_scene_flow.php?benchmark=stereo 下载 KITTI 2015 。对于每个数据集,提取后您将得到两个名为训练和测试的文件夹。将它们放在<data_root>/kitti/201x/unzip/
中。
首先在 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>
模型将存储在<save_dir>/<sceneflow_job_name>/
中。
然后在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>
模型将存储在<save_dir>/<kitti_job_name>/
中。
在 Flyingthings3d 上评估模型:
$ python val.py --data_root <data_root> --dataset f --base unet --load_path <save_dir>/<sceneflow_job_name>
并生成 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>
输出将存储在 <result_dir> 中。请注意,程序将报告虚拟 EPE 和精度,因为没有基本事实。
我们通过 UNet 基础模型提供了该架构的预训练模型。提取模型并使用model/unet_sceneflow
作为加载路径。