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
作為載入路徑。